a8c5aba73debe5e397d501d62eda7dc7ea2262c7
[oota-llvm.git] / test / Analysis / ScalarEvolution / avoid-smax-0.ll
1 ; RUN: llvm-as < %s | opt -scalar-evolution -analyze | grep {Loop bb3: (-1 + %n) iterations!}
2
3 ; We don't want to use a max in the trip count expression in
4 ; this testcase.
5
6 define void @foo(i32 %n, i32* %p, i32* %q) nounwind {
7 entry:
8         icmp sgt i32 %n, 0
9         br i1 %0, label %bb, label %return
10
11 bb:
12         load i32* %q, align 4
13         icmp eq i32 %1, 0
14         br i1 %2, label %return, label %bb3.preheader
15
16 bb3.preheader:
17         br label %bb3
18
19 bb3:
20         %i.0 = phi i32 [ %7, %bb3 ], [ 0, %bb3.preheader ]
21         getelementptr i32* %p, i32 %i.0
22         load i32* %3, align 4
23         add i32 %4, 1
24         getelementptr i32* %p, i32 %i.0
25         store i32 %5, i32* %6, align 4
26         add i32 %i.0, 1
27         icmp slt i32 %7, %n
28         br i1 %8, label %bb3, label %return.loopexit
29
30 return.loopexit:
31         br label %return
32
33 return:
34         ret void
35 }