https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96022
Bug ID: 96022
Summary: ICE during GIMPLE pass: slp in operator[], at
vec.h:867
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: vsevolod.livinskij at frtk dot ru
Target Milestone: ---
>$ g++ -c -O3 func.cpp
during GIMPLE pass: slp
func.cpp: In function ‘void test(short int, bool, int)’:
func.cpp:3:6: internal compiler error: in operator[], at vec.h:867
3 | void test(short a, bool, int p8) {
| ^~~~
0x850b10 vec<tree_node*, va_heap, vl_embed>::operator[](unsigned int)
gcc/vec.h:867
0x850b10 vec<tree_node*, va_heap, vl_ptr>::operator[](unsigned int)
gcc/vec.h:1433
0x852d71 vec<tree_node*, va_heap, vl_ptr>::operator[](unsigned int)
gcc/tree.h:3424
0x852d71 vectorizable_shift
gcc/tree-vect-stmts.c:5492
0x1385aa0 vect_transform_stmt(vec_info*, _stmt_vec_info*,
gimple_stmt_iterator*, _slp_tree*, _slp_instance*)
gcc/tree-vect-stmts.c:10640
0x13b08e3 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4350
0x13b0904 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4229
0x13b0904 vect_schedule_slp_instance
gcc/tree-vect-slp.c:4229
0x13b72a6 vect_schedule_slp(vec_info*)
gcc/tree-vect-slp.c:4465
0x13b9af0 vect_slp_bb_region
gcc/tree-vect-slp.c:3303
0x13b9af0 vect_slp_bb(basic_block_def*)
gcc/tree-vect-slp.c:3433
0x13bb466 execute
gcc/tree-vectorizer.c:1384
Reproducer:
extern int arr_6[];
extern char arr_7[] __attribute__((aligned));
void test(short a, bool, int p8) {
for (bool b = 0; b < (bool)p8; b = 1)
for (short c = 0; c < 5; c++) {
arr_6[c] = (long)2 << a - 30574;
arr_7[c] = 0;
}
}
GCC version:
11.0.0 20200630 (67ef8cfc1c1d440eafa89a26710bced934a485dc) (GCC)