# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -march=amdgcn -run-pass=instruction-select -verify-machineinstrs -global-isel %s -o - | FileCheck %s -check-prefixes=GCN

---

name: zext_scc_s1_to_sgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_scc_s1_to_sgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: S_CMP_EQ_U32 [[COPY]], [[COPY]], implicit-def $scc
    ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $scc
    ; GCN: $scc = COPY [[COPY1]]
    ; GCN: [[S_CSELECT_B32_:%[0-9]+]]:sreg_32 = S_CSELECT_B32 0, 1, implicit $scc
    ; GCN: $sgpr0 = COPY [[S_CSELECT_B32_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:scc(s1) = G_ICMP intpred(eq), %0, %0
    %2:sgpr(s32) = G_ZEXT %1
    $sgpr0 = COPY %2
...

---

name: zext_scc_s1_to_sgpr_s64
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_scc_s1_to_sgpr_s64
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: S_CMP_EQ_U32 [[COPY]], [[COPY]], implicit-def $scc
    ; GCN: [[COPY1:%[0-9]+]]:sreg_32 = COPY $scc
    ; GCN: $scc = COPY [[COPY1]]
    ; GCN: [[S_CSELECT_B64_:%[0-9]+]]:sreg_64_xexec = S_CSELECT_B64 0, 1, implicit $scc
    ; GCN: $sgpr0_sgpr1 = COPY [[S_CSELECT_B64_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:scc(s1) = G_ICMP intpred(eq), %0, %0
    %2:sgpr(s64) = G_ZEXT %1
    $sgpr0_sgpr1 = COPY %2
...

---

name: zext_sgpr_s1_to_sgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_sgpr_s1_to_sgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: [[S_AND_B32_:%[0-9]+]]:sreg_32 = S_AND_B32 [[COPY]], 1, implicit-def $scc
    ; GCN: $sgpr0 = COPY [[S_AND_B32_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s1) = G_TRUNC %0
    %2:sgpr(s32) = G_ZEXT %1
    $sgpr0 = COPY %2
...

---

name: zext_sgpr_s1_to_sgpr_s64
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_sgpr_s1_to_sgpr_s64
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
    ; GCN: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub1
    ; GCN: [[S_BFE_U64_:%[0-9]+]]:sreg_64_xexec = S_BFE_U64 [[REG_SEQUENCE]], 65536, implicit-def $scc
    ; GCN: $sgpr0_sgpr1 = COPY [[S_BFE_U64_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s1) = G_TRUNC %0
    %2:sgpr(s64) = G_ZEXT %1
    $sgpr0_sgpr1 = COPY %2
...

---

name: zext_sgpr_s8_to_sgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_sgpr_s8_to_sgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: [[S_BFE_U32_:%[0-9]+]]:sreg_32 = S_BFE_U32 [[COPY]], 524288, implicit-def $scc
    ; GCN: $sgpr0 = COPY [[S_BFE_U32_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s8) = G_TRUNC %0
    %2:sgpr(s32) = G_ZEXT %1
    $sgpr0 = COPY %2

...

---

name: zext_sgpr_s16_to_sgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_sgpr_s16_to_sgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: [[S_BFE_U32_:%[0-9]+]]:sreg_32 = S_BFE_U32 [[COPY]], 1048576, implicit-def $scc
    ; GCN: $sgpr0 = COPY [[S_BFE_U32_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s16) = G_TRUNC %0
    %2:sgpr(s32) = G_ZEXT %1
    $sgpr0 = COPY %2

...

---

name: zext_sgpr_s16_to_sgpr_s64
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $sgpr0

    ; GCN-LABEL: name: zext_sgpr_s16_to_sgpr_s64
    ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0
    ; GCN: [[DEF:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
    ; GCN: [[REG_SEQUENCE:%[0-9]+]]:sreg_64 = REG_SEQUENCE [[COPY]], %subreg.sub0, [[DEF]], %subreg.sub1
    ; GCN: [[S_BFE_U64_:%[0-9]+]]:sreg_64_xexec = S_BFE_U64 [[REG_SEQUENCE]], 1048576, implicit-def $scc
    ; GCN: $sgpr0_sgpr1 = COPY [[S_BFE_U64_]]
    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s16) = G_TRUNC %0
    %2:sgpr(s64) = G_ZEXT %1
    $sgpr0_sgpr1 = COPY %2

...

---

name: zext_vcc_s1_to_vgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $vgpr0

    ; GCN-LABEL: name: zext_vcc_s1_to_vgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GCN: [[V_CMP_EQ_U32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_EQ_U32_e64 [[COPY]], [[COPY]], implicit $exec
    ; GCN: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, [[V_CMP_EQ_U32_e64_]], implicit $exec
    ; GCN: $vgpr0 = COPY [[V_CNDMASK_B32_e64_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vcc(s1) = G_ICMP intpred(eq), %0, %0
    %2:vgpr(s32) = G_ZEXT %1
    $vgpr0 = COPY %2
...

---

name: zext_vgpr_s1_to_vgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $vgpr0

    ; GCN-LABEL: name: zext_vgpr_s1_to_vgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GCN: [[V_AND_B32_e32_:%[0-9]+]]:vgpr_32 = V_AND_B32_e32 1, [[COPY]], implicit $exec
    ; GCN: $vgpr0 = COPY [[V_AND_B32_e32_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s1) = G_TRUNC %0
    %2:vgpr(s32) = G_ZEXT %1
    $vgpr0 = COPY %2
...

---

name: zext_vgpr_s8_to_vgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $vgpr0

    ; GCN-LABEL: name: zext_vgpr_s8_to_vgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GCN: [[V_BFE_U32_:%[0-9]+]]:vgpr_32 = V_BFE_U32 [[COPY]], 0, 8, implicit $exec
    ; GCN: $vgpr0 = COPY [[V_BFE_U32_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s8) = G_TRUNC %0
    %2:vgpr(s32) = G_ZEXT %1
    $vgpr0 = COPY %2

...

---

name: zext_vgpr_s16_to_vgpr_s32
legalized:       true
regBankSelected: true
body: |
  bb.0:
    liveins: $vgpr0

    ; GCN-LABEL: name: zext_vgpr_s16_to_vgpr_s32
    ; GCN: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
    ; GCN: [[V_BFE_U32_:%[0-9]+]]:vgpr_32 = V_BFE_U32 [[COPY]], 0, 16, implicit $exec
    ; GCN: $vgpr0 = COPY [[V_BFE_U32_]]
    %0:vgpr(s32) = COPY $vgpr0
    %1:vgpr(s16) = G_TRUNC %0
    %2:vgpr(s32) = G_ZEXT %1
    $vgpr0 = COPY %2

...
