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.

Reply via email to