https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104582
--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> --- Another testcase is struct S { double a, b; } s; void foo (double a, double b) { s.a = a; s.b = b; } which also receives the same costs and compiles vectorized to unpcklpd %xmm1,%xmm0 movaps %xmm0,0x0(%rip) ret which is also smaller than unvectorized.