Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / insert-skip-from-vcc.mir
blob009e9b9f20ed15b8a948c5e76b70dc02cf62bbec
1 # RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass si-pre-emit-peephole -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
2 # RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass si-pre-emit-peephole -verify-machineinstrs -o - %s | FileCheck -check-prefix=W32 %s
3 # RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass si-pre-emit-peephole -verify-machineinstrs -o - %s | FileCheck -check-prefix=W32 %s
5 ---
6 # GCN-LABEL: name: and_execz_mov_vccz
7 # GCN-NOT: S_MOV_
8 # GCN-NOT: S_AND_
9 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
10 name:            and_execz_mov_vccz
11 body:             |
12   bb.0:
13     S_NOP 0
15   bb.1:
16     S_NOP 0
18   bb.2:
19     $sgpr0_sgpr1 = S_MOV_B64 -1
20     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
21     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
22     S_ENDPGM 0
23 ...
24 ---
25 # GCN-LABEL: name: and_execz_imm_vccz
26 # GCN-NOT: S_AND_
27 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
28 name:            and_execz_imm_vccz
29 body:             |
30   bb.0:
31     S_NOP 0
33   bb.1:
34     S_NOP 0
36   bb.2:
37     $vcc = S_AND_B64 $exec, -1, implicit-def dead $scc
38     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
39     S_ENDPGM 0
40 ...
41 ---
42 # GCN-LABEL: name: and_execnz_imm_vccnz
43 # GCN-NOT: S_AND_
44 # GCN: S_CBRANCH_EXECNZ %bb.1, implicit $exec
45 name:            and_execnz_imm_vccnz
46 body:             |
47   bb.0:
48     S_NOP 0
50   bb.1:
51     S_NOP 0
53   bb.2:
54     $vcc = S_AND_B64 $exec, -1, implicit-def dead $scc
55     S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
56     S_ENDPGM 0
57 ...
58 ---
59 # GCN-LABEL: name: and_execz_imm_vccz_live_scc
60 # GCN: $vcc = S_AND_B64 $exec, -1, implicit-def $scc
61 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
62 name:            and_execz_imm_vccz_live_scc
63 body:             |
64   bb.0:
65     S_NOP 0
67   bb.1:
68     S_NOP 0
70   bb.2:
71     $vcc = S_AND_B64 $exec, -1, implicit-def $scc
72     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
73     S_ENDPGM 0
74 ...
75 ---
76 # GCN-LABEL: name: and_execz_mov_vccz_live_scc
77 # GCN-NOT: S_MOV_
78 # GCN: $vcc = S_AND_B64 $exec, -1, implicit-def $scc
79 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
80 name:            and_execz_mov_vccz_live_scc
81 body:             |
82   bb.0:
83     S_NOP 0
85   bb.1:
86     S_NOP 0
88   bb.2:
89     $sgpr0_sgpr1 = S_MOV_B64 -1
90     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
91     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
92     S_ENDPGM 0
93 ...
94 ---
95 # GCN-LABEL: name: and_execz_mov_vccz_live_sreg
96 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
97 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
98 name:            and_execz_mov_vccz_live_sreg
99 body:             |
100   bb.0:
101     S_NOP 0
103   bb.1:
104     S_NOP 0
106   bb.2:
107     $sgpr0_sgpr1 = S_MOV_B64 -1
108     $vcc = S_AND_B64 $exec, $sgpr0_sgpr1, implicit-def dead $scc
109     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
110     S_ENDPGM 0
113 # GCN-LABEL: name: and_execz_mov_vccz_live_sreg_commute
114 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
115 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
116 name:            and_execz_mov_vccz_live_sreg_commute
117 body:             |
118   bb.0:
119     S_NOP 0
121   bb.1:
122     S_NOP 0
124   bb.2:
125     $sgpr0_sgpr1 = S_MOV_B64 -1
126     $vcc = S_AND_B64 $sgpr0_sgpr1, $exec, implicit-def dead $scc
127     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
128     S_ENDPGM 0
131 # GCN-LABEL: name: and_execz_mov_vccz_live_scc_commute
132 # GCN-NOT: S_MOV_
133 # GCN: $vcc = S_AND_B64 $exec, -1, implicit-def $scc
134 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
135 name:            and_execz_mov_vccz_live_scc_commute
136 body:             |
137   bb.0:
138     S_NOP 0
140   bb.1:
141     S_NOP 0
143   bb.2:
144     $sgpr0_sgpr1 = S_MOV_B64 -1
145     $vcc = S_AND_B64 killed $sgpr0_sgpr1, $exec, implicit-def $scc
146     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
147     S_ENDPGM 0
150 # GCN-LABEL: name: and_execz_mov_vccz_commute
151 # GCN-NOT: S_MOV_
152 # GCN-NOT: S_AND_
153 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
154 name:            and_execz_mov_vccz_commute
155 body:             |
156   bb.0:
157     S_NOP 0
159   bb.1:
160     S_NOP 0
162   bb.2:
163     $sgpr0_sgpr1 = S_MOV_B64 -1
164     $vcc = S_AND_B64 killed $sgpr0_sgpr1, $exec, implicit-def dead $scc
165     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
166     S_ENDPGM 0
169 # GCN-LABEL: name: and_execz_mov_exec_vccz
170 # GCN:      $exec = S_MOV_B64 -1
171 # GCN-NEXT: S_ENDPGM 0
172 name:            and_execz_mov_exec_vccz
173 body:             |
174   bb.0:
175     S_NOP 0
177   bb.1:
178     S_NOP 0
180   bb.2:
181     $exec = S_MOV_B64 -1
182     $vcc = S_AND_B64 $exec, $exec, implicit-def dead $scc
183     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
184     S_ENDPGM 0
187 # GCN-LABEL: name: and_execz_mov_exec_vccnz
188 # GCN:      $exec = S_MOV_B64 -1
189 # GCN-NEXT: S_BRANCH %bb.1{{$}}
190 name:            and_execz_mov_exec_vccnz
191 body:             |
192   bb.0:
193     S_NOP 0
195   bb.1:
196     S_NOP 0
198   bb.2:
199     $exec = S_MOV_B64 -1
200     $vcc = S_AND_B64 $exec, $exec, implicit-def dead $scc
201     S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
202     S_ENDPGM 0
205 # GCN-LABEL: name: and_execz_mov_vccz_reads_sreg_early
206 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
207 # GCN-NEXT: $sgpr2 = S_MOV_B32 $sgpr1
208 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
209 name:            and_execz_mov_vccz_reads_sreg_early
210 body:             |
211   bb.0:
212     S_NOP 0
214   bb.1:
215     S_NOP 0
217   bb.2:
218     $sgpr0_sgpr1 = S_MOV_B64 -1
219     $sgpr2 = S_MOV_B32 $sgpr1
220     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
221     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
222     S_ENDPGM 0
225 # GCN-LABEL: name: and_execz_mov_vccz_reads_sreg_late
226 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
227 # GCN-NEXT: $sgpr2 = S_MOV_B32 $sgpr1
228 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
229 name:            and_execz_mov_vccz_reads_sreg_late
230 body:             |
231   bb.0:
232     S_NOP 0
234   bb.1:
235     S_NOP 0
237   bb.2:
238     $sgpr0_sgpr1 = S_MOV_B64 -1
239     $vcc = S_AND_B64 $exec, $sgpr0_sgpr1, implicit-def dead $scc
240     $sgpr2 = S_MOV_B32 $sgpr1
241     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
242     S_ENDPGM 0
244 # GCN-LABEL: name: and_execz_mov_vccz_reads_writes_sreg_early
245 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
246 # GCN-NEXT: $sgpr1 = S_MOV_B32 $sgpr0
247 # GCN-NEXT: $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
248 # GCN-NEXT: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
249 name:            and_execz_mov_vccz_reads_writes_sreg_early
250 body:             |
251   bb.0:
252     S_NOP 0
254   bb.1:
255     S_NOP 0
257   bb.2:
258     $sgpr0_sgpr1 = S_MOV_B64 -1
259     $sgpr1 = S_MOV_B32 $sgpr0
260     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
261     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
262     S_ENDPGM 0
265 # GCN-LABEL: name: and_execz_mov_vccz_reads_cond
266 # GCN:      $vcc = S_AND_B64 $exec, -1, implicit-def dead $scc
267 # GCN-NEXT: $sgpr2 = S_MOV_B32 $vcc_lo
268 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
269 name:            and_execz_mov_vccz_reads_cond
270 body:             |
271   bb.0:
272     S_NOP 0
274   bb.1:
275     S_NOP 0
277   bb.2:
278     $sgpr0_sgpr1 = S_MOV_B64 -1
279     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
280     $sgpr2 = S_MOV_B32 $vcc_lo
281     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
282     S_ENDPGM 0
285 # GCN-LABEL: name: and_execz_mov_vccz_modifies_sreg
286 # GCN:      $sgpr0_sgpr1 = S_MOV_B64 -1
287 # GCN-NEXT: $sgpr0 = S_MOV_B32 0
288 # GCN-NEXT: $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
289 # GCN-NEXT: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
290 name:            and_execz_mov_vccz_modifies_sreg
291 body:             |
292   bb.0:
293     S_NOP 0
295   bb.1:
296     S_NOP 0
298   bb.2:
299     $sgpr0_sgpr1 = S_MOV_B64 -1
300     $sgpr0 = S_MOV_B32 0
301     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
302     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
303     S_ENDPGM 0
306 # GCN-LABEL: name: and_execz_imm_vccz_liveout_scc
307 # GCN:      $vcc = S_AND_B64 $exec, -1, implicit-def $scc
308 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
309 # GCN-NEXT: S_ENDPGM 0, implicit $scc
310 name:            and_execz_imm_vccz_liveout_scc
311 body:             |
312   bb.0:
313     S_NOP 0
315   bb.1:
316     S_NOP 0
318   bb.2:
319     $vcc = S_AND_B64 $exec, -1, implicit-def $scc
320     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
321     S_ENDPGM 0, implicit $scc
324 # W32-LABEL: name: and_execz_mov_vccz_w32
325 # W32-NOT: S_MOV_
326 # W32-NOT: S_AND_
327 # W32: S_CBRANCH_EXECZ %bb.1, implicit $exec
328 name:            and_execz_mov_vccz_w32
329 body:             |
330   bb.0:
331     S_NOP 0
333   bb.1:
334     S_NOP 0
336   bb.2:
337     $sgpr0 = S_MOV_B32 -1
338     $vcc_lo = S_AND_B32 $exec_lo, killed $sgpr0, implicit-def dead $scc
339     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
340     S_ENDPGM 0
343 # GCN-LABEL: name: andn2_execz_mov_vccz
344 # GCN-NOT: S_MOV_
345 # GCN-NOT: S_ANDN2_
346 # GCN: S_CBRANCH_EXECZ %bb.1, implicit $exec
347 name:            andn2_execz_mov_vccz
348 body:             |
349   bb.0:
350     S_NOP 0
352   bb.1:
353     S_NOP 0
355   bb.2:
356     $sgpr0_sgpr1 = S_MOV_B64 0
357     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
358     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
359     S_ENDPGM 0
362 # GCN-LABEL: name: andn2_branch_mov_vccz
363 # GCN-NOT: S_MOV_
364 # GCN-NOT: S_ANDN2_
365 # GCN: S_BRANCH %bb.1
366 name:            andn2_branch_mov_vccz
367 body:             |
368   bb.0:
369     S_NOP 0
371   bb.1:
372     S_NOP 0
374   bb.2:
375     $sgpr0_sgpr1 = S_MOV_B64 -1
376     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
377     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
378     S_ENDPGM 0
381 # GCN-LABEL: name: andn2_execnz_mov_vccnz
382 # GCN-NOT: S_MOV_
383 # GCN-NOT: S_ANDN2_
384 # GCN: S_CBRANCH_EXECNZ %bb.1, implicit $exec
385 name:            andn2_execnz_mov_vccnz
386 body:             |
387   bb.0:
388     S_NOP 0
390   bb.1:
391     S_NOP 0
393   bb.2:
394     $sgpr0_sgpr1 = S_MOV_B64 0
395     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
396     S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
397     S_ENDPGM 0
400 # GCN-LABEL: name: andn2_no_branch_mov_vccnz
401 # GCN-NOT: S_MOV_
402 # GCN-NOT: S_ANDN2_
403 # GCN-NOT: S_CBRANCH
404 # GCN-NOT: S_BRANCH
405 name:            andn2_no_branch_mov_vccnz
406 body:             |
407   bb.0:
408     S_NOP 0
410   bb.1:
411     S_NOP 0
413   bb.2:
414     $sgpr0_sgpr1 = S_MOV_B64 -1
415     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
416     S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
417     S_ENDPGM 0
420 # GCN-LABEL: name: and_0_mov
421 # GCN: bb.2:
422 # GCN-NOT: S_AND
423 # GCN: $vcc = S_MOV_B64 0
424 # GCN-NEXT: S_BRANCH %bb.1
425 name:            and_0_mov
426 body:             |
427   bb.0:
428     S_NOP 0
430   bb.1:
431     S_NOP 0
433   bb.2:
434     $sgpr0_sgpr1 = S_MOV_B64 0
435     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
436     S_CBRANCH_VCCZ %bb.1, implicit $vcc
437     S_ENDPGM 0
440 # GCN-LABEL: name: andn2_m1_mov
441 # GCN: bb.2:
442 # GCN-NOT: S_ANDN2
443 # GCN: $vcc = S_MOV_B64 0
444 # GCN-NEXT: S_BRANCH %bb.1
445 name:            andn2_m1_mov
446 body:             |
447   bb.0:
448     S_NOP 0
450   bb.1:
451     S_NOP 0
453   bb.2:
454     $sgpr0_sgpr1 = S_MOV_B64 -1
455     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
456     S_CBRANCH_VCCZ %bb.1, implicit $vcc
457     S_ENDPGM 0
460 # GCN-LABEL: name: and_m1_mov
461 # GCN: bb.2:
462 # GCN-NOT: S_AND
463 # GCN: $vcc = S_MOV_B64 $exec
464 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
465 name:            and_m1_mov
466 body:             |
467   bb.0:
468     S_NOP 0
470   bb.1:
471     S_NOP 0
473   bb.2:
474     $sgpr0_sgpr1 = S_MOV_B64 -1
475     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
476     S_CBRANCH_VCCZ %bb.1, implicit $vcc
477     S_ENDPGM 0
480 # GCN-LABEL: name: andn2_0_mov
481 # GCN: bb.2:
482 # GCN-NOT: S_ANDN2
483 # GCN: $vcc = S_MOV_B64 $exec
484 # GCN-NEXT: S_CBRANCH_EXECZ %bb.1, implicit $exec
485 name:            andn2_0_mov
486 body:             |
487   bb.0:
488     S_NOP 0
490   bb.1:
491     S_NOP 0
493   bb.2:
494     $sgpr0_sgpr1 = S_MOV_B64 0
495     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def dead $scc
496     S_CBRANCH_VCCZ %bb.1, implicit $vcc
497     S_ENDPGM 0
500 # GCN-LABEL: name: and_0_scc_req
501 # GCN: bb.2:
502 # GCN-NOT: S_MOV_
503 # GCN: S_AND_
504 # GCN-NEXT: S_BRANCH %bb.1
505 name:            and_0_scc_req
506 body:             |
507   bb.0:
508     S_NOP 0
510   bb.1:
511     S_NOP 0
513   bb.2:
514     $sgpr0_sgpr1 = S_MOV_B64 0
515     $vcc = S_AND_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
516     S_CBRANCH_VCCZ %bb.1, implicit $vcc
517     S_ENDPGM 0
520 # GCN-LABEL: name: andn2_m1_scc_req
521 # GCN: bb.2:
522 # GCN-NOT: S_MOV_
523 # GCN: S_ANDN2_
524 # GCN-NEXT: S_BRANCH %bb.1
525 name:            andn2_m1_scc_req
526 body:             |
527   bb.0:
528     S_NOP 0
530   bb.1:
531     S_NOP 0
533   bb.2:
534     $sgpr0_sgpr1 = S_MOV_B64 -1
535     $vcc = S_ANDN2_B64 $exec, killed $sgpr0_sgpr1, implicit-def $scc
536     S_CBRANCH_VCCZ %bb.1, implicit $vcc
537     S_ENDPGM 0
540 # GCN-LABEL: name: and_cmp_vccz
541 # GCN: V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
542 # GCN-NOT: S_AND_
543 # GCN: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
544 name:            and_cmp_vccz
545 body:             |
546   bb.0:
547     S_NOP 0
549   bb.1:
550     S_NOP 0
552   bb.2:
553     V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
554     $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
555     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
556     S_ENDPGM 0
559 # GCN-LABEL: name: and_cmp_vccnz
560 # GCN: V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
561 # GCN-NOT: S_AND_
562 # GCN: S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
563 name:            and_cmp_vccnz
564 body:             |
565   bb.0:
566     S_NOP 0
568   bb.1:
569     S_NOP 0
571   bb.2:
572     V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
573     $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
574     S_CBRANCH_VCCNZ %bb.1, implicit killed $vcc
575     S_ENDPGM 0
578 # GCN-LABEL: name: andn2_cmp_vccz
579 # GCN: V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
580 # GCN: $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc
581 # GCN: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
582 name:            andn2_cmp_vccz
583 body:             |
584   bb.0:
585     S_NOP 0
587   bb.1:
588     S_NOP 0
590   bb.2:
591     V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
592     $vcc = S_ANDN2_B64 $exec, $vcc, implicit-def dead $scc
593     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
594     S_ENDPGM 0
597 # GCN-LABEL: name: and_cmpclass_vccz
598 # GCN: V_CMP_CLASS_F32_e32 killed $sgpr0, killed $vgpr0, implicit-def $vcc, implicit $exec
599 # GCN-NOT: S_AND_
600 # GCN: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
601 name:            and_cmpclass_vccz
602 body:             |
603   bb.0:
604     S_NOP 0
606   bb.1:
607     S_NOP 0
609   bb.2:
610     V_CMP_CLASS_F32_e32 killed $sgpr0, killed $vgpr0, implicit-def $vcc, implicit $exec
611     $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
612     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
613     S_ENDPGM 0
616 # GCN-LABEL: name: and_cmpx_vccz
617 # GCN: V_CMPX_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit-def $exec, implicit $exec
618 # GCN-NOT: S_AND_
619 # GCN: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
620 name:            and_cmpx_vccz
621 body:             |
622   bb.0:
623     S_NOP 0
625   bb.1:
626     S_NOP 0
628   bb.2:
629     V_CMPX_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit-def $exec, implicit $exec
630     $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
631     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
632     S_ENDPGM 0
635 # GCN-LABEL: name: and_or_cmp_vccz
636 # GCN: V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
637 # GCN: $exec = S_OR_B64 $exec, $sgpr0_sgpr1, implicit-def dead $scc
638 # GCN: $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
639 # GCN: S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
640 name:            and_or_cmp_vccz
641 body:             |
642   bb.0:
643     S_NOP 0
645   bb.1:
646     S_NOP 0
648   bb.2:
649     V_CMP_EQ_U32_e32 0, killed $vgpr0, implicit-def $vcc, implicit $exec
650     $exec = S_OR_B64 $exec, $sgpr0_sgpr1, implicit-def dead $scc
651     $vcc = S_AND_B64 $exec, $vcc, implicit-def dead $scc
652     S_CBRANCH_VCCZ %bb.1, implicit killed $vcc
653     S_ENDPGM 0