body: |
; GCN-LABEL: name: and_1_cmp_eq_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u32_1_used_and
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
- ; GCN: S_NOP 0, implicit [[S_AND_B32_]]
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
+ ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_i32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_i32_1_phys
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: $sgpr2 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: $sgpr2 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_I32 killed $sgpr2, 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_i32_1_different_blocks
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x80000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x40000000), %bb.1(0x40000000)
- ; GCN: S_CMP_EQ_I32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.2:
- ; GCN: successors: %bb.3(0x80000000)
- ; GCN: bb.3:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: S_CMP_EQ_I32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: successors: %bb.3(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.3:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
liveins: $sgpr0, $vgpr0_vgpr1
successors: %bb.1(0x80000000)
body: |
; GCN-LABEL: name: and_3_cmp_eq_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: commuted_and_1_cmp_eq_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: cmp_eq_1_undef_src
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_CMP_EQ_U32 undef %1:sreg_32, 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_subreg0_eq_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_AND_B32_]], %subreg.sub0, [[S_AND_B32_]], %subreg.sub1
- ; GCN: S_CMP_EQ_U32 killed [[REG_SEQUENCE]].sub0, 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[S_AND_B32_]], %subreg.sub0, [[S_AND_B32_]], %subreg.sub1
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[REG_SEQUENCE]].sub0, 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_reg_cmp_eq_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], killed [[COPY1]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 killed [[COPY]], killed [[COPY1]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_1_killed_scc
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
- ; GCN: S_NOP 0, implicit killed $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
+ ; GCN-NEXT: S_NOP 0, implicit killed $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_1_clobbered_scc
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
- ; GCN: S_NOP 0, implicit-def $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def $scc
+ ; GCN-NEXT: S_NOP 0, implicit-def $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_2
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 2, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 2, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: or_1_cmp_eq_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_OR_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_OR_B32_:%[0-9]+]]:sreg_32 = S_OR_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_OR_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_ge_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_ge_i32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_gt_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_gt_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_gt_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u64_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_u64_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_eq_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_eq_i32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_ge_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_ge_i32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_lg_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_lg_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_gt_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmpk_gt_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u32_1_imm_src
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: S_BITCMP1_B32 11, 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: S_BITCMP1_B32 11, 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u64_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_i32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_lg_u64_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_eq_u32_0_used_and
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: S_NOP 0, implicit [[S_AND_B32_]]
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_ge_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_GE_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_GE_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_cmp_gt_u32_1
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 1, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_GT_U32 killed [[S_AND_B32_]], 1, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_folded_src0_cmp_eq_u32_1_folded_src2
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u32_1_folded_src2
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_MOV_B32_:%[0-9]+]]:sreg_32 = S_MOV_B32 1
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1_folded_src1_cmp_eq_u64_1_folded_src2
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1
- ; GCN: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: [[S_MOV_B64_:%[0-9]+]]:sreg_64 = S_MOV_B64 1
+ ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1024_cmp_eq_u32_1024
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0x80000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_ge_u32_0x80000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_ge_i32_0x80000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_GE_I32 killed [[S_AND_B32_]], 2147483648, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_GE_I32 killed [[S_AND_B32_]], 2147483648, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_1024_cmp_ge_i32_1024
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 10, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_lg_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_gt_i32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_GT_I32 killed [[S_AND_B32_]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2147483648, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_GT_I32 killed [[S_AND_B32_]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_gt_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 31, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_eq_u64_0x80000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP1_B64 killed [[COPY]], 35, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 35, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x8000000000000000_cmp_eq_u64_0x8000000000000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP1_B64 killed [[COPY]], 63, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP1_B64 killed [[COPY]], 63, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_2_cmp_eq_u32_2_used_and
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2, killed [[COPY]], implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: S_NOP 0, implicit [[S_AND_B32_]]
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 2, killed [[COPY]], implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: S_NOP 0, implicit [[S_AND_B32_]]
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_3_cmp_eq_u32_3
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_EQ_U32 killed [[S_AND_B32_]], 3, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_EQ_U32 killed [[S_AND_B32_]], 3, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_3_cmp_lg_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
- ; GCN: S_CMP_LG_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 3, killed [[COPY]], implicit-def dead $scc
+ ; GCN-NEXT: S_CMP_LG_U32 killed [[S_AND_B32_]], 0, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_4_cmp_lg_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP1_B32 killed [[COPY]], 2, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP1_B32 killed [[COPY]], 2, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x80000000_cmp_eq_u32_0
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
- ; GCN: S_BITCMP0_B32 killed [[COPY]], 31, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
+ ; GCN-NEXT: S_BITCMP0_B32 killed [[COPY]], 31, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0, $vgpr0_vgpr1
body: |
; GCN-LABEL: name: and_0x8000000000000000_cmp_lg_u64_0x8000000000000000
; GCN: bb.0:
- ; GCN: successors: %bb.1(0x40000000), %bb.2(0x40000000)
- ; GCN: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
- ; GCN: S_BITCMP0_B64 killed [[COPY]], 63, implicit-def $scc
- ; GCN: S_CBRANCH_SCC0 %bb.2, implicit $scc
- ; GCN: S_BRANCH %bb.1
- ; GCN: bb.1:
- ; GCN: successors: %bb.2(0x80000000)
- ; GCN: bb.2:
- ; GCN: S_ENDPGM 0
+ ; GCN-NEXT: successors: %bb.1(0x40000000), %bb.2(0x40000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1
+ ; GCN-NEXT: S_BITCMP0_B64 killed [[COPY]], 63, implicit-def $scc
+ ; GCN-NEXT: S_CBRANCH_SCC0 %bb.2, implicit $scc
+ ; GCN-NEXT: S_BRANCH %bb.1
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.1:
+ ; GCN-NEXT: successors: %bb.2(0x80000000)
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: {{ $}}
+ ; GCN-NEXT: bb.2:
+ ; GCN-NEXT: S_ENDPGM 0
bb.0:
successors: %bb.1(0x40000000), %bb.2(0x40000000)
liveins: $sgpr0_sgpr1, $vgpr0_vgpr1