brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 2279a89 Raw
73 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<optree>' -polly-print-optree -disable-output < %s | FileCheck %s -match-full-lines2;3; Move instructions to region statements.4;5; for (int j = 0; j < n; j += 1) {6; bodyA:7;   double val = 21.0 + 21.0;8;9; bodyB:10;   if (cond)11; body_true:12;     A[0] = val;13; }14;15define void @func(i32 %n, ptr noalias nonnull %A) {16entry:17  br label %for18 19for:20  %j = phi i32 [0, %entry], [%j.inc, %inc]21  %j.cmp = icmp slt i32 %j, %n22  br i1 %j.cmp, label %bodyA, label %exit23 24    bodyA:25      %val = fadd double 21.0, 21.026      br label %bodyB27 28    bodyB:29      %cond = fcmp oeq double 21.0, 21.030      br i1 %cond, label %bodyB_true, label %bodyB_exit31 32    bodyB_true:33      store double %val, ptr %A34      br label %bodyB_exit35 36    bodyB_exit:37      br label %inc38 39inc:40  %j.inc = add nuw nsw i32 %j, 141  br label %for42 43exit:44  br label %return45 46return:47  ret void48}49 50; CHECK: Statistics {51; CHECK:     Instructions copied: 152; CHECK:     Known loads forwarded: 053; CHECK:     Read-only accesses copied: 054; CHECK:     Operand trees forwarded: 155; CHECK:     Statements with forwarded operand trees: 156; CHECK: }57 58; CHECK: After statements {59; CHECK-NEXT:     Stmt_bodyA60; CHECK-NEXT:             MustWriteAccess :=	[Reduction Type: NONE] [Scalar: 1]61; CHECK-NEXT:                 [n] -> { Stmt_bodyA[i0] -> MemRef_val[] };62; CHECK-NEXT:             Instructions {63; CHECK-NEXT:                   %val = fadd double 2.100000e+01, 2.100000e+0164; CHECK-NEXT:             }65; CHECK-NEXT:     Stmt_bodyB__TO__bodyB_exit66; CHECK-NEXT:             MayWriteAccess :=	[Reduction Type: NONE] [Scalar: 0]67; CHECK-NEXT:                 [n] -> { Stmt_bodyB__TO__bodyB_exit[i0] -> MemRef_A[0] };68; CHECK-NEXT:             Instructions {69; CHECK-NEXT:                   %val = fadd double 2.100000e+01, 2.100000e+0170; CHECK-NEXT:                   %cond = fcmp oeq double 2.100000e+01, 2.100000e+0171; CHECK-NEXT:             }72; CHECK-NEXT: }73