xref: /llvm-project/llvm/test/CodeGen/AMDGPU/vgpr-agpr-limit-gfx90a.ll (revision b6b703b2dfc1d1ba45ebc64ed6b53a3a46f531f5)
1; -enable-misched=false makes the register usage more predictable
2; -regalloc=fast just makes the test run faster
3; RUN: llc -mtriple=amdgcn -mcpu=gfx90a -amdgpu-function-calls=false -enable-misched=false -sgpr-regalloc=fast -vgpr-regalloc=fast < %s | FileCheck %s --check-prefixes=GCN,GFX90A
4
5define 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
519}
520
521define 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
540}
541
542define void @foo() #0 {
543  call void asm sideeffect "; use $0", "a"(i32 0)
544  ret void
545}
546
547attributes #0 = { noinline }
548
549; GCN-LABEL: {{^}}k256_w8:
550; GFX90A: NumVgprs: 32
551; GFX90A: NumAgprs: 32
552; GFX90A: TotalNumVgprs: 64
553define amdgpu_kernel void @k256_w8() #2568 {
554  call void @foo()
555  call void @use256vgprs()
556  ret void
557}
558
559; GCN-LABEL: {{^}}k256_w8_no_agprs:
560; GFX90A: NumVgprs: 64
561; GFX90A: NumAgprs: 0
562; GFX90A: TotalNumVgprs: 64
563define amdgpu_kernel void @k256_w8_no_agprs() #2568 {
564  call void @use256vgprs()
565  ret void
566}
567
568attributes #2568 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="8" }
569
570; GCN-LABEL: {{^}}k256_w4:
571; GFX90A: NumVgprs: 64
572; GFX90A: NumAgprs: 64
573; GFX90A: TotalNumVgprs: 128
574define amdgpu_kernel void @k256_w4() #2564 {
575  call void @foo()
576  call void @use256vgprs()
577  ret void
578}
579
580; GCN-LABEL: {{^}}k256_w4_no_agprs:
581; GFX90A: NumVgprs: 128
582; GFX90A: NumAgprs: 0
583; GFX90A: TotalNumVgprs: 128
584define amdgpu_kernel void @k256_w4_no_agprs() #2564 {
585  call void @use256vgprs()
586  ret void
587}
588
589attributes #2564 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="4" }
590
591; GCN-LABEL: {{^}}k256_w2:
592; GFX90A: NumVgprs: 128
593; GFX90A: NumAgprs: 128
594; GFX90A: TotalNumVgprs: 256
595define amdgpu_kernel void @k256_w2() #2562 {
596  call void @foo()
597  call void @use256vgprs()
598  ret void
599}
600
601; GCN-LABEL: {{^}}k256_w2_no_agprs:
602; GFX90A: NumVgprs: 256
603; GFX90A: NumAgprs: 0
604; GFX90A: TotalNumVgprs: 256
605define amdgpu_kernel void @k256_w2_no_agprs() #2562 {
606  call void @use256vgprs()
607  ret void
608}
609
610attributes #2562 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="2" }
611
612; GCN-LABEL: {{^}}k256_w1:
613; GFX90A: NumVgprs: 256
614; GFX90A: NumAgprs: 256
615; GFX90A: TotalNumVgprs: 512
616define amdgpu_kernel void @k256_w1() #2561 {
617  call void @foo()
618  call void @use512vgprs()
619  ret void
620}
621
622; GCN-LABEL: {{^}}k256_w1_no_agprs:
623; GFX90A: NumVgprs: 256
624; GFX90A: NumAgprs: 256
625; GFX90A: TotalNumVgprs: 512
626define amdgpu_kernel void @k256_w1_no_agprs() #2561 {
627  call void @use512vgprs()
628  ret void
629}
630
631attributes #2561 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="1" }
632
633; GCN-LABEL: {{^}}k512_no_agprs:
634; GFX90A: NumVgprs: 256
635; GFX90A: NumAgprs: 0
636; GFX90A: TotalNumVgprs: 256
637define amdgpu_kernel void @k512_no_agprs() #512 {
638  call void @use256vgprs()
639  ret void
640}
641
642; GCN-LABEL: {{^}}k512_call:
643; GFX90A: NumVgprs: 128
644; GFX90A: NumAgprs: 128
645; GFX90A: TotalNumVgprs: 256
646define amdgpu_kernel void @k512_call() #512 {
647  call void @foo()
648  call void @use256vgprs()
649  ret void
650}
651
652; GCN-LABEL: {{^}}k512_virtual_agpr:
653; GFX90A: NumVgprs: 128
654; GFX90A: NumAgprs: 128
655; GFX90A: TotalNumVgprs: 256
656define amdgpu_kernel void @k512_virtual_agpr() #512 {
657  %a0 = call i32 asm sideeffect "; def $0", "=a"()
658  call void @use256vgprs()
659  ret void
660}
661
662; GCN-LABEL: {{^}}k512_physical_agpr:
663; GFX90A: NumVgprs: 128
664; GFX90A: NumAgprs: 128
665; GFX90A: TotalNumVgprs: 256
666define amdgpu_kernel void @k512_physical_agpr() #512 {
667  call void asm sideeffect "", "~{a8}" ()
668  call void @use256vgprs()
669  ret void
670}
671
672; GCN-LABEL: {{^}}f512:
673; GFX90A: NumVgprs: 12{{[0-9]}}
674; GFX90A: NumAgprs: {{[1-9]}}
675define void @f512() #512 {
676  call void @use256vgprs()
677  ret void
678}
679
680attributes #512 = { nounwind "amdgpu-flat-work-group-size"="512,512" }
681
682; GCN-LABEL: {{^}}k1024:
683; GFX90A: NumVgprs: 128
684; GFX90A: NumAgprs: 0
685; GFX90A: TotalNumVgprs: 128
686define amdgpu_kernel void @k1024() #1024 {
687  call void @use256vgprs()
688  ret void
689}
690
691; GCN-LABEL: {{^}}k1024_call:
692; GFX90A: NumVgprs: 64
693; GFX90A: NumAgprs: 64
694; GFX90A: TotalNumVgprs: 128
695define amdgpu_kernel void @k1024_call() #1024 {
696  call void @foo()
697  call void @use256vgprs()
698  ret void
699}
700
701attributes #1024 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }
702