; RUN: opt %loadPolly  -polly-scops -analyze < %s | FileCheck %s
;
;    void foo(float *A) {
;      for (long i = 1;; i++) {
;        A[i] += 1;
;        if (i / 7 == 4)
;          break;
;      }
;    }
;
; CHECK:  Domain :=
; CHECK:    { Stmt_for_body[i0] : i0 <= 27 and i0 >= 0 };
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"

define void @foo(float* %A) {
entry:
  br label %for.cond

for.cond:                                         ; preds = %for.inc, %entry
  %i.0 = phi i64 [ 1, %entry ], [ %inc, %for.inc ]
  br label %for.body

for.body:                                         ; preds = %for.cond
  %arrayidx0 = getelementptr inbounds float, float* %A, i64 %i.0
  %tmp0 = load float, float* %arrayidx0, align 4
  %add0 = fadd float %tmp0, 2.000000e+00
  store float %add0, float* %arrayidx0, align 4
  %rem1 = sdiv i64 %i.0, 7
  %tobool = icmp eq i64 %rem1, 4
  br i1 %tobool, label %for.end, label %if.end

if.end:                                           ; preds = %for.body, %if.then
  br label %for.inc

for.inc:                                          ; preds = %if.end
  %inc = add nuw nsw i64 %i.0, 1
  br label %for.cond

for.end:                                          ; preds = %for.cond
  ret void
}
