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.

Reply via email to