|  | ; 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 | 
|  | } |