Lines Matching refs:GCN
2 …-mcpu=gfx900 -run-pass=peephole-opt --verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
7 ; GCN-LABEL: name: and_1_cmp_eq_u32_1
8 ; GCN: bb.0:
9 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
10 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
11 ; GCN-NEXT: {{ $}}
12 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
13 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
14 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
15 ; GCN-NEXT: S_BRANCH %bb.1
16 ; GCN-NEXT: {{ $}}
17 ; GCN-NEXT: bb.1:
18 ; GCN-NEXT: successors: %bb.2(0x80000000)
19 ; GCN-NEXT: {{ $}}
20 ; GCN-NEXT: {{ $}}
21 ; GCN-NEXT: bb.2:
22 ; GCN-NEXT: S_ENDPGM 0
44 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_used_and
45 ; GCN: bb.0:
46 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
47 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
48 ; GCN-NEXT: {{ $}}
49 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
50 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
51 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
52 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
53 ; GCN-NEXT: S_BRANCH %bb.1
54 ; GCN-NEXT: {{ $}}
55 ; GCN-NEXT: bb.1:
56 ; GCN-NEXT: successors: %bb.2(0x80000000)
57 ; GCN-NEXT: {{ $}}
58 ; GCN-NEXT: {{ $}}
59 ; GCN-NEXT: bb.2:
60 ; GCN-NEXT: S_ENDPGM 0
83 ; GCN-LABEL: name: and_1_cmp_eq_i32_1
84 ; GCN: bb.0:
85 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
86 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
87 ; GCN-NEXT: {{ $}}
88 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
89 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
90 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
91 ; GCN-NEXT: S_BRANCH %bb.1
92 ; GCN-NEXT: {{ $}}
93 ; GCN-NEXT: bb.1:
94 ; GCN-NEXT: successors: %bb.2(0x80000000)
95 ; GCN-NEXT: {{ $}}
96 ; GCN-NEXT: {{ $}}
97 ; GCN-NEXT: bb.2:
98 ; GCN-NEXT: S_ENDPGM 0
120 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_phys
121 ; GCN: bb.0:
122 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
123 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
124 ; GCN-NEXT: {{ $}}
125 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
126 ; GCN-NEXT: $sgpr2 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
127 ; GCN-NEXT: S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc
128 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
129 ; GCN-NEXT: S_BRANCH %bb.1
130 ; GCN-NEXT: {{ $}}
131 ; GCN-NEXT: bb.1:
132 ; GCN-NEXT: successors: %bb.2(0x80000000)
133 ; GCN-NEXT: {{ $}}
134 ; GCN-NEXT: {{ $}}
135 ; GCN-NEXT: bb.2:
136 ; GCN-NEXT: S_ENDPGM 0
158 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_different_blocks
159 ; GCN: bb.0:
160 ; GCN-NEXT: successors: %bb.1(0x80000000)
161 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
162 ; GCN-NEXT: {{ $}}
163 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
164 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
165 ; GCN-NEXT: {{ $}}
166 ; GCN-NEXT: bb.1:
167 ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
168 ; GCN-NEXT: {{ $}}
169 ; GCN-NEXT: S_CMP_EQ_I32 [[S_AND_B32_]], 1, implicit-def $scc
170 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
171 ; GCN-NEXT: S_BRANCH %bb.1
172 ; GCN-NEXT: {{ $}}
173 ; GCN-NEXT: bb.2:
174 ; GCN-NEXT: successors: %bb.3(0x80000000)
175 ; GCN-NEXT: {{ $}}
176 ; GCN-NEXT: {{ $}}
177 ; GCN-NEXT: bb.3:
178 ; GCN-NEXT: S_ENDPGM 0
204 ; GCN-LABEL: name: and_3_cmp_eq_1
205 ; GCN: bb.0:
206 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
207 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
208 ; GCN-NEXT: {{ $}}
209 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
210 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
211 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
212 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
213 ; GCN-NEXT: S_BRANCH %bb.1
214 ; GCN-NEXT: {{ $}}
215 ; GCN-NEXT: bb.1:
216 ; GCN-NEXT: successors: %bb.2(0x80000000)
217 ; GCN-NEXT: {{ $}}
218 ; GCN-NEXT: {{ $}}
219 ; GCN-NEXT: bb.2:
220 ; GCN-NEXT: S_ENDPGM 0
242 ; GCN-LABEL: name: commuted_and_1_cmp_eq_1
243 ; GCN: bb.0:
244 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
245 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
246 ; GCN-NEXT: {{ $}}
247 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
248 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
249 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
250 ; GCN-NEXT: S_BRANCH %bb.1
251 ; GCN-NEXT: {{ $}}
252 ; GCN-NEXT: bb.1:
253 ; GCN-NEXT: successors: %bb.2(0x80000000)
254 ; GCN-NEXT: {{ $}}
255 ; GCN-NEXT: {{ $}}
256 ; GCN-NEXT: bb.2:
257 ; GCN-NEXT: S_ENDPGM 0
279 ; GCN-LABEL: name: cmp_eq_1_undef_src
280 ; GCN: bb.0:
281 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
282 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
283 ; GCN-NEXT: {{ $}}
284 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
285 ; GCN-NEXT: S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc
286 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
287 ; GCN-NEXT: S_BRANCH %bb.1
288 ; GCN-NEXT: {{ $}}
289 ; GCN-NEXT: bb.1:
290 ; GCN-NEXT: successors: %bb.2(0x80000000)
291 ; GCN-NEXT: {{ $}}
292 ; GCN-NEXT: {{ $}}
293 ; GCN-NEXT: bb.2:
294 ; GCN-NEXT: S_ENDPGM 0
315 ; GCN-LABEL: name: and_1_cmp_subreg0_eq_1
316 ; GCN: bb.0:
317 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
318 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
319 ; GCN-NEXT: {{ $}}
320 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
321 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
322 …; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_AND_B32_]], %subreg.sub0, [[S_AN…
323 ; GCN-NEXT: S_CMP_EQ_U32 killed [[REG_SEQUENCE]].sub0, 1, implicit-def $scc
324 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
325 ; GCN-NEXT: S_BRANCH %bb.1
326 ; GCN-NEXT: {{ $}}
327 ; GCN-NEXT: bb.1:
328 ; GCN-NEXT: successors: %bb.2(0x80000000)
329 ; GCN-NEXT: {{ $}}
330 ; GCN-NEXT: {{ $}}
331 ; GCN-NEXT: bb.2:
332 ; GCN-NEXT: S_ENDPGM 0
355 ; GCN-LABEL: name: and_reg_cmp_eq_1
356 ; GCN: bb.0:
357 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
358 ; GCN-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1
359 ; GCN-NEXT: {{ $}}
360 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
361 ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
362 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], killed [[COPY1]], implic…
363 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
364 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
365 ; GCN-NEXT: S_BRANCH %bb.1
366 ; GCN-NEXT: {{ $}}
367 ; GCN-NEXT: bb.1:
368 ; GCN-NEXT: successors: %bb.2(0x80000000)
369 ; GCN-NEXT: {{ $}}
370 ; GCN-NEXT: {{ $}}
371 ; GCN-NEXT: bb.2:
372 ; GCN-NEXT: S_ENDPGM 0
395 ; GCN-LABEL: name: and_1_cmp_eq_1_killed_scc
396 ; GCN: bb.0:
397 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
398 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
399 ; GCN-NEXT: {{ $}}
400 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
401 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
402 ; GCN-NEXT: S_NOP 0, implicit killed $scc
403 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
404 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
405 ; GCN-NEXT: S_BRANCH %bb.1
406 ; GCN-NEXT: {{ $}}
407 ; GCN-NEXT: bb.1:
408 ; GCN-NEXT: successors: %bb.2(0x80000000)
409 ; GCN-NEXT: {{ $}}
410 ; GCN-NEXT: {{ $}}
411 ; GCN-NEXT: bb.2:
412 ; GCN-NEXT: S_ENDPGM 0
435 ; GCN-LABEL: name: and_1_cmp_eq_1_clobbered_scc
436 ; GCN: bb.0:
437 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
438 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
439 ; GCN-NEXT: {{ $}}
440 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
441 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
442 ; GCN-NEXT: S_NOP 0, implicit-def $scc
443 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
444 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
445 ; GCN-NEXT: S_BRANCH %bb.1
446 ; GCN-NEXT: {{ $}}
447 ; GCN-NEXT: bb.1:
448 ; GCN-NEXT: successors: %bb.2(0x80000000)
449 ; GCN-NEXT: {{ $}}
450 ; GCN-NEXT: {{ $}}
451 ; GCN-NEXT: bb.2:
452 ; GCN-NEXT: S_ENDPGM 0
475 ; GCN-LABEL: name: and_1_cmp_eq_2
476 ; GCN: bb.0:
477 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
478 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
479 ; GCN-NEXT: {{ $}}
480 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
481 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
482 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 2, implicit-def $scc
483 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
484 ; GCN-NEXT: S_BRANCH %bb.1
485 ; GCN-NEXT: {{ $}}
486 ; GCN-NEXT: bb.1:
487 ; GCN-NEXT: successors: %bb.2(0x80000000)
488 ; GCN-NEXT: {{ $}}
489 ; GCN-NEXT: {{ $}}
490 ; GCN-NEXT: bb.2:
491 ; GCN-NEXT: S_ENDPGM 0
513 ; GCN-LABEL: name: or_1_cmp_eq_u32_1
514 ; GCN: bb.0:
515 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
516 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
517 ; GCN-NEXT: {{ $}}
518 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
519 ; GCN-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 1, killed [[COPY]], implicit-def dead $scc
520 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_OR_B32_]], 1, implicit-def $scc
521 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
522 ; GCN-NEXT: S_BRANCH %bb.1
523 ; GCN-NEXT: {{ $}}
524 ; GCN-NEXT: bb.1:
525 ; GCN-NEXT: successors: %bb.2(0x80000000)
526 ; GCN-NEXT: {{ $}}
527 ; GCN-NEXT: {{ $}}
528 ; GCN-NEXT: bb.2:
529 ; GCN-NEXT: S_ENDPGM 0
551 ; GCN-LABEL: name: and_1_cmp_ge_u32_1
552 ; GCN: bb.0:
553 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
554 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
555 ; GCN-NEXT: {{ $}}
556 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
557 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
558 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
559 ; GCN-NEXT: S_BRANCH %bb.1
560 ; GCN-NEXT: {{ $}}
561 ; GCN-NEXT: bb.1:
562 ; GCN-NEXT: successors: %bb.2(0x80000000)
563 ; GCN-NEXT: {{ $}}
564 ; GCN-NEXT: {{ $}}
565 ; GCN-NEXT: bb.2:
566 ; GCN-NEXT: S_ENDPGM 0
588 ; GCN-LABEL: name: and_1_cmp_ge_i32_1
589 ; GCN: bb.0:
590 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
591 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
592 ; GCN-NEXT: {{ $}}
593 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
594 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
595 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
596 ; GCN-NEXT: S_BRANCH %bb.1
597 ; GCN-NEXT: {{ $}}
598 ; GCN-NEXT: bb.1:
599 ; GCN-NEXT: successors: %bb.2(0x80000000)
600 ; GCN-NEXT: {{ $}}
601 ; GCN-NEXT: {{ $}}
602 ; GCN-NEXT: bb.2:
603 ; GCN-NEXT: S_ENDPGM 0
625 ; GCN-LABEL: name: and_1_cmp_gt_u32_0
626 ; GCN: bb.0:
627 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
628 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
629 ; GCN-NEXT: {{ $}}
630 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
631 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
632 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
633 ; GCN-NEXT: S_BRANCH %bb.1
634 ; GCN-NEXT: {{ $}}
635 ; GCN-NEXT: bb.1:
636 ; GCN-NEXT: successors: %bb.2(0x80000000)
637 ; GCN-NEXT: {{ $}}
638 ; GCN-NEXT: {{ $}}
639 ; GCN-NEXT: bb.2:
640 ; GCN-NEXT: S_ENDPGM 0
662 ; GCN-LABEL: name: and_1_cmp_gt_i32_0
663 ; GCN: bb.0:
664 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
665 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
666 ; GCN-NEXT: {{ $}}
667 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
668 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
669 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
670 ; GCN-NEXT: S_BRANCH %bb.1
671 ; GCN-NEXT: {{ $}}
672 ; GCN-NEXT: bb.1:
673 ; GCN-NEXT: successors: %bb.2(0x80000000)
674 ; GCN-NEXT: {{ $}}
675 ; GCN-NEXT: {{ $}}
676 ; GCN-NEXT: bb.2:
677 ; GCN-NEXT: S_ENDPGM 0
699 ; GCN-LABEL: name: and_1_cmp_gt_1
700 ; GCN: bb.0:
701 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
702 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
703 ; GCN-NEXT: {{ $}}
704 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
705 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
706 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
707 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
708 ; GCN-NEXT: S_BRANCH %bb.1
709 ; GCN-NEXT: {{ $}}
710 ; GCN-NEXT: bb.1:
711 ; GCN-NEXT: successors: %bb.2(0x80000000)
712 ; GCN-NEXT: {{ $}}
713 ; GCN-NEXT: {{ $}}
714 ; GCN-NEXT: bb.2:
715 ; GCN-NEXT: S_ENDPGM 0
737 ; GCN-LABEL: name: and_1_cmp_lg_u32_0
738 ; GCN: bb.0:
739 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
740 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
741 ; GCN-NEXT: {{ $}}
742 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
743 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
744 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
745 ; GCN-NEXT: S_BRANCH %bb.1
746 ; GCN-NEXT: {{ $}}
747 ; GCN-NEXT: bb.1:
748 ; GCN-NEXT: successors: %bb.2(0x80000000)
749 ; GCN-NEXT: {{ $}}
750 ; GCN-NEXT: {{ $}}
751 ; GCN-NEXT: bb.2:
752 ; GCN-NEXT: S_ENDPGM 0
774 ; GCN-LABEL: name: and_1_cmp_lg_i32_0
775 ; GCN: bb.0:
776 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
777 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
778 ; GCN-NEXT: {{ $}}
779 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
780 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
781 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
782 ; GCN-NEXT: S_BRANCH %bb.1
783 ; GCN-NEXT: {{ $}}
784 ; GCN-NEXT: bb.1:
785 ; GCN-NEXT: successors: %bb.2(0x80000000)
786 ; GCN-NEXT: {{ $}}
787 ; GCN-NEXT: {{ $}}
788 ; GCN-NEXT: bb.2:
789 ; GCN-NEXT: S_ENDPGM 0
811 ; GCN-LABEL: name: and_1_cmp_eq_u64_1
812 ; GCN: bb.0:
813 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
814 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
815 ; GCN-NEXT: {{ $}}
816 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
817 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
818 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
819 ; GCN-NEXT: S_BRANCH %bb.1
820 ; GCN-NEXT: {{ $}}
821 ; GCN-NEXT: bb.1:
822 ; GCN-NEXT: successors: %bb.2(0x80000000)
823 ; GCN-NEXT: {{ $}}
824 ; GCN-NEXT: {{ $}}
825 ; GCN-NEXT: bb.2:
826 ; GCN-NEXT: S_ENDPGM 0
848 ; GCN-LABEL: name: and_1_cmp_lg_u64_0
849 ; GCN: bb.0:
850 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
851 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
852 ; GCN-NEXT: {{ $}}
853 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
854 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
855 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
856 ; GCN-NEXT: S_BRANCH %bb.1
857 ; GCN-NEXT: {{ $}}
858 ; GCN-NEXT: bb.1:
859 ; GCN-NEXT: successors: %bb.2(0x80000000)
860 ; GCN-NEXT: {{ $}}
861 ; GCN-NEXT: {{ $}}
862 ; GCN-NEXT: bb.2:
863 ; GCN-NEXT: S_ENDPGM 0
885 ; GCN-LABEL: name: and_1_cmpk_eq_u32_1
886 ; GCN: bb.0:
887 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
888 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
889 ; GCN-NEXT: {{ $}}
890 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
891 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
892 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
893 ; GCN-NEXT: S_BRANCH %bb.1
894 ; GCN-NEXT: {{ $}}
895 ; GCN-NEXT: bb.1:
896 ; GCN-NEXT: successors: %bb.2(0x80000000)
897 ; GCN-NEXT: {{ $}}
898 ; GCN-NEXT: {{ $}}
899 ; GCN-NEXT: bb.2:
900 ; GCN-NEXT: S_ENDPGM 0
922 ; GCN-LABEL: name: and_1_cmpk_eq_i32_1
923 ; GCN: bb.0:
924 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
925 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
926 ; GCN-NEXT: {{ $}}
927 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
928 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
929 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
930 ; GCN-NEXT: S_BRANCH %bb.1
931 ; GCN-NEXT: {{ $}}
932 ; GCN-NEXT: bb.1:
933 ; GCN-NEXT: successors: %bb.2(0x80000000)
934 ; GCN-NEXT: {{ $}}
935 ; GCN-NEXT: {{ $}}
936 ; GCN-NEXT: bb.2:
937 ; GCN-NEXT: S_ENDPGM 0
959 ; GCN-LABEL: name: and_1_cmpk_ge_u32_1
960 ; GCN: bb.0:
961 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
962 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
963 ; GCN-NEXT: {{ $}}
964 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
965 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
966 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
967 ; GCN-NEXT: S_BRANCH %bb.1
968 ; GCN-NEXT: {{ $}}
969 ; GCN-NEXT: bb.1:
970 ; GCN-NEXT: successors: %bb.2(0x80000000)
971 ; GCN-NEXT: {{ $}}
972 ; GCN-NEXT: {{ $}}
973 ; GCN-NEXT: bb.2:
974 ; GCN-NEXT: S_ENDPGM 0
996 ; GCN-LABEL: name: and_1_cmpk_ge_i32_1
997 ; GCN: bb.0:
998 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
999 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1000 ; GCN-NEXT: {{ $}}
1001 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1002 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1003 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1004 ; GCN-NEXT: S_BRANCH %bb.1
1005 ; GCN-NEXT: {{ $}}
1006 ; GCN-NEXT: bb.1:
1007 ; GCN-NEXT: successors: %bb.2(0x80000000)
1008 ; GCN-NEXT: {{ $}}
1009 ; GCN-NEXT: {{ $}}
1010 ; GCN-NEXT: bb.2:
1011 ; GCN-NEXT: S_ENDPGM 0
1033 ; GCN-LABEL: name: and_1_cmpk_lg_u32_0
1034 ; GCN: bb.0:
1035 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1036 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1037 ; GCN-NEXT: {{ $}}
1038 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1039 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1040 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1041 ; GCN-NEXT: S_BRANCH %bb.1
1042 ; GCN-NEXT: {{ $}}
1043 ; GCN-NEXT: bb.1:
1044 ; GCN-NEXT: successors: %bb.2(0x80000000)
1045 ; GCN-NEXT: {{ $}}
1046 ; GCN-NEXT: {{ $}}
1047 ; GCN-NEXT: bb.2:
1048 ; GCN-NEXT: S_ENDPGM 0
1070 ; GCN-LABEL: name: and_1_cmpk_lg_i32_0
1071 ; GCN: bb.0:
1072 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1073 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1074 ; GCN-NEXT: {{ $}}
1075 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1076 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1077 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1078 ; GCN-NEXT: S_BRANCH %bb.1
1079 ; GCN-NEXT: {{ $}}
1080 ; GCN-NEXT: bb.1:
1081 ; GCN-NEXT: successors: %bb.2(0x80000000)
1082 ; GCN-NEXT: {{ $}}
1083 ; GCN-NEXT: {{ $}}
1084 ; GCN-NEXT: bb.2:
1085 ; GCN-NEXT: S_ENDPGM 0
1107 ; GCN-LABEL: name: and_1_cmpk_gt_u32_0
1108 ; GCN: bb.0:
1109 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1110 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1111 ; GCN-NEXT: {{ $}}
1112 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1113 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1114 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1115 ; GCN-NEXT: S_BRANCH %bb.1
1116 ; GCN-NEXT: {{ $}}
1117 ; GCN-NEXT: bb.1:
1118 ; GCN-NEXT: successors: %bb.2(0x80000000)
1119 ; GCN-NEXT: {{ $}}
1120 ; GCN-NEXT: {{ $}}
1121 ; GCN-NEXT: bb.2:
1122 ; GCN-NEXT: S_ENDPGM 0
1144 ; GCN-LABEL: name: and_1_cmpk_gt_i32_0
1145 ; GCN: bb.0:
1146 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1147 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1148 ; GCN-NEXT: {{ $}}
1149 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1150 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1151 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1152 ; GCN-NEXT: S_BRANCH %bb.1
1153 ; GCN-NEXT: {{ $}}
1154 ; GCN-NEXT: bb.1:
1155 ; GCN-NEXT: successors: %bb.2(0x80000000)
1156 ; GCN-NEXT: {{ $}}
1157 ; GCN-NEXT: {{ $}}
1158 ; GCN-NEXT: bb.2:
1159 ; GCN-NEXT: S_ENDPGM 0
1181 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_imm_src
1182 ; GCN: bb.0:
1183 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1184 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1185 ; GCN-NEXT: {{ $}}
1186 ; GCN-NEXT: S_BITCMP1_B32 11, 0, implicit-def $scc
1187 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1188 ; GCN-NEXT: S_BRANCH %bb.1
1189 ; GCN-NEXT: {{ $}}
1190 ; GCN-NEXT: bb.1:
1191 ; GCN-NEXT: successors: %bb.2(0x80000000)
1192 ; GCN-NEXT: {{ $}}
1193 ; GCN-NEXT: {{ $}}
1194 ; GCN-NEXT: bb.2:
1195 ; GCN-NEXT: S_ENDPGM 0
1216 ; GCN-LABEL: name: and_1_cmp_eq_u32_0
1217 ; GCN: bb.0:
1218 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1219 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1220 ; GCN-NEXT: {{ $}}
1221 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1222 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
1223 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1224 ; GCN-NEXT: S_BRANCH %bb.1
1225 ; GCN-NEXT: {{ $}}
1226 ; GCN-NEXT: bb.1:
1227 ; GCN-NEXT: successors: %bb.2(0x80000000)
1228 ; GCN-NEXT: {{ $}}
1229 ; GCN-NEXT: {{ $}}
1230 ; GCN-NEXT: bb.2:
1231 ; GCN-NEXT: S_ENDPGM 0
1253 ; GCN-LABEL: name: and_1_cmp_eq_i32_0
1254 ; GCN: bb.0:
1255 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1256 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1257 ; GCN-NEXT: {{ $}}
1258 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1259 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
1260 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1261 ; GCN-NEXT: S_BRANCH %bb.1
1262 ; GCN-NEXT: {{ $}}
1263 ; GCN-NEXT: bb.1:
1264 ; GCN-NEXT: successors: %bb.2(0x80000000)
1265 ; GCN-NEXT: {{ $}}
1266 ; GCN-NEXT: {{ $}}
1267 ; GCN-NEXT: bb.2:
1268 ; GCN-NEXT: S_ENDPGM 0
1290 ; GCN-LABEL: name: and_1_cmp_eq_u64_0
1291 ; GCN: bb.0:
1292 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1293 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1294 ; GCN-NEXT: {{ $}}
1295 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
1296 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
1297 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1298 ; GCN-NEXT: S_BRANCH %bb.1
1299 ; GCN-NEXT: {{ $}}
1300 ; GCN-NEXT: bb.1:
1301 ; GCN-NEXT: successors: %bb.2(0x80000000)
1302 ; GCN-NEXT: {{ $}}
1303 ; GCN-NEXT: {{ $}}
1304 ; GCN-NEXT: bb.2:
1305 ; GCN-NEXT: S_ENDPGM 0
1327 ; GCN-LABEL: name: and_1_cmp_lg_u32_1
1328 ; GCN: bb.0:
1329 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1330 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1331 ; GCN-NEXT: {{ $}}
1332 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1333 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
1334 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1335 ; GCN-NEXT: S_BRANCH %bb.1
1336 ; GCN-NEXT: {{ $}}
1337 ; GCN-NEXT: bb.1:
1338 ; GCN-NEXT: successors: %bb.2(0x80000000)
1339 ; GCN-NEXT: {{ $}}
1340 ; GCN-NEXT: {{ $}}
1341 ; GCN-NEXT: bb.2:
1342 ; GCN-NEXT: S_ENDPGM 0
1364 ; GCN-LABEL: name: and_1_cmp_lg_i32_1
1365 ; GCN: bb.0:
1366 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1367 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1368 ; GCN-NEXT: {{ $}}
1369 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1370 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
1371 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1372 ; GCN-NEXT: S_BRANCH %bb.1
1373 ; GCN-NEXT: {{ $}}
1374 ; GCN-NEXT: bb.1:
1375 ; GCN-NEXT: successors: %bb.2(0x80000000)
1376 ; GCN-NEXT: {{ $}}
1377 ; GCN-NEXT: {{ $}}
1378 ; GCN-NEXT: bb.2:
1379 ; GCN-NEXT: S_ENDPGM 0
1401 ; GCN-LABEL: name: and_1_cmp_lg_u64_1
1402 ; GCN: bb.0:
1403 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1404 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1405 ; GCN-NEXT: {{ $}}
1406 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
1407 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
1408 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1409 ; GCN-NEXT: S_BRANCH %bb.1
1410 ; GCN-NEXT: {{ $}}
1411 ; GCN-NEXT: bb.1:
1412 ; GCN-NEXT: successors: %bb.2(0x80000000)
1413 ; GCN-NEXT: {{ $}}
1414 ; GCN-NEXT: {{ $}}
1415 ; GCN-NEXT: bb.2:
1416 ; GCN-NEXT: S_ENDPGM 0
1438 ; GCN-LABEL: name: and_1_cmp_eq_u32_0_used_and
1439 ; GCN: bb.0:
1440 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1441 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1442 ; GCN-NEXT: {{ $}}
1443 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1444 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
1445 ; GCN-NEXT: S_CMP_EQ_U32 [[S_AND_B32_]], 0, implicit-def $scc
1446 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1447 ; GCN-NEXT: S_BRANCH %bb.1
1448 ; GCN-NEXT: {{ $}}
1449 ; GCN-NEXT: bb.1:
1450 ; GCN-NEXT: successors: %bb.2(0x80000000)
1451 ; GCN-NEXT: {{ $}}
1452 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
1453 ; GCN-NEXT: {{ $}}
1454 ; GCN-NEXT: bb.2:
1455 ; GCN-NEXT: S_ENDPGM 0
1478 ; GCN-LABEL: name: and_1_cmp_ge_u32_0
1479 ; GCN: bb.0:
1480 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1481 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1482 ; GCN-NEXT: {{ $}}
1483 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1484 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
1485 ; GCN-NEXT: S_CMP_GE_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
1486 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1487 ; GCN-NEXT: S_BRANCH %bb.1
1488 ; GCN-NEXT: {{ $}}
1489 ; GCN-NEXT: bb.1:
1490 ; GCN-NEXT: successors: %bb.2(0x80000000)
1491 ; GCN-NEXT: {{ $}}
1492 ; GCN-NEXT: {{ $}}
1493 ; GCN-NEXT: bb.2:
1494 ; GCN-NEXT: S_ENDPGM 0
1516 ; GCN-LABEL: name: and_1_cmp_gt_u32_1
1517 ; GCN: bb.0:
1518 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1519 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1520 ; GCN-NEXT: {{ $}}
1521 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1522 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
1523 ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
1524 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1525 ; GCN-NEXT: S_BRANCH %bb.1
1526 ; GCN-NEXT: {{ $}}
1527 ; GCN-NEXT: bb.1:
1528 ; GCN-NEXT: successors: %bb.2(0x80000000)
1529 ; GCN-NEXT: {{ $}}
1530 ; GCN-NEXT: {{ $}}
1531 ; GCN-NEXT: bb.2:
1532 ; GCN-NEXT: S_ENDPGM 0
1554 ; GCN-LABEL: name: and_1_folded_src0_cmp_eq_u32_1_folded_src2
1555 ; GCN: bb.0:
1556 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1557 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1558 ; GCN-NEXT: {{ $}}
1559 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1560 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
1561 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1562 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1563 ; GCN-NEXT: S_BRANCH %bb.1
1564 ; GCN-NEXT: {{ $}}
1565 ; GCN-NEXT: bb.1:
1566 ; GCN-NEXT: successors: %bb.2(0x80000000)
1567 ; GCN-NEXT: {{ $}}
1568 ; GCN-NEXT: {{ $}}
1569 ; GCN-NEXT: bb.2:
1570 ; GCN-NEXT: S_ENDPGM 0
1593 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u32_1_folded_src2
1594 ; GCN: bb.0:
1595 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1596 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1597 ; GCN-NEXT: {{ $}}
1598 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1599 ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
1600 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
1601 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1602 ; GCN-NEXT: S_BRANCH %bb.1
1603 ; GCN-NEXT: {{ $}}
1604 ; GCN-NEXT: bb.1:
1605 ; GCN-NEXT: successors: %bb.2(0x80000000)
1606 ; GCN-NEXT: {{ $}}
1607 ; GCN-NEXT: {{ $}}
1608 ; GCN-NEXT: bb.2:
1609 ; GCN-NEXT: S_ENDPGM 0
1632 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u64_1_folded_src2
1633 ; GCN: bb.0:
1634 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1635 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1636 ; GCN-NEXT: {{ $}}
1637 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
1638 ; GCN-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1
1639 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
1640 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1641 ; GCN-NEXT: S_BRANCH %bb.1
1642 ; GCN-NEXT: {{ $}}
1643 ; GCN-NEXT: bb.1:
1644 ; GCN-NEXT: successors: %bb.2(0x80000000)
1645 ; GCN-NEXT: {{ $}}
1646 ; GCN-NEXT: {{ $}}
1647 ; GCN-NEXT: bb.2:
1648 ; GCN-NEXT: S_ENDPGM 0
1671 ; GCN-LABEL: name: and_1024_cmp_eq_u32_1024
1672 ; GCN: bb.0:
1673 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1674 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1675 ; GCN-NEXT: {{ $}}
1676 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1677 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
1678 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1679 ; GCN-NEXT: S_BRANCH %bb.1
1680 ; GCN-NEXT: {{ $}}
1681 ; GCN-NEXT: bb.1:
1682 ; GCN-NEXT: successors: %bb.2(0x80000000)
1683 ; GCN-NEXT: {{ $}}
1684 ; GCN-NEXT: {{ $}}
1685 ; GCN-NEXT: bb.2:
1686 ; GCN-NEXT: S_ENDPGM 0
1708 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0x80000000
1709 ; GCN: bb.0:
1710 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1711 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1712 ; GCN-NEXT: {{ $}}
1713 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1714 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
1715 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1716 ; GCN-NEXT: S_BRANCH %bb.1
1717 ; GCN-NEXT: {{ $}}
1718 ; GCN-NEXT: bb.1:
1719 ; GCN-NEXT: successors: %bb.2(0x80000000)
1720 ; GCN-NEXT: {{ $}}
1721 ; GCN-NEXT: {{ $}}
1722 ; GCN-NEXT: bb.2:
1723 ; GCN-NEXT: S_ENDPGM 0
1745 ; GCN-LABEL: name: and_0x80000000_cmp_ge_u32_0x80000000
1746 ; GCN: bb.0:
1747 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1748 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1749 ; GCN-NEXT: {{ $}}
1750 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1751 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
1752 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1753 ; GCN-NEXT: S_BRANCH %bb.1
1754 ; GCN-NEXT: {{ $}}
1755 ; GCN-NEXT: bb.1:
1756 ; GCN-NEXT: successors: %bb.2(0x80000000)
1757 ; GCN-NEXT: {{ $}}
1758 ; GCN-NEXT: {{ $}}
1759 ; GCN-NEXT: bb.2:
1760 ; GCN-NEXT: S_ENDPGM 0
1782 ; GCN-LABEL: name: and_0x80000000_cmp_ge_i32_0x80000000
1783 ; GCN: bb.0:
1784 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1785 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1786 ; GCN-NEXT: {{ $}}
1787 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1788 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def…
1789 ; GCN-NEXT: S_CMP_GE_I32 killed [[S_AND_B32_]], 2147483648, implicit-def $scc
1790 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1791 ; GCN-NEXT: S_BRANCH %bb.1
1792 ; GCN-NEXT: {{ $}}
1793 ; GCN-NEXT: bb.1:
1794 ; GCN-NEXT: successors: %bb.2(0x80000000)
1795 ; GCN-NEXT: {{ $}}
1796 ; GCN-NEXT: {{ $}}
1797 ; GCN-NEXT: bb.2:
1798 ; GCN-NEXT: S_ENDPGM 0
1820 ; GCN-LABEL: name: and_1024_cmp_ge_i32_1024
1821 ; GCN: bb.0:
1822 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1823 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1824 ; GCN-NEXT: {{ $}}
1825 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1826 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
1827 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1828 ; GCN-NEXT: S_BRANCH %bb.1
1829 ; GCN-NEXT: {{ $}}
1830 ; GCN-NEXT: bb.1:
1831 ; GCN-NEXT: successors: %bb.2(0x80000000)
1832 ; GCN-NEXT: {{ $}}
1833 ; GCN-NEXT: {{ $}}
1834 ; GCN-NEXT: bb.2:
1835 ; GCN-NEXT: S_ENDPGM 0
1857 ; GCN-LABEL: name: and_0x80000000_cmp_lg_i32_0
1858 ; GCN: bb.0:
1859 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1860 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1861 ; GCN-NEXT: {{ $}}
1862 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1863 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
1864 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1865 ; GCN-NEXT: S_BRANCH %bb.1
1866 ; GCN-NEXT: {{ $}}
1867 ; GCN-NEXT: bb.1:
1868 ; GCN-NEXT: successors: %bb.2(0x80000000)
1869 ; GCN-NEXT: {{ $}}
1870 ; GCN-NEXT: {{ $}}
1871 ; GCN-NEXT: bb.2:
1872 ; GCN-NEXT: S_ENDPGM 0
1894 ; GCN-LABEL: name: and_0x80000000_cmp_gt_i32_0
1895 ; GCN: bb.0:
1896 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1897 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1898 ; GCN-NEXT: {{ $}}
1899 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1900 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def…
1901 ; GCN-NEXT: S_CMP_GT_I32 killed [[S_AND_B32_]], 0, implicit-def $scc
1902 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1903 ; GCN-NEXT: S_BRANCH %bb.1
1904 ; GCN-NEXT: {{ $}}
1905 ; GCN-NEXT: bb.1:
1906 ; GCN-NEXT: successors: %bb.2(0x80000000)
1907 ; GCN-NEXT: {{ $}}
1908 ; GCN-NEXT: {{ $}}
1909 ; GCN-NEXT: bb.2:
1910 ; GCN-NEXT: S_ENDPGM 0
1932 ; GCN-LABEL: name: and_0x80000000_cmp_gt_u32_0
1933 ; GCN: bb.0:
1934 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1935 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
1936 ; GCN-NEXT: {{ $}}
1937 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
1938 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
1939 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1940 ; GCN-NEXT: S_BRANCH %bb.1
1941 ; GCN-NEXT: {{ $}}
1942 ; GCN-NEXT: bb.1:
1943 ; GCN-NEXT: successors: %bb.2(0x80000000)
1944 ; GCN-NEXT: {{ $}}
1945 ; GCN-NEXT: {{ $}}
1946 ; GCN-NEXT: bb.2:
1947 ; GCN-NEXT: S_ENDPGM 0
1969 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u64_0x80000000
1970 ; GCN: bb.0:
1971 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1972 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1973 ; GCN-NEXT: {{ $}}
1974 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
1975 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 35, implicit-def $scc
1976 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
1977 ; GCN-NEXT: S_BRANCH %bb.1
1978 ; GCN-NEXT: {{ $}}
1979 ; GCN-NEXT: bb.1:
1980 ; GCN-NEXT: successors: %bb.2(0x80000000)
1981 ; GCN-NEXT: {{ $}}
1982 ; GCN-NEXT: {{ $}}
1983 ; GCN-NEXT: bb.2:
1984 ; GCN-NEXT: S_ENDPGM 0
2006 ; GCN-LABEL: name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000
2007 ; GCN: bb.0:
2008 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2009 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
2010 ; GCN-NEXT: {{ $}}
2011 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
2012 ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 63, implicit-def $scc
2013 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2014 ; GCN-NEXT: S_BRANCH %bb.1
2015 ; GCN-NEXT: {{ $}}
2016 ; GCN-NEXT: bb.1:
2017 ; GCN-NEXT: successors: %bb.2(0x80000000)
2018 ; GCN-NEXT: {{ $}}
2019 ; GCN-NEXT: {{ $}}
2020 ; GCN-NEXT: bb.2:
2021 ; GCN-NEXT: S_ENDPGM 0
2043 ; GCN-LABEL: name: and_2_cmp_eq_u32_2_used_and
2044 ; GCN: bb.0:
2045 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2046 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
2047 ; GCN-NEXT: {{ $}}
2048 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
2049 ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2, killed [[COPY]], implicit-def $scc
2050 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2051 ; GCN-NEXT: S_BRANCH %bb.1
2052 ; GCN-NEXT: {{ $}}
2053 ; GCN-NEXT: bb.1:
2054 ; GCN-NEXT: successors: %bb.2(0x80000000)
2055 ; GCN-NEXT: {{ $}}
2056 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
2057 ; GCN-NEXT: {{ $}}
2058 ; GCN-NEXT: bb.2:
2059 ; GCN-NEXT: S_ENDPGM 0
2083 ; GCN-LABEL: name: and_3_cmp_eq_u32_3
2084 ; GCN: bb.0:
2085 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2086 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
2087 ; GCN-NEXT: {{ $}}
2088 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
2089 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
2090 ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 3, implicit-def $scc
2091 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2092 ; GCN-NEXT: S_BRANCH %bb.1
2093 ; GCN-NEXT: {{ $}}
2094 ; GCN-NEXT: bb.1:
2095 ; GCN-NEXT: successors: %bb.2(0x80000000)
2096 ; GCN-NEXT: {{ $}}
2097 ; GCN-NEXT: {{ $}}
2098 ; GCN-NEXT: bb.2:
2099 ; GCN-NEXT: S_ENDPGM 0
2121 ; GCN-LABEL: name: and_3_cmp_lg_u32_0
2122 ; GCN: bb.0:
2123 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2124 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
2125 ; GCN-NEXT: {{ $}}
2126 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
2127 …; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
2128 ; GCN-NEXT: S_CMP_LG_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
2129 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2130 ; GCN-NEXT: S_BRANCH %bb.1
2131 ; GCN-NEXT: {{ $}}
2132 ; GCN-NEXT: bb.1:
2133 ; GCN-NEXT: successors: %bb.2(0x80000000)
2134 ; GCN-NEXT: {{ $}}
2135 ; GCN-NEXT: {{ $}}
2136 ; GCN-NEXT: bb.2:
2137 ; GCN-NEXT: S_ENDPGM 0
2159 ; GCN-LABEL: name: and_4_cmp_lg_u32_0
2160 ; GCN: bb.0:
2161 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2162 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
2163 ; GCN-NEXT: {{ $}}
2164 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
2165 ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 2, implicit-def $scc
2166 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2167 ; GCN-NEXT: S_BRANCH %bb.1
2168 ; GCN-NEXT: {{ $}}
2169 ; GCN-NEXT: bb.1:
2170 ; GCN-NEXT: successors: %bb.2(0x80000000)
2171 ; GCN-NEXT: {{ $}}
2172 ; GCN-NEXT: {{ $}}
2173 ; GCN-NEXT: bb.2:
2174 ; GCN-NEXT: S_ENDPGM 0
2196 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0
2197 ; GCN: bb.0:
2198 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2199 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
2200 ; GCN-NEXT: {{ $}}
2201 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
2202 ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 31, implicit-def $scc
2203 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2204 ; GCN-NEXT: S_BRANCH %bb.1
2205 ; GCN-NEXT: {{ $}}
2206 ; GCN-NEXT: bb.1:
2207 ; GCN-NEXT: successors: %bb.2(0x80000000)
2208 ; GCN-NEXT: {{ $}}
2209 ; GCN-NEXT: {{ $}}
2210 ; GCN-NEXT: bb.2:
2211 ; GCN-NEXT: S_ENDPGM 0
2233 ; GCN-LABEL: name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000
2234 ; GCN: bb.0:
2235 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2236 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
2237 ; GCN-NEXT: {{ $}}
2238 ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
2239 ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 63, implicit-def $scc
2240 ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
2241 ; GCN-NEXT: S_BRANCH %bb.1
2242 ; GCN-NEXT: {{ $}}
2243 ; GCN-NEXT: bb.1:
2244 ; GCN-NEXT: successors: %bb.2(0x80000000)
2245 ; GCN-NEXT: {{ $}}
2246 ; GCN-NEXT: {{ $}}
2247 ; GCN-NEXT: bb.2:
2248 ; GCN-NEXT: S_ENDPGM 0