aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/mmx-copy-gprs.ll
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-02-22 02:09:43 +0000
committerChris Lattner <sabre@nondot.org>2008-02-22 02:09:43 +0000
commit149a4e56fcd29c37c416e0ce4a5ebed7b514cbc6 (patch)
treefb6487e395b84018597bf594fdede2d6df72d856 /test/CodeGen/X86/mmx-copy-gprs.ll
parent59a8cdd36d644fd5d0d7c78c3c02b31f1ba29a95 (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/X86/mmx-copy-gprs.ll')
-rw-r--r--test/CodeGen/X86/mmx-copy-gprs.ll14
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
+}