xref: /llvm-project/llvm/test/tools/llvm-reduce/remove-bbs-illegal.ll (revision d469f136bee04ed80e70df981934fa1144a9d2cc)
1; Ensure that llvm-reduce doesn't try to remove the first BB of a
2; function when the second BB has multiple predecessors, since that
3; results in invalid IR. This issue was fixed by:
4; https://reviews.llvm.org/D131026
5
6; RUN: llvm-reduce --delta-passes=basic-blocks --test %python --test-arg %p/Inputs/remove-bbs.py -abort-on-invalid-reduction %s -o %t
7
8define void @f(ptr %x0) {
9uninteresting:
10  %x2 = alloca ptr, i32 0, align 8
11  %x3 = alloca ptr, i32 0, align 8
12  br label %interesting1
13
14; this block has 2 predecessors and can't become the entry block
15interesting1:
16  %x5 = icmp ne ptr %x0, null
17  br i1 %x5, label %interesting2, label %interesting1
18
19interesting2:
20  store ptr null, ptr null, align 8
21  br label %interesting3
22
23interesting3:
24  ret void
25}
26