During the CodeGenPrepare we often lower intrinsics (such as objsize)
[oota-llvm.git] / test / Transforms / LoopStrengthReduce / quadradic-exit-value.ll
1 ; RUN: opt < %s -analyze -iv-users | grep "{1,+,3,+,2}<%loop> (post-inc with loop %loop)"
2
3 ; The value of %r is dependent on a polynomial iteration expression.
4
5 define i64 @foo(i64 %n) {
6 entry:
7   br label %loop
8
9 loop:
10   %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
11   %indvar.next = add i64 %indvar, 1
12   %c = icmp eq i64 %indvar.next, %n
13   br i1 %c, label %exit, label %loop
14
15 exit:
16   %r = mul i64 %indvar.next, %indvar.next
17   ret i64 %r
18 }