// All bbs should have IDs that match the rpo order put out when printing with -emit-sorted-sil

// RUN: %target-sil-opt %s -module-name Swift -loop-region-view-text -o /dev/null | %FileCheck %s

import Builtin

//////////////////
// Declarations //
//////////////////

enum Never {}

enum ManyCase {
  case One
  case Two
  case Three
}

sil @no_return_func : $@convention(thin) () -> Never

///////////
// Tests //
///////////

// One Level Natural Self Loop:
//
// BB0 -> BB1 -> BB2
//         ^  |
//         |  |
//         ----
//
// CHECK-LABEL: @one_natural_self_loop@
// CHECK: (region id:3 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:3
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:loop ucfh:false ucft:false parent:3
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:1)))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:4
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:3
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @one_natural_self_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb1, bb2

bb2:
  %9999 = tuple()
  return %9999 : $()
}

// One Level Natural Loop:
//
// BB0 -> BB1 -> BB2 -> BB3 -> BB4
//         ^             |
//         |             |
//         ---------------
//
// CHECK-LABEL: @one_natural_loop@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:loop ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3)))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @one_natural_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  br bb3

bb3:
  cond_br undef, bb1, bb4

bb4:
  %9999 = tuple()
  return %9999 : $()
}


// One Level Natural Loop with Diamond inside.
//            -> BB2 ---\
//           /           v
// BB0 -> BB1 -> BB3 -> BB4 -> BB5
//         ^             |
//         |             |
//         ---------------
//
// CHECK-LABEL: @one_natural_loop_with_diamond@
// CHECK: (region id:6 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @one_natural_loop_with_diamond : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  br bb4

bb3:
  br bb4

bb4:
  cond_br undef, bb1, bb5

bb5:
  %9999 = tuple()
  return %9999 : $()
}

// One Level Natural Loop, multiple backedges
//
// BB0 -> BB1 -> BB2 -> BB3 -> BB4
//         ^      |      |
//         |      |      |
//         ---------------
//
// CHECK-LABEL: @one_natural_loop_multiple_backedges@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:loop ucfh:true  ucft:true  parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:true  parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:true  parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:true  ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @one_natural_loop_multiple_backedges : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb1, bb3

bb3:
  cond_br undef, bb1, bb4

bb4:
  %9999 = tuple()
  return %9999 : $()
}

// Make sure that we propagate up into the outer loop that we have a ucft in the
// inner loop. The ucfh does not propagate up b/c the header of the loop is not
// in the inner loop.
//
// This is an example that can not happen in sil with canonicalized loops.
//
// CHECK-LABEL: @inner_natural_loop_with_multiple_backedges@
// CHECK: (region id:8 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:loop ucfh:false ucft:false  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:loop ucfh:true  ucft:false  parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6)))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false  ucft:true parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:true ucft:false parent:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @inner_natural_loop_with_multiple_backedges : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  br bb3

bb3:
  cond_br undef, bb2, bb4

bb4:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bb5, case #ManyCase.Two!enumelt: bb6, case #ManyCase.Three!enumelt: bb7

bb5:
  br bb1

bb6:
  br bb2

bb7:
  return undef : $()
}

// Two separate natural loops
//
// Make sure that we package them up correctly
//
// BB0 -> BB1 -> BB2 -> BB3 -> BB4 -> BB5
//         ^      |      ^      |
//         |      |      |      |
//         --------      --------
//
// CHECK-LABEL: @two_separate_natural_loops@
// CHECK: (region id:6 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:2)))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @two_separate_natural_loops : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb1, bb3

bb3:
  br bb4

bb4:
  cond_br undef, bb3, bb5

bb5:
  %9999 = tuple()
  return %9999 : $()
}

// Two separate natural loops separated by a diamond
//
// Make sure that we package them up correctly
//                 -> BB3 -|
//                /        v
// BB0 -> BB1 -> BB2 ---> BB4 -> BB5 -> BB6
//         ^      |        ^      |
//         |      |        |      |
//         --------        --------
//
// CHECK-LABEL: @two_separate_natural_loops_separated_by_diamond@
// CHECK(region id:6 kind:func ucfh:false ucft:false
sil @two_separate_natural_loops_separated_by_diamond : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb4

bbcase3:
  br bb4

bb4:
  br bb5

bb5:
  cond_br undef, bb4, bb6

bb6:
  %9999 = tuple()
  return %9999 : $()
}

// Two separate natural loops separated by a diamond with else having a loop.
//
// Make sure that we package them up correctly
//
//                     /------\
//                     v      |
//                |-> BB3 -> BB4------------\
//                |           |             |
//                |           v             v
// BB0 -> BB1 -> BB2 ------> BB5 -> BB6 -> BB7
//         ^      |           ^      |
//         |      |           |      |
//         --------           --------
//
// CHECK-LABEL: @two_separate_natural_loops_separated_by_diamond_with_loop@
// CHECK: (region id:13 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:14)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:15)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:15 kind:loop ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:11)))
// CHECK: (region id:11 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:14 kind:loop ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:12)))
// CHECK: (region id:12 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK:         (region id:14))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @two_separate_natural_loops_separated_by_diamond_with_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb4

bbcase3:
  br bb5

bb4:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase41, case #ManyCase.Two!enumelt: bbcase42, case #ManyCase.Three!enumelt: bbcase43

bbcase41:
  br bb4

bbcase42:
  br bb6

bbcase43:
  br bb7

bb5:
  br bb6

bb6:
  cond_br undef, bb5, bb7

bb7:
  %9999 = tuple()
  return %9999 : $()
}

// CHECK-LABEL: @three_separate_natural_loops@
// CHECK: (region id:11 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:12)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:13)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:14)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:13)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:14 kind:loop ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:8)))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:13 kind:loop ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:5)))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:12 kind:loop ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:10)))
// CHECK: (region id:10 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @three_separate_natural_loops : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb3

bbcase3:
  br bb5

bb3:
  br bb4

bb4:
  cond_br undef, bb3, bb7

bb5:
  br bb6

bb6:
  cond_br undef, bb6, bb7

bb7:
  %9999 = tuple()
  return %9999 : $()
}

// Two Level Natural Loop, one backedge
//
// BB0 -> BB1 -> BB2 -> BB3 -> BB4
//         ^      ^ |    |
//         |      |--    |
//         ---------------
//
// CHECK-LABEL: @two_level_natural_loop@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:loop ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:2))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @two_level_natural_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb2, bb3

bb3:
  cond_br undef, bb1, bb4

bb4:
  %9999 = tuple()
  return %9999 : $()
}

// Two Level Natural Loop, one backedge, with loop in diamond.
//          ---> BB3 --\
//         /            v
// BB0 -> BB1 -> BB2 -> BB4 -> BB5
//         ^      ^ |    |
//         |      |--    |
//         ---------------
//
// CHECK-LABEL: @two_level_natural_loop_with_diamond_and_multiple_loop_exits@
// CHECK: (region id:9 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:loop ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:6)))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:loop ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:8)))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @two_level_natural_loop_with_diamond_and_multiple_loop_exits : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb2

bbcase2:
  br bb3

bbcase3:
  br bb4

bb3:
  br bb4

bb4:
  cond_br undef, bb1, bb5

bb5:
  %9999 = tuple()
  return %9999 : $()
}

// CHECK-LABEL: @three_level_natural_loop_with_inner_loop_in_diamond@
// CHECK: (region id:6 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:loop ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3)))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @three_level_natural_loop_with_inner_loop_in_diamond : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  cond_br undef, bb2, bb4

bb3:
  br bb4

bb4:
  cond_br undef, bb1, bb5

bb5:
  %9999 = tuple()
  return %9999 : $()
}

// One level irreducible loop
//
// Make sure that we properly identify irreducible loop boundaries.
//
// CHECK-LABEL: @one_level_irreducible_loop@
// CHECK: (region id:8 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @one_level_irreducible_loop : $@convention(thin) () -> () {
bb0:
  cond_br undef, bb1, bb3

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb5

bbcase3:
  br bb3

bb3:
  br bb2

bb5:
  %9999 = tuple()
  return %9999 : $()
}

// One natural loop with one internal irreducible loop
//
// CHECK-LABEL: @natural_loop_containing_irreducible_loop@
// CHECK: (region id:10 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:loop ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// CHECK: (region id:9 kind:bb   ucfh:true  ucft:true  parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:true  ucft:true  parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:true  ucft:true  parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:true  ucft:true  parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @natural_loop_containing_irreducible_loop : $@convention(thin) () -> () {
bb0:
  br bb6

bb6:
  cond_br undef, bb1, bb3

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb5

bbcase3:
  br bb3

bb3:
  br bb2

bb5:
  cond_br undef, bb6, bb7

bb7:
  %9999 = tuple()
  return %9999 : $()
}

// Two natural loop of which one has an internal irreducible loop
//
// This makes sure that irreducibility is only propagated up the loop nest, not
// into siblings.
//
// CHECK-LABEL: @two_natural_loop_one_with_irreducible_loop@
// CHECK: (region id:12 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:13)
// CHECK-NEXT:         (region id:14)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:14 kind:loop ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:9)))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:13 kind:loop ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// CHECK: (region id:11 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @two_natural_loop_one_with_irreducible_loop : $@convention(thin) () -> () {
bb0:
  br bb6

bb6:
  cond_br undef, bb1, bb3

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb5

bbcase3:
  br bb3

bb3:
  br bb2

bb5:
  cond_br undef, bb6, bb7

bb7:
  br bb8

bb8:
  cond_br undef, bb7, bb9

bb9:
  %9999 = tuple()
  return %9999 : $()
}

// CHECK-LABEL: @multiple_level_natural_loop_with_irreducible_loop_sandwich@
// CHECK: (region id:15 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:16)
// CHECK-NEXT:         (region id:19)
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:13 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:19))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:19 kind:loop ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:12)))
// CHECK: (region id:12 kind:bb   ucfh:false ucft:false parent:19
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:bb   ucfh:false ucft:false parent:19
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:16 kind:loop ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:19))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:17)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:10)))
// CHECK: (region id:14 kind:bb   ucfh:true  ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:bb   ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:17 kind:loop ucfh:true  ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:18)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:8)))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:17
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:18))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:18 kind:loop ucfh:false ucft:false parent:17
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:18
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:18
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:true  ucft:true  parent:17
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:18))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:17))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:true  ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:17))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:true  ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:17))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @multiple_level_natural_loop_with_irreducible_loop_sandwich : $@convention(thin) () -> () {
bb0:
  br bb6

bb6:
  cond_br undef, bb1, bb3

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb5

bbcase3:
  br bb3

bb3:
  cond_br undef, bb2, bb10

bb5:
  cond_br undef, bb6, bb7

bb7:
  br bb8

bb8:
  cond_br undef, bb7, bb9

bb9:
  %9999 = tuple()
  return %9999 : $()

bb10:
  br bb11

bb11:
  cond_br undef, bb10, bb12

bb12:
  br bb3
}

// CHECK-LABEL: @unreachable_bb_in_loop@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:6 kind:loop ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:2)))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
sil @unreachable_bb_in_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  unreachable

bb3:
  cond_br undef, bb1, bb4

bb4:
  return undef : $()
}

// CHECK-LABEL: @unreachable_bb_in_inner_loop@
// CHECK: (region id:7 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:8 kind:loop ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:9 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3)))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
sil @unreachable_bb_in_inner_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb3, bb4

bb3:
  unreachable

bb4:
  cond_br undef, bb2, bb5

bb5:
  cond_br undef, bb1, bb6

bb6:
  return undef : $()
}

// CHECK-LABEL: @unreachable_bb_in_inner_loop_with_multiple_edges@
// CHECK: (region id:13 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:14)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:12 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:14 kind:loop ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:15)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:8)))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:15 kind:loop ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1)
// CHECK-NEXT:         (parentindex:2)
// CHECK-NEXT:         (parentindex:3))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:10)))
// CHECK: (region id:10 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:2)
// CHECK-NEXT:         (parentindex:3))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:14
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:15))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @unreachable_bb_in_inner_loop_with_multiple_edges : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb3

bbcase2:
  br bb4

bbcase3:
  br bb3

bb3:
  unreachable

bb4:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase41, case #ManyCase.Two!enumelt: bbcase42, case #ManyCase.Three!enumelt: bbcase43

bbcase41:
  br bb2

bbcase42:
  br bb5

bbcase43:
  br bb3

bb5:
  cond_br undef, bb1, bb6

bb6:
  return undef : $()
}


// CHECK-LABEL: @noreturn_bb_in_loop@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:6 kind:loop ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
sil @noreturn_bb_in_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  %0 = function_ref @no_return_func : $@convention(thin) () -> Never
  apply %0() : $@convention(thin) () -> Never
  unreachable

bb3:
  cond_br undef, bb1, bb4

bb4:
  return undef : $()
}

// CHECK-LABEL: @noreturn_bb_in_three_level_loop@
// CHECK: (region id:10 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:13)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:13 kind:loop ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:7))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:13
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:11 kind:loop ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:12)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:12))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:12 kind:loop ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:2))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:11
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
sil @noreturn_bb_in_three_level_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb3

bb2:
  apply undef() : $@convention(thin) () -> Never
  unreachable

bb3:
  cond_br undef, bb4, bb5

bb4:
  br bb8

bb5:
  cond_br undef, bb3, bb6

bb6:
  cond_br undef, bb1, bb7

bb7:
  return undef : $()

bb8:
  cond_br undef, bb4, bb9

bb9:
  apply undef() : $@convention(thin) () -> Never
  unreachable
}

// Make sure we do not crash in these cases.
// CHECK-LABEL: @bb_with_unreachable_predecessor@
sil @bb_with_unreachable_predecessor : $@convention(thin) () -> () {
bb0:
  br bb2

bb1:
  br bb2

bb2:
  return undef : $()
}

// CHECK-LABEL: @self_loop_with_unreachable_predecessor@
sil @self_loop_with_unreachable_predecessor : $@convention(thin) () -> () {
bb0:
  br bb2

bb1:
  br bb2

bb2:
  cond_br undef, bb2, bb3

bb3:
  return undef : $()
}

// CHECK-LABEL: @multibb_loop_with_unreachable_predecessor@
sil @multibb_loop_with_unreachable_predecessor : $@convention(thin) () -> () {
bb0:
  br bb2

bb1:
  br bb2

bb2:
  br bb3

bb3:
  cond_br undef, bb3, bb4

bb4:
  return undef : $()
}

// CHECK-LABEL: @exit_block_that_is_a_loop@
// CHECK: (region id:5 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:6)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:6 kind:loop ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:5
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
sil @exit_block_that_is_a_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb3, bb4

bb3:
  cond_br undef, bb1, bb2

bb4:
  return undef : $()
}

// This is the double backedge loop case.
//
// CHECK-LABEL: @multiple_exit_blocks_that_are_loops@
// CHECK: (region id:15 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:16)
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:12 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:10 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:16 kind:loop ucfh:true  ucft:false parent:15
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:17)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:18)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:17)
// CHECK-NEXT:         (region id:18))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:14)))
// CHECK: (region id:14 kind:bb   ucfh:false ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:18))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:18 kind:loop ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:13)))
// CHECK: (region id:13 kind:bb   ucfh:false ucft:false parent:18
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:bb   ucfh:false ucft:false parent:18
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:bb   ucfh:false ucft:false parent:18
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:bb   ucfh:false ucft:true  parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:17))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:17 kind:loop ucfh:false ucft:false parent:16
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:6)))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:17
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:17
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:17
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:true  ucft:false parent:16
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:17)
// CHECK-NEXT:         (region id:18))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:15
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @multiple_exit_blocks_that_are_loops : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  cond_br undef, bb2, bb4

bb2:
  br bb3

bb3:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase1, case #ManyCase.Two!enumelt: bbcase2, case #ManyCase.Three!enumelt: bbcase3

bbcase1:
  br bb1

bbcase2:
  br bb2

bbcase3:
  br bb6

bb4:
  br bb5

bb5:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bbcase51, case #ManyCase.Two!enumelt: bbcase52, case #ManyCase.Three!enumelt: bbcase53

bbcase51:
  br bb1

bbcase52:
  br bb4

bbcase53:
  br bb7

bb6:
  br bb8

bb7:
  br bb8

bb8:
  return undef : $()
}

// CHECK-LABEL: @loop_with_multiple_early_exit@
// CHECK: (region id:6 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @loop_with_multiple_early_exit : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb3, bb5

bb3:
  cond_br undef, bb4, bb5

bb4:
  cond_br undef, bb1, bb5

bb5:
  return undef : $()
}

// Test one early exit from an inner loop. I.e.:
//
//                 ---> BB5 (return)
//                /
// BB0 -> BB1 -> BB2 -> BB3 -> BB4
//         ^      ^      |      |
//         |       \----/       |
//          \                   |
//           \-----------------/
//
// CHECK-LABEL: @loop_with_one_early_exit_from_inner_loop@
// CHECK: (region id:6 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:7 kind:loop ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:5)))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:loop ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:6
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:     (backedge-regs))
sil @loop_with_one_early_exit_from_inner_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb3, bb5

bb3:
  cond_br undef, bb2, bb4

bb4:
  br bb1

bb5:
  return undef : $()
}

// CHECK-LABEL: @loop_with_multiple_early_exit_from_inner_loop@
// CHECK: (region id:7 kind:func ucfh:false ucft:false
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:8)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:6 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:8 kind:loop ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:5)))
// CHECK: (region id:5 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:9 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:5))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:2 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0))
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:0 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
sil @loop_with_multiple_early_exit_from_inner_loop : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  cond_br undef, bb3, bb6

bb3:
  cond_br undef, bb4, bb6

bb4:
  cond_br undef, bb2, bb5

bb5:
  cond_br undef, bb1, bb6

bb6:
  return undef : $()
}
