brintos

brintos / llvm-project-archived public Read only

0
0
Text · 19.4 KiB · 2fef066 Raw
495 lines · plain
1; RUN: llc -mtriple=hexagon -O3 -verify-machineinstrs < %s2; REQUIRES: asserts3; Expect clean compilation.4 5target triple = "hexagon"6 7%s.0 = type { i16, i16, [4 x i16], i16, i16, [3 x i16], [3 x [4 x i16]], [3 x i16], [2 x [2 x i16]], i16, i16, i16, i16, [2 x i16], i16, i16, [3 x i16], [17 x i16] }8 9@g0 = external global i1610@g1 = external global [2 x i16]11@g2 = external global [10 x i16]12@g3 = external global %s.013@g4 = external global [160 x i16]14@g5 = external global i1615@g6 = external global i1616@g7 = external global i1617@g8 = external global i1618@g9 = external global i1619@g10 = external global i1620@g11 = external global i1621@g12 = external global [192 x i16]22@g13 = external global [10 x i32]23@g14 = external global i1624 25; Function Attrs: nounwind26define signext i16 @f0(i16 signext %a0, ptr nocapture readonly %a1) #0 {27b0:28  %v0 = alloca i32, align 429  %v1 = alloca i32, align 430  store i32 327685, ptr %v0, align 431  store i32 1048592, ptr %v1, align 432  %v2 = sext i16 %a0 to i3233  switch i32 %v2, label %b35 [34    i32 0, label %b135    i32 1, label %b936    i32 2, label %b1137    i32 3, label %b1538    i32 4, label %b2039    i32 5, label %b3040  ]41 42b1:                                               ; preds = %b043  %v3 = load i16, ptr %a1, align 2, !tbaa !044  %v4 = icmp eq i16 %v3, -145  br i1 %v4, label %b2, label %b446 47b2:                                               ; preds = %b148  %v5 = load i16, ptr @g0, align 2, !tbaa !049  %v6 = add i16 %v5, 150  store i16 %v6, ptr @g0, align 2, !tbaa !051  %v7 = icmp sgt i16 %v6, 252  br i1 %v7, label %b3, label %b553 54b3:                                               ; preds = %b255  store i16 3, ptr @g0, align 2, !tbaa !056  br label %b3557 58b4:                                               ; preds = %b159  store i16 0, ptr @g0, align 2, !tbaa !060  br label %b561 62b5:                                               ; preds = %b4, %b263  %v8 = load i16, ptr %a1, align 2, !tbaa !064  %v9 = icmp ne i16 %v8, 065  %v10 = load i16, ptr @g1, align 266  %v11 = icmp eq i16 %v10, 067  %v12 = and i1 %v9, %v1168  br i1 %v12, label %b6, label %b3569 70b6:                                               ; preds = %b571  call void @f1(ptr %v0, ptr %v1, ptr @g2, ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 2, i32 0), ptr @g4)72  %v15 = load i16, ptr @g2, align 2, !tbaa !073  %v16 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 1), align 2, !tbaa !074  %v17 = icmp sgt i16 %v15, %v1675  %v18 = select i1 %v17, i16 %v15, i16 %v1676  %v19 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 2), align 2, !tbaa !077  %v20 = icmp sgt i16 %v18, %v1978  %v21 = select i1 %v20, i16 %v18, i16 %v1979  %v22 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 3), align 2, !tbaa !080  %v23 = icmp sgt i16 %v21, %v2281  %v24 = select i1 %v23, i16 %v21, i16 %v2282  %v25 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 4), align 2, !tbaa !083  %v26 = icmp sle i16 %v24, %v2584  %v27 = xor i1 %v23, true85  %v28 = or i1 %v26, %v2786  %v29 = select i1 %v26, i16 %v25, i16 %v2287  %v30 = select i1 %v28, i16 %v29, i16 %v2188  %v31 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 5), align 2, !tbaa !089  %v32 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 6), align 2, !tbaa !090  %v33 = icmp slt i16 %v31, %v3291  %v34 = select i1 %v33, i16 %v31, i16 %v3292  %v35 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 7), align 2, !tbaa !093  %v36 = icmp slt i16 %v34, %v3594  %v37 = select i1 %v36, i16 %v34, i16 %v3595  %v38 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 8), align 2, !tbaa !096  %v39 = icmp slt i16 %v37, %v3897  %v40 = select i1 %v39, i16 %v37, i16 %v3898  %v41 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 9), align 2, !tbaa !099  %v42 = icmp sge i16 %v40, %v41100  %v43 = xor i1 %v39, true101  %v44 = or i1 %v42, %v43102  %v45 = select i1 %v42, i16 %v41, i16 %v38103  %v46 = select i1 %v44, i16 %v45, i16 %v37104  %v47 = icmp slt i16 %v30, %v46105  br i1 %v47, label %b7, label %b35106 107b7:                                               ; preds = %b6108  %v48 = load i16, ptr @g5, align 2, !tbaa !0109  %v49 = icmp eq i16 %v48, 4110  %v50 = load i16, ptr @g6, align 2111  %v51 = icmp eq i16 %v50, 0112  %v52 = and i1 %v49, %v51113  br i1 %v52, label %b35, label %b8114 115b8:                                               ; preds = %b7116  br label %b35117 118b9:                                               ; preds = %b0119  store i16 0, ptr @g0, align 2, !tbaa !0120  %v53 = load i16, ptr %a1, align 2, !tbaa !0121  %v54 = icmp eq i16 %v53, 0122  %v55 = zext i1 %v54 to i16123  %v56 = getelementptr i16, ptr %a1, i32 1124  %v57 = load i16, ptr %v56, align 2, !tbaa !0125  %v58 = icmp eq i16 %v57, 0126  %v59 = zext i1 %v58 to i16127  %v60 = add nuw nsw i16 %v59, %v55128  %v61 = getelementptr inbounds i16, ptr %a1, i32 2129  %v62 = load i16, ptr %v61, align 2, !tbaa !0130  %v63 = icmp ult i16 %v62, 256131  %v64 = zext i1 %v63 to i16132  %v65 = add nuw nsw i16 %v64, %v60133  %v66 = load i16, ptr @g1, align 2134  %v67 = icmp eq i16 %v65, 3135  %v68 = icmp ne i16 %v66, 0136  %v69 = or i1 %v68, %v67137  %v70 = load i16, ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 9), align 2138  %v71 = icmp eq i16 %v70, 3139  %v72 = or i1 %v71, %v69140  br i1 %v72, label %b35, label %b10141 142b10:                                              ; preds = %b9143  br label %b35144 145b11:                                              ; preds = %b0146  store i16 0, ptr @g0, align 2, !tbaa !0147  %v73 = load i16, ptr %a1, align 2, !tbaa !0148  %v74 = icmp eq i16 %v73, 0149  %v75 = zext i1 %v74 to i16150  %v76 = getelementptr i16, ptr %a1, i32 1151  %v77 = load i16, ptr %v76, align 2, !tbaa !0152  %v78 = icmp eq i16 %v77, 0153  %v79 = zext i1 %v78 to i16154  %v80 = add nuw nsw i16 %v79, %v75155  %v81 = getelementptr inbounds i16, ptr %a1, i32 2156  %v82 = load i16, ptr %v81, align 2, !tbaa !0157  %v83 = icmp ult i16 %v82, 256158  %v84 = zext i1 %v83 to i16159  %v85 = add nuw nsw i16 %v84, %v80160  %v86 = icmp ne i16 %v85, 3161  %v87 = load i16, ptr @g1, align 2162  %v88 = icmp eq i16 %v87, 0163  %v89 = and i1 %v88, %v86164  br i1 %v89, label %b12, label %b35165 166b12:                                              ; preds = %b11167  %v90 = load i16, ptr @g5, align 2, !tbaa !0168  switch i16 %v90, label %b14 [169    i16 1, label %b35170    i16 2, label %b13171  ]172 173b13:                                              ; preds = %b12174  %v91 = load i16, ptr @g7, align 2, !tbaa !0175  %v92 = load i16, ptr @g6, align 2176  %v93 = or i16 %v92, %v91177  %v94 = icmp eq i16 %v93, 0178  br i1 %v94, label %b35, label %b14179 180b14:                                              ; preds = %b13, %b12181  br label %b35182 183b15:                                              ; preds = %b0184  store i16 0, ptr @g0, align 2, !tbaa !0185  %v95 = load i16, ptr %a1, align 2, !tbaa !0186  %v96 = icmp eq i16 %v95, 0187  %v97 = zext i1 %v96 to i16188  %v98 = getelementptr i16, ptr %a1, i32 1189  %v99 = load i16, ptr %v98, align 2, !tbaa !0190  %v100 = icmp eq i16 %v99, 0191  %v101 = zext i1 %v100 to i16192  %v102 = add nuw nsw i16 %v101, %v97193  %v103 = getelementptr i16, ptr %a1, i32 2194  %v104 = load i16, ptr %v103, align 2, !tbaa !0195  %v105 = icmp eq i16 %v104, 0196  %v106 = zext i1 %v105 to i16197  %v107 = add nuw nsw i16 %v106, %v102198  %v108 = getelementptr i16, ptr %a1, i32 3199  %v109 = load i16, ptr %v108, align 2, !tbaa !0200  %v110 = icmp eq i16 %v109, 0201  %v111 = zext i1 %v110 to i16202  %v112 = add nuw nsw i16 %v111, %v107203  %v113 = getelementptr i16, ptr %a1, i32 4204  %v114 = load i16, ptr %v113, align 2, !tbaa !0205  %v115 = icmp eq i16 %v114, 0206  %v116 = zext i1 %v115 to i16207  %v117 = add nuw nsw i16 %v116, %v112208  %v118 = icmp eq i16 %v117, 5209  br i1 %v118, label %b35, label %b16210 211b16:                                              ; preds = %b15212  %v119 = load i16, ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 3), align 2, !tbaa !4213  switch i16 %v119, label %b17 [214    i16 120, label %b19215    i16 115, label %b19216  ]217 218b17:                                              ; preds = %b16219  %v120 = icmp sgt i16 %v119, 100220  br i1 %v120, label %b35, label %b18221 222b18:                                              ; preds = %b17223  tail call void @f2(ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 2, i32 0), ptr @g2)224  %v121 = load i16, ptr @g2, align 2, !tbaa !0225  %v122 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 1), align 2, !tbaa !0226  %v123 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 2), align 2, !tbaa !0227  %v124 = icmp sgt i16 %v122, %v123228  %v125 = select i1 %v124, i16 %v122, i16 %v123229  %v126 = icmp sgt i16 %v121, %v125230  %v127 = select i1 %v126, i16 %v121, i16 %v125231  %v128 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 6), align 2, !tbaa !0232  %v129 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 7), align 2, !tbaa !0233  %v130 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 8), align 2, !tbaa !0234  %v131 = icmp slt i16 %v129, %v130235  %v132 = select i1 %v131, i16 %v129, i16 %v130236  %v133 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 9), align 2, !tbaa !0237  %v134 = icmp slt i16 %v132, %v133238  %v135 = select i1 %v134, i16 %v132, i16 %v133239  %v136 = icmp slt i16 %v128, %v135240  %v137 = select i1 %v136, i16 %v128, i16 %v135241  %v138 = icmp slt i16 %v127, %v137242  br i1 %v138, label %b19, label %b35243 244b19:                                              ; preds = %b18, %b16, %b16245  br label %b35246 247b20:                                              ; preds = %b0248  store i16 0, ptr @g0, align 2, !tbaa !0249  %v139 = load i16, ptr %a1, align 2, !tbaa !0250  %v140 = icmp eq i16 %v139, 0251  %v141 = zext i1 %v140 to i16252  %v142 = getelementptr i16, ptr %a1, i32 1253  %v143 = load i16, ptr %v142, align 2, !tbaa !0254  %v144 = icmp eq i16 %v143, 0255  %v145 = zext i1 %v144 to i16256  %v146 = add nuw nsw i16 %v145, %v141257  %v147 = getelementptr i16, ptr %a1, i32 2258  %v148 = load i16, ptr %v147, align 2, !tbaa !0259  %v149 = icmp eq i16 %v148, 0260  %v150 = zext i1 %v149 to i16261  %v151 = add nuw nsw i16 %v150, %v146262  %v152 = getelementptr i16, ptr %a1, i32 3263  %v153 = load i16, ptr %v152, align 2, !tbaa !0264  %v154 = icmp eq i16 %v153, 0265  %v155 = zext i1 %v154 to i16266  %v156 = add nuw nsw i16 %v155, %v151267  %v157 = getelementptr i16, ptr %a1, i32 4268  %v158 = load i16, ptr %v157, align 2, !tbaa !0269  %v159 = icmp eq i16 %v158, 0270  %v160 = zext i1 %v159 to i16271  %v161 = add nuw nsw i16 %v160, %v156272  %v162 = getelementptr i16, ptr %a1, i32 5273  %v163 = load i16, ptr %v162, align 2, !tbaa !0274  %v164 = icmp eq i16 %v163, 0275  %v165 = zext i1 %v164 to i16276  %v166 = add nuw nsw i16 %v165, %v161277  %v167 = getelementptr i16, ptr %a1, i32 6278  %v168 = load i16, ptr %v167, align 2, !tbaa !0279  %v169 = icmp eq i16 %v168, 0280  %v170 = zext i1 %v169 to i16281  %v171 = add nuw nsw i16 %v170, %v166282  %v172 = getelementptr i16, ptr %a1, i32 7283  %v173 = load i16, ptr %v172, align 2, !tbaa !0284  %v174 = icmp eq i16 %v173, 0285  %v175 = zext i1 %v174 to i16286  %v176 = add i16 %v175, %v171287  %v177 = getelementptr i16, ptr %a1, i32 8288  %v178 = load i16, ptr %v177, align 2, !tbaa !0289  %v179 = icmp eq i16 %v178, 0290  %v180 = zext i1 %v179 to i16291  %v181 = add i16 %v180, %v176292  %v182 = getelementptr i16, ptr %a1, i32 9293  %v183 = load i16, ptr %v182, align 2, !tbaa !0294  %v184 = icmp eq i16 %v183, 0295  %v185 = zext i1 %v184 to i16296  %v186 = add i16 %v185, %v181297  %v187 = getelementptr inbounds i16, ptr %a1, i32 10298  %v188 = load i16, ptr %v187, align 2, !tbaa !0299  %v189 = icmp ult i16 %v188, 32300  %v190 = zext i1 %v189 to i16301  %v191 = add i16 %v190, %v186302  %v192 = icmp eq i16 %v191, 11303  br i1 %v192, label %b35, label %b21304 305b21:                                              ; preds = %b20306  tail call void @f3(ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 2, i32 0), ptr @g2)307  %v193 = load i16, ptr @g8, align 2, !tbaa !0308  %v194 = icmp eq i16 %v193, 0309  br i1 %v194, label %b22, label %b35310 311b22:                                              ; preds = %b21312  %v195 = load i16, ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 3), align 2, !tbaa !4313  %v196 = icmp sgt i16 %v195, 100314  br i1 %v196, label %b35, label %b23315 316b23:                                              ; preds = %b22317  %v197 = load i16, ptr @g2, align 2, !tbaa !0318  %v198 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 1), align 2, !tbaa !0319  %v199 = icmp sgt i16 %v197, %v198320  %v200 = select i1 %v199, i16 %v197, i16 %v198321  %v201 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 4), align 2, !tbaa !0322  %v202 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 5), align 2, !tbaa !0323  %v203 = icmp slt i16 %v201, %v202324  %v204 = select i1 %v203, i16 %v201, i16 %v202325  %v205 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 6), align 2, !tbaa !0326  %v206 = icmp slt i16 %v204, %v205327  %v207 = select i1 %v206, i16 %v204, i16 %v205328  %v208 = icmp slt i16 %v200, %v207329  br i1 %v208, label %b24, label %b35330 331b24:                                              ; preds = %b23332  %v209 = load i16, ptr @g5, align 2, !tbaa !0333  switch i16 %v209, label %b26 [334    i16 1, label %b35335    i16 2, label %b25336  ]337 338b25:                                              ; preds = %b24339  %v210 = load i16, ptr @g7, align 2, !tbaa !0340  %v211 = load i16, ptr @g6, align 2341  %v212 = or i16 %v211, %v210342  %v213 = icmp eq i16 %v212, 0343  br i1 %v213, label %b35, label %b27344 345b26:                                              ; preds = %b24346  %v214 = load i16, ptr @g6, align 2347  %v215 = icmp eq i16 %v214, 0348  br i1 %v215, label %b28, label %b35349 350b27:                                              ; preds = %b25351  %v216 = load i16, ptr @g9, align 2352  %v217 = icmp eq i16 %v216, 0353  br i1 %v217, label %b28, label %b35354 355b28:                                              ; preds = %b27, %b26356  %v218 = tail call signext i16 @f4(i16 signext %v195, i16 signext 20)357  store i16 %v218, ptr @g10, align 2, !tbaa !0358  %v219 = load i16, ptr @g11, align 2, !tbaa !0359  %v220 = tail call signext i16 @f6(i16 signext %v218, i16 signext %v219)360  %v221 = tail call signext i16 @f5(i16 signext %v220)361  %v222 = icmp sgt i16 %v221, 15362  br i1 %v222, label %b29, label %b35363 364b29:                                              ; preds = %b28365  call void @llvm.memset.p0.i32(ptr align 2 @g12, i8 0, i32 256, i1 false)366  call void @llvm.memset.p0.i32(ptr align 4 @g13, i8 0, i32 40, i1 false)367  tail call void @f7()368  br label %b35369 370b30:                                              ; preds = %b0371  store i16 0, ptr @g0, align 2, !tbaa !0372  %v223 = load i16, ptr %a1, align 2, !tbaa !0373  %v224 = icmp eq i16 %v223, 0374  %v225 = zext i1 %v224 to i16375  %v226 = getelementptr i16, ptr %a1, i32 1376  %v227 = load i16, ptr %v226, align 2, !tbaa !0377  %v228 = icmp eq i16 %v227, 0378  %v229 = zext i1 %v228 to i16379  %v230 = add nuw nsw i16 %v229, %v225380  %v231 = getelementptr i16, ptr %a1, i32 2381  %v232 = load i16, ptr %v231, align 2, !tbaa !0382  %v233 = icmp eq i16 %v232, 0383  %v234 = zext i1 %v233 to i16384  %v235 = add nuw nsw i16 %v234, %v230385  %v236 = getelementptr i16, ptr %a1, i32 3386  %v237 = load i16, ptr %v236, align 2, !tbaa !0387  %v238 = icmp eq i16 %v237, 0388  %v239 = zext i1 %v238 to i16389  %v240 = add nuw nsw i16 %v239, %v235390  %v241 = getelementptr i16, ptr %a1, i32 4391  %v242 = load i16, ptr %v241, align 2, !tbaa !0392  %v243 = icmp eq i16 %v242, 0393  %v244 = zext i1 %v243 to i16394  %v245 = add nuw nsw i16 %v244, %v240395  %v246 = getelementptr i16, ptr %a1, i32 5396  %v247 = load i16, ptr %v246, align 2, !tbaa !0397  %v248 = icmp eq i16 %v247, 0398  %v249 = zext i1 %v248 to i16399  %v250 = add nuw nsw i16 %v249, %v245400  %v251 = getelementptr i16, ptr %a1, i32 6401  %v252 = load i16, ptr %v251, align 2, !tbaa !0402  %v253 = icmp eq i16 %v252, 0403  %v254 = zext i1 %v253 to i16404  %v255 = add nuw nsw i16 %v254, %v250405  %v256 = getelementptr i16, ptr %a1, i32 7406  %v257 = load i16, ptr %v256, align 2, !tbaa !0407  %v258 = icmp eq i16 %v257, 0408  %v259 = zext i1 %v258 to i16409  %v260 = add i16 %v259, %v255410  %v261 = getelementptr i16, ptr %a1, i32 8411  %v262 = load i16, ptr %v261, align 2, !tbaa !0412  %v263 = icmp eq i16 %v262, 0413  %v264 = zext i1 %v263 to i16414  %v265 = add i16 %v264, %v260415  %v266 = getelementptr i16, ptr %a1, i32 9416  %v267 = load i16, ptr %v266, align 2, !tbaa !0417  %v268 = icmp eq i16 %v267, 0418  %v269 = zext i1 %v268 to i16419  %v270 = add i16 %v269, %v265420  %v271 = getelementptr inbounds i16, ptr %a1, i32 10421  %v272 = load i16, ptr %v271, align 2, !tbaa !0422  %v273 = icmp ult i16 %v272, 32423  %v274 = zext i1 %v273 to i16424  %v275 = add i16 %v274, %v270425  %v276 = icmp eq i16 %v275, 11426  br i1 %v276, label %b35, label %b31427 428b31:                                              ; preds = %b30429  tail call void @f3(ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 2, i32 0), ptr @g2)430  %v277 = load i16, ptr @g14, align 2, !tbaa !0431  %v278 = icmp eq i16 %v277, 0432  br i1 %v278, label %b32, label %b34433 434b32:                                              ; preds = %b31435  %v279 = load i16, ptr getelementptr inbounds (%s.0, ptr @g3, i32 0, i32 3), align 2, !tbaa !4436  %v280 = icmp sgt i16 %v279, 100437  br i1 %v280, label %b35, label %b33438 439b33:                                              ; preds = %b32440  %v281 = load i16, ptr @g2, align 2, !tbaa !0441  %v282 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 1), align 2, !tbaa !0442  %v283 = icmp sgt i16 %v281, %v282443  %v284 = select i1 %v283, i16 %v281, i16 %v282444  %v285 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 4), align 2, !tbaa !0445  %v286 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 5), align 2, !tbaa !0446  %v287 = icmp slt i16 %v285, %v286447  %v288 = select i1 %v287, i16 %v285, i16 %v286448  %v289 = load i16, ptr getelementptr inbounds ([10 x i16], ptr @g2, i32 0, i32 6), align 2, !tbaa !0449  %v290 = icmp slt i16 %v288, %v289450  %v291 = select i1 %v290, i16 %v288, i16 %v289451  %v292 = icmp slt i16 %v284, %v291452  br i1 %v292, label %b34, label %b35453 454b34:                                              ; preds = %b33, %b31455  br label %b35456 457b35:                                              ; preds = %b34, %b33, %b32, %b30, %b29, %b28, %b27, %b26, %b25, %b24, %b23, %b22, %b21, %b20, %b19, %b18, %b17, %b15, %b14, %b13, %b12, %b11, %b10, %b9, %b8, %b7, %b6, %b5, %b3, %b0458  %v293 = phi i16 [ 0, %b34 ], [ 1, %b29 ], [ 0, %b19 ], [ 0, %b14 ], [ 0, %b10 ], [ 0, %b3 ], [ 0, %b8 ], [ 1, %b5 ], [ 1, %b6 ], [ 1, %b9 ], [ 1, %b11 ], [ 1, %b12 ], [ 1, %b15 ], [ 1, %b17 ], [ 1, %b18 ], [ 1, %b20 ], [ 1, %b22 ], [ 1, %b23 ], [ 1, %b24 ], [ 0, %b27 ], [ 0, %b28 ], [ 0, %b21 ], [ 1, %b30 ], [ 1, %b32 ], [ 1, %b33 ], [ 0, %b0 ], [ 1, %b7 ], [ 1, %b13 ], [ 1, %b25 ], [ 0, %b26 ]459  ret i16 %v293460}461 462; Function Attrs: nounwind463declare void @f1(ptr, ptr, ptr, ptr, ptr) #0464 465; Function Attrs: nounwind466declare void @f2(ptr, ptr) #0467 468; Function Attrs: nounwind469declare void @f3(ptr, ptr) #0470 471; Function Attrs: nounwind472declare signext i16 @f4(i16 signext, i16 signext) #0473 474; Function Attrs: nounwind475declare signext i16 @f5(i16 signext) #0476 477; Function Attrs: nounwind478declare signext i16 @f6(i16 signext, i16 signext) #0479 480; Function Attrs: nounwind481declare void @f7() #0482 483; Function Attrs: argmemonly nounwind484declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1) #1485 486attributes #0 = { nounwind }487attributes #1 = { argmemonly nounwind }488 489!0 = !{!1, !1, i64 0}490!1 = !{!"short", !2, i64 0}491!2 = !{!"omnipotent char", !3, i64 0}492!3 = !{!"Simple C/C++ TBAA"}493!4 = !{!5, !1, i64 12}494!5 = !{!"_ZTS6PACKET", !1, i64 0, !1, i64 2, !2, i64 4, !1, i64 12, !1, i64 14, !2, i64 16, !2, i64 22, !2, i64 46, !2, i64 52, !1, i64 60, !1, i64 62, !1, i64 64, !1, i64 66, !2, i64 68, !1, i64 72, !1, i64 74, !2, i64 76, !2, i64 82}495