When removing a function from the function set and adding it to deferred, we
[llvm.git] / test / Transforms / LoopStrengthReduce / quadradic-exit-value.ll
blob59f14fcd1ce51864a9882aed78688f6e59bd32a3
1 ; RUN: opt < %s -analyze -iv-users | grep {\{1,+,3,+,2\}<%loop> (post-inc with loop %loop)}
3 ; The value of %r is dependent on a polynomial iteration expression.
5 define i64 @foo(i64 %n) {
6 entry:
7   br label %loop
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
15 exit:
16   %r = mul i64 %indvar.next, %indvar.next
17   ret i64 %r