public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/omp/gcc-11] openmp: Add shared to parallel for linear on parallel master taskloop simd [PR99928]
@ 2021-05-31 15:33 Tobias Burnus
  0 siblings, 0 replies; only message in thread
From: Tobias Burnus @ 2021-05-31 15:33 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:cfbf86a6ec43789430e58c9ca32502c87c12e922

commit cfbf86a6ec43789430e58c9ca32502c87c12e922
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Mon May 31 16:49:06 2021 +0200

    openmp: Add shared to parallel for linear on parallel master taskloop simd [PR99928]
    
    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.
    
    2021-05-29  Jakub Jelinek  <jakub@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.
    
    (cherry picked from commit 5d21c0cbda0c4b109366f51534f328145da4c21f)

Diff:
---
 gcc/ChangeLog.omp                            | 10 +++++
 gcc/gimplify.c                               |  8 ++--
 gcc/testsuite/ChangeLog.omp                  | 21 +++++++++++
 gcc/testsuite/c-c++-common/gomp/pr99928-1.c  | 56 ++++++++++++++--------------
 gcc/testsuite/c-c++-common/gomp/pr99928-10.c | 56 ++++++++++++++--------------
 gcc/testsuite/c-c++-common/gomp/pr99928-13.c | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-14.c | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-2.c  | 50 ++++++++++++-------------
 gcc/testsuite/c-c++-common/gomp/pr99928-3.c  | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-4.c  | 16 ++++----
 gcc/testsuite/c-c++-common/gomp/pr99928-5.c  | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-6.c  | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-7.c  | 22 +++++------
 gcc/testsuite/c-c++-common/gomp/pr99928-8.c  | 56 ++++++++++++++--------------
 gcc/testsuite/c-c++-common/gomp/pr99928-9.c  | 56 ++++++++++++++--------------
 15 files changed, 247 insertions(+), 214 deletions(-)

diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp
index 041f3fbf19a..f4131ffc9cc 100644
--- a/gcc/ChangeLog.omp
+++ b/gcc/ChangeLog.omp
@@ -1,3 +1,13 @@
+2021-05-31  Tobias Burnus  <tobias@codesourcery.com>
+
+	Backported from master:
+	2021-05-29  Jakub Jelinek  <jakub@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.
+
 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
 
 	Backported from master:
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index ff8c5159d0c..5b481b99953 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -9141,6 +9141,7 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_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
 		{
@@ -9172,11 +9173,12 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_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)
diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp
index f2b44536d36..3e439e1ec0e 100644
--- a/gcc/testsuite/ChangeLog.omp
+++ b/gcc/testsuite/ChangeLog.omp
@@ -1,3 +1,24 @@
+2021-05-31  Tobias Burnus  <tobias@codesourcery.com>
+
+	Backported from master:
+	2021-05-29  Jakub Jelinek  <jakub@redhat.com>
+
+	PR middle-end/99928
+	* 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.
+
 2021-05-28  Tobias Burnus  <tobias@codesourcery.com>
 
 	Backported from master:
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-1.c b/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
index 37181fdeaa8..b4aa8dd61ec 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-1.c
@@ -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++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-10.c b/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
index 6c44600b07e..4366863c579 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-10.c
@@ -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]++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-13.c b/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
index d5d8d789adf..d45417fec8a 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-13.c
@@ -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++)
       ;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-14.c b/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
index 2d9e0be5d88..2df78919de9 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-14.c
@@ -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++)
       ;
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-2.c b/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
index 6ba3d46907c..1af9bd2c4be 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-2.c
@@ -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++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-3.c b/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
index cf9c72d75b8..8e8cf938ef6 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-3.c
@@ -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;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-4.c b/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
index f35e7343db4..915a8657b91 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-4.c
@@ -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++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-5.c b/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
index 7405188556e..26da0ac433a 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-5.c
@@ -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++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-6.c b/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
index 918a97e8167..d37587c1313 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-6.c
@@ -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++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-7.c b/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
index 5db1101e23b..e6e0e929dd2 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-7.c
@@ -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++)
     ;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-8.c b/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
index 27e6ad1eb36..ad36f3ede54 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-8.c
@@ -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++;
 }
diff --git a/gcc/testsuite/c-c++-common/gomp/pr99928-9.c b/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
index 86235277667..a7d970ac157 100644
--- a/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
+++ b/gcc/testsuite/c-c++-common/gomp/pr99928-9.c
@@ -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]++;
 }


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-05-31 15:33 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-31 15:33 [gcc/devel/omp/gcc-11] openmp: Add shared to parallel for linear on parallel master taskloop simd [PR99928] Tobias Burnus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).