https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122301
Bug ID: 122301
Summary: [16 Regression] ICE on dav1d-1.5.1: internal compiler
error: in vect_analyze_slp_reduc_chain, at
tree-vect-slp.cc:4215
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-4458-g822a139e7d3bd9 when building
dav1d-1.5.1. Did not bisect.
Extracted reproducer:
$ cat decode.c.c
int get_prev_frame_segid_w4;
unsigned char *get_prev_frame_segid_ref_seg_map;
void get_prev_frame_segid() {
int __trans_tmp_1;
unsigned seg_id = 8;
for (int x = 0; x < get_prev_frame_segid_w4; x++) {
int a = seg_id;
__trans_tmp_1 = a < get_prev_frame_segid_ref_seg_map[x]
? a
: get_prev_frame_segid_ref_seg_map[x];
seg_id = __trans_tmp_1;
}
while (__trans_tmp_1)
;
}
Crashing:
gcc/xgcc -Bgcc -c decode.c.c -O2 -Wall
during GIMPLE pass: vect
decode.c.c: In function ‘get_prev_frame_segid’:
decode.c.c:3:6: internal compiler error: in vect_analyze_slp_reduc_chain, at
tree-vect-slp.cc:4215
3 | void get_prev_frame_segid() {
| ^~~~~~~~~~~~~~~~~~~~
0x2628104 diagnostics::context::diagnostic_impl(rich_location*,
diagnostics::metadata const*, diagnostics::option_id, char const*,
__va_list_tag (*) [1], diagnostics::kind)
???:0
0x261a3cc internal_error(char const*, ...)
???:0
0x2624f30 fancy_abort(char const*, int, char const*)
???:0
0x142ce9d vect_analyze_slp_reduc_chain(_loop_vec_info*,
hash_map<vec<_stmt_vec_info*, va_heap, vl_ptr>, _slp_tree*,
simple_hashmap_traits<bst_traits, _slp_tree*> >*, _stmt_vec_info*, unsigned
int, unsigned int*)
???:0
0x142dcfe vect_analyze_slp_reduction(_loop_vec_info*, _stmt_vec_info*, unsigned
int, unsigned int*, hash_map<vec<_stmt_vec_info*, va_heap, vl_ptr>, _slp_tree*,
simple_hashmap_traits<bst_traits, _slp_tree*> >*, bool)
???:0
0x1432b53 vect_analyze_slp(vec_info*, unsigned int, bool)
???:0
0x13efcbc vect_analyze_loop_2(_loop_vec_info*, bool&, unsigned int*, bool&)
???:0
0x13f00b4 vect_analyze_loop_1(loop*, vec_info_shared*, vect_loop_form_info
const*, _loop_vec_info*, vec<machine_mode, va_heap, vl_ptr> const&, unsigned
int&, int, machine_mode&, bool&)
???:0
0x13f0997 vect_analyze_loop(loop*, gimple*, vec_info_shared*)
???:0
0x1451654 try_vectorize_loop(hash_table<simduid_to_vf, false, xcallocator>*&,
unsigned int*, loop*, function*)
???:0
0x1451c6d (anonymous namespace)::pass_vectorize::execute(function*)
???:0
$ 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 -g0' CXXFLAGS='-O1 -g0' LDFLAGS='-O1 -g0'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 16.0.0 20251016 (experimental) (GCC)