brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.5 KiB · 7591d0d Raw
131 lines · plain
1; RUN: llc -mtriple=hexagon < %s -pipeliner-experimental-cg=true | FileCheck %s2; CHECK: loop0(.LBB0_{{[0-9]+}},#347)3 4target triple = "hexagon"5 6; Function Attrs: norecurse nounwind optsize readonly7define i32 @f0(i32 %a0, ptr nocapture readonly %a1, i32 %a2) local_unnamed_addr #0 {8b0:9  %v0 = lshr i32 %a0, 1610  %v1 = and i32 %a0, 6553511  %v2 = icmp ugt i32 %a2, 555112  br i1 %v2, label %b1, label %b413 14b1:                                               ; preds = %b0, %b315  %v3 = phi i32 [ %v96, %b3 ], [ %v0, %b0 ]16  %v4 = phi i32 [ %v7, %b3 ], [ %a2, %b0 ]17  %v5 = phi ptr [ %v94, %b3 ], [ %a1, %b0 ]18  %v6 = phi i32 [ %v95, %b3 ], [ %v1, %b0 ]19  br label %b220 21b2:                                               ; preds = %b2, %b122  %v8 = phi i32 [ %v6, %b1 ], [ %v89, %b2 ]23  %v9 = phi ptr [ %v5, %b1 ], [ %v91, %b2 ]24  %v10 = phi i32 [ %v3, %b1 ], [ %v90, %b2 ]25  %v11 = phi i32 [ 347, %b1 ], [ %v92, %b2 ]26  %v12 = load i8, ptr %v9, align 1, !tbaa !027  %v13 = zext i8 %v12 to i3228  %v14 = add i32 %v8, %v1329  %v15 = add i32 %v14, %v1030  %v16 = getelementptr inbounds i8, ptr %v9, i32 131  %v17 = load i8, ptr %v16, align 1, !tbaa !032  %v18 = zext i8 %v17 to i3233  %v19 = add i32 %v14, %v1834  %v20 = add i32 %v15, %v1935  %v21 = getelementptr inbounds i8, ptr %v9, i32 236  %v22 = load i8, ptr %v21, align 1, !tbaa !037  %v23 = zext i8 %v22 to i3238  %v24 = add i32 %v19, %v2339  %v25 = add i32 %v20, %v2440  %v26 = getelementptr inbounds i8, ptr %v9, i32 341  %v27 = load i8, ptr %v26, align 1, !tbaa !042  %v28 = zext i8 %v27 to i3243  %v29 = add i32 %v24, %v2844  %v30 = add i32 %v25, %v2945  %v31 = getelementptr inbounds i8, ptr %v9, i32 446  %v32 = load i8, ptr %v31, align 1, !tbaa !047  %v33 = zext i8 %v32 to i3248  %v34 = add i32 %v29, %v3349  %v35 = add i32 %v30, %v3450  %v36 = getelementptr inbounds i8, ptr %v9, i32 551  %v37 = load i8, ptr %v36, align 1, !tbaa !052  %v38 = zext i8 %v37 to i3253  %v39 = add i32 %v34, %v3854  %v40 = add i32 %v35, %v3955  %v41 = getelementptr inbounds i8, ptr %v9, i32 656  %v42 = load i8, ptr %v41, align 1, !tbaa !057  %v43 = zext i8 %v42 to i3258  %v44 = add i32 %v39, %v4359  %v45 = add i32 %v40, %v4460  %v46 = getelementptr inbounds i8, ptr %v9, i32 761  %v47 = load i8, ptr %v46, align 1, !tbaa !062  %v48 = zext i8 %v47 to i3263  %v49 = add i32 %v44, %v4864  %v50 = add i32 %v45, %v4965  %v51 = getelementptr inbounds i8, ptr %v9, i32 866  %v52 = load i8, ptr %v51, align 1, !tbaa !067  %v53 = zext i8 %v52 to i3268  %v54 = add i32 %v49, %v5369  %v55 = add i32 %v50, %v5470  %v56 = getelementptr inbounds i8, ptr %v9, i32 971  %v57 = load i8, ptr %v56, align 1, !tbaa !072  %v58 = zext i8 %v57 to i3273  %v59 = add i32 %v54, %v5874  %v60 = add i32 %v55, %v5975  %v61 = getelementptr inbounds i8, ptr %v9, i32 1076  %v62 = load i8, ptr %v61, align 1, !tbaa !077  %v63 = zext i8 %v62 to i3278  %v64 = add i32 %v59, %v6379  %v65 = add i32 %v60, %v6480  %v66 = getelementptr inbounds i8, ptr %v9, i32 1181  %v67 = load i8, ptr %v66, align 1, !tbaa !082  %v68 = zext i8 %v67 to i3283  %v69 = add i32 %v64, %v6884  %v70 = add i32 %v65, %v6985  %v71 = getelementptr inbounds i8, ptr %v9, i32 1286  %v72 = load i8, ptr %v71, align 1, !tbaa !087  %v73 = zext i8 %v72 to i3288  %v74 = add i32 %v69, %v7389  %v75 = add i32 %v70, %v7490  %v76 = getelementptr inbounds i8, ptr %v9, i32 1391  %v77 = load i8, ptr %v76, align 1, !tbaa !092  %v78 = zext i8 %v77 to i3293  %v79 = add i32 %v74, %v7894  %v80 = add i32 %v75, %v7995  %v81 = getelementptr inbounds i8, ptr %v9, i32 1496  %v82 = load i8, ptr %v81, align 1, !tbaa !097  %v83 = zext i8 %v82 to i3298  %v84 = add i32 %v79, %v8399  %v85 = add i32 %v80, %v84100  %v86 = getelementptr inbounds i8, ptr %v9, i32 15101  %v87 = load i8, ptr %v86, align 1, !tbaa !0102  %v88 = zext i8 %v87 to i32103  %v89 = add i32 %v84, %v88104  %v90 = add i32 %v85, %v89105  %v91 = getelementptr inbounds i8, ptr %v9, i32 16106  %v92 = add nsw i32 %v11, -1107  %v93 = icmp eq i32 %v92, 0108  br i1 %v93, label %b3, label %b2109 110b3:                                               ; preds = %b2111  %v7 = add i32 %v4, -5552112  %v94 = getelementptr i8, ptr %v5, i32 5552113  %v95 = urem i32 %v89, 65521114  %v96 = urem i32 %v90, 65521115  %v97 = icmp ugt i32 %v7, 5551116  br i1 %v97, label %b1, label %b4117 118b4:                                               ; preds = %b3, %b0119  %v98 = phi i32 [ %v0, %b0 ], [ %v96, %b3 ]120  %v99 = phi i32 [ %v1, %b0 ], [ %v95, %b3 ]121  %v100 = shl nuw i32 %v98, 16122  %v101 = or i32 %v100, %v99123  ret i32 %v101124}125 126attributes #0 = { norecurse nounwind optsize readonly "target-cpu"="hexagonv55" }127 128!0 = !{!1, !1, i64 0}129!1 = !{!"omnipotent char", !2, i64 0}130!2 = !{!"Simple C/C++ TBAA"}131