|  | 
| 1 | 1 | # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py | 
| 2 | 2 | # RUN: llc -march=amdgcn -verify-machineinstrs -mcpu=gfx1100 -mattr=+real-true16 -run-pass=prologepilog -o - %s | FileCheck -check-prefix=EXPANDED %s | 
|  | 3 | +# RUN: llc -march=amdgcn -verify-machineinstrs -mcpu=gfx1250 -mattr=+real-true16 -run-pass=prologepilog -o - %s | FileCheck -check-prefix=SRAMECC-EXPANDED %s | 
| 3 | 4 | 
 | 
| 4 | 5 | --- | 
| 5 | 6 | name: spill_restore_vgpr16 | 
| @@ -31,6 +32,28 @@ body: | | 
| 31 | 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) | 
| 32 | 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) | 
| 33 | 34 |   ; EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16 | 
|  | 35 | +  ; | 
|  | 36 | +  ; SRAMECC-EXPANDED-LABEL: name: spill_restore_vgpr16 | 
|  | 37 | +  ; 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_hi16 | 
|  | 41 | +  ; 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_lo16 | 
|  | 43 | +  ; 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 $scc | 
|  | 45 | +  ; 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 1 | 
|  | 50 | +  ; 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 $exec | 
|  | 54 | +  ; 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 $exec | 
|  | 56 | +  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16 | 
| 34 | 57 |    bb.0: | 
| 35 | 58 |      successors: %bb.1(0x80000000) | 
| 36 | 59 |      S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16 | 
| @@ -78,6 +101,29 @@ body: | | 
| 78 | 101 |   ; 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) | 
| 79 | 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) | 
| 80 | 103 |   ; EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16 | 
|  | 104 | +  ; | 
|  | 105 | +  ; SRAMECC-EXPANDED-LABEL: name: spill_restore_vgpr16_middle_of_block | 
|  | 106 | +  ; 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_hi16 | 
|  | 110 | +  ; 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_lo16 | 
|  | 112 | +  ; 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 $scc | 
|  | 114 | +  ; 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 1 | 
|  | 119 | +  ; SRAMECC-EXPANDED-NEXT: {{  $}} | 
|  | 120 | +  ; SRAMECC-EXPANDED-NEXT: bb.2: | 
|  | 121 | +  ; SRAMECC-EXPANDED-NEXT:   S_NOP 1 | 
|  | 122 | +  ; 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 $exec | 
|  | 124 | +  ; 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 $exec | 
|  | 126 | +  ; SRAMECC-EXPANDED-NEXT:   S_NOP 0, implicit killed renamable $vgpr0_lo16, implicit killed renamable $vgpr0_hi16 | 
| 81 | 127 |    bb.0: | 
| 82 | 128 |      successors: %bb.1(0x80000000) | 
| 83 | 129 |      S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16 | 
| @@ -124,6 +170,27 @@ body: | | 
| 124 | 170 |   ; EXPANDED-NEXT: bb.2: | 
| 125 | 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) | 
| 126 | 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_block | 
|  | 175 | +  ; 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_hi16 | 
|  | 179 | +  ; 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_lo16 | 
|  | 181 | +  ; 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 $scc | 
|  | 183 | +  ; 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 1 | 
|  | 188 | +  ; 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 $exec | 
|  | 192 | +  ; 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 $exec | 
| 127 | 194 |    bb.0: | 
| 128 | 195 |      successors: %bb.1(0x80000000) | 
| 129 | 196 |      S_NOP 0, implicit-def renamable $vgpr0_lo16, implicit-def renamable $vgpr0_hi16 | 
|  | 
0 commit comments