https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113597
--- Comment #16 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note trunk can do better IPA CP and replace the argument g with 0.
On the gimple level we get:
float32x4_t r[16];
<bb 2> [local count: 6156018]:
r[4] = { 0.0, 0.0, 0.0, 0.0 };
__builtin_memcpy (v_53(D), &r, 256);
r ={v} {CLOBBER(eos)};
I am still thinking the testcase was over-reduced even.
Now I say this could covert that into just
MEM<(float32x4_t*)v_53 + 16B> = { 0.0, 0.0, 0.0, 0.0 };
And still have the correct behavior.