https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63864
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 34025 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34025&action=edit candidate patch for DOM Ok, so I have a patch to teach DOM to do more memory CSE but for this testcase what remains is stuff like MEM[(float &)&r].e[0] = _220; _228 = y_5(D) * s_8(D); MEM[(float &)&r].e[1] = _228; _21 = z_6(D) * s_8(D); MEM[(float &)&r].e[2] = _21; D.2621 = r; r ={v} {CLOBBER}; D.2620 = D.2621; D.2459 = D.2620; _201 = D.2459.e[0]; thus it isn't able to look through aggregate copies (which wouldn't fit how I implemented it very well).