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
7 define amdgpu_kernel void @test_spill() #0 {
8 ; GFX908-LABEL: test_spill:
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
218 ; GFX90A-LABEL: test_spill:
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
336 attributes #0 = { "amdgpu-waves-per-eu"="4,4" }
341 tracksRegLiveness: true
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 }
347 scratchRSrcReg: $sgpr0_sgpr1_sgpr2_sgpr3
348 stackPtrOffsetReg: '$sgpr32'
349 hasSpilledVGPRs: true
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
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