1# NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2# RUN: llc -mtriple=amdgcn -mcpu=gfx908 -verify-machineinstrs -start-before=prologepilog %s -o - | FileCheck --check-prefix=GFX908 %s 3# RUN: llc -mtriple=amdgcn -mcpu=gfx90a -verify-machineinstrs -start-before=prologepilog %s -o - | FileCheck --check-prefix=GFX90A %s 4 5--- | 6 7 define amdgpu_kernel void @test_spill() #0 { 8 ; GFX908-LABEL: test_spill: 9 ; GFX908: ; %bb.0: 10 ; GFX908-NEXT: ; implicit-def: $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111 11 ; GFX908-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 12 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a96 13 ; GFX908-NEXT: ; implicit-def: $vgpr0 14 ; GFX908-NEXT: ; implicit-def: $vgpr1 15 ; GFX908-NEXT: ; implicit-def: $vgpr2 16 ; GFX908-NEXT: ; implicit-def: $vgpr3 17 ; GFX908-NEXT: ; implicit-def: $vgpr4 18 ; GFX908-NEXT: ; implicit-def: $vgpr5 19 ; GFX908-NEXT: ; implicit-def: $vgpr6 20 ; GFX908-NEXT: ; implicit-def: $vgpr7 21 ; GFX908-NEXT: ; implicit-def: $vgpr8 22 ; GFX908-NEXT: ; implicit-def: $vgpr9 23 ; GFX908-NEXT: ; implicit-def: $vgpr10 24 ; GFX908-NEXT: ; implicit-def: $vgpr11 25 ; GFX908-NEXT: ; implicit-def: $vgpr12 26 ; GFX908-NEXT: ; implicit-def: $vgpr13 27 ; GFX908-NEXT: ; implicit-def: $vgpr14 28 ; GFX908-NEXT: ; implicit-def: $vgpr15 29 ; GFX908-NEXT: ; implicit-def: $vgpr16 30 ; GFX908-NEXT: ; implicit-def: $vgpr17 31 ; GFX908-NEXT: ; implicit-def: $vgpr18 32 ; GFX908-NEXT: ; implicit-def: $vgpr19 33 ; GFX908-NEXT: ; implicit-def: $vgpr20 34 ; GFX908-NEXT: ; implicit-def: $vgpr21 35 ; GFX908-NEXT: ; implicit-def: $vgpr22 36 ; GFX908-NEXT: ; implicit-def: $vgpr23 37 ; GFX908-NEXT: ; implicit-def: $vgpr24 38 ; GFX908-NEXT: ; implicit-def: $vgpr25 39 ; GFX908-NEXT: ; implicit-def: $vgpr26 40 ; GFX908-NEXT: ; implicit-def: $vgpr27 41 ; GFX908-NEXT: ; implicit-def: $vgpr28 42 ; GFX908-NEXT: ; implicit-def: $vgpr29 43 ; GFX908-NEXT: ; implicit-def: $vgpr30 44 ; GFX908-NEXT: ; implicit-def: $vgpr31 45 ; GFX908-NEXT: ; implicit-def: $vgpr32 46 ; GFX908-NEXT: ; implicit-def: $vgpr33 47 ; GFX908-NEXT: ; implicit-def: $vgpr34 48 ; GFX908-NEXT: ; implicit-def: $vgpr35 49 ; GFX908-NEXT: ; implicit-def: $vgpr36 50 ; GFX908-NEXT: ; implicit-def: $vgpr37 51 ; GFX908-NEXT: ; implicit-def: $vgpr38 52 ; GFX908-NEXT: ; implicit-def: $vgpr39 53 ; GFX908-NEXT: ; implicit-def: $vgpr40 54 ; GFX908-NEXT: ; implicit-def: $vgpr41 55 ; GFX908-NEXT: ; implicit-def: $vgpr42 56 ; GFX908-NEXT: ; implicit-def: $vgpr43 57 ; GFX908-NEXT: ; implicit-def: $vgpr44 58 ; GFX908-NEXT: ; implicit-def: $vgpr45 59 ; GFX908-NEXT: ; implicit-def: $vgpr46 60 ; GFX908-NEXT: ; implicit-def: $vgpr47 61 ; GFX908-NEXT: ; implicit-def: $vgpr48 62 ; GFX908-NEXT: ; implicit-def: $vgpr49 63 ; GFX908-NEXT: ; implicit-def: $vgpr50 64 ; GFX908-NEXT: ; implicit-def: $vgpr51 65 ; GFX908-NEXT: ; implicit-def: $vgpr52 66 ; GFX908-NEXT: ; implicit-def: $vgpr53 67 ; GFX908-NEXT: ; implicit-def: $vgpr54 68 ; GFX908-NEXT: ; implicit-def: $vgpr55 69 ; GFX908-NEXT: ; implicit-def: $vgpr56 70 ; GFX908-NEXT: ; implicit-def: $vgpr57 71 ; GFX908-NEXT: ; implicit-def: $vgpr58 72 ; GFX908-NEXT: ; implicit-def: $vgpr59 73 ; GFX908-NEXT: ; implicit-def: $vgpr60 74 ; GFX908-NEXT: ; implicit-def: $vgpr61 75 ; GFX908-NEXT: s_nop 1 76 ; GFX908-NEXT: v_accvgpr_write_b32 a64, v63 77 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a97 78 ; GFX908-NEXT: s_nop 1 79 ; GFX908-NEXT: v_accvgpr_write_b32 a65, v63 80 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a98 81 ; GFX908-NEXT: s_nop 1 82 ; GFX908-NEXT: v_accvgpr_write_b32 a66, v63 83 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a99 84 ; GFX908-NEXT: s_nop 1 85 ; GFX908-NEXT: v_accvgpr_write_b32 a67, v63 86 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a100 87 ; GFX908-NEXT: s_nop 1 88 ; GFX908-NEXT: v_accvgpr_write_b32 a68, v63 89 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a101 90 ; GFX908-NEXT: s_nop 1 91 ; GFX908-NEXT: v_accvgpr_write_b32 a69, v63 92 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a102 93 ; GFX908-NEXT: s_nop 1 94 ; GFX908-NEXT: v_accvgpr_write_b32 a70, v63 95 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a103 96 ; GFX908-NEXT: s_nop 1 97 ; GFX908-NEXT: v_accvgpr_write_b32 a71, v63 98 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a104 99 ; GFX908-NEXT: s_nop 1 100 ; GFX908-NEXT: v_accvgpr_write_b32 a72, v63 101 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a105 102 ; GFX908-NEXT: s_nop 1 103 ; GFX908-NEXT: v_accvgpr_write_b32 a73, v63 104 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a106 105 ; GFX908-NEXT: s_nop 1 106 ; GFX908-NEXT: v_accvgpr_write_b32 a74, v63 107 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a107 108 ; GFX908-NEXT: s_nop 1 109 ; GFX908-NEXT: v_accvgpr_write_b32 a75, v63 110 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a108 111 ; GFX908-NEXT: s_nop 1 112 ; GFX908-NEXT: v_accvgpr_write_b32 a76, v63 113 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a109 114 ; GFX908-NEXT: s_nop 1 115 ; GFX908-NEXT: v_accvgpr_write_b32 a77, v63 116 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a110 117 ; GFX908-NEXT: s_nop 1 118 ; GFX908-NEXT: v_accvgpr_write_b32 a78, v63 119 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a111 120 ; GFX908-NEXT: s_nop 1 121 ; GFX908-NEXT: v_accvgpr_write_b32 a79, v63 122 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a96 ; Reload Reuse 123 ; GFX908-NEXT: v_accvgpr_read_b32 v62, a111 ; Reload Reuse 124 ; GFX908-NEXT: s_nop 0 125 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 ; 4-byte Folded Spill 126 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a97 ; Reload Reuse 127 ; GFX908-NEXT: s_nop 1 128 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:4 ; 4-byte Folded Spill 129 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a98 ; Reload Reuse 130 ; GFX908-NEXT: s_nop 1 131 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:8 ; 4-byte Folded Spill 132 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a99 ; Reload Reuse 133 ; GFX908-NEXT: s_nop 1 134 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:12 ; 4-byte Folded Spill 135 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a100 ; Reload Reuse 136 ; GFX908-NEXT: s_nop 1 137 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:16 ; 4-byte Folded Spill 138 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a101 ; Reload Reuse 139 ; GFX908-NEXT: s_nop 1 140 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:20 ; 4-byte Folded Spill 141 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a102 ; Reload Reuse 142 ; GFX908-NEXT: s_nop 1 143 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:24 ; 4-byte Folded Spill 144 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a103 ; Reload Reuse 145 ; GFX908-NEXT: s_nop 1 146 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:28 ; 4-byte Folded Spill 147 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a104 ; Reload Reuse 148 ; GFX908-NEXT: s_nop 1 149 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:32 ; 4-byte Folded Spill 150 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a105 ; Reload Reuse 151 ; GFX908-NEXT: s_nop 1 152 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:36 ; 4-byte Folded Spill 153 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a106 ; Reload Reuse 154 ; GFX908-NEXT: s_nop 1 155 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:40 ; 4-byte Folded Spill 156 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a107 ; Reload Reuse 157 ; GFX908-NEXT: s_nop 1 158 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:44 ; 4-byte Folded Spill 159 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a108 ; Reload Reuse 160 ; GFX908-NEXT: s_nop 1 161 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:48 ; 4-byte Folded Spill 162 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a109 ; Reload Reuse 163 ; GFX908-NEXT: s_nop 1 164 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:52 ; 4-byte Folded Spill 165 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a110 ; Reload Reuse 166 ; GFX908-NEXT: s_nop 1 167 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:56 ; 4-byte Folded Spill 168 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a96 ; Reload Reuse 169 ; GFX908-NEXT: s_nop 1 170 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:64 ; 4-byte Folded Spill 171 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a97 ; Reload Reuse 172 ; GFX908-NEXT: s_nop 1 173 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:68 ; 4-byte Folded Spill 174 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a98 ; Reload Reuse 175 ; GFX908-NEXT: s_nop 1 176 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:72 ; 4-byte Folded Spill 177 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a99 ; Reload Reuse 178 ; GFX908-NEXT: s_nop 1 179 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:76 ; 4-byte Folded Spill 180 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a100 ; Reload Reuse 181 ; GFX908-NEXT: s_nop 1 182 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:80 ; 4-byte Folded Spill 183 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a101 ; Reload Reuse 184 ; GFX908-NEXT: s_nop 1 185 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:84 ; 4-byte Folded Spill 186 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a102 ; Reload Reuse 187 ; GFX908-NEXT: s_nop 1 188 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:88 ; 4-byte Folded Spill 189 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a103 ; Reload Reuse 190 ; GFX908-NEXT: s_nop 1 191 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:92 ; 4-byte Folded Spill 192 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a104 ; Reload Reuse 193 ; GFX908-NEXT: s_nop 1 194 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:96 ; 4-byte Folded Spill 195 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a105 ; Reload Reuse 196 ; GFX908-NEXT: s_nop 1 197 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:100 ; 4-byte Folded Spill 198 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a106 ; Reload Reuse 199 ; GFX908-NEXT: s_nop 1 200 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:104 ; 4-byte Folded Spill 201 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a107 ; Reload Reuse 202 ; GFX908-NEXT: s_nop 1 203 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:108 ; 4-byte Folded Spill 204 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a108 ; Reload Reuse 205 ; GFX908-NEXT: s_nop 1 206 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:112 ; 4-byte Folded Spill 207 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a109 ; Reload Reuse 208 ; GFX908-NEXT: s_nop 1 209 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:116 ; 4-byte Folded Spill 210 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a110 ; Reload Reuse 211 ; GFX908-NEXT: s_nop 1 212 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:120 ; 4-byte Folded Spill 213 ; GFX908-NEXT: v_accvgpr_read_b32 v63, a111 ; Reload Reuse 214 ; GFX908-NEXT: s_nop 1 215 ; GFX908-NEXT: buffer_store_dword v63, off, s[0:3], s32 offset:124 ; 4-byte Folded Spill 216 ; GFX908-NEXT: s_nop 0 217 ; 218 ; GFX90A-LABEL: test_spill: 219 ; GFX90A: ; %bb.0: 220 ; GFX90A-NEXT: ; implicit-def: $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111 221 ; GFX90A-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 222 ; GFX90A-NEXT: v_accvgpr_mov_b32 a64, a96 223 ; GFX90A-NEXT: v_accvgpr_mov_b32 a65, a97 224 ; GFX90A-NEXT: v_accvgpr_mov_b32 a66, a98 225 ; GFX90A-NEXT: v_accvgpr_mov_b32 a67, a99 226 ; GFX90A-NEXT: v_accvgpr_mov_b32 a68, a100 227 ; GFX90A-NEXT: v_accvgpr_mov_b32 a69, a101 228 ; GFX90A-NEXT: v_accvgpr_mov_b32 a70, a102 229 ; GFX90A-NEXT: v_accvgpr_mov_b32 a71, a103 230 ; GFX90A-NEXT: v_accvgpr_mov_b32 a72, a104 231 ; GFX90A-NEXT: v_accvgpr_mov_b32 a73, a105 232 ; GFX90A-NEXT: v_accvgpr_mov_b32 a74, a106 233 ; GFX90A-NEXT: v_accvgpr_mov_b32 a75, a107 234 ; GFX90A-NEXT: v_accvgpr_mov_b32 a76, a108 235 ; GFX90A-NEXT: v_accvgpr_mov_b32 a77, a109 236 ; GFX90A-NEXT: v_accvgpr_mov_b32 a78, a110 237 ; GFX90A-NEXT: v_accvgpr_mov_b32 a79, a111 238 ; GFX90A-NEXT: v_accvgpr_read_b32 v77, a96 ; Reload Reuse 239 ; GFX90A-NEXT: ; implicit-def: $vgpr0 240 ; GFX90A-NEXT: ; implicit-def: $vgpr1 241 ; GFX90A-NEXT: ; implicit-def: $vgpr2 242 ; GFX90A-NEXT: ; implicit-def: $vgpr3 243 ; GFX90A-NEXT: ; implicit-def: $vgpr4 244 ; GFX90A-NEXT: ; implicit-def: $vgpr5 245 ; GFX90A-NEXT: ; implicit-def: $vgpr6 246 ; GFX90A-NEXT: ; implicit-def: $vgpr7 247 ; GFX90A-NEXT: ; implicit-def: $vgpr8 248 ; GFX90A-NEXT: ; implicit-def: $vgpr9 249 ; GFX90A-NEXT: ; implicit-def: $vgpr10 250 ; GFX90A-NEXT: ; implicit-def: $vgpr11 251 ; GFX90A-NEXT: ; implicit-def: $vgpr12 252 ; GFX90A-NEXT: ; implicit-def: $vgpr13 253 ; GFX90A-NEXT: ; implicit-def: $vgpr14 254 ; GFX90A-NEXT: ; implicit-def: $vgpr15 255 ; GFX90A-NEXT: ; implicit-def: $vgpr16 256 ; GFX90A-NEXT: ; implicit-def: $vgpr17 257 ; GFX90A-NEXT: ; implicit-def: $vgpr18 258 ; GFX90A-NEXT: ; implicit-def: $vgpr19 259 ; GFX90A-NEXT: ; implicit-def: $vgpr20 260 ; GFX90A-NEXT: ; implicit-def: $vgpr21 261 ; GFX90A-NEXT: ; implicit-def: $vgpr22 262 ; GFX90A-NEXT: ; implicit-def: $vgpr23 263 ; GFX90A-NEXT: ; implicit-def: $vgpr24 264 ; GFX90A-NEXT: ; implicit-def: $vgpr25 265 ; GFX90A-NEXT: ; implicit-def: $vgpr26 266 ; GFX90A-NEXT: ; implicit-def: $vgpr27 267 ; GFX90A-NEXT: ; implicit-def: $vgpr28 268 ; GFX90A-NEXT: ; implicit-def: $vgpr29 269 ; GFX90A-NEXT: ; implicit-def: $vgpr30 270 ; GFX90A-NEXT: ; implicit-def: $vgpr31 271 ; GFX90A-NEXT: ; implicit-def: $vgpr32 272 ; GFX90A-NEXT: ; implicit-def: $vgpr33 273 ; GFX90A-NEXT: ; implicit-def: $vgpr34 274 ; GFX90A-NEXT: ; implicit-def: $vgpr35 275 ; GFX90A-NEXT: ; implicit-def: $vgpr36 276 ; GFX90A-NEXT: ; implicit-def: $vgpr37 277 ; GFX90A-NEXT: ; implicit-def: $vgpr38 278 ; GFX90A-NEXT: ; implicit-def: $vgpr39 279 ; GFX90A-NEXT: ; implicit-def: $vgpr40 280 ; GFX90A-NEXT: ; implicit-def: $vgpr41 281 ; GFX90A-NEXT: ; implicit-def: $vgpr42 282 ; GFX90A-NEXT: ; implicit-def: $vgpr43 283 ; GFX90A-NEXT: ; implicit-def: $vgpr44 284 ; GFX90A-NEXT: ; implicit-def: $vgpr45 285 ; GFX90A-NEXT: ; implicit-def: $vgpr46 286 ; GFX90A-NEXT: ; implicit-def: $vgpr47 287 ; GFX90A-NEXT: ; implicit-def: $vgpr48 288 ; GFX90A-NEXT: ; implicit-def: $vgpr49 289 ; GFX90A-NEXT: ; implicit-def: $vgpr50 290 ; GFX90A-NEXT: ; implicit-def: $vgpr51 291 ; GFX90A-NEXT: ; implicit-def: $vgpr52 292 ; GFX90A-NEXT: ; implicit-def: $vgpr53 293 ; GFX90A-NEXT: ; implicit-def: $vgpr54 294 ; GFX90A-NEXT: ; implicit-def: $vgpr55 295 ; GFX90A-NEXT: ; implicit-def: $vgpr56 296 ; GFX90A-NEXT: ; implicit-def: $vgpr57 297 ; GFX90A-NEXT: ; implicit-def: $vgpr58 298 ; GFX90A-NEXT: ; implicit-def: $vgpr59 299 ; GFX90A-NEXT: ; implicit-def: $vgpr60 300 ; GFX90A-NEXT: ; implicit-def: $vgpr61 301 ; GFX90A-NEXT: v_accvgpr_read_b32 v76, a97 ; Reload Reuse 302 ; GFX90A-NEXT: v_accvgpr_read_b32 v75, a98 ; Reload Reuse 303 ; GFX90A-NEXT: v_accvgpr_read_b32 v74, a99 ; Reload Reuse 304 ; GFX90A-NEXT: v_accvgpr_read_b32 v73, a100 ; Reload Reuse 305 ; GFX90A-NEXT: v_accvgpr_read_b32 v72, a101 ; Reload Reuse 306 ; GFX90A-NEXT: v_accvgpr_read_b32 v71, a102 ; Reload Reuse 307 ; GFX90A-NEXT: v_accvgpr_read_b32 v70, a103 ; Reload Reuse 308 ; GFX90A-NEXT: v_accvgpr_read_b32 v69, a104 ; Reload Reuse 309 ; GFX90A-NEXT: v_accvgpr_read_b32 v68, a105 ; Reload Reuse 310 ; GFX90A-NEXT: v_accvgpr_read_b32 v67, a106 ; Reload Reuse 311 ; GFX90A-NEXT: v_accvgpr_read_b32 v66, a107 ; Reload Reuse 312 ; GFX90A-NEXT: v_accvgpr_read_b32 v65, a108 ; Reload Reuse 313 ; GFX90A-NEXT: v_accvgpr_read_b32 v64, a109 ; Reload Reuse 314 ; GFX90A-NEXT: v_accvgpr_read_b32 v63, a110 ; Reload Reuse 315 ; GFX90A-NEXT: v_accvgpr_read_b32 v62, a111 ; Reload Reuse 316 ; GFX90A-NEXT: v_accvgpr_read_b32 v93, a96 ; Reload Reuse 317 ; GFX90A-NEXT: v_accvgpr_read_b32 v92, a97 ; Reload Reuse 318 ; GFX90A-NEXT: v_accvgpr_read_b32 v91, a98 ; Reload Reuse 319 ; GFX90A-NEXT: v_accvgpr_read_b32 v90, a99 ; Reload Reuse 320 ; GFX90A-NEXT: v_accvgpr_read_b32 v89, a100 ; Reload Reuse 321 ; GFX90A-NEXT: v_accvgpr_read_b32 v88, a101 ; Reload Reuse 322 ; GFX90A-NEXT: v_accvgpr_read_b32 v87, a102 ; Reload Reuse 323 ; GFX90A-NEXT: v_accvgpr_read_b32 v86, a103 ; Reload Reuse 324 ; GFX90A-NEXT: v_accvgpr_read_b32 v85, a104 ; Reload Reuse 325 ; GFX90A-NEXT: v_accvgpr_read_b32 v84, a105 ; Reload Reuse 326 ; GFX90A-NEXT: v_accvgpr_read_b32 v83, a106 ; Reload Reuse 327 ; GFX90A-NEXT: v_accvgpr_read_b32 v82, a107 ; Reload Reuse 328 ; GFX90A-NEXT: v_accvgpr_read_b32 v81, a108 ; Reload Reuse 329 ; GFX90A-NEXT: v_accvgpr_read_b32 v80, a109 ; Reload Reuse 330 ; GFX90A-NEXT: v_accvgpr_read_b32 v79, a110 ; Reload Reuse 331 ; GFX90A-NEXT: v_accvgpr_read_b32 v78, a111 ; Reload Reuse 332 ; GFX90A-NEXT: s_nop 0 333 ret void 334 } 335 336 attributes #0 = { "amdgpu-waves-per-eu"="4,4" "amdgpu-no-agpr" } 337 338... 339--- 340name: test_spill 341tracksRegLiveness: true 342stack: 343 - { id: 0, name: '', type: spill-slot, offset: 0, size: 64, alignment: 4 } 344 - { id: 1, name: '', type: spill-slot, offset: 0, size: 64, alignment: 4 } 345 346machineFunctionInfo: 347 scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3 348 stackPtrOffsetReg: '$sgpr32' 349 hasSpilledVGPRs: true 350body: | 351 bb.0: 352 $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111 = IMPLICIT_DEF 353 $vgpr0 = IMPLICIT_DEF 354 $vgpr1 = IMPLICIT_DEF 355 $vgpr2 = IMPLICIT_DEF 356 $vgpr3 = IMPLICIT_DEF 357 $vgpr4 = IMPLICIT_DEF 358 $vgpr5 = IMPLICIT_DEF 359 $vgpr6 = IMPLICIT_DEF 360 $vgpr7 = IMPLICIT_DEF 361 $vgpr8 = IMPLICIT_DEF 362 $vgpr9 = IMPLICIT_DEF 363 $vgpr10 = IMPLICIT_DEF 364 $vgpr11 = IMPLICIT_DEF 365 $vgpr12 = IMPLICIT_DEF 366 $vgpr13 = IMPLICIT_DEF 367 $vgpr14 = IMPLICIT_DEF 368 $vgpr15 = IMPLICIT_DEF 369 $vgpr16 = IMPLICIT_DEF 370 $vgpr17 = IMPLICIT_DEF 371 $vgpr18 = IMPLICIT_DEF 372 $vgpr19 = IMPLICIT_DEF 373 $vgpr20 = IMPLICIT_DEF 374 $vgpr21 = IMPLICIT_DEF 375 $vgpr22 = IMPLICIT_DEF 376 $vgpr23 = IMPLICIT_DEF 377 $vgpr24 = IMPLICIT_DEF 378 $vgpr25 = IMPLICIT_DEF 379 $vgpr26 = IMPLICIT_DEF 380 $vgpr27 = IMPLICIT_DEF 381 $vgpr28 = IMPLICIT_DEF 382 $vgpr29 = IMPLICIT_DEF 383 $vgpr30 = IMPLICIT_DEF 384 $vgpr31 = IMPLICIT_DEF 385 $vgpr32 = IMPLICIT_DEF 386 $vgpr33 = IMPLICIT_DEF 387 $vgpr34 = IMPLICIT_DEF 388 $vgpr35 = IMPLICIT_DEF 389 $vgpr36 = IMPLICIT_DEF 390 $vgpr37 = IMPLICIT_DEF 391 $vgpr38 = IMPLICIT_DEF 392 $vgpr39 = IMPLICIT_DEF 393 $vgpr40 = IMPLICIT_DEF 394 $vgpr41 = IMPLICIT_DEF 395 $vgpr42 = IMPLICIT_DEF 396 $vgpr43 = IMPLICIT_DEF 397 $vgpr44 = IMPLICIT_DEF 398 $vgpr45 = IMPLICIT_DEF 399 $vgpr46 = IMPLICIT_DEF 400 $vgpr47 = IMPLICIT_DEF 401 $vgpr48 = IMPLICIT_DEF 402 $vgpr49 = IMPLICIT_DEF 403 $vgpr50 = IMPLICIT_DEF 404 $vgpr51 = IMPLICIT_DEF 405 $vgpr52 = IMPLICIT_DEF 406 $vgpr53 = IMPLICIT_DEF 407 $vgpr54 = IMPLICIT_DEF 408 $vgpr55 = IMPLICIT_DEF 409 $vgpr56 = IMPLICIT_DEF 410 $vgpr57 = IMPLICIT_DEF 411 $vgpr58 = IMPLICIT_DEF 412 $vgpr59 = IMPLICIT_DEF 413 $vgpr60 = IMPLICIT_DEF 414 $vgpr61 = IMPLICIT_DEF 415 416 $agpr64_agpr65_agpr66_agpr67_agpr68_agpr69_agpr70_agpr71_agpr72_agpr73_agpr74_agpr75_agpr76_agpr77_agpr78_agpr79 = COPY $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111, implicit $exec 417 SI_SPILL_AV512_SAVE killed $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111, %stack.0, $sgpr32, 0, implicit $exec :: (store (s512) into %stack.0, align 4, addrspace 5) 418 SI_SPILL_AV512_SAVE $agpr96_agpr97_agpr98_agpr99_agpr100_agpr101_agpr102_agpr103_agpr104_agpr105_agpr106_agpr107_agpr108_agpr109_agpr110_agpr111, %stack.1, $sgpr32, 0, implicit $exec :: (store (s512) into %stack.0, align 4, addrspace 5) 419 S_NOP 0, implicit $vgpr0, implicit $vgpr1, implicit $vgpr2, implicit $vgpr3, implicit $vgpr4, implicit $vgpr5, implicit $vgpr6, implicit $vgpr7, implicit $vgpr8, implicit $vgpr9, implicit $vgpr10, implicit $vgpr11, implicit $vgpr12, implicit $vgpr13, implicit $vgpr14, implicit $vgpr15, implicit $vgpr16, implicit $vgpr17, implicit $vgpr18, implicit $vgpr19, implicit $vgpr20, implicit $vgpr21, implicit $vgpr22, implicit $vgpr23, implicit $vgpr24, implicit $vgpr25, implicit $vgpr26, implicit $vgpr27, implicit $vgpr28, implicit $vgpr29, implicit $vgpr30, implicit $vgpr31, implicit $vgpr32, implicit $vgpr33, implicit $vgpr34, implicit $vgpr35, implicit $vgpr36, implicit $vgpr37, implicit $vgpr38, implicit $vgpr39, implicit $vgpr40, implicit $vgpr41, implicit $vgpr42, implicit $vgpr43, implicit $vgpr44, implicit $vgpr45, implicit $vgpr46, implicit $vgpr47, implicit $vgpr48, implicit $vgpr49, implicit $vgpr50, implicit $vgpr51, implicit $vgpr52, implicit $vgpr53, implicit $vgpr54, implicit $vgpr55, implicit $vgpr56, implicit $vgpr57, implicit $vgpr58, implicit $vgpr59, implicit $vgpr60, implicit $vgpr61 420... 421