brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · ee5546b Raw
128 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -run-pass=si-pre-emit-peephole -verify-machineinstrs  %s -o - | FileCheck %s3# Make sure mandatory skips are not removed around mode defs.4 5---6 7name: need_skip_gpr_idx_mode8body: |9  ; CHECK-LABEL: name: need_skip_gpr_idx_mode10  ; CHECK: bb.0:11  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)12  ; CHECK-NEXT: {{  $}}13  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec14  ; CHECK-NEXT: {{  $}}15  ; CHECK-NEXT: bb.1:16  ; CHECK-NEXT:   successors: %bb.2(0x80000000)17  ; CHECK-NEXT: {{  $}}18  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec19  ; CHECK-NEXT:   S_SET_GPR_IDX_MODE 0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m020  ; CHECK-NEXT: {{  $}}21  ; CHECK-NEXT: bb.2:22  ; CHECK-NEXT:   S_ENDPGM 023  bb.0:24    S_CBRANCH_EXECZ %bb.2, implicit $exec25 26  bb.1:27    $vgpr0 = V_MOV_B32_e32 0, implicit $exec28    S_SET_GPR_IDX_MODE 0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m029 30  bb.2:31    S_ENDPGM 032...33 34---35 36name: need_skip_gpr_idx_on37body: |38  ; CHECK-LABEL: name: need_skip_gpr_idx_on39  ; CHECK: bb.0:40  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)41  ; CHECK-NEXT:   liveins: $sgpr042  ; CHECK-NEXT: {{  $}}43  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec44  ; CHECK-NEXT: {{  $}}45  ; CHECK-NEXT: bb.1:46  ; CHECK-NEXT:   successors: %bb.2(0x80000000)47  ; CHECK-NEXT:   liveins: $sgpr048  ; CHECK-NEXT: {{  $}}49  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec50  ; CHECK-NEXT:   S_SET_GPR_IDX_ON $sgpr0, 0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m051  ; CHECK-NEXT: {{  $}}52  ; CHECK-NEXT: bb.2:53  ; CHECK-NEXT:   S_ENDPGM 054  bb.0:55    liveins: $sgpr056    S_CBRANCH_EXECZ %bb.2, implicit $exec57 58  bb.1:59    liveins: $sgpr060    $vgpr0 = V_MOV_B32_e32 0, implicit $exec61    S_SET_GPR_IDX_ON $sgpr0, 0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m062 63  bb.2:64    S_ENDPGM 065...66 67---68 69name: need_skip_gpr_idx_off70body: |71  ; CHECK-LABEL: name: need_skip_gpr_idx_off72  ; CHECK: bb.0:73  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)74  ; CHECK-NEXT: {{  $}}75  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec76  ; CHECK-NEXT: {{  $}}77  ; CHECK-NEXT: bb.1:78  ; CHECK-NEXT:   successors: %bb.2(0x80000000)79  ; CHECK-NEXT: {{  $}}80  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec81  ; CHECK-NEXT:   S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode82  ; CHECK-NEXT: {{  $}}83  ; CHECK-NEXT: bb.2:84  ; CHECK-NEXT:   S_ENDPGM 085  bb.0:86    S_CBRANCH_EXECZ %bb.2, implicit $exec87 88  bb.1:89    $vgpr0 = V_MOV_B32_e32 0, implicit $exec90    S_SET_GPR_IDX_OFF implicit-def $mode, implicit $mode91 92  bb.2:93    S_ENDPGM 094...95 96---97 98name: need_skip_gpr_idx_idx99body: |100  ; CHECK-LABEL: name: need_skip_gpr_idx_idx101  ; CHECK: bb.0:102  ; CHECK-NEXT:   successors: %bb.2(0x40000000), %bb.1(0x40000000)103  ; CHECK-NEXT:   liveins: $sgpr0104  ; CHECK-NEXT: {{  $}}105  ; CHECK-NEXT:   S_CBRANCH_EXECZ %bb.2, implicit $exec106  ; CHECK-NEXT: {{  $}}107  ; CHECK-NEXT: bb.1:108  ; CHECK-NEXT:   successors: %bb.2(0x80000000)109  ; CHECK-NEXT:   liveins: $sgpr0110  ; CHECK-NEXT: {{  $}}111  ; CHECK-NEXT:   $vgpr0 = V_MOV_B32_e32 0, implicit $exec112  ; CHECK-NEXT:   S_SET_GPR_IDX_IDX $sgpr0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m0113  ; CHECK-NEXT: {{  $}}114  ; CHECK-NEXT: bb.2:115  ; CHECK-NEXT:   S_ENDPGM 0116  bb.0:117    liveins: $sgpr0118    S_CBRANCH_EXECZ %bb.2, implicit $exec119 120  bb.1:121    liveins: $sgpr0122    $vgpr0 = V_MOV_B32_e32 0, implicit $exec123    S_SET_GPR_IDX_IDX $sgpr0, implicit-def $mode, implicit-def $m0, implicit $mode, implicit $m0124 125  bb.2:126    S_ENDPGM 0127...128