diff options
Diffstat (limited to 'test/Transforms/LoopUnroll/pr2253.ll')
-rw-r--r-- | test/Transforms/LoopUnroll/pr2253.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/Transforms/LoopUnroll/pr2253.ll b/test/Transforms/LoopUnroll/pr2253.ll new file mode 100644 index 0000000000..1ff6d27527 --- /dev/null +++ b/test/Transforms/LoopUnroll/pr2253.ll @@ -0,0 +1,21 @@ +; RUN: llvm-as < %s | opt -loop-unroll -unroll-count 2 | llvm-dis | grep add | count 2 +; PR2253 + +; There's a use outside the loop, and the PHI needs an incoming edge for +; each unrolled iteration, since the trip count is unknown and any iteration +; could exit. + +define i32 @fib(i32 %n) nounwind { +entry: + br i1 false, label %bb, label %return + +bb: + %t0 = phi i32 [ 0, %entry ], [ %t1, %bb ] + %t1 = add i32 %t0, 1 + %c = icmp ne i32 %t0, %n + br i1 %c, label %bb, label %return + +return: + %f2.0.lcssa = phi i32 [ -1, %entry ], [ %t0, %bb ] + ret i32 %f2.0.lcssa +} |