https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95295
--- Comment #6 from Vsevolod Livinskiy <vsevolod.livinskij at frtk dot ru> --- Thank you for such a quick fix! Sorry about duplicates, I saw different assert messages and thought that they were different bugs. I still can see ICE in hoist_memory_references (bug 95283) on trunk. I've attached the reproducer below. Please let me know if it is a different bug, and I'll create another bug report. Error: >$ g++ -c -O3 func.cpp during GIMPLE pass: lim func.cpp: In function ‘void test()’: func.cpp:5:6: internal compiler error: in hoist_memory_references, at tree-ssa-loop-im.c:2615 5 | void test() { | ^~~~ 0x82318c hoist_memory_references gcc_src/gcc/tree-ssa-loop-im.c:2615 0x82318c store_motion_loop gcc_src/gcc/tree-ssa-loop-im.c:2912 0x123853a do_store_motion gcc_src/gcc/tree-ssa-loop-im.c:2937 0x123853a tree_ssa_lim gcc_src/gcc/tree-ssa-loop-im.c:3156 0x123853a execute gcc_src/gcc/tree-ssa-loop-im.c:3206 Reproducer: extern short var_15, var_20; extern int var_18, var_21, var_23; extern bool arr_2[]; extern long arr_3[]; void test() { var_20 = 1; for (int a = 0; a < 12; a += 2) for (short b = 0; b < 8; b += 2) { arr_2[b] = var_21 = var_18 ? var_15 : 0; arr_3[b] = 8569; } var_23 = -1096835496; } GCC version: 11.0.0 (adad99eb906164af7d2b398ad7e430aebe3adeb4)