; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; NOTE: Only %local_3_4 is important here.
;       All other instructions are needed to lure LLVM into executing
;       specific code to trigger a bug.
; RUN: opt < %s -passes=indvars -S | FileCheck %s
define i32 @test() {
; CHECK-LABEL: @test(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    br label [[OUTER:%.*]]
; CHECK:       outer:
; CHECK-NEXT:    [[LOCAL_6_6:%.*]] = phi i32 [ 10, [[ENTRY:%.*]] ], [ [[TMP5:%.*]], [[LATCH:%.*]] ]
; CHECK-NEXT:    [[LOCAL_4_5:%.*]] = phi i32 [ 56587, [[ENTRY]] ], [ 0, [[LATCH]] ]
; CHECK-NEXT:    [[LOCAL_3_4:%.*]] = phi i32 [ 2, [[ENTRY]] ], [ [[TMP5]], [[LATCH]] ]
; CHECK-NEXT:    [[DOTUDIV:%.*]] = udiv i32 [[LOCAL_6_6]], 8361
; CHECK-NEXT:    br label [[INNER:%.*]]
; CHECK:       inner:
; CHECK-NEXT:    [[LOCAL_7_3:%.*]] = phi i32 [ 2, [[OUTER]] ], [ [[TMP3:%.*]], [[INNER]] ]
; CHECK-NEXT:    [[LOCAL_4_5_PN:%.*]] = phi i32 [ [[LOCAL_4_5]], [[OUTER]] ], [ [[TMP2:%.*]], [[INNER]] ]
; CHECK-NEXT:    [[LOCAL_3_31:%.*]] = mul i32 [[LOCAL_4_5_PN]], [[DOTUDIV]]
; CHECK-NEXT:    [[TMP0:%.*]] = mul nuw nsw i32 [[LOCAL_7_3]], [[DOTUDIV]]
; CHECK-NEXT:    [[TMP1:%.*]] = sub i32 [[TMP0]], [[LOCAL_3_4]]
; CHECK-NEXT:    [[TMP2]] = add i32 [[TMP1]], [[LOCAL_3_31]]
; CHECK-NEXT:    [[TMP3]] = add nuw nsw i32 [[LOCAL_7_3]], 1
; CHECK-NEXT:    [[TMP4:%.*]] = icmp ugt i32 [[LOCAL_7_3]], 4
; CHECK-NEXT:    br i1 [[TMP4]], label [[LATCH]], label [[INNER]]
; CHECK:       latch:
; CHECK-NEXT:    [[DOTLCSSA:%.*]] = phi i32 [ [[TMP2]], [[INNER]] ]
; CHECK-NEXT:    [[TMP5]] = add nuw nsw i32 [[LOCAL_6_6]], 1
; CHECK-NEXT:    [[TMP6:%.*]] = icmp ugt i32 [[LOCAL_6_6]], 276
; CHECK-NEXT:    br i1 [[TMP6]], label [[RETURN:%.*]], label [[OUTER]]
; CHECK:       return:
; CHECK-NEXT:    [[DOTLCSSA_LCSSA:%.*]] = phi i32 [ [[DOTLCSSA]], [[LATCH]] ]
; CHECK-NEXT:    ret i32 [[DOTLCSSA_LCSSA]]
;
entry:
  br label %outer

outer:
  %local_6_6 = phi i32 [ 10, %entry ], [ %5, %latch ]
  %local_4_5 = phi i32 [ 56587, %entry ], [ 0, %latch ]
  %local_3_4 = phi i32 [ 2, %entry ], [ %5, %latch ]
  %.udiv = udiv i32 %local_6_6, 8361
  br label %inner

inner:
  %local_7_3 = phi i32 [ 2, %outer ], [ %3, %inner ]
  %local_4_5.pn = phi i32 [ %local_4_5, %outer ], [ %2, %inner ]
  %local_3_31 = mul i32 %local_4_5.pn, %.udiv
  %0 = mul i32 %local_7_3, %.udiv
  %1 = sub i32 %0, %local_3_4
  %2 = add i32 %1, %local_3_31
  %3 = add nuw nsw i32 %local_7_3, 1
  %4 = icmp ugt i32 %local_7_3, 4
  br i1 %4, label %latch, label %inner

latch:
  %.lcssa = phi i32 [ %2, %inner ]
  %5 = add nuw nsw i32 %local_6_6, 1
  %6 = icmp ugt i32 %local_6_6, 276
  br i1 %6, label %return, label %outer

return:
  %.lcssa.lcssa = phi i32 [ %.lcssa, %latch ]
  ret i32 %.lcssa.lcssa

}

