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)

Reply via email to