[lldb] Make sure Blocks always have a parent (#117683)
[llvm-project.git] / llvm / test / CodeGen / SystemZ / stackmap-nops.ll
blobf92248e22074898dfe9f81a97d8ef7803de29e6b
1 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
3 define void @nop_test() {
4 entry:
5 ; CHECK-LABEL: nop_test:
7 ; 2
8 ; CHECK:      bcr 0, %r0
10 ; 4
11 ; CHECK:      bc 0, 0
13 ; 6
14 ; CHECK:      .Ltmp
15 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
16 ; CHECK-NEXT: brcl 0, [[LAB]]
18 ; 8
19 ; CHECK:      .Ltmp
20 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
21 ; CHECK-NEXT: brcl 0, [[LAB]]
22 ; CHECK:      bcr 0, %r0
24 ; 10
25 ; CHECK:      .Ltmp
26 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
27 ; CHECK-NEXT: brcl 0, [[LAB]]
28 ; CHECK:      bc 0, 0
30 ; 12
31 ; CHECK:      .Ltmp
32 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
33 ; CHECK-NEXT: brcl 0, [[LAB]]
34 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
35 ; CHECK-NEXT: brcl 0, [[LAB]]
37 ; 14
38 ; CHECK:      .Ltmp
39 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
40 ; CHECK-NEXT: brcl 0, [[LAB]]
41 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
42 ; CHECK-NEXT: brcl 0, [[LAB]]
43 ; CHECK:      bcr 0, %r0
45 ; 16
46 ; CHECK:      .Ltmp
47 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
48 ; CHECK-NEXT: brcl 0, [[LAB]]
49 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
50 ; CHECK-NEXT: brcl 0, [[LAB]]
51 ; CHECK:      bc 0, 0
53 ; 18
54 ; CHECK:      .Ltmp
55 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
56 ; CHECK-NEXT: brcl 0, [[LAB]]
57 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
58 ; CHECK-NEXT: brcl 0, [[LAB]]
59 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
60 ; CHECK-NEXT: brcl 0, [[LAB]]
62 ; 20
63 ; CHECK:      .Ltmp
64 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
65 ; CHECK-NEXT: brcl 0, [[LAB]]
66 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
67 ; CHECK-NEXT: brcl 0, [[LAB]]
68 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
69 ; CHECK-NEXT: brcl 0, [[LAB]]
70 ; CHECK:      bcr 0, %r0
72 ; 22
73 ; CHECK:      .Ltmp
74 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
75 ; CHECK-NEXT: brcl 0, [[LAB]]
76 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
77 ; CHECK-NEXT: brcl 0, [[LAB]]
78 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
79 ; CHECK-NEXT: brcl 0, [[LAB]]
80 ; CHECK:      bc 0, 0
82 ; 24
83 ; CHECK:      .Ltmp
84 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
85 ; CHECK-NEXT: brcl 0, [[LAB]]
86 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
87 ; CHECK-NEXT: brcl 0, [[LAB]]
88 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
89 ; CHECK-NEXT: brcl 0, [[LAB]]
90 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
91 ; CHECK-NEXT: brcl 0, [[LAB]]
93 ; 26
94 ; CHECK:      .Ltmp
95 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
96 ; CHECK-NEXT: brcl 0, [[LAB]]
97 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
98 ; CHECK-NEXT: brcl 0, [[LAB]]
99 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
100 ; CHECK-NEXT: brcl 0, [[LAB]]
101 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
102 ; CHECK-NEXT: brcl 0, [[LAB]]
103 ; CHECK:      bcr 0, %r0
105 ; 28
106 ; CHECK:      .Ltmp
107 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
108 ; CHECK-NEXT: brcl 0, [[LAB]]
109 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
110 ; CHECK-NEXT: brcl 0, [[LAB]]
111 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
112 ; CHECK-NEXT: brcl 0, [[LAB]]
113 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
114 ; CHECK-NEXT: brcl 0, [[LAB]]
115 ; CHECK:      bc 0, 0
117 ; 30
118 ; CHECK:      .Ltmp
119 ; CHECK-NEXT: [[LAB:.Ltmp[0-9]+]]:
120 ; CHECK-NEXT: brcl 0, [[LAB]]
121 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
122 ; CHECK-NEXT: brcl 0, [[LAB]]
123 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
124 ; CHECK-NEXT: brcl 0, [[LAB]]
125 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
126 ; CHECK-NEXT: brcl 0, [[LAB]]
127 ; CHECK:      [[LAB:.Ltmp[0-9]+]]:
128 ; CHECK-NEXT: brcl 0, [[LAB]]
130   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  0, i32  0)
131   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  2, i32  2)
132   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  4, i32  4)
133   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  6, i32  6)
134   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64  8, i32  8)
135   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 10, i32 10)
136   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 12, i32 12)
137   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 14, i32 14)
138   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 16, i32 16)
139   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 18, i32 18)
140   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 20, i32 20)
141   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 22, i32 22)
142   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 24, i32 24)
143   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 26, i32 26)
144   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 28, i32 28)
145   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 30, i32 30)
146 ; Add an extra stackmap with a zero-length shadow to thwart the shadow
147 ; optimization. This will force all bytes of the previous shadow to be
148 ; padded with nops.
149   tail call void (i64, i32, ...) @llvm.experimental.stackmap(i64 31, i32 0)
150   ret void
153 declare void @llvm.experimental.stackmap(i64, i32, ...)