summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll34
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll b/llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll
index ba0bc1f4cf3..443da146e77 100644
--- a/llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll
+++ b/llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll
@@ -25,3 +25,37 @@ exit:
side.exit:
ret void
}
+
+define void @test_02(i1 %c) {
+
+; CHECK-LABEL: Determining loop execution counts for: @test_02
+; CHECK-NEXT: Loop %loop: <multiple exits> backedge-taken count is 50
+
+entry:
+ br label %loop
+
+loop:
+ %iv = phi i32 [ 0, %entry ], [ %iv.next, %backedge ]
+ br i1 %c, label %if.true, label %if.false
+
+if.true:
+ br label %merge
+
+if.false:
+ br label %merge
+
+merge:
+ %side.cond = icmp slt i32 %iv, 50
+ br i1 %side.cond, label %backedge, label %side.exit
+
+backedge:
+ %iv.next = add i32 %iv, 1
+ %loop.cond = icmp slt i32 %iv, 100
+ br i1 %loop.cond, label %loop, label %exit
+
+exit:
+ ret void
+
+side.exit:
+ ret void
+}
OpenPOWER on IntegriCloud