[AArch64] Fix bug in prolog clobbering live reg when shrink wrapping.
[oota-llvm.git] / test / CodeGen / AArch64 / arm64-fastcc-tailcall.ll
1 ; RUN: llc < %s -march=arm64 | FileCheck %s
2
3 define void @caller(i32* nocapture %p, i32 %a, i32 %b) nounwind optsize ssp {
4 ; CHECK-NOT: stp
5 ; CHECK: b       {{_callee|callee}}
6 ; CHECK-NOT: ldp
7 ; CHECK: ret
8   %1 = icmp eq i32 %b, 0
9   br i1 %1, label %3, label %2
10
11   tail call fastcc void @callee(i32* %p, i32 %a) optsize
12   br label %3
13
14   ret void
15 }
16
17 define internal fastcc void @callee(i32* nocapture %p, i32 %a) nounwind optsize noinline ssp {
18   store volatile i32 %a, i32* %p, align 4, !tbaa !0
19   ret void
20 }
21
22 !0 = !{!"int", !1}
23 !1 = !{!"omnipotent char", !2}
24 !2 = !{!"Simple C/C++ TBAA"}