# REQUIRES: asserts
# RUN: llc -mtriple=amdgcn-- -verify-machineinstrs -debug-only=regalloc -run-pass=greedy -filetype=null %s 2>&1 | FileCheck %s

---
# Check that physreg candidate is not used since cannot be spilled in a block,
# e.g. before exec mask preamble
# CHECK: , cannot spill all interferences.

name:            foo
tracksRegLiveness: true
machineFunctionInfo:
  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3
  stackPtrOffsetReg: $sgpr32
body:             |
  bb.0:
    liveins: $sgpr96_sgpr97, $sgpr98_sgpr99, $sgpr100_sgpr101, $sgpr102_sgpr103

    %0:sreg_64 = COPY $sgpr102_sgpr103
    %1:sgpr_128 = COPY $sgpr100_sgpr101_sgpr102_sgpr103
    %2:sgpr_128 = COPY %1
    %3:sgpr_128 = COPY %1
    %4:sgpr_128 = COPY %1
    %5:sgpr_128 = COPY %1
    %6:sgpr_128 = COPY %1
    %7:sgpr_128 = COPY %1
    %8:sgpr_128 = COPY %1
    %9:sgpr_128 = COPY %1
    %10:sgpr_128 = COPY %1
    %11:sgpr_128 = COPY %1
    %12:sgpr_128 = COPY %1
    %13:sgpr_128 = COPY %1
    %14:sgpr_128 = COPY %1
    %15:sgpr_128 = COPY %1
    %16:sgpr_128 = COPY %1
    %17:sgpr_128 = COPY %1
    %18:sgpr_128 = COPY %1
    %19:sgpr_128 = COPY %1
    %20:sgpr_128 = COPY %1
    %21:sgpr_128 = COPY %1
    %22:sgpr_128 = COPY %1
    %23:sgpr_128 = COPY %1
    %24:sgpr_128 = COPY %1
    %25:sgpr_128 = COPY %1
    %26:sgpr_128 = COPY %1
    S_BRANCH %bb.1

  bb.1:
    liveins: $sgpr96_sgpr97, $sgpr98_sgpr99, $sgpr102_sgpr103

    %0:sreg_64 = S_OR_SAVEEXEC_B64 $sgpr96_sgpr97, implicit-def $exec, implicit-def $scc, implicit $exec
    $exec = S_XOR_B64_term $exec, %0, implicit-def $scc
    S_CBRANCH_EXECZ %bb.3, implicit $exec
    S_BRANCH %bb.2

  bb.2:
    liveins: $sgpr98_sgpr99, $sgpr102_sgpr103

    %0:sreg_64 = S_OR_SAVEEXEC_B64 $sgpr98_sgpr99, implicit-def $exec, implicit-def $scc, implicit $exec
    $exec = S_XOR_B64_term $exec, %0, implicit-def $scc
    S_CBRANCH_EXECZ %bb.3, implicit $exec
    S_BRANCH %bb.4

  bb.3:
    liveins: $sgpr102_sgpr103

    %0:sreg_64 = S_OR_SAVEEXEC_B64 $sgpr102_sgpr103, implicit-def $exec, implicit-def $scc, implicit $exec
    $exec = S_XOR_B64_term $exec, %0, implicit-def $scc
    S_BRANCH %bb.4

  bb.4:
    S_CMP_EQ_U64 %1.sub0_sub1, %2.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %3.sub0_sub1, %4.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %5.sub0_sub1, %6.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %7.sub0_sub1, %8.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %9.sub0_sub1, %10.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %11.sub0_sub1, %12.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %13.sub0_sub1, %14.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %15.sub0_sub1, %16.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %17.sub0_sub1, %18.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %19.sub0_sub1, %20.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %21.sub0_sub1, %22.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %23.sub0_sub1, %24.sub2_sub3, implicit-def $scc
    S_CMP_EQ_U64 %25.sub0_sub1, %26.sub2_sub3, implicit-def $scc
    $vgpr0 = V_MOV_B32_e32 0, implicit $exec
    S_SETPC_B64_return undef $sgpr30_sgpr31, implicit %0, implicit $vgpr0
...
