brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 42e9c3b Raw
77 lines · plain
1; RUN: opt %loadNPMPolly '-passes=polly-custom<import-jscop;ast>' -polly-print-ast -polly-ast-detect-parallel -disable-output < %s | FileCheck %s2;3; CHECK:    #pragma known-parallel reduction4; CHECK:    for (int c0 = 0; c0 <= 2; c0 += 1) {5; CHECK:      if (c0 == 2) {6; CHECK:        #pragma simd reduction7; CHECK:        for (int c1 = 1; c1 < 2 * n; c1 += 2)8; CHECK:          Stmt_S0(c1);9; CHECK:      } else if (c0 == 1) {10; CHECK:        #pragma simd11; CHECK:        for (int c1 = 0; c1 < 2 * n; c1 += 1)12; CHECK:          Stmt_S1(c1);13; CHECK:      } else14; CHECK:        #pragma simd reduction15; CHECK:        for (int c1 = -2 * n + 2; c1 <= 0; c1 += 2)16; CHECK:          Stmt_S0(-c1);17; CHECK:    }18;19;    void rmalrs2(int *A, long n) {20;      for (long i = 0; i < 2 * n; i++)21; S0:    A[0] += i;22;      for (long i = 0; i < 2 * n; i++)23; S1:    A[i + 1] = 1;24;    }25;26target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"27 28define void @rmalrs2(ptr %A, i32 %n) {29entry:30  br label %for.cond31 32for.cond:                                         ; preds = %for.inc, %entry33  %i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]34  %mul = shl nsw i32 %n, 135  %cmp = icmp slt i32 %i.0, %mul36  br i1 %cmp, label %for.body, label %for.end37 38for.body:                                         ; preds = %for.cond39  br label %S040 41S0:                                               ; preds = %for.body42  %tmp = load i32, ptr %A, align 443  %add = add nsw i32 %tmp, %i.044  store i32 %add, ptr %A, align 445  br label %for.inc46 47for.inc:                                          ; preds = %S048  %inc = add nsw i32 %i.0, 149  br label %for.cond50 51for.end:                                          ; preds = %for.cond52  br label %for.cond253 54for.cond2:                                        ; preds = %for.inc8, %for.end55  %i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]56  %mul3 = shl nsw i32 %n, 157  %cmp4 = icmp slt i32 %i1.0, %mul358  br i1 %cmp4, label %for.body5, label %for.end1059 60for.body5:                                        ; preds = %for.cond261  br label %S162 63S1:                                               ; preds = %for.body564  %add6 = add nsw i32 %i1.0, 165  %arrayidx7 = getelementptr inbounds i32, ptr %A, i32 %add666  store i32 1, ptr %arrayidx7, align 467  br label %for.inc868 69for.inc8:                                         ; preds = %S170  %inc9 = add nsw i32 %i1.0, 171  br label %for.cond272 73for.end10:                                        ; preds = %for.cond274  ret void75}76 77