Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / copy-vgpr-clobber-spill-vgpr.mir
blob895185cb41a39747e6bab9c5627fefe250fbaa1c
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
5 --- |
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   }
336   attributes #0 = { "amdgpu-waves-per-eu"="4,4" }
340 name:            test_spill
341 tracksRegLiveness: true
342 stack:
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 }
346 machineFunctionInfo:
347   scratchRSrcReg:  $sgpr0_sgpr1_sgpr2_sgpr3
348   stackPtrOffsetReg: '$sgpr32'
349   hasSpilledVGPRs: true
350 body:             |
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
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