xref: /llvm-project/llvm/test/CodeGen/Hexagon/xray.ll (revision e0a6561ec9ec10f8c0c43b15dfcbbc3c57d37d3f)
1; RUN: llc -mtriple=hexagon-unknown-elf < %s | FileCheck %s
2; RUN: llc -mtriple=hexagon-unknown-linux-musl  < %s | FileCheck %s
3
4define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" {
5; CHECK-LABEL: .Lxray_sled_0:
6; CHECK:       jump .Ltmp[[#l:]]
7; CHECK:         nop
8; CHECK:         nop
9; CHECK:         nop
10; CHECK:         nop
11; CHECK:       .Ltmp
12; CHECK-SAME:  [[#l]]:
13  ret i32 0
14; CHECK-LABEL: .Lxray_sled_1:
15; CHECK:       jump .Ltmp[[#l:]]
16; CHECK:         nop
17; CHECK:         nop
18; CHECK:         nop
19; CHECK:         nop
20; CHECK:       .Ltmp
21; CHECK-SAME:  [[#l]]:
22; CHECK:       jumpr r31
23}
24; CHECK:       .section xray_instr_map,"ao",@progbits,foo
25; CHECK-NEXT:  .Lxray_sleds_start0:
26; CHECK-NEXT:  [[TMP:.Ltmp[0-9]+]]:
27; CHECK-NEXT:  .word .Lxray_sled_0-[[TMP]]
28; CHECK-NEXT:  .word .Lfunc_begin0-([[TMP]]+4)
29; CHECK-NEXT:  .byte 0x00
30; CHECK-NEXT:  .byte 0x01
31; CHECK-NEXT:  .byte 0x02
32; CHECK-NEXT:  .space 5
33; CHECK-LABEL: .Lxray_sleds_end0:
34; CHECK-LABEL: xray_fn_idx
35; CHECK:       .word .Lxray_sleds_start0-.Lxray_fn_idx[[#]]
36; CHECK-NEXT:  .word 2
37