39 lines · plain
1; RUN: llc -mtriple=hexagon -enable-pipeliner < %s -pipeliner-experimental-cg=true | FileCheck %s2 3; Test that we generate the correct value for a Phi in the epilog4; that is for a value defined two stages earlier. An extra copy in the5; epilog means the schedule is incorrect.6 7; CHECK: endloop08; CHECK-NOT: r{{[0-9]+}} = r{{[0-9]+}}9 10; Function Attrs: nounwind11define void @f0(i32 %a0, ptr %a1, ptr %a2, ptr %a3, ptr %a4) #0 {12b0:13 br label %b114 15b1: ; preds = %b1, %b016 %v0 = phi i32 [ %v8, %b1 ], [ 1, %b0 ]17 %v1 = load i32, ptr %a3, align 4, !tbaa !018 %v2 = getelementptr inbounds i32, ptr %a1, i32 %v019 %v3 = load i32, ptr %v2, align 4, !tbaa !020 %v4 = load i32, ptr %a4, align 4, !tbaa !021 %v5 = mul nsw i32 %v4, %v322 %v6 = add nsw i32 %v5, %v123 %v7 = getelementptr inbounds [1000 x i32], ptr %a2, i32 %v0, i32 024 store i32 %v6, ptr %v7, align 4, !tbaa !025 %v8 = add nsw i32 %v0, 126 %v9 = icmp eq i32 %v8, %a027 br i1 %v9, label %b2, label %b128 29b2: ; preds = %b030 ret void31}32 33attributes #0 = { nounwind "target-cpu"="hexagonv60" }34 35!0 = !{!1, !1, i64 0}36!1 = !{!"long", !2, i64 0}37!2 = !{!"omnipotent char", !3, i64 0}38!3 = !{!"Simple C/C++ TBAA"}39