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

Reply via email to