; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze < %s | FileCheck %s

; void f(long a[][128], long N, long M) {
;   long i, j;
;   for (j = 0; j < (4*N + 7*M +3); ++j)
;     for (i = (7*j + 6*M -9); i < (3*j + 5*N + 2) ; ++i)
;         a[i][j] = 0;
; }

target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"

define void @f([128 x i64]* nocapture %a, i64 %N, i64 %M) nounwind {
entry:
  %0 = shl i64 %N, 2
  %1 = mul i64 %M, 7
  %2 = or i64 %0, 3
  %3 = add nsw i64 %2, %1
  %4 = icmp sgt i64 %3, 0
  br i1 %4, label %bb.nph8, label %return

bb.nph8:                                          ; preds = %entry
  %tmp14 = mul i64 %M, 6
  %tmp15 = add i64 %tmp14, -9
  %tmp20 = add i64 %1, %0
  %tmp21 = add i64 %tmp20, 3
  %tmp25 = mul i64 %M, -6
  %tmp26 = mul i64 %N, 5
  %tmp27 = add i64 %tmp25, %tmp26
  %tmp28 = add i64 %tmp27, 11
  %tmp35 = add i64 %tmp26, 2
  br label %bb

bb:                                               ; preds = %bb3, %bb.nph8
  %j.07 = phi i64 [ 0, %bb.nph8 ], [ %6, %bb3 ]
  %tmp17 = mul i64 %j.07, 897
  %tmp24 = mul i64 %j.07, -4
  %tmp13 = add i64 %tmp24, %tmp28
  %tmp30 = mul i64 %j.07, 7
  %tmp33 = add i64 %tmp30, %tmp15
  %tmp34 = mul i64 %j.07, 3
  %tmp36 = add i64 %tmp34, %tmp35
  %5 = icmp sgt i64 %tmp36, %tmp33
  br i1 %5, label %bb1, label %bb3

bb1:                                              ; preds = %bb1, %bb
  %indvar = phi i64 [ 0, %bb ], [ %indvar.next, %bb1 ]
  %tmp16 = add i64 %indvar, %tmp15
  %scevgep = getelementptr [128 x i64], [128 x i64]* %a, i64 %tmp16, i64 %tmp17
  store i64 0, i64* %scevgep
  %indvar.next = add i64 %indvar, 1
  %exitcond = icmp eq i64 %indvar.next, %tmp13
  br i1 %exitcond, label %bb3, label %bb1

bb3:                                              ; preds = %bb1, %bb
  %6 = add nsw i64 %j.07, 1
  %exitcond22 = icmp eq i64 %6, %tmp21
  br i1 %exitcond22, label %return, label %bb

return:                                           ; preds = %bb3, %entry
  ret void
}

; CHECK: p0: %N
; CHECK: p1: %M
; CHECK: Statements {
; CHECK:   Stmt_bb1
; CHECK:         Domain :=
; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] : i0 >= 0 and i0 <= 2 + 4N + 7M and i1 >= 0 and i1 <= 10 + 5N - 6M - 4i0 and 4i0 <= 10 + 5N - 6M };
; CHECK:         Schedule :=
; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> [i0, i1] };
; CHECK:         MustWriteAccess := [Reduction Type: NONE]
; CHECK:             [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[-1152 + 768M + 897i0 + 128i1] };
; CHECK: }
