diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2009-08-03 05:21:05 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2009-08-03 05:21:05 +0000 |
commit | 8d632c1e984c1d2810e0e78a73977fdb0b23e125 (patch) | |
tree | 78f39454ca7333d77c23686bf38d0c4c0c8667e3 | |
parent | 05084716c13b4ea79ea29528dcb3c3f8a5271638 (diff) | |
download | llvm-8d632c1e984c1d2810e0e78a73977fdb0b23e125.tar.gz llvm-8d632c1e984c1d2810e0e78a73977fdb0b23e125.tar.bz2 llvm-8d632c1e984c1d2810e0e78a73977fdb0b23e125.tar.xz |
Use movd instead of movq
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77956 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86InstrMMX.td | 7 | ||||
-rw-r--r-- | test/CodeGen/X86/mmx-bitcast-to-i64.ll | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/Target/X86/X86InstrMMX.td b/lib/Target/X86/X86InstrMMX.td index 1a2a3bffb2..e9a8f582dd 100644 --- a/lib/Target/X86/X86InstrMMX.td +++ b/lib/Target/X86/X86InstrMMX.td @@ -164,11 +164,14 @@ def MMX_MOVD64to64rr : MMXRI<0x6E, MRMSrcReg, (outs VR64:$dst), (ins GR64:$src), []>; let neverHasSideEffects = 1 in { +// These are 64 bit moves, but since the OS X assembler doesn't +// recognize a register-register movq, we write them as +// movd. def MMX_MOVD64from64rr : MMXRI<0x7E, MRMDestReg, (outs GR64:$dst), (ins VR64:$src), - "movq\t{$src, $dst|$dst, $src}", []>; + "movd\t{$src, $dst|$dst, $src}", []>; def MMX_MOVD64rrv164 : MMXI<0x6E, MRMSrcReg, (outs VR64:$dst), (ins GR64:$src), - "movq\t{$src, $dst|$dst, $src}", + "movd\t{$src, $dst|$dst, $src}", [(set VR64:$dst, (v1i64 (scalar_to_vector GR64:$src)))]>; } diff --git a/test/CodeGen/X86/mmx-bitcast-to-i64.ll b/test/CodeGen/X86/mmx-bitcast-to-i64.ll index 04c4dd0566..c6bb48927b 100644 --- a/test/CodeGen/X86/mmx-bitcast-to-i64.ll +++ b/test/CodeGen/X86/mmx-bitcast-to-i64.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc -march=x86-64 | grep movq | count 8 +; RUN: llvm-as < %s | llc -march=x86-64 | grep movd | count 4 define i64 @foo(<1 x i64>* %p) { %t = load <1 x i64>* %p |