xref: /llvm-project/llvm/test/CodeGen/ARM/xray-tail-call-sled.ll (revision 49b61ead47c111171c324f94e849534798f69dc2)
1; RUN: llc -mtriple=armv7-unknown-linux-gnu < %s | FileCheck %s
2; RUN: llc -mtriple=armv7-apple-ios6.0.0    < %s | FileCheck %s
3
4define i32 @callee() nounwind noinline uwtable "function-instrument"="xray-always" {
5; CHECK:       .p2align	2
6; CHECK-LABEL: Lxray_sled_0:
7; CHECK-NEXT:  b	#20
8; CHECK-COUNT-6: nop
9; CHECK-NEXT:  Ltmp[[#]]:
10  ret i32 0
11; CHECK-NEXT:  mov	r0, #0
12; CHECK-NEXT:  .p2align	2
13; CHECK-LABEL: Lxray_sled_1:
14; CHECK-NEXT:  b	#20
15; CHECK-COUNT-6: nop
16; CHECK-NEXT:  Ltmp[[#]]:
17; CHECK-NEXT:  bx	lr
18}
19
20define i32 @caller() nounwind noinline uwtable "function-instrument"="xray-always" {
21; CHECK:       .p2align	2
22; CHECK-LABEL: Lxray_sled_2:
23; CHECK-NEXT:  b	#20
24; CHECK-COUNT-6: nop
25; CHECK-NEXT:  Ltmp[[#]]:
26; CHECK:       .p2align	2
27; CHECK-LABEL: Lxray_sled_3:
28; CHECK-NEXT:  b	#20
29; CHECK-COUNT-6: nop
30; CHECK-NEXT:  Ltmp[[#]]:
31  %retval = tail call i32 @callee()
32; CHECK:       b	{{.*}}callee
33  ret i32 %retval
34}
35