1; Test that llvm-reduce can remove uninteresting Basic Blocks, and remove them from instructions (i.e. SwitchInst, BranchInst and IndirectBrInst)
2; Note: if an uninteresting BB is the default case for a switch, the instruction is removed altogether (since the default case cannot be replaced)
3;
4; RUN: llvm-reduce --test %python --test-arg %p/Inputs/remove-bbs.py %s -o %t
5; RUN: cat %t | FileCheck -implicit-check-not=uninteresting %s
6
7define void @main() {
8interesting:
9  ; CHECK-NOT: switch i32 0, label %uninteresting
10  switch i32 0, label %uninteresting [
11    i32 0, label %uninteresting
12  ]
13
14uninteresting:
15  ret void
16
17interesting2:
18  ; CHECK: switch i32 1, label %interesting3
19  switch i32 1, label %interesting3 [
20    ; CHECK-NOT: i32 0, label %uninteresting
21    i32 0, label %uninteresting
22    ; CHECK: i32 1, label %interesting3
23    i32 1, label %interesting3
24  ]
25
26interesting3:
27  ; CHECK: br label %interesting2
28  br i1 true, label %interesting2, label %uninteresting
29}
30