; RUN: opt < %s -passes='function(break-crit-edges,loop-simplify),loop-extract' -S | FileCheck %s

; This function has 2 simple loops and they should be extracted into 2 new functions.
define void @test3() {
; CHECK-LABEL: @test3(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    br label %codeRepl1
; CHECK:       codeRepl1:
; CHECK-NEXT:    call void @test3.loop.0()
; CHECK-NEXT:    br label %loop.0.loop.1_crit_edge
; CHECK:       loop.0.loop.1_crit_edge:
; CHECK-NEXT:    br label %codeRepl
; CHECK:       codeRepl:
; CHECK-NEXT:    call void @test3.loop.1()
; CHECK-NEXT:    br label %exit
; CHECK:       exit:
; CHECK-NEXT:    ret void

entry:
  br label %loop.0

loop.0:                                           ; preds = %loop.0, %entry
  %index.0 = phi i32 [ 10, %entry ], [ %next.0, %loop.0 ]
  tail call void @foo()
  %next.0 = add nsw i32 %index.0, -1
  %repeat.0 = icmp sgt i32 %index.0, 1
  br i1 %repeat.0, label %loop.0, label %loop.1

loop.1:                                           ; preds = %loop.0, %loop.1
  %index.1 = phi i32 [ %next.1, %loop.1 ], [ 10, %loop.0 ]
  tail call void @foo()
  %next.1 = add nsw i32 %index.1, -1
  %repeat.1 = icmp sgt i32 %index.1, 1
  br i1 %repeat.1, label %loop.1, label %exit

exit:                                             ; preds = %loop.1
  ret void
}

declare void @foo()

; CHECK-LABEL: define internal void @test3.loop.1()
; CHECK-NEXT:  newFuncRoot:
; CHECK-NEXT:    br label %loop.1
; CHECK:       loop.1:
; CHECK-NEXT:    %index.1 = phi i32 [ %next.1, %loop.1.loop.1_crit_edge ], [ 10, %newFuncRoot ]
; CHECK-NEXT:    tail call void @foo()
; CHECK-NEXT:    %next.1 = add nsw i32 %index.1, -1
; CHECK-NEXT:    %repeat.1 = icmp sgt i32 %index.1, 1
; CHECK-NEXT:    br i1 %repeat.1, label %loop.1.loop.1_crit_edge, label %exit.exitStub
; CHECK:       loop.1.loop.1_crit_edge:
; CHECK-NEXT:    br label %loop.1
; CHECK:       exit.exitStub:
; CHECK-NEXT:    ret void

; CHECK-LABEL: define internal void @test3.loop.0()
; CHECK-NEXT:  newFuncRoot:
; CHECK-NEXT:    br label %loop.0
; CHECK:       loop.0:
; CHECK-NEXT:    %index.0 = phi i32 [ 10, %newFuncRoot ], [ %next.0, %loop.0.loop.0_crit_edge ]
; CHECK-NEXT:    tail call void @foo()
; CHECK-NEXT:    %next.0 = add nsw i32 %index.0, -1
; CHECK-NEXT:    %repeat.0 = icmp sgt i32 %index.0, 1
; CHECK-NEXT:    br i1 %repeat.0, label %loop.0.loop.0_crit_edge, label %loop.0.loop.1_crit_edge.exitStub
; CHECK:       loop.0.loop.0_crit_edge:
; CHECK-NEXT:    br label %loop.0
; CHECK:       loop.0.loop.1_crit_edge.exitStub:
; CHECK-NEXT:    ret void
