summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LoopStrengthReduce/pr84709.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/LoopStrengthReduce/pr84709.ll')
-rw-r--r--llvm/test/Transforms/LoopStrengthReduce/pr84709.ll34
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/Transforms/LoopStrengthReduce/pr84709.ll b/llvm/test/Transforms/LoopStrengthReduce/pr84709.ll
new file mode 100644
index 000000000000..99794d01242c
--- /dev/null
+++ b/llvm/test/Transforms/LoopStrengthReduce/pr84709.ll
@@ -0,0 +1,34 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
+; RUN: opt -S -passes=loop-reduce < %s | FileCheck %s
+
+; Make sure it does not assert.
+define i64 @test() {
+; CHECK-LABEL: define i64 @test() {
+; CHECK-NEXT: bb:
+; CHECK-NEXT: br label [[BB1:%.*]]
+; CHECK: bb1:
+; CHECK-NEXT: br label [[BB2:%.*]]
+; CHECK: bb2:
+; CHECK-NEXT: br i1 true, label [[BB5:%.*]], label [[BB2]]
+; CHECK: bb5:
+; CHECK-NEXT: br label [[BB1]]
+;
+bb:
+ br label %bb1
+
+bb1:
+ %phi = phi i8 [ %zext6, %bb5 ], [ 0, %bb ]
+ br label %bb2
+
+bb2:
+ %phi3 = phi i8 [ %add, %bb2 ], [ %phi, %bb1 ]
+ %phi4 = phi i32 [ 0, %bb2 ], [ 1, %bb1 ]
+ %add = add i8 %phi3, 1
+ br i1 true, label %bb5, label %bb2
+
+bb5:
+ %zext = zext i8 %add to i32
+ %icmp = icmp sge i32 %phi4, 0
+ %zext6 = zext i1 %icmp to i8
+ br label %bb1
+}