1; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck --check-prefixes=CHECK,NOVECTOR %s 2; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck --check-prefixes=CHECK,VECTOR %s 3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 -mattr=+soft-float | FileCheck --check-prefixes=CHECK,NOVECTOR %s 4 5 6define signext i32 @foo() "function-instrument"="xray-always" { 7; CHECK-LABEL: .Lxray_sled_0: 8; CHECK: j .Ltmp[[#l:]] 9; CHECK: bcr 0, %r0 10; CHECK: llilf %r2, 0 11; NOVECTOR: brasl %r14, __xray_FunctionEntry@PLT 12; VECTOR: brasl %r14, __xray_FunctionEntryVec@PLT 13; CHECK: .Ltmp[[#l]]: 14 ret i32 0 15; CHECK-LABEL: .Lxray_sled_1: 16; CHECK: br %r14 17; CHECK: bc 0, 0 18; CHECK: llilf %r2, 0 19; NOVECtOR: j __xray_FunctionExit@PLT 20; VECTOR: j __xray_FunctionExitVec@PLT 21} 22 23; CHECK: .section xray_instr_map,"ao",@progbits,foo 24; CHECK: .Lxray_sleds_start0: 25; CHECK: [[TMP1:.Ltmp[0-9]+]]: 26; CHECK: .quad .Lxray_sled_0-[[TMP1]] 27; CHECK: .quad .Lfunc_begin0-([[TMP1]]+8) 28; CHECK: .byte 0x00 29; CHECK: .byte 0x01 30; CHECK: .byte 0x02 31; CHECK: .space 13 32; CHECK: [[TMP2:.Ltmp[0-9]+]]: 33; CHECK: .quad .Lxray_sled_1-[[TMP2]] 34; CHECK: .quad .Lfunc_begin0-([[TMP2]]+8) 35; CHECK: .byte 0x01 36; CHECK: .byte 0x01 37; CHECK: .byte 0x02 38; CHECK: .space 13 39; CHECK: .Lxray_sleds_end0: 40; CHECK: .section xray_fn_idx,"ao",@progbits,foo 41; CHECK: .p2align 4 42; CHECK: .Lxray_fn_idx0: 43; CHECK: .quad .Lxray_sleds_start0-.Lxray_fn_idx0 44; CHECK: .quad 2 45