https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83008
--- Comment #16 from sergey.shalnov at intel dot com --- «it's one vec_construct operation - it's the task of the target to turn this into a cost comparable to vector_store» I agree that vec_construct operation cost is based on the target cost model. I think I don't completely understand why we have 1 vec_construct for 3 vector_store. I would expect vec_construct for each vec_store operation. I just looking for asm and see that each "vmovaps %xmm, (%rsp)" has it's own construction procedure (in this asm I extracted only one vector_store from 3 vector_store set generated) vec_construct: 2d3: c5 79 6e dd vmovd %ebp,%xmm11 310: c4 41 79 6e d0 vmovd %r8d,%xmm10 2e0: c4 63 21 22 e2 01 vpinsrd $0x1,%edx,%xmm11,%xmm12 31a: c4 43 29 22 e9 01 vpinsrd $0x1,%r9d,%xmm10,%xmm13 329: c4 41 11 6c f4 vpunpcklqdq %xmm12,%xmm13,%xmm14 vector_store: 340: c5 78 29 74 24 d8 vmovaps %xmm14,-0x28(%rsp)