https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126457
Bug ID: 126457
Summary: [16/17 Regression] ICE at -O2/3 on aarch64 during
GIMPLE pass: vect
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: xxs_chy at outlook dot com
Target Milestone: ---
gcc version 17.0.0 20260729 (experimental) (GCC)
Reproducer: https://godbolt.org/z/3TvYc9h3v
Reduced case:
#include <stdint.h>
int32_t g6, g24;
_Bool f18_c6;
void f18()
{
int a1;
int32_t bb16 = 607229;
lbl_sw5:
bb16 = __builtin_clz(bb16);
f18_c6 = a1;
a1 = g24;
if (f18_c6) goto lbl_sw5;
g6 = __builtin_parity(bb16);
return;
}
Dump at -O2:
during GIMPLE pass: vect
/tmp/tmp3wipdfdf/case.c: In function 'f17':
/tmp/tmp3wipdfdf/case.c:7041:7: internal compiler error: in operator[], at
vec.h:911
7041 | void* f17(int16_t a0, int64_t a1, int16_t a2, int16_t a3, void* a4) {
| ^~~
0x27248cd internal_error(char const*, ...)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/diagnostic-global-context.cc:787
0xb0f75f fancy_abort(char const*, int, char const*)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/diagnostics/context.cc:1813
0x9fe238 vec<edge_def*, va_gc, vl_embed>::operator[](unsigned int)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/vec.h:911
0x9ff833 vec<_slp_tree*, va_heap, vl_embed>::operator[](unsigned int)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-stmts.cc:13987
0x9ff833 vec<_slp_tree*, va_heap, vl_ptr>::operator[](unsigned int)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/vec.h:1610
0x9ff833 vect_is_simple_use(vec_info*, _slp_tree*, unsigned int, tree_node**,
_slp_tree**, vect_def_type*, tree_node**, _stmt_vec_info**)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-stmts.cc:13969
0x164db11 vectorizable_reduction(_loop_vec_info*, _stmt_vec_info*, _slp_tree*,
_slp_instance*, vec<stmt_info_for_cost, va_heap, vl_ptr>*)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-loop.cc:7226
0x1622286 vect_analyze_stmt(vec_info*, _slp_tree*, _slp_instance*,
vec<stmt_info_for_cost, va_heap, vl_ptr>*)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-stmts.cc:13347
0x168b021 vect_slp_analyze_node_operations_1
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-slp.cc:8721
0x168b021 vect_slp_analyze_node_operations
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-slp.cc:8990
0x168afb9 vect_slp_analyze_node_operations
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-slp.cc:8967
0x168bf31 vect_slp_analyze_operations(vec_info*)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-slp.cc:9299
0x1641e7d vect_analyze_loop_2
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-loop.cc:2367
0x1643b25 vect_analyze_loop_1
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-loop.cc:2821
0x16443e0 vect_analyze_loop(loop*, gimple*, vec_info_shared*)
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vect-loop.cc:3002
0x16a1f63 try_vectorize_loop_1
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vectorizer.cc:1099
0x16a1f63 try_vectorize_loop
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vectorizer.cc:1218
0x16a27a4 execute
/data/Projects/compiler-test-env/cte-work/src/gcc/gcc/tree-vectorizer.cc:1335