# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# REQUIRES: asserts
# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -verify-regalloc -misched-only-block=999 -start-before=machine-scheduler -stop-after=greedy,0 -o - %s | FileCheck %s

# This run line is a total hack to get the live intervals to make it
# to the verifier. This requires asserts to use
# -misched-only-block. We use the scheduler only because -start-before
# doesn't see si-optimize-exec-masking-pre-ra unless the scheduler is
# part of the pass pipeline.

---
name: subreg_value_undef
tracksRegLiveness: true
body:             |
  ; CHECK-LABEL: name: subreg_value_undef
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $sgpr0_sgpr1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
  ; CHECK-NEXT:   [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (s128), align 8, addrspace 1)
  ; CHECK-NEXT:   undef %2.sub1:sgpr_128 = S_MOV_B32 -1
  ; CHECK-NEXT:   $vcc_lo = S_ANDN2_B32 $exec_lo, undef %2.sub0, implicit-def dead $scc
  ; CHECK-NEXT:   %2.sub1:sgpr_128 = COPY [[S_LOAD_DWORDX4_IMM]].sub0
  ; CHECK-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit $vcc
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   S_NOP 0, implicit %2.sub1
  bb.0:
    liveins: $sgpr0_sgpr1
    %0:sgpr_64 = COPY $sgpr0_sgpr1
    %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0, 0, 0 :: (load (s128), align 8, addrspace 1)
    undef %2.sub1:sgpr_128 = S_MOV_B32 -1
    %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, undef %2.sub0, implicit $exec
    %4:sreg_32_xm0_xexec = V_CMP_NE_U32_e64 1, %3, implicit $exec
    $vcc_lo = S_AND_B32 $exec_lo, %4, implicit-def dead $scc
    %2.sub1:sgpr_128 = COPY %1.sub0
    S_CBRANCH_VCCNZ %bb.1, implicit $vcc

  bb.1:
    S_NOP 0, implicit %2.sub1
...

---
name: needs_distribute_0
tracksRegLiveness: true
body:             |
  ; CHECK-LABEL: name: needs_distribute_0
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $sgpr0_sgpr1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
  ; CHECK-NEXT:   [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (s128), align 8, addrspace 1)
  ; CHECK-NEXT:   undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
  ; CHECK-NEXT:   $vcc_lo = S_ANDN2_B32 $exec_lo, %2.sub0, implicit-def dead $scc
  ; CHECK-NEXT:   dead %2.sub1:sreg_64_xexec = COPY [[S_LOAD_DWORDX4_IMM]].sub0
  ; CHECK-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit $vcc
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  bb.0:
    liveins: $sgpr0_sgpr1
    %0:sgpr_64 = COPY $sgpr0_sgpr1
    %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0, 0, 0 :: (load (s128), align 8, addrspace 1)
    undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
    %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %2.sub0, implicit $exec
    %4:sreg_32_xm0_xexec = V_CMP_NE_U32_e64 1, %3, implicit $exec
    $vcc_lo = S_AND_B32 $exec_lo, %4, implicit-def dead $scc
    %2.sub1:sreg_64_xexec = COPY %1.sub0
    S_CBRANCH_VCCNZ %bb.1, implicit $vcc

  bb.1:
...

---
name: needs_distribute_1
tracksRegLiveness: true
body:             |
  ; CHECK-LABEL: name: needs_distribute_1
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $sgpr0_sgpr1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
  ; CHECK-NEXT:   [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (s128), align 8, addrspace 1)
  ; CHECK-NEXT:   undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
  ; CHECK-NEXT:   $vcc_lo = S_ANDN2_B32 $exec_lo, %2.sub0, implicit-def dead $scc
  ; CHECK-NEXT:   %2.sub1:sreg_64_xexec = COPY [[S_LOAD_DWORDX4_IMM]].sub0
  ; CHECK-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit $vcc
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   S_NOP 0, implicit %2.sub1
  bb.0:
    liveins: $sgpr0_sgpr1
    %0:sgpr_64 = COPY $sgpr0_sgpr1
    %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0, 0, 0 :: (load (s128), align 8, addrspace 1)
    undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
    %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %2.sub0, implicit $exec
    %4:sreg_32_xm0_xexec = V_CMP_NE_U32_e64 1, %3, implicit $exec
    $vcc_lo = S_AND_B32 $exec_lo, %4, implicit-def dead $scc
    %2.sub1:sreg_64_xexec = COPY %1.sub0
    S_CBRANCH_VCCNZ %bb.1, implicit $vcc

  bb.1:
    S_NOP 0, implicit %2.sub1
...

---
name: needs_distribute_2
tracksRegLiveness: true
body:             |
  ; CHECK-LABEL: name: needs_distribute_2
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $sgpr0_sgpr1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
  ; CHECK-NEXT:   [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (s128), align 8, addrspace 1)
  ; CHECK-NEXT:   undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
  ; CHECK-NEXT:   $vcc_lo = S_ANDN2_B32 $exec_lo, %2.sub0, implicit-def dead $scc
  ; CHECK-NEXT:   %2.sub1:sreg_64_xexec = COPY [[S_LOAD_DWORDX4_IMM]].sub0
  ; CHECK-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit $vcc
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   S_NOP 0, implicit %2
  bb.0:
    liveins: $sgpr0_sgpr1
    %0:sgpr_64 = COPY $sgpr0_sgpr1
    %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0, 0, 0 :: (load (s128), align 8, addrspace 1)
    undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
    %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %2.sub0, implicit $exec
    %4:sreg_32_xm0_xexec = V_CMP_NE_U32_e64 1, %3, implicit $exec
    $vcc_lo = S_AND_B32 $exec_lo, %4, implicit-def dead $scc
    %2.sub1:sreg_64_xexec = COPY %1.sub0
    S_CBRANCH_VCCNZ %bb.1, implicit $vcc

  bb.1:
    S_NOP 0, implicit %2
...

---
name: needs_distribute_3
tracksRegLiveness: true
body:             |
  ; CHECK-LABEL: name: needs_distribute_3
  ; CHECK: bb.0:
  ; CHECK-NEXT:   successors: %bb.1(0x80000000)
  ; CHECK-NEXT:   liveins: $sgpr0_sgpr1
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
  ; CHECK-NEXT:   [[S_LOAD_DWORDX4_IMM:%[0-9]+]]:sgpr_128 = S_LOAD_DWORDX4_IMM [[COPY]], 0, 0 :: (load (s128), align 8, addrspace 1)
  ; CHECK-NEXT:   undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
  ; CHECK-NEXT:   $vcc_lo = S_ANDN2_B32 $exec_lo, %2.sub0, implicit-def dead $scc
  ; CHECK-NEXT:   %2.sub1:sreg_64_xexec = COPY [[S_LOAD_DWORDX4_IMM]].sub0
  ; CHECK-NEXT:   S_CBRANCH_VCCNZ %bb.1, implicit $vcc
  ; CHECK-NEXT: {{  $}}
  ; CHECK-NEXT: bb.1:
  ; CHECK-NEXT:   S_NOP 0, implicit %2.sub0
  bb.0:
    liveins: $sgpr0_sgpr1
    %0:sgpr_64 = COPY $sgpr0_sgpr1
    %1:sgpr_128 = S_LOAD_DWORDX4_IMM %0, 0, 0 :: (load (s128), align 8, addrspace 1)
    undef %2.sub0:sreg_64_xexec = S_MOV_B32 -1
    %3:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, %2.sub0, implicit $exec
    %4:sreg_32_xm0_xexec = V_CMP_NE_U32_e64 1, %3, implicit $exec
    $vcc_lo = S_AND_B32 $exec_lo, %4, implicit-def dead $scc
    %2.sub1:sreg_64_xexec = COPY %1.sub0
    S_CBRANCH_VCCNZ %bb.1, implicit $vcc

  bb.1:
    S_NOP 0, implicit %2.sub0
...
