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.