; RUN: opt %loadPolly -polly-scops -polly-delicm -analyze < %s | FileCheck %s
;
; llvm.org/PR41656
; 
; This test case has an InvalidContext such that part of the predecessors
; of for.body.us.i lie within the invalid context. This causes a
; consistency check withing the invalid context of PR41656 to fail.
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

define dso_local void @main() local_unnamed_addr #0 {
entry:
  %call24 = tail call i32 @av_get_channel_layout_nb_channels() #2
  br label %if.end30

if.end30:                                         ; preds = %entry
  br i1 undef, label %if.then40, label %do.body.preheader

do.body.preheader:                                ; preds = %if.end30
  %idx.ext.i = sext i32 %call24 to i64
  %wide.trip.count.i = zext i32 %call24 to i64
  %0 = load double*, double** undef, align 8, !tbaa !1
  br label %for.body.us.preheader.i

if.then40:                                        ; preds = %if.end30
  unreachable

for.body.us.preheader.i:                          ; preds = %do.body.preheader
  br i1 false, label %for.body.us.i.us, label %for.body.us.i

for.body.us.i.us:                                 ; preds = %for.body.us.preheader.i
  br label %fill_samples.exit

for.body.us.i:                                    ; preds = %for.cond2.for.end_crit_edge.us.i, %for.body.us.preheader.i
  %t.1 = phi double [ undef, %for.cond2.for.end_crit_edge.us.i ], [ 0.000000e+00, %for.body.us.preheader.i ]
  %i.05.us.i = phi i32 [ %inc8.us.i, %for.cond2.for.end_crit_edge.us.i ], [ 0, %for.body.us.preheader.i ]
  %dstp.03.us.i = phi double* [ %add.ptr.us.i, %for.cond2.for.end_crit_edge.us.i ], [ %0, %for.body.us.preheader.i ]
  %mul.us.i = fmul nsz double %t.1, 0x40A59933FC6A96C1
  %1 = call nsz double @llvm.sin.f64(double %mul.us.i) #2
  store double %1, double* %dstp.03.us.i, align 8, !tbaa !5
  %2 = bitcast double* %dstp.03.us.i to i64*
  br label %for.body5.us.for.body5.us_crit_edge.i

for.body5.us.for.body5.us_crit_edge.i:            ; preds = %for.body5.us.for.body5.us_crit_edge.i.for.body5.us.for.body5.us_crit_edge.i_crit_edge, %for.body.us.i
  %indvars.iv.next.i66 = phi i64 [ 2, %for.body.us.i ], [ %indvars.iv.next.i, %for.body5.us.for.body5.us_crit_edge.i.for.body5.us.for.body5.us_crit_edge.i_crit_edge ]
  %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.next.i66, 1
  %exitcond.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i
  br i1 %exitcond.i, label %for.cond2.for.end_crit_edge.us.i, label %for.body5.us.for.body5.us_crit_edge.i.for.body5.us.for.body5.us_crit_edge.i_crit_edge

for.body5.us.for.body5.us_crit_edge.i.for.body5.us.for.body5.us_crit_edge.i_crit_edge: ; preds = %for.body5.us.for.body5.us_crit_edge.i
  %.pre10.i.pre = load i64, i64* %2, align 8, !tbaa !5
  br label %for.body5.us.for.body5.us_crit_edge.i

for.cond2.for.end_crit_edge.us.i:                 ; preds = %for.body5.us.for.body5.us_crit_edge.i
  %add.ptr.us.i = getelementptr inbounds double, double* %dstp.03.us.i, i64 %idx.ext.i
  %inc8.us.i = add nuw nsw i32 %i.05.us.i, 1
  %exitcond7.i = icmp eq i32 %inc8.us.i, 1024
  br i1 %exitcond7.i, label %fill_samples.exit, label %for.body.us.i

fill_samples.exit:                                ; preds = %for.cond2.for.end_crit_edge.us.i, %for.body.us.i.us
  ret void
}

declare dso_local i32 @av_get_channel_layout_nb_channels() local_unnamed_addr #0

; Function Attrs: nounwind readnone speculatable
declare double @llvm.sin.f64(double) #1

attributes #0 = { "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { nounwind }

!llvm.ident = !{!0}

!0 = !{!"clang version 9.0.0 (https://github.com/llvm/llvm-project.git 2436237895b70ed44cf256f67eb2f74e147eb559)"}
!1 = !{!2, !2, i64 0}
!2 = !{!"any pointer", !3, i64 0}
!3 = !{!"omnipotent char", !4, i64 0}
!4 = !{!"Simple C/C++ TBAA"}
!5 = !{!6, !6, i64 0}
!6 = !{!"double", !3, i64 0}


; CHECK:      Invalid Context:
; CHECK-NEXT: [call24] -> {  : call24 <= 2 }
; CHECK:      Defined Behavior Context:
; CHECK-NEXT: [call24] -> {  : 3 <= call24 <= 2147483647 }

; Only write to scalar if call24 >= 3 (i.e. not in invalid context)
; Since it should be never executed otherwise, the condition is not strictly necessary.
; CHECK-LABEL: DeLICM result:
; CHECK:          Stmt_for_body_us_preheader_i
; CHECK-NEXT:            MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 1]
; CHECK-NEXT:                 [call24] -> { Stmt_for_body_us_preheader_i[] -> MemRef_t_1__phi[] };
; CHECK-NEXT:            new: [call24] -> { Stmt_for_body_us_preheader_i[] -> MemRef1[0, 0] : call24 >= 3 };
