https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122219

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=92750

--- Comment #10 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The second example with  -fno-tree-sra, and my patch should be optimized fully.

Or close (VCE is short for VIEW_CONVERT_EXPR):
```
 // _15 = VIEW_CONVERT_EXPR<uint128_t>(f0_8);
  //MEM <uint128_t> [(char * {ref-all})&r] = _15;
 // D.62885 = r;
  //r ={v} {CLOBBER(eos)};
  r_.m128_private[0] = D.62885; // = VCE<union simde__m128_private>(f0_8)
 // v = r_;
  _16 = MEM <simde__m256> [(char * {ref-all})&v]; // = VCE<simde__m256>(r_)
 // v ={v} {CLOBBER(eos)};
  r_ ={v} {CLOBBER(eos)};
  a_ ={v} {CLOBBER(bob)}; // DSE should get rid of this, this is PR 92750
  MEM <simde__m256> [(char * {ref-all})&a_] = _16;
 // _12 = VIEW_CONVERT_EXPR<uint128_t>(f1_9);
 // MEM <uint128_t> [(char * {ref-all})&r] = _12;
 // D.62877 = r;
//  r ={v} {CLOBBER(eos)};
  a_.m128_private[1] = D.62877; // = VCE<union simde__m128_private>(f1_9)
//  v = a_;
  _10 = MEM <simde__m256> [(char * {ref-all})&v]; // = VCE<simde__m256>(a_)
```

But that

Reply via email to