brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.8 KiB · 6989583 Raw
208 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -march=amdgcn -verify-machineinstrs -mcpu=gfx1100 -mattr=+real-true16 -run-pass=prologepilog -o - %s | FileCheck -check-prefix=EXPANDED %s3# RUN: llc -march=amdgcn -verify-machineinstrs -mcpu=gfx1250 -mattr=+real-true16 -run-pass=prologepilog -o - %s | FileCheck -check-prefix=SRAMECC-EXPANDED %s4 5---6name: spill_restore_vgpr167tracksRegLiveness: true8stack:9  - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }10  - { id: 1, name: '', type: spill-slot, offset: 4, size: 4, alignment: 4 }11machineFunctionInfo:12  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr313  stackPtrOffsetReg: $sgpr3214  hasSpilledVGPRs: true15body: |16  ; EXPANDED-LABEL: name: spill_restore_vgpr1617  ; EXPANDED: bb.0:18  ; EXPANDED-NEXT:   successors: %bb.1(0x80000000)19  ; EXPANDED-NEXT: {{  $}}20  ; EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi1621  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)22  ; EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo1623  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)24  ; EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc25  ; EXPANDED-NEXT: {{  $}}26  ; EXPANDED-NEXT: bb.1:27  ; EXPANDED-NEXT:   successors: %bb.2(0x80000000)28  ; EXPANDED-NEXT: {{  $}}29  ; EXPANDED-NEXT:   S_NOP 130  ; EXPANDED-NEXT: {{  $}}31  ; EXPANDED-NEXT: bb.2:32  ; EXPANDED-NEXT:   $vgpr0_lo16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)33  ; EXPANDED-NEXT:   $vgpr0_hi16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)34  ; EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi1635  ;36  ; SRAMECC-EXPANDED-LABEL: name: spill_restore_vgpr1637  ; SRAMECC-EXPANDED: bb.0:38  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.1(0x80000000)39  ; SRAMECC-EXPANDED-NEXT: {{  $}}40  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi1641  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)42  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo1643  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)44  ; SRAMECC-EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc45  ; SRAMECC-EXPANDED-NEXT: {{  $}}46  ; SRAMECC-EXPANDED-NEXT: bb.1:47  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.2(0x80000000)48  ; SRAMECC-EXPANDED-NEXT: {{  $}}49  ; SRAMECC-EXPANDED-NEXT:   S_NOP 150  ; SRAMECC-EXPANDED-NEXT: {{  $}}51  ; SRAMECC-EXPANDED-NEXT: bb.2:52  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)53  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_lo16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec54  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)55  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_hi16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec56  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi1657   bb.0:58     successors: %bb.1(0x80000000)59     S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi1660     SI_SPILL_V16_SAVE killed $vgpr0_hi16, %stack.1, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.1, addrspace 5)61     S_NOP 0, implicit renamable $vgpr0_lo1662     SI_SPILL_V16_SAVE killed $vgpr0_lo16, %stack.0, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.0, addrspace 5)63     S_CBRANCH_SCC1 %bb.1, implicit undef $scc64   bb.1:65     successors: %bb.2(0x80000000)66     S_NOP 167   bb.2:68     $vgpr0_lo16 = SI_SPILL_V16_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.0, addrspace 5)69     $vgpr0_hi16 = SI_SPILL_V16_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.1, addrspace 5)70     S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi1671...72 73---74name: spill_restore_vgpr16_middle_of_block75tracksRegLiveness: true76stack:77  - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }78  - { id: 1, name: '', type: spill-slot, offset: 4, size: 4, alignment: 4 }79machineFunctionInfo:80  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr381  stackPtrOffsetReg: $sgpr3282  hasSpilledVGPRs: true83body: |84  ; EXPANDED-LABEL: name: spill_restore_vgpr16_middle_of_block85  ; EXPANDED: bb.0:86  ; EXPANDED-NEXT:   successors: %bb.1(0x80000000)87  ; EXPANDED-NEXT: {{  $}}88  ; EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi1689  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)90  ; EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo1691  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)92  ; EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc93  ; EXPANDED-NEXT: {{  $}}94  ; EXPANDED-NEXT: bb.1:95  ; EXPANDED-NEXT:   successors: %bb.2(0x80000000)96  ; EXPANDED-NEXT: {{  $}}97  ; EXPANDED-NEXT:   S_NOP 198  ; EXPANDED-NEXT: {{  $}}99  ; EXPANDED-NEXT: bb.2:100  ; EXPANDED-NEXT:   S_NOP 1101  ; EXPANDED-NEXT:   $vgpr0_lo16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)102  ; EXPANDED-NEXT:   $vgpr0_hi16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)103  ; EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16104  ;105  ; SRAMECC-EXPANDED-LABEL: name: spill_restore_vgpr16_middle_of_block106  ; SRAMECC-EXPANDED: bb.0:107  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.1(0x80000000)108  ; SRAMECC-EXPANDED-NEXT: {{  $}}109  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16110  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)111  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo16112  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)113  ; SRAMECC-EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc114  ; SRAMECC-EXPANDED-NEXT: {{  $}}115  ; SRAMECC-EXPANDED-NEXT: bb.1:116  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.2(0x80000000)117  ; SRAMECC-EXPANDED-NEXT: {{  $}}118  ; SRAMECC-EXPANDED-NEXT:   S_NOP 1119  ; SRAMECC-EXPANDED-NEXT: {{  $}}120  ; SRAMECC-EXPANDED-NEXT: bb.2:121  ; SRAMECC-EXPANDED-NEXT:   S_NOP 1122  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)123  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_lo16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec124  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)125  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_hi16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec126  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16127   bb.0:128     successors: %bb.1(0x80000000)129     S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16130     SI_SPILL_V16_SAVE killed $vgpr0_hi16, %stack.1, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.1, addrspace 5)131     S_NOP 0, implicit renamable $vgpr0_lo16132     SI_SPILL_V16_SAVE killed $vgpr0_lo16, %stack.0, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.0, addrspace 5)133     S_CBRANCH_SCC1 %bb.1, implicit undef $scc134   bb.1:135     successors: %bb.2(0x80000000)136     S_NOP 1137   bb.2:138     S_NOP 1139     $vgpr0_lo16 = SI_SPILL_V16_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.0, addrspace 5)140     $vgpr0_hi16 = SI_SPILL_V16_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.1, addrspace 5)141     S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16142...143 144---145name: spill_restore_vgpr16_end_of_block146tracksRegLiveness: true147stack:148  - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4 }149  - { id: 1, name: '', type: spill-slot, offset: 4, size: 4, alignment: 4 }150machineFunctionInfo:151  scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3152  stackPtrOffsetReg: $sgpr32153  hasSpilledVGPRs: true154body: |155  ; EXPANDED-LABEL: name: spill_restore_vgpr16_end_of_block156  ; EXPANDED: bb.0:157  ; EXPANDED-NEXT:   successors: %bb.1(0x80000000)158  ; EXPANDED-NEXT: {{  $}}159  ; EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16160  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)161  ; EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo16162  ; EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)163  ; EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc164  ; EXPANDED-NEXT: {{  $}}165  ; EXPANDED-NEXT: bb.1:166  ; EXPANDED-NEXT:   successors: %bb.2(0x80000000)167  ; EXPANDED-NEXT: {{  $}}168  ; EXPANDED-NEXT:   S_NOP 1169  ; EXPANDED-NEXT: {{  $}}170  ; EXPANDED-NEXT: bb.2:171  ; EXPANDED-NEXT:   $vgpr0_lo16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)172  ; EXPANDED-NEXT:   $vgpr0_hi16 = SCRATCH_LOAD_SHORT_D16_SADDR_t16 $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)173  ;174  ; SRAMECC-EXPANDED-LABEL: name: spill_restore_vgpr16_end_of_block175  ; SRAMECC-EXPANDED: bb.0:176  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.1(0x80000000)177  ; SRAMECC-EXPANDED-NEXT: {{  $}}178  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16179  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_hi16, $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.1, align 4, addrspace 5)180  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit renamable $vgpr0_lo16181  ; SRAMECC-EXPANDED-NEXT:   SCRATCH_STORE_SHORT_SADDR_t16 killed $vgpr0_lo16, $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (store (s16) into %stack.0, align 4, addrspace 5)182  ; SRAMECC-EXPANDED-NEXT:   S_CBRANCH_SCC1 %bb.1, implicit undef $scc183  ; SRAMECC-EXPANDED-NEXT: {{  $}}184  ; SRAMECC-EXPANDED-NEXT: bb.1:185  ; SRAMECC-EXPANDED-NEXT:   successors: %bb.2(0x80000000)186  ; SRAMECC-EXPANDED-NEXT: {{  $}}187  ; SRAMECC-EXPANDED-NEXT:   S_NOP 1188  ; SRAMECC-EXPANDED-NEXT: {{  $}}189  ; SRAMECC-EXPANDED-NEXT: bb.2:190  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 0, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.0, align 4, addrspace 5)191  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_lo16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec192  ; SRAMECC-EXPANDED-NEXT:   $vgpr1 = SCRATCH_LOAD_USHORT_SADDR $sgpr32, 4, 0, implicit $exec, implicit $flat_scr :: (load (s16) from %stack.1, align 4, addrspace 5)193  ; SRAMECC-EXPANDED-NEXT:   $vgpr0_hi16 = V_MOV_B16_t16_e64 0, killed $vgpr1_lo16, 0, implicit $exec194   bb.0:195     successors: %bb.1(0x80000000)196     S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16197     SI_SPILL_V16_SAVE killed $vgpr0_hi16, %stack.1, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.1, addrspace 5)198     S_NOP 0, implicit renamable $vgpr0_lo16199     SI_SPILL_V16_SAVE killed $vgpr0_lo16, %stack.0, $sgpr32, 0, implicit $exec :: (store (s16) into %stack.0, addrspace 5)200     S_CBRANCH_SCC1 %bb.1, implicit undef $scc201   bb.1:202     successors: %bb.2(0x80000000)203     S_NOP 1204   bb.2:205     $vgpr0_lo16 = SI_SPILL_V16_RESTORE %stack.0, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.0, addrspace 5)206     $vgpr0_hi16 = SI_SPILL_V16_RESTORE %stack.1, $sgpr32, 0, implicit $exec :: (load (s16) from %stack.1, addrspace 5)207...208