8
8
; GCN: bb.0:
9
9
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
10
10
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
11
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
12
+ ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
13
+ ; GCN: S_BRANCH %bb.1
14
+ ; GCN: bb.1:
15
+ ; GCN: successors: %bb.2(0x80000000)
16
+ ; GCN: bb.2:
17
+ ; GCN: S_ENDPGM 0
18
+ bb.0:
19
+ successors: %bb.1(0x40000000), %bb.2(0x40000000)
20
+ liveins: $sgpr0, $vgpr0_vgpr1
21
+
22
+ %0:sreg_32 = COPY $sgpr0
23
+ %1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
24
+ S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
25
+ S_CBRANCH_SCC0 %bb.2, implicit $scc
26
+ S_BRANCH %bb.1
27
+
28
+ bb.1:
29
+ successors: %bb.2(0x80000000)
30
+
31
+ bb.2:
32
+ S_ENDPGM 0
33
+
34
+ ...
35
+
36
+ ---
37
+ name : and_1_cmp_eq_u32_1_used_and
38
+ body : |
39
+ ; GCN-LABEL: name: and_1_cmp_eq_u32_1_used_and
40
+ ; GCN: bb.0:
41
+ ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
42
+ ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
11
43
; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
44
+ ; GCN: S_NOP 0, implicit [[S_AND_B32_]]
12
45
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
13
46
; GCN: S_BRANCH %bb.1
14
47
; GCN: bb.1:
@@ -21,6 +54,7 @@ body: |
21
54
22
55
%0:sreg_32 = COPY $sgpr0
23
56
%1:sreg_32 = S_AND_B32 1, killed %0, implicit-def dead $scc
57
+ S_NOP 0, implicit %1
24
58
S_CMP_EQ_U32 killed %1:sreg_32, 1, implicit-def $scc
25
59
S_CBRANCH_SCC0 %bb.2, implicit $scc
26
60
S_BRANCH %bb.1
@@ -40,7 +74,7 @@ body: |
40
74
; GCN: bb.0:
41
75
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
42
76
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
43
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
77
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
44
78
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
45
79
; GCN: S_BRANCH %bb.1
46
80
; GCN: bb.1:
@@ -177,7 +211,7 @@ body: |
177
211
; GCN: bb.0:
178
212
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
179
213
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
180
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], 1 , implicit-def $scc
214
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
181
215
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
182
216
; GCN: S_BRANCH %bb.1
183
217
; GCN: bb.1:
@@ -446,7 +480,7 @@ body: |
446
480
; GCN: bb.0:
447
481
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
448
482
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
449
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
483
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
450
484
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
451
485
; GCN: S_BRANCH %bb.1
452
486
; GCN: bb.1:
@@ -478,7 +512,7 @@ body: |
478
512
; GCN: bb.0:
479
513
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
480
514
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
481
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
515
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
482
516
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
483
517
; GCN: S_BRANCH %bb.1
484
518
; GCN: bb.1:
@@ -510,7 +544,7 @@ body: |
510
544
; GCN: bb.0:
511
545
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
512
546
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
513
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
547
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
514
548
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
515
549
; GCN: S_BRANCH %bb.1
516
550
; GCN: bb.1:
@@ -542,7 +576,7 @@ body: |
542
576
; GCN: bb.0:
543
577
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
544
578
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
545
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
579
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
546
580
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
547
581
; GCN: S_BRANCH %bb.1
548
582
; GCN: bb.1:
@@ -607,7 +641,7 @@ body: |
607
641
; GCN: bb.0:
608
642
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
609
643
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
610
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
644
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
611
645
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
612
646
; GCN: S_BRANCH %bb.1
613
647
; GCN: bb.1:
@@ -639,7 +673,7 @@ body: |
639
673
; GCN: bb.0:
640
674
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
641
675
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
642
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
676
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
643
677
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
644
678
; GCN: S_BRANCH %bb.1
645
679
; GCN: bb.1:
@@ -671,7 +705,7 @@ body: |
671
705
; GCN: bb.0:
672
706
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
673
707
; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
674
- ; GCN: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 1, killed [[COPY]], implicit-def $scc
708
+ ; GCN: S_BITCMP1_B64 killed [[COPY]], 0 , implicit-def $scc
675
709
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
676
710
; GCN: S_BRANCH %bb.1
677
711
; GCN: bb.1:
@@ -703,7 +737,7 @@ body: |
703
737
; GCN: bb.0:
704
738
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
705
739
; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
706
- ; GCN: [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 1, killed [[COPY]], implicit-def $scc
740
+ ; GCN: S_BITCMP1_B64 killed [[COPY]], 0 , implicit-def $scc
707
741
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
708
742
; GCN: S_BRANCH %bb.1
709
743
; GCN: bb.1:
@@ -735,7 +769,7 @@ body: |
735
769
; GCN: bb.0:
736
770
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
737
771
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
738
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
772
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
739
773
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
740
774
; GCN: S_BRANCH %bb.1
741
775
; GCN: bb.1:
@@ -767,7 +801,7 @@ body: |
767
801
; GCN: bb.0:
768
802
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
769
803
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
770
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
804
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
771
805
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
772
806
; GCN: S_BRANCH %bb.1
773
807
; GCN: bb.1:
@@ -799,7 +833,7 @@ body: |
799
833
; GCN: bb.0:
800
834
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
801
835
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
802
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
836
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
803
837
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
804
838
; GCN: S_BRANCH %bb.1
805
839
; GCN: bb.1:
@@ -831,7 +865,7 @@ body: |
831
865
; GCN: bb.0:
832
866
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
833
867
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
834
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
868
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
835
869
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
836
870
; GCN: S_BRANCH %bb.1
837
871
; GCN: bb.1:
@@ -863,7 +897,7 @@ body: |
863
897
; GCN: bb.0:
864
898
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
865
899
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
866
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
900
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
867
901
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
868
902
; GCN: S_BRANCH %bb.1
869
903
; GCN: bb.1:
@@ -895,7 +929,7 @@ body: |
895
929
; GCN: bb.0:
896
930
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
897
931
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
898
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
932
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
899
933
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
900
934
; GCN: S_BRANCH %bb.1
901
935
; GCN: bb.1:
@@ -927,7 +961,7 @@ body: |
927
961
; GCN: bb.0:
928
962
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
929
963
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
930
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
964
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
931
965
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
932
966
; GCN: S_BRANCH %bb.1
933
967
; GCN: bb.1:
@@ -959,7 +993,7 @@ body: |
959
993
; GCN: bb.0:
960
994
; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
961
995
; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
962
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
996
+ ; GCN: S_BITCMP1_B32 killed [[COPY]], 0 , implicit-def $scc
963
997
; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
964
998
; GCN: S_BRANCH %bb.1
965
999
; GCN: bb.1:
@@ -983,3 +1017,33 @@ body: |
983
1017
S_ENDPGM 0
984
1018
985
1019
...
1020
+
1021
+ ---
1022
+ name : and_1_cmp_eq_u32_1_imm_src
1023
+ body : |
1024
+ ; GCN-LABEL: name: and_1_cmp_eq_u32_1_imm_src
1025
+ ; GCN: bb.0:
1026
+ ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
1027
+ ; GCN: S_BITCMP1_B32 11, 0, implicit-def $scc
1028
+ ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
1029
+ ; GCN: S_BRANCH %bb.1
1030
+ ; GCN: bb.1:
1031
+ ; GCN: successors: %bb.2(0x80000000)
1032
+ ; GCN: bb.2:
1033
+ ; GCN: S_ENDPGM 0
1034
+ bb.0:
1035
+ successors: %bb.1(0x40000000), %bb.2(0x40000000)
1036
+ liveins: $sgpr0, $vgpr0_vgpr1
1037
+
1038
+ %0:sreg_32 = S_AND_B32 1, 11, implicit-def dead $scc
1039
+ S_CMP_EQ_U32 killed %0:sreg_32, 1, implicit-def $scc
1040
+ S_CBRANCH_SCC0 %bb.2, implicit $scc
1041
+ S_BRANCH %bb.1
1042
+
1043
+ bb.1:
1044
+ successors: %bb.2(0x80000000)
1045
+
1046
+ bb.2:
1047
+ S_ENDPGM 0
1048
+
1049
+ ...
0 commit comments