This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36992] New: Very stange code for _mm_move_epi64
- From: "hjl dot tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Aug 2008 03:28:58 -0000
- Subject: [Bug target/36992] New: Very stange code for _mm_move_epi64
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
We should generate "movq" for _mm_move_epi64. But instead, we
generate very strange code and never movq:
[hjl@gnu-6 gcc]$ cat /tmp/m.c
#include <emmintrin.h>
__m128i
test (__m128i b)
{
return _mm_move_epi64 (b);
}
[hjl@gnu-6 gcc]$ ./xgcc -B./ -S /tmp/m.c
[hjl@gnu-6 gcc]$ cat m.s
.file "m.c"
.text
.globl test
.type test, @function
test:
.LFB493:
pushq %rbp
.LCFI0:
movq %rsp, %rbp
.LCFI1:
movdqa %xmm0, -32(%rbp)
movdqa -32(%rbp), %xmm0
movdqa %xmm0, %xmm0
movdq2q %xmm0, %mm0
movq %mm0, -40(%rbp)
movq -40(%rbp), %rax
movl $0, %edx
movq %rax, -16(%rbp)
movq %rdx, -8(%rbp)
movdqu -16(%rbp), %xmm0
leave
ret
...
[hjl@gnu-6 gcc]$ ./xgcc -B./ -S /tmp/m.c -O2
[hjl@gnu-6 gcc]$ cat m.s
.file "m.c"
.text
.p2align 4,,15
.globl test
.type test, @function
test:
.LFB516:
movhps .LC0(%rip), %xmm0
ret
--
Summary: Very stange code for _mm_move_epi64
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
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36992