[EMAIL PROTECTED] i386]$ cat x.c
/* { dg-do run } */
/* { dg-options "-O2 -msse2" } */
#include <emmintrin.h>
__m128i
test (long long b)
{
return _mm_cvtsi64_si128 (b);
}
[EMAIL PROTECTED] i386]$
/export/build/gnu/gcc-avx-internal/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-avx-internal/build-x86_64-linux/gcc/ -DDEBUG -Wall
-Werror -mfpmath=sse x.c -S -O2 -msse4 -march=core2
[EMAIL PROTECTED] i386]$ cat x.s
.file "x.c"
.text
.p2align 4,,15
.globl test
.type test, @function
test:
.LFB493:
.cfi_startproc
pxor %xmm0, %xmm0
pinsrq $0, %rdi, %xmm0
ret
.cfi_endproc
.LFE493:
.size test, .-test
[EMAIL PROTECTED] i386]$
Gcc 4.3 generates
[EMAIL PROTECTED] i386]$ gcc x.c -S -O2 -msse4 [EMAIL PROTECTED] i386]$ cat
x.s
.file "x.c"
.text
.p2align 4,,15
.globl test
.type test, @function
test:
.LFB518:
movq %rdi, %xmm0
ret
--
Summary: [4.4 Regression] Inefficent code for _mm_cvtsi64_si128
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37169