brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · b03d475 Raw
66 lines · plain
1; RUN: opt %loadNPMPolly -polly-parallel -polly-vectorizer=stripmine -passes=polly-codegen-verify '-passes=polly-custom<opt-isl;ast;codegen>' -polly-print-ast -disable-output < %s | FileCheck %s2;3; Check that there are no nested #pragma omp parallel for inside a4; #pragma omp parallel for loop.5; See llvm.org/PR38073 and llvm.org/PR331536;7; This test unfortunately is very dependent on the result of the schedule8; optimizer (-polly-opt-isl).9;10target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"11 12@b = external dso_local unnamed_addr global [1984 x [1984 x double]], align 1613@c = external dso_local unnamed_addr global [1984 x [1984 x double]], align 1614 15define dso_local void @main() local_unnamed_addr {16entry:17  %cond = select i1 undef, i32 undef, i32 198418  %tmp = zext i32 %cond to i6419  %cond63 = select i1 undef, i32 undef, i32 198420  %tmp1 = zext i32 %cond63 to i6421  br label %for.cond51.preheader22 23for.cond51.preheader:24  %indvars.iv213 = phi i64 [ 0, %entry ], [ %indvars.iv.next214, %for.inc98 ]25  %cond73 = select i1 undef, i32 undef, i32 198426  %tmp2 = zext i32 %cond73 to i6427  br label %for.cond56.preheader28 29for.cond56.preheader:30  %indvars.iv223 = phi i64 [ 0, %for.cond51.preheader ], [ %indvars.iv.next224, %for.inc95 ]31  br label %for.cond66.preheader32 33for.cond66.preheader:34  %indvars.iv219 = phi i64 [ %indvars.iv.next220, %for.inc92 ], [ 0, %for.cond56.preheader ]35  br label %for.body7536 37for.body75:38  %indvars.iv215 = phi i64 [ %indvars.iv213, %for.cond66.preheader ], [ %indvars.iv.next216, %for.body75 ]39  %arrayidx83 = getelementptr inbounds [1984 x [1984 x double]], ptr @b, i64 0, i64 %indvars.iv219, i64 %indvars.iv21540  %tmp3 = load double, ptr %arrayidx83, align 841  %arrayidx87 = getelementptr inbounds [1984 x [1984 x double]], ptr @c, i64 0, i64 %indvars.iv223, i64 %indvars.iv21542  store double undef, ptr %arrayidx87, align 843  %indvars.iv.next216 = add nuw nsw i64 %indvars.iv215, 144  %cmp74 = icmp ult i64 %indvars.iv.next216, %tmp245  br i1 %cmp74, label %for.body75, label %for.inc9246 47for.inc92:48  %indvars.iv.next220 = add nuw nsw i64 %indvars.iv219, 149  %cmp64 = icmp ult i64 %indvars.iv.next220, %tmp150  br i1 %cmp64, label %for.cond66.preheader, label %for.inc9551 52for.inc95:53  %indvars.iv.next224 = add nuw nsw i64 %indvars.iv223, 154  %cmp54 = icmp ult i64 %indvars.iv.next224, %tmp55  br i1 %cmp54, label %for.cond56.preheader, label %for.inc9856 57for.inc98:58  %indvars.iv.next214 = add nuw nsw i64 %indvars.iv213, 4859  br label %for.cond51.preheader60}61 62; No parallel loop except the to outermost.63; CHECK: #pragma omp parallel for64; CHECK: #pragma omp parallel for65; CHECK-NOT: #pragma omp parallel for66