diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/Analysis/ScalarEvolution/exact_iter_count.ll | 34 |
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 +} |

