brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.3 KiB · b0bd3fb Raw
289 lines · plain
1; RUN: llc -mtriple=hexagon -machine-sink-split=0 < %s2; REQUIRES: asserts3 4target triple = "hexagon-unknown-linux-gnu"5 6%s.0 = type { double, double, double, double, double, double, i32, double, double, double, double, ptr, i8, [9 x i8], double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, [200 x ptr], [32 x ptr], [32 x i8], i32 }7 8@g0 = external unnamed_addr constant [6 x i8], align 89 10; Function Attrs: nounwind11define i32 @f0(double %a0) #0 {12b0:13  %v0 = call double @f1(ptr @g0) #014  %v1 = call i32 @f2() #015  %v2 = call ptr @f3(i32 undef)16  br i1 undef, label %b1, label %b217 18b1:                                               ; preds = %b019  unreachable20 21b2:                                               ; preds = %b022  br i1 undef, label %b3, label %b423 24b3:                                               ; preds = %b225  unreachable26 27b4:                                               ; preds = %b228  %v3 = mul i32 %v1, 1229  br i1 undef, label %b5, label %b630 31b5:                                               ; preds = %b432  ret i32 033 34b6:                                               ; preds = %b435  %v4 = call i32 @f2() #036  br i1 undef, label %b7, label %b2437 38b7:                                               ; preds = %b639  switch i32 undef, label %b8 [40    i32 0, label %b1541    i32 1, label %b1442    i32 2, label %b1343    i32 3, label %b1244    i32 4, label %b1145    i32 5, label %b1046    i32 6, label %b947  ]48 49b8:                                               ; preds = %b750  unreachable51 52b9:                                               ; preds = %b753  br label %b1054 55b10:                                              ; preds = %b9, %b756  unreachable57 58b11:                                              ; preds = %b759  unreachable60 61b12:                                              ; preds = %b762  br label %b1363 64b13:                                              ; preds = %b12, %b765  unreachable66 67b14:                                              ; preds = %b768  %v5 = call ptr @f4(i32 0) #069  %v6 = icmp ult i32 %v4, 870  br i1 %v6, label %b16, label %b1571 72b15:                                              ; preds = %b14, %b773  unreachable74 75b16:                                              ; preds = %b1476  %v7 = and i32 %v4, 377  br i1 undef, label %b17, label %b1878 79b17:                                              ; preds = %b1680  br i1 undef, label %b19, label %b1881 82b18:                                              ; preds = %b18, %b17, %b1683  %v8 = phi i32 [ %v10, %b18 ], [ 0, %b16 ], [ undef, %b17 ]84  %v9 = shl i32 %v8, 585  %v10 = add nsw i32 %v8, 486  %v11 = icmp eq i32 %v10, %v487  br i1 %v11, label %b19, label %b1888 89b19:                                              ; preds = %b18, %b1790  br i1 undef, label %b20, label %b2391 92b20:                                              ; preds = %b1993  %v12 = icmp eq i32 %v7, 294  br i1 %v12, label %b21, label %b2295 96b21:                                              ; preds = %b2097  %v15 = or i32 0, 1698  %v16 = getelementptr i8, ptr %v2, i32 %v1599  %v18 = load double, ptr undef, align 8, !tbaa !0100  %v19 = fcmp olt double -1.000000e+11, %v18101  %v20 = select i1 %v19, double %v18, double -1.000000e+11102  %v21 = load double, ptr %v2, align 8, !tbaa !0103  %v22 = fcmp olt double -1.000000e+11, %v21104  %v23 = select i1 %v22, double %v21, double -1.000000e+11105  %v24 = load double, ptr %v16, align 8, !tbaa !0106  %v25 = fcmp olt double -1.000000e+11, %v24107  %v26 = select i1 %v25, double %v24, double -1.000000e+11108  %v27 = fcmp ogt double 1.000000e+11, %v18109  %v28 = select i1 %v27, double %v18, double 1.000000e+11110  %v29 = fcmp ogt double 1.000000e+11, %v21111  %v30 = select i1 %v29, double %v21, double 1.000000e+11112  %v31 = fcmp ogt double 1.000000e+11, %v24113  %v32 = select i1 %v31, double %v24, double 1.000000e+11114  %v33 = add i32 0, 1115  %v34 = getelementptr i8, ptr %v2, i32 32116  br label %b22117 118b22:                                              ; preds = %b21, %b20119  %v35 = phi double [ %v20, %b21 ], [ -1.000000e+11, %b20 ]120  %v36 = phi double [ %v28, %b21 ], [ 1.000000e+11, %b20 ]121  %v37 = phi double [ %v23, %b21 ], [ -1.000000e+11, %b20 ]122  %v38 = phi double [ %v30, %b21 ], [ 1.000000e+11, %b20 ]123  %v39 = phi double [ %v26, %b21 ], [ -1.000000e+11, %b20 ]124  %v40 = phi double [ %v32, %b21 ], [ 1.000000e+11, %b20 ]125  %v41 = phi ptr [ %v34, %b21 ], [ %v2, %b20 ]126  %v42 = phi i32 [ %v33, %b21 ], [ 0, %b20 ]127  %v43 = shl nsw i32 %v42, 5128  %v45 = or i32 %v43, 8129  %v46 = getelementptr i8, ptr %v2, i32 %v45130  %v48 = load double, ptr %v41, align 8, !tbaa !0131  %v49 = select i1 undef, double %v48, double %v35132  %v50 = load double, ptr %v46, align 8, !tbaa !0133  %v51 = fcmp olt double %v37, %v50134  %v52 = select i1 %v51, double %v50, double %v37135  %v53 = load double, ptr undef, align 8, !tbaa !0136  %v54 = fcmp olt double %v39, %v53137  %v55 = select i1 %v54, double %v53, double %v39138  %v56 = fcmp ogt double %v36, %v48139  %v57 = select i1 %v56, double %v48, double %v36140  %v58 = fcmp ogt double %v38, %v50141  %v59 = select i1 %v58, double %v50, double %v38142  %v60 = select i1 undef, double %v53, double %v40143  %v61 = add i32 %v42, 1144  br i1 undef, label %b24, label %b23145 146b23:                                              ; preds = %b23, %b22, %b19147  %v62 = phi double [ %v79, %b23 ], [ 1.000000e+11, %b19 ], [ %v57, %b22 ]148  %v63 = phi double [ %v81, %b23 ], [ 1.000000e+11, %b19 ], [ %v59, %b22 ]149  %v64 = phi i32 [ %v82, %b23 ], [ 0, %b19 ], [ %v61, %b22 ]150  %v65 = shl i32 %v64, 5151  %v66 = load double, ptr undef, align 8, !tbaa !0152  %v67 = load double, ptr undef, align 8, !tbaa !0153  %v68 = select i1 undef, double %v66, double %v62154  %v69 = select i1 undef, double %v67, double %v63155  %v70 = load double, ptr undef, align 8, !tbaa !0156  %v71 = select i1 false, double 0.000000e+00, double %v68157  %v72 = select i1 undef, double %v70, double %v69158  %v74 = load double, ptr undef, align 8, !tbaa !0159  %v75 = fcmp ogt double %v71, 0.000000e+00160  %v76 = select i1 %v75, double 0.000000e+00, double %v71161  %v77 = select i1 undef, double %v74, double %v72162  %v78 = load double, ptr undef, align 8, !tbaa !0163  %v79 = select i1 undef, double %v78, double %v76164  %v80 = fcmp ogt double %v77, 0.000000e+00165  %v81 = select i1 %v80, double 0.000000e+00, double %v77166  %v82 = add i32 %v64, 4167  %v83 = icmp eq i32 %v82, %v4168  br i1 %v83, label %b24, label %b23169 170b24:                                              ; preds = %b23, %b22, %b6171  %v84 = phi double [ -1.000000e+11, %b6 ], [ %v49, %b22 ], [ undef, %b23 ]172  %v85 = phi double [ -1.000000e+11, %b6 ], [ %v52, %b22 ], [ 0.000000e+00, %b23 ]173  %v86 = phi double [ -1.000000e+11, %b6 ], [ %v55, %b22 ], [ 0.000000e+00, %b23 ]174  %v87 = phi double [ 1.000000e+11, %b6 ], [ %v60, %b22 ], [ undef, %b23 ]175  %v88 = fsub double %v84, undef176  %v89 = fsub double %v85, undef177  %v90 = fadd double undef, 1.000000e+00178  %v91 = fptosi double %v90 to i32179  %v92 = fsub double %v86, %v87180  %v93 = fdiv double %v92, %v0181  %v94 = fadd double %v93, 1.000000e+00182  %v95 = fptosi double %v94 to i32183  br i1 undef, label %b25, label %b27184 185b25:                                              ; preds = %b24186  %v96 = fdiv double %v88, 0.000000e+00187  %v97 = fadd double %v96, 1.000000e+00188  %v98 = fptosi double %v97 to i32189  %v99 = fdiv double %v89, 0.000000e+00190  %v100 = fadd double %v99, 1.000000e+00191  %v101 = fptosi double %v100 to i32192  %v102 = fadd double undef, 1.000000e+00193  %v103 = fptosi double %v102 to i32194  %v104 = call ptr @f3(i32 undef)195  br i1 false, label %b26, label %b27196 197b26:                                              ; preds = %b25198  unreachable199 200b27:                                              ; preds = %b25, %b24201  %v105 = phi ptr [ %v104, %b25 ], [ undef, %b24 ]202  %v106 = phi i32 [ %v103, %b25 ], [ %v95, %b24 ]203  %v107 = phi i32 [ %v101, %b25 ], [ %v91, %b24 ]204  %v108 = phi i32 [ %v98, %b25 ], [ undef, %b24 ]205  %v109 = phi double [ 0.000000e+00, %b25 ], [ %v0, %b24 ]206  %v110 = mul i32 %v108, 232207  %v111 = icmp sgt i32 %v106, 0208  %v112 = mul i32 %v107, 232209  %v113 = mul i32 %v112, %v108210  %v114 = fmul double %v109, 5.000000e-01211  %v115 = and i32 %v106, 3212  %v116 = icmp ult i32 %v106, 4213  br label %b28214 215b28:                                              ; preds = %b35, %b27216  %v117 = phi i32 [ %v146, %b35 ], [ 0, %b27 ]217  %v118 = mul i32 %v117, 232218  br i1 undef, label %b29, label %b35219 220b29:                                              ; preds = %b28221  %v119 = add i32 %v118, 8222  %v120 = add i32 %v118, 16223  br i1 %v111, label %b30, label %b35224 225b30:                                              ; preds = %b34, %b29226  %v121 = phi i32 [ %v144, %b34 ], [ 0, %b29 ]227  %v122 = mul i32 %v110, %v121228  %v123 = add i32 %v119, %v122229  %v124 = add i32 %v120, %v122230  %v125 = sitofp i32 %v121 to double231  %v126 = fmul double %v125, %v109232  %v127 = fadd double %v126, %v114233  %v128 = fadd double %v127, undef234  switch i32 %v115, label %b33 [235    i32 2, label %b31236    i32 1, label %b32237  ]238 239b31:                                              ; preds = %b30240  %v129 = add i32 %v123, 0241  %v130 = getelementptr i8, ptr %v105, i32 %v129242  store double %v128, ptr %v130, align 8, !tbaa !0243  br label %b32244 245b32:                                              ; preds = %b31, %b30246  %v132 = add nsw i32 0, 1247  br i1 %v116, label %b34, label %b33248 249b33:                                              ; preds = %b33, %b32, %b30250  %v133 = phi i32 [ %v142, %b33 ], [ 0, %b30 ], [ %v132, %b32 ]251  %v134 = mul i32 %v113, %v133252  %v135 = add i32 %v124, %v134253  %v136 = getelementptr i8, ptr %v105, i32 %v135254  %v138 = sitofp i32 %v133 to double255  store double undef, ptr %v136, align 8, !tbaa !0256  %v139 = fmul double undef, %v109257  %v140 = fadd double %v139, %v114258  %v141 = fadd double %v140, %v87259  store double %v141, ptr undef, align 8, !tbaa !0260  %v142 = add nsw i32 %v133, 4261  %v143 = icmp eq i32 %v142, %v106262  br i1 %v143, label %b34, label %b33263 264b34:                                              ; preds = %b33, %b32265  %v144 = add i32 %v121, 1266  %v145 = icmp eq i32 %v144, %v107267  br i1 %v145, label %b35, label %b30268 269b35:                                              ; preds = %b34, %b29, %b28270  %v146 = add i32 %v117, 1271  br label %b28272}273 274declare double @f1(...)275 276declare i32 @f2(...)277 278; Function Attrs: nounwind279declare noalias ptr @f3(i32) #0280 281declare ptr @f4(...)282 283attributes #0 = { nounwind }284 285!0 = !{!1, !1, i64 0}286!1 = !{!"double", !2}287!2 = !{!"omnipotent char", !3}288!3 = !{!"Simple C/C++ TBAA"}289