https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118832

            Bug ID: 118832
           Summary: RISC-V: internal compiler error: could not split insn,
                    with V+Zbb enabled
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: wangpengcheng.pp at bytedance dot com
  Target Milestone: ---

This ICE was found when compiling linux kernel with V enabled (-O2
-march=rv64imafdcv_zbb -mabi=lp64d):
```
drivers/net/wireless/ath/ath9k/htc_drv_init.c: In function
'ath9k_multi_regread':                                                         
                                                                               
     [0/93]
drivers/net/wireless/ath/ath9k/htc_drv_init.c:281:1: error: could not split
insn                                                                            
  281 | }                                                                       
      | ^                                                                       
(insn 385 264 487 (set (reg:RVVM2DI 102 v6 [374])                               
        (vec_duplicate:RVVM2DI (reg:DI 15 a5 [357])))
"drivers/net/wireless/ath/ath9k/htc_drv_init.c":279:10 discrim 6 3534
{*vec_duplicatervvm2di}                                                         
     (expr_list:REG_DEAD (reg:DI 15 a5 [357])                                   
        (nil)))                                                                 
during RTL pass: final                                                          
drivers/net/wireless/ath/ath9k/htc_drv_init.c:281:1: internal compiler error:
in final_scan_insn_1, at final.cc:2813                                          
0x2ff05df internal_error(char const*, ...)                                      
        ../../../gcc/gcc/diagnostic-global-context.cc:517 
0xcb27db fancy_abort(char const*, int, char const*)                             
        ../../../gcc/gcc/diagnostic.cc:1722
0xb40b53 _fatal_insn(char const*, rtx_def const*, char const*, int, char
const*)
        ../../../gcc/gcc/rtl-error.cc:108          
0xacc011 final_scan_insn_1                 
        ../../../gcc/gcc/final.cc:2813                                          
0xfc754b final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*)
        ../../../gcc/gcc/final.cc:2892
0xfc7775 final_1                      
        ../../../gcc/gcc/final.cc:1983                                          
0xfc8226 rest_of_handle_final         
        ../../../gcc/gcc/final.cc:4250
0xfc8226 execute                      
        ../../../gcc/gcc/final.cc:4328
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
```

I have reduced the case: https://godbolt.org/z/G7rKn4aGn

The initial finding is the ICE will disappear if `zbb` is not specified.

Reply via email to