; -enable-misched=false makes the register usage more predictable
; -regalloc=fast just makes the test run faster
; 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
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 {
call void asm sideeffect "; use $0", "a"(i32 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" }