; -enable-misched=false makes the register usage more predictable ; -regalloc=fast just makes the test run faster ; 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 define internal void @use256vgprs() { %v0 = call i32 asm sideeffect "; def $0", "=v"() %v1 = call i32 asm sideeffect "; def $0", "=v"() %v2 = call i32 asm sideeffect "; def $0", "=v"() %v3 = call i32 asm sideeffect "; def $0", "=v"() %v4 = call i32 asm sideeffect "; def $0", "=v"() %v5 = call i32 asm sideeffect "; def $0", "=v"() %v6 = call i32 asm sideeffect "; def $0", "=v"() %v7 = call i32 asm sideeffect "; def $0", "=v"() %v8 = call i32 asm sideeffect "; def $0", "=v"() %v9 = call i32 asm sideeffect "; def $0", "=v"() %v10 = call i32 asm sideeffect "; def $0", "=v"() %v11 = call i32 asm sideeffect "; def $0", "=v"() %v12 = call i32 asm sideeffect "; def $0", "=v"() %v13 = call i32 asm sideeffect "; def $0", "=v"() %v14 = call i32 asm sideeffect "; def $0", "=v"() %v15 = call i32 asm sideeffect "; def $0", "=v"() %v16 = call i32 asm sideeffect "; def $0", "=v"() %v17 = call i32 asm sideeffect "; def $0", "=v"() %v18 = call i32 asm sideeffect "; def $0", "=v"() %v19 = call i32 asm sideeffect "; def $0", "=v"() %v20 = call i32 asm sideeffect "; def $0", "=v"() %v21 = call i32 asm sideeffect "; def $0", "=v"() %v22 = call i32 asm sideeffect "; def $0", "=v"() %v23 = call i32 asm sideeffect "; def $0", "=v"() %v24 = call i32 asm sideeffect "; def $0", "=v"() %v25 = call i32 asm sideeffect "; def $0", "=v"() %v26 = call i32 asm sideeffect "; def $0", "=v"() %v27 = call i32 asm sideeffect "; def $0", "=v"() %v28 = call i32 asm sideeffect "; def $0", "=v"() %v29 = call i32 asm sideeffect "; def $0", "=v"() %v30 = call i32 asm sideeffect "; def $0", "=v"() %v31 = call i32 asm sideeffect "; def $0", "=v"() %v32 = call i32 asm sideeffect "; def $0", "=v"() %v33 = call i32 asm sideeffect "; def $0", "=v"() %v34 = call i32 asm sideeffect "; def $0", "=v"() %v35 = call i32 asm sideeffect "; def $0", "=v"() %v36 = call i32 asm sideeffect "; def $0", "=v"() %v37 = call i32 asm sideeffect "; def $0", "=v"() %v38 = call i32 asm sideeffect "; def $0", "=v"() %v39 = call i32 asm sideeffect "; def $0", "=v"() %v40 = call i32 asm sideeffect "; def $0", "=v"() %v41 = call i32 asm sideeffect "; def $0", "=v"() %v42 = call i32 asm sideeffect "; def $0", "=v"() %v43 = call i32 asm sideeffect "; def $0", "=v"() %v44 = call i32 asm sideeffect "; def $0", "=v"() %v45 = call i32 asm sideeffect "; def $0", "=v"() %v46 = call i32 asm sideeffect "; def $0", "=v"() %v47 = call i32 asm sideeffect "; def $0", "=v"() %v48 = call i32 asm sideeffect "; def $0", "=v"() %v49 = call i32 asm sideeffect "; def $0", "=v"() %v50 = call i32 asm sideeffect "; def $0", "=v"() %v51 = call i32 asm sideeffect "; def $0", "=v"() %v52 = call i32 asm sideeffect "; def $0", "=v"() %v53 = call i32 asm sideeffect "; def $0", "=v"() %v54 = call i32 asm sideeffect "; def $0", "=v"() %v55 = call i32 asm sideeffect "; def $0", "=v"() %v56 = call i32 asm sideeffect "; def $0", "=v"() %v57 = call i32 asm sideeffect "; def $0", "=v"() %v58 = call i32 asm sideeffect "; def $0", "=v"() %v59 = call i32 asm sideeffect "; def $0", "=v"() %v60 = call i32 asm sideeffect "; def $0", "=v"() %v61 = call i32 asm sideeffect "; def $0", "=v"() %v62 = call i32 asm sideeffect "; def $0", "=v"() %v63 = call i32 asm sideeffect "; def $0", "=v"() %v64 = call i32 asm sideeffect "; def $0", "=v"() %v65 = call i32 asm sideeffect "; def $0", "=v"() %v66 = call i32 asm sideeffect "; def $0", "=v"() %v67 = call i32 asm sideeffect "; def $0", "=v"() %v68 = call i32 asm sideeffect "; def $0", "=v"() %v69 = call i32 asm sideeffect "; def $0", "=v"() %v70 = call i32 asm sideeffect "; def $0", "=v"() %v71 = call i32 asm sideeffect "; def $0", "=v"() %v72 = call i32 asm sideeffect "; def $0", "=v"() %v73 = call i32 asm sideeffect "; def $0", "=v"() %v74 = call i32 asm sideeffect "; def $0", "=v"() %v75 = call i32 asm sideeffect "; def $0", "=v"() %v76 = call i32 asm sideeffect "; def $0", "=v"() %v77 = call i32 asm sideeffect "; def $0", "=v"() %v78 = call i32 asm sideeffect "; def $0", "=v"() %v79 = call i32 asm sideeffect "; def $0", "=v"() %v80 = call i32 asm sideeffect "; def $0", "=v"() %v81 = call i32 asm sideeffect "; def $0", "=v"() %v82 = call i32 asm sideeffect "; def $0", "=v"() %v83 = call i32 asm sideeffect "; def $0", "=v"() %v84 = call i32 asm sideeffect "; def $0", "=v"() %v85 = call i32 asm sideeffect "; def $0", "=v"() %v86 = call i32 asm sideeffect "; def $0", "=v"() %v87 = call i32 asm sideeffect "; def $0", "=v"() %v88 = call i32 asm sideeffect "; def $0", "=v"() %v89 = call i32 asm sideeffect "; def $0", "=v"() %v90 = call i32 asm sideeffect "; def $0", "=v"() %v91 = call i32 asm sideeffect "; def $0", "=v"() %v92 = call i32 asm sideeffect "; def $0", "=v"() %v93 = call i32 asm sideeffect "; def $0", "=v"() %v94 = call i32 asm sideeffect "; def $0", "=v"() %v95 = call i32 asm sideeffect "; def $0", "=v"() %v96 = call i32 asm sideeffect "; def $0", "=v"() %v97 = call i32 asm sideeffect "; def $0", "=v"() %v98 = call i32 asm sideeffect "; def $0", "=v"() %v99 = call i32 asm sideeffect "; def $0", "=v"() %v100 = call i32 asm sideeffect "; def $0", "=v"() %v101 = call i32 asm sideeffect "; def $0", "=v"() %v102 = call i32 asm sideeffect "; def $0", "=v"() %v103 = call i32 asm sideeffect "; def $0", "=v"() %v104 = call i32 asm sideeffect "; def $0", "=v"() %v105 = call i32 asm sideeffect "; def $0", "=v"() %v106 = call i32 asm sideeffect "; def $0", "=v"() %v107 = call i32 asm sideeffect "; def $0", "=v"() %v108 = call i32 asm sideeffect "; def $0", "=v"() %v109 = call i32 asm sideeffect "; def $0", "=v"() %v110 = call i32 asm sideeffect "; def $0", "=v"() %v111 = call i32 asm sideeffect "; def $0", "=v"() %v112 = call i32 asm sideeffect "; def $0", "=v"() %v113 = call i32 asm sideeffect "; def $0", "=v"() %v114 = call i32 asm sideeffect "; def $0", "=v"() %v115 = call i32 asm sideeffect "; def $0", "=v"() %v116 = call i32 asm sideeffect "; def $0", "=v"() %v117 = call i32 asm sideeffect "; def $0", "=v"() %v118 = call i32 asm sideeffect "; def $0", "=v"() %v119 = call i32 asm sideeffect "; def $0", "=v"() %v120 = call i32 asm sideeffect "; def $0", "=v"() %v121 = call i32 asm sideeffect "; def $0", "=v"() %v122 = call i32 asm sideeffect "; def $0", "=v"() %v123 = call i32 asm sideeffect "; def $0", "=v"() %v124 = call i32 asm sideeffect "; def $0", "=v"() %v125 = call i32 asm sideeffect "; def $0", "=v"() %v126 = call i32 asm sideeffect "; def $0", "=v"() %v127 = call i32 asm sideeffect "; def $0", "=v"() %v128 = call i32 asm sideeffect "; def $0", "=v"() %v129 = call i32 asm sideeffect "; def $0", "=v"() %v130 = call i32 asm sideeffect "; def $0", "=v"() %v131 = call i32 asm sideeffect "; def $0", "=v"() %v132 = call i32 asm sideeffect "; def $0", "=v"() %v133 = call i32 asm sideeffect "; def $0", "=v"() %v134 = call i32 asm sideeffect "; def $0", "=v"() %v135 = call i32 asm sideeffect "; def $0", "=v"() %v136 = call i32 asm sideeffect "; def $0", "=v"() %v137 = call i32 asm sideeffect "; def $0", "=v"() %v138 = call i32 asm sideeffect "; def $0", "=v"() %v139 = call i32 asm sideeffect "; def $0", "=v"() %v140 = call i32 asm sideeffect "; def $0", "=v"() %v141 = call i32 asm sideeffect "; def $0", "=v"() %v142 = call i32 asm sideeffect "; def $0", "=v"() %v143 = call i32 asm sideeffect "; def $0", "=v"() %v144 = call i32 asm sideeffect "; def $0", "=v"() %v145 = call i32 asm sideeffect "; def $0", "=v"() %v146 = call i32 asm sideeffect "; def $0", "=v"() %v147 = call i32 asm sideeffect "; def $0", "=v"() %v148 = call i32 asm sideeffect "; def $0", "=v"() %v149 = call i32 asm sideeffect "; def $0", "=v"() %v150 = call i32 asm sideeffect "; def $0", "=v"() %v151 = call i32 asm sideeffect "; def $0", "=v"() %v152 = call i32 asm sideeffect "; def $0", "=v"() %v153 = call i32 asm sideeffect "; def $0", "=v"() %v154 = call i32 asm sideeffect "; def $0", "=v"() %v155 = call i32 asm sideeffect "; def $0", "=v"() %v156 = call i32 asm sideeffect "; def $0", "=v"() %v157 = call i32 asm sideeffect "; def $0", "=v"() %v158 = call i32 asm sideeffect "; def $0", "=v"() %v159 = call i32 asm sideeffect "; def $0", "=v"() %v160 = call i32 asm sideeffect "; def $0", "=v"() %v161 = call i32 asm sideeffect "; def $0", "=v"() %v162 = call i32 asm sideeffect "; def $0", "=v"() %v163 = call i32 asm sideeffect "; def $0", "=v"() %v164 = call i32 asm sideeffect "; def $0", "=v"() %v165 = call i32 asm sideeffect "; def $0", "=v"() %v166 = call i32 asm sideeffect "; def $0", "=v"() %v167 = call i32 asm sideeffect "; def $0", "=v"() %v168 = call i32 asm sideeffect "; def $0", "=v"() %v169 = call i32 asm sideeffect "; def $0", "=v"() %v170 = call i32 asm sideeffect "; def $0", "=v"() %v171 = call i32 asm sideeffect "; def $0", "=v"() %v172 = call i32 asm sideeffect "; def $0", "=v"() %v173 = call i32 asm sideeffect "; def $0", "=v"() %v174 = call i32 asm sideeffect "; def $0", "=v"() %v175 = call i32 asm sideeffect "; def $0", "=v"() %v176 = call i32 asm sideeffect "; def $0", "=v"() %v177 = call i32 asm sideeffect "; def $0", "=v"() %v178 = call i32 asm sideeffect "; def $0", "=v"() %v179 = call i32 asm sideeffect "; def $0", "=v"() %v180 = call i32 asm sideeffect "; def $0", "=v"() %v181 = call i32 asm sideeffect "; def $0", "=v"() %v182 = call i32 asm sideeffect "; def $0", "=v"() %v183 = call i32 asm sideeffect "; def $0", "=v"() %v184 = call i32 asm sideeffect "; def $0", "=v"() %v185 = call i32 asm sideeffect "; def $0", "=v"() %v186 = call i32 asm sideeffect "; def $0", "=v"() %v187 = call i32 asm sideeffect "; def $0", "=v"() %v188 = call i32 asm sideeffect "; def $0", "=v"() %v189 = call i32 asm sideeffect "; def $0", "=v"() %v190 = call i32 asm sideeffect "; def $0", "=v"() %v191 = call i32 asm sideeffect "; def $0", "=v"() %v192 = call i32 asm sideeffect "; def $0", "=v"() %v193 = call i32 asm sideeffect "; def $0", "=v"() %v194 = call i32 asm sideeffect "; def $0", "=v"() %v195 = call i32 asm sideeffect "; def $0", "=v"() %v196 = call i32 asm sideeffect "; def $0", "=v"() %v197 = call i32 asm sideeffect "; def $0", "=v"() %v198 = call i32 asm sideeffect "; def $0", "=v"() %v199 = call i32 asm sideeffect "; def $0", "=v"() %v200 = call i32 asm sideeffect "; def $0", "=v"() %v201 = call i32 asm sideeffect "; def $0", "=v"() %v202 = call i32 asm sideeffect "; def $0", "=v"() %v203 = call i32 asm sideeffect "; def $0", "=v"() %v204 = call i32 asm sideeffect "; def $0", "=v"() %v205 = call i32 asm sideeffect "; def $0", "=v"() %v206 = call i32 asm sideeffect "; def $0", "=v"() %v207 = call i32 asm sideeffect "; def $0", "=v"() %v208 = call i32 asm sideeffect "; def $0", "=v"() %v209 = call i32 asm sideeffect "; def $0", "=v"() %v210 = call i32 asm sideeffect "; def $0", "=v"() %v211 = call i32 asm sideeffect "; def $0", "=v"() %v212 = call i32 asm sideeffect "; def $0", "=v"() %v213 = call i32 asm sideeffect "; def $0", "=v"() %v214 = call i32 asm sideeffect "; def $0", "=v"() %v215 = call i32 asm sideeffect "; def $0", "=v"() %v216 = call i32 asm sideeffect "; def $0", "=v"() %v217 = call i32 asm sideeffect "; def $0", "=v"() %v218 = call i32 asm sideeffect "; def $0", "=v"() %v219 = call i32 asm sideeffect "; def $0", "=v"() %v220 = call i32 asm sideeffect "; def $0", "=v"() %v221 = call i32 asm sideeffect "; def $0", "=v"() %v222 = call i32 asm sideeffect "; def $0", "=v"() %v223 = call i32 asm sideeffect "; def $0", "=v"() %v224 = call i32 asm sideeffect "; def $0", "=v"() %v225 = call i32 asm sideeffect "; def $0", "=v"() %v226 = call i32 asm sideeffect "; def $0", "=v"() %v227 = call i32 asm sideeffect "; def $0", "=v"() %v228 = call i32 asm sideeffect "; def $0", "=v"() %v229 = call i32 asm sideeffect "; def $0", "=v"() %v230 = call i32 asm sideeffect "; def $0", "=v"() %v231 = call i32 asm sideeffect "; def $0", "=v"() %v232 = call i32 asm sideeffect "; def $0", "=v"() %v233 = call i32 asm sideeffect "; def $0", "=v"() %v234 = call i32 asm sideeffect "; def $0", "=v"() %v235 = call i32 asm sideeffect "; def $0", "=v"() %v236 = call i32 asm sideeffect "; def $0", "=v"() %v237 = call i32 asm sideeffect "; def $0", "=v"() %v238 = call i32 asm sideeffect "; def $0", "=v"() %v239 = call i32 asm sideeffect "; def $0", "=v"() %v240 = call i32 asm sideeffect "; def $0", "=v"() %v241 = call i32 asm sideeffect "; def $0", "=v"() %v242 = call i32 asm sideeffect "; def $0", "=v"() %v243 = call i32 asm sideeffect "; def $0", "=v"() %v244 = call i32 asm sideeffect "; def $0", "=v"() %v245 = call i32 asm sideeffect "; def $0", "=v"() %v246 = call i32 asm sideeffect "; def $0", "=v"() %v247 = call i32 asm sideeffect "; def $0", "=v"() %v248 = call i32 asm sideeffect "; def $0", "=v"() %v249 = call i32 asm sideeffect "; def $0", "=v"() %v250 = call i32 asm sideeffect "; def $0", "=v"() %v251 = call i32 asm sideeffect "; def $0", "=v"() %v252 = call i32 asm sideeffect "; def $0", "=v"() %v253 = call i32 asm sideeffect "; def $0", "=v"() %v254 = call i32 asm sideeffect "; def $0", "=v"() %v255 = call i32 asm sideeffect "; def $0", "=v"() call void asm sideeffect "; use $0", "v"(i32 %v0) call void asm sideeffect "; use $0", "v"(i32 %v1) call void asm sideeffect "; use $0", "v"(i32 %v2) call void asm sideeffect "; use $0", "v"(i32 %v3) call void asm sideeffect "; use $0", "v"(i32 %v4) call void asm sideeffect "; use $0", "v"(i32 %v5) call void asm sideeffect "; use $0", "v"(i32 %v6) call void asm sideeffect "; use $0", "v"(i32 %v7) call void asm sideeffect "; use $0", "v"(i32 %v8) call void asm sideeffect "; use $0", "v"(i32 %v9) call void asm sideeffect "; use $0", "v"(i32 %v10) call void asm sideeffect "; use $0", "v"(i32 %v11) call void asm sideeffect "; use $0", "v"(i32 %v12) call void asm sideeffect "; use $0", "v"(i32 %v13) call void asm sideeffect "; use $0", "v"(i32 %v14) call void asm sideeffect "; use $0", "v"(i32 %v15) call void asm sideeffect "; use $0", "v"(i32 %v16) call void asm sideeffect "; use $0", "v"(i32 %v17) call void asm sideeffect "; use $0", "v"(i32 %v18) call void asm sideeffect "; use $0", "v"(i32 %v19) call void asm sideeffect "; use $0", "v"(i32 %v20) call void asm sideeffect "; use $0", "v"(i32 %v21) call void asm sideeffect "; use $0", "v"(i32 %v22) call void asm sideeffect "; use $0", "v"(i32 %v23) call void asm sideeffect "; use $0", "v"(i32 %v24) call void asm sideeffect "; use $0", "v"(i32 %v25) call void asm sideeffect "; use $0", "v"(i32 %v26) call void asm sideeffect "; use $0", "v"(i32 %v27) call void asm sideeffect "; use $0", "v"(i32 %v28) call void asm sideeffect "; use $0", "v"(i32 %v29) call void asm sideeffect "; use $0", "v"(i32 %v30) call void asm sideeffect "; use $0", "v"(i32 %v31) call void asm sideeffect "; use $0", "v"(i32 %v32) call void asm sideeffect "; use $0", "v"(i32 %v33) call void asm sideeffect "; use $0", "v"(i32 %v34) call void asm sideeffect "; use $0", "v"(i32 %v35) call void asm sideeffect "; use $0", "v"(i32 %v36) call void asm sideeffect "; use $0", "v"(i32 %v37) call void asm sideeffect "; use $0", "v"(i32 %v38) call void asm sideeffect "; use $0", "v"(i32 %v39) call void asm sideeffect "; use $0", "v"(i32 %v40) call void asm sideeffect "; use $0", "v"(i32 %v41) call void asm sideeffect "; use $0", "v"(i32 %v42) call void asm sideeffect "; use $0", "v"(i32 %v43) call void asm sideeffect "; use $0", "v"(i32 %v44) call void asm sideeffect "; use $0", "v"(i32 %v45) call void asm sideeffect "; use $0", "v"(i32 %v46) call void asm sideeffect "; use $0", "v"(i32 %v47) call void asm sideeffect "; use $0", "v"(i32 %v48) call void asm sideeffect "; use $0", "v"(i32 %v49) call void asm sideeffect "; use $0", "v"(i32 %v50) call void asm sideeffect "; use $0", "v"(i32 %v51) call void asm sideeffect "; use $0", "v"(i32 %v52) call void asm sideeffect "; use $0", "v"(i32 %v53) call void asm sideeffect "; use $0", "v"(i32 %v54) call void asm sideeffect "; use $0", "v"(i32 %v55) call void asm sideeffect "; use $0", "v"(i32 %v56) call void asm sideeffect "; use $0", "v"(i32 %v57) call void asm sideeffect "; use $0", "v"(i32 %v58) call void asm sideeffect "; use $0", "v"(i32 %v59) call void asm sideeffect "; use $0", "v"(i32 %v60) call void asm sideeffect "; use $0", "v"(i32 %v61) call void asm sideeffect "; use $0", "v"(i32 %v62) call void asm sideeffect "; use $0", "v"(i32 %v63) call void asm sideeffect "; use $0", "v"(i32 %v64) call void asm sideeffect "; use $0", "v"(i32 %v65) call void asm sideeffect "; use $0", "v"(i32 %v66) call void asm sideeffect "; use $0", "v"(i32 %v67) call void asm sideeffect "; use $0", "v"(i32 %v68) call void asm sideeffect "; use $0", "v"(i32 %v69) call void asm sideeffect "; use $0", "v"(i32 %v70) call void asm sideeffect "; use $0", "v"(i32 %v71) call void asm sideeffect "; use $0", "v"(i32 %v72) call void asm sideeffect "; use $0", "v"(i32 %v73) call void asm sideeffect "; use $0", "v"(i32 %v74) call void asm sideeffect "; use $0", "v"(i32 %v75) call void asm sideeffect "; use $0", "v"(i32 %v76) call void asm sideeffect "; use $0", "v"(i32 %v77) call void asm sideeffect "; use $0", "v"(i32 %v78) call void asm sideeffect "; use $0", "v"(i32 %v79) call void asm sideeffect "; use $0", "v"(i32 %v80) call void asm sideeffect "; use $0", "v"(i32 %v81) call void asm sideeffect "; use $0", "v"(i32 %v82) call void asm sideeffect "; use $0", "v"(i32 %v83) call void asm sideeffect "; use $0", "v"(i32 %v84) call void asm sideeffect "; use $0", "v"(i32 %v85) call void asm sideeffect "; use $0", "v"(i32 %v86) call void asm sideeffect "; use $0", "v"(i32 %v87) call void asm sideeffect "; use $0", "v"(i32 %v88) call void asm sideeffect "; use $0", "v"(i32 %v89) call void asm sideeffect "; use $0", "v"(i32 %v90) call void asm sideeffect "; use $0", "v"(i32 %v91) call void asm sideeffect "; use $0", "v"(i32 %v92) call void asm sideeffect "; use $0", "v"(i32 %v93) call void asm sideeffect "; use $0", "v"(i32 %v94) call void asm sideeffect "; use $0", "v"(i32 %v95) call void asm sideeffect "; use $0", "v"(i32 %v96) call void asm sideeffect "; use $0", "v"(i32 %v97) call void asm sideeffect "; use $0", "v"(i32 %v98) call void asm sideeffect "; use $0", "v"(i32 %v99) call void asm sideeffect "; use $0", "v"(i32 %v100) call void asm sideeffect "; use $0", "v"(i32 %v101) call void asm sideeffect "; use $0", "v"(i32 %v102) call void asm sideeffect "; use $0", "v"(i32 %v103) call void asm sideeffect "; use $0", "v"(i32 %v104) call void asm sideeffect "; use $0", "v"(i32 %v105) call void asm sideeffect "; use $0", "v"(i32 %v106) call void asm sideeffect "; use $0", "v"(i32 %v107) call void asm sideeffect "; use $0", "v"(i32 %v108) call void asm sideeffect "; use $0", "v"(i32 %v109) call void asm sideeffect "; use $0", "v"(i32 %v110) call void asm sideeffect "; use $0", "v"(i32 %v111) call void asm sideeffect "; use $0", "v"(i32 %v112) call void asm sideeffect "; use $0", "v"(i32 %v113) call void asm sideeffect "; use $0", "v"(i32 %v114) call void asm sideeffect "; use $0", "v"(i32 %v115) call void asm sideeffect "; use $0", "v"(i32 %v116) call void asm sideeffect "; use $0", "v"(i32 %v117) call void asm sideeffect "; use $0", "v"(i32 %v118) call void asm sideeffect "; use $0", "v"(i32 %v119) call void asm sideeffect "; use $0", "v"(i32 %v120) call void asm sideeffect "; use $0", "v"(i32 %v121) call void asm sideeffect "; use $0", "v"(i32 %v122) call void asm sideeffect "; use $0", "v"(i32 %v123) call void asm sideeffect "; use $0", "v"(i32 %v124) call void asm sideeffect "; use $0", "v"(i32 %v125) call void asm sideeffect "; use $0", "v"(i32 %v126) call void asm sideeffect "; use $0", "v"(i32 %v127) call void asm sideeffect "; use $0", "v"(i32 %v128) call void asm sideeffect "; use $0", "v"(i32 %v129) call void asm sideeffect "; use $0", "v"(i32 %v130) call void asm sideeffect "; use $0", "v"(i32 %v131) call void asm sideeffect "; use $0", "v"(i32 %v132) call void asm sideeffect "; use $0", "v"(i32 %v133) call void asm sideeffect "; use $0", "v"(i32 %v134) call void asm sideeffect "; use $0", "v"(i32 %v135) call void asm sideeffect "; use $0", "v"(i32 %v136) call void asm sideeffect "; use $0", "v"(i32 %v137) call void asm sideeffect "; use $0", "v"(i32 %v138) call void asm sideeffect "; use $0", "v"(i32 %v139) call void asm sideeffect "; use $0", "v"(i32 %v140) call void asm sideeffect "; use $0", "v"(i32 %v141) call void asm sideeffect "; use $0", "v"(i32 %v142) call void asm sideeffect "; use $0", "v"(i32 %v143) call void asm sideeffect "; use $0", "v"(i32 %v144) call void asm sideeffect "; use $0", "v"(i32 %v145) call void asm sideeffect "; use $0", "v"(i32 %v146) call void asm sideeffect "; use $0", "v"(i32 %v147) call void asm sideeffect "; use $0", "v"(i32 %v148) call void asm sideeffect "; use $0", "v"(i32 %v149) call void asm sideeffect "; use $0", "v"(i32 %v150) call void asm sideeffect "; use $0", "v"(i32 %v151) call void asm sideeffect "; use $0", "v"(i32 %v152) call void asm sideeffect "; use $0", "v"(i32 %v153) call void asm sideeffect "; use $0", "v"(i32 %v154) call void asm sideeffect "; use $0", "v"(i32 %v155) call void asm sideeffect "; use $0", "v"(i32 %v156) call void asm sideeffect "; use $0", "v"(i32 %v157) call void asm sideeffect "; use $0", "v"(i32 %v158) call void asm sideeffect "; use $0", "v"(i32 %v159) call void asm sideeffect "; use $0", "v"(i32 %v160) call void asm sideeffect "; use $0", "v"(i32 %v161) call void asm sideeffect "; use $0", "v"(i32 %v162) call void asm sideeffect "; use $0", "v"(i32 %v163) call void asm sideeffect "; use $0", "v"(i32 %v164) call void asm sideeffect "; use $0", "v"(i32 %v165) call void asm sideeffect "; use $0", "v"(i32 %v166) call void asm sideeffect "; use $0", "v"(i32 %v167) call void asm sideeffect "; use $0", "v"(i32 %v168) call void asm sideeffect "; use $0", "v"(i32 %v169) call void asm sideeffect "; use $0", "v"(i32 %v170) call void asm sideeffect "; use $0", "v"(i32 %v171) call void asm sideeffect "; use $0", "v"(i32 %v172) call void asm sideeffect "; use $0", "v"(i32 %v173) call void asm sideeffect "; use $0", "v"(i32 %v174) call void asm sideeffect "; use $0", "v"(i32 %v175) call void asm sideeffect "; use $0", "v"(i32 %v176) call void asm sideeffect "; use $0", "v"(i32 %v177) call void asm sideeffect "; use $0", "v"(i32 %v178) call void asm sideeffect "; use $0", "v"(i32 %v179) call void asm sideeffect "; use $0", "v"(i32 %v180) call void asm sideeffect "; use $0", "v"(i32 %v181) call void asm sideeffect "; use $0", "v"(i32 %v182) call void asm sideeffect "; use $0", "v"(i32 %v183) call void asm sideeffect "; use $0", "v"(i32 %v184) call void asm sideeffect "; use $0", "v"(i32 %v185) call void asm sideeffect "; use $0", "v"(i32 %v186) call void asm sideeffect "; use $0", "v"(i32 %v187) call void asm sideeffect "; use $0", "v"(i32 %v188) call void asm sideeffect "; use $0", "v"(i32 %v189) call void asm sideeffect "; use $0", "v"(i32 %v190) call void asm sideeffect "; use $0", "v"(i32 %v191) call void asm sideeffect "; use $0", "v"(i32 %v192) call void asm sideeffect "; use $0", "v"(i32 %v193) call void asm sideeffect "; use $0", "v"(i32 %v194) call void asm sideeffect "; use $0", "v"(i32 %v195) call void asm sideeffect "; use $0", "v"(i32 %v196) call void asm sideeffect "; use $0", "v"(i32 %v197) call void asm sideeffect "; use $0", "v"(i32 %v198) call void asm sideeffect "; use $0", "v"(i32 %v199) call void asm sideeffect "; use $0", "v"(i32 %v200) call void asm sideeffect "; use $0", "v"(i32 %v201) call void asm sideeffect "; use $0", "v"(i32 %v202) call void asm sideeffect "; use $0", "v"(i32 %v203) call void asm sideeffect "; use $0", "v"(i32 %v204) call void asm sideeffect "; use $0", "v"(i32 %v205) call void asm sideeffect "; use $0", "v"(i32 %v206) call void asm sideeffect "; use $0", "v"(i32 %v207) call void asm sideeffect "; use $0", "v"(i32 %v208) call void asm sideeffect "; use $0", "v"(i32 %v209) call void asm sideeffect "; use $0", "v"(i32 %v210) call void asm sideeffect "; use $0", "v"(i32 %v211) call void asm sideeffect "; use $0", "v"(i32 %v212) call void asm sideeffect "; use $0", "v"(i32 %v213) call void asm sideeffect "; use $0", "v"(i32 %v214) call void asm sideeffect "; use $0", "v"(i32 %v215) call void asm sideeffect "; use $0", "v"(i32 %v216) call void asm sideeffect "; use $0", "v"(i32 %v217) call void asm sideeffect "; use $0", "v"(i32 %v218) call void asm sideeffect "; use $0", "v"(i32 %v219) call void asm sideeffect "; use $0", "v"(i32 %v220) call void asm sideeffect "; use $0", "v"(i32 %v221) call void asm sideeffect "; use $0", "v"(i32 %v222) call void asm sideeffect "; use $0", "v"(i32 %v223) call void asm sideeffect "; use $0", "v"(i32 %v224) call void asm sideeffect "; use $0", "v"(i32 %v225) call void asm sideeffect "; use $0", "v"(i32 %v226) call void asm sideeffect "; use $0", "v"(i32 %v227) call void asm sideeffect "; use $0", "v"(i32 %v228) call void asm sideeffect "; use $0", "v"(i32 %v229) call void asm sideeffect "; use $0", "v"(i32 %v230) call void asm sideeffect "; use $0", "v"(i32 %v231) call void asm sideeffect "; use $0", "v"(i32 %v232) call void asm sideeffect "; use $0", "v"(i32 %v233) call void asm sideeffect "; use $0", "v"(i32 %v234) call void asm sideeffect "; use $0", "v"(i32 %v235) call void asm sideeffect "; use $0", "v"(i32 %v236) call void asm sideeffect "; use $0", "v"(i32 %v237) call void asm sideeffect "; use $0", "v"(i32 %v238) call void asm sideeffect "; use $0", "v"(i32 %v239) call void asm sideeffect "; use $0", "v"(i32 %v240) call void asm sideeffect "; use $0", "v"(i32 %v241) call void asm sideeffect "; use $0", "v"(i32 %v242) call void asm sideeffect "; use $0", "v"(i32 %v243) call void asm sideeffect "; use $0", "v"(i32 %v244) call void asm sideeffect "; use $0", "v"(i32 %v245) call void asm sideeffect "; use $0", "v"(i32 %v246) call void asm sideeffect "; use $0", "v"(i32 %v247) call void asm sideeffect "; use $0", "v"(i32 %v248) call void asm sideeffect "; use $0", "v"(i32 %v249) call void asm sideeffect "; use $0", "v"(i32 %v250) call void asm sideeffect "; use $0", "v"(i32 %v251) call void asm sideeffect "; use $0", "v"(i32 %v252) call void asm sideeffect "; use $0", "v"(i32 %v253) call void asm sideeffect "; use $0", "v"(i32 %v254) call void asm sideeffect "; use $0", "v"(i32 %v255) ret void } define internal void @use512vgprs() { %v0 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v1 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v2 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v3 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v4 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v5 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v6 = call <32 x i32> asm sideeffect "; def $0", "=v"() %v7 = call <32 x i32> asm sideeffect "; def $0", "=v"() call void @use256vgprs() call void asm sideeffect "; use $0", "v"(<32 x i32> %v0) call void asm sideeffect "; use $0", "v"(<32 x i32> %v1) call void asm sideeffect "; use $0", "v"(<32 x i32> %v2) call void asm sideeffect "; use $0", "v"(<32 x i32> %v3) call void asm sideeffect "; use $0", "v"(<32 x i32> %v4) call void asm sideeffect "; use $0", "v"(<32 x i32> %v5) call void asm sideeffect "; use $0", "v"(<32 x i32> %v6) call void asm sideeffect "; use $0", "v"(<32 x i32> %v7) ret void } define void @foo() #0 { ret void } attributes #0 = { noinline } ; GCN-LABEL: {{^}}k256_w8: ; GFX90A: NumVgprs: 32 ; GFX90A: NumAgprs: 32 ; GFX90A: TotalNumVgprs: 64 define amdgpu_kernel void @k256_w8() #2568 { call void @foo() call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k256_w8_no_agprs: ; GFX90A: NumVgprs: 64 ; GFX90A: NumAgprs: 0 ; GFX90A: TotalNumVgprs: 64 define amdgpu_kernel void @k256_w8_no_agprs() #2568 { call void @use256vgprs() ret void } attributes #2568 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="8" } ; GCN-LABEL: {{^}}k256_w4: ; GFX90A: NumVgprs: 64 ; GFX90A: NumAgprs: 64 ; GFX90A: TotalNumVgprs: 128 define amdgpu_kernel void @k256_w4() #2564 { call void @foo() call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k256_w4_no_agprs: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 0 ; GFX90A: TotalNumVgprs: 128 define amdgpu_kernel void @k256_w4_no_agprs() #2564 { call void @use256vgprs() ret void } attributes #2564 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="4" } ; GCN-LABEL: {{^}}k256_w2: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 128 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k256_w2() #2562 { call void @foo() call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k256_w2_no_agprs: ; GFX90A: NumVgprs: 256 ; GFX90A: NumAgprs: 0 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k256_w2_no_agprs() #2562 { call void @use256vgprs() ret void } attributes #2562 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="2" } ; GCN-LABEL: {{^}}k256_w1: ; GFX90A: NumVgprs: 256 ; GFX90A: NumAgprs: 256 ; GFX90A: TotalNumVgprs: 512 define amdgpu_kernel void @k256_w1() #2561 { call void @foo() call void @use512vgprs() ret void } ; GCN-LABEL: {{^}}k256_w1_no_agprs: ; GFX90A: NumVgprs: 256 ; GFX90A: NumAgprs: 256 ; GFX90A: TotalNumVgprs: 512 define amdgpu_kernel void @k256_w1_no_agprs() #2561 { call void @use512vgprs() ret void } attributes #2561 = { nounwind "amdgpu-flat-work-group-size"="256,256" "amdgpu-waves-per-eu"="1" } ; GCN-LABEL: {{^}}k512_no_agprs: ; GFX90A: NumVgprs: 256 ; GFX90A: NumAgprs: 0 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k512_no_agprs() #512 { call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k512_call: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 128 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k512_call() #512 { call void @foo() call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k512_virtual_agpr: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 128 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k512_virtual_agpr() #512 { %a0 = call i32 asm sideeffect "; def $0", "=a"() call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k512_physical_agpr: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 128 ; GFX90A: TotalNumVgprs: 256 define amdgpu_kernel void @k512_physical_agpr() #512 { call void asm sideeffect "", "~{a8}" () call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}f512: ; GFX90A: NumVgprs: 12{{[0-9]}} ; GFX90A: NumAgprs: {{[1-9]}} define void @f512() #512 { call void @use256vgprs() ret void } attributes #512 = { nounwind "amdgpu-flat-work-group-size"="512,512" } ; GCN-LABEL: {{^}}k1024: ; GFX90A: NumVgprs: 128 ; GFX90A: NumAgprs: 0 ; GFX90A: TotalNumVgprs: 128 define amdgpu_kernel void @k1024() #1024 { call void @use256vgprs() ret void } ; GCN-LABEL: {{^}}k1024_call: ; GFX90A: NumVgprs: 64 ; GFX90A: NumAgprs: 64 ; GFX90A: TotalNumVgprs: 128 define amdgpu_kernel void @k1024_call() #1024 { call void @foo() call void @use256vgprs() ret void } attributes #1024 = { nounwind "amdgpu-flat-work-group-size"="1024,1024" }