56 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3; CHECK: Statements {4; CHECK-NEXT: Stmt_loop_15; CHECK-NEXT: Domain :=6; CHECK-NEXT: [N] -> { Stmt_loop_1[i0] : N <= 100 and 0 <= i0 <= 101 };7; CHECK-NEXT: Schedule :=8; CHECK-NEXT: [N] -> { Stmt_loop_1[i0] -> [0, i0] };9; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]10; CHECK-NEXT: [N] -> { Stmt_loop_1[i0] -> MemRef_A[0] };11; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 0]12; CHECK-NEXT: [N] -> { Stmt_loop_1[i0] -> MemRef_A[0] };13; CHECK-NEXT: Stmt_loop_214; CHECK-NEXT: Domain :=15; CHECK-NEXT: [N] -> { Stmt_loop_2[i0] : N <= 100 and 0 <= i0 <= 301 };16; CHECK-NEXT: Schedule :=17; CHECK-NEXT: [N] -> { Stmt_loop_2[i0] -> [1, i0] };18; CHECK-NEXT: ReadAccess := [Reduction Type: NONE] [Scalar: 0]19; CHECK-NEXT: [N] -> { Stmt_loop_2[i0] -> MemRef_A[0] };20; CHECK-NEXT: MustWriteAccess := [Reduction Type: NONE] [Scalar: 0]21; CHECK-NEXT: [N] -> { Stmt_loop_2[i0] -> MemRef_A[0] };22; CHECK-NEXT: }23 24define void @foo(ptr %A, i64 %N) {25entry:26 br label %branch27 28branch:29 %cond = icmp sle i64 %N, 10030 br i1 %cond, label %loop.1, label %merge31 32loop.1:33 %indvar.1 = phi i64 [0, %branch], [%indvar.next.1, %loop.1]34 %indvar.next.1 = add i64 %indvar.1, 135 %val.1 = load float, ptr %A36 %sum.1 = fadd float %val.1, 1.037 store float %sum.1, ptr %A38 %cond.1 = icmp sle i64 %indvar.1, 10039 br i1 %cond.1, label %loop.1, label %loop.240 41loop.2:42 %indvar.2 = phi i64 [0, %loop.1], [%indvar.next.2, %loop.2]43 %indvar.next.2 = add i64 %indvar.2, 144 %val.2 = load float, ptr %A45 %sum.2 = fadd float %val.2, 1.046 store float %sum.2, ptr %A47 %cond.2 = icmp sle i64 %indvar.2, 30048 br i1 %cond.2, label %loop.2, label %merge49 50merge:51 br label %exit52 53exit:54 ret void55}56