https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111231
--- Comment #29 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- Sorry, I was looking at the wrong pair of insns. The earlier store to that location was insn 111. 111: [r212:SI (1 MEM[(struct Vec128 *)_179]+0 S4 A64)] = {r0:SI..r3:SI} It appears that the problem is a disagreement between alias_set_subset_of () and alias_sets_conflict_p(). The former thinks sets 1 and 2 have a permissible subset relationship (2 is a subset of 1), so removes the later store during postreload. The latter is then used by alias_sets_conflict_p which thinks there is no conflict between the two sets and fails to add a scheduling dependency before sched2.