summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2015-10-02 19:21:52 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2015-10-02 19:21:52 +0000
commitd57f4b901195bc89200e46a75f78133454fefa19 (patch)
treedd7483715e8522bfbd675124730f3f28ce5c37ce /llvm/test/Transforms
parent8df4bddd16fbfbc0bbcad255132a87234407a9b6 (diff)
downloadbcm5719-llvm-d57f4b901195bc89200e46a75f78133454fefa19.tar.gz
bcm5719-llvm-d57f4b901195bc89200e46a75f78133454fefa19.zip
[Tests] Add one more case to LoopUnroll/pr18861.ll for better coverage.
llvm-svn: 249174
Diffstat (limited to 'llvm/test/Transforms')
-rw-r--r--llvm/test/Transforms/LoopUnroll/pr18861.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopUnroll/pr18861.ll b/llvm/test/Transforms/LoopUnroll/pr18861.ll
index 225c483dd8a..c01eef1d0e5 100644
--- a/llvm/test/Transforms/LoopUnroll/pr18861.ll
+++ b/llvm/test/Transforms/LoopUnroll/pr18861.ll
@@ -53,3 +53,34 @@ outer.latch: ; preds = %inner.header
%inc9 = add nsw i32 %storemerge1, 1
br label %outer.header
}
+
+; This case is similar to the previous one, and has the same CFG.
+; The difference is that loop unrolling doesn't remove any LCSSA definition,
+; yet breaks LCSSA form for the outer loop. It happens because before unrolling
+; block inner.latch was inside outer loop (and consequently, didn't require
+; LCSSA definition for %x), but after unrolling it occurs out of the outer
+; loop, so we need to insert an LCSSA definition to keep LCSSA.
+
+; Function Attrs: nounwind uwtable
+define void @fn2() {
+entry:
+ br label %outer.header
+
+outer.header:
+ br label %inner.header
+
+inner.header:
+ %x = load i32, i32* undef, align 4
+ br i1 true, label %outer.latch, label %inner.latch
+
+inner.latch:
+ %inc6 = add nsw i32 %x, 1
+ store i32 %inc6, i32* undef, align 4
+ br i1 false, label %inner.header, label %exit
+
+exit:
+ ret void
+
+outer.latch:
+ br label %outer.header
+}
OpenPOWER on IntegriCloud