xref: /llvm-project/llvm/test/CodeGen/ARM/xray-armv7-attribute-instrumentation.ll (revision bef8294650f0119238830d73a7527023c7c8a97f)
1; RUN: llc -mtriple=armv7-unknown-linux-gnu < %s | FileCheck %s --check-prefixes=CHECK,CHECK-LINUX
2; RUN: llc -mtriple=armv7-apple-ios6.0.0    < %s | FileCheck %s --check-prefixes=CHECK,CHECK-IOS
3
4define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" {
5; CHECK-LABEL: Lxray_sled_0:
6; CHECK-NEXT:  b  #20
7; CHECK-COUNT-6: nop
8; CHECK-NEXT:  Ltmp[[#]]:
9  ret i32 0
10; CHECK-LABEL: Lxray_sled_1:
11; CHECK-NEXT:  b  #20
12; CHECK-COUNT-6: nop
13; CHECK-NEXT:  Ltmp[[#]]:
14; CHECK-NEXT:  bx lr
15}
16
17; CHECK-LINUX-LABEL: .section xray_instr_map,"ao",%progbits,foo{{$}}
18; CHECK-LINUX-LABEL: .Lxray_sleds_start0:
19; CHECK-LINUX:         .long .Lxray_sled_0
20; CHECK-LINUX:         .long .Lxray_sled_1
21; CHECK-LINUX-LABEL: .Lxray_sleds_end0:
22; CHECK-LINUX-LABEL: .section xray_fn_idx,"ao",%progbits,foo{{$}}
23; CHECK-LINUX:       .Lxray_fn_idx0:
24; CHECK-LINUX-NEXT:    .long .Lxray_sleds_start0-.Lxray_fn_idx0
25; CHECK-LINUX-NEXT:    .long 2
26
27; CHECK-IOS-LABEL: .section __DATA,xray_instr_map,regular,live_support{{$}}
28; CHECK-IOS-LABEL: lxray_sleds_start0:
29; CHECK-IOS:         .long Lxray_sled_0
30; CHECK-IOS:         .long Lxray_sled_1
31; CHECK-IOS-LABEL: Lxray_sleds_end0:
32; CHECK-IOS-LABEL: .section __DATA,xray_fn_idx,regular,live_support{{$}}
33; CHECK-IOS:       lxray_fn_idx0:
34; CHECK-IOS:         .long lxray_sleds_start0-lxray_fn_idx0
35; CHECK-IOS-NEXT:    .long 2
36