From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11819 invoked by alias); 1 Aug 2008 03:30:18 -0000 Received: (qmail 11231 invoked by uid 48); 1 Aug 2008 03:28:58 -0000 Date: Fri, 01 Aug 2008 03:30:00 -0000 Subject: [Bug target/36992] New: Very stange code for _mm_move_epi64 X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hjl dot tools at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-08/txt/msg00001.txt.bz2 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 __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