https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118924
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |alias --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- But DSE removes the stores: ``` Deleted dead store: # .MEM_26 = VDEF <.MEM_11> typesD.4024[2] = 2; Deleted dead store: # .MEM_11 = VDEF <.MEM_24> typesD.4024[1] = 1; Deleted dead store: # .MEM_24 = VDEF <.MEM_3> typesD.4024[0] = 0; ``` Manually doing these stores are not removed though. So maybe there is oddity of how SRA adds these assignments. # VUSE <.MEM_5(D)> SR.4_7 = *.LC0D_4043[0l]; # VUSE <.MEM_5(D)> SR.5_8 = *.LC0D_4043[1l]; # VUSE <.MEM_5(D)> SR.6_9 = *.LC0D_4043[2l]; ... # .MEM_24 = VDEF <.MEM_3> typesD_4024[0l] = SR.4_7; # .MEM_11 = VDEF <.MEM_24> typesD_4024[1l] = SR.5_8; # .MEM_26 = VDEF <.MEM_11> typesD_4024[2l] = SR.6_9;