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

            Bug ID: 116351
           Summary: [15 only] RISC-V ICE: in get_len_load_store_mode, at
                    optabs-tree.cc:664
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: patrick at rivosinc dot com
  Target Milestone: ---

Testcase:
int a, b, c;
short d, e, f;
long(g)(long h) { return h; }
void i() {
  for (; b; ++b) {
    f = 5 >> a ? d : d << a;
    e &= c | g(f);
  }
}

Command/backtrace:
> /scratch/tc-testing/tc-compiler-fuzz-trunk/build-gcv/bin/riscv64-unknown-linux-gnu-gcc
>  -O3 -march=rv64imd_xsfvcp -mrvv-vector-bits=zvl -Wall preprocessed.c -c -o 
> /dev/null
during GIMPLE pass: vect
preprocessed.c: In function 'i':
preprocessed.c:4:6: internal compiler error: in get_len_load_store_mode, at
optabs-tree.cc:664
    4 | void i() {
      |      ^
0x2db6465 internal_error(char const*, ...)
        ../../../gcc/gcc/diagnostic-global-context.cc:491
0xc4eb14 fancy_abort(char const*, int, char const*)
        ../../../gcc/gcc/diagnostic.cc:1772
0xad38f9 get_len_load_store_mode(machine_mode, bool, internal_fn*)
        ../../../gcc/gcc/optabs-tree.cc:664
0x1685f64 vect_verify_loop_lens
        ../../../gcc/gcc/tree-vect-loop.cc:1565
0x1685f64 vect_analyze_loop_2
        ../../../gcc/gcc/tree-vect-loop.cc:3078
0x1686d60 vect_analyze_loop_1
        ../../../gcc/gcc/tree-vect-loop.cc:3484
0x16874f9 vect_analyze_loop(loop*, vec_info_shared*)
        ../../../gcc/gcc/tree-vect-loop.cc:3642
0x16d21c4 try_vectorize_loop_1
        ../../../gcc/gcc/tree-vectorizer.cc:1067
0x16d21c4 try_vectorize_loop
        ../../../gcc/gcc/tree-vectorizer.cc:1183
0x16d2aec execute
        ../../../gcc/gcc/tree-vectorizer.cc:1299
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.

Godbolt: https://ice.godbolt.org/z/aEd5q4j8d

Found via fuzzer.

Reply via email to