https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98308
Bug ID: 98308 Summary: ICe in in vect_slp_analyze_node_operations, at tree-vect-slp.c:3764 with -O3 -march=skylake-avx512 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: --- Reproducer: extern unsigned long long int arr_86[]; extern unsigned long long int arr_87[][15]; void test(bool a, unsigned short c[][15], unsigned char d[]) { for (short h = 0; h < 10; h++) for (char i = 0; i < 15; i += 2) { arr_86[0] = d[0]; arr_87[h][0] = a ? c[h][i] : 0; } } Error: >$ g++ -c -O3 -march=skylake-avx512 func.cpp during GIMPLE pass: vect func.cpp: In function ‘void test(bool, short unsigned int (*)[15], unsigned char*)’: func.cpp:4:6: internal compiler error: in vect_slp_analyze_node_operations, at tree-vect-slp.c:3764 4 | void test(bool a, unsigned short c[][15], unsigned char d[]) { | ^~~~ 0x886a4d vect_slp_analyze_node_operations gcc_src/gcc/tree-vect-slp.c:3764 0x1425a73 vect_slp_analyze_node_operations gcc_src/gcc/tree-vect-slp.c:3719 0x1425a73 vect_slp_analyze_node_operations gcc_src/gcc/tree-vect-slp.c:3719 0x1425a73 vect_slp_analyze_node_operations gcc_src/gcc/tree-vect-slp.c:3719 0x1427101 vect_slp_analyze_operations(vec_info*) gcc_src/gcc/tree-vect-slp.c:3914 0x1404939 vect_analyze_loop_2 gcc_src/gcc/tree-vect-loop.c:2391 0x1404939 vect_analyze_loop(loop*, vec_info_shared*) gcc_src/gcc/tree-vect-loop.c:2929 0x14311f4 try_vectorize_loop_1 gcc_src/gcc/tree-vectorizer.c:1008 0x1431c59 vectorize_loops() gcc_src/gcc/tree-vectorizer.c:1242 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions. gcc version 11.0.0 20201214 (22a90217305ee8c116bbc12c8d07abe7ca0ff61d)