brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.5 KiB · 3cd3f6f Raw
368 lines · plain
1; RUN: llc -mtriple=hexagon < %s2; REQUIRES: asserts3 4; This test used to fail with;5;  Assertion `ScavengingFrameIndex >= 0 && "Cannot scavenge register without an6;             emergency spill slot!"' failed.7 8target triple = "hexagon-unknown-linux-gnu"9 10; Function Attrs: nounwind11define hidden fastcc void @f0(ptr nocapture %a0, i32 %a1, i32 %a2, i32 %a3, i32 %a4, ptr nocapture %a5) #0 {12b0:13  %v0 = add i32 %a3, -414  %v1 = icmp ult i32 %v0, %a115  %v2 = add i32 %a2, -216  br i1 %v1, label %b2, label %b117 18b1:                                               ; preds = %b019  %v3 = add i32 %a4, -920  %v4 = icmp ugt i32 %v2, %v321  br i1 %v4, label %b2, label %b322 23b2:                                               ; preds = %b1, %b024  %v5 = add nsw i32 %a4, -125  %v6 = add nsw i32 %a3, -126  %v7 = add i32 %a2, 127  %v8 = add i32 %a2, 228  %v9 = icmp slt i32 %v7, 029  %v10 = icmp slt i32 %v7, %a430  %v11 = select i1 %v10, i32 %v7, i32 %v531  %v12 = select i1 %v9, i32 0, i32 %v1132  %v13 = mul i32 %v12, %a333  %v14 = add i32 %a2, -134  %v15 = icmp slt i32 %v2, 035  %v16 = icmp slt i32 %v2, %a436  %v17 = select i1 %v16, i32 %v2, i32 %v537  %v18 = select i1 %v15, i32 0, i32 %v1738  %v19 = mul i32 %v18, %a339  %v20 = icmp slt i32 %v14, 040  %v21 = icmp slt i32 %v14, %a441  %v22 = select i1 %v21, i32 %v14, i32 %v542  %v23 = select i1 %v20, i32 0, i32 %v2243  %v24 = mul i32 %v23, %a344  %v25 = icmp slt i32 %a2, 045  %v26 = icmp slt i32 %a2, %a446  %v27 = select i1 %v26, i32 %a2, i32 %v547  %v28 = select i1 %v25, i32 0, i32 %v2748  %v29 = mul i32 %v28, %a349  %v30 = add i32 %a2, 350  %v31 = icmp slt i32 %v8, 051  %v32 = icmp slt i32 %v8, %a452  %v33 = select i1 %v32, i32 %v8, i32 %v553  %v34 = select i1 %v31, i32 0, i32 %v3354  %v35 = mul i32 %v34, %a355  %v36 = icmp slt i32 %v30, 056  %v37 = icmp slt i32 %v30, %a457  %v38 = select i1 %v37, i32 %v30, i32 %v558  %v39 = select i1 %v36, i32 0, i32 %v3859  %v40 = mul i32 %v39, %a360  %v41 = add i32 %a2, 461  %v42 = icmp slt i32 %v41, 062  %v43 = icmp slt i32 %v41, %a463  %v44 = select i1 %v43, i32 %v41, i32 %v564  %v45 = select i1 %v42, i32 0, i32 %v4465  %v46 = mul i32 %v45, %a366  %v47 = add i32 %a2, 567  %v48 = icmp slt i32 %v47, 068  %v49 = icmp slt i32 %v47, %a469  %v50 = select i1 %v49, i32 %v47, i32 %v570  %v51 = select i1 %v48, i32 0, i32 %v5071  %v52 = mul i32 %v51, %a372  %v53 = add i32 %a2, 673  %v54 = icmp slt i32 %v53, 074  %v55 = icmp slt i32 %v53, %a475  %v56 = select i1 %v55, i32 %v53, i32 %v576  %v57 = select i1 %v54, i32 0, i32 %v5677  %v58 = mul i32 %v57, %a378  br label %b579 80b3:                                               ; preds = %b181  %v59 = mul i32 %a3, %a282  %v60 = add i32 %v59, %a183  %v61 = getelementptr inbounds i8, ptr %a5, i32 %v6084  %v62 = shl i32 %a3, 185  %v63 = sub i32 0, %v6286  %v64 = sub i32 %a3, %v6287  %v65 = add i32 %v64, %a388  %v66 = add i32 %v65, %a389  %v67 = add i32 %v66, %a390  %v68 = add i32 %v67, %a391  %v69 = add i32 %v68, %a392  %v70 = add i32 %v69, %a393  %v71 = add i32 %v70, %a394  br label %b495 96b4:                                               ; preds = %b4, %b397  %v72 = phi ptr [ %a0, %b3 ], [ %v165, %b4 ]98  %v73 = phi ptr [ %v61, %b3 ], [ %v164, %b4 ]99  %v74 = phi i32 [ 4, %b3 ], [ %v166, %b4 ]100  %v75 = getelementptr inbounds i8, ptr %v73, i32 %v63101  %v76 = load i8, ptr %v75, align 1, !tbaa !0102  %v77 = zext i8 %v76 to i32103  %v78 = getelementptr inbounds i8, ptr %v73, i32 %v64104  %v79 = load i8, ptr %v78, align 1, !tbaa !0105  %v80 = zext i8 %v79 to i32106  %v81 = load i8, ptr %v73, align 1, !tbaa !0107  %v82 = zext i8 %v81 to i32108  %v83 = getelementptr inbounds i8, ptr %v73, i32 %v66109  %v84 = load i8, ptr %v83, align 1, !tbaa !0110  %v85 = zext i8 %v84 to i32111  %v86 = getelementptr inbounds i8, ptr %v73, i32 %v67112  %v87 = load i8, ptr %v86, align 1, !tbaa !0113  %v88 = zext i8 %v87 to i32114  %v89 = getelementptr inbounds i8, ptr %v73, i32 %v68115  %v90 = load i8, ptr %v89, align 1, !tbaa !0116  %v91 = zext i8 %v90 to i32117  %v92 = getelementptr inbounds i8, ptr %v73, i32 %v69118  %v93 = load i8, ptr %v92, align 1, !tbaa !0119  %v94 = zext i8 %v93 to i32120  %v95 = getelementptr inbounds i8, ptr %v73, i32 %v70121  %v96 = load i8, ptr %v95, align 1, !tbaa !0122  %v97 = zext i8 %v96 to i32123  %v98 = getelementptr inbounds i8, ptr %v73, i32 %v71124  %v99 = load i8, ptr %v98, align 1, !tbaa !0125  %v100 = zext i8 %v99 to i32126  %v101 = add nsw i32 %v88, %v80127  %v102 = mul i32 %v101, -5128  %v103 = add nsw i32 %v85, %v82129  %v104 = mul nsw i32 %v103, 20130  %v105 = add i32 %v77, 16131  %v106 = add i32 %v105, %v104132  %v107 = add i32 %v106, %v91133  %v108 = add i32 %v107, %v102134  %v109 = ashr i32 %v108, 5135  %v110 = and i32 %v109, 256136  %v111 = icmp ne i32 %v110, 0137  %v112 = lshr i32 %v108, 31138  %v113 = add i32 %v112, 255139  %v114 = select i1 %v111, i32 %v113, i32 %v109140  %v115 = trunc i32 %v114 to i8141  store i8 %v115, ptr %v72, align 1, !tbaa !0142  %v116 = add nsw i32 %v91, %v82143  %v117 = mul i32 %v116, -5144  %v118 = add nsw i32 %v88, %v85145  %v119 = mul nsw i32 %v118, 20146  %v120 = add i32 %v80, 16147  %v121 = add i32 %v120, %v119148  %v122 = add i32 %v121, %v94149  %v123 = add i32 %v122, %v117150  %v124 = ashr i32 %v123, 5151  %v125 = and i32 %v124, 256152  %v126 = icmp ne i32 %v125, 0153  %v127 = lshr i32 %v123, 31154  %v128 = add i32 %v127, 255155  %v129 = select i1 %v126, i32 %v128, i32 %v124156  %v130 = trunc i32 %v129 to i8157  %v131 = getelementptr inbounds i8, ptr %v72, i32 4158  store i8 %v130, ptr %v131, align 1, !tbaa !0159  %v132 = add nsw i32 %v94, %v85160  %v133 = mul i32 %v132, -5161  %v134 = add nsw i32 %v91, %v88162  %v135 = mul nsw i32 %v134, 20163  %v136 = add i32 %v82, 16164  %v137 = add i32 %v136, %v135165  %v138 = add i32 %v137, %v97166  %v139 = add i32 %v138, %v133167  %v140 = ashr i32 %v139, 5168  %v141 = and i32 %v140, 256169  %v142 = icmp ne i32 %v141, 0170  %v143 = lshr i32 %v139, 31171  %v144 = add i32 %v143, 255172  %v145 = select i1 %v142, i32 %v144, i32 %v140173  %v146 = trunc i32 %v145 to i8174  %v147 = getelementptr inbounds i8, ptr %v72, i32 8175  store i8 %v146, ptr %v147, align 1, !tbaa !0176  %v148 = add nsw i32 %v97, %v88177  %v149 = mul i32 %v148, -5178  %v150 = add nsw i32 %v94, %v91179  %v151 = mul nsw i32 %v150, 20180  %v152 = add i32 %v85, 16181  %v153 = add i32 %v152, %v151182  %v154 = add i32 %v153, %v100183  %v155 = add i32 %v154, %v149184  %v156 = ashr i32 %v155, 5185  %v157 = and i32 %v156, 256186  %v158 = icmp ne i32 %v157, 0187  %v159 = lshr i32 %v155, 31188  %v160 = add i32 %v159, 255189  %v161 = select i1 %v158, i32 %v160, i32 %v156190  %v162 = trunc i32 %v161 to i8191  %v163 = getelementptr inbounds i8, ptr %v72, i32 12192  store i8 %v162, ptr %v163, align 1, !tbaa !0193  %v164 = getelementptr inbounds i8, ptr %v73, i32 1194  %v165 = getelementptr inbounds i8, ptr %v72, i32 1195  %v166 = add i32 %v74, -1196  %v167 = icmp eq i32 %v166, 0197  br i1 %v167, label %b7, label %b4198 199b5:                                               ; preds = %b5, %b2200  %v168 = phi ptr [ %a0, %b2 ], [ %v312, %b5 ]201  %v169 = phi i32 [ 0, %b2 ], [ %v313, %b5 ]202  %v170 = add i32 %v169, %a1203  %v171 = icmp slt i32 %v170, 0204  %v172 = icmp slt i32 %v170, %a3205  %v173 = select i1 %v172, i32 %v170, i32 %v6206  %v174 = select i1 %v171, i32 0, i32 %v173207  %v175 = add i32 %v19, %v174208  %v176 = getelementptr inbounds i8, ptr %a5, i32 %v175209  %v177 = load i8, ptr %v176, align 1, !tbaa !0210  %v178 = zext i8 %v177 to i32211  %v179 = add i32 %v24, %v174212  %v180 = getelementptr inbounds i8, ptr %a5, i32 %v179213  %v181 = load i8, ptr %v180, align 1, !tbaa !0214  %v182 = zext i8 %v181 to i32215  %v183 = mul nsw i32 %v182, -5216  %v184 = add nsw i32 %v183, %v178217  %v185 = add i32 %v29, %v174218  %v186 = getelementptr inbounds i8, ptr %a5, i32 %v185219  %v187 = load i8, ptr %v186, align 1, !tbaa !0220  %v188 = zext i8 %v187 to i32221  %v189 = mul nsw i32 %v188, 20222  %v190 = add nsw i32 %v189, %v184223  %v191 = add i32 %v13, %v174224  %v192 = getelementptr inbounds i8, ptr %a5, i32 %v191225  %v193 = load i8, ptr %v192, align 1, !tbaa !0226  %v194 = zext i8 %v193 to i32227  %v195 = mul nsw i32 %v194, 20228  %v196 = add nsw i32 %v195, %v190229  %v197 = add i32 %v35, %v174230  %v198 = getelementptr inbounds i8, ptr %a5, i32 %v197231  %v199 = load i8, ptr %v198, align 1, !tbaa !0232  %v200 = zext i8 %v199 to i32233  %v201 = mul nsw i32 %v200, -5234  %v202 = add nsw i32 %v201, %v196235  %v203 = add i32 %v40, %v174236  %v204 = getelementptr inbounds i8, ptr %a5, i32 %v203237  %v205 = load i8, ptr %v204, align 1, !tbaa !0238  %v206 = zext i8 %v205 to i32239  %v207 = add nsw i32 %v206, %v202240  %v208 = add nsw i32 %v207, 16241  %v209 = ashr i32 %v208, 5242  %v210 = and i32 %v209, 256243  %v211 = icmp ne i32 %v210, 0244  %v212 = lshr i32 %v208, 31245  %v213 = add i32 %v212, 255246  %v214 = select i1 %v211, i32 %v213, i32 %v209247  %v215 = trunc i32 %v214 to i8248  store i8 %v215, ptr %v168, align 1, !tbaa !0249  %v216 = getelementptr inbounds i8, ptr %v168, i32 4250  %v217 = load i8, ptr %v180, align 1, !tbaa !0251  %v218 = zext i8 %v217 to i32252  %v219 = load i8, ptr %v186, align 1, !tbaa !0253  %v220 = zext i8 %v219 to i32254  %v221 = mul nsw i32 %v220, -5255  %v222 = add nsw i32 %v221, %v218256  %v223 = load i8, ptr %v192, align 1, !tbaa !0257  %v224 = zext i8 %v223 to i32258  %v225 = mul nsw i32 %v224, 20259  %v226 = add nsw i32 %v225, %v222260  %v227 = load i8, ptr %v198, align 1, !tbaa !0261  %v228 = zext i8 %v227 to i32262  %v229 = mul nsw i32 %v228, 20263  %v230 = add nsw i32 %v229, %v226264  %v231 = load i8, ptr %v204, align 1, !tbaa !0265  %v232 = zext i8 %v231 to i32266  %v233 = mul nsw i32 %v232, -5267  %v234 = add nsw i32 %v233, %v230268  %v235 = add i32 %v46, %v174269  %v236 = getelementptr inbounds i8, ptr %a5, i32 %v235270  %v237 = load i8, ptr %v236, align 1, !tbaa !0271  %v238 = zext i8 %v237 to i32272  %v239 = add nsw i32 %v238, %v234273  %v240 = add nsw i32 %v239, 16274  %v241 = ashr i32 %v240, 5275  %v242 = and i32 %v241, 256276  %v243 = icmp ne i32 %v242, 0277  %v244 = lshr i32 %v240, 31278  %v245 = add i32 %v244, 255279  %v246 = select i1 %v243, i32 %v245, i32 %v241280  %v247 = trunc i32 %v246 to i8281  store i8 %v247, ptr %v216, align 1, !tbaa !0282  %v248 = getelementptr inbounds i8, ptr %v168, i32 8283  %v249 = load i8, ptr %v186, align 1, !tbaa !0284  %v250 = zext i8 %v249 to i32285  %v251 = load i8, ptr %v192, align 1, !tbaa !0286  %v252 = zext i8 %v251 to i32287  %v253 = mul nsw i32 %v252, -5288  %v254 = add nsw i32 %v253, %v250289  %v255 = load i8, ptr %v198, align 1, !tbaa !0290  %v256 = zext i8 %v255 to i32291  %v257 = mul nsw i32 %v256, 20292  %v258 = add nsw i32 %v257, %v254293  %v259 = load i8, ptr %v204, align 1, !tbaa !0294  %v260 = zext i8 %v259 to i32295  %v261 = mul nsw i32 %v260, 20296  %v262 = add nsw i32 %v261, %v258297  %v263 = load i8, ptr %v236, align 1, !tbaa !0298  %v264 = zext i8 %v263 to i32299  %v265 = mul nsw i32 %v264, -5300  %v266 = add nsw i32 %v265, %v262301  %v267 = add i32 %v52, %v174302  %v268 = getelementptr inbounds i8, ptr %a5, i32 %v267303  %v269 = load i8, ptr %v268, align 1, !tbaa !0304  %v270 = zext i8 %v269 to i32305  %v271 = add nsw i32 %v270, %v266306  %v272 = add nsw i32 %v271, 16307  %v273 = ashr i32 %v272, 5308  %v274 = and i32 %v273, 256309  %v275 = icmp ne i32 %v274, 0310  %v276 = lshr i32 %v272, 31311  %v277 = add i32 %v276, 255312  %v278 = select i1 %v275, i32 %v277, i32 %v273313  %v279 = trunc i32 %v278 to i8314  store i8 %v279, ptr %v248, align 1, !tbaa !0315  %v280 = getelementptr inbounds i8, ptr %v168, i32 12316  %v281 = load i8, ptr %v192, align 1, !tbaa !0317  %v282 = zext i8 %v281 to i32318  %v283 = load i8, ptr %v198, align 1, !tbaa !0319  %v284 = zext i8 %v283 to i32320  %v285 = mul nsw i32 %v284, -5321  %v286 = add nsw i32 %v285, %v282322  %v287 = load i8, ptr %v204, align 1, !tbaa !0323  %v288 = zext i8 %v287 to i32324  %v289 = mul nsw i32 %v288, 20325  %v290 = add nsw i32 %v289, %v286326  %v291 = load i8, ptr %v236, align 1, !tbaa !0327  %v292 = zext i8 %v291 to i32328  %v293 = mul nsw i32 %v292, 20329  %v294 = add nsw i32 %v293, %v290330  %v295 = load i8, ptr %v268, align 1, !tbaa !0331  %v296 = zext i8 %v295 to i32332  %v297 = mul nsw i32 %v296, -5333  %v298 = add nsw i32 %v297, %v294334  %v299 = add i32 %v58, %v174335  %v300 = getelementptr inbounds i8, ptr %a5, i32 %v299336  %v301 = load i8, ptr %v300, align 1, !tbaa !0337  %v302 = zext i8 %v301 to i32338  %v303 = add nsw i32 %v302, %v298339  %v304 = add nsw i32 %v303, 16340  %v305 = ashr i32 %v304, 5341  %v306 = and i32 %v305, 256342  %v307 = icmp ne i32 %v306, 0343  %v308 = lshr i32 %v304, 31344  %v309 = add i32 %v308, 255345  %v310 = select i1 %v307, i32 %v309, i32 %v305346  %v311 = trunc i32 %v310 to i8347  store i8 %v311, ptr %v280, align 1, !tbaa !0348  %v312 = getelementptr inbounds i8, ptr %v168, i32 1349  %v313 = add i32 %v169, 1350  %v314 = icmp eq i32 %v313, 4351  br i1 %v314, label %b6, label %b5352 353b6:                                               ; preds = %b5354  br label %b8355 356b7:                                               ; preds = %b4357  br label %b8358 359b8:                                               ; preds = %b7, %b6360  ret void361}362 363attributes #0 = { nounwind }364 365!0 = !{!1, !1, i64 0}366!1 = !{!"omnipotent char", !2}367!2 = !{!"Simple C/C++ TBAA"}368