brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · f70965f Raw
81 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<optree>' -polly-print-optree -disable-output < %s | FileCheck %s -match-full-lines2;3; Copy %val to bodyB, assuming the exit value of %i.4;5; for (int j = 0; j < n; j += 1) {6;   double val;7;   for (int i = 0; i < 128; i += 1) {8; bodyA:9;     val = j;10;   }11;12; bodyB:13;   A[0] = val;14; }15;16define void @func(i32 %n, ptr noalias nonnull %A) {17entry:18  br label %for19 20for:21  %j = phi i32 [0, %entry], [%j.inc, %inc]22  %j.cmp = icmp slt i32 %j, %n23  br i1 %j.cmp, label %inner.for, label %exit24 25    inner.for:26      %i = phi i32 [0, %for], [%i.inc, %inner.inc]27      br label %bodyA28 29 30        bodyA:31          %val = sitofp i32 %i to double32          br label %inner.inc33 34 35    inner.inc:36      %i.inc = add nuw nsw i32 %i, 137      %i.cmp = icmp slt i32 %i.inc, 12838      br i1 %i.cmp, label %inner.for, label %inner.exit39 40    inner.exit:41       br label %bodyB42 43 44    bodyB:45      store double %val, ptr %A46      br label %inc47 48inc:49  %j.inc = add nuw nsw i32 %j, 150  br label %for51 52exit:53  br label %return54 55return:56  ret void57}58 59 60; CHECK: Statistics {61; CHECK:     Instructions copied: 162; CHECK:     Operand trees forwarded: 163; CHECK:     Statements with forwarded operand trees: 164; CHECK: }65 66; CHECK:      After statements {67; CHECK-NEXT:     Stmt_bodyA68; CHECK-NEXT:             MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 1]69; CHECK-NEXT:                 [n] -> { Stmt_bodyA[i0, i1] -> MemRef_val[] };70; CHECK-NEXT:             Instructions {71; CHECK-NEXT:                   %val = sitofp i32 %i to double72; CHECK-NEXT:             }73; CHECK-NEXT:     Stmt_bodyB74; CHECK-NEXT:             MustWriteAccess :=  [Reduction Type: NONE] [Scalar: 0]75; CHECK-NEXT:                 [n] -> { Stmt_bodyB[i0] -> MemRef_A[0] };76; CHECK-NEXT:             Instructions {77; CHECK-NEXT:                   %val = sitofp i32 %i to double78; CHECK-NEXT:                   store double %val, ptr %A, align 879; CHECK-NEXT:             }80; CHECK-NEXT: }81