77 lines · plain
1; RUN: llc -mtriple=hexagon -machine-sink-split < %s2; REQUIRES: asserts3; MachineSink should not sink an MI which is used in a non-phi instruction4; in an MBB with multiple predecessors.5 6target triple = "hexagon-unknown--elf"7 8; Function Attrs: nounwind9define void @f0() #0 {10b0:11 br i1 undef, label %b1, label %b212 13b1: ; preds = %b014 unreachable15 16b2: ; preds = %b017 %v0 = load ptr, ptr undef, align 418 %v1 = getelementptr inbounds i8, ptr %v0, i32 119 %v2 = load i8, ptr %v0, align 1, !tbaa !020 %v3 = zext i8 %v2 to i3221 %v4 = shl nuw nsw i32 %v3, 822 br i1 undef, label %b3, label %b523 24b3: ; preds = %b225 br i1 undef, label %b15, label %b426 27b4: ; preds = %b328 br label %b529 30b5: ; preds = %b4, %b231 %v5 = phi ptr [ undef, %b4 ], [ %v1, %b2 ]32 %v6 = load i8, ptr %v5, align 1, !tbaa !033 %v7 = zext i8 %v6 to i3234 %v8 = add nsw i32 %v7, %v435 %v9 = add nsw i32 %v8, -236 br label %b637 38b6: ; preds = %b8, %b539 br i1 false, label %b7, label %b840 41b7: ; preds = %b642 unreachable43 44b8: ; preds = %b645 br i1 undef, label %b6, label %b946 47b9: ; preds = %b848 br i1 undef, label %b10, label %b1449 50b10: ; preds = %b951 br i1 undef, label %b11, label %b1352 53b11: ; preds = %b1054 br i1 undef, label %b12, label %b1355 56b12: ; preds = %b1157 unreachable58 59b13: ; preds = %b11, %b1060 store i32 %v9, ptr undef, align 4, !tbaa !361 unreachable62 63b14: ; preds = %b964 unreachable65 66b15: ; preds = %b367 ret void68}69 70attributes #0 = { nounwind }71 72!0 = !{!1, !1, i64 0}73!1 = !{!"omnipotent char", !2, i64 0}74!2 = !{!"Simple C/C++ TBAA"}75!3 = !{!4, !4, i64 0}76!4 = !{!"int", !1, i64 0}77