; RUN: opt %loadPolly -polly-cloog -analyze  -S < %s | FileCheck %s
; XFAIL: *

;int bar1();
;int bar2();
;int bar3();
;int k;
;#define N 100
;int A[N];
;
;int foo (int z) {
;  int i, j;
;
;  for (i = 0; i < N; i++) {
;    A[i] = i;
;
;      for (j = 0; j < N * 2; j++)
;        A[i] = j * A[i];
;  }
;
;  return A[z];
;}

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-n8:16:32:64"
target triple = "x86_64-unknown-linux-gnu"

@A = common global [100 x i32] zeroinitializer, align 4 ; <[100 x i32]*> [#uses=2]
@k = common global i32 0, align 4                 ; <i32*> [#uses=0]

define i32 @foo(i32 %z) nounwind {
bb.nph31.split.us:
  br label %bb.nph.us

for.inc16.us:                                     ; preds = %for.body6.us
  store i32 %mul.us, i32* %arrayidx.us
  %indvar.next = add i64 %indvar, 1               ; <i64> [#uses=2]
  %exitcond32 = icmp eq i64 %indvar.next, 100     ; <i1> [#uses=1]
  br i1 %exitcond32, label %for.end19, label %bb.nph.us

for.body6.us:                                     ; preds = %for.body6.us, %bb.nph.us
  %arrayidx10.tmp.0.us = phi i32 [ %i.027.us, %bb.nph.us ], [ %mul.us, %for.body6.us ] ; <i32> [#uses=1]
  %0 = phi i32 [ 0, %bb.nph.us ], [ %inc.us, %for.body6.us ] ; <i32> [#uses=2]
  %mul.us = mul i32 %arrayidx10.tmp.0.us, %0      ; <i32> [#uses=2]
  %inc.us = add nsw i32 %0, 1                     ; <i32> [#uses=2]
  %exitcond = icmp eq i32 %inc.us, 200            ; <i1> [#uses=1]
  br i1 %exitcond, label %for.inc16.us, label %for.body6.us

bb.nph.us:                                        ; preds = %bb.nph31.split.us, %for.inc16.us
  %indvar = phi i64 [ %indvar.next, %for.inc16.us ], [ 0, %bb.nph31.split.us ] ; <i64> [#uses=3]
  %arrayidx.us = getelementptr [100 x i32]* @A, i64 0, i64 %indvar ; <i32*> [#uses=2]
  %i.027.us = trunc i64 %indvar to i32            ; <i32> [#uses=2]
  store i32 %i.027.us, i32* %arrayidx.us
  br label %for.body6.us

for.end19:                                        ; preds = %for.inc16.us
  %idxprom21 = sext i32 %z to i64                 ; <i64> [#uses=1]
  %arrayidx22 = getelementptr inbounds [100 x i32]* @A, i64 0, i64 %idxprom21 ; <i32*> [#uses=1]
  %tmp23 = load i32* %arrayidx22                  ; <i32> [#uses=1]
  ret i32 %tmp23
}
; CHECK: for (c2=0;c2<=99;c2++) {
; CHECK:   S{{[0-4]}}(c2);
; CHECK:   for (c4=0;c4<=199;c4++) {
; CHECK:     S{{[[0-4]}}(c2,c4);
; CHECK:   }
; CHECK:   S{{[0-4]}}(c2);
; CHECK: }

