[llvm-commits] [llvm] r77940 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp lib/Target/X86/X86InstrMMX.td test/CodeGen/X86/2009-08-02-mmx-scalar-to-vector.ll test/CodeGen/X86/mmx-bitcast-to-i64.ll
Rafael Espindola
espindola at google.com
Sun Aug 2 20:20:41 PDT 2009
> Really? I get two movd's for the following testcase:
So do I. I noticed the movq in the test for bug 4669. I now realize
that it was in a load. For example, gcc produces a movq for
__m64 c(__m64 *x) { return *x;}
On interesting experiment is assembling and disassembling the file. We get
--------------
objdump -S a.out
a.out: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <a>:
0: 66 48 0f 7e c0 movq %xmm0,%rax
5: c3 retq
0000000000000006 <b>:
6: 66 48 0f 6e c7 movq %rdi,%xmm0
b: c3 retq
000000000000000c <c>:
c: f3 0f 7e 07 movq (%rdi),%xmm0
10: c3 retq
----------------
So it looks like the gnu assembler will convert movd into movq. This
might still be a problem for the JIT, since it can't use the
assembler's help.
Cheers,
--
Rafael Avila de Espindola
Google | Gordon House | Barrow Street | Dublin 4 | Ireland
Registered in Dublin, Ireland | Registration Number: 368047
More information about the llvm-commits
mailing list