brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · db8371d Raw
63 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output < %s 2>&1 | FileCheck %s2 3target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128"4 5define void @f(ptr %a, i64 %N) {6entry:7  br label %for8 9for:10  %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %for.backedge ]11  br label %S112 13S1:14  %scevgep1 = getelementptr i64, ptr %a, i64 %indvar15  %val = load i64, ptr %scevgep1, align 816  br label %S217 18S2:19  %scevgep2 = getelementptr i64, ptr %a, i64 %indvar20  store i64 %val, ptr %scevgep2, align 821  br label %for.backedge22 23for.backedge:24  %indvar.next = add nsw i64 %indvar, 125  %exitcond = icmp eq i64 %indvar.next, %N26  br i1 %exitcond, label %return, label %for27 28return:29  ret void30}31 32 33; CHECK:      Arrays {34; CHECK-NEXT:     i64 MemRef_a[*]; // Element size 835; CHECK-NEXT:     i64 MemRef_val; // Element size 836; CHECK-NEXT: }37;38; CHECK:      Arrays (Bounds as pw_affs) {39; CHECK-NEXT:     i64 MemRef_a[*]; // Element size 840; CHECK-NEXT:     i64 MemRef_val; // Element size 841; CHECK-NEXT: }42;43; CHECK:      Statements {44; CHECK-NEXT:     Stmt_S145; CHECK-NEXT:         Domain :=46; CHECK-NEXT:             [N] -> { Stmt_S1[i0] : 0 <= i0 < N };47; CHECK-NEXT:         Schedule :=48; CHECK-NEXT:             [N] -> { Stmt_S1[i0] -> [i0, 0] };49; CHECK-NEXT:         ReadAccess :=    [Reduction Type: NONE] [Scalar: 0]50; CHECK-NEXT:             [N] -> { Stmt_S1[i0] -> MemRef_a[i0] };51; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 1]52; CHECK-NEXT:             [N] -> { Stmt_S1[i0] -> MemRef_val[] };53; CHECK-NEXT:     Stmt_S254; CHECK-NEXT:         Domain :=55; CHECK-NEXT:             [N] -> { Stmt_S2[i0] : 0 <= i0 < N };56; CHECK-NEXT:         Schedule :=57; CHECK-NEXT:             [N] -> { Stmt_S2[i0] -> [i0, 1] };58; CHECK-NEXT:         MustWriteAccess :=    [Reduction Type: NONE] [Scalar: 0]59; CHECK-NEXT:             [N] -> { Stmt_S2[i0] -> MemRef_a[i0] };60; CHECK-NEXT:         ReadAccess :=    [Reduction Type: NONE] [Scalar: 1]61; CHECK-NEXT:             [N] -> { Stmt_S2[i0] -> MemRef_val[] };62; CHECK-NEXT: }63