https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80819
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
Status|UNCONFIRMED |NEW
Last reconfirmed| |2017-05-19
Target Milestone|--- |5.5
Ever confirmed|0 |1
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
_mm_set_epi64x (long long __q1, long long __q0)
{
return __extension__ (__m128i)(__v2di){ __q0, __q1 };
}
so we should go via the vector construction expander.
Confirmed with GCC 7. GCC 4.8 with -O2 -msse4 yields
combine64:
.LFB638:
.cfi_startproc
movq %rdi, -16(%rsp)
movq -16(%rsp), %xmm0
pinsrq $1, %rsi, %xmm0
ret
so the dead store is not here.