Fix PR5391: support early clobber physical register def tied with a use (ewwww)
[oota-llvm.git] / test / CodeGen / X86 / tailcall1.ll
1 ; RUN: llc < %s -march=x86 -tailcallopt | grep TAILCALL | count 4
2 define fastcc i32 @tailcallee(i32 %a1, i32 %a2, i32 %a3, i32 %a4) {
3 entry:
4         ret i32 %a3
5 }
6
7 define fastcc i32 @tailcaller(i32 %in1, i32 %in2) {
8 entry:
9         %tmp11 = tail call fastcc i32 @tailcallee( i32 %in1, i32 %in2, i32 %in1, i32 %in2 )             ; <i32> [#uses=1]
10         ret i32 %tmp11
11 }
12
13 declare fastcc i8* @alias_callee()
14
15 define fastcc noalias i8* @noalias_caller() nounwind {
16   %p = tail call fastcc i8* @alias_callee()
17   ret i8* %p
18 }
19
20 declare fastcc noalias i8* @noalias_callee()
21
22 define fastcc i8* @alias_caller() nounwind {
23   %p = tail call fastcc noalias i8* @noalias_callee()
24   ret i8* %p
25 }
26
27 declare fastcc i32 @i32_callee()
28
29 define fastcc i32 @ret_undef() nounwind {
30   %p = tail call fastcc i32 @i32_callee()
31   ret i32 undef
32 }