1 ; RUN: llc -filetype=asm -o - -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s 2 ; RUN: llc -filetype=asm -o - -mtriple=powerpc64le-unknown-linux-gnu \ 3 ; RUN: -relocation-model=pic < %s | FileCheck %s 4 5 define i32 @foo() nounwind noinline uwtable "function-instrument"="xray-always" { 6 ; CHECK-LABEL: .Ltmp0: 7 ; CHECK: b .Ltmp1 8 ; CHECK-NEXT: nop 9 ; CHECK-NEXT: std 0, -8(1) 10 ; CHECK-NEXT: mflr 0 11 ; CHECK-NEXT: bl __xray_FunctionEntry 12 ; CHECK-NEXT: nop 13 ; CHECK-NEXT: mtlr 0 14 ; CHECK-LABEL: .Ltmp1: 15 ret i32 0 16 ; CHECK-LABEL: .Ltmp2: 17 ; CHECK: blr 18 ; CHECK-NEXT: nop 19 ; CHECK-NEXT: std 0, -8(1) 20 ; CHECK-NEXT: mflr 0 21 ; CHECK-NEXT: bl __xray_FunctionExit 22 ; CHECK-NEXT: nop 23 ; CHECK-NEXT: mtlr 0 24 } 25 ; CHECK-LABEL: xray_instr_map,"awo",@progbits,foo,unique,1 26 ; CHECK: .Lxray_sleds_start0: 27 ; CHECK-NEXT: .quad .Ltmp0 28 ; CHECK-NEXT: .quad foo 29 ; CHECK-NEXT: .byte 0x00 30 ; CHECK-NEXT: .byte 0x01 31 ; CHECK-NEXT: .byte 0x00 32 ; CHECK-NEXT: .space 13 33 ; CHECK-NEXT: .quad .Ltmp2 34 ; CHECK-NEXT: .quad foo 35 ; CHECK-NEXT: .byte 0x01 36 ; CHECK-NEXT: .byte 0x01 37 ; CHECK-NEXT: .byte 0x00 38 ; CHECK-NEXT: .space 13 39 ; CHECK-NEXT: .Lxray_sleds_end0: 40 ; CHECK-LABEL: xray_fn_idx,"awo",@progbits,foo,unique,1 41 ; CHECK: .p2align 4 42 ; CHECK-NEXT: .quad .Lxray_sleds_start0 43 ; CHECK-NEXT: .quad .Lxray_sleds_end0 44 ; CHECK-NEXT: .text 45