Generalize support for analyzing loops to include SLE/SGE loop exit conditions
[oota-llvm.git] / test / Analysis / ScalarEvolution / 2008-12-14-StrideAndSigned.ll
1 ; RUN: llvm-as < %s | opt -analyze -scalar-evolution |& \
2 ; RUN: grep {(((-1 \\* %i0) + (100005 smax %i0)) /u 5)}
3
4 define i32 @foo0(i32 %i0) nounwind {
5 entry:
6         br label %bb1
7
8 bb:             ; preds = %bb1
9         %0 = add i32 %j.0, 1            ; <i32> [#uses=1]
10         %1 = add i32 %i.0, 5            ; <i32> [#uses=1]
11         br label %bb1
12
13 bb1:            ; preds = %bb, %entry
14         %j.0 = phi i32 [ 0, %entry ], [ %0, %bb ]               ; <i32> [#uses=2]
15         %i.0 = phi i32 [ %i0, %entry ], [ %1, %bb ]             ; <i32> [#uses=2]
16         %2 = icmp sgt i32 %i.0, 100000          ; <i1> [#uses=1]
17         br i1 %2, label %return, label %bb
18
19 return:         ; preds = %bb1
20         ret i32 %j.0
21 }