; RUN: opt < %s -disable-output -passes="print<da>"                            \
; RUN: -da-disable-delinearization-checks 2>&1 | FileCheck %s
; RUN: opt < %s -da -analyze -enable-new-pm=0 -da-disable-delinearization-checks | FileCheck %s

; CHECK-LABEL: t1
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [1 -2]!
; CHECK: da analyze - none!

;; #define N 1024
;; #define M 2048
;; void t1(int a[N][M]) {
;;   for (int i = 0; i < N-1; ++i)
;;     for (int j = 2; j < M; ++j)
;;       a[i][j] = a[i+1][j-2];
;; }

define void @t1([2048 x i32]* %a) {
entry:
  br label %for.body

for.body:                                         ; preds = %entry, %for.inc11
  %indvars.iv4 = phi i64 [ 0, %entry ], [ %indvars.iv.next5, %for.inc11 ]
  br label %for.body4

for.body4:                                        ; preds = %for.body, %for.body4
  %indvars.iv = phi i64 [ 2, %for.body ], [ %indvars.iv.next, %for.body4 ]
  %0 = add nuw nsw i64 %indvars.iv4, 1
  %1 = add nsw i64 %indvars.iv, -2
  %arrayidx6 = getelementptr inbounds [2048 x i32], [2048 x i32]* %a, i64 %0, i64 %1
  %2 = load i32, i32* %arrayidx6, align 4
  %arrayidx10 = getelementptr inbounds [2048 x i32], [2048 x i32]* %a, i64 %indvars.iv4, i64 %indvars.iv
  store i32 %2, i32* %arrayidx10, align 4
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp ne i64 %indvars.iv.next, 2048
  br i1 %exitcond, label %for.body4, label %for.inc11

for.inc11:                                        ; preds = %for.body4
  %indvars.iv.next5 = add nuw nsw i64 %indvars.iv4, 1
  %exitcond7 = icmp ne i64 %indvars.iv.next5, 1023
  br i1 %exitcond7, label %for.body, label %for.end13

for.end13:                                        ; preds = %for.inc11
  ret void
}


; CHECK-LABEL: t2
; CHECK: da analyze - none!
; CHECK: da analyze - consistent anti [1 -2 0 -3 2]!
; CHECK: da analyze - none!

;; #define N 1024
;; #define M 2048
;; void t2(int a[][N][N][N][M]) {
;;   for (int i1 = 0; i1 < N-1; ++i1)
;;     for (int i2 = 2; i2 < N; ++i2)
;;       for (int i3 = 0; i3 < N; ++i3)
;;         for (int i4 = 3; i4 < N; ++i4)
;;           for (int i5 = 0; i5 < M-2; ++i5)
;;             a[i1][i2][i3][i4][i5] = a[i1+1][i2-2][i3][i4-3][i5+2];
;; }

define void @t2([1024 x [1024 x [1024 x [2048 x i32]]]]* %a) {
entry:
  br label %for.body

for.body:                                         ; preds = %entry, %for.inc46
  %indvars.iv18 = phi i64 [ 0, %entry ], [ %indvars.iv.next19, %for.inc46 ]
  br label %for.body4

for.body4:                                        ; preds = %for.body, %for.inc43
  %indvars.iv14 = phi i64 [ 2, %for.body ], [ %indvars.iv.next15, %for.inc43 ]
  br label %for.body8

for.body8:                                        ; preds = %for.body4, %for.inc40
  %indvars.iv11 = phi i64 [ 0, %for.body4 ], [ %indvars.iv.next12, %for.inc40 ]
  br label %for.body12

for.body12:                                       ; preds = %for.body8, %for.inc37
  %indvars.iv7 = phi i64 [ 3, %for.body8 ], [ %indvars.iv.next8, %for.inc37 ]
  br label %for.body16

for.body16:                                       ; preds = %for.body12, %for.body16
  %indvars.iv = phi i64 [ 0, %for.body12 ], [ %indvars.iv.next, %for.body16 ]
  %0 = add nuw nsw i64 %indvars.iv18, 1
  %1 = add nsw i64 %indvars.iv14, -2
  %2 = add nsw i64 %indvars.iv7, -3
  %3 = add nuw nsw i64 %indvars.iv, 2
  %arrayidx26 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], [1024 x [1024 x [1024 x [2048 x i32]]]]* %a, i64 %0, i64 %1, i64 %indvars.iv11, i64 %2, i64 %3
  %4 = load i32, i32* %arrayidx26, align 4
  %arrayidx36 = getelementptr inbounds [1024 x [1024 x [1024 x [2048 x i32]]]], [1024 x [1024 x [1024 x [2048 x i32]]]]* %a, i64 %indvars.iv18, i64 %indvars.iv14, i64 %indvars.iv11, i64 %indvars.iv7, i64 %indvars.iv
  store i32 %4, i32* %arrayidx36, align 4
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond = icmp ne i64 %indvars.iv.next, 2046
  br i1 %exitcond, label %for.body16, label %for.inc37

for.inc37:                                        ; preds = %for.body16
  %indvars.iv.next8 = add nuw nsw i64 %indvars.iv7, 1
  %exitcond10 = icmp ne i64 %indvars.iv.next8, 1024
  br i1 %exitcond10, label %for.body12, label %for.inc40

for.inc40:                                        ; preds = %for.inc37
  %indvars.iv.next12 = add nuw nsw i64 %indvars.iv11, 1
  %exitcond13 = icmp ne i64 %indvars.iv.next12, 1024
  br i1 %exitcond13, label %for.body8, label %for.inc43

for.inc43:                                        ; preds = %for.inc40
  %indvars.iv.next15 = add nuw nsw i64 %indvars.iv14, 1
  %exitcond17 = icmp ne i64 %indvars.iv.next15, 1024
  br i1 %exitcond17, label %for.body4, label %for.inc46

for.inc46:                                        ; preds = %for.inc43
  %indvars.iv.next19 = add nuw nsw i64 %indvars.iv18, 1
  %exitcond21 = icmp ne i64 %indvars.iv.next19, 1023
  br i1 %exitcond21, label %for.body, label %for.end48

for.end48:                                        ; preds = %for.inc46
  ret void
}
