214 lines · plain
1; RUN: llc -mtriple=hexagon < %s2; REQUIRES: asserts3 4target triple = "hexagon"5 6%s.0 = type { %s.1 }7%s.1 = type { i32, ptr }8 9@g0 = external unnamed_addr constant [6 x [2 x i32]], align 810@g1 = external constant %s.0, align 411 12; Function Attrs: nounwind13define void @f0() #0 {14b0:15 br i1 undef, label %b1, label %b216 17b1: ; preds = %b018 unreachable19 20b2: ; preds = %b021 br i1 undef, label %b3, label %b422 23b3: ; preds = %b224 switch i32 undef, label %b4 [25 i32 10, label %b526 ]27 28b4: ; preds = %b3, %b229 unreachable30 31b5: ; preds = %b332 br i1 undef, label %b7, label %b633 34b6: ; preds = %b535 switch i32 undef, label %b40 [36 i32 10, label %b3837 i32 5, label %b838 ]39 40b7: ; preds = %b541 unreachable42 43b8: ; preds = %b644 br i1 undef, label %b9, label %b3745 46b9: ; preds = %b847 br i1 undef, label %b10, label %b3748 49b10: ; preds = %b950 br i1 undef, label %b12, label %b1151 52b11: ; preds = %b1053 unreachable54 55b12: ; preds = %b1056 br i1 undef, label %b13, label %b1757 58b13: ; preds = %b1259 br i1 undef, label %b14, label %b1560 61b14: ; preds = %b1362 unreachable63 64b15: ; preds = %b1365 br i1 undef, label %b16, label %b1866 67b16: ; preds = %b1568 unreachable69 70b17: ; preds = %b1271 unreachable72 73b18: ; preds = %b1574 br i1 undef, label %b19, label %b2075 76b19: ; preds = %b1877 br label %b2178 79b20: ; preds = %b1880 unreachable81 82b21: ; preds = %b35, %b1983 %v0 = phi i32 [ 0, %b19 ], [ %v43, %b35 ]84 %v1 = phi i32 [ 0, %b19 ], [ %v44, %b35 ]85 %v2 = phi i16 [ undef, %b19 ], [ %v42, %b35 ]86 %v3 = trunc i32 %v1 to i1087 %v4 = lshr i10 366, %v388 %v5 = and i10 %v4, 189 %v6 = icmp eq i10 %v5, 090 br i1 %v6, label %b35, label %b2291 92b22: ; preds = %b2193 %v7 = load i32, ptr undef, align 4, !tbaa !094 %v8 = load i32, ptr undef, align 4, !tbaa !495 %v9 = load i32, ptr undef, align 4, !tbaa !496 %v10 = icmp ne i32 %v8, 097 %v11 = and i1 %v10, undef98 %v12 = and i1 undef, %v1199 br i1 %v12, label %b23, label %b24100 101b23: ; preds = %b22102 %v13 = mul nsw i32 %v9, %v9103 %v14 = sdiv i32 %v13, undef104 %v15 = trunc i32 %v14 to i16105 br label %b24106 107b24: ; preds = %b23, %b22108 %v16 = phi i16 [ %v15, %b23 ], [ 0, %b22 ]109 %v17 = icmp ugt i16 %v16, undef110 %v18 = zext i1 %v17 to i32111 %v19 = add nsw i32 %v18, %v0112 %v20 = load i8, ptr undef, align 4, !tbaa !6113 %v21 = zext i8 %v20 to i32114 %v22 = sub nsw i32 6, %v21115 %v23 = add nsw i32 %v22, -1116 br i1 false, label %b39, label %b25, !prof !19117 118b25: ; preds = %b24119 %v24 = getelementptr inbounds [6 x [2 x i32]], ptr @g0, i32 0, i32 %v21, i32 0120 %v25 = load i32, ptr %v24, align 8, !tbaa !0121 %v26 = icmp eq i32 undef, %v25122 br i1 %v26, label %b26, label %b27123 124b26: ; preds = %b25125 br i1 undef, label %b32, label %b27126 127b27: ; preds = %b26, %b25128 %v27 = getelementptr inbounds [6 x [2 x i32]], ptr @g0, i32 0, i32 %v23, i32 0129 %v28 = load i32, ptr %v27, align 8, !tbaa !0130 %v29 = icmp eq i32 undef, %v28131 br i1 %v29, label %b28, label %b29132 133b28: ; preds = %b27134 br i1 undef, label %b32, label %b29135 136b29: ; preds = %b28, %b27137 %v30 = load i32, ptr undef, align 4, !tbaa !4138 %v31 = load i32, ptr undef, align 4, !tbaa !4139 %v32 = icmp ne i32 %v30, 0140 %v33 = and i1 %v32, undef141 %v34 = and i1 undef, %v33142 br i1 %v34, label %b30, label %b31143 144b30: ; preds = %b29145 %v35 = mul nsw i32 %v31, %v31146 %v36 = sdiv i32 %v35, 0147 %v37 = trunc i32 %v36 to i16148 br label %b31149 150b31: ; preds = %b30, %b29151 %v38 = phi i16 [ %v37, %b30 ], [ 0, %b29 ]152 br label %b32153 154b32: ; preds = %b31, %b28, %b26155 %v39 = phi i16 [ %v38, %b31 ], [ %v2, %b28 ], [ %v2, %b26 ]156 br i1 undef, label %b33, label %b34157 158b33: ; preds = %b32159 call void (ptr, i32, ...) @f1(ptr nonnull @g1, i32 6, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 %v7) #0160 br label %b34161 162b34: ; preds = %b33, %b32163 %v40 = icmp slt i32 %v19, 0164 %v41 = and i1 %v40, undef165 br i1 %v41, label %b35, label %b36166 167b35: ; preds = %b34, %b21168 %v42 = phi i16 [ %v2, %b21 ], [ %v39, %b34 ]169 %v43 = phi i32 [ %v0, %b21 ], [ %v19, %b34 ]170 %v44 = add nuw nsw i32 %v1, 1171 br label %b21172 173b36: ; preds = %b34174 unreachable175 176b37: ; preds = %b9, %b8177 unreachable178 179b38: ; preds = %b6180 unreachable181 182b39: ; preds = %b24183 unreachable184 185b40: ; preds = %b6186 ret void187}188 189; Function Attrs: nounwind190declare void @f1(ptr, i32, ...) #0191 192attributes #0 = { nounwind "target-cpu"="hexagonv55" }193 194!0 = !{!1, !1, i64 0}195!1 = !{!"int", !2, i64 0}196!2 = !{!"omnipotent char", !3, i64 0}197!3 = !{!"Simple C/C++ TBAA"}198!4 = !{!5, !5, i64 0}199!5 = !{!"long", !2, i64 0}200!6 = !{!7, !2, i64 136}201!7 = !{!"x", !8, i64 0, !9, i64 8, !11, i64 52, !14, i64 88, !2, i64 116, !2, i64 117, !18, i64 118, !15, i64 128, !15, i64 132, !2, i64 136, !2, i64 140, !2, i64 180, !12, i64 220}202!8 = !{!"", !2, i64 0, !2, i64 1, !2, i64 2, !2, i64 3, !2, i64 4, !2, i64 5}203!9 = !{!"", !2, i64 0, !5, i64 4, !5, i64 8, !5, i64 12, !5, i64 16, !5, i64 20, !5, i64 24, !10, i64 28, !2, i64 32, !2, i64 33, !10, i64 36, !5, i64 40}204!10 = !{!"any pointer", !2, i64 0}205!11 = !{!"", !5, i64 0, !2, i64 4, !12, i64 20, !2, i64 32}206!12 = !{!"", !13, i64 0, !13, i64 2, !13, i64 4, !13, i64 6, !13, i64 8, !13, i64 10}207!13 = !{!"short", !2, i64 0}208!14 = !{!"", !15, i64 0, !13, i64 2, !13, i64 4, !16, i64 8}209!15 = !{!"", !2, i64 0}210!16 = !{!"", !1, i64 0, !2, i64 4, !2, i64 5, !17, i64 8}211!17 = !{!"", !2, i64 0, !5, i64 4, !5, i64 8}212!18 = !{!"", !2, i64 0, !2, i64 1, !2, i64 2, !2, i64 3, !8, i64 4}213!19 = !{!"branch_weights", i32 4, i32 64}214