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