blob: 1dd37955452f0ececf990dd202b0cdb513947dd1 [file] [log] [blame]
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +00001# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown -run-pass ppc-pre-emit-peephole %s -o - | FileCheck %s
3
4---
5name: t1
Guillaume Chatelet48904e92019-09-11 11:16:48 +00006alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +00007tracksRegLiveness: true
8machineFunctionInfo: {}
9body: |
10 bb.0.entry:
11 liveins: $x1
12
13 ; CHECK-LABEL: name: t1
14 ; CHECK: liveins: $x1
15 ; CHECK: renamable $x3 = LI8 0
16 ; CHECK: STD renamable $x3, 16, $x1
17 ; CHECK: STD killed renamable $x3, 8, $x1
18 ; CHECK: BLR8 implicit $lr8, implicit $rm
19 renamable $x3 = LI8 0
20 STD killed renamable $x3, 16, $x1
21 renamable $x3 = LI8 0
22 STD killed renamable $x3, 8, $x1
23 BLR8 implicit $lr8, implicit $rm
24
25...
26---
27name: t2
Guillaume Chatelet48904e92019-09-11 11:16:48 +000028alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +000029tracksRegLiveness: true
30machineFunctionInfo: {}
31body: |
32 bb.0.entry:
33 liveins: $x1
34
35 ; CHECK-LABEL: name: t2
36 ; CHECK: liveins: $x1
37 ; CHECK: renamable $x3 = LI8 0
38 ; CHECK: STD renamable $x3, 32, $x1
39 ; CHECK: STD renamable $x3, 24, $x1
40 ; CHECK: STD renamable $x3, 16, $x1
41 ; CHECK: STD killed renamable $x3, 8, $x1
42 ; CHECK: BLR8 implicit $lr8, implicit $rm
43 renamable $x3 = LI8 0
44 STD killed renamable $x3, 32, $x1
45 renamable $x3 = LI8 0
46 STD killed renamable $x3, 24, $x1
47 renamable $x3 = LI8 0
48 STD killed renamable $x3, 16, $x1
49 renamable $x3 = LI8 0
50 STD killed renamable $x3, 8, $x1
51 BLR8 implicit $lr8, implicit $rm
52
53...
54---
55name: t3
Guillaume Chatelet48904e92019-09-11 11:16:48 +000056alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +000057tracksRegLiveness: true
58machineFunctionInfo: {}
59body: |
60 bb.0.entry:
61 liveins: $x1
62
63 ; CHECK-LABEL: name: t3
64 ; CHECK: liveins: $x1
65 ; CHECK: renamable $x3 = LI8 0
66 ; CHECK: STD renamable $x3, 32, $x1
67 ; CHECK: STD renamable $x3, 24, $x1
68 ; CHECK: BLR8 implicit $lr8, implicit $rm
69 renamable $x3 = LI8 0
70 STD killed renamable $x3, 32, $x1
71 renamable $x3 = LI8 0
72 STD renamable $x3, 24, $x1
73 BLR8 implicit $lr8, implicit $rm
74
75...
76---
77name: t4
Guillaume Chatelet48904e92019-09-11 11:16:48 +000078alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +000079tracksRegLiveness: true
80machineFunctionInfo: {}
81body: |
82 bb.0.entry:
83 liveins: $x1
84
85 ; CHECK-LABEL: name: t4
86 ; CHECK: liveins: $x1
87 ; CHECK: renamable $x3 = LI8 0
88 ; CHECK: STD renamable $x3, 16, $x1
89 ; CHECK: renamable $x4 = ADDI8 renamable $x3, 8
90 ; CHECK: STD killed renamable $x3, 8, $x1
91 ; CHECK: BLR8 implicit $lr8, implicit $rm
92 renamable $x3 = LI8 0
93 STD killed renamable $x3, 16, $x1
94 renamable $x3 = LI8 0
95 renamable $x4 = ADDI8 killed renamable $x3, 8
96 renamable $x3 = LI8 0
97 STD killed renamable $x3, 8, $x1
98 BLR8 implicit $lr8, implicit $rm
99
100...
101---
102name: t5
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000103alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000104tracksRegLiveness: true
105machineFunctionInfo: {}
106body: |
107 bb.0.entry:
108 liveins: $x1
109
110 ; CHECK-LABEL: name: t5
111 ; CHECK: liveins: $x1
112 ; CHECK: renamable $r3 = LI 0
113 ; CHECK: STW renamable $r3, 16, $x1
114 ; CHECK: STW killed renamable $r3, 12, $x1
115 ; CHECK: renamable $r3 = LI 1
116 ; CHECK: BLR8 implicit $lr8, implicit $rm
117 renamable $r3 = LI 0
118 STW killed renamable $r3, 16, $x1
119 renamable $r3 = LI 0
120 STW killed renamable $r3, 12, $x1
121 renamable $r3 = LI 1
122 BLR8 implicit $lr8, implicit $rm
123
124...
125---
126name: t6
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000127alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000128tracksRegLiveness: true
129machineFunctionInfo: {}
130body: |
131 bb.0.entry:
132 liveins: $x1
133
134 ; CHECK-LABEL: name: t6
135 ; CHECK: liveins: $x1
136 ; CHECK: renamable $x3 = LI8 0
137 ; CHECK: renamable $x4 = LI8 1
138 ; CHECK: STD renamable $x3, 32, $x1
139 ; CHECK: STD renamable $x4, 24, $x1
140 ; CHECK: STD killed renamable $x3, 16, $x1
141 ; CHECK: STD killed renamable $x4, 8, $x1
142 ; CHECK: BLR8 implicit $lr8, implicit $rm
143 renamable $x3 = LI8 0
144 renamable $x4 = LI8 1
145 STD killed renamable $x3, 32, $x1
146 STD killed renamable $x4, 24, $x1
147 renamable $x3 = LI8 0
148 renamable $x4 = LI8 1
149 STD killed renamable $x3, 16, $x1
150 STD killed renamable $x4, 8, $x1
151 BLR8 implicit $lr8, implicit $rm
152
153...
154---
155name: t7
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000156alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000157tracksRegLiveness: true
158machineFunctionInfo: {}
159body: |
160 bb.0.entry:
161 liveins: $x1, $x4
162
163 ; CHECK-LABEL: name: t7
164 ; CHECK: liveins: $x1, $x4
165 ; CHECK: renamable $x3 = LI8 0
166 ; CHECK: STD killed renamable $x3, 32, $x1
167 ; CHECK: renamable $x3 = ADDI8 $x4, 6
168 ; CHECK: BLR8 implicit $lr8, implicit $rm
169 renamable $x3 = LI8 0
170 STD killed renamable $x3, 32, $x1
171 renamable $x3 = ADDI8 $x4, 6
172 BLR8 implicit $lr8, implicit $rm
173
174...
175---
176name: t8
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000177alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000178tracksRegLiveness: true
179machineFunctionInfo: {}
180body: |
181 bb.0.entry:
182 liveins: $x1
183
184 ; CHECK-LABEL: name: t8
185 ; CHECK: liveins: $x1
186 ; CHECK: renamable $x3 = LI8 0
187 ; CHECK: STD renamable $x3, 32, $x1
188 ; CHECK: BLR8 implicit $lr8, implicit $rm
189 renamable $x3 = LI8 0
190 STD killed renamable $x3, 32, $x1
191 renamable $x3 = LI8 0
192 BLR8 implicit $lr8, implicit $rm
193
194...
195---
196name: t9
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000197alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000198tracksRegLiveness: true
199machineFunctionInfo: {}
200body: |
201 ; CHECK-LABEL: name: t9
202 ; CHECK: bb.0.entry:
203 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000)
204 ; CHECK: liveins: $x3
205 ; CHECK: renamable $r4 = LI 0, implicit-def $x4
206 ; CHECK: renamable $x24 = RLDICL renamable $x4, 0, 32
207 ; CHECK: renamable $cr0 = CMPLDI renamable $x3, 0
208 ; CHECK: BCC 68, killed renamable $cr0, %bb.1
209 ; CHECK: B %bb.2
210 ; CHECK: bb.1:
211 ; CHECK: liveins: $r4, $x1
212 ; CHECK: STW killed renamable $r4, 16, $x1
213 ; CHECK: BLR8 implicit $lr8, implicit $rm
214 ; CHECK: bb.2:
215 ; CHECK: liveins: $r4, $x1
216 ; CHECK: STW killed renamable $r4, 32, $x1
217 ; CHECK: BLR8 implicit $lr8, implicit $rm
218 bb.0.entry:
219 liveins: $x3
220 successors: %bb.8, %bb.7
221
222 renamable $r4 = LI 0, implicit-def $x4
223 renamable $x24 = RLDICL killed renamable $x4, 0 , 32
224 renamable $cr0 = CMPLDI renamable $x3, 0
225 renamable $r4 = LI 0
226 BCC 68, killed renamable $cr0, %bb.7
227 B %bb.8
228
229 bb.7:
230 liveins: $r4, $x1
231 STW killed renamable $r4, 16, $x1
232 BLR8 implicit $lr8, implicit $rm
233
234 bb.8:
235 liveins: $r4, $x1
236 STW killed renamable $r4, 32, $x1
237 BLR8 implicit $lr8, implicit $rm
238
239...
240---
241name: t10
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000242alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000243tracksRegLiveness: true
244machineFunctionInfo: {}
245body: |
246 bb.0.entry:
247 liveins: $x1
248
249 ; CHECK-LABEL: name: t10
250 ; CHECK: liveins: $x1
251 ; CHECK: renamable $x3 = LI8 24
252 ; CHECK: STD killed renamable $x3, 16, $x1
253 ; CHECK: renamable $r3 = LI 0
254 ; CHECK: STW killed renamable $r3, 26, $x1
255 ; CHECK: BLR8 implicit $lr8, implicit $rm
256 renamable $x3 = LI8 24
257 STD killed renamable $x3, 16, $x1
258 renamable $r3 = LI 0
259 STW killed renamable $r3, 26, $x1
260 BLR8 implicit $lr8, implicit $rm
261
262...
263---
264name: LIS8
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000265alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000266tracksRegLiveness: true
267machineFunctionInfo: {}
268body: |
269 bb.0.entry:
270 liveins: $x1
271
272 ; CHECK-LABEL: name: LIS8
273 ; CHECK: liveins: $x1
274 ; CHECK: renamable $x3 = LIS8 0
275 ; CHECK: STD renamable $x3, 16, $x1
276 ; CHECK: STD killed renamable $x3, 8, $x1
277 ; CHECK: BLR8 implicit $lr8, implicit $rm
278 renamable $x3 = LIS8 0
279 STD killed renamable $x3, 16, $x1
280 renamable $x3 = LIS8 0
281 STD killed renamable $x3, 8, $x1
282 BLR8 implicit $lr8, implicit $rm
283
284...
285---
286name: LIS
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000287alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000288tracksRegLiveness: true
289machineFunctionInfo: {}
290body: |
291 bb.0.entry:
292 liveins: $x1
293
294 ; CHECK-LABEL: name: LIS
295 ; CHECK: liveins: $x1
296 ; CHECK: renamable $r3 = LIS 0
297 ; CHECK: STW renamable $r3, 16, $x1
298 ; CHECK: STW killed renamable $r3, 12, $x1
299 ; CHECK: BLR8 implicit $lr8, implicit $rm
300 renamable $r3 = LIS 0
301 STW killed renamable $r3, 16, $x1
302 renamable $r3 = LIS 0
303 STW killed renamable $r3, 12, $x1
304 BLR8 implicit $lr8, implicit $rm
305
306...
307---
308name: modify_and_kill_the_reg_in_the_same_inst
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000309alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000310tracksRegLiveness: true
311machineFunctionInfo: {}
312body: |
313 bb.0.entry:
314
315 ; CHECK-LABEL: name: modify_and_kill_the_reg_in_the_same_inst
316 ; CHECK: renamable $x6 = LI8 1
317 ; CHECK: renamable $x6 = RLDICR killed renamable $x6, 44, 19
318 ; CHECK: BLR8 implicit $lr8, implicit $rm
319 renamable $x6 = LI8 1
320 renamable $x6 = RLDICR killed renamable $x6, 44, 19
321 BLR8 implicit $lr8, implicit $rm
322
323...
324---
325name: dead_load_immediate_followed_by_a_redundancy
Guillaume Chatelet48904e92019-09-11 11:16:48 +0000326alignment: 16
Yi-Hong Lyu41a010a2019-07-23 19:11:07 +0000327tracksRegLiveness: true
328machineFunctionInfo: {}
329body: |
330 bb.0.entry:
331 liveins: $x1
332
333 ; CHECK-LABEL: name: dead_load_immediate_followed_by_a_redundancy
334 ; CHECK: liveins: $x1
335 ; CHECK: renamable $r3 = LI 128
336 ; CHECK: renamable $x4 = ADDI8 $x1, -128
337 ; CHECK: renamable $x5 = ADDI8 $x1, -128
338 ; CHECK: STW killed renamable $r3, 16, $x4
339 ; CHECK: BLR8 implicit $lr8, implicit $rm
340 dead renamable $r3 = LI 128
341 renamable $x4 = ADDI8 $x1, -128
342 dead renamable $r3 = LI 128
343 renamable $x5 = ADDI8 $x1, -128
344 renamable $r3 = LI 128
345 STW killed renamable $r3, 16, $x4
346 BLR8 implicit $lr8, implicit $rm
347
348...
Yi-Hong Lyu2fbfb042019-10-11 05:32:29 +0000349---
350name: overwrite_reg_before_killed
351alignment: 16
352tracksRegLiveness: true
353machineFunctionInfo: {}
354body: |
355 bb.0.entry:
356 liveins: $x1
357
358 ; CHECK-LABEL: name: overwrite_reg_before_killed
359 ; CHECK: liveins: $x1
360 ; CHECK: renamable $x3 = LI8 0
361 ; CHECK: STD renamable $x3, 16, $x1
362 ; CHECK: STD killed renamable $x3, 8, $x1
363 ; CHECK: BLR8 implicit $lr8, implicit $rm
364 renamable $x3 = LI8 0
365 STD renamable $x3, 16, $x1
366 renamable $x3 = LI8 0
367 STD killed renamable $x3, 8, $x1
368 BLR8 implicit $lr8, implicit $rm
369
370...