[llvm] cb7c018 - [NFC][SimplifyCFG] Add test for failed assertion
Roman Lebedev via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 13 05:45:29 PDT 2021
Author: Roman Lebedev
Date: 2021-08-13T15:45:03+03:00
New Revision: cb7c01889ec21accc12b2c19a395b521e3b959a3
URL: https://github.com/llvm/llvm-project/commit/cb7c01889ec21accc12b2c19a395b521e3b959a3
DIFF: https://github.com/llvm/llvm-project/commit/cb7c01889ec21accc12b2c19a395b521e3b959a3.diff
LOG: [NFC][SimplifyCFG] Add test for failed assertion
This would trigger an assertion that was added in rGf30a7dff8a5b.
Need to fix that before relanding.
Reduced from https://reviews.llvm.org/rGf30a7dff8a5b#1019890
Added:
llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
Modified:
Removed:
################################################################################
diff --git a/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll b/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
new file mode 100644
index 0000000000000..31ab0fa60dbe8
--- /dev/null
+++ b/llvm/test/Transforms/SimplifyCFG/tautological-conditional-branch.ll
@@ -0,0 +1,64 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s
+
+%0 = type { %1*, %2* }
+%1 = type { %0* }
+%2 = type { %0*, %2* }
+
+define void @eggs(i1 %arg, i1 %arg16, %0* %arg17, %0* %arg18, %0* %arg19) {
+; CHECK-LABEL: @eggs(
+; CHECK-NEXT: bb:
+; CHECK-NEXT: br i1 [[ARG:%.*]], label [[BB20:%.*]], label [[BB21:%.*]]
+; CHECK: bb20:
+; CHECK-NEXT: call void @wombat()
+; CHECK-NEXT: unreachable
+; CHECK: bb21:
+; CHECK-NEXT: [[I:%.*]] = icmp eq %0* [[ARG17:%.*]], null
+; CHECK-NEXT: call void @hoge()
+; CHECK-NEXT: [[I26:%.*]] = select i1 [[ARG16:%.*]], %0* null, %0* [[ARG19:%.*]]
+; CHECK-NEXT: [[I27:%.*]] = getelementptr inbounds [[TMP0:%.*]], %0* [[I26]], i64 0, i32 0
+; CHECK-NEXT: [[I28:%.*]] = load %1*, %1** [[I27]], align 8
+; CHECK-NEXT: call void @pluto.1(%1* [[I28]])
+; CHECK-NEXT: call void @pluto()
+; CHECK-NEXT: ret void
+;
+bb:
+ br i1 %arg, label %bb20, label %bb21
+
+bb20: ; preds = %bb
+ call void @wombat()
+ br label %bb24
+
+bb21: ; preds = %bb
+ %i = icmp eq %0* %arg17, null
+ br i1 %i, label %bb24, label %bb22
+
+bb22: ; preds = %bb21
+ call void @hoge()
+ br i1 %arg16, label %bb24, label %bb23
+
+bb23: ; preds = %bb22
+ br label %bb24
+
+bb24: ; preds = %bb23, %bb22, %bb21, %bb20
+ %i25 = phi i1 [ false, %bb21 ], [ false, %bb20 ], [ false, %bb23 ], [ false, %bb22 ]
+ %i26 = phi %0* [ null, %bb21 ], [ null, %bb20 ], [ %arg19, %bb23 ], [ null, %bb22 ]
+ %i27 = getelementptr inbounds %0, %0* %i26, i64 0, i32 0
+ %i28 = load %1*, %1** %i27, align 8
+ call void @pluto.1(%1* %i28)
+ br i1 %i25, label %bb30, label %bb29
+
+bb29: ; preds = %bb24
+ call void @pluto()
+ ret void
+
+bb30: ; preds = %bb24
+ call void @spam()
+ ret void
+}
+
+declare void @wombat()
+declare void @pluto()
+declare void @spam()
+declare void @hoge()
+declare void @pluto.1(%1*)
More information about the llvm-commits
mailing list