summaryrefslogtreecommitdiff
path: root/test/Transforms
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2013-10-01 12:17:11 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2013-10-01 12:17:11 +0000
commit341562b9fb6574b1c9492e52cec24106cd31ce51 (patch)
treeed68a4cc9dc471affb0dc7f6f374e5c41c138264 /test/Transforms
parentced450f0e6266eb8c2624fc1895cbc2749d715c3 (diff)
downloadllvm-341562b9fb6574b1c9492e52cec24106cd31ce51.tar.gz
llvm-341562b9fb6574b1c9492e52cec24106cd31ce51.tar.bz2
llvm-341562b9fb6574b1c9492e52cec24106cd31ce51.tar.xz
SCEVExpander: Fix a regression I introduced by to eagerly adding RAII objects.
PR17425. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191741 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r--test/Transforms/LoopStrengthReduce/dominate-assert.ll43
1 files changed, 43 insertions, 0 deletions
diff --git a/test/Transforms/LoopStrengthReduce/dominate-assert.ll b/test/Transforms/LoopStrengthReduce/dominate-assert.ll
index ff8cab8313..3ba93ff748 100644
--- a/test/Transforms/LoopStrengthReduce/dominate-assert.ll
+++ b/test/Transforms/LoopStrengthReduce/dominate-assert.ll
@@ -68,3 +68,46 @@ bb7:
catch i8* null
ret void
}
+
+; PR17425
+define void @i() {
+entry:
+ br label %while.cond
+
+while.cond: ; preds = %while.cond, %entry
+ %c.0 = phi i16* [ undef, %entry ], [ %incdec.ptr, %while.cond ]
+ %incdec.ptr = getelementptr inbounds i16* %c.0, i64 1
+ br i1 undef, label %while.cond1, label %while.cond
+
+while.cond1: ; preds = %while.cond1, %while.cond
+ %c.1 = phi i16* [ %incdec.ptr5, %while.cond1 ], [ %c.0, %while.cond ]
+ %incdec.ptr5 = getelementptr inbounds i16* %c.1, i64 1
+ br i1 undef, label %while.cond7, label %while.cond1
+
+while.cond7: ; preds = %while.cond7, %while.cond1
+ %0 = phi i16* [ %incdec.ptr10, %while.cond7 ], [ %c.1, %while.cond1 ]
+ %incdec.ptr10 = getelementptr inbounds i16* %0, i64 1
+ br i1 undef, label %while.cond12.preheader, label %while.cond7
+
+while.cond12.preheader: ; preds = %while.cond7
+ br i1 undef, label %while.end16, label %while.body13.lr.ph
+
+while.body13: ; preds = %if.else, %while.body13.lr.ph
+ %1 = phi i16* [ %2, %while.body13.lr.ph ], [ %incdec.ptr15, %if.else ]
+ br i1 undef, label %while.cond12.outer.loopexit, label %if.else
+
+while.cond12.outer.loopexit: ; preds = %while.body13
+ br i1 undef, label %while.end16, label %while.body13.lr.ph
+
+while.body13.lr.ph: ; preds = %while.cond12.outer.loopexit, %while.cond12.preheader
+ %2 = phi i16* [ %1, %while.cond12.outer.loopexit ], [ undef, %while.cond12.preheader ]
+ br label %while.body13
+
+if.else: ; preds = %while.body13
+ %incdec.ptr15 = getelementptr inbounds i16* %1, i64 1
+ %cmp = icmp eq i16* %incdec.ptr15, %0
+ br i1 %cmp, label %while.end16, label %while.body13
+
+while.end16: ; preds = %if.else, %while.cond12.outer.loopexit, %while.cond12.preheader
+ ret void
+}