Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / AMDGPU / vgpr-agpr-limit-gfx90a.ll
blob36d3ad4316d11eaef2a3b675b9ac3cd16b701bfb
1 ; -enable-misched=false makes the register usage more predictable
2 ; -regalloc=fast just makes the test run faster
3 ; RUN: llc -march=amdgcn -mcpu=gfx90a -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
5 define internal void @use256vgprs() {
6   %v0 = call i32 asm sideeffect "; def $0", "=v"()
7   %v1 = call i32 asm sideeffect "; def $0", "=v"()
8   %v2 = call i32 asm sideeffect "; def $0", "=v"()
9   %v3 = call i32 asm sideeffect "; def $0", "=v"()
10   %v4 = call i32 asm sideeffect "; def $0", "=v"()
11   %v5 = call i32 asm sideeffect "; def $0", "=v"()
12   %v6 = call i32 asm sideeffect "; def $0", "=v"()
13   %v7 = call i32 asm sideeffect "; def $0", "=v"()
14   %v8 = call i32 asm sideeffect "; def $0", "=v"()
15   %v9 = call i32 asm sideeffect "; def $0", "=v"()
16   %v10 = call i32 asm sideeffect "; def $0", "=v"()
17   %v11 = call i32 asm sideeffect "; def $0", "=v"()
18   %v12 = call i32 asm sideeffect "; def $0", "=v"()
19   %v13 = call i32 asm sideeffect "; def $0", "=v"()
20   %v14 = call i32 asm sideeffect "; def $0", "=v"()
21   %v15 = call i32 asm sideeffect "; def $0", "=v"()
22   %v16 = call i32 asm sideeffect "; def $0", "=v"()
23   %v17 = call i32 asm sideeffect "; def $0", "=v"()
24   %v18 = call i32 asm sideeffect "; def $0", "=v"()
25   %v19 = call i32 asm sideeffect "; def $0", "=v"()
26   %v20 = call i32 asm sideeffect "; def $0", "=v"()
27   %v21 = call i32 asm sideeffect "; def $0", "=v"()
28   %v22 = call i32 asm sideeffect "; def $0", "=v"()
29   %v23 = call i32 asm sideeffect "; def $0", "=v"()
30   %v24 = call i32 asm sideeffect "; def $0", "=v"()
31   %v25 = call i32 asm sideeffect "; def $0", "=v"()
32   %v26 = call i32 asm sideeffect "; def $0", "=v"()
33   %v27 = call i32 asm sideeffect "; def $0", "=v"()
34   %v28 = call i32 asm sideeffect "; def $0", "=v"()
35   %v29 = call i32 asm sideeffect "; def $0", "=v"()
36   %v30 = call i32 asm sideeffect "; def $0", "=v"()
37   %v31 = call i32 asm sideeffect "; def $0", "=v"()
38   %v32 = call i32 asm sideeffect "; def $0", "=v"()
39   %v33 = call i32 asm sideeffect "; def $0", "=v"()
40   %v34 = call i32 asm sideeffect "; def $0", "=v"()
41   %v35 = call i32 asm sideeffect "; def $0", "=v"()
42   %v36 = call i32 asm sideeffect "; def $0", "=v"()
43   %v37 = call i32 asm sideeffect "; def $0", "=v"()
44   %v38 = call i32 asm sideeffect "; def $0", "=v"()
45   %v39 = call i32 asm sideeffect "; def $0", "=v"()
46   %v40 = call i32 asm sideeffect "; def $0", "=v"()
47   %v41 = call i32 asm sideeffect "; def $0", "=v"()
48   %v42 = call i32 asm sideeffect "; def $0", "=v"()
49   %v43 = call i32 asm sideeffect "; def $0", "=v"()
50   %v44 = call i32 asm sideeffect "; def $0", "=v"()
51   %v45 = call i32 asm sideeffect "; def $0", "=v"()
52   %v46 = call i32 asm sideeffect "; def $0", "=v"()
53   %v47 = call i32 asm sideeffect "; def $0", "=v"()
54   %v48 = call i32 asm sideeffect "; def $0", "=v"()
55   %v49 = call i32 asm sideeffect "; def $0", "=v"()
56   %v50 = call i32 asm sideeffect "; def $0", "=v"()
57   %v51 = call i32 asm sideeffect "; def $0", "=v"()
58   %v52 = call i32 asm sideeffect "; def $0", "=v"()
59   %v53 = call i32 asm sideeffect "; def $0", "=v"()
60   %v54 = call i32 asm sideeffect "; def $0", "=v"()
61   %v55 = call i32 asm sideeffect "; def $0", "=v"()
62   %v56 = call i32 asm sideeffect "; def $0", "=v"()
63   %v57 = call i32 asm sideeffect "; def $0", "=v"()
64   %v58 = call i32 asm sideeffect "; def $0", "=v"()
65   %v59 = call i32 asm sideeffect "; def $0", "=v"()
66   %v60 = call i32 asm sideeffect "; def $0", "=v"()
67   %v61 = call i32 asm sideeffect "; def $0", "=v"()
68   %v62 = call i32 asm sideeffect "; def $0", "=v"()
69   %v63 = call i32 asm sideeffect "; def $0", "=v"()
70   %v64 = call i32 asm sideeffect "; def $0", "=v"()
71   %v65 = call i32 asm sideeffect "; def $0", "=v"()
72   %v66 = call i32 asm sideeffect "; def $0", "=v"()
73   %v67 = call i32 asm sideeffect "; def $0", "=v"()
74   %v68 = call i32 asm sideeffect "; def $0", "=v"()
75   %v69 = call i32 asm sideeffect "; def $0", "=v"()
76   %v70 = call i32 asm sideeffect "; def $0", "=v"()
77   %v71 = call i32 asm sideeffect "; def $0", "=v"()
78   %v72 = call i32 asm sideeffect "; def $0", "=v"()
79   %v73 = call i32 asm sideeffect "; def $0", "=v"()
80   %v74 = call i32 asm sideeffect "; def $0", "=v"()
81   %v75 = call i32 asm sideeffect "; def $0", "=v"()
82   %v76 = call i32 asm sideeffect "; def $0", "=v"()
83   %v77 = call i32 asm sideeffect "; def $0", "=v"()
84   %v78 = call i32 asm sideeffect "; def $0", "=v"()
85   %v79 = call i32 asm sideeffect "; def $0", "=v"()
86   %v80 = call i32 asm sideeffect "; def $0", "=v"()
87   %v81 = call i32 asm sideeffect "; def $0", "=v"()
88   %v82 = call i32 asm sideeffect "; def $0", "=v"()
89   %v83 = call i32 asm sideeffect "; def $0", "=v"()
90   %v84 = call i32 asm sideeffect "; def $0", "=v"()
91   %v85 = call i32 asm sideeffect "; def $0", "=v"()
92   %v86 = call i32 asm sideeffect "; def $0", "=v"()
93   %v87 = call i32 asm sideeffect "; def $0", "=v"()
94   %v88 = call i32 asm sideeffect "; def $0", "=v"()
95   %v89 = call i32 asm sideeffect "; def $0", "=v"()
96   %v90 = call i32 asm sideeffect "; def $0", "=v"()
97   %v91 = call i32 asm sideeffect "; def $0", "=v"()
98   %v92 = call i32 asm sideeffect "; def $0", "=v"()
99   %v93 = call i32 asm sideeffect "; def $0", "=v"()
100   %v94 = call i32 asm sideeffect "; def $0", "=v"()
101   %v95 = call i32 asm sideeffect "; def $0", "=v"()
102   %v96 = call i32 asm sideeffect "; def $0", "=v"()
103   %v97 = call i32 asm sideeffect "; def $0", "=v"()
104   %v98 = call i32 asm sideeffect "; def $0", "=v"()
105   %v99 = call i32 asm sideeffect "; def $0", "=v"()
106   %v100 = call i32 asm sideeffect "; def $0", "=v"()
107   %v101 = call i32 asm sideeffect "; def $0", "=v"()
108   %v102 = call i32 asm sideeffect "; def $0", "=v"()
109   %v103 = call i32 asm sideeffect "; def $0", "=v"()
110   %v104 = call i32 asm sideeffect "; def $0", "=v"()
111   %v105 = call i32 asm sideeffect "; def $0", "=v"()
112   %v106 = call i32 asm sideeffect "; def $0", "=v"()
113   %v107 = call i32 asm sideeffect "; def $0", "=v"()
114   %v108 = call i32 asm sideeffect "; def $0", "=v"()
115   %v109 = call i32 asm sideeffect "; def $0", "=v"()
116   %v110 = call i32 asm sideeffect "; def $0", "=v"()
117   %v111 = call i32 asm sideeffect "; def $0", "=v"()
118   %v112 = call i32 asm sideeffect "; def $0", "=v"()
119   %v113 = call i32 asm sideeffect "; def $0", "=v"()
120   %v114 = call i32 asm sideeffect "; def $0", "=v"()
121   %v115 = call i32 asm sideeffect "; def $0", "=v"()
122   %v116 = call i32 asm sideeffect "; def $0", "=v"()
123   %v117 = call i32 asm sideeffect "; def $0", "=v"()
124   %v118 = call i32 asm sideeffect "; def $0", "=v"()
125   %v119 = call i32 asm sideeffect "; def $0", "=v"()
126   %v120 = call i32 asm sideeffect "; def $0", "=v"()
127   %v121 = call i32 asm sideeffect "; def $0", "=v"()
128   %v122 = call i32 asm sideeffect "; def $0", "=v"()
129   %v123 = call i32 asm sideeffect "; def $0", "=v"()
130   %v124 = call i32 asm sideeffect "; def $0", "=v"()
131   %v125 = call i32 asm sideeffect "; def $0", "=v"()
132   %v126 = call i32 asm sideeffect "; def $0", "=v"()
133   %v127 = call i32 asm sideeffect "; def $0", "=v"()
134   %v128 = call i32 asm sideeffect "; def $0", "=v"()
135   %v129 = call i32 asm sideeffect "; def $0", "=v"()
136   %v130 = call i32 asm sideeffect "; def $0", "=v"()
137   %v131 = call i32 asm sideeffect "; def $0", "=v"()
138   %v132 = call i32 asm sideeffect "; def $0", "=v"()
139   %v133 = call i32 asm sideeffect "; def $0", "=v"()
140   %v134 = call i32 asm sideeffect "; def $0", "=v"()
141   %v135 = call i32 asm sideeffect "; def $0", "=v"()
142   %v136 = call i32 asm sideeffect "; def $0", "=v"()
143   %v137 = call i32 asm sideeffect "; def $0", "=v"()
144   %v138 = call i32 asm sideeffect "; def $0", "=v"()
145   %v139 = call i32 asm sideeffect "; def $0", "=v"()
146   %v140 = call i32 asm sideeffect "; def $0", "=v"()
147   %v141 = call i32 asm sideeffect "; def $0", "=v"()
148   %v142 = call i32 asm sideeffect "; def $0", "=v"()
149   %v143 = call i32 asm sideeffect "; def $0", "=v"()
150   %v144 = call i32 asm sideeffect "; def $0", "=v"()
151   %v145 = call i32 asm sideeffect "; def $0", "=v"()
152   %v146 = call i32 asm sideeffect "; def $0", "=v"()
153   %v147 = call i32 asm sideeffect "; def $0", "=v"()
154   %v148 = call i32 asm sideeffect "; def $0", "=v"()
155   %v149 = call i32 asm sideeffect "; def $0", "=v"()
156   %v150 = call i32 asm sideeffect "; def $0", "=v"()
157   %v151 = call i32 asm sideeffect "; def $0", "=v"()
158   %v152 = call i32 asm sideeffect "; def $0", "=v"()
159   %v153 = call i32 asm sideeffect "; def $0", "=v"()
160   %v154 = call i32 asm sideeffect "; def $0", "=v"()
161   %v155 = call i32 asm sideeffect "; def $0", "=v"()
162   %v156 = call i32 asm sideeffect "; def $0", "=v"()
163   %v157 = call i32 asm sideeffect "; def $0", "=v"()
164   %v158 = call i32 asm sideeffect "; def $0", "=v"()
165   %v159 = call i32 asm sideeffect "; def $0", "=v"()
166   %v160 = call i32 asm sideeffect "; def $0", "=v"()
167   %v161 = call i32 asm sideeffect "; def $0", "=v"()
168   %v162 = call i32 asm sideeffect "; def $0", "=v"()
169   %v163 = call i32 asm sideeffect "; def $0", "=v"()
170   %v164 = call i32 asm sideeffect "; def $0", "=v"()
171   %v165 = call i32 asm sideeffect "; def $0", "=v"()
172   %v166 = call i32 asm sideeffect "; def $0", "=v"()
173   %v167 = call i32 asm sideeffect "; def $0", "=v"()
174   %v168 = call i32 asm sideeffect "; def $0", "=v"()
175   %v169 = call i32 asm sideeffect "; def $0", "=v"()
176   %v170 = call i32 asm sideeffect "; def $0", "=v"()
177   %v171 = call i32 asm sideeffect "; def $0", "=v"()
178   %v172 = call i32 asm sideeffect "; def $0", "=v"()
179   %v173 = call i32 asm sideeffect "; def $0", "=v"()
180   %v174 = call i32 asm sideeffect "; def $0", "=v"()
181   %v175 = call i32 asm sideeffect "; def $0", "=v"()
182   %v176 = call i32 asm sideeffect "; def $0", "=v"()
183   %v177 = call i32 asm sideeffect "; def $0", "=v"()
184   %v178 = call i32 asm sideeffect "; def $0", "=v"()
185   %v179 = call i32 asm sideeffect "; def $0", "=v"()
186   %v180 = call i32 asm sideeffect "; def $0", "=v"()
187   %v181 = call i32 asm sideeffect "; def $0", "=v"()
188   %v182 = call i32 asm sideeffect "; def $0", "=v"()
189   %v183 = call i32 asm sideeffect "; def $0", "=v"()
190   %v184 = call i32 asm sideeffect "; def $0", "=v"()
191   %v185 = call i32 asm sideeffect "; def $0", "=v"()
192   %v186 = call i32 asm sideeffect "; def $0", "=v"()
193   %v187 = call i32 asm sideeffect "; def $0", "=v"()
194   %v188 = call i32 asm sideeffect "; def $0", "=v"()
195   %v189 = call i32 asm sideeffect "; def $0", "=v"()
196   %v190 = call i32 asm sideeffect "; def $0", "=v"()
197   %v191 = call i32 asm sideeffect "; def $0", "=v"()
198   %v192 = call i32 asm sideeffect "; def $0", "=v"()
199   %v193 = call i32 asm sideeffect "; def $0", "=v"()
200   %v194 = call i32 asm sideeffect "; def $0", "=v"()
201   %v195 = call i32 asm sideeffect "; def $0", "=v"()
202   %v196 = call i32 asm sideeffect "; def $0", "=v"()
203   %v197 = call i32 asm sideeffect "; def $0", "=v"()
204   %v198 = call i32 asm sideeffect "; def $0", "=v"()
205   %v199 = call i32 asm sideeffect "; def $0", "=v"()
206   %v200 = call i32 asm sideeffect "; def $0", "=v"()
207   %v201 = call i32 asm sideeffect "; def $0", "=v"()
208   %v202 = call i32 asm sideeffect "; def $0", "=v"()
209   %v203 = call i32 asm sideeffect "; def $0", "=v"()
210   %v204 = call i32 asm sideeffect "; def $0", "=v"()
211   %v205 = call i32 asm sideeffect "; def $0", "=v"()
212   %v206 = call i32 asm sideeffect "; def $0", "=v"()
213   %v207 = call i32 asm sideeffect "; def $0", "=v"()
214   %v208 = call i32 asm sideeffect "; def $0", "=v"()
215   %v209 = call i32 asm sideeffect "; def $0", "=v"()
216   %v210 = call i32 asm sideeffect "; def $0", "=v"()
217   %v211 = call i32 asm sideeffect "; def $0", "=v"()
218   %v212 = call i32 asm sideeffect "; def $0", "=v"()
219   %v213 = call i32 asm sideeffect "; def $0", "=v"()
220   %v214 = call i32 asm sideeffect "; def $0", "=v"()
221   %v215 = call i32 asm sideeffect "; def $0", "=v"()
222   %v216 = call i32 asm sideeffect "; def $0", "=v"()
223   %v217 = call i32 asm sideeffect "; def $0", "=v"()
224   %v218 = call i32 asm sideeffect "; def $0", "=v"()
225   %v219 = call i32 asm sideeffect "; def $0", "=v"()
226   %v220 = call i32 asm sideeffect "; def $0", "=v"()
227   %v221 = call i32 asm sideeffect "; def $0", "=v"()
228   %v222 = call i32 asm sideeffect "; def $0", "=v"()
229   %v223 = call i32 asm sideeffect "; def $0", "=v"()
230   %v224 = call i32 asm sideeffect "; def $0", "=v"()
231   %v225 = call i32 asm sideeffect "; def $0", "=v"()
232   %v226 = call i32 asm sideeffect "; def $0", "=v"()
233   %v227 = call i32 asm sideeffect "; def $0", "=v"()
234   %v228 = call i32 asm sideeffect "; def $0", "=v"()
235   %v229 = call i32 asm sideeffect "; def $0", "=v"()
236   %v230 = call i32 asm sideeffect "; def $0", "=v"()
237   %v231 = call i32 asm sideeffect "; def $0", "=v"()
238   %v232 = call i32 asm sideeffect "; def $0", "=v"()
239   %v233 = call i32 asm sideeffect "; def $0", "=v"()
240   %v234 = call i32 asm sideeffect "; def $0", "=v"()
241   %v235 = call i32 asm sideeffect "; def $0", "=v"()
242   %v236 = call i32 asm sideeffect "; def $0", "=v"()
243   %v237 = call i32 asm sideeffect "; def $0", "=v"()
244   %v238 = call i32 asm sideeffect "; def $0", "=v"()
245   %v239 = call i32 asm sideeffect "; def $0", "=v"()
246   %v240 = call i32 asm sideeffect "; def $0", "=v"()
247   %v241 = call i32 asm sideeffect "; def $0", "=v"()
248   %v242 = call i32 asm sideeffect "; def $0", "=v"()
249   %v243 = call i32 asm sideeffect "; def $0", "=v"()
250   %v244 = call i32 asm sideeffect "; def $0", "=v"()
251   %v245 = call i32 asm sideeffect "; def $0", "=v"()
252   %v246 = call i32 asm sideeffect "; def $0", "=v"()
253   %v247 = call i32 asm sideeffect "; def $0", "=v"()
254   %v248 = call i32 asm sideeffect "; def $0", "=v"()
255   %v249 = call i32 asm sideeffect "; def $0", "=v"()
256   %v250 = call i32 asm sideeffect "; def $0", "=v"()
257   %v251 = call i32 asm sideeffect "; def $0", "=v"()
258   %v252 = call i32 asm sideeffect "; def $0", "=v"()
259   %v253 = call i32 asm sideeffect "; def $0", "=v"()
260   %v254 = call i32 asm sideeffect "; def $0", "=v"()
261   %v255 = call i32 asm sideeffect "; def $0", "=v"()
262   call void asm sideeffect "; use $0", "v"(i32 %v0)
263   call void asm sideeffect "; use $0", "v"(i32 %v1)
264   call void asm sideeffect "; use $0", "v"(i32 %v2)
265   call void asm sideeffect "; use $0", "v"(i32 %v3)
266   call void asm sideeffect "; use $0", "v"(i32 %v4)
267   call void asm sideeffect "; use $0", "v"(i32 %v5)
268   call void asm sideeffect "; use $0", "v"(i32 %v6)
269   call void asm sideeffect "; use $0", "v"(i32 %v7)
270   call void asm sideeffect "; use $0", "v"(i32 %v8)
271   call void asm sideeffect "; use $0", "v"(i32 %v9)
272   call void asm sideeffect "; use $0", "v"(i32 %v10)
273   call void asm sideeffect "; use $0", "v"(i32 %v11)
274   call void asm sideeffect "; use $0", "v"(i32 %v12)
275   call void asm sideeffect "; use $0", "v"(i32 %v13)
276   call void asm sideeffect "; use $0", "v"(i32 %v14)
277   call void asm sideeffect "; use $0", "v"(i32 %v15)
278   call void asm sideeffect "; use $0", "v"(i32 %v16)
279   call void asm sideeffect "; use $0", "v"(i32 %v17)
280   call void asm sideeffect "; use $0", "v"(i32 %v18)
281   call void asm sideeffect "; use $0", "v"(i32 %v19)
282   call void asm sideeffect "; use $0", "v"(i32 %v20)
283   call void asm sideeffect "; use $0", "v"(i32 %v21)
284   call void asm sideeffect "; use $0", "v"(i32 %v22)
285   call void asm sideeffect "; use $0", "v"(i32 %v23)
286   call void asm sideeffect "; use $0", "v"(i32 %v24)
287   call void asm sideeffect "; use $0", "v"(i32 %v25)
288   call void asm sideeffect "; use $0", "v"(i32 %v26)
289   call void asm sideeffect "; use $0", "v"(i32 %v27)
290   call void asm sideeffect "; use $0", "v"(i32 %v28)
291   call void asm sideeffect "; use $0", "v"(i32 %v29)
292   call void asm sideeffect "; use $0", "v"(i32 %v30)
293   call void asm sideeffect "; use $0", "v"(i32 %v31)
294   call void asm sideeffect "; use $0", "v"(i32 %v32)
295   call void asm sideeffect "; use $0", "v"(i32 %v33)
296   call void asm sideeffect "; use $0", "v"(i32 %v34)
297   call void asm sideeffect "; use $0", "v"(i32 %v35)
298   call void asm sideeffect "; use $0", "v"(i32 %v36)
299   call void asm sideeffect "; use $0", "v"(i32 %v37)
300   call void asm sideeffect "; use $0", "v"(i32 %v38)
301   call void asm sideeffect "; use $0", "v"(i32 %v39)
302   call void asm sideeffect "; use $0", "v"(i32 %v40)
303   call void asm sideeffect "; use $0", "v"(i32 %v41)
304   call void asm sideeffect "; use $0", "v"(i32 %v42)
305   call void asm sideeffect "; use $0", "v"(i32 %v43)
306   call void asm sideeffect "; use $0", "v"(i32 %v44)
307   call void asm sideeffect "; use $0", "v"(i32 %v45)
308   call void asm sideeffect "; use $0", "v"(i32 %v46)
309   call void asm sideeffect "; use $0", "v"(i32 %v47)
310   call void asm sideeffect "; use $0", "v"(i32 %v48)
311   call void asm sideeffect "; use $0", "v"(i32 %v49)
312   call void asm sideeffect "; use $0", "v"(i32 %v50)
313   call void asm sideeffect "; use $0", "v"(i32 %v51)
314   call void asm sideeffect "; use $0", "v"(i32 %v52)
315   call void asm sideeffect "; use $0", "v"(i32 %v53)
316   call void asm sideeffect "; use $0", "v"(i32 %v54)
317   call void asm sideeffect "; use $0", "v"(i32 %v55)
318   call void asm sideeffect "; use $0", "v"(i32 %v56)
319   call void asm sideeffect "; use $0", "v"(i32 %v57)
320   call void asm sideeffect "; use $0", "v"(i32 %v58)
321   call void asm sideeffect "; use $0", "v"(i32 %v59)
322   call void asm sideeffect "; use $0", "v"(i32 %v60)
323   call void asm sideeffect "; use $0", "v"(i32 %v61)
324   call void asm sideeffect "; use $0", "v"(i32 %v62)
325   call void asm sideeffect "; use $0", "v"(i32 %v63)
326   call void asm sideeffect "; use $0", "v"(i32 %v64)
327   call void asm sideeffect "; use $0", "v"(i32 %v65)
328   call void asm sideeffect "; use $0", "v"(i32 %v66)
329   call void asm sideeffect "; use $0", "v"(i32 %v67)
330   call void asm sideeffect "; use $0", "v"(i32 %v68)
331   call void asm sideeffect "; use $0", "v"(i32 %v69)
332   call void asm sideeffect "; use $0", "v"(i32 %v70)
333   call void asm sideeffect "; use $0", "v"(i32 %v71)
334   call void asm sideeffect "; use $0", "v"(i32 %v72)
335   call void asm sideeffect "; use $0", "v"(i32 %v73)
336   call void asm sideeffect "; use $0", "v"(i32 %v74)
337   call void asm sideeffect "; use $0", "v"(i32 %v75)
338   call void asm sideeffect "; use $0", "v"(i32 %v76)
339   call void asm sideeffect "; use $0", "v"(i32 %v77)
340   call void asm sideeffect "; use $0", "v"(i32 %v78)
341   call void asm sideeffect "; use $0", "v"(i32 %v79)
342   call void asm sideeffect "; use $0", "v"(i32 %v80)
343   call void asm sideeffect "; use $0", "v"(i32 %v81)
344   call void asm sideeffect "; use $0", "v"(i32 %v82)
345   call void asm sideeffect "; use $0", "v"(i32 %v83)
346   call void asm sideeffect "; use $0", "v"(i32 %v84)
347   call void asm sideeffect "; use $0", "v"(i32 %v85)
348   call void asm sideeffect "; use $0", "v"(i32 %v86)
349   call void asm sideeffect "; use $0", "v"(i32 %v87)
350   call void asm sideeffect "; use $0", "v"(i32 %v88)
351   call void asm sideeffect "; use $0", "v"(i32 %v89)
352   call void asm sideeffect "; use $0", "v"(i32 %v90)
353   call void asm sideeffect "; use $0", "v"(i32 %v91)
354   call void asm sideeffect "; use $0", "v"(i32 %v92)
355   call void asm sideeffect "; use $0", "v"(i32 %v93)
356   call void asm sideeffect "; use $0", "v"(i32 %v94)
357   call void asm sideeffect "; use $0", "v"(i32 %v95)
358   call void asm sideeffect "; use $0", "v"(i32 %v96)
359   call void asm sideeffect "; use $0", "v"(i32 %v97)
360   call void asm sideeffect "; use $0", "v"(i32 %v98)
361   call void asm sideeffect "; use $0", "v"(i32 %v99)
362   call void asm sideeffect "; use $0", "v"(i32 %v100)
363   call void asm sideeffect "; use $0", "v"(i32 %v101)
364   call void asm sideeffect "; use $0", "v"(i32 %v102)
365   call void asm sideeffect "; use $0", "v"(i32 %v103)
366   call void asm sideeffect "; use $0", "v"(i32 %v104)
367   call void asm sideeffect "; use $0", "v"(i32 %v105)
368   call void asm sideeffect "; use $0", "v"(i32 %v106)
369   call void asm sideeffect "; use $0", "v"(i32 %v107)
370   call void asm sideeffect "; use $0", "v"(i32 %v108)
371   call void asm sideeffect "; use $0", "v"(i32 %v109)
372   call void asm sideeffect "; use $0", "v"(i32 %v110)
373   call void asm sideeffect "; use $0", "v"(i32 %v111)
374   call void asm sideeffect "; use $0", "v"(i32 %v112)
375   call void asm sideeffect "; use $0", "v"(i32 %v113)
376   call void asm sideeffect "; use $0", "v"(i32 %v114)
377   call void asm sideeffect "; use $0", "v"(i32 %v115)
378   call void asm sideeffect "; use $0", "v"(i32 %v116)
379   call void asm sideeffect "; use $0", "v"(i32 %v117)
380   call void asm sideeffect "; use $0", "v"(i32 %v118)
381   call void asm sideeffect "; use $0", "v"(i32 %v119)
382   call void asm sideeffect "; use $0", "v"(i32 %v120)
383   call void asm sideeffect "; use $0", "v"(i32 %v121)
384   call void asm sideeffect "; use $0", "v"(i32 %v122)
385   call void asm sideeffect "; use $0", "v"(i32 %v123)
386   call void asm sideeffect "; use $0", "v"(i32 %v124)
387   call void asm sideeffect "; use $0", "v"(i32 %v125)
388   call void asm sideeffect "; use $0", "v"(i32 %v126)
389   call void asm sideeffect "; use $0", "v"(i32 %v127)
390   call void asm sideeffect "; use $0", "v"(i32 %v128)
391   call void asm sideeffect "; use $0", "v"(i32 %v129)
392   call void asm sideeffect "; use $0", "v"(i32 %v130)
393   call void asm sideeffect "; use $0", "v"(i32 %v131)
394   call void asm sideeffect "; use $0", "v"(i32 %v132)
395   call void asm sideeffect "; use $0", "v"(i32 %v133)
396   call void asm sideeffect "; use $0", "v"(i32 %v134)
397   call void asm sideeffect "; use $0", "v"(i32 %v135)
398   call void asm sideeffect "; use $0", "v"(i32 %v136)
399   call void asm sideeffect "; use $0", "v"(i32 %v137)
400   call void asm sideeffect "; use $0", "v"(i32 %v138)
401   call void asm sideeffect "; use $0", "v"(i32 %v139)
402   call void asm sideeffect "; use $0", "v"(i32 %v140)
403   call void asm sideeffect "; use $0", "v"(i32 %v141)
404   call void asm sideeffect "; use $0", "v"(i32 %v142)
405   call void asm sideeffect "; use $0", "v"(i32 %v143)
406   call void asm sideeffect "; use $0", "v"(i32 %v144)
407   call void asm sideeffect "; use $0", "v"(i32 %v145)
408   call void asm sideeffect "; use $0", "v"(i32 %v146)
409   call void asm sideeffect "; use $0", "v"(i32 %v147)
410   call void asm sideeffect "; use $0", "v"(i32 %v148)
411   call void asm sideeffect "; use $0", "v"(i32 %v149)
412   call void asm sideeffect "; use $0", "v"(i32 %v150)
413   call void asm sideeffect "; use $0", "v"(i32 %v151)
414   call void asm sideeffect "; use $0", "v"(i32 %v152)
415   call void asm sideeffect "; use $0", "v"(i32 %v153)
416   call void asm sideeffect "; use $0", "v"(i32 %v154)
417   call void asm sideeffect "; use $0", "v"(i32 %v155)
418   call void asm sideeffect "; use $0", "v"(i32 %v156)
419   call void asm sideeffect "; use $0", "v"(i32 %v157)
420   call void asm sideeffect "; use $0", "v"(i32 %v158)
421   call void asm sideeffect "; use $0", "v"(i32 %v159)
422   call void asm sideeffect "; use $0", "v"(i32 %v160)
423   call void asm sideeffect "; use $0", "v"(i32 %v161)
424   call void asm sideeffect "; use $0", "v"(i32 %v162)
425   call void asm sideeffect "; use $0", "v"(i32 %v163)
426   call void asm sideeffect "; use $0", "v"(i32 %v164)
427   call void asm sideeffect "; use $0", "v"(i32 %v165)
428   call void asm sideeffect "; use $0", "v"(i32 %v166)
429   call void asm sideeffect "; use $0", "v"(i32 %v167)
430   call void asm sideeffect "; use $0", "v"(i32 %v168)
431   call void asm sideeffect "; use $0", "v"(i32 %v169)
432   call void asm sideeffect "; use $0", "v"(i32 %v170)
433   call void asm sideeffect "; use $0", "v"(i32 %v171)
434   call void asm sideeffect "; use $0", "v"(i32 %v172)
435   call void asm sideeffect "; use $0", "v"(i32 %v173)
436   call void asm sideeffect "; use $0", "v"(i32 %v174)
437   call void asm sideeffect "; use $0", "v"(i32 %v175)
438   call void asm sideeffect "; use $0", "v"(i32 %v176)
439   call void asm sideeffect "; use $0", "v"(i32 %v177)
440   call void asm sideeffect "; use $0", "v"(i32 %v178)
441   call void asm sideeffect "; use $0", "v"(i32 %v179)
442   call void asm sideeffect "; use $0", "v"(i32 %v180)
443   call void asm sideeffect "; use $0", "v"(i32 %v181)
444   call void asm sideeffect "; use $0", "v"(i32 %v182)
445   call void asm sideeffect "; use $0", "v"(i32 %v183)
446   call void asm sideeffect "; use $0", "v"(i32 %v184)
447   call void asm sideeffect "; use $0", "v"(i32 %v185)
448   call void asm sideeffect "; use $0", "v"(i32 %v186)
449   call void asm sideeffect "; use $0", "v"(i32 %v187)
450   call void asm sideeffect "; use $0", "v"(i32 %v188)
451   call void asm sideeffect "; use $0", "v"(i32 %v189)
452   call void asm sideeffect "; use $0", "v"(i32 %v190)
453   call void asm sideeffect "; use $0", "v"(i32 %v191)
454   call void asm sideeffect "; use $0", "v"(i32 %v192)
455   call void asm sideeffect "; use $0", "v"(i32 %v193)
456   call void asm sideeffect "; use $0", "v"(i32 %v194)
457   call void asm sideeffect "; use $0", "v"(i32 %v195)
458   call void asm sideeffect "; use $0", "v"(i32 %v196)
459   call void asm sideeffect "; use $0", "v"(i32 %v197)
460   call void asm sideeffect "; use $0", "v"(i32 %v198)
461   call void asm sideeffect "; use $0", "v"(i32 %v199)
462   call void asm sideeffect "; use $0", "v"(i32 %v200)
463   call void asm sideeffect "; use $0", "v"(i32 %v201)
464   call void asm sideeffect "; use $0", "v"(i32 %v202)
465   call void asm sideeffect "; use $0", "v"(i32 %v203)
466   call void asm sideeffect "; use $0", "v"(i32 %v204)
467   call void asm sideeffect "; use $0", "v"(i32 %v205)
468   call void asm sideeffect "; use $0", "v"(i32 %v206)
469   call void asm sideeffect "; use $0", "v"(i32 %v207)
470   call void asm sideeffect "; use $0", "v"(i32 %v208)
471   call void asm sideeffect "; use $0", "v"(i32 %v209)
472   call void asm sideeffect "; use $0", "v"(i32 %v210)
473   call void asm sideeffect "; use $0", "v"(i32 %v211)
474   call void asm sideeffect "; use $0", "v"(i32 %v212)
475   call void asm sideeffect "; use $0", "v"(i32 %v213)
476   call void asm sideeffect "; use $0", "v"(i32 %v214)
477   call void asm sideeffect "; use $0", "v"(i32 %v215)
478   call void asm sideeffect "; use $0", "v"(i32 %v216)
479   call void asm sideeffect "; use $0", "v"(i32 %v217)
480   call void asm sideeffect "; use $0", "v"(i32 %v218)
481   call void asm sideeffect "; use $0", "v"(i32 %v219)
482   call void asm sideeffect "; use $0", "v"(i32 %v220)
483   call void asm sideeffect "; use $0", "v"(i32 %v221)
484   call void asm sideeffect "; use $0", "v"(i32 %v222)
485   call void asm sideeffect "; use $0", "v"(i32 %v223)
486   call void asm sideeffect "; use $0", "v"(i32 %v224)
487   call void asm sideeffect "; use $0", "v"(i32 %v225)
488   call void asm sideeffect "; use $0", "v"(i32 %v226)
489   call void asm sideeffect "; use $0", "v"(i32 %v227)
490   call void asm sideeffect "; use $0", "v"(i32 %v228)
491   call void asm sideeffect "; use $0", "v"(i32 %v229)
492   call void asm sideeffect "; use $0", "v"(i32 %v230)
493   call void asm sideeffect "; use $0", "v"(i32 %v231)
494   call void asm sideeffect "; use $0", "v"(i32 %v232)
495   call void asm sideeffect "; use $0", "v"(i32 %v233)
496   call void asm sideeffect "; use $0", "v"(i32 %v234)
497   call void asm sideeffect "; use $0", "v"(i32 %v235)
498   call void asm sideeffect "; use $0", "v"(i32 %v236)
499   call void asm sideeffect "; use $0", "v"(i32 %v237)
500   call void asm sideeffect "; use $0", "v"(i32 %v238)
501   call void asm sideeffect "; use $0", "v"(i32 %v239)
502   call void asm sideeffect "; use $0", "v"(i32 %v240)
503   call void asm sideeffect "; use $0", "v"(i32 %v241)
504   call void asm sideeffect "; use $0", "v"(i32 %v242)
505   call void asm sideeffect "; use $0", "v"(i32 %v243)
506   call void asm sideeffect "; use $0", "v"(i32 %v244)
507   call void asm sideeffect "; use $0", "v"(i32 %v245)
508   call void asm sideeffect "; use $0", "v"(i32 %v246)
509   call void asm sideeffect "; use $0", "v"(i32 %v247)
510   call void asm sideeffect "; use $0", "v"(i32 %v248)
511   call void asm sideeffect "; use $0", "v"(i32 %v249)
512   call void asm sideeffect "; use $0", "v"(i32 %v250)
513   call void asm sideeffect "; use $0", "v"(i32 %v251)
514   call void asm sideeffect "; use $0", "v"(i32 %v252)
515   call void asm sideeffect "; use $0", "v"(i32 %v253)
516   call void asm sideeffect "; use $0", "v"(i32 %v254)
517   call void asm sideeffect "; use $0", "v"(i32 %v255)
518   ret void
521 define internal void @use512vgprs() {
522   %v0 = call <32 x i32> asm sideeffect "; def $0", "=v"()
523   %v1 = call <32 x i32> asm sideeffect "; def $0", "=v"()
524   %v2 = call <32 x i32> asm sideeffect "; def $0", "=v"()
525   %v3 = call <32 x i32> asm sideeffect "; def $0", "=v"()
526   %v4 = call <32 x i32> asm sideeffect "; def $0", "=v"()
527   %v5 = call <32 x i32> asm sideeffect "; def $0", "=v"()
528   %v6 = call <32 x i32> asm sideeffect "; def $0", "=v"()
529   %v7 = call <32 x i32> asm sideeffect "; def $0", "=v"()
530   call void @use256vgprs()
531   call void asm sideeffect "; use $0", "v"(<32 x i32> %v0)
532   call void asm sideeffect "; use $0", "v"(<32 x i32> %v1)
533   call void asm sideeffect "; use $0", "v"(<32 x i32> %v2)
534   call void asm sideeffect "; use $0", "v"(<32 x i32> %v3)
535   call void asm sideeffect "; use $0", "v"(<32 x i32> %v4)
536   call void asm sideeffect "; use $0", "v"(<32 x i32> %v5)
537   call void asm sideeffect "; use $0", "v"(<32 x i32> %v6)
538   call void asm sideeffect "; use $0", "v"(<32 x i32> %v7)
539   ret void
542 define void @foo() #0 {
543   ret void
546 attributes #0 = { noinline }
548 ; GCN-LABEL: {{^}}k256_w8:
549 ; GFX90A: NumVgprs: 32
550 ; GFX90A: NumAgprs: 32
551 ; GFX90A: TotalNumVgprs: 64
552 define amdgpu_kernel void @k256_w8() #2568 {
553   call void @foo()
554   call void @use256vgprs()
555   ret void
558 ; GCN-LABEL: {{^}}k256_w8_no_agprs:
559 ; GFX90A: NumVgprs: 64
560 ; GFX90A: NumAgprs: 0
561 ; GFX90A: TotalNumVgprs: 64
562 define amdgpu_kernel void @k256_w8_no_agprs() #2568 {
563   call void @use256vgprs()
564   ret void
567 attributes #2568 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="8" }
569 ; GCN-LABEL: {{^}}k256_w4:
570 ; GFX90A: NumVgprs: 64
571 ; GFX90A: NumAgprs: 64
572 ; GFX90A: TotalNumVgprs: 128
573 define amdgpu_kernel void @k256_w4() #2564 {
574   call void @foo()
575   call void @use256vgprs()
576   ret void
579 ; GCN-LABEL: {{^}}k256_w4_no_agprs:
580 ; GFX90A: NumVgprs: 128
581 ; GFX90A: NumAgprs: 0
582 ; GFX90A: TotalNumVgprs: 128
583 define amdgpu_kernel void @k256_w4_no_agprs() #2564 {
584   call void @use256vgprs()
585   ret void
588 attributes #2564 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="4" }
590 ; GCN-LABEL: {{^}}k256_w2:
591 ; GFX90A: NumVgprs: 128
592 ; GFX90A: NumAgprs: 128
593 ; GFX90A: TotalNumVgprs: 256
594 define amdgpu_kernel void @k256_w2() #2562 {
595   call void @foo()
596   call void @use256vgprs()
597   ret void
600 ; GCN-LABEL: {{^}}k256_w2_no_agprs:
601 ; GFX90A: NumVgprs: 256
602 ; GFX90A: NumAgprs: 0
603 ; GFX90A: TotalNumVgprs: 256
604 define amdgpu_kernel void @k256_w2_no_agprs() #2562 {
605   call void @use256vgprs()
606   ret void
609 attributes #2562 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="2" }
611 ; GCN-LABEL: {{^}}k256_w1:
612 ; GFX90A: NumVgprs: 256
613 ; GFX90A: NumAgprs: 256
614 ; GFX90A: TotalNumVgprs: 512
615 define amdgpu_kernel void @k256_w1() #2561 {
616   call void @foo()
617   call void @use512vgprs()
618   ret void
621 ; GCN-LABEL: {{^}}k256_w1_no_agprs:
622 ; GFX90A: NumVgprs: 256
623 ; GFX90A: NumAgprs: 256
624 ; GFX90A: TotalNumVgprs: 512
625 define amdgpu_kernel void @k256_w1_no_agprs() #2561 {
626   call void @use512vgprs()
627   ret void
630 attributes #2561 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="1" }
632 ; GCN-LABEL: {{^}}k512_no_agprs:
633 ; GFX90A: NumVgprs: 256
634 ; GFX90A: NumAgprs: 0
635 ; GFX90A: TotalNumVgprs: 256
636 define amdgpu_kernel void @k512_no_agprs() #512 {
637   call void @use256vgprs()
638   ret void
641 ; GCN-LABEL: {{^}}k512_call:
642 ; GFX90A: NumVgprs: 128
643 ; GFX90A: NumAgprs: 128
644 ; GFX90A: TotalNumVgprs: 256
645 define amdgpu_kernel void @k512_call() #512 {
646   call void @foo()
647   call void @use256vgprs()
648   ret void
651 ; GCN-LABEL: {{^}}k512_virtual_agpr:
652 ; GFX90A: NumVgprs: 128
653 ; GFX90A: NumAgprs: 128
654 ; GFX90A: TotalNumVgprs: 256
655 define amdgpu_kernel void @k512_virtual_agpr() #512 {
656   %a0 = call i32 asm sideeffect "; def $0", "=a"()
657   call void @use256vgprs()
658   ret void
661 ; GCN-LABEL: {{^}}k512_physical_agpr:
662 ; GFX90A: NumVgprs: 128
663 ; GFX90A: NumAgprs: 128
664 ; GFX90A: TotalNumVgprs: 256
665 define amdgpu_kernel void @k512_physical_agpr() #512 {
666   call void asm sideeffect "", "~{a8}" ()
667   call void @use256vgprs()
668   ret void
671 ; GCN-LABEL: {{^}}f512:
672 ; GFX90A: NumVgprs: 12{{[0-9]}}
673 ; GFX90A: NumAgprs: {{[1-9]}}
674 define void @f512() #512 {
675   call void @use256vgprs()
676   ret void
679 attributes #512 = { nounwind "amdgpu-flat-work-group-size"="512,512" }
681 ; GCN-LABEL: {{^}}k1024:
682 ; GFX90A: NumVgprs: 128
683 ; GFX90A: NumAgprs: 0
684 ; GFX90A: TotalNumVgprs: 128
685 define amdgpu_kernel void @k1024() #1024 {
686   call void @use256vgprs()
687   ret void
690 ; GCN-LABEL: {{^}}k1024_call:
691 ; GFX90A: NumVgprs: 64
692 ; GFX90A: NumAgprs: 64
693 ; GFX90A: TotalNumVgprs: 128
694 define amdgpu_kernel void @k1024_call() #1024 {
695   call void @foo()
696   call void @use256vgprs()
697   ret void
700 attributes #1024 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }