https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122406
Bug ID: 122406
Summary: [16 Regression] ICE on numpy-2.3.4 in
vectorizable_reduction: Segmentation fault
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: slyfox at gcc dot gnu.org
Target Milestone: ---
Noticed ICE on today's master from r16-4588-g81a7f4fef35542 (did not bisect).
Extracted example:
// $ cat einsum_sumprod.c.c
short *ushort_sum_of_arr_data;
long ushort_sum_of_arr_count;
unsigned short ushort_sum_of_arr_accum;
void ushort_sum_of_arr() {
for (; ushort_sum_of_arr_count;
ushort_sum_of_arr_count -= 4, ushort_sum_of_arr_data += 4)
ushort_sum_of_arr_accum +=
ushort_sum_of_arr_data[1] + ushort_sum_of_arr_data[3];
}
Crashing:
$ gcc/xgcc -Bgcc -c einsum_sumprod.c.c -o bug.o -O2 -fno-strict-overflow
during GIMPLE pass: vect
einsum_sumprod.c.c: In function ‘ushort_sum_of_arr’:
einsum_sumprod.c.c:4:6: internal compiler error: Segmentation fault
4 | void ushort_sum_of_arr() {
| ^~~~~~~~~~~~~~~~~
0x2637e60 internal_error(char const*, ...)
/home/slyfox/dev/git/gcc/gcc/diagnostic-global-context.cc:787
0x1086eb5 crash_signal
/home/slyfox/dev/git/gcc/gcc/toplev.cc:323
0x13f8dbc vectorizable_reduction(_loop_vec_info*, _stmt_vec_info*, _slp_tree*,
_slp_instance*, vec<stmt_info_for_cost, va_heap, vl_ptr>*)
/home/slyfox/dev/git/gcc/gcc/tree-vect-loop.cc:7075
0x13d2c62 vect_analyze_stmt(vec_info*, _slp_tree*, _slp_instance*,
vec<stmt_info_for_cost, va_heap, vl_ptr>*)
/home/slyfox/dev/git/gcc/gcc/tree-vect-stmts.cc:12881
0x1439987 vect_slp_analyze_node_operations_1
/home/slyfox/dev/git/gcc/gcc/tree-vect-slp.cc:8286
0x1439987 vect_slp_analyze_node_operations
/home/slyfox/dev/git/gcc/gcc/tree-vect-slp.cc:8555
0x143aa9a vect_slp_analyze_node_operations
/home/slyfox/dev/git/gcc/gcc/tree-vect-slp.cc:8532
0x143b8e9 vect_slp_analyze_operations(vec_info*)
/home/slyfox/dev/git/gcc/gcc/tree-vect-slp.cc:8959
0x13f1d76 vect_analyze_loop_2
/home/slyfox/dev/git/gcc/gcc/tree-vect-loop.cc:2321
0x13f204f vect_analyze_loop_1
/home/slyfox/dev/git/gcc/gcc/tree-vect-loop.cc:2788
0x13f2932 vect_analyze_loop(loop*, gimple*, vec_info_shared*)
/home/slyfox/dev/git/gcc/gcc/tree-vect-loop.cc:2969
0x1454a54 try_vectorize_loop_1
/home/slyfox/dev/git/gcc/gcc/tree-vectorizer.cc:1096
0x1454a54 try_vectorize_loop
/home/slyfox/dev/git/gcc/gcc/tree-vectorizer.cc:1215
0x1455079 execute
/home/slyfox/dev/git/gcc/gcc/tree-vectorizer.cc:1331
$ gcc/xgcc -Bgcc -v
Reading specs from gcc/specs
COLLECT_GCC=gcc/xgcc
COLLECT_LTO_WRAPPER=gcc/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/slyfox/dev/git/gcc/configure --disable-multilib
--disable-bootstrap --disable-lto --disable-libsanitizer --enable-languages=c
CFLAGS='-O1 -ggdb3' CXXFLAGS='-O1 -ggdb3' LDFLAGS='-O1 -ggdb3'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 16.0.0 20251024 (experimental) (GCC)