This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/37169] New: [4.4 Regression] Inefficent code for _mm_cvtsi64_si128


[hjl@gnu-6 i386]$ cat x.c
/* { dg-do run } */
/* { dg-options "-O2 -msse2" } */

#include <emmintrin.h>

__m128i
test (long long b)
{
  return _mm_cvtsi64_si128 (b); 
}
[hjl@gnu-6 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
[hjl@gnu-6 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
[hjl@gnu-6 i386]$ 

Gcc 4.3 generates
hjl@gnu-6 i386]$ gcc  x.c -S  -O2 -msse4 -march=core2[hjl@gnu-6 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]