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