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)
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)
542 define void @foo() #0 {
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 {
554 call void @use256vgprs()
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()
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 {
575 call void @use256vgprs()
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()
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 {
596 call void @use256vgprs()
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()
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 {
617 call void @use512vgprs()
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()
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()
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 {
647 call void @use256vgprs()
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()
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()
671 ; GCN-LABEL: {{^}}f512:
672 ; GFX90A: NumVgprs: 12{{[0-9]}}
673 ; GFX90A: NumAgprs: {{[1-9]}}
674 define void @f512() #512 {
675 call void @use256vgprs()
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()
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 {
696 call void @use256vgprs()
700 attributes #1024 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }