brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.9 KiB · f37f1e5 Raw
108 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<opt-isl;ast>' -polly-print-ast -disable-output < %s | FileCheck %s2;3;    void jacobi1d(long T, long N, float *A, float *B) {4;      long t, i, j;5;      for (t = 0; t < T; t++) {6;        for (i = 1; i < N - 1; i++)7;          B[i] = 0.33333 * (A[i - 1] + A[i] + A[i + 1]);8;        for (j = 1; j < N - 1; j++)9;          A[j] = 0.33333 * (B[i - 1] + B[i] + B[i + 1]);10;      }11;    }12 13; Verify that we do not tile bands that have just a single dimension.14 15; CHECK: for (int c0 = 0; c0 < T; c0 += 1) {16; CHECK:   for (int c1 = 0; c1 < N - 2; c1 += 1)17; CHECK:     Stmt_for_body3(c0, c1);18; CHECK:   for (int c1 = 0; c1 < N - 2; c1 += 1)19; CHECK:     Stmt_for_body15(c0, c1);20; CHECK: }21 22target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"23 24define void @jacobi1d(i64 %T, i64 %N, ptr %A, ptr %B) {25entry:26  %tmp = add i64 %N, -127  %tmp1 = icmp sgt i64 %tmp, 128  %smax = select i1 %tmp1, i64 %tmp, i64 129  br label %for.cond30 31for.cond:                                         ; preds = %for.inc30, %entry32  %t.0 = phi i64 [ 0, %entry ], [ %inc31, %for.inc30 ]33  %cmp = icmp slt i64 %t.0, %T34  br i1 %cmp, label %for.body, label %for.end3235 36for.body:                                         ; preds = %for.cond37  br label %for.cond138 39for.cond1:                                        ; preds = %for.inc, %for.body40  %i.0 = phi i64 [ 1, %for.body ], [ %inc, %for.inc ]41  %sub = add nsw i64 %N, -142  %cmp2 = icmp slt i64 %i.0, %sub43  br i1 %cmp2, label %for.body3, label %for.end44 45for.body3:                                        ; preds = %for.cond146  %sub4 = add nsw i64 %i.0, -147  %arrayidx = getelementptr inbounds float, ptr %A, i64 %sub448  %tmp2 = load float, ptr %arrayidx, align 449  %arrayidx5 = getelementptr inbounds float, ptr %A, i64 %i.050  %tmp3 = load float, ptr %arrayidx5, align 451  %add = fadd float %tmp2, %tmp352  %add6 = add nuw nsw i64 %i.0, 153  %arrayidx7 = getelementptr inbounds float, ptr %A, i64 %add654  %tmp4 = load float, ptr %arrayidx7, align 455  %add8 = fadd float %add, %tmp456  %conv = fpext float %add8 to double57  %mul = fmul double %conv, 3.333300e-0158  %conv9 = fptrunc double %mul to float59  %arrayidx10 = getelementptr inbounds float, ptr %B, i64 %i.060  store float %conv9, ptr %arrayidx10, align 461  br label %for.inc62 63for.inc:                                          ; preds = %for.body364  %inc = add nuw nsw i64 %i.0, 165  br label %for.cond166 67for.end:                                          ; preds = %for.cond168  br label %for.cond1169 70for.cond11:                                       ; preds = %for.inc27, %for.end71  %j.0 = phi i64 [ 1, %for.end ], [ %inc28, %for.inc27 ]72  %sub12 = add nsw i64 %N, -173  %cmp13 = icmp slt i64 %j.0, %sub1274  br i1 %cmp13, label %for.body15, label %for.end2975 76for.body15:                                       ; preds = %for.cond1177  %sub16 = add nsw i64 %smax, -178  %arrayidx17 = getelementptr inbounds float, ptr %B, i64 %sub1679  %tmp5 = load float, ptr %arrayidx17, align 480  %arrayidx18 = getelementptr inbounds float, ptr %B, i64 %smax81  %tmp6 = load float, ptr %arrayidx18, align 482  %add19 = fadd float %tmp5, %tmp683  %add20 = add nsw i64 %smax, 184  %arrayidx21 = getelementptr inbounds float, ptr %B, i64 %add2085  %tmp7 = load float, ptr %arrayidx21, align 486  %add22 = fadd float %add19, %tmp787  %conv23 = fpext float %add22 to double88  %mul24 = fmul double %conv23, 3.333300e-0189  %conv25 = fptrunc double %mul24 to float90  %arrayidx26 = getelementptr inbounds float, ptr %A, i64 %j.091  store float %conv25, ptr %arrayidx26, align 492  br label %for.inc2793 94for.inc27:                                        ; preds = %for.body1595  %inc28 = add nuw nsw i64 %j.0, 196  br label %for.cond1197 98for.end29:                                        ; preds = %for.cond1199  br label %for.inc30100 101for.inc30:                                        ; preds = %for.end29102  %inc31 = add nuw nsw i64 %t.0, 1103  br label %for.cond104 105for.end32:                                        ; preds = %for.cond106  ret void107}108