85 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx900 -mattr=+enable-flat-scratch -run-pass=si-fold-operands -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s3 4---5name: test_fold_fi_scratch_load_vgpr6stack:7 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }8body: |9 bb.0.entry:10 ; GCN-LABEL: name: test_fold_fi_scratch_load_vgpr11 ; GCN: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR %stack.0, 4, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)12 ; GCN-NEXT: S_ENDPGM 013 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec14 %1:vgpr_32 = SCRATCH_LOAD_DWORD %0:vgpr_32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)15 S_ENDPGM 016 17...18 19---20name: test_fold_fi_scratch_load_sgpr21stack:22 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }23body: |24 bb.0.entry:25 ; GCN-LABEL: name: test_fold_fi_scratch_load_sgpr26 ; GCN: [[SCRATCH_LOAD_DWORD_SADDR:%[0-9]+]]:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR %stack.0, 4, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)27 ; GCN-NEXT: S_ENDPGM 028 %0:sgpr_32 = S_MOV_B32 %stack.029 %1:vgpr_32 = SCRATCH_LOAD_DWORD_SADDR %0:sgpr_32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s32) from %stack.0, addrspace 5)30 S_ENDPGM 031 32...33 34---35name: test_fold_fi_scratch_store_vgpr36stack:37 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }38body: |39 bb.0.entry:40 ; GCN-LABEL: name: test_fold_fi_scratch_store_vgpr41 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF42 ; GCN-NEXT: SCRATCH_STORE_DWORD_SADDR [[DEF]], %stack.0, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)43 ; GCN-NEXT: S_ENDPGM 044 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec45 %1:vgpr_32 = IMPLICIT_DEF46 SCRATCH_STORE_DWORD %1:vgpr_32, %0:vgpr_32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)47 S_ENDPGM 048 49...50 51---52name: test_no_fold_fi_scratch_store_vgpr53stack:54 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }55body: |56 bb.0.entry:57 ; GCN-LABEL: name: test_no_fold_fi_scratch_store_vgpr58 ; GCN: [[V_MOV_B32_e32_:%[0-9]+]]:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec59 ; GCN-NEXT: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF60 ; GCN-NEXT: SCRATCH_STORE_DWORD [[V_MOV_B32_e32_]], [[DEF]], 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)61 ; GCN-NEXT: S_ENDPGM 062 %0:vgpr_32 = V_MOV_B32_e32 %stack.0, implicit $exec63 %1:vgpr_32 = IMPLICIT_DEF64 SCRATCH_STORE_DWORD %0:vgpr_32, %1:vgpr_32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)65 S_ENDPGM 066 67...68 69---70name: test_fold_fi_scratch_store_sgpr71stack:72 - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }73body: |74 bb.0.entry:75 ; GCN-LABEL: name: test_fold_fi_scratch_store_sgpr76 ; GCN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF77 ; GCN-NEXT: SCRATCH_STORE_DWORD_SADDR [[DEF]], %stack.0, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)78 ; GCN-NEXT: S_ENDPGM 079 %0:sgpr_32 = S_MOV_B32 %stack.080 %1:vgpr_32 = IMPLICIT_DEF81 SCRATCH_STORE_DWORD_SADDR %1:vgpr_32, %0:sgpr_32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s32) into %stack.0, addrspace 5)82 S_ENDPGM 083 84...85