; Test that llvm-reduce can remove uninteresting Basic Blocks, and remove them from instructions (i.e. SwitchInst, BranchInst and IndirectBrInst)
; Note: if an uninteresting BB is the default case for a switch, the instruction is removed altogether (since the default case cannot be replaced)
;
; RUN: llvm-reduce --test %python --test-arg %p/Inputs/remove-bbs.py %s -o %t
; RUN: cat %t | FileCheck -implicit-check-not=uninteresting %s

define void @main() {
interesting:
  ; CHECK-NOT: switch i32 0, label %uninteresting
  switch i32 0, label %uninteresting [
    i32 0, label %uninteresting
  ]

uninteresting:
  ret void

interesting2:
  ; CHECK: switch i32 1, label %interesting3
  switch i32 1, label %interesting3 [
    ; CHECK-NOT: i32 0, label %uninteresting
    i32 0, label %uninteresting
    ; CHECK: i32 1, label %interesting3
    i32 1, label %interesting3
  ]

interesting3:
  ; CHECK: br label %interesting2
  br i1 true, label %interesting2, label %uninteresting
}
