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