# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -run-pass=post-RA-sched -verify-machineinstrs -o -  %s | FileCheck %s

# The scheduler was not inspecting the first instruction in the bundle
# when adding kill flags, so it would incorrectly mark the first use
# of $vgpr0 as killed.

---
name: kill_flag_use_first_bundle_inst
tracksRegLiveness: true
machineFunctionInfo:
  isEntryFunction: true
body:             |
  bb.0:
    liveins: $sgpr4_sgpr5, $sgpr7

    ; CHECK-LABEL: name: kill_flag_use_first_bundle_inst
    ; CHECK: liveins: $sgpr4_sgpr5, $sgpr7
    ; CHECK: renamable $sgpr0 = S_LOAD_DWORD_IMM killed renamable $sgpr4_sgpr5, 0, 0, 0
    ; CHECK: $m0 = S_MOV_B32 -1
    ; CHECK: $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec
    ; CHECK: BUNDLE implicit $vgpr0, implicit $m0, implicit $exec {
    ; CHECK:   DS_GWS_INIT $vgpr0, 8, implicit $m0, implicit $exec
    ; CHECK:   S_WAITCNT 0
    ; CHECK: }
    ; CHECK: BUNDLE implicit killed $vgpr0, implicit $m0, implicit $exec {
    ; CHECK:   DS_GWS_BARRIER killed $vgpr0, 8, implicit $m0, implicit $exec
    ; CHECK:   S_WAITCNT 0
    ; CHECK: }
    renamable $sgpr0 = S_LOAD_DWORD_IMM killed renamable $sgpr4_sgpr5, 0, 0, 0
    $m0 = S_MOV_B32 -1
    $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit $exec
    BUNDLE implicit $vgpr0, implicit $m0, implicit $exec {
      DS_GWS_INIT $vgpr0, 8, implicit $m0, implicit $exec
      S_WAITCNT 0
    }
    BUNDLE implicit killed $vgpr0, implicit $m0, implicit $exec {
      DS_GWS_BARRIER $vgpr0, 8, implicit $m0, implicit $exec
      S_WAITCNT 0
    }

...
