brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 216e076 Raw
53 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<scops>' -polly-print-scops -disable-output -polly-invariant-load-hoisting < %s 2>&1 | FileCheck %s2 3; Verify that a delinearized and a not delinearized access are not4; canonicalized.5 6; CHECK:      Stmt_body17; CHECK-NEXT:   Domain :=8; CHECK-NEXT:       [n] -> { Stmt_body1[i0] : 0 <= i0 <= 1022 };9; CHECK-NEXT:   Schedule :=10; CHECK-NEXT:       [n] -> { Stmt_body1[i0] -> [i0, 0] };11; CHECK-NEXT:   MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]12; CHECK-NEXT:       [n] -> { Stmt_body1[i0] -> MemRef_baseB[0] };13; CHECK-NEXT: Stmt_body214; CHECK-NEXT:   Domain :=15; CHECK-NEXT:       [n] -> { Stmt_body2[i0] : 0 <= i0 <= 1022 };16; CHECK-NEXT:   Schedule :=17; CHECK-NEXT:       [n] -> { Stmt_body2[i0] -> [i0, 1] };18; CHECK-NEXT:   MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]19; CHECK-NEXT:       [n] -> { Stmt_body2[i0] -> MemRef_baseA[i0, i0] };20; CHECK-NEXT: }21 22 23define void @foo(ptr %A, i64 %n, i64 %m) {24start:25  br label %loop26 27loop:28  %indvar = phi i64 [0, %start], [%indvar.next, %latch]29  %indvar.next = add nsw i64 %indvar, 130  %icmp = icmp slt i64 %indvar.next, 102431  br i1 %icmp, label %body1, label %exit32 33body1:34  %baseB = load ptr, ptr %A35  store float 42.0, ptr %baseB36  br label %body237 38body2:39  %baseA = load ptr, ptr %A40  %offsetA = mul i64 %indvar, %n41  %offsetA2 = add i64 %offsetA, %indvar42  %ptrA = getelementptr float, ptr %baseA, i64 %offsetA243  store float 42.0, ptr %ptrA44  br label %latch45 46latch:47  br label %loop48 49exit:50  ret void51 52}53