comparison llvm/test/CodeGen/AMDGPU/coalesce-identity-copies-undef-subregs.mir @ 236:c4bab56944e8 llvm-original

LLVM 16
author kono
date Wed, 09 Nov 2022 17:45:10 +0900
parents 79ff65ed7e25
children 1f2b6ac9f198
comparison
equal deleted inserted replaced
232:70dce7da266c 236:c4bab56944e8
13 name: identity_copy_undef_subrange 13 name: identity_copy_undef_subrange
14 tracksRegLiveness: true 14 tracksRegLiveness: true
15 body: | 15 body: |
16 ; CHECK-LABEL: name: identity_copy_undef_subrange 16 ; CHECK-LABEL: name: identity_copy_undef_subrange
17 ; CHECK: bb.0: 17 ; CHECK: bb.0:
18 ; CHECK: successors: %bb.1(0x80000000) 18 ; CHECK-NEXT: successors: %bb.1(0x80000000)
19 ; CHECK: liveins: $vgpr0 19 ; CHECK-NEXT: liveins: $vgpr0
20 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 20 ; CHECK-NEXT: {{ $}}
21 ; CHECK: bb.1: 21 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
22 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 22 ; CHECK-NEXT: {{ $}}
23 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 23 ; CHECK-NEXT: bb.1:
24 ; CHECK: S_BRANCH %bb.2 24 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
25 ; CHECK: bb.2: 25 ; CHECK-NEXT: {{ $}}
26 ; CHECK: successors: %bb.1(0x80000000) 26 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
27 ; CHECK: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec 27 ; CHECK-NEXT: S_BRANCH %bb.2
28 ; CHECK: S_BRANCH %bb.1 28 ; CHECK-NEXT: {{ $}}
29 ; CHECK-NEXT: bb.2:
30 ; CHECK-NEXT: successors: %bb.1(0x80000000)
31 ; CHECK-NEXT: {{ $}}
32 ; CHECK-NEXT: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec
33 ; CHECK-NEXT: S_BRANCH %bb.1
29 bb.0: 34 bb.0:
30 liveins: $vgpr0 35 liveins: $vgpr0
31 36
32 undef %0.sub1:vreg_64 = COPY killed $vgpr0 37 undef %0.sub1:vreg_64 = COPY killed $vgpr0
33 38
49 name: identity_copy_undef_subrange_other_uses0 54 name: identity_copy_undef_subrange_other_uses0
50 tracksRegLiveness: true 55 tracksRegLiveness: true
51 body: | 56 body: |
52 ; CHECK-LABEL: name: identity_copy_undef_subrange_other_uses0 57 ; CHECK-LABEL: name: identity_copy_undef_subrange_other_uses0
53 ; CHECK: bb.0: 58 ; CHECK: bb.0:
54 ; CHECK: successors: %bb.1(0x80000000) 59 ; CHECK-NEXT: successors: %bb.1(0x80000000)
55 ; CHECK: liveins: $vgpr0 60 ; CHECK-NEXT: liveins: $vgpr0
56 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 61 ; CHECK-NEXT: {{ $}}
57 ; CHECK: bb.1: 62 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
58 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 63 ; CHECK-NEXT: {{ $}}
59 ; CHECK: S_NOP 0, implicit undef %0.sub0 64 ; CHECK-NEXT: bb.1:
60 ; CHECK: S_NOP 0, implicit undef %0.sub0 65 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
61 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 66 ; CHECK-NEXT: {{ $}}
62 ; CHECK: S_BRANCH %bb.2 67 ; CHECK-NEXT: S_NOP 0, implicit undef %0.sub0
63 ; CHECK: bb.2: 68 ; CHECK-NEXT: S_NOP 0, implicit undef %0.sub0
64 ; CHECK: successors: %bb.1(0x80000000) 69 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
65 ; CHECK: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec 70 ; CHECK-NEXT: S_BRANCH %bb.2
66 ; CHECK: S_BRANCH %bb.1 71 ; CHECK-NEXT: {{ $}}
72 ; CHECK-NEXT: bb.2:
73 ; CHECK-NEXT: successors: %bb.1(0x80000000)
74 ; CHECK-NEXT: {{ $}}
75 ; CHECK-NEXT: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec
76 ; CHECK-NEXT: S_BRANCH %bb.1
67 bb.0: 77 bb.0:
68 liveins: $vgpr0 78 liveins: $vgpr0
69 undef %0.sub1:vreg_64 = COPY killed $vgpr0 79 undef %0.sub1:vreg_64 = COPY killed $vgpr0
70 80
71 bb.1: 81 bb.1:
87 name: second_identity_copy 97 name: second_identity_copy
88 tracksRegLiveness: true 98 tracksRegLiveness: true
89 body: | 99 body: |
90 ; CHECK-LABEL: name: second_identity_copy 100 ; CHECK-LABEL: name: second_identity_copy
91 ; CHECK: bb.0: 101 ; CHECK: bb.0:
92 ; CHECK: successors: %bb.1(0x80000000) 102 ; CHECK-NEXT: successors: %bb.1(0x80000000)
93 ; CHECK: liveins: $vgpr0 103 ; CHECK-NEXT: liveins: $vgpr0
94 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 104 ; CHECK-NEXT: {{ $}}
95 ; CHECK: bb.1: 105 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
96 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 106 ; CHECK-NEXT: {{ $}}
97 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 107 ; CHECK-NEXT: bb.1:
98 ; CHECK: S_BRANCH %bb.2 108 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
99 ; CHECK: bb.2: 109 ; CHECK-NEXT: {{ $}}
100 ; CHECK: successors: %bb.1(0x80000000) 110 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
101 ; CHECK: undef %0.sub1:vreg_64 = nofpexcept V_MUL_F32_e32 0, %0.sub1, implicit $mode, implicit $exec 111 ; CHECK-NEXT: S_BRANCH %bb.2
102 ; CHECK: S_BRANCH %bb.1 112 ; CHECK-NEXT: {{ $}}
113 ; CHECK-NEXT: bb.2:
114 ; CHECK-NEXT: successors: %bb.1(0x80000000)
115 ; CHECK-NEXT: {{ $}}
116 ; CHECK-NEXT: undef %0.sub1:vreg_64 = nofpexcept V_MUL_F32_e32 0, %0.sub1, implicit $mode, implicit $exec
117 ; CHECK-NEXT: S_BRANCH %bb.1
103 bb.0: 118 bb.0:
104 liveins: $vgpr0 119 liveins: $vgpr0
105 120
106 undef %0.sub1:vreg_64 = COPY killed $vgpr0 121 undef %0.sub1:vreg_64 = COPY killed $vgpr0
107 122
123 name: second_identity_copy_undef_lane_outblock 138 name: second_identity_copy_undef_lane_outblock
124 tracksRegLiveness: true 139 tracksRegLiveness: true
125 body: | 140 body: |
126 ; CHECK-LABEL: name: second_identity_copy_undef_lane_outblock 141 ; CHECK-LABEL: name: second_identity_copy_undef_lane_outblock
127 ; CHECK: bb.0: 142 ; CHECK: bb.0:
128 ; CHECK: successors: %bb.1(0x80000000) 143 ; CHECK-NEXT: successors: %bb.1(0x80000000)
129 ; CHECK: liveins: $vgpr0 144 ; CHECK-NEXT: liveins: $vgpr0
130 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 145 ; CHECK-NEXT: {{ $}}
131 ; CHECK: bb.1: 146 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
132 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 147 ; CHECK-NEXT: {{ $}}
133 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 148 ; CHECK-NEXT: bb.1:
134 ; CHECK: S_BRANCH %bb.2 149 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
135 ; CHECK: bb.2: 150 ; CHECK-NEXT: {{ $}}
136 ; CHECK: successors: %bb.1(0x80000000) 151 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
137 ; CHECK: %0.sub1:vreg_64 = nofpexcept V_MUL_F32_e32 0, %0.sub1, implicit $mode, implicit $exec 152 ; CHECK-NEXT: S_BRANCH %bb.2
138 ; CHECK: S_BRANCH %bb.1 153 ; CHECK-NEXT: {{ $}}
154 ; CHECK-NEXT: bb.2:
155 ; CHECK-NEXT: successors: %bb.1(0x80000000)
156 ; CHECK-NEXT: {{ $}}
157 ; CHECK-NEXT: %0.sub1:vreg_64 = nofpexcept V_MUL_F32_e32 0, %0.sub1, implicit $mode, implicit $exec
158 ; CHECK-NEXT: S_BRANCH %bb.1
139 bb.0: 159 bb.0:
140 liveins: $vgpr0 160 liveins: $vgpr0
141 161
142 undef %0.sub1:vreg_64 = COPY killed $vgpr0 162 undef %0.sub1:vreg_64 = COPY killed $vgpr0
143 163
160 name: identity_copy_undef_subrange_null_vninfo_to_remove 180 name: identity_copy_undef_subrange_null_vninfo_to_remove
161 tracksRegLiveness: true 181 tracksRegLiveness: true
162 body: | 182 body: |
163 ; CHECK-LABEL: name: identity_copy_undef_subrange_null_vninfo_to_remove 183 ; CHECK-LABEL: name: identity_copy_undef_subrange_null_vninfo_to_remove
164 ; CHECK: bb.0: 184 ; CHECK: bb.0:
165 ; CHECK: successors: %bb.1(0x80000000) 185 ; CHECK-NEXT: successors: %bb.1(0x80000000)
166 ; CHECK: liveins: $vgpr0 186 ; CHECK-NEXT: liveins: $vgpr0
167 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 187 ; CHECK-NEXT: {{ $}}
168 ; CHECK: bb.1: 188 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
169 ; CHECK: successors: %bb.3(0x40000000), %bb.2(0x40000000) 189 ; CHECK-NEXT: {{ $}}
170 ; CHECK: S_CBRANCH_EXECNZ %bb.3, implicit $exec 190 ; CHECK-NEXT: bb.1:
171 ; CHECK: bb.2: 191 ; CHECK-NEXT: successors: %bb.3(0x40000000), %bb.2(0x40000000)
172 ; CHECK: successors: %bb.1(0x80000000) 192 ; CHECK-NEXT: {{ $}}
173 ; CHECK: S_NOP 0, implicit undef %0.sub0 193 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.3, implicit $exec
174 ; CHECK: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec 194 ; CHECK-NEXT: {{ $}}
175 ; CHECK: S_BRANCH %bb.1 195 ; CHECK-NEXT: bb.2:
176 ; CHECK: bb.3: 196 ; CHECK-NEXT: successors: %bb.1(0x80000000)
177 ; CHECK: S_NOP 0, implicit undef %0.sub0 197 ; CHECK-NEXT: {{ $}}
198 ; CHECK-NEXT: S_NOP 0, implicit undef %0.sub0
199 ; CHECK-NEXT: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec
200 ; CHECK-NEXT: S_BRANCH %bb.1
201 ; CHECK-NEXT: {{ $}}
202 ; CHECK-NEXT: bb.3:
203 ; CHECK-NEXT: S_NOP 0, implicit undef %0.sub0
178 bb.0: 204 bb.0:
179 liveins: $vgpr0 205 liveins: $vgpr0
180 206
181 undef %0.sub1:vreg_64 = COPY killed $vgpr0 207 undef %0.sub1:vreg_64 = COPY killed $vgpr0
182 208
198 name: undef_copy_self_loop0 224 name: undef_copy_self_loop0
199 tracksRegLiveness: true 225 tracksRegLiveness: true
200 body: | 226 body: |
201 ; CHECK-LABEL: name: undef_copy_self_loop0 227 ; CHECK-LABEL: name: undef_copy_self_loop0
202 ; CHECK: bb.0: 228 ; CHECK: bb.0:
203 ; CHECK: successors: %bb.1(0x80000000) 229 ; CHECK-NEXT: successors: %bb.1(0x80000000)
204 ; CHECK: liveins: $vgpr0 230 ; CHECK-NEXT: liveins: $vgpr0
205 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 231 ; CHECK-NEXT: {{ $}}
206 ; CHECK: bb.1: 232 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
207 ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000) 233 ; CHECK-NEXT: {{ $}}
208 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 234 ; CHECK-NEXT: bb.1:
209 ; CHECK: bb.2: 235 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
210 ; CHECK: S_NOP 0, implicit undef %0.sub0 236 ; CHECK-NEXT: {{ $}}
237 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
238 ; CHECK-NEXT: {{ $}}
239 ; CHECK-NEXT: bb.2:
240 ; CHECK-NEXT: S_NOP 0, implicit undef %0.sub0
211 bb.0: 241 bb.0:
212 liveins: $vgpr0 242 liveins: $vgpr0
213 243
214 undef %0.sub1:vreg_64 = COPY killed $vgpr0 244 undef %0.sub1:vreg_64 = COPY killed $vgpr0
215 245
226 name: undef_copy_self_loop1 256 name: undef_copy_self_loop1
227 tracksRegLiveness: true 257 tracksRegLiveness: true
228 body: | 258 body: |
229 ; CHECK-LABEL: name: undef_copy_self_loop1 259 ; CHECK-LABEL: name: undef_copy_self_loop1
230 ; CHECK: bb.0: 260 ; CHECK: bb.0:
231 ; CHECK: successors: %bb.1(0x80000000) 261 ; CHECK-NEXT: successors: %bb.1(0x80000000)
232 ; CHECK: liveins: $vgpr0 262 ; CHECK-NEXT: liveins: $vgpr0
233 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 263 ; CHECK-NEXT: {{ $}}
234 ; CHECK: bb.1: 264 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
235 ; CHECK: successors: %bb.1(0x40000000), %bb.2(0x40000000) 265 ; CHECK-NEXT: {{ $}}
236 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 266 ; CHECK-NEXT: bb.1:
237 ; CHECK: bb.2: 267 ; CHECK-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
238 ; CHECK: S_NOP 0, implicit %0.sub1 268 ; CHECK-NEXT: {{ $}}
269 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
270 ; CHECK-NEXT: {{ $}}
271 ; CHECK-NEXT: bb.2:
272 ; CHECK-NEXT: S_NOP 0, implicit %0.sub1
239 bb.0: 273 bb.0:
240 liveins: $vgpr0 274 liveins: $vgpr0
241 275
242 undef %0.sub1:vreg_64 = COPY killed $vgpr0 276 undef %0.sub1:vreg_64 = COPY killed $vgpr0
243 277
256 name: prune_subrange_phi_value_0 290 name: prune_subrange_phi_value_0
257 tracksRegLiveness: true 291 tracksRegLiveness: true
258 body: | 292 body: |
259 ; CHECK-LABEL: name: prune_subrange_phi_value_0 293 ; CHECK-LABEL: name: prune_subrange_phi_value_0
260 ; CHECK: bb.0: 294 ; CHECK: bb.0:
261 ; CHECK: successors: %bb.1(0x80000000) 295 ; CHECK-NEXT: successors: %bb.1(0x80000000)
262 ; CHECK: liveins: $vgpr0 296 ; CHECK-NEXT: liveins: $vgpr0
263 ; CHECK: undef %2.sub1:vreg_64 = COPY $vgpr0 297 ; CHECK-NEXT: {{ $}}
264 ; CHECK: bb.1: 298 ; CHECK-NEXT: undef %2.sub1:vreg_64 = COPY $vgpr0
265 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 299 ; CHECK-NEXT: {{ $}}
266 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 300 ; CHECK-NEXT: bb.1:
267 ; CHECK: S_BRANCH %bb.2 301 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
268 ; CHECK: bb.2: 302 ; CHECK-NEXT: {{ $}}
269 ; CHECK: successors: %bb.1(0x80000000) 303 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
270 ; CHECK: S_BRANCH %bb.1 304 ; CHECK-NEXT: S_BRANCH %bb.2
305 ; CHECK-NEXT: {{ $}}
306 ; CHECK-NEXT: bb.2:
307 ; CHECK-NEXT: successors: %bb.1(0x80000000)
308 ; CHECK-NEXT: {{ $}}
309 ; CHECK-NEXT: S_BRANCH %bb.1
271 bb.0: 310 bb.0:
272 liveins: $vgpr0 311 liveins: $vgpr0
273 312
274 undef %0.sub1:vreg_64 = COPY killed $vgpr0 313 undef %0.sub1:vreg_64 = COPY killed $vgpr0
275 314
292 name: prune_subrange_phi_value_0_0 331 name: prune_subrange_phi_value_0_0
293 tracksRegLiveness: true 332 tracksRegLiveness: true
294 body: | 333 body: |
295 ; CHECK-LABEL: name: prune_subrange_phi_value_0_0 334 ; CHECK-LABEL: name: prune_subrange_phi_value_0_0
296 ; CHECK: bb.0: 335 ; CHECK: bb.0:
297 ; CHECK: successors: %bb.1(0x80000000) 336 ; CHECK-NEXT: successors: %bb.1(0x80000000)
298 ; CHECK: liveins: $vgpr0 337 ; CHECK-NEXT: liveins: $vgpr0
299 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 338 ; CHECK-NEXT: {{ $}}
300 ; CHECK: bb.1: 339 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
301 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 340 ; CHECK-NEXT: {{ $}}
302 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 341 ; CHECK-NEXT: bb.1:
303 ; CHECK: S_BRANCH %bb.2 342 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
304 ; CHECK: bb.2: 343 ; CHECK-NEXT: {{ $}}
305 ; CHECK: successors: %bb.1(0x80000000) 344 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
306 ; CHECK: S_BRANCH %bb.1 345 ; CHECK-NEXT: S_BRANCH %bb.2
346 ; CHECK-NEXT: {{ $}}
347 ; CHECK-NEXT: bb.2:
348 ; CHECK-NEXT: successors: %bb.1(0x80000000)
349 ; CHECK-NEXT: {{ $}}
350 ; CHECK-NEXT: S_BRANCH %bb.1
307 bb.0: 351 bb.0:
308 liveins: $vgpr0 352 liveins: $vgpr0
309 353
310 undef %0.sub1:vreg_64 = COPY killed $vgpr0 354 undef %0.sub1:vreg_64 = COPY killed $vgpr0
311 355
327 name: prune_subrange_phi_value_0_1 371 name: prune_subrange_phi_value_0_1
328 tracksRegLiveness: true 372 tracksRegLiveness: true
329 body: | 373 body: |
330 ; CHECK-LABEL: name: prune_subrange_phi_value_0_1 374 ; CHECK-LABEL: name: prune_subrange_phi_value_0_1
331 ; CHECK: bb.0: 375 ; CHECK: bb.0:
332 ; CHECK: successors: %bb.1(0x80000000) 376 ; CHECK-NEXT: successors: %bb.1(0x80000000)
333 ; CHECK: liveins: $vgpr0 377 ; CHECK-NEXT: liveins: $vgpr0
334 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 378 ; CHECK-NEXT: {{ $}}
335 ; CHECK: bb.1: 379 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
336 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 380 ; CHECK-NEXT: {{ $}}
337 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 381 ; CHECK-NEXT: bb.1:
338 ; CHECK: S_BRANCH %bb.2 382 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
339 ; CHECK: bb.2: 383 ; CHECK-NEXT: {{ $}}
340 ; CHECK: successors: %bb.1(0x80000000) 384 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
341 ; CHECK: S_BRANCH %bb.1 385 ; CHECK-NEXT: S_BRANCH %bb.2
386 ; CHECK-NEXT: {{ $}}
387 ; CHECK-NEXT: bb.2:
388 ; CHECK-NEXT: successors: %bb.1(0x80000000)
389 ; CHECK-NEXT: {{ $}}
390 ; CHECK-NEXT: S_BRANCH %bb.1
342 bb.0: 391 bb.0:
343 liveins: $vgpr0 392 liveins: $vgpr0
344 393
345 undef %0.sub1:vreg_64 = COPY killed $vgpr0 394 undef %0.sub1:vreg_64 = COPY killed $vgpr0
346 395
363 name: prune_subrange_phi_value_1 412 name: prune_subrange_phi_value_1
364 tracksRegLiveness: true 413 tracksRegLiveness: true
365 body: | 414 body: |
366 ; CHECK-LABEL: name: prune_subrange_phi_value_1 415 ; CHECK-LABEL: name: prune_subrange_phi_value_1
367 ; CHECK: bb.0: 416 ; CHECK: bb.0:
368 ; CHECK: successors: %bb.1(0x80000000) 417 ; CHECK-NEXT: successors: %bb.1(0x80000000)
369 ; CHECK: liveins: $vgpr0 418 ; CHECK-NEXT: liveins: $vgpr0
370 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 419 ; CHECK-NEXT: {{ $}}
371 ; CHECK: bb.1: 420 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
372 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 421 ; CHECK-NEXT: {{ $}}
373 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 422 ; CHECK-NEXT: bb.1:
374 ; CHECK: S_BRANCH %bb.2 423 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
375 ; CHECK: bb.2: 424 ; CHECK-NEXT: {{ $}}
376 ; CHECK: successors: %bb.1(0x80000000) 425 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
377 ; CHECK: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec 426 ; CHECK-NEXT: S_BRANCH %bb.2
378 ; CHECK: S_BRANCH %bb.1 427 ; CHECK-NEXT: {{ $}}
428 ; CHECK-NEXT: bb.2:
429 ; CHECK-NEXT: successors: %bb.1(0x80000000)
430 ; CHECK-NEXT: {{ $}}
431 ; CHECK-NEXT: undef %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec
432 ; CHECK-NEXT: S_BRANCH %bb.1
379 bb.0: 433 bb.0:
380 liveins: $vgpr0 434 liveins: $vgpr0
381 435
382 undef %0.sub1:vreg_64 = COPY killed $vgpr0 436 undef %0.sub1:vreg_64 = COPY killed $vgpr0
383 437
399 name: prune_subrange_phi_value_2 453 name: prune_subrange_phi_value_2
400 tracksRegLiveness: true 454 tracksRegLiveness: true
401 body: | 455 body: |
402 ; CHECK-LABEL: name: prune_subrange_phi_value_2 456 ; CHECK-LABEL: name: prune_subrange_phi_value_2
403 ; CHECK: bb.0: 457 ; CHECK: bb.0:
404 ; CHECK: successors: %bb.1(0x80000000) 458 ; CHECK-NEXT: successors: %bb.1(0x80000000)
405 ; CHECK: liveins: $vgpr0 459 ; CHECK-NEXT: liveins: $vgpr0
406 ; CHECK: undef %0.sub1:vreg_64 = COPY $vgpr0 460 ; CHECK-NEXT: {{ $}}
407 ; CHECK: bb.1: 461 ; CHECK-NEXT: undef %0.sub1:vreg_64 = COPY $vgpr0
408 ; CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000) 462 ; CHECK-NEXT: {{ $}}
409 ; CHECK: S_CBRANCH_EXECNZ %bb.1, implicit $exec 463 ; CHECK-NEXT: bb.1:
410 ; CHECK: S_BRANCH %bb.2 464 ; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
411 ; CHECK: bb.2: 465 ; CHECK-NEXT: {{ $}}
412 ; CHECK: successors: %bb.1(0x80000000) 466 ; CHECK-NEXT: S_CBRANCH_EXECNZ %bb.1, implicit $exec
413 ; CHECK: %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec 467 ; CHECK-NEXT: S_BRANCH %bb.2
414 ; CHECK: S_BRANCH %bb.1 468 ; CHECK-NEXT: {{ $}}
469 ; CHECK-NEXT: bb.2:
470 ; CHECK-NEXT: successors: %bb.1(0x80000000)
471 ; CHECK-NEXT: {{ $}}
472 ; CHECK-NEXT: %0.sub1:vreg_64 = nofpexcept V_CEIL_F32_e32 %0.sub1, implicit $mode, implicit $exec
473 ; CHECK-NEXT: S_BRANCH %bb.1
415 bb.0: 474 bb.0:
416 liveins: $vgpr0 475 liveins: $vgpr0
417 476
418 undef %0.sub1:vreg_64 = COPY killed $vgpr0 477 undef %0.sub1:vreg_64 = COPY killed $vgpr0
419 478