summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-05-11 18:51:55 +0000
committerChad Rosier <mcrosier@apple.com>2012-05-11 18:51:55 +0000
commit2a2e9d54e95f01eaa5626dcdf57950e9e6f95f2c (patch)
treefc4f5ba882e3a01d46eafed8b3218f59922033ce /test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll
parent12c807873a5988d900c8032e7d98f8f07da5c628 (diff)
downloadllvm-2a2e9d54e95f01eaa5626dcdf57950e9e6f95f2c.tar.gz
llvm-2a2e9d54e95f01eaa5626dcdf57950e9e6f95f2c.tar.bz2
llvm-2a2e9d54e95f01eaa5626dcdf57950e9e6f95f2c.tar.xz
[fast-isel] Cleaner fix for when we're unable to handle a non-double multi-reg
retval. Hoists check before emitting the call to avoid unnecessary work. rdar://11430407 PR12796 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156628 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll')
-rw-r--r--test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll b/test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll
new file mode 100644
index 0000000000..14721a4d80
--- /dev/null
+++ b/test/CodeGen/ARM/fast-isel-call-multi-reg-return.ll
@@ -0,0 +1,17 @@
+; RUN: llc < %s -O0 -relocation-model=dynamic-no-pic -mtriple=armv7-apple-ios | FileCheck %s --check-prefix=ARM
+; RUN: llc < %s -O0 -relocation-model=dynamic-no-pic -mtriple=thumbv7-apple-ios | FileCheck %s --check-prefix=THUMB
+
+; Fast-isel can't handle non-double multi-reg retvals.
+; This test just check to make sure we don't hit the assert in FinishCall.
+define <16 x i8> @foo() nounwind ssp {
+entry:
+ ret <16 x i8> zeroinitializer
+}
+
+define void @t1() nounwind ssp {
+entry:
+; ARM: @t1
+; THUMB: @t1
+ %call = call <16 x i8> @foo()
+ ret void
+}