aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2009-06-04 02:32:04 +0000
committerEli Friedman <eli.friedman@gmail.com>2009-06-04 02:32:04 +0000
commitbccf4b3050907b61b9d5349601269a0474b4c0fd (patch)
tree0035e9446d55b64ed29a7a109a010074d4c07dd2 /test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
parent9a417121225506cdde5a9b3c73122b2158830bf0 (diff)
downloadexternal_llvm-bccf4b3050907b61b9d5349601269a0474b4c0fd.zip
external_llvm-bccf4b3050907b61b9d5349601269a0474b4c0fd.tar.gz
external_llvm-bccf4b3050907b61b9d5349601269a0474b4c0fd.tar.bz2
PR3739, part 2: Use an explicit store to spill XMM registers. (Previously,
the code tried to use "push", which doesn't exist for XMM registers.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72836 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll')
-rw-r--r--test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll b/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
new file mode 100644
index 0000000..33d7972
--- /dev/null
+++ b/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
@@ -0,0 +1,12 @@
+; RUN: llvm-as < %s | llc -o %t1 -f
+; RUN: grep "subq.*\\\$40, \\\%rsp" %t1
+; RUN: grep "movaps \\\%xmm8, \\\(\\\%rsp\\\)" %t1
+; RUN: grep "movaps \\\%xmm7, 16\\\(\\\%rsp\\\)" %t1
+target triple = "x86_64-mingw64"
+
+define i32 @a() nounwind {
+entry:
+ tail call void asm sideeffect "", "~{xmm7},~{xmm8},~{dirflag},~{fpsr},~{flags}"() nounwind
+ ret i32 undef
+}
+