1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -run-pass=post-RA-sched -verify-machineinstrs -o - %s | FileCheck %s 3 4# The scheduler was not inspecting the first instruction in the bundle 5# when adding kill flags, so it would incorrectly mark the first use 6# of $vgpr0 as killed. 7 8--- 9name: kill_flag_use_first_bundle_inst 10tracksRegLiveness: true 11machineFunctionInfo: 12 isEntryFunction: true 13body: | 14 bb.0: 15 liveins: $sgpr4_sgpr5, $sgpr7 16 17 ; CHECK-LABEL: name: kill_flag_use_first_bundle_inst 18 ; CHECK: liveins: $sgpr4_sgpr5, $sgpr7 19 ; CHECK: renamable $sgpr0 = S_LOAD_DWORD_IMM killed renamable $sgpr4_sgpr5, 0, 0, 0 20 ; CHECK: $m0 = S_MOV_B32 -1 21 ; CHECK: $vgpr0 = V_MOV_B32_e32 killed $sgpr0, implicit $exec, implicit $exec 22 ; CHECK: BUNDLE implicit $vgpr0, implicit $m0, implicit $exec { 23 ; CHECK: DS_GWS_INIT $vgpr0, 8, implicit $m0, implicit $exec 24 ; CHECK: S_WAITCNT 0 25 ; CHECK: } 26 ; CHECK: BUNDLE implicit killed $vgpr0, implicit $m0, implicit $exec { 27 ; CHECK: DS_GWS_BARRIER killed $vgpr0, 8, implicit $m0, implicit $exec 28 ; CHECK: S_WAITCNT 0 29 ; CHECK: } 30 renamable $sgpr0 = S_LOAD_DWORD_IMM killed renamable $sgpr4_sgpr5, 0, 0, 0 31 $m0 = S_MOV_B32 -1 32 $vgpr0 = V_MOV_B32_e32 $sgpr0, implicit $exec, implicit $exec 33 BUNDLE implicit $vgpr0, implicit $m0, implicit $exec { 34 DS_GWS_INIT $vgpr0, 8, implicit $m0, implicit $exec 35 S_WAITCNT 0 36 } 37 BUNDLE implicit killed $vgpr0, implicit $m0, implicit $exec { 38 DS_GWS_BARRIER $vgpr0, 8, implicit $m0, implicit $exec 39 S_WAITCNT 0 40 } 41 42... 43