summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopUnroll/not-rotated.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/LoopUnroll/not-rotated.ll')
-rw-r--r--llvm/test/Transforms/LoopUnroll/not-rotated.ll26
1 files changed, 26 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/not-rotated.ll b/llvm/test/Transforms/LoopUnroll/not-rotated.ll
new file mode 100644
index 00000000000..ffe80920d94
--- /dev/null
+++ b/llvm/test/Transforms/LoopUnroll/not-rotated.ll
@@ -0,0 +1,26 @@
+; PR28103
+; Bail out if the two successors are not the header
+; and another bb outside of the loop. This case is not
+; properly handled by LoopUnroll, currently.
+
+; RUN: opt -loop-unroll -verify-dom-info %s
+; REQUIRE: asserts
+
+define void @tinkywinky(i1 %patatino) {
+entry:
+ br label %header1
+header1:
+ %indvars.iv = phi i64 [ 1, %body2 ], [ 0, %entry ]
+ %exitcond = icmp ne i64 %indvars.iv, 1
+ br i1 %exitcond, label %body1, label %exit
+body1:
+ br i1 %patatino, label %body2, label %sink
+body2:
+ br i1 %patatino, label %header1, label %body3
+body3:
+ br label %sink
+sink:
+ br label %body2
+exit:
+ ret void
+}
OpenPOWER on IntegriCloud