[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AMDGPU / post-ra-sched-kill-bundle-use-inst.mir
blobbe0dbe09ae27973d99694121e53d73b45fde7bb3
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
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.
8 ---
9 name: kill_flag_use_first_bundle_inst
10 tracksRegLiveness: true
11 machineFunctionInfo:
12   isEntryFunction: true
13 body:             |
14   bb.0:
15     liveins: $sgpr4_sgpr5, $sgpr7
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, -1, 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, -1, 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, -1, implicit $m0, implicit $exec
35       S_WAITCNT 0
36     }
37     BUNDLE implicit killed $vgpr0, implicit $m0, implicit $exec {
38       DS_GWS_BARRIER $vgpr0, 8, -1, implicit $m0, implicit $exec
39       S_WAITCNT 0
40     }
42 ...