oops-- I pushed previous commit from a fresh checkout and forgot to
authorJohn Regehr <regehr@cs.utah.edu>
Wed, 3 Aug 2022 04:27:20 +0000 (22:27 -0600)
committerJohn Regehr <regehr@cs.utah.edu>
Wed, 3 Aug 2022 04:27:28 +0000 (22:27 -0600)
git add the new test case, here it is

Differential Revision: https://reviews.llvm.org/D131026

llvm/test/tools/llvm-reduce/remove-bbs-illegal.ll [new file with mode: 0644]

diff --git a/llvm/test/tools/llvm-reduce/remove-bbs-illegal.ll b/llvm/test/tools/llvm-reduce/remove-bbs-illegal.ll
new file mode 100644 (file)
index 0000000..a1109fd
--- /dev/null
@@ -0,0 +1,25 @@
+; Ensure that llvm-reduce doesn't try to remove the first BB of a
+; function when the second BB has multiple predecessors, since that
+; results in invalid IR. This issue was fixed by:
+; https://reviews.llvm.org/D131026
+
+; RUN: llvm-reduce --delta-passes=basic-blocks --test %python --test-arg %p/Inputs/remove-bbs.py -abort-on-invalid-reduction %s -o %t
+
+define void @f(ptr %x0) {
+uninteresting:
+  %x2 = alloca ptr, i32 0, align 8
+  %x3 = alloca ptr, i32 0, align 8
+  br label %interesting1
+
+; this block has 2 predecessors and can't become the entry block
+interesting1:
+  %x5 = icmp ne ptr %x0, null
+  br i1 %x5, label %interesting2, label %interesting1
+
+interesting2:
+  store ptr null, ptr null, align 8
+  br label %interesting3
+
+interesting3:
+  ret void
+}