1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx900 -run-pass=peephole-opt --verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
5 name: and_1_cmp_eq_u32_1
7 ; GCN-LABEL: name: and_1_cmp_eq_u32_1
9 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
10 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
18 ; GCN-NEXT: successors: %bb.2(0x80000000)
22 ; GCN-NEXT: S_ENDPGM 0
24 successors: %bb.1(0x40000000), %bb.2(0x40000000)
25 liveins: $sgpr0, $vgpr0_vgpr1
27 %0:sreg_32 = COPY $sgpr0
28 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
29 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
30 S_CBRANCH_SCC0 %bb.2, implicit $scc
34 successors: %bb.2(0x80000000)
42 name: and_1_cmp_eq_u32_1_used_and
44 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_used_and
46 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
47 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
56 ; GCN-NEXT: successors: %bb.2(0x80000000)
60 ; GCN-NEXT: S_ENDPGM 0
62 successors: %bb.1(0x40000000), %bb.2(0x40000000)
63 liveins: $sgpr0, $vgpr0_vgpr1
65 %0:sreg_32 = COPY $sgpr0
66 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
68 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
69 S_CBRANCH_SCC0 %bb.2, implicit $scc
73 successors: %bb.2(0x80000000)
81 name: and_1_cmp_eq_i32_1
83 ; GCN-LABEL: name: and_1_cmp_eq_i32_1
85 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
86 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
94 ; GCN-NEXT: successors: %bb.2(0x80000000)
98 ; GCN-NEXT: S_ENDPGM 0
100 successors: %bb.1(0x40000000), %bb.2(0x40000000)
101 liveins: $sgpr0, $vgpr0_vgpr1
103 %0:sreg_32 = COPY $sgpr0
104 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
105 S_CMP_EQ_I32 killed %1:sreg_32, 1, implicit-def $scc
106 S_CBRANCH_SCC0 %bb.2, implicit $scc
110 successors: %bb.2(0x80000000)
118 name: and_1_cmp_eq_i32_1_phys
120 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_phys
122 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
123 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
132 ; GCN-NEXT: successors: %bb.2(0x80000000)
136 ; GCN-NEXT: S_ENDPGM 0
138 successors: %bb.1(0x40000000), %bb.2(0x40000000)
139 liveins: $sgpr0, $vgpr0_vgpr1
141 %0:sreg_32 = COPY $sgpr0
142 $sgpr2 = S_AND_B32 1, killed %0, implicit-def dead $scc
143 S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc
144 S_CBRANCH_SCC0 %bb.2, implicit $scc
148 successors: %bb.2(0x80000000)
156 name: and_1_cmp_eq_i32_1_different_blocks
158 ; GCN-LABEL: name: and_1_cmp_eq_i32_1_different_blocks
160 ; GCN-NEXT: successors: %bb.1(0x80000000)
161 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
167 ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
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
174 ; GCN-NEXT: successors: %bb.3(0x80000000)
178 ; GCN-NEXT: S_ENDPGM 0
180 liveins: $sgpr0, $vgpr0_vgpr1
181 successors: %bb.1(0x80000000)
183 %0:sreg_32 = COPY $sgpr0
184 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
187 successors: %bb.2(0x40000000), %bb.1(0x40000000)
189 S_CMP_EQ_I32 %1:sreg_32, 1, implicit-def $scc
190 S_CBRANCH_SCC0 %bb.2, implicit $scc
194 successors: %bb.3(0x80000000)
204 ; GCN-LABEL: name: and_3_cmp_eq_1
206 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
207 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
216 ; GCN-NEXT: successors: %bb.2(0x80000000)
220 ; GCN-NEXT: S_ENDPGM 0
222 successors: %bb.1(0x40000000), %bb.2(0x40000000)
223 liveins: $sgpr0, $vgpr0_vgpr1
225 %0:sreg_32 = COPY $sgpr0
226 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc
227 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
228 S_CBRANCH_SCC0 %bb.2, implicit $scc
232 successors: %bb.2(0x80000000)
240 name: commuted_and_1_cmp_eq_1
242 ; GCN-LABEL: name: commuted_and_1_cmp_eq_1
244 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
245 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
253 ; GCN-NEXT: successors: %bb.2(0x80000000)
257 ; GCN-NEXT: S_ENDPGM 0
259 successors: %bb.1(0x40000000), %bb.2(0x40000000)
260 liveins: $sgpr0, $vgpr0_vgpr1
262 %0:sreg_32 = COPY $sgpr0
263 %1:sreg_32 = S_AND_B32 killed %0, 1, implicit-def dead $scc
264 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
265 S_CBRANCH_SCC0 %bb.2, implicit $scc
269 successors: %bb.2(0x80000000)
277 name: cmp_eq_1_undef_src
279 ; GCN-LABEL: name: cmp_eq_1_undef_src
281 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
282 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
290 ; GCN-NEXT: successors: %bb.2(0x80000000)
294 ; GCN-NEXT: S_ENDPGM 0
296 successors: %bb.1(0x40000000), %bb.2(0x40000000)
297 liveins: $sgpr0, $vgpr0_vgpr1
299 %0:sreg_32 = COPY $sgpr0
300 S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc
301 S_CBRANCH_SCC0 %bb.2, implicit $scc
305 successors: %bb.2(0x80000000)
313 name: and_1_cmp_subreg0_eq_1
315 ; GCN-LABEL: name: and_1_cmp_subreg0_eq_1
317 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
318 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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_AND_B32_]], %subreg.sub1
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
328 ; GCN-NEXT: successors: %bb.2(0x80000000)
332 ; GCN-NEXT: S_ENDPGM 0
334 successors: %bb.1(0x40000000), %bb.2(0x40000000)
335 liveins: $sgpr0, $vgpr0_vgpr1
337 %0:sreg_32 = COPY $sgpr0
338 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
339 %2:sreg_64 = REG_SEQUENCE %1, %subreg.sub0, %1, %subreg.sub1
340 S_CMP_EQ_U32 killed %2.sub0:sreg_64, 1, implicit-def $scc
341 S_CBRANCH_SCC0 %bb.2, implicit $scc
345 successors: %bb.2(0x80000000)
353 name: and_reg_cmp_eq_1
355 ; GCN-LABEL: name: and_reg_cmp_eq_1
357 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
358 ; GCN-NEXT: liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1
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]], implicit-def dead $scc
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
368 ; GCN-NEXT: successors: %bb.2(0x80000000)
372 ; GCN-NEXT: S_ENDPGM 0
374 successors: %bb.1(0x40000000), %bb.2(0x40000000)
375 liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1
377 %0:sreg_32 = COPY $sgpr0
378 %1:sreg_32 = COPY $sgpr1
379 %2:sreg_32 = S_AND_B32 killed %0, killed %1, implicit-def dead $scc
380 S_CMP_EQ_U32 killed %2:sreg_32, 1, implicit-def $scc
381 S_CBRANCH_SCC0 %bb.2, implicit $scc
385 successors: %bb.2(0x80000000)
393 name: and_1_cmp_eq_1_killed_scc
395 ; GCN-LABEL: name: and_1_cmp_eq_1_killed_scc
397 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
398 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
408 ; GCN-NEXT: successors: %bb.2(0x80000000)
412 ; GCN-NEXT: S_ENDPGM 0
414 successors: %bb.1(0x40000000), %bb.2(0x40000000)
415 liveins: $sgpr0, $vgpr0_vgpr1
417 %0:sreg_32 = COPY $sgpr0
418 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def $scc
419 S_NOP 0, implicit killed $scc
420 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
421 S_CBRANCH_SCC0 %bb.2, implicit $scc
425 successors: %bb.2(0x80000000)
433 name: and_1_cmp_eq_1_clobbered_scc
435 ; GCN-LABEL: name: and_1_cmp_eq_1_clobbered_scc
437 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
438 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
448 ; GCN-NEXT: successors: %bb.2(0x80000000)
452 ; GCN-NEXT: S_ENDPGM 0
454 successors: %bb.1(0x40000000), %bb.2(0x40000000)
455 liveins: $sgpr0, $vgpr0_vgpr1
457 %0:sreg_32 = COPY $sgpr0
458 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def $scc
459 S_NOP 0, implicit-def $scc
460 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
461 S_CBRANCH_SCC0 %bb.2, implicit $scc
465 successors: %bb.2(0x80000000)
475 ; GCN-LABEL: name: and_1_cmp_eq_2
477 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
478 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
487 ; GCN-NEXT: successors: %bb.2(0x80000000)
491 ; GCN-NEXT: S_ENDPGM 0
493 successors: %bb.1(0x40000000), %bb.2(0x40000000)
494 liveins: $sgpr0, $vgpr0_vgpr1
496 %0:sreg_32 = COPY $sgpr0
497 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
498 S_CMP_EQ_U32 killed %1:sreg_32, 2, implicit-def $scc
499 S_CBRANCH_SCC0 %bb.2, implicit $scc
503 successors: %bb.2(0x80000000)
511 name: or_1_cmp_eq_u32_1
513 ; GCN-LABEL: name: or_1_cmp_eq_u32_1
515 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
516 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
525 ; GCN-NEXT: successors: %bb.2(0x80000000)
529 ; GCN-NEXT: S_ENDPGM 0
531 successors: %bb.1(0x40000000), %bb.2(0x40000000)
532 liveins: $sgpr0, $vgpr0_vgpr1
534 %0:sreg_32 = COPY $sgpr0
535 %1:sreg_32 = S_OR_B32 1, killed %0, implicit-def dead $scc
536 S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
537 S_CBRANCH_SCC0 %bb.2, implicit $scc
541 successors: %bb.2(0x80000000)
549 name: and_1_cmp_ge_u32_1
551 ; GCN-LABEL: name: and_1_cmp_ge_u32_1
553 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
554 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
562 ; GCN-NEXT: successors: %bb.2(0x80000000)
566 ; GCN-NEXT: S_ENDPGM 0
568 successors: %bb.1(0x40000000), %bb.2(0x40000000)
569 liveins: $sgpr0, $vgpr0_vgpr1
571 %0:sreg_32 = COPY $sgpr0
572 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
573 S_CMP_GE_U32 killed %1:sreg_32, 1, implicit-def $scc
574 S_CBRANCH_SCC0 %bb.2, implicit $scc
578 successors: %bb.2(0x80000000)
586 name: and_1_cmp_ge_i32_1
588 ; GCN-LABEL: name: and_1_cmp_ge_i32_1
590 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
591 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
599 ; GCN-NEXT: successors: %bb.2(0x80000000)
603 ; GCN-NEXT: S_ENDPGM 0
605 successors: %bb.1(0x40000000), %bb.2(0x40000000)
606 liveins: $sgpr0, $vgpr0_vgpr1
608 %0:sreg_32 = COPY $sgpr0
609 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
610 S_CMP_GE_I32 killed %1:sreg_32, 1, implicit-def $scc
611 S_CBRANCH_SCC0 %bb.2, implicit $scc
615 successors: %bb.2(0x80000000)
623 name: and_1_cmp_gt_u32_0
625 ; GCN-LABEL: name: and_1_cmp_gt_u32_0
627 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
628 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
636 ; GCN-NEXT: successors: %bb.2(0x80000000)
640 ; GCN-NEXT: S_ENDPGM 0
642 successors: %bb.1(0x40000000), %bb.2(0x40000000)
643 liveins: $sgpr0, $vgpr0_vgpr1
645 %0:sreg_32 = COPY $sgpr0
646 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
647 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc
648 S_CBRANCH_SCC0 %bb.2, implicit $scc
652 successors: %bb.2(0x80000000)
660 name: and_1_cmp_gt_i32_0
662 ; GCN-LABEL: name: and_1_cmp_gt_i32_0
664 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
665 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
673 ; GCN-NEXT: successors: %bb.2(0x80000000)
677 ; GCN-NEXT: S_ENDPGM 0
679 successors: %bb.1(0x40000000), %bb.2(0x40000000)
680 liveins: $sgpr0, $vgpr0_vgpr1
682 %0:sreg_32 = COPY $sgpr0
683 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
684 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc
685 S_CBRANCH_SCC0 %bb.2, implicit $scc
689 successors: %bb.2(0x80000000)
699 ; GCN-LABEL: name: and_1_cmp_gt_1
701 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
702 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
711 ; GCN-NEXT: successors: %bb.2(0x80000000)
715 ; GCN-NEXT: S_ENDPGM 0
717 successors: %bb.1(0x40000000), %bb.2(0x40000000)
718 liveins: $sgpr0, $vgpr0_vgpr1
720 %0:sreg_32 = COPY $sgpr0
721 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
722 S_CMP_GT_U32 killed %1:sreg_32, 1, implicit-def $scc
723 S_CBRANCH_SCC0 %bb.2, implicit $scc
727 successors: %bb.2(0x80000000)
735 name: and_1_cmp_lg_u32_0
737 ; GCN-LABEL: name: and_1_cmp_lg_u32_0
739 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
740 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
748 ; GCN-NEXT: successors: %bb.2(0x80000000)
752 ; GCN-NEXT: S_ENDPGM 0
754 successors: %bb.1(0x40000000), %bb.2(0x40000000)
755 liveins: $sgpr0, $vgpr0_vgpr1
757 %0:sreg_32 = COPY $sgpr0
758 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
759 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc
760 S_CBRANCH_SCC0 %bb.2, implicit $scc
764 successors: %bb.2(0x80000000)
772 name: and_1_cmp_lg_i32_0
774 ; GCN-LABEL: name: and_1_cmp_lg_i32_0
776 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
777 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
785 ; GCN-NEXT: successors: %bb.2(0x80000000)
789 ; GCN-NEXT: S_ENDPGM 0
791 successors: %bb.1(0x40000000), %bb.2(0x40000000)
792 liveins: $sgpr0, $vgpr0_vgpr1
794 %0:sreg_32 = COPY $sgpr0
795 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
796 S_CMP_LG_I32 killed %1:sreg_32, 0, implicit-def $scc
797 S_CBRANCH_SCC0 %bb.2, implicit $scc
801 successors: %bb.2(0x80000000)
809 name: and_1_cmp_eq_u64_1
811 ; GCN-LABEL: name: and_1_cmp_eq_u64_1
813 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
814 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
822 ; GCN-NEXT: successors: %bb.2(0x80000000)
826 ; GCN-NEXT: S_ENDPGM 0
828 successors: %bb.1(0x40000000), %bb.2(0x40000000)
829 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
831 %0:sreg_64 = COPY $sgpr0_sgpr1
832 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc
833 S_CMP_EQ_U64 killed %1:sreg_64, 1, implicit-def $scc
834 S_CBRANCH_SCC0 %bb.2, implicit $scc
838 successors: %bb.2(0x80000000)
846 name: and_1_cmp_lg_u64_0
848 ; GCN-LABEL: name: and_1_cmp_lg_u64_0
850 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
851 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
859 ; GCN-NEXT: successors: %bb.2(0x80000000)
863 ; GCN-NEXT: S_ENDPGM 0
865 successors: %bb.1(0x40000000), %bb.2(0x40000000)
866 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
868 %0:sreg_64 = COPY $sgpr0_sgpr1
869 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc
870 S_CMP_LG_U64 killed %1:sreg_64, 0, implicit-def $scc
871 S_CBRANCH_SCC0 %bb.2, implicit $scc
875 successors: %bb.2(0x80000000)
883 name: and_1_cmpk_eq_u32_1
885 ; GCN-LABEL: name: and_1_cmpk_eq_u32_1
887 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
888 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
896 ; GCN-NEXT: successors: %bb.2(0x80000000)
900 ; GCN-NEXT: S_ENDPGM 0
902 successors: %bb.1(0x40000000), %bb.2(0x40000000)
903 liveins: $sgpr0, $vgpr0_vgpr1
905 %0:sreg_32 = COPY $sgpr0
906 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
907 S_CMPK_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
908 S_CBRANCH_SCC0 %bb.2, implicit $scc
912 successors: %bb.2(0x80000000)
920 name: and_1_cmpk_eq_i32_1
922 ; GCN-LABEL: name: and_1_cmpk_eq_i32_1
924 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
925 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
933 ; GCN-NEXT: successors: %bb.2(0x80000000)
937 ; GCN-NEXT: S_ENDPGM 0
939 successors: %bb.1(0x40000000), %bb.2(0x40000000)
940 liveins: $sgpr0, $vgpr0_vgpr1
942 %0:sreg_32 = COPY $sgpr0
943 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
944 S_CMPK_EQ_I32 killed %1:sreg_32, 1, implicit-def $scc
945 S_CBRANCH_SCC0 %bb.2, implicit $scc
949 successors: %bb.2(0x80000000)
957 name: and_1_cmpk_ge_u32_1
959 ; GCN-LABEL: name: and_1_cmpk_ge_u32_1
961 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
962 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
970 ; GCN-NEXT: successors: %bb.2(0x80000000)
974 ; GCN-NEXT: S_ENDPGM 0
976 successors: %bb.1(0x40000000), %bb.2(0x40000000)
977 liveins: $sgpr0, $vgpr0_vgpr1
979 %0:sreg_32 = COPY $sgpr0
980 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
981 S_CMPK_GE_U32 killed %1:sreg_32, 1, implicit-def $scc
982 S_CBRANCH_SCC0 %bb.2, implicit $scc
986 successors: %bb.2(0x80000000)
994 name: and_1_cmpk_ge_i32_1
996 ; GCN-LABEL: name: and_1_cmpk_ge_i32_1
998 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
999 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1007 ; GCN-NEXT: successors: %bb.2(0x80000000)
1011 ; GCN-NEXT: S_ENDPGM 0
1013 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1014 liveins: $sgpr0, $vgpr0_vgpr1
1016 %0:sreg_32 = COPY $sgpr0
1017 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1018 S_CMPK_GE_I32 killed %1:sreg_32, 1, implicit-def $scc
1019 S_CBRANCH_SCC0 %bb.2, implicit $scc
1023 successors: %bb.2(0x80000000)
1031 name: and_1_cmpk_lg_u32_0
1033 ; GCN-LABEL: name: and_1_cmpk_lg_u32_0
1035 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1036 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1044 ; GCN-NEXT: successors: %bb.2(0x80000000)
1048 ; GCN-NEXT: S_ENDPGM 0
1050 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1051 liveins: $sgpr0, $vgpr0_vgpr1
1053 %0:sreg_32 = COPY $sgpr0
1054 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1055 S_CMPK_LG_U32 killed %1:sreg_32, 0, implicit-def $scc
1056 S_CBRANCH_SCC0 %bb.2, implicit $scc
1060 successors: %bb.2(0x80000000)
1068 name: and_1_cmpk_lg_i32_0
1070 ; GCN-LABEL: name: and_1_cmpk_lg_i32_0
1072 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1073 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1081 ; GCN-NEXT: successors: %bb.2(0x80000000)
1085 ; GCN-NEXT: S_ENDPGM 0
1087 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1088 liveins: $sgpr0, $vgpr0_vgpr1
1090 %0:sreg_32 = COPY $sgpr0
1091 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1092 S_CMPK_LG_I32 killed %1:sreg_32, 0, implicit-def $scc
1093 S_CBRANCH_SCC0 %bb.2, implicit $scc
1097 successors: %bb.2(0x80000000)
1105 name: and_1_cmpk_gt_u32_0
1107 ; GCN-LABEL: name: and_1_cmpk_gt_u32_0
1109 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1110 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1118 ; GCN-NEXT: successors: %bb.2(0x80000000)
1122 ; GCN-NEXT: S_ENDPGM 0
1124 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1125 liveins: $sgpr0, $vgpr0_vgpr1
1127 %0:sreg_32 = COPY $sgpr0
1128 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1129 S_CMPK_GT_U32 killed %1:sreg_32, 0, implicit-def $scc
1130 S_CBRANCH_SCC0 %bb.2, implicit $scc
1134 successors: %bb.2(0x80000000)
1142 name: and_1_cmpk_gt_i32_0
1144 ; GCN-LABEL: name: and_1_cmpk_gt_i32_0
1146 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1147 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1155 ; GCN-NEXT: successors: %bb.2(0x80000000)
1159 ; GCN-NEXT: S_ENDPGM 0
1161 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1162 liveins: $sgpr0, $vgpr0_vgpr1
1164 %0:sreg_32 = COPY $sgpr0
1165 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1166 S_CMPK_GT_I32 killed %1:sreg_32, 0, implicit-def $scc
1167 S_CBRANCH_SCC0 %bb.2, implicit $scc
1171 successors: %bb.2(0x80000000)
1179 name: and_1_cmp_eq_u32_1_imm_src
1181 ; GCN-LABEL: name: and_1_cmp_eq_u32_1_imm_src
1183 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1184 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1191 ; GCN-NEXT: successors: %bb.2(0x80000000)
1195 ; GCN-NEXT: S_ENDPGM 0
1197 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1198 liveins: $sgpr0, $vgpr0_vgpr1
1200 %0:sreg_32 = S_AND_B32 1, 11, implicit-def dead $scc
1201 S_CMP_EQ_U32 killed %0:sreg_32, 1, implicit-def $scc
1202 S_CBRANCH_SCC0 %bb.2, implicit $scc
1206 successors: %bb.2(0x80000000)
1214 name: and_1_cmp_eq_u32_0
1216 ; GCN-LABEL: name: and_1_cmp_eq_u32_0
1218 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1219 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1227 ; GCN-NEXT: successors: %bb.2(0x80000000)
1231 ; GCN-NEXT: S_ENDPGM 0
1233 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1234 liveins: $sgpr0, $vgpr0_vgpr1
1236 %0:sreg_32 = COPY $sgpr0
1237 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1238 S_CMP_EQ_U32 killed %1:sreg_32, 0, implicit-def $scc
1239 S_CBRANCH_SCC0 %bb.2, implicit $scc
1243 successors: %bb.2(0x80000000)
1251 name: and_1_cmp_eq_i32_0
1253 ; GCN-LABEL: name: and_1_cmp_eq_i32_0
1255 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1256 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1264 ; GCN-NEXT: successors: %bb.2(0x80000000)
1268 ; GCN-NEXT: S_ENDPGM 0
1270 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1271 liveins: $sgpr0, $vgpr0_vgpr1
1273 %0:sreg_32 = COPY $sgpr0
1274 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1275 S_CMP_EQ_I32 killed %1:sreg_32, 0, implicit-def $scc
1276 S_CBRANCH_SCC0 %bb.2, implicit $scc
1280 successors: %bb.2(0x80000000)
1288 name: and_1_cmp_eq_u64_0
1290 ; GCN-LABEL: name: and_1_cmp_eq_u64_0
1292 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1293 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
1301 ; GCN-NEXT: successors: %bb.2(0x80000000)
1305 ; GCN-NEXT: S_ENDPGM 0
1307 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1308 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1310 %0:sreg_64 = COPY $sgpr0_sgpr1
1311 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc
1312 S_CMP_EQ_U64 killed %1:sreg_64, 0, implicit-def $scc
1313 S_CBRANCH_SCC0 %bb.2, implicit $scc
1317 successors: %bb.2(0x80000000)
1325 name: and_1_cmp_lg_u32_1
1327 ; GCN-LABEL: name: and_1_cmp_lg_u32_1
1329 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1330 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1338 ; GCN-NEXT: successors: %bb.2(0x80000000)
1342 ; GCN-NEXT: S_ENDPGM 0
1344 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1345 liveins: $sgpr0, $vgpr0_vgpr1
1347 %0:sreg_32 = COPY $sgpr0
1348 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1349 S_CMP_LG_U32 killed %1:sreg_32, 1, implicit-def $scc
1350 S_CBRANCH_SCC0 %bb.2, implicit $scc
1354 successors: %bb.2(0x80000000)
1362 name: and_1_cmp_lg_i32_1
1364 ; GCN-LABEL: name: and_1_cmp_lg_i32_1
1366 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1367 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1375 ; GCN-NEXT: successors: %bb.2(0x80000000)
1379 ; GCN-NEXT: S_ENDPGM 0
1381 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1382 liveins: $sgpr0, $vgpr0_vgpr1
1384 %0:sreg_32 = COPY $sgpr0
1385 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1386 S_CMP_LG_I32 killed %1:sreg_32, 1, implicit-def $scc
1387 S_CBRANCH_SCC0 %bb.2, implicit $scc
1391 successors: %bb.2(0x80000000)
1399 name: and_1_cmp_lg_u64_1
1401 ; GCN-LABEL: name: and_1_cmp_lg_u64_1
1403 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1404 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
1412 ; GCN-NEXT: successors: %bb.2(0x80000000)
1416 ; GCN-NEXT: S_ENDPGM 0
1418 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1419 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1421 %0:sreg_64 = COPY $sgpr0_sgpr1
1422 %1:sreg_64 = S_AND_B64 1, killed %0, implicit-def dead $scc
1423 S_CMP_LG_U64 killed %1:sreg_64, 1, implicit-def $scc
1424 S_CBRANCH_SCC0 %bb.2, implicit $scc
1428 successors: %bb.2(0x80000000)
1436 name: and_1_cmp_eq_u32_0_used_and
1438 ; GCN-LABEL: name: and_1_cmp_eq_u32_0_used_and
1440 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1441 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1450 ; GCN-NEXT: successors: %bb.2(0x80000000)
1452 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
1455 ; GCN-NEXT: S_ENDPGM 0
1457 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1458 liveins: $sgpr0, $vgpr0_vgpr1
1460 %0:sreg_32 = COPY $sgpr0
1461 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1462 S_CMP_EQ_U32 %1:sreg_32, 0, implicit-def $scc
1463 S_CBRANCH_SCC0 %bb.2, implicit $scc
1467 successors: %bb.2(0x80000000)
1469 S_NOP 0, implicit %1
1476 name: and_1_cmp_ge_u32_0
1478 ; GCN-LABEL: name: and_1_cmp_ge_u32_0
1480 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1481 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1490 ; GCN-NEXT: successors: %bb.2(0x80000000)
1494 ; GCN-NEXT: S_ENDPGM 0
1496 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1497 liveins: $sgpr0, $vgpr0_vgpr1
1499 %0:sreg_32 = COPY $sgpr0
1500 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1501 S_CMP_GE_U32 killed %1:sreg_32, 0, implicit-def $scc
1502 S_CBRANCH_SCC0 %bb.2, implicit $scc
1506 successors: %bb.2(0x80000000)
1514 name: and_1_cmp_gt_u32_1
1516 ; GCN-LABEL: name: and_1_cmp_gt_u32_1
1518 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1519 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1528 ; GCN-NEXT: successors: %bb.2(0x80000000)
1532 ; GCN-NEXT: S_ENDPGM 0
1534 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1535 liveins: $sgpr0, $vgpr0_vgpr1
1537 %0:sreg_32 = COPY $sgpr0
1538 %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
1539 S_CMP_GT_U32 killed %1:sreg_32, 1, implicit-def $scc
1540 S_CBRANCH_SCC0 %bb.2, implicit $scc
1544 successors: %bb.2(0x80000000)
1552 name: and_1_folded_src0_cmp_eq_u32_1_folded_src2
1554 ; GCN-LABEL: name: and_1_folded_src0_cmp_eq_u32_1_folded_src2
1556 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1557 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1566 ; GCN-NEXT: successors: %bb.2(0x80000000)
1570 ; GCN-NEXT: S_ENDPGM 0
1572 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1573 liveins: $sgpr0, $vgpr0_vgpr1
1575 %0:sreg_32 = COPY $sgpr0
1576 %1:sreg_32 = S_MOV_B32 1
1577 %2:sreg_32 = S_AND_B32 %1, killed %0, implicit-def dead $scc
1578 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc
1579 S_CBRANCH_SCC0 %bb.2, implicit $scc
1583 successors: %bb.2(0x80000000)
1591 name: and_1_folded_src1_cmp_eq_u32_1_folded_src2
1593 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u32_1_folded_src2
1595 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1596 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1605 ; GCN-NEXT: successors: %bb.2(0x80000000)
1609 ; GCN-NEXT: S_ENDPGM 0
1611 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1612 liveins: $sgpr0, $vgpr0_vgpr1
1614 %0:sreg_32 = COPY $sgpr0
1615 %1:sreg_32 = S_MOV_B32 1
1616 %2:sreg_32 = S_AND_B32 killed %0, %1, implicit-def dead $scc
1617 S_CMP_EQ_U32 killed %2:sreg_32, %1, implicit-def $scc
1618 S_CBRANCH_SCC0 %bb.2, implicit $scc
1622 successors: %bb.2(0x80000000)
1630 name: and_1_folded_src1_cmp_eq_u64_1_folded_src2
1632 ; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u64_1_folded_src2
1634 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1635 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
1644 ; GCN-NEXT: successors: %bb.2(0x80000000)
1648 ; GCN-NEXT: S_ENDPGM 0
1650 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1651 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1653 %0:sreg_64 = COPY $sgpr0_sgpr1
1654 %1:sreg_64 = S_MOV_B64 1
1655 %2:sreg_64 = S_AND_B64 killed %0, %1, implicit-def dead $scc
1656 S_CMP_EQ_U64 killed %2:sreg_64, %1, implicit-def $scc
1657 S_CBRANCH_SCC0 %bb.2, implicit $scc
1661 successors: %bb.2(0x80000000)
1669 name: and_1024_cmp_eq_u32_1024
1671 ; GCN-LABEL: name: and_1024_cmp_eq_u32_1024
1673 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1674 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1682 ; GCN-NEXT: successors: %bb.2(0x80000000)
1686 ; GCN-NEXT: S_ENDPGM 0
1688 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1689 liveins: $sgpr0, $vgpr0_vgpr1
1691 %0:sreg_32 = COPY $sgpr0
1692 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc
1693 S_CMP_EQ_U32 killed %1:sreg_32, 1024, implicit-def $scc
1694 S_CBRANCH_SCC0 %bb.2, implicit $scc
1698 successors: %bb.2(0x80000000)
1706 name: and_0x80000000_cmp_eq_u32_0x80000000
1708 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0x80000000
1710 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1711 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1719 ; GCN-NEXT: successors: %bb.2(0x80000000)
1723 ; GCN-NEXT: S_ENDPGM 0
1725 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1726 liveins: $sgpr0, $vgpr0_vgpr1
1728 %0:sreg_32 = COPY $sgpr0
1729 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1730 S_CMP_EQ_U32 killed %1:sreg_32, 2147483648, implicit-def $scc
1731 S_CBRANCH_SCC0 %bb.2, implicit $scc
1735 successors: %bb.2(0x80000000)
1743 name: and_0x80000000_cmp_ge_u32_0x80000000
1745 ; GCN-LABEL: name: and_0x80000000_cmp_ge_u32_0x80000000
1747 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1748 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1756 ; GCN-NEXT: successors: %bb.2(0x80000000)
1760 ; GCN-NEXT: S_ENDPGM 0
1762 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1763 liveins: $sgpr0, $vgpr0_vgpr1
1765 %0:sreg_32 = COPY $sgpr0
1766 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1767 S_CMP_GE_U32 killed %1:sreg_32, 2147483648, implicit-def $scc
1768 S_CBRANCH_SCC0 %bb.2, implicit $scc
1772 successors: %bb.2(0x80000000)
1780 name: and_0x80000000_cmp_ge_i32_0x80000000
1782 ; GCN-LABEL: name: and_0x80000000_cmp_ge_i32_0x80000000
1784 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1785 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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 dead $scc
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
1794 ; GCN-NEXT: successors: %bb.2(0x80000000)
1798 ; GCN-NEXT: S_ENDPGM 0
1800 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1801 liveins: $sgpr0, $vgpr0_vgpr1
1803 %0:sreg_32 = COPY $sgpr0
1804 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1805 S_CMP_GE_I32 killed %1:sreg_32, 2147483648, implicit-def $scc
1806 S_CBRANCH_SCC0 %bb.2, implicit $scc
1810 successors: %bb.2(0x80000000)
1818 name: and_1024_cmp_ge_i32_1024
1820 ; GCN-LABEL: name: and_1024_cmp_ge_i32_1024
1822 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1823 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1831 ; GCN-NEXT: successors: %bb.2(0x80000000)
1835 ; GCN-NEXT: S_ENDPGM 0
1837 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1838 liveins: $sgpr0, $vgpr0_vgpr1
1840 %0:sreg_32 = COPY $sgpr0
1841 %1:sreg_32 = S_AND_B32 1024, killed %0, implicit-def dead $scc
1842 S_CMP_GE_I32 killed %1:sreg_32, 1024, implicit-def $scc
1843 S_CBRANCH_SCC0 %bb.2, implicit $scc
1847 successors: %bb.2(0x80000000)
1855 name: and_0x80000000_cmp_lg_i32_0
1857 ; GCN-LABEL: name: and_0x80000000_cmp_lg_i32_0
1859 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1860 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1868 ; GCN-NEXT: successors: %bb.2(0x80000000)
1872 ; GCN-NEXT: S_ENDPGM 0
1874 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1875 liveins: $sgpr0, $vgpr0_vgpr1
1877 %0:sreg_32 = COPY $sgpr0
1878 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1879 S_CMP_LG_I32 killed %1:sreg_32, 0, implicit-def $scc
1880 S_CBRANCH_SCC0 %bb.2, implicit $scc
1884 successors: %bb.2(0x80000000)
1892 name: and_0x80000000_cmp_gt_i32_0
1894 ; GCN-LABEL: name: and_0x80000000_cmp_gt_i32_0
1896 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1897 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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 dead $scc
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
1906 ; GCN-NEXT: successors: %bb.2(0x80000000)
1910 ; GCN-NEXT: S_ENDPGM 0
1912 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1913 liveins: $sgpr0, $vgpr0_vgpr1
1915 %0:sreg_32 = COPY $sgpr0
1916 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1917 S_CMP_GT_I32 killed %1:sreg_32, 0, implicit-def $scc
1918 S_CBRANCH_SCC0 %bb.2, implicit $scc
1922 successors: %bb.2(0x80000000)
1930 name: and_0x80000000_cmp_gt_u32_0
1932 ; GCN-LABEL: name: and_0x80000000_cmp_gt_u32_0
1934 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1935 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
1943 ; GCN-NEXT: successors: %bb.2(0x80000000)
1947 ; GCN-NEXT: S_ENDPGM 0
1949 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1950 liveins: $sgpr0, $vgpr0_vgpr1
1952 %0:sreg_32 = COPY $sgpr0
1953 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
1954 S_CMP_GT_U32 killed %1:sreg_32, 0, implicit-def $scc
1955 S_CBRANCH_SCC0 %bb.2, implicit $scc
1959 successors: %bb.2(0x80000000)
1967 name: and_0x80000000_cmp_eq_u64_0x80000000
1969 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u64_0x80000000
1971 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1972 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
1980 ; GCN-NEXT: successors: %bb.2(0x80000000)
1984 ; GCN-NEXT: S_ENDPGM 0
1986 successors: %bb.1(0x40000000), %bb.2(0x40000000)
1987 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
1989 %0:sreg_64 = COPY $sgpr0_sgpr1
1990 %1:sreg_64 = S_AND_B64 34359738368, killed %0, implicit-def dead $scc
1991 S_CMP_EQ_U64 killed %1:sreg_64, 34359738368, implicit-def $scc
1992 S_CBRANCH_SCC0 %bb.2, implicit $scc
1996 successors: %bb.2(0x80000000)
2004 name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000
2006 ; GCN-LABEL: name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000
2008 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2009 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
2017 ; GCN-NEXT: successors: %bb.2(0x80000000)
2021 ; GCN-NEXT: S_ENDPGM 0
2023 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2024 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
2026 %0:sreg_64 = COPY $sgpr0_sgpr1
2027 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc
2028 S_CMP_EQ_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc
2029 S_CBRANCH_SCC0 %bb.2, implicit $scc
2033 successors: %bb.2(0x80000000)
2041 name: and_2_cmp_eq_u32_2_used_and
2043 ; GCN-LABEL: name: and_2_cmp_eq_u32_2_used_and
2045 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2046 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
2054 ; GCN-NEXT: successors: %bb.2(0x80000000)
2056 ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
2059 ; GCN-NEXT: S_ENDPGM 0
2061 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2062 liveins: $sgpr0, $vgpr0_vgpr1
2064 %0:sreg_32 = COPY $sgpr0
2065 %1:sreg_32 = S_AND_B32 2, killed %0, implicit-def dead $scc
2066 S_CMP_EQ_U32 %1:sreg_32, 2, implicit-def $scc
2067 S_CBRANCH_SCC0 %bb.2, implicit $scc
2071 successors: %bb.2(0x80000000)
2073 S_NOP 0, implicit %1
2081 name: and_3_cmp_eq_u32_3
2083 ; GCN-LABEL: name: and_3_cmp_eq_u32_3
2085 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2086 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
2095 ; GCN-NEXT: successors: %bb.2(0x80000000)
2099 ; GCN-NEXT: S_ENDPGM 0
2101 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2102 liveins: $sgpr0, $vgpr0_vgpr1
2104 %0:sreg_32 = COPY $sgpr0
2105 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc
2106 S_CMP_EQ_U32 killed %1:sreg_32, 3, implicit-def $scc
2107 S_CBRANCH_SCC0 %bb.2, implicit $scc
2111 successors: %bb.2(0x80000000)
2119 name: and_3_cmp_lg_u32_0
2121 ; GCN-LABEL: name: and_3_cmp_lg_u32_0
2123 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2124 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
2133 ; GCN-NEXT: successors: %bb.2(0x80000000)
2137 ; GCN-NEXT: S_ENDPGM 0
2139 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2140 liveins: $sgpr0, $vgpr0_vgpr1
2142 %0:sreg_32 = COPY $sgpr0
2143 %1:sreg_32 = S_AND_B32 3, killed %0, implicit-def dead $scc
2144 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc
2145 S_CBRANCH_SCC0 %bb.2, implicit $scc
2149 successors: %bb.2(0x80000000)
2157 name: and_4_cmp_lg_u32_0
2159 ; GCN-LABEL: name: and_4_cmp_lg_u32_0
2161 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2162 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
2170 ; GCN-NEXT: successors: %bb.2(0x80000000)
2174 ; GCN-NEXT: S_ENDPGM 0
2176 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2177 liveins: $sgpr0, $vgpr0_vgpr1
2179 %0:sreg_32 = COPY $sgpr0
2180 %1:sreg_32 = S_AND_B32 4, killed %0, implicit-def dead $scc
2181 S_CMP_LG_U32 killed %1:sreg_32, 0, implicit-def $scc
2182 S_CBRANCH_SCC0 %bb.2, implicit $scc
2186 successors: %bb.2(0x80000000)
2194 name: and_0x80000000_cmp_eq_u32_0
2196 ; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0
2198 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2199 ; GCN-NEXT: liveins: $sgpr0, $vgpr0_vgpr1
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
2207 ; GCN-NEXT: successors: %bb.2(0x80000000)
2211 ; GCN-NEXT: S_ENDPGM 0
2213 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2214 liveins: $sgpr0, $vgpr0_vgpr1
2216 %0:sreg_32 = COPY $sgpr0
2217 %1:sreg_32 = S_AND_B32 2147483648, killed %0, implicit-def dead $scc
2218 S_CMP_EQ_U32 killed %1:sreg_32, 0, implicit-def $scc
2219 S_CBRANCH_SCC0 %bb.2, implicit $scc
2223 successors: %bb.2(0x80000000)
2231 name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000
2233 ; GCN-LABEL: name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000
2235 ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
2236 ; GCN-NEXT: liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
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
2244 ; GCN-NEXT: successors: %bb.2(0x80000000)
2248 ; GCN-NEXT: S_ENDPGM 0
2250 successors: %bb.1(0x40000000), %bb.2(0x40000000)
2251 liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
2253 %0:sreg_64 = COPY $sgpr0_sgpr1
2254 %1:sreg_64 = S_AND_B64 9223372036854775808, killed %0, implicit-def dead $scc
2255 S_CMP_LG_U64 killed %1:sreg_64, 9223372036854775808, implicit-def $scc
2256 S_CBRANCH_SCC0 %bb.2, implicit $scc
2260 successors: %bb.2(0x80000000)