summaryrefslogtreecommitdiff
path: root/test/Transforms/NewGVN/pr33116.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/Transforms/NewGVN/pr33116.ll')
-rw-r--r--test/Transforms/NewGVN/pr33116.ll39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/Transforms/NewGVN/pr33116.ll b/test/Transforms/NewGVN/pr33116.ll
new file mode 100644
index 0000000000000..9bf6bb1ff6efe
--- /dev/null
+++ b/test/Transforms/NewGVN/pr33116.ll
@@ -0,0 +1,39 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt -S -newgvn %s | FileCheck %s
+
+@a = external global i32
+
+define void @b() {
+; CHECK-LABEL: @b(
+; CHECK-NEXT: br i1 false, label [[C:%.*]], label [[WHILE_D:%.*]]
+; CHECK: while.d:
+; CHECK-NEXT: br label [[F:%.*]]
+; CHECK: f:
+; CHECK-NEXT: br i1 undef, label [[IF_E:%.*]], label [[C]]
+; CHECK: c:
+; CHECK-NEXT: br i1 undef, label [[IF_G:%.*]], label [[IF_E]]
+; CHECK: if.g:
+; CHECK-NEXT: store i32 undef, i32* @a
+; CHECK-NEXT: br label [[WHILE_D]]
+; CHECK: if.e:
+; CHECK-NEXT: br label [[F]]
+;
+ br i1 false, label %c, label %while.d
+
+while.d: ; preds = %if.g, %0
+ br label %f
+
+f: ; preds = %if.e, %while.d
+ br i1 undef, label %if.e, label %c
+
+c: ; preds = %f, %0
+ br i1 undef, label %if.g, label %if.e
+
+if.g: ; preds = %c
+ store i32 undef, i32* @a
+ br label %while.d
+
+if.e: ; preds = %c, %f
+ br label %f
+}
+