Home | History | Annotate | Download | only in ScalarEvolution
      1 ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
      2 
      3 declare void @foo()
      4 
      5 define void @test1() nounwind {
      6 entry:
      7   br label %for.cond
      8 
      9 for.cond:                                         ; preds = %if.end, %entry
     10   %i.0 = phi i32 [ 2, %entry ], [ %dec, %if.end ]
     11   switch i32 %i.0, label %if.end [
     12     i32 0, label %for.end
     13     i32 1, label %if.then
     14   ]
     15 
     16 if.then:                                          ; preds = %for.cond
     17   tail call void @foo()
     18   br label %if.end
     19 
     20 if.end:                                           ; preds = %for.cond, %if.then
     21   %dec = add nsw i32 %i.0, -1
     22   br label %for.cond
     23 
     24 for.end:                                          ; preds = %for.cond
     25   ret void
     26 
     27 ; CHECK-LABEL: @test1
     28 ; CHECK: Loop %for.cond: backedge-taken count is 2
     29 ; CHECK: Loop %for.cond: max backedge-taken count is 2
     30 }
     31