; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt < %s -passes=loop-interchange -loop-interchange-profitabilities=ignore -S | FileCheck %s

; Ensure that the pass doesn't crash when the outer latch contains PHI nodes
; with more than one incoming values.

define void @f(i1 %cond) {
; CHECK-LABEL: define void @f(
; CHECK-SAME: i1 [[COND:%.*]]) {
; CHECK-NEXT:  [[ENTRY:.*]]:
; CHECK-NEXT:    br label %[[OUTER_HEADER:.*]]
; CHECK:       [[OUTER_HEADER]]:
; CHECK-NEXT:    [[I:%.*]] = phi i64 [ 0, %[[ENTRY]] ], [ [[I_INC:%.*]], %[[OUTER_LATCH:.*]] ]
; CHECK-NEXT:    br i1 [[COND]], label %[[OUTER_LATCH]], label %[[INNER_PREHEADER:.*]]
; CHECK:       [[INNER_PREHEADER]]:
; CHECK-NEXT:    br label %[[INNER:.*]]
; CHECK:       [[INNER]]:
; CHECK-NEXT:    [[J:%.*]] = phi i64 [ [[J_INC:%.*]], %[[INNER]] ], [ 0, %[[INNER_PREHEADER]] ]
; CHECK-NEXT:    [[J_INC]] = add i64 [[J]], 1
; CHECK-NEXT:    [[EC_J:%.*]] = icmp eq i64 [[J_INC]], 10
; CHECK-NEXT:    br i1 [[EC_J]], label %[[OUTER_BODY:.*]], label %[[INNER]]
; CHECK:       [[OUTER_BODY]]:
; CHECK-NEXT:    br label %[[OUTER_LATCH]]
; CHECK:       [[OUTER_LATCH]]:
; CHECK-NEXT:    [[P:%.*]] = phi i64 [ [[I]], %[[OUTER_HEADER]] ], [ 10, %[[OUTER_BODY]] ]
; CHECK-NEXT:    [[I_INC]] = add i64 [[I]], 1
; CHECK-NEXT:    [[EC_I:%.*]] = icmp eq i64 [[I_INC]], 10
; CHECK-NEXT:    br i1 [[EC_I]], label %[[EXIT:.*]], label %[[OUTER_HEADER]]
; CHECK:       [[EXIT]]:
; CHECK-NEXT:    ret void
;
entry:
  br label %outer.header

outer.header:
  %i = phi i64 [ 0, %entry ], [ %i.inc, %outer.latch ]
  br i1 %cond, label %outer.latch, label %inner

inner:
  %j = phi i64 [ 0, %outer.header ], [ %j.inc, %inner ]
  %j.inc = add i64 %j, 1
  %ec.j = icmp eq i64 %j.inc, 10
  br i1 %ec.j, label %outer.body, label %inner

outer.body:
  br label %outer.latch

outer.latch:
  %p = phi i64 [ %i, %outer.header ], [ 10, %outer.body ]
  %i.inc = add i64 %i, 1
  %ec.i = icmp eq i64 %i.inc, 10
  br i1 %ec.i, label %exit, label %outer.header

exit:
  ret void
}
