; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -loop-reduce -S %s | FileCheck %s

target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.15.0"

declare void @use(double) readnone

; Make sure re-used instructions do not impact the insertion points for SCEV
; expansion.
define void @test(ptr %ioptr, i32 %X, ptr %start, ptr %end) {
; CHECK-LABEL: @test(
; CHECK-NEXT:  entry:
; CHECK-NEXT:    [[IDX_EXT32:%.*]] = sext i32 [[X:%.*]] to i64
; CHECK-NEXT:    [[TMP0:%.*]] = shl nsw i64 [[IDX_EXT32]], 3
; CHECK-NEXT:    [[TMP1:%.*]] = add nsw i64 [[TMP0]], 8
; CHECK-NEXT:    br label [[FOR_BODY15:%.*]]
; CHECK:       for.body15:
; CHECK-NEXT:    br label [[FOR_BODY37:%.*]]
; CHECK:       for.body37:
; CHECK-NEXT:    [[P0R_0335:%.*]] = phi ptr [ [[ADD_PTR94:%.*]], [[FOR_BODY37]] ], [ [[START:%.*]], [[FOR_BODY15]] ]
; CHECK-NEXT:    [[ADD_PTR94]] = getelementptr inbounds double, ptr [[P0R_0335]], i64 1
; CHECK-NEXT:    [[SCEVGEP:%.*]] = getelementptr i8, ptr [[P0R_0335]], i64 [[TMP1]]
; CHECK-NEXT:    [[F1I_0:%.*]] = load double, ptr [[SCEVGEP]], align 8
; CHECK-NEXT:    call void @use(double [[F1I_0]])
; CHECK-NEXT:    [[EC0:%.*]] = icmp eq ptr [[ADD_PTR94]], [[END:%.*]]
; CHECK-NEXT:    br i1 [[EC0]], label [[FOR_BODY37]], label [[FOR_END_LOOPEXIT:%.*]]
; CHECK:       for.end.loopexit:
; CHECK-NEXT:    [[ADD_PTR94_LCSSA:%.*]] = phi ptr [ [[ADD_PTR94]], [[FOR_BODY37]] ]
; CHECK-NEXT:    br label [[FOR_END:%.*]]
; CHECK:       for.end:
; CHECK-NEXT:    [[P0R_0_LCSSA:%.*]] = phi ptr [ [[ADD_PTR94_LCSSA]], [[FOR_END_LOOPEXIT]] ]
; CHECK-NEXT:    [[EC1:%.*]] = icmp eq ptr [[P0R_0_LCSSA]], [[END]]
; CHECK-NEXT:    br i1 [[EC1]], label [[FOR_BODY15]], label [[FOR_INC133:%.*]]
; CHECK:       for.inc133:
; CHECK-NEXT:    ret void
;
entry:
  %idx.ext32 = sext i32 %X to i64
  br label %for.body15

for.body15:                                       ; preds = %for.end, %for.body15.lr.ph
  br label %for.body37

for.body37:                                       ; preds = %for.body37, %for.body37.preheader
  %p0r.0335 = phi ptr [ %add.ptr94, %for.body37 ], [ %start, %for.body15 ]
  %add.ptr94 = getelementptr inbounds double, ptr %p0r.0335, i64 1
  %f1i.0.in = getelementptr inbounds double, ptr %add.ptr94, i64 %idx.ext32
  %f1i.0 = load double, ptr %f1i.0.in, align 8
  call void @use(double %f1i.0)
  %ec0 = icmp eq ptr %add.ptr94, %end
  br i1 %ec0, label %for.body37, label %for.end.loopexit

for.end.loopexit:                                 ; preds = %for.body37
  br label %for.end

for.end:                                          ; preds = %for.end.loopexit, %for.body15
  %p0r.0.lcssa = phi ptr [ %add.ptr94, %for.end.loopexit ]
  %ec1 = icmp eq ptr %p0r.0.lcssa, %end
  br i1 %ec1, label %for.body15, label %for.inc133

for.inc133:                                       ; preds = %for.end
  ret void
}
