summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/avx-win64-args.ll
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2012-02-01 10:46:14 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2012-02-01 10:46:14 +0000
commit824eed70a68a6b3c0c47c80a6c91d960da43bb67 (patch)
tree8b469322b6d867364507092a7aaeb3bbd9c7a6cc /llvm/test/CodeGen/X86/avx-win64-args.ll
parent34cca175abb86430857b2eb28ba9a95d05507a8f (diff)
downloadbcm5719-llvm-824eed70a68a6b3c0c47c80a6c91d960da43bb67.tar.gz
bcm5719-llvm-824eed70a68a6b3c0c47c80a6c91d960da43bb67.zip
Passing AVX 256-bit structures in Win64 was wrong.
Fixed Win64 calling conventions. llvm-svn: 149494
Diffstat (limited to 'llvm/test/CodeGen/X86/avx-win64-args.ll')
-rwxr-xr-xllvm/test/CodeGen/X86/avx-win64-args.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/avx-win64-args.ll b/llvm/test/CodeGen/X86/avx-win64-args.ll
new file mode 100755
index 00000000000..8b52417c10f
--- /dev/null
+++ b/llvm/test/CodeGen/X86/avx-win64-args.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -mcpu=corei7-avx -mattr=+avx | FileCheck %s
+target triple = "x86_64-pc-win32"
+
+declare <8 x float> @foo(<8 x float>, i32)
+
+define <8 x float> @test1(<8 x float> %x, <8 x float> %y) nounwind uwtable readnone ssp {
+entry:
+; CHECK: test1
+; CHECK: leaq {{.*}}, %rcx
+; CHECK: movl {{.*}}, %edx
+; CHECK: call
+; CHECK: ret
+ %x1 = fadd <8 x float> %x, %y
+ %call = call <8 x float> @foo(<8 x float> %x1, i32 1) nounwind
+ %y1 = fsub <8 x float> %call, %y
+ ret <8 x float> %y1
+}
+
OpenPOWER on IntegriCloud