--- /dev/null
+; RUN: opt %loadPolly -polly-ast -analyze -polly-codegen-scev -polly-ignore-aliasing < %s | FileCheck %s
+; RUN: opt %loadPolly -polly-codegen-isl -polly-codegen-scev -polly-ignore-aliasing < %s
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+; CHECK: if (1)
+; CHECK: {
+; CHECK: for (int c1 = 0; c1 <= -Scalar0.val.loadoutside + 99; c1 += 1)
+; CHECK: Stmt_for_1(c1);
+; CHECK: if (Scalar0.val.loadoutside >= 100)
+; CHECK: Stmt_for_1(0);
+; CHECK: }
+
+; CHECK: if (1)
+; CHECK: Stmt_for_0(0);
+
+
+define void @foo(i32* %A) {
+entry:
+ %Scalar0 = alloca i32
+ br label %for.0
+
+for.0:
+ %Scalar0.val = load i32* %Scalar0
+ br i1 false, label %for.0, label %for.1.preheader
+
+for.1.preheader:
+ fence seq_cst
+ br label %for.1
+
+for.1:
+ %indvar.1 = phi i32 [ %Scalar0.val, %for.1.preheader ], [ %indvar.1.next, %for.1]
+ %arrayidx.1 = getelementptr inbounds i32* %A, i32 %indvar.1
+ store i32 1, i32* %arrayidx.1
+ %indvar.1.next = add nsw i32 %indvar.1, 1
+ %cmp.1 = icmp slt i32 %indvar.1.next, 100
+ br i1 %cmp.1, label %for.1, label %end
+
+end:
+ ret void
+}