Created attachment 57588 [details] -freport-bug output Testcase: long a, b; extern short c[]; void d() { for (int e = 0; e < 5; e += 2) { a = ({ a < 0 ? a : 0; }); b = ({ b < 0 ? b : 0; }); c[e] = 0; } } Backtrace: > /scratch/tc-testing/tc-feb-20/build-rv64gcv/bin/riscv64-unknown-linux-gnu-gcc -march=rv64gcv -O3 red.c during GIMPLE pass: vect red.c: In function 'd': red.c:3:6: internal compiler error: in vectorizable_store, at tree-vect-stmts.cc:8690 3 | void d() { | ^ 0xbe592a vectorizable_store ../../../gcc/gcc/tree-vect-stmts.cc:8690 0x274ff35 vect_analyze_stmt(vec_info*, _stmt_vec_info*, bool*, _slp_tree*, _slp_instance*, vec<stmt_info_for_cost, va_heap, vl_ptr>*) ../../../gcc/gcc/tree-vect-stmts.cc:13241 0x15de0e2 vect_analyze_loop_operations ../../../gcc/gcc/tree-vect-loop.cc:2208 0x15de0e2 vect_analyze_loop_2 ../../../gcc/gcc/tree-vect-loop.cc:3041 0x15dfdf0 vect_analyze_loop_1 ../../../gcc/gcc/tree-vect-loop.cc:3481 0x15e0589 vect_analyze_loop(loop*, vec_info_shared*) ../../../gcc/gcc/tree-vect-loop.cc:3639 0x1627ed4 try_vectorize_loop_1 ../../../gcc/gcc/tree-vectorizer.cc:1066 0x1627ed4 try_vectorize_loop ../../../gcc/gcc/tree-vectorizer.cc:1182 0x16287fc execute ../../../gcc/gcc/tree-vectorizer.cc:1298 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://godbolt.org/z/s9YbYhK8e Tested/found using r14-9084-g61ab046a327 (not bisected) Found via fuzzer.
Confirmed with 1. build option '-march=rv64gcv -O3'. 2. riscv64-unknown-elf-gcc (GCC) 14.0.1 20240306 (experimental). If no one works on this ICE already, will take a look into it.
Trigger below assert in vectorizable_store, the loop_vinfo use_partial, fully_masked and fully_lens are all true here. /* Shouldn't go with length-based approach if fully masked. */ gcc_assert (!loop_lens || !loop_masks); Introduce by this commit https://github.com/gcc-mirror/gcc/commit/9fb832ce382d649b7687426e6bc4e5d3715cb78a#diff-97f675a4f401d6ec84d031e0d7259a0b6ba3b50eccc3fe483e9376becc9d9cf9
Testing a fix for possible regression.
Hi Patrick, Could you please help to double-check if upstream has this problem? As well as PR114198. Thanks.
Fixed - Thank you!