blob: 4923df26b45b95304e2c994523d980afbacfe587 [file] [log] [blame]
Dan Gohmanc0c96112009-11-14 02:06:30 +00001; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 4
Arnold Schwaighofere2d6bbb2007-10-11 19:40:01 +00002define fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) {
3entry:
4 ret i32 %a3
5}
6
7define fastcc i32 @tailcaller(i32 %in1, i32 %in2) {
8entry:
9 %tmp11 = tail call fastcc i32 @tailcallee( i32 %in1, i32 %in2, i32 %in1, i32 %in2 ) ; <i32> [#uses=1]
10 ret i32 %tmp11
11}
Dan Gohman3510e112009-11-13 18:49:38 +000012
13declare fastcc i8* @alias_callee()
14
15define fastcc noalias i8* @noalias_caller() nounwind {
16 %p = tail call fastcc i8* @alias_callee()
17 ret i8* %p
18}
19
20declare fastcc noalias i8* @noalias_callee()
21
22define fastcc i8* @alias_caller() nounwind {
23 %p = tail call fastcc noalias i8* @noalias_callee()
24 ret i8* %p
25}
Dan Gohmanc0c96112009-11-14 02:06:30 +000026
27declare fastcc i32 @i32_callee()
28
29define fastcc i32 @ret_undef() nounwind {
30 %p = tail call fastcc i32 @i32_callee()
31 ret i32 undef
32}