Skip to content

Commit fef7753

Browse files
committed
[AArch64] Some tests for cbz/tbz with wzr. NFC
1 parent 65829ff commit fef7753

File tree

2 files changed

+582
-2
lines changed

2 files changed

+582
-2
lines changed
Lines changed: 260 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
2+
# RUN: llc -o - %s -mtriple=aarch64-none-eabi -run-pass=machine-cp -mcp-use-is-copy-instr | FileCheck %s
3+
4+
---
5+
name: cbz_wzr
6+
tracksRegLiveness: true
7+
body: |
8+
; CHECK-LABEL: name: cbz_wzr
9+
; CHECK: bb.0:
10+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
11+
; CHECK-NEXT: liveins: $x0
12+
; CHECK-NEXT: {{ $}}
13+
; CHECK-NEXT: CBZW $wzr, %bb.2
14+
; CHECK-NEXT: {{ $}}
15+
; CHECK-NEXT: bb.1:
16+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
17+
; CHECK-NEXT: RET undef $lr, implicit $w0
18+
; CHECK-NEXT: {{ $}}
19+
; CHECK-NEXT: bb.2:
20+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
21+
; CHECK-NEXT: RET undef $lr, implicit $w0
22+
bb.0:
23+
liveins: $x0
24+
25+
$w8 = ORRWrs $wzr, $wzr, 0
26+
CBZW killed renamable $w8, %bb.2
27+
28+
bb.1:
29+
$w0 = MOVZWi 10, 0
30+
RET undef $lr, implicit $w0
31+
32+
bb.2:
33+
$w0 = MOVZWi 20, 0
34+
RET undef $lr, implicit $w0
35+
...
36+
---
37+
name: cbnz_wzr
38+
tracksRegLiveness: true
39+
body: |
40+
; CHECK-LABEL: name: cbnz_wzr
41+
; CHECK: bb.0:
42+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
43+
; CHECK-NEXT: liveins: $x0
44+
; CHECK-NEXT: {{ $}}
45+
; CHECK-NEXT: CBNZW $wzr, %bb.2
46+
; CHECK-NEXT: {{ $}}
47+
; CHECK-NEXT: bb.1:
48+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
49+
; CHECK-NEXT: RET undef $lr, implicit $w0
50+
; CHECK-NEXT: {{ $}}
51+
; CHECK-NEXT: bb.2:
52+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
53+
; CHECK-NEXT: RET undef $lr, implicit $w0
54+
bb.0:
55+
liveins: $x0
56+
57+
$w8 = ORRWrs $wzr, $wzr, 0
58+
CBNZW killed renamable $w8, %bb.2
59+
60+
bb.1:
61+
$w0 = MOVZWi 10, 0
62+
RET undef $lr, implicit $w0
63+
64+
bb.2:
65+
$w0 = MOVZWi 20, 0
66+
RET undef $lr, implicit $w0
67+
...
68+
---
69+
name: tbz_wzr
70+
tracksRegLiveness: true
71+
body: |
72+
; CHECK-LABEL: name: tbz_wzr
73+
; CHECK: bb.0:
74+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
75+
; CHECK-NEXT: liveins: $x0
76+
; CHECK-NEXT: {{ $}}
77+
; CHECK-NEXT: TBZW $wzr, 0, %bb.2
78+
; CHECK-NEXT: {{ $}}
79+
; CHECK-NEXT: bb.1:
80+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
81+
; CHECK-NEXT: RET undef $lr, implicit $w0
82+
; CHECK-NEXT: {{ $}}
83+
; CHECK-NEXT: bb.2:
84+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
85+
; CHECK-NEXT: RET undef $lr, implicit $w0
86+
bb.0:
87+
liveins: $x0
88+
89+
$w8 = ORRWrs $wzr, $wzr, 0
90+
TBZW killed renamable $w8, 0, %bb.2
91+
92+
bb.1:
93+
$w0 = MOVZWi 10, 0
94+
RET undef $lr, implicit $w0
95+
96+
bb.2:
97+
$w0 = MOVZWi 20, 0
98+
RET undef $lr, implicit $w0
99+
...
100+
---
101+
name: tbnz_wzr
102+
tracksRegLiveness: true
103+
body: |
104+
; CHECK-LABEL: name: tbnz_wzr
105+
; CHECK: bb.0:
106+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
107+
; CHECK-NEXT: liveins: $x0
108+
; CHECK-NEXT: {{ $}}
109+
; CHECK-NEXT: TBNZW $wzr, 0, %bb.2
110+
; CHECK-NEXT: {{ $}}
111+
; CHECK-NEXT: bb.1:
112+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
113+
; CHECK-NEXT: RET undef $lr, implicit $w0
114+
; CHECK-NEXT: {{ $}}
115+
; CHECK-NEXT: bb.2:
116+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
117+
; CHECK-NEXT: RET undef $lr, implicit $w0
118+
bb.0:
119+
liveins: $x0
120+
121+
$w8 = ORRWrs $wzr, $wzr, 0
122+
TBNZW killed renamable $w8, 0, %bb.2
123+
124+
bb.1:
125+
$w0 = MOVZWi 10, 0
126+
RET undef $lr, implicit $w0
127+
128+
bb.2:
129+
$w0 = MOVZWi 20, 0
130+
RET undef $lr, implicit $w0
131+
...
132+
133+
---
134+
name: cbz_xzr
135+
tracksRegLiveness: true
136+
body: |
137+
; CHECK-LABEL: name: cbz_xzr
138+
; CHECK: bb.0:
139+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
140+
; CHECK-NEXT: liveins: $x0
141+
; CHECK-NEXT: {{ $}}
142+
; CHECK-NEXT: CBZX $xzr, %bb.2
143+
; CHECK-NEXT: {{ $}}
144+
; CHECK-NEXT: bb.1:
145+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
146+
; CHECK-NEXT: RET undef $lr, implicit $w0
147+
; CHECK-NEXT: {{ $}}
148+
; CHECK-NEXT: bb.2:
149+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
150+
; CHECK-NEXT: RET undef $lr, implicit $w0
151+
bb.0:
152+
liveins: $x0
153+
154+
$x8 = ORRXrs $xzr, $xzr, 0
155+
CBZX killed renamable $x8, %bb.2
156+
157+
bb.1:
158+
$w0 = MOVZWi 10, 0
159+
RET undef $lr, implicit $w0
160+
161+
bb.2:
162+
$w0 = MOVZWi 20, 0
163+
RET undef $lr, implicit $w0
164+
...
165+
---
166+
name: cbnz_xzr
167+
tracksRegLiveness: true
168+
body: |
169+
; CHECK-LABEL: name: cbnz_xzr
170+
; CHECK: bb.0:
171+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
172+
; CHECK-NEXT: liveins: $x0
173+
; CHECK-NEXT: {{ $}}
174+
; CHECK-NEXT: CBNZX $xzr, %bb.2
175+
; CHECK-NEXT: {{ $}}
176+
; CHECK-NEXT: bb.1:
177+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
178+
; CHECK-NEXT: RET undef $lr, implicit $w0
179+
; CHECK-NEXT: {{ $}}
180+
; CHECK-NEXT: bb.2:
181+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
182+
; CHECK-NEXT: RET undef $lr, implicit $w0
183+
bb.0:
184+
liveins: $x0
185+
186+
$x8 = ORRXrs $xzr, $xzr, 0
187+
CBNZX killed renamable $x8, %bb.2
188+
189+
bb.1:
190+
$w0 = MOVZWi 10, 0
191+
RET undef $lr, implicit $w0
192+
193+
bb.2:
194+
$w0 = MOVZWi 20, 0
195+
RET undef $lr, implicit $w0
196+
...
197+
---
198+
name: tbz_xzr
199+
tracksRegLiveness: true
200+
body: |
201+
; CHECK-LABEL: name: tbz_xzr
202+
; CHECK: bb.0:
203+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
204+
; CHECK-NEXT: liveins: $x0
205+
; CHECK-NEXT: {{ $}}
206+
; CHECK-NEXT: TBZX $xzr, 0, %bb.2
207+
; CHECK-NEXT: {{ $}}
208+
; CHECK-NEXT: bb.1:
209+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
210+
; CHECK-NEXT: RET undef $lr, implicit $w0
211+
; CHECK-NEXT: {{ $}}
212+
; CHECK-NEXT: bb.2:
213+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
214+
; CHECK-NEXT: RET undef $lr, implicit $w0
215+
bb.0:
216+
liveins: $x0
217+
218+
$x8 = ORRXrs $xzr, $xzr, 0
219+
TBZX killed renamable $x8, 0, %bb.2
220+
221+
bb.1:
222+
$w0 = MOVZWi 10, 0
223+
RET undef $lr, implicit $w0
224+
225+
bb.2:
226+
$w0 = MOVZWi 20, 0
227+
RET undef $lr, implicit $w0
228+
...
229+
---
230+
name: tbnz_xzr
231+
tracksRegLiveness: true
232+
body: |
233+
; CHECK-LABEL: name: tbnz_xzr
234+
; CHECK: bb.0:
235+
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
236+
; CHECK-NEXT: liveins: $x0
237+
; CHECK-NEXT: {{ $}}
238+
; CHECK-NEXT: TBNZX $xzr, 0, %bb.2
239+
; CHECK-NEXT: {{ $}}
240+
; CHECK-NEXT: bb.1:
241+
; CHECK-NEXT: $w0 = MOVZWi 10, 0
242+
; CHECK-NEXT: RET undef $lr, implicit $w0
243+
; CHECK-NEXT: {{ $}}
244+
; CHECK-NEXT: bb.2:
245+
; CHECK-NEXT: $w0 = MOVZWi 20, 0
246+
; CHECK-NEXT: RET undef $lr, implicit $w0
247+
bb.0:
248+
liveins: $x0
249+
250+
$x8 = ORRXrs $xzr, $xzr, 0
251+
TBNZX killed renamable $x8, 0, %bb.2
252+
253+
bb.1:
254+
$w0 = MOVZWi 10, 0
255+
RET undef $lr, implicit $w0
256+
257+
bb.2:
258+
$w0 = MOVZWi 20, 0
259+
RET undef $lr, implicit $w0
260+
...

0 commit comments

Comments
 (0)