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