1; RUN: opt %loadNPMPolly '-passes=print<polly-function-scops>' -disable-output < %s 2>&1 | FileCheck %s 2; 3; void foo(float *A) { 4; for (long i = 0; i < 16; i++) { 5; A[i] += 1; 6; if (i / 2 == 3) 7; A[i] += 2; 8; } 9; } 10; 11; CHECK: Statements { 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] }; 30; CHECK-NEXT: } 31; 32target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" 33 34define void @foo(ptr %A) { 35entry: 36 br label %for.cond 37 38for.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 42 43for.body: ; preds = %for.cond 44 %arrayidx0 = getelementptr inbounds float, ptr %A, i64 %i.0 45 %tmp0 = load float, ptr %arrayidx0, align 4 46 %add0 = fadd float %tmp0, 2.000000e+00 47 store float %add0, ptr %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 51 52if.then: ; preds = %for.body 53 %arrayidx = getelementptr inbounds float, ptr %A, i64 %i.0 54 %tmp = load float, ptr %arrayidx, align 4 55 %add = fadd float %tmp, 2.000000e+00 56 store float %add, ptr %arrayidx, align 4 57 br label %if.end 58 59if.end: ; preds = %for.body, %if.then 60 br label %for.inc 61 62for.inc: ; preds = %if.end 63 %inc = add nuw nsw i64 %i.0, 1 64 br label %for.cond 65 66for.end: ; preds = %for.cond 67 ret void 68} 69