; REQUIRES: asserts
; RUN: opt -loop-unswitch -loop-unswitch-threshold 1000 -disable-output -stats -info-output-file - < %s | FileCheck --check-prefix=STATS %s
; RUN: opt -S -loop-unswitch -loop-unswitch-threshold 1000 -verify-loop-info -verify-dom-info < %s | FileCheck %s

; STATS: 1 loop-simplify - Number of pre-header or exit blocks inserted
; STATS: 3 loop-unswitch - Number of switches unswitched

; CHECK:        %1 = icmp eq i32 %c, 1
; CHECK-NEXT:   br i1 %1, label %.split.us, label %..split_crit_edge

; CHECK:      ..split_crit_edge:                                ; preds = %0
; CHECK-NEXT:   br label %.split

; CHECK:      .split.us:                                        ; preds = %0
; CHECK-NEXT:   %2 = icmp eq i32 %d, 1
; CHECK-NEXT:   br i1 %2, label %.split.us.split.us, label %.split.us..split.us.split_crit_edge

; CHECK:      .split.us..split.us.split_crit_edge:              ; preds = %.split.us
; CHECK-NEXT:   br label %.split.us.split

; CHECK:      .split.us.split.us:                               ; preds = %.split.us
; CHECK-NEXT:   br label %loop_begin.us.us

; CHECK:      loop_begin.us.us:                                 ; preds = %loop_begin.backedge.us.us, %.split.us.split.us
; CHECK-NEXT:   %var_val.us.us = load i32, i32* %var
; CHECK-NEXT:   switch i32 1, label %second_switch.us.us [
; CHECK-NEXT:     i32 1, label %inc.us.us

; CHECK:      second_switch.us.us:                              ; preds = %loop_begin.us.us
; CHECK-NEXT:   switch i32 1, label %default.us.us [
; CHECK-NEXT:     i32 1, label %inc.us.us

; CHECK:      inc.us.us:                                        ; preds = %second_switch.us.us, %loop_begin.us.us
; CHECK-NEXT:   call void @incf() [[NOR_NUW:#[0-9]+]]
; CHECK-NEXT:   br label %loop_begin.backedge.us.us

; CHECK:      .split.us.split:                                  ; preds = %.split.us..split.us.split_crit_edge
; CHECK-NEXT:   br label %loop_begin.us

; CHECK:      loop_begin.us:                                    ; preds = %loop_begin.backedge.us, %.split.us.split
; CHECK-NEXT:   %var_val.us = load i32, i32* %var
; CHECK-NEXT:   switch i32 1, label %second_switch.us [
; CHECK-NEXT:     i32 1, label %inc.us

; CHECK:      second_switch.us:                                 ; preds = %loop_begin.us
; CHECK-NEXT:   switch i32 %d, label %default.us [
; CHECK-NEXT:     i32 1, label %second_switch.us.inc.us_crit_edge
; CHECK-NEXT:   ]

; CHECK:      second_switch.us.inc.us_crit_edge:                ; preds = %second_switch.us
; CHECK-NEXT:   br i1 true, label %us-unreachable8, label %inc.us

; CHECK:      inc.us:                                           ; preds = %second_switch.us.inc.us_crit_edge, %loop_begin.us
; CHECK-NEXT:   call void @incf() [[NOR_NUW]]
; CHECK-NEXT:   br label %loop_begin.backedge.us

; CHECK:      .split:                                           ; preds = %..split_crit_edge
; CHECK-NEXT:   %3 = icmp eq i32 %d, 1
; CHECK-NEXT:   br i1 %3, label %.split.split.us, label %.split..split.split_crit_edge

; CHECK:      .split..split.split_crit_edge:                    ; preds = %.split
; CHECK-NEXT:   br label %.split.split

; CHECK:      .split.split.us:                                  ; preds = %.split
; CHECK-NEXT:   br label %loop_begin.us1

; CHECK:      loop_begin.us1:                                   ; preds = %loop_begin.backedge.us6, %.split.split.us
; CHECK-NEXT:   %var_val.us.2 = load i32, i32* %var
; CHECK-NEXT:   switch i32 %c, label %second_switch.us3 [
; CHECK-NEXT:     i32 1, label %loop_begin.inc_crit_edge.us
; CHECK-NEXT:   ]

; CHECK:      second_switch.us3:                                ; preds = %loop_begin.us1
; CHECK-NEXT:   switch i32 1, label %default.us5 [
; CHECK-NEXT:     i32 1, label %inc.us4
; CHECK-NEXT:   ]

; CHECK:      inc.us4:                                          ; preds = %loop_begin.inc_crit_edge.us, %second_switch.us3
; CHECK-NEXT:   call void @incf() [[NOR_NUW]]
; CHECK-NEXT:   br label %loop_begin.backedge.us6

; CHECK:      loop_begin.inc_crit_edge.us:                      ; preds = %loop_begin.us1
; CHECK-NEXT:   br i1 true, label %us-unreachable.us-lcssa.us, label %inc.us4

; CHECK:      .split.split:                                     ; preds = %.split..split.split_crit_edge
; CHECK-NEXT:   br label %loop_begin

; CHECK:      loop_begin:                                       ; preds = %loop_begin.backedge, %.split.split
; CHECK-NEXT:   %var_val = load i32, i32* %var
; CHECK-NEXT:   switch i32 %c, label %second_switch [
; CHECK-NEXT:     i32 1, label %loop_begin.inc_crit_edge
; CHECK-NEXT:   ]

; CHECK:      loop_begin.inc_crit_edge:                         ; preds = %loop_begin
; CHECK-NEXT:   br i1 true, label %us-unreachable.us-lcssa, label %inc

; CHECK:      second_switch:                                    ; preds = %loop_begin
; CHECK-NEXT:   switch i32 %d, label %default [
; CHECK-NEXT:     i32 1, label %second_switch.inc_crit_edge
; CHECK-NEXT:   ]

; CHECK:      second_switch.inc_crit_edge:                      ; preds = %second_switch
; CHECK-NEXT:   br i1 true, label %us-unreachable7, label %inc


define i32 @test(i32* %var) {
  %mem = alloca i32
  store i32 2, i32* %mem
  %c = load i32, i32* %mem
  %d = load i32, i32* %mem

  br label %loop_begin

loop_begin:

  %var_val = load i32, i32* %var

  switch i32 %c, label %second_switch [
      i32 1, label %inc
  ]

second_switch:
  switch i32 %d, label %default [
      i32 1, label %inc
  ]

inc:
  call void @incf() noreturn nounwind
  br label %loop_begin

default:
  br label %loop_begin

loop_exit:
  ret i32 0
}

declare void @incf() noreturn
declare void @decf() noreturn

; CHECK: attributes #0 = { noreturn }
; CHECK: attributes [[NOR_NUW]] = { noreturn nounwind }
