; RUN: opt < %s -aa-pipeline=basic-aa -passes='require<da>,print<delinearization>' -disable-output
;
; a, b, c, d, g, h;
; char *f;
; static fn1(p1) {
;   char *e = p1;
;   for (; d;) {
;     a = 0;
;     for (;; ++a)
;       for (; b; ++b)
;         c = e[b + a];
;   }
; }
;
; fn2() {
;   for (;;)
;     fn1(&f[g * h]);
; }

@g = common global i32 0, align 4
@h = common global i32 0, align 4
@f = common global ptr null, align 4
@a = common global i32 0, align 4
@b = common global i32 0, align 4
@c = common global i32 0, align 4
@d = common global i32 0, align 4

define i32 @fn2() {
entry:
  %.pr = load i32, ptr @d, align 4
  %phitmp = icmp eq i32 %.pr, 0
  br label %for.cond

for.cond:
  %0 = phi i1 [ true, %for.cond ], [ %phitmp, %entry ]
  br i1 %0, label %for.cond, label %for.cond2thread-pre-split.preheader.i

for.cond2thread-pre-split.preheader.i:
  %1 = load i32, ptr @g, align 4
  %2 = load i32, ptr @h, align 4
  %mul = mul nsw i32 %2, %1
  %3 = load ptr, ptr @f, align 4
  %.pr.pre.i = load i32, ptr @b, align 4
  br label %for.cond2thread-pre-split.i

for.cond2thread-pre-split.i:
  %.pr.i = phi i32 [ 0, %for.inc5.i ], [ %.pr.pre.i, %for.cond2thread-pre-split.preheader.i ]
  %storemerge.i = phi i32 [ %inc6.i, %for.inc5.i ], [ 0, %for.cond2thread-pre-split.preheader.i ]
  store i32 %storemerge.i, ptr @a, align 4
  %tobool31.i = icmp eq i32 %.pr.i, 0
  br i1 %tobool31.i, label %for.inc5.i, label %for.body4.preheader.i

for.body4.preheader.i:
  %4 = icmp slt i32 %.pr.i, -7
  %add.i = add i32 %storemerge.i, %mul
  br i1 %4, label %for.body4.i.preheader, label %for.body4.ur.i.preheader

for.body4.i.preheader:
  %5 = sub i32 -8, %.pr.i
  %6 = lshr i32 %5, 3
  %7 = mul i32 %6, 8
  br label %for.body4.i

for.body4.i:
  %8 = phi i32 [ %inc.7.i, %for.body4.i ], [ %.pr.i, %for.body4.i.preheader ]
  %arrayidx.sum1 = add i32 %add.i, %8
  %arrayidx.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum1
  %9 = load i8, ptr %arrayidx.i, align 1
  %conv.i = sext i8 %9 to i32
  store i32 %conv.i, ptr @c, align 4
  %inc.i = add nsw i32 %8, 1
  store i32 %inc.i, ptr @b, align 4
  %arrayidx.sum2 = add i32 %add.i, %inc.i
  %arrayidx.1.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum2
  %10 = load i8, ptr %arrayidx.1.i, align 1
  %conv.1.i = sext i8 %10 to i32
  store i32 %conv.1.i, ptr @c, align 4
  %inc.1.i = add nsw i32 %8, 2
  store i32 %inc.1.i, ptr @b, align 4
  %arrayidx.sum3 = add i32 %add.i, %inc.1.i
  %arrayidx.2.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum3
  %11 = load i8, ptr %arrayidx.2.i, align 1
  %conv.2.i = sext i8 %11 to i32
  store i32 %conv.2.i, ptr @c, align 4
  %inc.2.i = add nsw i32 %8, 3
  store i32 %inc.2.i, ptr @b, align 4
  %arrayidx.sum4 = add i32 %add.i, %inc.2.i
  %arrayidx.3.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum4
  %12 = load i8, ptr %arrayidx.3.i, align 1
  %conv.3.i = sext i8 %12 to i32
  store i32 %conv.3.i, ptr @c, align 4
  %inc.3.i = add nsw i32 %8, 4
  store i32 %inc.3.i, ptr @b, align 4
  %arrayidx.sum5 = add i32 %add.i, %inc.3.i
  %arrayidx.4.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum5
  %13 = load i8, ptr %arrayidx.4.i, align 1
  %conv.4.i = sext i8 %13 to i32
  store i32 %conv.4.i, ptr @c, align 4
  %inc.4.i = add nsw i32 %8, 5
  store i32 %inc.4.i, ptr @b, align 4
  %arrayidx.sum6 = add i32 %add.i, %inc.4.i
  %arrayidx.5.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum6
  %14 = load i8, ptr %arrayidx.5.i, align 1
  %conv.5.i = sext i8 %14 to i32
  store i32 %conv.5.i, ptr @c, align 4
  %inc.5.i = add nsw i32 %8, 6
  store i32 %inc.5.i, ptr @b, align 4
  %arrayidx.sum7 = add i32 %add.i, %inc.5.i
  %arrayidx.6.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum7
  %15 = load i8, ptr %arrayidx.6.i, align 1
  %conv.6.i = sext i8 %15 to i32
  store i32 %conv.6.i, ptr @c, align 4
  %inc.6.i = add nsw i32 %8, 7
  store i32 %inc.6.i, ptr @b, align 4
  %arrayidx.sum8 = add i32 %add.i, %inc.6.i
  %arrayidx.7.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum8
  %16 = load i8, ptr %arrayidx.7.i, align 1
  %conv.7.i = sext i8 %16 to i32
  store i32 %conv.7.i, ptr @c, align 4
  %inc.7.i = add nsw i32 %8, 8
  store i32 %inc.7.i, ptr @b, align 4
  %tobool3.7.i = icmp sgt i32 %inc.7.i, -8
  br i1 %tobool3.7.i, label %for.inc5.loopexit.ur-lcssa.i, label %for.body4.i

for.inc5.loopexit.ur-lcssa.i:
  %17 = add i32 %.pr.i, 8
  %18 = add i32 %17, %7
  %19 = icmp eq i32 %18, 0
  br i1 %19, label %for.inc5.i, label %for.body4.ur.i.preheader

for.body4.ur.i.preheader:
  %.ph = phi i32 [ %18, %for.inc5.loopexit.ur-lcssa.i ], [ %.pr.i, %for.body4.preheader.i ]
  br label %for.body4.ur.i

for.body4.ur.i:
  %20 = phi i32 [ %inc.ur.i, %for.body4.ur.i ], [ %.ph, %for.body4.ur.i.preheader ]
  %arrayidx.sum = add i32 %add.i, %20
  %arrayidx.ur.i = getelementptr inbounds i8, ptr %3, i32 %arrayidx.sum
  %21 = load i8, ptr %arrayidx.ur.i, align 1
  %conv.ur.i = sext i8 %21 to i32
  store i32 %conv.ur.i, ptr @c, align 4
  %inc.ur.i = add nsw i32 %20, 1
  store i32 %inc.ur.i, ptr @b, align 4
  %tobool3.ur.i = icmp eq i32 %inc.ur.i, 0
  br i1 %tobool3.ur.i, label %for.inc5.i.loopexit, label %for.body4.ur.i

for.inc5.i.loopexit:
  br label %for.inc5.i

for.inc5.i:
  %inc6.i = add nsw i32 %storemerge.i, 1
  br label %for.cond2thread-pre-split.i
}
