https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99777
Bug ID: 99777 Summary: ICE in build2, at tree.c:4869 with -O3 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: --- The error is not specific to skylake-avx512, I have a reproducer that shows it. Reproducer: #include <algorithm> extern int var_142; extern int a, c; long h; unsigned long long e; signed char d; extern short arr_323[][7][5][30]; void test(long long b, short f[][17][25][22][20]) { for (char i = 0; i < 7; i += 3) for (unsigned char l = e; l < 5; l += 2) { if (std::max((long long)0, std::min((long long)7, b))) for (bool j = 0; j < 1; j = b) { for (unsigned k = d; k < 20; k++) h = f[0][i][l][b][k]; for (int m = 0; m < 5; m++) arr_323[c][i][l][m] = 0; } for (int n = 0; n < 4; n += a) var_142 = n; } } Error: >$ g++ -O3 -march=skylake-avx512 func.cpp -c during GIMPLE pass: lim func.cpp: In function ‘void test(long long int, short int (*)[17][25][22][20])’: func.cpp:10:6: internal compiler error: in build2, at tree.c:4869 10 | void test(long long b, | ^~~~ 0x85386f build2(tree_code, tree_node*, tree_node*, tree_node*) gcc/gcc_src/gcc/tree.c:4869 0xddb96f build2_loc gcc/gcc_src/gcc/tree.h:4407 0xddb96f fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) gcc/gcc_src/gcc/fold-const.c:13736 0xde8de3 extract_muldiv_1 gcc/gcc_src/gcc/fold-const.c:6976 0xdea422 extract_muldiv gcc/gcc_src/gcc/fold-const.c:6662 0xdea422 extract_muldiv gcc/gcc_src/gcc/fold-const.c:6662 0xdea422 extract_muldiv gcc/gcc_src/gcc/fold-const.c:6662 0xdd6bb1 fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) gcc/gcc_src/gcc/fold-const.c:11486 0xddb94d fold_build2_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) gcc/gcc_src/gcc/fold-const.c:13734 0x1c3b096 aff_combination_add_elt(aff_tree*, tree_node*, generic_wide_int<fixed_wide_int_storage<192> > const&) gcc/gcc_src/gcc/tree-affine.c:187 0x1c3b3d5 aff_combination_add(aff_tree*, aff_tree*) gcc/gcc_src/gcc/tree-affine.c:215 0x124fc0f mem_refs_may_alias_p gcc/gcc_src/gcc/tree-ssa-loop-im.c:1718 0x124fc83 refs_independent_p gcc/gcc_src/gcc/tree-ssa-loop-im.c:2703 0x12502b4 ref_indep_loop_p gcc/gcc_src/gcc/tree-ssa-loop-im.c:2764 0x1255ff4 can_sm_ref_p gcc/gcc_src/gcc/tree-ssa-loop-im.c:2832 0x1255ff4 find_refs_for_sm gcc/gcc_src/gcc/tree-ssa-loop-im.c:2853 0x1255ff4 store_motion_loop gcc/gcc_src/gcc/tree-ssa-loop-im.c:2889 0x1255ddc store_motion_loop gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896 0x1255ddc store_motion_loop gcc/gcc_src/gcc/tree-ssa-loop-im.c:2896 0x1258262 do_store_motion gcc/gcc_src/gcc/tree-ssa-loop-im.c:2911 gcc version 11.0.1 20210323 (6b1f841ce0ccf30eda7896ba5ab0aa94c72307b2) (GCC)