https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114264
Bug ID: 114264 Summary: RISC-V: ICE in riscv-vector-costs.cc of gcc master branch Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: deminhan at gcc dot gnu.org Target Milestone: --- The following code can result in ICE: -march=rv64gcv --param riscv-autovec-lmul=dynamic -O3 char *jpeg_difference7_input_buf; void jpeg_difference7(int *diff_buf) { unsigned width; int samp, Rb; while (--width) { Rb = samp = *jpeg_difference7_input_buf; *diff_buf++ = -(int)(samp + (long)Rb >> 1); } } during GIMPLE pass: vect testcase.i: In function 'jpeg_difference7': testcase.i:2:6: internal compiler error: in compute_nregs_for_mode, at config/riscv/riscv-vector-costs.cc:453 2 | void jpeg_difference7(int *diff_buf) { | ^~~~~~~~~~~~~~~~ 0xb2a30f compute_nregs_for_mode ../../../gcc/gcc/config/riscv/riscv-vector-costs.cc:453 0x17b19e6 max_number_of_live_regs ../../../gcc/gcc/config/riscv/riscv-vector-costs.cc:492 0x17b57a5 has_unexpected_spills_p ../../../gcc/gcc/config/riscv/riscv-vector-costs.cc:834