https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92751
Bug ID: 92751 Summary: VN partial def support confused about clobbers Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- FRE doesn't optimize MEM[(struct Vec *)&D.195309] ={v} {CLOBBER}; MEM[(struct Vec *)&D.195309].val = 128; MEM[(struct Vec *)&D.195309 + 2B] ={v} {CLOBBER}; MEM[(struct Vec *)&D.195309 + 2B].val = 128; ... MEM[(struct Vec *)&D.195309 + 28B].val = 128; MEM[(struct Vec *)&D.195309 + 30B] ={v} {CLOBBER}; MEM[(struct Vec *)&D.195309 + 30B].val = 128; _127 = MEM <vector(16) short unsigned int> [(char * {ref-all})&D.195309]; to a vector constant because it's confused by the CLOBBERs.