| 123456789101112131415161718192021222324252627282930 |
- ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
- declare void @foo()
- define void @test1() nounwind {
- entry:
- br label %for.cond
- for.cond: ; preds = %if.end, %entry
- %i.0 = phi i32 [ 2, %entry ], [ %dec, %if.end ]
- switch i32 %i.0, label %if.end [
- i32 0, label %for.end
- i32 1, label %if.then
- ]
- if.then: ; preds = %for.cond
- tail call void @foo()
- br label %if.end
- if.end: ; preds = %for.cond, %if.then
- %dec = add nsw i32 %i.0, -1
- br label %for.cond
- for.end: ; preds = %for.cond
- ret void
- ; CHECK-LABEL: @test1
- ; CHECK: Loop %for.cond: backedge-taken count is 2
- ; CHECK: Loop %for.cond: max backedge-taken count is 2
- }
|