1 ; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
4 ; for (long i = 0; i < 16; i++) {
12 ; CHECK-NEXT: Stmt_for_body
13 ; CHECK-NEXT: Domain :=
14 ; CHECK-NEXT: { Stmt_for_body[i0] : 0 <= i0 <= 15 };
15 ; CHECK-NEXT: Schedule :=
16 ; CHECK-NEXT: { Stmt_for_body[i0] -> [i0, 0] };
17 ; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
18 ; CHECK-NEXT: { Stmt_for_body[i0] -> MemRef_A[i0] };
19 ; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 0]
20 ; CHECK-NEXT: { Stmt_for_body[i0] -> MemRef_A[i0] };
21 ; CHECK-NEXT: Stmt_if_then
22 ; CHECK-NEXT: Domain :=
23 ; CHECK-NEXT: { Stmt_if_then[i0] : 6 <= i0 <= 7 };
24 ; CHECK-NEXT: Schedule :=
25 ; CHECK-NEXT: { Stmt_if_then[i0] -> [i0, 1] };
26 ; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]
27 ; CHECK-NEXT: { Stmt_if_then[i0] -> MemRef_A[i0] };
28 ; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 0]
29 ; CHECK-NEXT: { Stmt_if_then[i0] -> MemRef_A[i0] };
32 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
34 define void @foo(float* %A) {
38 for.cond: ; preds = %for.inc, %entry
39 %i.0 = phi i64 [ 0, %entry ], [ %inc, %for.inc ]
40 %exitcond = icmp ne i64 %i.0, 16
41 br i1 %exitcond, label %for.body, label %for.end
43 for.body: ; preds = %for.cond
44 %arrayidx0 = getelementptr inbounds float, float* %A, i64 %i.0
45 %tmp0 = load float, float* %arrayidx0, align 4
46 %add0 = fadd float %tmp0, 2.000000e+00
47 store float %add0, float* %arrayidx0, align 4
48 %rem1 = sdiv i64 %i.0, 2
49 %tobool = icmp ne i64 %rem1, 3
50 br i1 %tobool, label %if.end, label %if.then
52 if.then: ; preds = %for.body
53 %arrayidx = getelementptr inbounds float, float* %A, i64 %i.0
54 %tmp = load float, float* %arrayidx, align 4
55 %add = fadd float %tmp, 2.000000e+00
56 store float %add, float* %arrayidx, align 4
59 if.end: ; preds = %for.body, %if.then
62 for.inc: ; preds = %if.end
63 %inc = add nuw nsw i64 %i.0, 1
66 for.end: ; preds = %for.cond