aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-12-18 01:05:06 +0000
committerDan Gohman <gohman@apple.com>2009-12-18 01:05:06 +0000
commitf838e2366a9d41ce4b5e22e6fda218eb176ebb50 (patch)
treea10f13aa504c4df8415384eb1903a88b1bbd9a9e /test/CodeGen
parent5afffaed5c0095930020947322633f0d0b02ffed (diff)
downloadexternal_llvm-f838e2366a9d41ce4b5e22e6fda218eb176ebb50.zip
external_llvm-f838e2366a9d41ce4b5e22e6fda218eb176ebb50.tar.gz
external_llvm-f838e2366a9d41ce4b5e22e6fda218eb176ebb50.tar.bz2
Tidy up this testcase and add test for tailcall optimization
with unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91650 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r--test/CodeGen/X86/tailcall1.ll19
1 files changed, 12 insertions, 7 deletions
diff --git a/test/CodeGen/X86/tailcall1.ll b/test/CodeGen/X86/tailcall1.ll
index 4923df2..42f8cdd 100644
--- a/test/CodeGen/X86/tailcall1.ll
+++ b/test/CodeGen/X86/tailcall1.ll
@@ -1,12 +1,10 @@
-; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 4
-define fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) {
-entry:
- ret i32 %a3
-}
+; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 5
+
+declare fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4)
-define fastcc i32 @tailcaller(i32 %in1, i32 %in2) {
+define fastcc i32 @tailcaller(i32 %in1, i32 %in2) nounwind {
entry:
- %tmp11 = tail call fastcc i32 @tailcallee( i32 %in1, i32 %in2, i32 %in1, i32 %in2 ) ; <i32> [#uses=1]
+ %tmp11 = tail call fastcc i32 @tailcallee(i32 %in1, i32 %in2, i32 %in1, i32 %in2)
ret i32 %tmp11
}
@@ -30,3 +28,10 @@ define fastcc i32 @ret_undef() nounwind {
%p = tail call fastcc i32 @i32_callee()
ret i32 undef
}
+
+declare fastcc void @does_not_return()
+
+define fastcc i32 @noret() nounwind {
+ tail call fastcc void @does_not_return()
+ unreachable
+}