|
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