diff options
author | Chris Lattner <sabre@nondot.org> | 2008-02-22 02:09:43 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-02-22 02:09:43 +0000 |
commit | 149a4e56fcd29c37c416e0ce4a5ebed7b514cbc6 (patch) | |
tree | fb6487e395b84018597bf594fdede2d6df72d856 /test/CodeGen | |
parent | 59a8cdd36d644fd5d0d7c78c3c02b31f1ba29a95 (diff) |
Start using GPR's to copy around mmx value instead of mmx regs.
GCC apparently does this, and code depends on not having to do
emms when this happens. This is x86-64 only so far, second half
should handle x86-32.
rdar://5741668
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47470 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/X86/mmx-copy-gprs.ll | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/CodeGen/X86/mmx-copy-gprs.ll b/test/CodeGen/X86/mmx-copy-gprs.ll new file mode 100644 index 0000000000..8cf36e05a8 --- /dev/null +++ b/test/CodeGen/X86/mmx-copy-gprs.ll @@ -0,0 +1,14 @@ +; RUN: llvm-as < %s | llc -march=x86-64 | grep {movq.*(%rsi), %rax} + +; This test should use GPRs to copy the mmx value, not MMX regs. Using mmx regs, +; increases the places that need to use emms. + +; rdar://5741668 +target triple = "x86_64-apple-darwin8" + +define i32 @foo(<1 x i64>* %x, <1 x i64>* %y) nounwind { +entry: + %tmp1 = load <1 x i64>* %y, align 8 ; <<1 x i64>> [#uses=1] + store <1 x i64> %tmp1, <1 x i64>* %x, align 8 + ret i32 undef +} |