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.