Hi! I forgot to add default(none) and defaultmap(none) wherever possible on the testcases to make sure none of the required clauses are added implicitly (because in that case it doesn't work with these none arguments of those default* clauses or works differently with other default* settings.
And that revealed we didn't add shared on parallel for linear clause on parallel master taskloop simd, so this patch fixes that too. Bootstrapped/regtested on x86_64-linux, committed to trunk. 2021-05-29 Jakub Jelinek <ja...@redhat.com> PR middle-end/99928 * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd combined with parallel, make sure to add shared clause to parallel for explicit linear clause. * c-c++-common/gomp/pr99928-1.c: Add default(none) to constructs combined with parallel, teams or taskloop and defaultmap(none) to constructs combined with target. * c-c++-common/gomp/pr99928-2.c: Likewise. * c-c++-common/gomp/pr99928-3.c: Likewise. * c-c++-common/gomp/pr99928-4.c: Likewise. * c-c++-common/gomp/pr99928-5.c: Likewise. * c-c++-common/gomp/pr99928-6.c: Likewise. * c-c++-common/gomp/pr99928-7.c: Likewise. * c-c++-common/gomp/pr99928-8.c: Likewise. * c-c++-common/gomp/pr99928-9.c: Likewise. * c-c++-common/gomp/pr99928-10.c: Likewise. * c-c++-common/gomp/pr99928-13.c: Likewise. * c-c++-common/gomp/pr99928-14.c: Likewise. --- gcc/gimplify.c.jj 2021-05-28 11:03:19.620882465 +0200 +++ gcc/gimplify.c 2021-05-28 19:32:07.507156930 +0200 @@ -9014,6 +9014,7 @@ gimplify_scan_omp_clauses (tree *list_p, lastprivate and perhaps firstprivate too on the parallel. Similarly for #pragma omp for simd. */ struct gimplify_omp_ctx *octx = outer_ctx; + bool taskloop_seen = false; decl = NULL_TREE; do { @@ -9045,11 +9046,12 @@ gimplify_scan_omp_clauses (tree *list_p, else if (octx && (octx->region_type & ORT_TASK) != 0 && octx->combined_loop) - ; + taskloop_seen = true; else if (octx && octx->region_type == ORT_COMBINED_PARALLEL - && ctx->region_type == ORT_WORKSHARE - && octx == outer_ctx) + && ((ctx->region_type == ORT_WORKSHARE + && octx == outer_ctx) + || taskloop_seen)) flags = GOVD_SEEN | GOVD_SHARED; else if (octx && ((octx->region_type & ORT_COMBINED_TEAMS) --- gcc/testsuite/c-c++-common/gomp/pr99928-1.c.jj 2021-05-13 16:53:31.061368346 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-1.c 2021-05-28 19:41:20.326231536 +0200 @@ -12,14 +12,14 @@ foo (void) /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f00\\)" "gimple" } } *//* FIXME. */ - #pragma omp distribute parallel for firstprivate (f00) + #pragma omp distribute parallel for firstprivate (f00) default(none) for (int i = 0; i < 64; i++) f00++; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f01\\)" "gimple" } } */ - #pragma omp distribute parallel for simd firstprivate (f01) + #pragma omp distribute parallel for simd firstprivate (f01) default(none) for (int i = 0; i < 64; i++) f01++; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*firstprivate\\(f02\\)" "gimple" } } */ @@ -40,53 +40,53 @@ bar (void) f03++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f04\\)" "gimple" } } */ - #pragma omp master taskloop firstprivate (f04) + #pragma omp master taskloop firstprivate (f04) default(none) for (int i = 0; i < 64; i++) f04++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f05\\)" "gimple" } } */ - #pragma omp master taskloop simd firstprivate (f05) + #pragma omp master taskloop simd firstprivate (f05) default(none) for (int i = 0; i < 64; i++) f05++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f06\\)" "gimple" } } *//* FIXME. */ - #pragma omp parallel for firstprivate (f06) + #pragma omp parallel for firstprivate (f06) default(none) for (int i = 0; i < 64; i++) f06++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f07\\)" "gimple" } } */ - #pragma omp parallel for simd firstprivate (f07) + #pragma omp parallel for simd firstprivate (f07) default(none) for (int i = 0; i < 64; i++) f07++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f08\\)" "gimple" } } */ - #pragma omp parallel loop firstprivate (f08) + #pragma omp parallel loop firstprivate (f08) default(none) for (int i = 0; i < 64; i++) f08++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f09\\)" "gimple" } } */ - #pragma omp parallel master firstprivate (f09) + #pragma omp parallel master firstprivate (f09) default(none) f09++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f10\\)" "gimple" } } */ - #pragma omp parallel master taskloop firstprivate (f10) + #pragma omp parallel master taskloop firstprivate (f10) default(none) for (int i = 0; i < 64; i++) f10++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f11\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd firstprivate (f11) + #pragma omp parallel master taskloop simd firstprivate (f11) default(none) for (int i = 0; i < 64; i++) f11++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*firstprivate\\(f12\\)" "gimple" } } */ - #pragma omp parallel sections firstprivate (f12) + #pragma omp parallel sections firstprivate (f12) default(none) { f12++; #pragma omp section @@ -94,36 +94,36 @@ bar (void) } /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f13\\)" "gimple" } } */ - #pragma omp target parallel firstprivate (f13) + #pragma omp target parallel firstprivate (f13) default(none) defaultmap(none) f13++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f14\\)" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for firstprivate (f14) + #pragma omp target parallel for firstprivate (f14) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f14++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f15\\)" "gimple" } } */ - #pragma omp target parallel for simd firstprivate (f15) + #pragma omp target parallel for simd firstprivate (f15) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f15++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f16\\)" "gimple" } } */ - #pragma omp target parallel loop firstprivate (f16) + #pragma omp target parallel loop firstprivate (f16) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f16++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f17\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f17\\)" "gimple" } } */ - #pragma omp target teams firstprivate (f17) + #pragma omp target teams firstprivate (f17) default(none) defaultmap(none) f17++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } *//* FIXME: This should be on distribute instead. */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f18\\)" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute firstprivate (f18) + #pragma omp target teams distribute firstprivate (f18) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f18++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } */ @@ -131,7 +131,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f19\\)" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute parallel for firstprivate (f19) + #pragma omp target teams distribute parallel for firstprivate (f19) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f19++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } */ @@ -140,14 +140,14 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f20\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd firstprivate (f20) + #pragma omp target teams distribute parallel for simd firstprivate (f20) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f20++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f21\\)" "gimple" } } */ - #pragma omp target teams distribute simd firstprivate (f21) + #pragma omp target teams distribute simd firstprivate (f21) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f21++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */ @@ -156,29 +156,29 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f22\\)" "gimple" } } *//* NOTE: This is an implementation detail. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f22\\)" "gimple" } } */ - #pragma omp target teams loop firstprivate (f22) + #pragma omp target teams loop firstprivate (f22) default(none) defaultmap(none) for (int i = 0; i < 64; i++) f22++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*firstprivate\\(f23\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f23\\)" "gimple" } } */ - #pragma omp target simd firstprivate (f23) + #pragma omp target simd firstprivate (f23) defaultmap(none) for (int i = 0; i < 64; i++) f23++; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(f24\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f24\\)" "gimple" } } */ - #pragma omp taskloop simd firstprivate (f24) + #pragma omp taskloop simd firstprivate (f24) default(none) for (int i = 0; i < 64; i++) f24++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } *//* FIXME: This should be on distribute instead. */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f25\\)" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute firstprivate (f25) + #pragma omp teams distribute firstprivate (f25) default(none) for (int i = 0; i < 64; i++) f25++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME: This should be on distribute instead. */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f26\\)" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute parallel for firstprivate (f26) + #pragma omp teams distribute parallel for firstprivate (f26) default(none) for (int i = 0; i < 64; i++) f26++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME: This should be on for instead. */ @@ -186,13 +186,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f27\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd firstprivate (f27) + #pragma omp teams distribute parallel for simd firstprivate (f27) default(none) for (int i = 0; i < 64; i++) f27++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f28\\)" "gimple" } } */ - #pragma omp teams distribute simd firstprivate (f28) + #pragma omp teams distribute simd firstprivate (f28) default(none) for (int i = 0; i < 64; i++) f28++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */ @@ -200,7 +200,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(f29\\)" "gimple" } } *//* NOTE: This is an implementation detail. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(f29\\)" "gimple" } } */ - #pragma omp teams loop firstprivate (f29) + #pragma omp teams loop firstprivate (f29) default(none) for (int i = 0; i < 64; i++) f29++; } --- gcc/testsuite/c-c++-common/gomp/pr99928-2.c.jj 2021-05-19 09:20:58.190091085 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-2.c 2021-05-28 19:41:31.573070293 +0200 @@ -11,14 +11,14 @@ foo (void) /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l00\\)" "gimple" } } *//* FIXME. */ - #pragma omp distribute parallel for lastprivate (l00) + #pragma omp distribute parallel for lastprivate (l00) default(none) for (int i = 0; i < 64; i++) l00 = i; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */ - #pragma omp distribute parallel for simd lastprivate (l01) + #pragma omp distribute parallel for simd lastprivate (l01) default(none) for (int i = 0; i < 64; i++) l01 = i; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */ @@ -41,38 +41,38 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l04\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */ - #pragma omp master taskloop lastprivate (l04) + #pragma omp master taskloop lastprivate (l04) default(none) for (int i = 0; i < 64; i++) l04 = i; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l05\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */ - #pragma omp master taskloop simd lastprivate (l05) + #pragma omp master taskloop simd lastprivate (l05) default(none) for (int i = 0; i < 64; i++) l05 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME. */ - #pragma omp parallel for lastprivate (l06) + #pragma omp parallel for lastprivate (l06) default(none) for (int i = 0; i < 64; i++) l06 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */ - #pragma omp parallel for simd lastprivate (l07) + #pragma omp parallel for simd lastprivate (l07) default(none) for (int i = 0; i < 64; i++) l07 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp parallel loop lastprivate (j00) + #pragma omp parallel loop lastprivate (j00) default(none) for (j00 = 0; j00 < 64; j00++) ; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l08\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */ - #pragma omp parallel master taskloop lastprivate (l08) + #pragma omp parallel master taskloop lastprivate (l08) default(none) for (int i = 0; i < 64; i++) l08 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l09\\)" "gimple" } } */ @@ -80,13 +80,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l09\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd lastprivate (l09) + #pragma omp parallel master taskloop simd lastprivate (l09) default(none) for (int i = 0; i < 64; i++) l09 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } *//* FIXME: This should be on sections instead. */ /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*lastprivate\\(l10\\)" "gimple" } } */ - #pragma omp parallel sections lastprivate (l10) + #pragma omp parallel sections lastprivate (l10) default(none) { l10 = 1; #pragma omp section @@ -96,7 +96,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for lastprivate (l11) + #pragma omp target parallel for lastprivate (l11) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l11 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l12" "gimple" } } */ @@ -104,7 +104,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l12\\)" "gimple" } } */ - #pragma omp target parallel for simd lastprivate (l12) + #pragma omp target parallel for simd lastprivate (l12) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l12 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j01" "gimple" } } */ @@ -112,14 +112,14 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target parallel loop lastprivate (j01) + #pragma omp target parallel loop lastprivate (j01) default(none) defaultmap(none) for (j01 = 0; j01 < 64; j01++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l13" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l13\\)" "gimple" } } */ - #pragma omp target teams distribute lastprivate (l13) + #pragma omp target teams distribute lastprivate (l13) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l13 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l14" "gimple" } } */ @@ -128,7 +128,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l14\\)" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute parallel for lastprivate (l14) + #pragma omp target teams distribute parallel for lastprivate (l14) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l14 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l15" "gimple" } } */ @@ -138,7 +138,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l15\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd lastprivate (l15) + #pragma omp target teams distribute parallel for simd lastprivate (l15) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l15 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l16" "gimple" } } */ @@ -146,7 +146,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l16\\)" "gimple" } } */ - #pragma omp target teams distribute simd lastprivate (l16) + #pragma omp target teams distribute simd lastprivate (l16) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l16 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j02" "gimple" } } */ @@ -156,31 +156,31 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j02\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target teams loop lastprivate (j02) + #pragma omp target teams loop lastprivate (j02) default(none) defaultmap(none) for (j02 = 0; j02 < 64; j02++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l17" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l17\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l17\\)" "gimple" } } */ - #pragma omp target simd lastprivate (l17) + #pragma omp target simd lastprivate (l17) defaultmap(none) for (int i = 0; i < 64; i++) l17 = i; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(l18\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l18\\)" "gimple" } } */ - #pragma omp taskloop simd lastprivate (l18) + #pragma omp taskloop simd lastprivate (l18) default(none) for (int i = 0; i < 64; i++) l18 = i; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l19\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l19\\)" "gimple" } } */ - #pragma omp teams distribute lastprivate (l19) + #pragma omp teams distribute lastprivate (l19) default(none) for (int i = 0; i < 64; i++) l19 = i; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l20\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l20\\)" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute parallel for lastprivate (l20) + #pragma omp teams distribute parallel for lastprivate (l20) default(none) for (int i = 0; i < 64; i++) l20 = i; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l21\\)" "gimple" } } */ @@ -188,13 +188,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l21\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd lastprivate (l21) + #pragma omp teams distribute parallel for simd lastprivate (l21) default(none) for (int i = 0; i < 64; i++) l21 = i; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(l22\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(l22\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l22\\)" "gimple" } } */ - #pragma omp teams distribute simd lastprivate (l22) + #pragma omp teams distribute simd lastprivate (l22) default(none) for (int i = 0; i < 64; i++) l22 = i; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j03\\)" "gimple" } } */ @@ -202,7 +202,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp teams loop lastprivate (j03) + #pragma omp teams loop lastprivate (j03) default(none) for (j03 = 0; j03 < 64; j03++) ; } --- gcc/testsuite/c-c++-common/gomp/pr99928-3.c.jj 2021-05-21 21:16:03.082850717 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-3.c 2021-05-28 19:41:43.246902925 +0200 @@ -20,7 +20,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */ - #pragma omp master taskloop firstprivate (l01) lastprivate (l01) + #pragma omp master taskloop firstprivate (l01) lastprivate (l01) default(none) for (int i = 0; i < 64; i++) l01 = i; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*firstprivate\\(l02\\)" "gimple" } } */ @@ -29,14 +29,14 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l02\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l02\\)" "gimple" } } */ - #pragma omp master taskloop simd firstprivate (l02) lastprivate (l02) + #pragma omp master taskloop simd firstprivate (l02) lastprivate (l02) default(none) for (int i = 0; i < 64; i++) l02 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME. */ - #pragma omp parallel for firstprivate (l03) lastprivate (l03) + #pragma omp parallel for firstprivate (l03) lastprivate (l03) default(none) for (int i = 0; i < 64; i++) l03 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } *//* FIXME: This should be on for instead. */ @@ -45,7 +45,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */ - #pragma omp parallel for simd firstprivate (l04) lastprivate (l04) + #pragma omp parallel for simd firstprivate (l04) lastprivate (l04) default(none) for (int i = 0; i < 64; i++) l04 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l05\\)" "gimple" } } */ @@ -53,7 +53,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l05\\)" "gimple" } } */ - #pragma omp parallel master taskloop firstprivate (l05) lastprivate (l05) + #pragma omp parallel master taskloop firstprivate (l05) lastprivate (l05) default(none) for (int i = 0; i < 64; i++) l05 = i; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l06\\)" "gimple" } } */ @@ -63,7 +63,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd firstprivate (l06) lastprivate (l06) + #pragma omp parallel master taskloop simd firstprivate (l06) lastprivate (l06) default(none) for (int i = 0; i < 64; i++) l06 = i; /* FIXME: OpenMP 5.0/5.1 broken here, conceptually it should be shared on parallel and @@ -76,7 +76,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*firstprivate\\(l07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*lastprivate\\(l07\\)" "gimple" } } */ - #pragma omp parallel sections firstprivate (l07) lastprivate (l07) + #pragma omp parallel sections firstprivate (l07) lastprivate (l07) default(none) { l07 = 1; #pragma omp section @@ -88,7 +88,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for firstprivate (l08) lastprivate (l08) + #pragma omp target parallel for firstprivate (l08) lastprivate (l08) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l08 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l09" "gimple" } } */ @@ -99,21 +99,21 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l09\\)" "gimple" } } */ - #pragma omp target parallel for simd firstprivate (l09) lastprivate (l09) + #pragma omp target parallel for simd firstprivate (l09) lastprivate (l09) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l09 = i; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l10" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l10\\)" "gimple" } } */ - #pragma omp target simd firstprivate (l10) lastprivate (l10) + #pragma omp target simd firstprivate (l10) lastprivate (l10) defaultmap(none) for (int i = 0; i < 64; i++) l10 = i; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp simd\[^\n\r]*firstprivate\\(l11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(l11\\)" "gimple" } } */ - #pragma omp taskloop simd firstprivate (l11) lastprivate (l11) + #pragma omp taskloop simd firstprivate (l11) lastprivate (l11) default(none) for (int i = 0; i < 64; i++) l11 = i; } --- gcc/testsuite/c-c++-common/gomp/pr99928-4.c.jj 2021-05-20 09:17:32.474577255 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-4.c 2021-05-28 19:44:13.804744425 +0200 @@ -19,12 +19,12 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l01:1\\)" "gimple" } } */ - #pragma omp master taskloop simd linear (l01) + #pragma omp master taskloop simd linear (l01) default(none) for (int i = 0; i < 64; i++) l01++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l02\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*linear\\(l02:1\\)" "gimple" } } */ - #pragma omp parallel for linear (l02) + #pragma omp parallel for linear (l02) default(none) for (int i = 0; i < 64; i++) l02++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME: This should be on for instead. */ @@ -32,7 +32,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l03\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l03\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l03:1\\)" "gimple" } } */ - #pragma omp parallel for simd linear (l03) + #pragma omp parallel for simd linear (l03) default(none) for (int i = 0; i < 64; i++) l03++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l04\\)" "gimple" } } */ @@ -41,14 +41,14 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l04:1\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd linear (l04) + #pragma omp parallel master taskloop simd linear (l04) default(none) for (int i = 0; i < 64; i++) l04++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l05" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(l05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*linear\\(l05:1\\)" "gimple" } } */ - #pragma omp target parallel for linear (l05) + #pragma omp target parallel for linear (l05) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l05++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l06" "gimple" } } */ @@ -58,19 +58,19 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*firstprivate\\(l06\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(l06\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l06:1\\)" "gimple" } } */ - #pragma omp target parallel for simd linear (l06) + #pragma omp target parallel for simd linear (l06) default(none) defaultmap(none) for (int i = 0; i < 64; i++) l06++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:l07" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(l07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l07:1\\)" "gimple" } } */ - #pragma omp target simd linear (l07) + #pragma omp target simd linear (l07) defaultmap(none) for (int i = 0; i < 64; i++) l07++; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*firstprivate\\(l08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(l08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(l08:1\\)" "gimple" } } */ - #pragma omp taskloop simd linear (l08) + #pragma omp taskloop simd linear (l08) default(none) for (int i = 0; i < 64; i++) l08++; } --- gcc/testsuite/c-c++-common/gomp/pr99928-5.c.jj 2021-05-20 09:17:32.474577255 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-5.c 2021-05-28 19:42:02.107632525 +0200 @@ -12,7 +12,7 @@ foo (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */ - #pragma omp distribute parallel for simd linear (j00) + #pragma omp distribute parallel for simd linear (j00) default(none) for (j00 = 0; j00 < 64; j00++) ; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */ @@ -35,13 +35,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */ - #pragma omp master taskloop simd linear (j03) + #pragma omp master taskloop simd linear (j03) default(none) for (j03 = 0; j03 < 64; j03++) ; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */ - #pragma omp parallel for simd linear (j04) + #pragma omp parallel for simd linear (j04) default(none) for (j04 = 0; j04 < 64; j04++) ; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */ @@ -49,7 +49,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd linear (j05) + #pragma omp parallel master taskloop simd linear (j05) default(none) for (j05 = 0; j05 < 64; j05++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */ @@ -57,13 +57,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */ - #pragma omp target parallel for simd linear (j06) + #pragma omp target parallel for simd linear (j06) default(none) defaultmap(none) for (j06 = 0; j06 < 64; j06++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */ - #pragma omp target simd linear (j07) + #pragma omp target simd linear (j07) defaultmap(none) for (j07 = 0; j07 < 64; j07++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */ @@ -73,7 +73,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd linear (j08) + #pragma omp target teams distribute parallel for simd linear (j08) default(none) defaultmap(none) for (j08 = 0; j08 < 64; j08++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */ @@ -81,13 +81,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */ - #pragma omp target teams distribute simd linear (j09) + #pragma omp target teams distribute simd linear (j09) default(none) defaultmap(none) for (j09 = 0; j09 < 64; j09++) ; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */ - #pragma omp taskloop simd linear (j10) + #pragma omp taskloop simd linear (j10) default(none) for (j10 = 0; j10 < 64; j10++) ; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */ @@ -95,13 +95,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd linear (j11) + #pragma omp teams distribute parallel for simd linear (j11) default(none) for (j11 = 0; j11 < 64; j11++) ; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */ - #pragma omp teams distribute simd linear (j12) + #pragma omp teams distribute simd linear (j12) default(none) for (j12 = 0; j12 < 64; j12++) ; } --- gcc/testsuite/c-c++-common/gomp/pr99928-6.c.jj 2021-05-21 21:12:58.761854445 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-6.c 2021-05-28 19:42:17.159416734 +0200 @@ -12,7 +12,7 @@ foo (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */ - #pragma omp distribute parallel for simd + #pragma omp distribute parallel for simd default(none) for (j00 = 0; j00 < 64; j00++) ; /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */ @@ -35,13 +35,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */ - #pragma omp master taskloop simd + #pragma omp master taskloop simd default(none) for (j03 = 0; j03 < 64; j03++) ; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */ - #pragma omp parallel for simd + #pragma omp parallel for simd default(none) for (j04 = 0; j04 < 64; j04++) ; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */ @@ -49,7 +49,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd + #pragma omp parallel master taskloop simd default(none) for (j05 = 0; j05 < 64; j05++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */ @@ -57,13 +57,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */ - #pragma omp target parallel for simd + #pragma omp target parallel for simd default(none) defaultmap(none) for (j06 = 0; j06 < 64; j06++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */ - #pragma omp target simd + #pragma omp target simd defaultmap(none) for (j07 = 0; j07 < 64; j07++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */ @@ -73,7 +73,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd + #pragma omp target teams distribute parallel for simd default(none) defaultmap(none) for (j08 = 0; j08 < 64; j08++) ; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */ @@ -81,13 +81,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */ - #pragma omp target teams distribute simd + #pragma omp target teams distribute simd default(none) defaultmap(none) for (j09 = 0; j09 < 64; j09++) ; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */ - #pragma omp taskloop simd + #pragma omp taskloop simd default(none) for (j10 = 0; j10 < 64; j10++) ; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */ @@ -95,13 +95,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd + #pragma omp teams distribute parallel for simd default(none) for (j11 = 0; j11 < 64; j11++) ; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */ - #pragma omp teams distribute simd + #pragma omp teams distribute simd default(none) for (j12 = 0; j12 < 64; j12++) ; } --- gcc/testsuite/c-c++-common/gomp/pr99928-7.c.jj 2021-05-13 16:53:31.063368324 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-7.c 2021-05-28 19:42:25.444297954 +0200 @@ -9,7 +9,7 @@ foo (void) /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j00:1\\)" "gimple" } } */ - #pragma omp distribute parallel for simd + #pragma omp distribute parallel for simd default(none) for (int j00 = 0; j00 < 64; j00++) ; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j01\\)" "gimple" } } */ @@ -30,20 +30,20 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j03\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j03:1\\)" "gimple" } } */ - #pragma omp master taskloop simd + #pragma omp master taskloop simd default(none) for (int j03 = 0; j03 < 64; j03++) ; /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j04:1\\)" "gimple" } } */ - #pragma omp parallel for simd + #pragma omp parallel for simd default(none) for (int j04 = 0; j04 < 64; j04++) ; /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*shared\\(j05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j05:1\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd + #pragma omp parallel master taskloop simd default(none) for (int j05 = 0; j05 < 64; j05++) ; /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j06" "gimple" } } */ @@ -52,13 +52,13 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j06:1\\)" "gimple" } } */ - #pragma omp target parallel for simd + #pragma omp target parallel for simd default(none) defaultmap(none) for (int j06 = 0; j06 < 64; j06++) ; /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j07" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j07:1\\)" "gimple" } } */ - #pragma omp target simd + #pragma omp target simd defaultmap(none) for (int j07 = 0; j07 < 64; j07++) ; /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j08" "gimple" } } */ @@ -69,7 +69,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j08:1\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd + #pragma omp target teams distribute parallel for simd default(none) defaultmap(none) for (int j08 = 0; j08 < 64; j08++) ; /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*map\\(tofrom:j09" "gimple" } } */ @@ -77,12 +77,12 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j09:1\\)" "gimple" } } */ - #pragma omp target teams distribute simd + #pragma omp target teams distribute simd default(none) defaultmap(none) for (int j09 = 0; j09 < 64; j09++) ; /* { dg-final { scan-tree-dump-not "omp taskloop\[^\n\r]*lastprivate\\(j10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j10:1\\)" "gimple" } } */ - #pragma omp taskloop simd + #pragma omp taskloop simd default(none) for (int j10 = 0; j10 < 64; j10++) ; /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j11\\)" "gimple" } } */ @@ -91,13 +91,13 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp parallel\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j11:1\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd + #pragma omp teams distribute parallel for simd default(none) for (int j11 = 0; j11 < 64; j11++) ; /* { dg-final { scan-tree-dump-not "omp teams\[^\n\r]*shared\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*lastprivate\\(j12\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*linear\\(j12:1\\)" "gimple" } } */ - #pragma omp teams distribute simd + #pragma omp teams distribute simd default(none) for (int j12 = 0; j12 < 64; j12++) ; } --- gcc/testsuite/c-c++-common/gomp/pr99928-8.c.jj 2021-05-28 11:26:40.672746510 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-8.c 2021-05-28 19:42:36.406140798 +0200 @@ -12,14 +12,14 @@ foo (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r00\\)" "gimple" } } *//* FIXME. */ - #pragma omp distribute parallel for reduction(+:r00) + #pragma omp distribute parallel for reduction(+:r00) default(none) for (int i = 0; i < 64; i++) r00++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r01\\)" "gimple" } } */ - #pragma omp distribute parallel for simd reduction(+:r01) + #pragma omp distribute parallel for simd reduction(+:r01) default(none) for (int i = 0; i < 64; i++) r01++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r02\\)" "gimple" } } */ @@ -42,53 +42,53 @@ bar (void) r03++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r04\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r04\\)" "gimple" } } */ - #pragma omp master taskloop reduction(+:r04) + #pragma omp master taskloop reduction(+:r04) default(none) for (int i = 0; i < 64; i++) r04++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r05\\)" "gimple" } } */ - #pragma omp master taskloop simd reduction(+:r05) + #pragma omp master taskloop simd reduction(+:r05) default(none) for (int i = 0; i < 64; i++) r05++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r06\\)" "gimple" } } *//* FIXME. */ - #pragma omp parallel for reduction(+:r06) + #pragma omp parallel for reduction(+:r06) default(none) for (int i = 0; i < 64; i++) r06++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r07\\)" "gimple" } } */ - #pragma omp parallel for simd reduction(+:r07) + #pragma omp parallel for simd reduction(+:r07) default(none) for (int i = 0; i < 64; i++) r07++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r08\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp parallel loop reduction(+:r08) + #pragma omp parallel loop reduction(+:r08) default(none) for (int i = 0; i < 64; i++) r08++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r09\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r09\\)" "gimple" } } */ - #pragma omp parallel master reduction(+:r09) + #pragma omp parallel master reduction(+:r09) default(none) r09++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r10\\)" "gimple" } } */ - #pragma omp parallel master taskloop reduction(+:r10) + #pragma omp parallel master taskloop reduction(+:r10) default(none) for (int i = 0; i < 64; i++) r10++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r11\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd reduction(+:r11) + #pragma omp parallel master taskloop simd reduction(+:r11) default(none) for (int i = 0; i < 64; i++) r11++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } *//* FIXME: This should be on sections instead. */ /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:r12\\)" "gimple" } } */ - #pragma omp parallel sections reduction(+:r12) + #pragma omp parallel sections reduction(+:r12) default(none) { r12++; #pragma omp section @@ -97,13 +97,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r13" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r13\\)" "gimple" } } */ - #pragma omp target parallel reduction(+:r13) + #pragma omp target parallel reduction(+:r13) default(none) defaultmap(none) r13++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r14" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r14\\)" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for reduction(+:r14) + #pragma omp target parallel for reduction(+:r14) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r14++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r15" "gimple" } } */ @@ -111,7 +111,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r15\\)" "gimple" } } */ - #pragma omp target parallel for simd reduction(+:r15) + #pragma omp target parallel for simd reduction(+:r15) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r15++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r16" "gimple" } } */ @@ -119,19 +119,19 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r16\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target parallel loop reduction(+:r16) + #pragma omp target parallel loop reduction(+:r16) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r16++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r17" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r17\\)" "gimple" } } */ - #pragma omp target teams reduction(+:r17) + #pragma omp target teams reduction(+:r17) default(none) defaultmap(none) r17++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r18" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r18\\)" "gimple" } } */ - #pragma omp target teams distribute reduction(+:r18) + #pragma omp target teams distribute reduction(+:r18) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r18++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r19" "gimple" } } */ @@ -140,7 +140,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r19\\)" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute parallel for reduction(+:r19) + #pragma omp target teams distribute parallel for reduction(+:r19) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r19++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r20" "gimple" } } */ @@ -150,7 +150,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r20\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd reduction(+:r20) + #pragma omp target teams distribute parallel for simd reduction(+:r20) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r20++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r21" "gimple" } } */ @@ -158,7 +158,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r21\\)" "gimple" } } */ - #pragma omp target teams distribute simd reduction(+:r21) + #pragma omp target teams distribute simd reduction(+:r21) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r21++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r22" "gimple" } } */ @@ -168,30 +168,30 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r22\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target teams loop reduction(+:r22) + #pragma omp target teams loop reduction(+:r22) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r22++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r23" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r23\\)" "gimple" } } */ - #pragma omp target simd reduction(+:r23) + #pragma omp target simd reduction(+:r23) defaultmap(none) for (int i = 0; i < 64; i++) r23++; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:r24\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r24\\)" "gimple" } } */ - #pragma omp taskloop simd reduction(+:r24) + #pragma omp taskloop simd reduction(+:r24) default(none) for (int i = 0; i < 64; i++) r24++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r25\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r25\\)" "gimple" } } */ - #pragma omp teams distribute reduction(+:r25) + #pragma omp teams distribute reduction(+:r25) default(none) for (int i = 0; i < 64; i++) r25++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r26\\)" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute parallel for reduction(+:r26) + #pragma omp teams distribute parallel for reduction(+:r26) default(none) for (int i = 0; i < 64; i++) r26++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } */ @@ -199,13 +199,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r27\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd reduction(+:r27) + #pragma omp teams distribute parallel for simd reduction(+:r27) default(none) for (int i = 0; i < 64; i++) r27++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r28\\)" "gimple" } } */ - #pragma omp teams distribute simd reduction(+:r28) + #pragma omp teams distribute simd reduction(+:r28) default(none) for (int i = 0; i < 64; i++) r28++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r29\\)" "gimple" } } */ @@ -213,7 +213,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:r29\\)" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp teams loop reduction(+:r29) + #pragma omp teams loop reduction(+:r29) default(none) for (int i = 0; i < 64; i++) r29++; } --- gcc/testsuite/c-c++-common/gomp/pr99928-9.c.jj 2021-05-28 11:26:40.673746496 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-9.c 2021-05-28 19:42:45.644008359 +0200 @@ -12,14 +12,14 @@ foo (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r00 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp distribute parallel for reduction(+:r00[1:2]) + #pragma omp distribute parallel for reduction(+:r00[1:2]) default(none) for (int i = 0; i < 64; i++) r00[1]++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r01 \\+ 4" "gimple" } } */ - #pragma omp distribute parallel for simd reduction(+:r01[1:2]) + #pragma omp distribute parallel for simd reduction(+:r01[1:2]) default(none) for (int i = 0; i < 64; i++) r01[1]++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r02 \\+ 4" "gimple" } } */ @@ -42,53 +42,53 @@ bar (void) r03[1]++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r04 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r04 \\+ 4" "gimple" } } */ - #pragma omp master taskloop reduction(+:r04[1:2]) + #pragma omp master taskloop reduction(+:r04[1:2]) default(none) for (int i = 0; i < 64; i++) r04[1]++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r05 \\+ 4" "gimple" } } */ - #pragma omp master taskloop simd reduction(+:r05[1:2]) + #pragma omp master taskloop simd reduction(+:r05[1:2]) default(none) for (int i = 0; i < 64; i++) r05[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r06 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r06 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp parallel for reduction(+:r06[1:2]) + #pragma omp parallel for reduction(+:r06[1:2]) default(none) for (int i = 0; i < 64; i++) r06[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r07 \\+ 4" "gimple" } } */ - #pragma omp parallel for simd reduction(+:r07[1:2]) + #pragma omp parallel for simd reduction(+:r07[1:2]) default(none) for (int i = 0; i < 64; i++) r07[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r08\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp parallel loop reduction(+:r08[1:2]) + #pragma omp parallel loop reduction(+:r08[1:2]) default(none) for (int i = 0; i < 64; i++) r08[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r09 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r09 \\+ 4" "gimple" } } */ - #pragma omp parallel master reduction(+:r09[1:2]) + #pragma omp parallel master reduction(+:r09[1:2]) default(none) r09[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r10\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r10 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r10 \\+ 4" "gimple" } } */ - #pragma omp parallel master taskloop reduction(+:r10[1:2]) + #pragma omp parallel master taskloop reduction(+:r10[1:2]) default(none) for (int i = 0; i < 64; i++) r10[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r11\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r11 \\+ 4" "gimple" } } */ - #pragma omp parallel master taskloop simd reduction(+:r11[1:2]) + #pragma omp parallel master taskloop simd reduction(+:r11[1:2]) default(none) for (int i = 0; i < 64; i++) r11[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } *//* FIXME: This should be on sections instead. */ /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r12 \\+ 4" "gimple" } } */ - #pragma omp parallel sections reduction(+:r12[1:2]) + #pragma omp parallel sections reduction(+:r12[1:2]) default(none) { r12[1]++; #pragma omp section @@ -97,13 +97,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r13\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r13 \\+ 4" "gimple" } } */ - #pragma omp target parallel reduction(+:r13[1:2]) + #pragma omp target parallel reduction(+:r13[1:2]) default(none) defaultmap(none) r13[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r14\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r14 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r14 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for reduction(+:r14[1:2]) + #pragma omp target parallel for reduction(+:r14[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r14[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r15\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -111,7 +111,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r15 \\+ 4" "gimple" } } */ - #pragma omp target parallel for simd reduction(+:r15[1:2]) + #pragma omp target parallel for simd reduction(+:r15[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r15[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r16\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -119,19 +119,19 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r16\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target parallel loop reduction(+:r16[1:2]) + #pragma omp target parallel loop reduction(+:r16[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r16[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r17\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r17 \\+ 4" "gimple" } } */ - #pragma omp target teams reduction(+:r17[1:2]) + #pragma omp target teams reduction(+:r17[1:2]) default(none) defaultmap(none) r17[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r18\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r18 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r18 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute reduction(+:r18[1:2]) + #pragma omp target teams distribute reduction(+:r18[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r18[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r19\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -140,7 +140,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r19 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute parallel for reduction(+:r19[1:2]) + #pragma omp target teams distribute parallel for reduction(+:r19[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r19[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r20\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -150,7 +150,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r20 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute parallel for simd reduction(+:r20[1:2]) + #pragma omp target teams distribute parallel for simd reduction(+:r20[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r20[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r21\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -158,7 +158,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r21 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute simd reduction(+:r21[1:2]) + #pragma omp target teams distribute simd reduction(+:r21[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r21[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r22\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ @@ -168,30 +168,30 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target teams loop reduction(+:r22[1:2]) + #pragma omp target teams loop reduction(+:r22[1:2]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r22[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:r23\\\[1\\\] \\\[len: 8\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r23 \\+ 4" "gimple" } } */ - #pragma omp target simd reduction(+:r23[1:2]) + #pragma omp target simd reduction(+:r23[1:2]) defaultmap(none) for (int i = 0; i < 64; i++) r23[1]++; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r24 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r24 \\+ 4" "gimple" } } */ - #pragma omp taskloop simd reduction(+:r24[1:2]) + #pragma omp taskloop simd reduction(+:r24[1:2]) default(none) for (int i = 0; i < 64; i++) r24[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r25 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r25 \\+ 4" "gimple" } } */ - #pragma omp teams distribute reduction(+:r25[1:2]) + #pragma omp teams distribute reduction(+:r25[1:2]) default(none) for (int i = 0; i < 64; i++) r25[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r26 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute parallel for reduction(+:r26[1:2]) + #pragma omp teams distribute parallel for reduction(+:r26[1:2]) default(none) for (int i = 0; i < 64; i++) r26[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } */ @@ -199,13 +199,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r27 \\+ 4" "gimple" } } */ - #pragma omp teams distribute parallel for simd reduction(+:r27[1:2]) + #pragma omp teams distribute parallel for simd reduction(+:r27[1:2]) default(none) for (int i = 0; i < 64; i++) r27[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r28 \\+ 4" "gimple" } } */ - #pragma omp teams distribute simd reduction(+:r28[1:2]) + #pragma omp teams distribute simd reduction(+:r28[1:2]) default(none) for (int i = 0; i < 64; i++) r28[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(r29\\)" "gimple" } } */ @@ -213,7 +213,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*&r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp teams loop reduction(+:r29[1:2]) + #pragma omp teams loop reduction(+:r29[1:2]) default(none) for (int i = 0; i < 64; i++) r29[1]++; } --- gcc/testsuite/c-c++-common/gomp/pr99928-10.c.jj 2021-05-28 11:26:40.673746496 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-10.c 2021-05-28 19:40:00.811371521 +0200 @@ -13,14 +13,14 @@ foo (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r00 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp distribute parallel for reduction(+:r00[1:2]) + #pragma omp distribute parallel for reduction(+:r00[1:2]) default(none) for (int i = 0; i < 64; i++) r00[1]++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r01 \\+ 4" "gimple" } } */ - #pragma omp distribute parallel for simd reduction(+:r01[1:3]) + #pragma omp distribute parallel for simd reduction(+:r01[1:3]) default(none) for (int i = 0; i < 64; i++) r01[1]++; /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r02 \\+ 4" "gimple" } } */ @@ -43,53 +43,53 @@ bar (void) r03[1]++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r04 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r04 \\+ 4" "gimple" } } */ - #pragma omp master taskloop reduction(+:r04[1:6]) + #pragma omp master taskloop reduction(+:r04[1:6]) default(none) for (int i = 0; i < 64; i++) r04[1]++; /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r05 \\+ 4" "gimple" } } */ - #pragma omp master taskloop simd reduction(+:r05[1:7]) + #pragma omp master taskloop simd reduction(+:r05[1:7]) default(none) for (int i = 0; i < 64; i++) r05[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r06 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r06 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp parallel for reduction(+:r06[1:8]) + #pragma omp parallel for reduction(+:r06[1:8]) default(none) for (int i = 0; i < 64; i++) r06[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r07 \\+ 4" "gimple" } } */ - #pragma omp parallel for simd reduction(+:r07[1:9]) + #pragma omp parallel for simd reduction(+:r07[1:9]) default(none) for (int i = 0; i < 64; i++) r07[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r08\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r08 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp parallel loop reduction(+:r08[1:10]) + #pragma omp parallel loop reduction(+:r08[1:10]) default(none) for (int i = 0; i < 64; i++) r08[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r09 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r09 \\+ 4" "gimple" } } */ - #pragma omp parallel master reduction(+:r09[1:11]) + #pragma omp parallel master reduction(+:r09[1:11]) default(none) r09[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r10\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization. */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r10 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r10 \\+ 4" "gimple" } } */ - #pragma omp parallel master taskloop reduction(+:r10[1:12]) + #pragma omp parallel master taskloop reduction(+:r10[1:12]) default(none) for (int i = 0; i < 64; i++) r10[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r11\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization. */ /* { dg-final { scan-tree-dump-not "omp master\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r11 \\+ 4" "gimple" } } */ - #pragma omp parallel master taskloop simd reduction(+:r11[1:13]) + #pragma omp parallel master taskloop simd reduction(+:r11[1:13]) default(none) for (int i = 0; i < 64; i++) r11[1]++; /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } *//* FIXME: This should be on sections instead. */ /* { dg-final { scan-tree-dump-not "omp sections\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump-not "omp section \[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r12 \\+ 4" "gimple" } } */ - #pragma omp parallel sections reduction(+:r12[1:14]) + #pragma omp parallel sections reduction(+:r12[1:14]) default(none) { r12[1]++; #pragma omp section @@ -99,14 +99,14 @@ bar (void) /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r13 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r13\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r13 \\+ 4" "gimple" } } */ - #pragma omp target parallel reduction(+:r13[1:15]) + #pragma omp target parallel reduction(+:r13[1:15]) default(none) defaultmap(none) r13[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 64\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r14 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r14" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r14 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r14 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp target parallel for reduction(+:r14[1:16]) + #pragma omp target parallel for reduction(+:r14[1:16]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r14[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 68\\\]" "gimple" } } */ @@ -115,7 +115,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r15 \\+ 4" "gimple" } } */ - #pragma omp target parallel for simd reduction(+:r15[1:17]) + #pragma omp target parallel for simd reduction(+:r15[1:17]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r15[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 72\\\]" "gimple" } } */ @@ -124,21 +124,21 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r16\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r16 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target parallel loop reduction(+:r16[1:18]) + #pragma omp target parallel loop reduction(+:r16[1:18]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r16[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 76\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r17 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r17\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r17 \\+ 4" "gimple" } } */ - #pragma omp target teams reduction(+:r17[1:19]) + #pragma omp target teams reduction(+:r17[1:19]) default(none) defaultmap(none) r17[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 80\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r18 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r18\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r18 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r18 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute reduction(+:r18[1:20]) + #pragma omp target teams distribute reduction(+:r18[1:20]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r18[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 84\\\]" "gimple" } } */ @@ -148,7 +148,7 @@ bar (void) /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r19 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp target teams distribute parallel for reduction(+:r19[1:21]) + #pragma omp target teams distribute parallel for reduction(+:r19[1:21]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r19[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 88\\\]" "gimple" } } */ @@ -159,7 +159,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r20 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute parallel for simd reduction(+:r20[1:22]) + #pragma omp target teams distribute parallel for simd reduction(+:r20[1:22]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r20[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 92\\\]" "gimple" } } */ @@ -168,7 +168,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r21 \\+ 4" "gimple" } } */ - #pragma omp target teams distribute simd reduction(+:r21[1:23]) + #pragma omp target teams distribute simd reduction(+:r21[1:23]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r21[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 96\\\]" "gimple" } } */ @@ -179,31 +179,31 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r22\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r22 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp target teams loop reduction(+:r22[1:24]) + #pragma omp target teams loop reduction(+:r22[1:24]) default(none) defaultmap(none) for (int i = 0; i < 64; i++) r22[1]++; /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:\\\*_\[0-9]* \\\[len: 100\\\]" "gimple" } } */ /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(firstprivate:r23 \\\[pointer assign, bias: 4\\\]\\)" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(r23\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r23 \\+ 4" "gimple" } } */ - #pragma omp target simd reduction(+:r23[1:25]) + #pragma omp target simd reduction(+:r23[1:25]) defaultmap(none) for (int i = 0; i < 64; i++) r23[1]++; /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r24 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r24 \\+ 4" "gimple" } } */ - #pragma omp taskloop simd reduction(+:r24[1:26]) + #pragma omp taskloop simd reduction(+:r24[1:26]) default(none) for (int i = 0; i < 64; i++) r24[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r25 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r25 \\+ 4" "gimple" } } */ - #pragma omp teams distribute reduction(+:r25[1:27]) + #pragma omp teams distribute reduction(+:r25[1:27]) default(none) for (int i = 0; i < 64; i++) r25[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r26 \\+ 4" "gimple" } } *//* FIXME. */ - #pragma omp teams distribute parallel for reduction(+:r26[1:28]) + #pragma omp teams distribute parallel for reduction(+:r26[1:28]) default(none) for (int i = 0; i < 64; i++) r26[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } */ @@ -211,13 +211,13 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r27 \\+ 4" "gimple" } } */ - #pragma omp teams distribute parallel for simd reduction(+:r27[1:29]) + #pragma omp teams distribute parallel for simd reduction(+:r27[1:29]) default(none) for (int i = 0; i < 64; i++) r27[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp distribute\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r28 \\+ 4" "gimple" } } */ - #pragma omp teams distribute simd reduction(+:r28[1:30]) + #pragma omp teams distribute simd reduction(+:r28[1:30]) default(none) for (int i = 0; i < 64; i++) r28[1]++; /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*firstprivate\\(r29\\)" "gimple" } } *//* FIXME: Should be shared, but firstprivate is an optimization. */ @@ -225,7 +225,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*firstprivate\\(r29\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*reduction\\(\\+:MEM\[^\n\r]*\\)r29 \\+ 4" "gimple" } } *//* NOTE: This is implementation detail. */ - #pragma omp teams loop reduction(+:r29[1:31]) + #pragma omp teams loop reduction(+:r29[1:31]) default(none) for (int i = 0; i < 64; i++) r29[1]++; } --- gcc/testsuite/c-c++-common/gomp/pr99928-13.c.jj 2021-05-21 21:12:58.761854445 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-13.c 2021-05-28 19:40:51.459645388 +0200 @@ -16,7 +16,7 @@ foo (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j00b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */ - #pragma omp distribute parallel for simd collapse(2) lastprivate (j00a, j00b) + #pragma omp distribute parallel for simd collapse(2) lastprivate (j00a, j00b) default(none) for (j00a = 0; j00a < 64; j00a++) for (j00b = 0; j00b < 4; j00b++) ; @@ -50,7 +50,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */ - #pragma omp master taskloop simd collapse(2) lastprivate (j03a, j03b) + #pragma omp master taskloop simd collapse(2) lastprivate (j03a, j03b) default(none) for (j03a = 0; j03a < 64; j03a++) for (j03b = 0; j03b < 4; j03b++) ; @@ -60,7 +60,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j04b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */ - #pragma omp parallel for simd collapse(2) lastprivate (j04a, j04b) + #pragma omp parallel for simd collapse(2) lastprivate (j04a, j04b) default(none) for (j04a = 0; j04a < 64; j04a++) for (j04b = 0; j04b < 4; j04b++) ; @@ -74,7 +74,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd collapse(2) lastprivate (j05a, j05b) + #pragma omp parallel master taskloop simd collapse(2) lastprivate (j05a, j05b) default(none) for (j05a = 0; j05a < 64; j05a++) for (j05b = 0; j05b < 4; j05b++) ; @@ -88,7 +88,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j06b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */ - #pragma omp target parallel for simd collapse(2) lastprivate (j06a, j06b) + #pragma omp target parallel for simd collapse(2) lastprivate (j06a, j06b) default(none) defaultmap(none) for (j06a = 0; j06a < 64; j06a++) for (j06b = 0; j06b < 4; j06b++) ; @@ -98,7 +98,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07b" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j07b\\)" "gimple" } } */ - #pragma omp target simd collapse(2) lastprivate (j07a, j07b) + #pragma omp target simd collapse(2) lastprivate (j07a, j07b) defaultmap(none) for (j07a = 0; j07a < 64; j07a++) for (j07b = 0; j07b < 4; j07b++) ; @@ -116,7 +116,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j08b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd collapse(2) lastprivate (j08a, j08b) + #pragma omp target teams distribute parallel for simd collapse(2) lastprivate (j08a, j08b) default(none) defaultmap(none) for (j08a = 0; j08a < 64; j08a++) for (j08b = 0; j08b < 4; j08b++) ; @@ -130,7 +130,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */ - #pragma omp target teams distribute simd collapse(2) lastprivate (j09a, j09b) + #pragma omp target teams distribute simd collapse(2) lastprivate (j09a, j09b) default(none) defaultmap(none) for (j09a = 0; j09a < 64; j09a++) for (j09b = 0; j09b < 4; j09b++) ; @@ -140,7 +140,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */ - #pragma omp taskloop simd collapse(2) lastprivate (j10a, j10b) + #pragma omp taskloop simd collapse(2) lastprivate (j10a, j10b) default(none) for (j10a = 0; j10a < 64; j10a++) for (j10b = 0; j10b < 4; j10b++) ; @@ -154,7 +154,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*shared\\(j11b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp for\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd collapse(2) lastprivate (j11a, j11b) + #pragma omp teams distribute parallel for simd collapse(2) lastprivate (j11a, j11b) default(none) for (j11a = 0; j11a < 64; j11a++) for (j11b = 0; j11b < 4; j11b++) ; @@ -164,7 +164,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */ - #pragma omp teams distribute simd collapse(2) lastprivate (j12a, j12b) + #pragma omp teams distribute simd collapse(2) lastprivate (j12a, j12b) default(none) for (j12a = 0; j12a < 64; j12a++) for (j12b = 0; j12b < 4; j12b++) ; --- gcc/testsuite/c-c++-common/gomp/pr99928-14.c.jj 2021-05-21 21:12:58.761854445 +0200 +++ gcc/testsuite/c-c++-common/gomp/pr99928-14.c 2021-05-28 19:41:02.169491847 +0200 @@ -16,7 +16,7 @@ foo (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j00b\\)" "gimple" } } */ - #pragma omp distribute parallel for simd collapse(2) + #pragma omp distribute parallel for simd collapse(2) default(none) for (j00a = 0; j00a < 64; j00a++) for (j00b = 0; j00b < 4; j00b++) ; @@ -50,7 +50,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j03b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j03b\\)" "gimple" } } */ - #pragma omp master taskloop simd collapse(2) + #pragma omp master taskloop simd collapse(2) default(none) for (j03a = 0; j03a < 64; j03a++) for (j03b = 0; j03b < 4; j03b++) ; @@ -60,7 +60,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j04b\\)" "gimple" } } */ - #pragma omp parallel for simd collapse(2) + #pragma omp parallel for simd collapse(2) default(none) for (j04a = 0; j04a < 64; j04a++) for (j04b = 0; j04b < 4; j04b++) ; @@ -74,7 +74,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j05b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j05b\\)" "gimple" } } */ - #pragma omp parallel master taskloop simd collapse(2) + #pragma omp parallel master taskloop simd collapse(2) default(none) for (j05a = 0; j05a < 64; j05a++) for (j05b = 0; j05b < 4; j05b++) ; @@ -88,7 +88,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j06b\\)" "gimple" } } */ - #pragma omp target parallel for simd collapse(2) + #pragma omp target parallel for simd collapse(2) default(none) defaultmap(none) for (j06a = 0; j06a < 64; j06a++) for (j06b = 0; j06b < 4; j06b++) ; @@ -98,7 +98,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp target\[^\n\r]*map\\(tofrom:j07b" "gimple" } } */ /* { dg-final { scan-tree-dump-not "omp target\[^\n\r]*firstprivate\\(j07b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j07b\\)" "gimple" } } */ - #pragma omp target simd collapse(2) + #pragma omp target simd collapse(2) defaultmap(none) for (j07a = 0; j07a < 64; j07a++) for (j07b = 0; j07b < 4; j07b++) ; @@ -116,7 +116,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j08b\\)" "gimple" } } */ - #pragma omp target teams distribute parallel for simd collapse(2) + #pragma omp target teams distribute parallel for simd collapse(2) default(none) defaultmap(none) for (j08a = 0; j08a < 64; j08a++) for (j08b = 0; j08b < 4; j08b++) ; @@ -130,7 +130,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j09b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j09b\\)" "gimple" } } */ - #pragma omp target teams distribute simd collapse(2) + #pragma omp target teams distribute simd collapse(2) default(none) defaultmap(none) for (j09a = 0; j09a < 64; j09a++) for (j09b = 0; j09b < 4; j09b++) ; @@ -140,7 +140,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*shared\\(j10b\\)" "gimple" } } *//* NOTE: This is implementation detail. */ /* { dg-final { scan-tree-dump "omp taskloop\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j10b\\)" "gimple" } } */ - #pragma omp taskloop simd collapse(2) + #pragma omp taskloop simd collapse(2) default(none) for (j10a = 0; j10a < 64; j10a++) for (j10b = 0; j10b < 4; j10b++) ; @@ -154,7 +154,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp parallel\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } *//* FIXME: This should be on for instead. */ /* { dg-final { scan-tree-dump-not "omp for\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } *//* FIXME. */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j11b\\)" "gimple" } } */ - #pragma omp teams distribute parallel for simd collapse(2) + #pragma omp teams distribute parallel for simd collapse(2) default(none) for (j11a = 0; j11a < 64; j11a++) for (j11b = 0; j11b < 4; j11b++) ; @@ -164,7 +164,7 @@ bar (void) /* { dg-final { scan-tree-dump "omp teams\[^\n\r]*shared\\(j12b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp distribute\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */ /* { dg-final { scan-tree-dump "omp simd\[^\n\r]*lastprivate\\(j12b\\)" "gimple" } } */ - #pragma omp teams distribute simd collapse(2) + #pragma omp teams distribute simd collapse(2) default(none) for (j12a = 0; j12a < 64; j12a++) for (j12b = 0; j12b < 4; j12b++) ; Jakub