https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103864
Bug ID: 103864 Summary: [11/12 Regression] ICE in vect_transform_reduction, at tree-vect-loop.c:7389 Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: aarch64-linux-gnu gcc 12.0.0 20211226 (g:d87483015d476a95f521f0c9dcf6988ca889063b) ICEs when compiling the following testcase, reduced from gcc/testsuite/gcc.dg/vect/pr103544.c, w/ -O3 -fno-tree-reassoc: void crash_me (short int *crash_me_result, int i, char crash_me_ptr_0) { while (i < 1) { int j; for (j = 0; j < 2; ++j) crash_me_result[j] += crash_me_ptr_0 + 1; i += 3; } } % aarch64-linux-gnu-gcc-12.0.0 -O3 -fno-tree-reassoc -c iyhuldkz.c during GIMPLE pass: vect iyhuldkz.c: In function 'crash_me': iyhuldkz.c:2:1: internal compiler error: in vect_transform_reduction, at tree-vect-loop.c:7389 2 | crash_me (short int *crash_me_result, int i, char crash_me_ptr_0) | ^~~~~~~~ 0x7b8353 vect_transform_reduction(_loop_vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, gimple**, _slp_tree*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-loop.c:7389 0x1bf70c0 vect_transform_stmt(vec_info*, _stmt_vec_info*, gimple_stmt_iterator*, _slp_tree*, _slp_instance*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-stmts.c:11255 0x1193427 vect_schedule_slp_node /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7270 0x11a53ac vect_schedule_scc /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7514 0x11a6417 vect_schedule_slp(vec_info*, vec<_slp_instance*, va_heap, vl_ptr> const&) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-slp.c:7579 0x117fa10 vect_transform_loop(_loop_vec_info*, gimple*) /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vect-loop.c:9625 0x11b273f vect_transform_loops /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1003 0x11b273f try_vectorize_loop_1 /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1133 0x11b273f try_vectorize_loop /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1162 0x11b2f84 execute /var/tmp/portage/cross-aarch64-linux-gnu/gcc-12.0.0_p20211226/work/gcc-12-20211226/gcc/tree-vectorizer.c:1278