https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61722
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Keywords| |missed-optimization Last reconfirmed| |2021-08-06 Ever confirmed|0 |1 CC| |pinskia at gcc dot gnu.org Component|rtl-optimization |tree-optimization Severity|normal |enhancement --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This comes from doing this: typedef float m128 __attribute__ ((__vector_size__ (16))); m128 a(long long _v ) { m128 v;//={0,0}; ((long long*)&v)[0]=((long long*)&v)[1]=_v; return v; } v is still forced on the stack.