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

// RUN: %target-sil-opt -assume-parsing-unqualified-ownership-sil %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: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:true  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: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:loop ucfh:true  ucft:true  parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// 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:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:true  parent:8
// 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:true  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:false parent:8
// 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: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 @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: bb1, case #ManyCase.Two!enumelt: bb2, case #ManyCase.Three!enumelt: bb5

bb5:
  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: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:3)
// CHECK-NEXT:         (region id:9)
// 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: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:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:4)
// 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:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4))
// 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:9
// CHECK-NEXT:     (preds)
// 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:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:8))
// 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:8 kind:loop ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:9))
// 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:8
// 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:         (parentindex:1))
// 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: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: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 @two_separate_natural_loops_separated_by_diamond : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bb1, case #ManyCase.Two!enumelt: bb3, case #ManyCase.Three!enumelt: bb4

bb3:
  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: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:10)
// CHECK-NEXT:         (region id:11)
// 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:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10)
// 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:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:10))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// 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:11
// CHECK-NEXT:     (preds
// 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:11
// 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))
// CHECK: (region id:10 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7)
// CHECK-NEXT:         (region id:11))
// 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:10
// 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:         (parentindex:1))
// 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:     (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:9 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:11))
// 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:9
// 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:         (parentindex:1))
// 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: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:9))
// 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: bb1, case #ManyCase.Two!enumelt: bb3, case #ManyCase.Three!enumelt: bb5

bb3:
  br bb4

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

bb5:
  br bb6

bb6:
  cond_br undef, bb5, bb7

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

// CHECK-LABEL: @three_separate_natural_loops@
// 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:3)
// CHECK-NEXT:         (region id:10)
// CHECK-NEXT:         (region id:11)
// 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:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10)
// 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:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// 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:11
// CHECK-NEXT:     (preds
// 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:11
// 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))
// CHECK: (region id:10 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// 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:10
// 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:3 kind:bb   ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:9))
// 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:9 kind:loop ucfh:false ucft:false parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:11))
// 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:9
// 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:         (parentindex:1))
// 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: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:9))
// 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: bb1, case #ManyCase.Two!enumelt: bb3, case #ManyCase.Three!enumelt: 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: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:8)
// 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:3)
// 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:3 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:8))
// 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:8 kind:loop ucfh:false ucft:false parent:7
// 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:     (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:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:0)
// CHECK-NEXT:         (parentindex:1))
// CHECK-NEXT:     (exiting-subregs)
// CHECK: (region id:1 kind:bb   ucfh:false ucft:false parent:7
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:8))
// CHECK-NEXT:     (subregs)
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// 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_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: bb2, case #ManyCase.Two!enumelt: bb3, case #ManyCase.Three!enumelt: 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: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: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:     (backedge-regs))
// CHECK: (region id:4 kind:bb   ucfh:false ucft:false parent:5
// 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:3 kind:bb   ucfh:true  ucft:true  parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:2))
// 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:2 kind:bb   ucfh:true  ucft:true  parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3)
// 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:true  ucft:true  parent:5
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0)
// CHECK-NEXT:         (region id:2))
// 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:1)
// CHECK-NEXT:         (region id:3))
// 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: bb1, case #ManyCase.Two!enumelt: bb5, case #ManyCase.Three!enumelt: 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: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:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:4)
// 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: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:4 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// 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:3 kind:bb   ucfh:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4)
// 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:true  ucft:true  parent:8
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// 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:8
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// 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 @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: bb1, case #ManyCase.Two!enumelt: bb5, case #ManyCase.Three!enumelt: 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: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: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:9
// 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:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// 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: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:     (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:10 kind:loop ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// 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:     (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:10
// 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:4 kind:bb   ucfh:true  ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// 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:3 kind:bb   ucfh:true  ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4)
// 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:true  ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// 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:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:4))
// 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_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: bb1, case #ManyCase.Two!enumelt: bb5, case #ManyCase.Three!enumelt: 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: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:16)
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs)
// CHECK-NEXT:     (backedge-regs))
// CHECK: (region id:11 kind:bb   ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (succs)
// 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:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:13))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:9)
// CHECK-NEXT:         (region id:10))
// 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: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:     (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:13 kind:loop ucfh:false ucft:false parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:16))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3)
// CHECK-NEXT:         (region id:14)
// 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:13
// 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:14 kind:loop ucfh:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:3))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:15)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:4))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:7)))
// 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:     (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:4))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// 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:15
// CHECK-NEXT:     (preds
// 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:15
// 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))
// CHECK: (region id:4 kind:bb   ucfh:true  ucft:true  parent:14
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:15))
// 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:true  ucft:true  parent:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:14))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:8)
// 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:13
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:3))
// 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:14))
// 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 @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: bb1, case #ManyCase.Two!enumelt: bb5, case #ManyCase.Three!enumelt: 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: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:0)
// 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_with_multiple_edges : $@convention(thin) () -> () {
bb0:
  br bb1

bb1:
  br bb2

bb2:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bb3, case #ManyCase.Two!enumelt: bb4, case #ManyCase.Three!enumelt: bb3

bb3:
  unreachable

bb4:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bb2, case #ManyCase.Two!enumelt: bb5, case #ManyCase.Three!enumelt: 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: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:4)
// CHECK-NEXT:         (region id:7)
// 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:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:4)
// 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:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// 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:4 kind:bb   ucfh:false ucft:false parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:10))
// 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:10 kind:loop ucfh:true  ucft:true  parent:9
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:0))
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:4)
// CHECK-NEXT:         (region id:7))
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:1)
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (non-local-succs)
// CHECK-NEXT:     (exiting-subregs
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK-NEXT:     (backedge-regs
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// CHECK: (region id:12 kind:loop ucfh:false ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:5)
// CHECK-NEXT:         (region id:6))
// CHECK-NEXT:     (non-local-succs
// CHECK-NEXT:         (parentindex:1))
// 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:true  parent:12
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:5))
// 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:5 kind:bb   ucfh:false ucft:false parent:12
// 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))
// CHECK: (region id:11 kind:loop ucfh:false ucft:true  parent:10
// CHECK-NEXT:     (preds
// CHECK-NEXT:         (region id:1))
// CHECK-NEXT:     (succs)
// CHECK-NEXT:     (subregs
// CHECK-NEXT:         (region id:2)
// CHECK-NEXT:         (region id:3))
// 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:3)))
// CHECK: (region id:3 kind:bb   ucfh:false ucft:true  parent:11
// 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:11
// 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:10
// CHECK-NEXT:     (preds)
// CHECK-NEXT:     (succs
// CHECK-NEXT:         (region id:11)
// CHECK-NEXT:         (region id:12))
// 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 @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: bb1, case #ManyCase.Two!enumelt: bb2, case #ManyCase.Three!enumelt: bb6

bb4:
  br bb5

bb5:
  switch_enum undef : $ManyCase, case #ManyCase.One!enumelt: bb1, case #ManyCase.Two!enumelt: bb4, case #ManyCase.Three!enumelt: 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 : $()
}
