From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1410) id B86BA3858005; Mon, 19 Jun 2023 22:17:07 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B86BA3858005 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687213027; bh=J4lBXXsQngI2f+nT01/raRrZKV/l2x2nPp8Xr9LIjEI=; h=From:To:Subject:Date:From; b=qcz9N3WPFulrzDZiRcxBIRHcLXx6P2eOGKudcupHwpQo2zKo9HREJ6aDYM04ENm2D Y7MwHOT+OaZrL05pchUHlICo/wgT4J+9Na9eCQGPgeFalPx1aIMBtxvo9jlr+ilr/+ fm8/Gr6Z213BoUTGql9TJW3O+s7shKc9+vTbBa7A= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Julian Brown To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/omp/gcc-13] Revert "Fix implicit mapping for array slices on lexically-enclosing data constructs (PR70828)" X-Act-Checkin: gcc X-Git-Author: Julian Brown X-Git-Refname: refs/heads/devel/omp/gcc-13 X-Git-Oldrev: 1394fbcfe614958a969fcc6cdc6f3b53c5bcb6da X-Git-Newrev: a138b0e1e32ca425ea8ab3b5abb68f91a00eb14d Message-Id: <20230619221707.B86BA3858005@sourceware.org> Date: Mon, 19 Jun 2023 22:17:07 +0000 (GMT) List-Id: https://gcc.gnu.org/g:a138b0e1e32ca425ea8ab3b5abb68f91a00eb14d commit a138b0e1e32ca425ea8ab3b5abb68f91a00eb14d Author: Julian Brown Date: Thu Jun 15 19:12:57 2023 +0000 Revert "Fix implicit mapping for array slices on lexically-enclosing data constructs (PR70828)" This reverts commit a84b89b8f070f1efe86ea347e98d57e6bc32ae2d. Relevant tests are temporarily disabled or XFAILed. 2023-06-16 Julian Brown gcc/ Revert: * gimplify.cc (oacc_array_mapping_info): New struct. (gimplify_omp_ctx): Add decl_data_clause hash map. (new_omp_context): Zero-initialise above. (delete_omp_context): Delete above if allocated. (gimplify_scan_omp_clauses): Scan for array mappings on data constructs, and record in above map. (gomp_oacc_needs_data_present): New function. (gimplify_adjust_omp_clauses_1): Handle data mappings (e.g. array slices) declared in lexically-enclosing data constructs. * omp-low.cc (lower_omp_target): Allow decl for bias not to be present in OpenACC context. gcc/fortran/ Revert: * trans-openmp.cc: Handle implicit "present". gcc/testsuite/ * c-c++-common/goacc/acc-data-chain.c: Partly disable test. * gfortran.dg/goacc/pr70828.f90: Likewise. libgomp/ * testsuite/libgomp.oacc-c-c++-common/pr70828.c: XFAIL test. * testsuite/libgomp.oacc-c-c++-common/pr70828-2.c: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828.f90: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828-2.f90: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828-3.f90: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828-4.f90: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828-5.f90: XFAIL test. * testsuite/libgomp.oacc-fortran/pr70828-6.f90: XFAIL test. Diff: --- gcc/ChangeLog.omp | 18 +++ gcc/fortran/ChangeLog.omp | 5 + gcc/fortran/trans-openmp.cc | 10 +- gcc/gimplify.cc | 143 +-------------------- gcc/omp-low.cc | 10 +- gcc/testsuite/ChangeLog.omp | 5 + gcc/testsuite/c-c++-common/goacc/acc-data-chain.c | 4 +- gcc/testsuite/gfortran.dg/goacc/pr70828.f90 | 3 +- libgomp/ChangeLog.omp | 11 ++ .../libgomp.oacc-c-c++-common/pr70828-2.c | 2 + .../testsuite/libgomp.oacc-c-c++-common/pr70828.c | 2 + .../testsuite/libgomp.oacc-fortran/pr70828-2.f90 | 2 + .../testsuite/libgomp.oacc-fortran/pr70828-3.f90 | 2 + .../testsuite/libgomp.oacc-fortran/pr70828-4.f90 | 2 + .../testsuite/libgomp.oacc-fortran/pr70828-5.f90 | 2 + .../testsuite/libgomp.oacc-fortran/pr70828-6.f90 | 2 + libgomp/testsuite/libgomp.oacc-fortran/pr70828.f90 | 2 + 17 files changed, 67 insertions(+), 158 deletions(-) diff --git a/gcc/ChangeLog.omp b/gcc/ChangeLog.omp index 36bb919108b..fade77ee679 100644 --- a/gcc/ChangeLog.omp +++ b/gcc/ChangeLog.omp @@ -1,3 +1,21 @@ +2023-06-19 Julian Brown + + Revert: + 2018-08-28 Julian Brown + Cesar Philippidis + + * gimplify.cc (oacc_array_mapping_info): New struct. + (gimplify_omp_ctx): Add decl_data_clause hash map. + (new_omp_context): Zero-initialise above. + (delete_omp_context): Delete above if allocated. + (gimplify_scan_omp_clauses): Scan for array mappings on data constructs, + and record in above map. + (gomp_oacc_needs_data_present): New function. + (gimplify_adjust_omp_clauses_1): Handle data mappings (e.g. array + slices) declared in lexically-enclosing data constructs. + * omp-low.cc (lower_omp_target): Allow decl for bias not to be present + in OpenACC context. + 2023-06-19 Julian Brown Revert: diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp index 0f430b1261d..16982e38de1 100644 --- a/gcc/fortran/ChangeLog.omp +++ b/gcc/fortran/ChangeLog.omp @@ -1,3 +1,8 @@ +2023-06-19 Julian Brown + + Revert: + * trans-openmp.cc: Handle implicit "present". + 2023-06-19 Julian Brown Revert: diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index 96e91a3bc50..809b96bc220 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -1587,13 +1587,9 @@ gfc_omp_finish_clause (tree c, gimple_seq *pre_p, bool openacc) tree decl = OMP_CLAUSE_DECL (c); - /* Assumed-size arrays can't be mapped implicitly, they have to be mapped - explicitly using array sections. An exception is if the array is - mapped explicitly in an enclosing data construct for OpenACC, in which - case we see GOMP_MAP_FORCE_PRESENT here and do not need to raise an - error. */ - if (OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_FORCE_PRESENT - && TREE_CODE (decl) == PARM_DECL + /* Assumed-size arrays can't be mapped implicitly, they have to be + mapped explicitly using array sections. */ + if (TREE_CODE (decl) == PARM_DECL && GFC_ARRAY_TYPE_P (TREE_TYPE (decl)) && GFC_TYPE_ARRAY_AKIND (TREE_TYPE (decl)) == GFC_ARRAY_UNKNOWN && GFC_TYPE_ARRAY_UBOUND (TREE_TYPE (decl), diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index 80f1f3a657f..e3384c7f65b 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -218,17 +218,6 @@ enum gimplify_defaultmap_kind GDMK_POINTER }; -/* Used to record clauses representing array slices on data directives that - may affect implicit mapping semantics on enclosed OpenACC parallel/kernels - regions. PSET is used for Fortran array slices with array descriptors, - or NULL otherwise. */ -struct oacc_array_mapping_info -{ - tree mapping; - tree pset; - tree pointer; -}; - struct gimplify_omp_ctx { struct gimplify_omp_ctx *outer_context; @@ -250,7 +239,6 @@ struct gimplify_omp_ctx bool in_for_exprs; bool ompacc; int defaultmap[5]; - hash_map *decl_data_clause; }; struct privatize_reduction @@ -485,7 +473,6 @@ new_omp_context (enum omp_region_type region_type) c->defaultmap[GDMK_AGGREGATE] = GOVD_MAP; c->defaultmap[GDMK_ALLOCATABLE] = GOVD_MAP; c->defaultmap[GDMK_POINTER] = GOVD_MAP; - c->decl_data_clause = NULL; return c; } @@ -498,8 +485,6 @@ delete_omp_context (struct gimplify_omp_ctx *c) splay_tree_delete (c->variables); delete c->privatized_types; c->loop_iter_var.release (); - if (c->decl_data_clause) - delete c->decl_data_clause; XDELETE (c); } @@ -11235,41 +11220,8 @@ gimplify_scan_omp_clauses (tree *list_p, gimple_seq *pre_p, case OMP_TARGET: break; case OACC_DATA: - { - tree base_ptr = OMP_CLAUSE_CHAIN (c); - tree pset = NULL; - if (base_ptr - && OMP_CLAUSE_CODE (base_ptr) == OMP_CLAUSE_MAP - && OMP_CLAUSE_MAP_KIND (base_ptr) == GOMP_MAP_TO_PSET) - { - pset = base_ptr; - base_ptr = OMP_CLAUSE_CHAIN (base_ptr); - } - if (base_ptr - && OMP_CLAUSE_CODE (base_ptr) == OMP_CLAUSE_MAP - && OMP_CLAUSE_MAP_KIND (c) != GOMP_MAP_TO_PSET - && ((OMP_CLAUSE_MAP_KIND (base_ptr) - == GOMP_MAP_FIRSTPRIVATE_POINTER) - || OMP_CLAUSE_MAP_KIND (base_ptr) == GOMP_MAP_POINTER)) - { - /* If we have an array descriptor, fish the right base - address variable to use out of that (otherwise we'd have - to deconstruct "arr.data" in the subsequent pointer - mapping). */ - tree base_addr = pset ? OMP_CLAUSE_DECL (pset) - : OMP_CLAUSE_DECL (base_ptr); - if (!ctx->decl_data_clause) - ctx->decl_data_clause - = new hash_map; - oacc_array_mapping_info ai; - ai.mapping = unshare_expr (c); - ai.pset = pset ? unshare_expr (pset) : NULL; - ai.pointer = unshare_expr (base_ptr); - ctx->decl_data_clause->put (base_addr, ai); - } - if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE) - break; - } + if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE) + break; /* FALLTHRU */ case OMP_TARGET_DATA: case OMP_TARGET_ENTER_DATA: @@ -12430,46 +12382,6 @@ struct gimplify_adjust_omp_clauses_data gimple_seq *pre_p; }; -/* For OpenACC parallel and kernels regions, the implicit data mappings for - arrays must respect explicit data clauses set by a containing acc data - region. Specifically, an array section on the data clause must be - transformed into an equivalent PRESENT mapping on the inner parallel or - kernels region. This function returns a pointer to an - oacc_array_mapping_info if an array slice of DECL is specified in a - lexically-enclosing data construct, or returns NULL otherwise. */ - -static oacc_array_mapping_info * -gomp_oacc_needs_data_present (tree decl) -{ - gimplify_omp_ctx *ctx = NULL; - - if (gimplify_omp_ctxp->region_type != ORT_ACC_PARALLEL - && gimplify_omp_ctxp->region_type != ORT_ACC_KERNELS) - return NULL; - - if (TREE_CODE (TREE_TYPE (decl)) != ARRAY_TYPE - && TREE_CODE (TREE_TYPE (decl)) != POINTER_TYPE - && TREE_CODE (TREE_TYPE (decl)) != RECORD_TYPE - && (TREE_CODE (TREE_TYPE (decl)) != POINTER_TYPE - || TREE_CODE (TREE_TYPE (TREE_TYPE (decl))) != ARRAY_TYPE)) - return NULL; - - decl = get_base_address (decl); - - for (ctx = gimplify_omp_ctxp->outer_context; ctx; ctx = ctx->outer_context) - { - oacc_array_mapping_info *ret; - - if (ctx->region_type != ORT_ACC_DATA) - break; - - if (ctx->decl_data_clause && (ret = ctx->decl_data_clause->get (decl))) - return ret; - } - - return NULL; -} - /* For all variables that were not actually used within the context, remove PRIVATE, SHARED, and FIRSTPRIVATE clauses. */ @@ -12591,7 +12503,6 @@ gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) clause = build_omp_clause (input_location, code); OMP_CLAUSE_DECL (clause) = decl; OMP_CLAUSE_CHAIN (clause) = chain; - oacc_array_mapping_info *array_info; if (private_debug) OMP_CLAUSE_PRIVATE_DEBUG (clause) = 1; else if (code == OMP_CLAUSE_PRIVATE && (flags & GOVD_PRIVATE_OUTER_REF)) @@ -12600,56 +12511,6 @@ gimplify_adjust_omp_clauses_1 (splay_tree_node n, void *data) && (flags & GOVD_WRITTEN) == 0 && omp_shared_to_firstprivate_optimizable_decl_p (decl)) OMP_CLAUSE_SHARED_READONLY (clause) = 1; - else if ((code == OMP_CLAUSE_MAP || code == OMP_CLAUSE_FIRSTPRIVATE) - && (array_info = gomp_oacc_needs_data_present (decl))) - { - tree mapping = array_info->mapping; - tree pointer = array_info->pointer; - - if (code == OMP_CLAUSE_FIRSTPRIVATE) - /* Oops, we have the wrong type of clause. Rebuild it. */ - clause = build_omp_clause (OMP_CLAUSE_LOCATION (clause), - OMP_CLAUSE_MAP); - - OMP_CLAUSE_DECL (clause) = unshare_expr (OMP_CLAUSE_DECL (mapping)); - OMP_CLAUSE_SET_MAP_KIND (clause, GOMP_MAP_FORCE_PRESENT); - OMP_CLAUSE_SIZE (clause) = unshare_expr (OMP_CLAUSE_SIZE (mapping)); - - /* Create a new data clause for the firstprivate pointer. */ - tree nc = build_omp_clause (OMP_CLAUSE_LOCATION (clause), - OMP_CLAUSE_MAP); - OMP_CLAUSE_DECL (nc) = unshare_expr (OMP_CLAUSE_DECL (pointer)); - OMP_CLAUSE_SET_MAP_KIND (nc, GOMP_MAP_POINTER); - - /* For GOMP_MAP_FIRSTPRIVATE_POINTER, this is a bias, not a size. */ - OMP_CLAUSE_SIZE (nc) = unshare_expr (OMP_CLAUSE_SIZE (pointer)); - - /* Create a new data clause for the PSET, if present. */ - tree psetc = NULL; - if (array_info->pset) - { - tree pset = array_info->pset; - psetc = build_omp_clause (OMP_CLAUSE_LOCATION (clause), - OMP_CLAUSE_MAP); - OMP_CLAUSE_DECL (psetc) = unshare_expr (OMP_CLAUSE_DECL (pset)); - OMP_CLAUSE_SIZE (psetc) = unshare_expr (OMP_CLAUSE_SIZE (pset)); - OMP_CLAUSE_SET_MAP_KIND (psetc, GOMP_MAP_TO_PSET); - OMP_CLAUSE_CHAIN (psetc) = nc; - } - - gimplify_omp_ctx *ctx = gimplify_omp_ctxp; - gimplify_omp_ctxp = ctx->outer_context; - gimplify_expr (&OMP_CLAUSE_DECL (clause), pre_p, NULL, - is_gimple_lvalue, fb_lvalue); - gimplify_expr (&OMP_CLAUSE_SIZE (clause), pre_p, NULL, - is_gimple_val, fb_rvalue); - gimplify_expr (&OMP_CLAUSE_SIZE (nc), pre_p, NULL, is_gimple_val, - fb_rvalue); - gimplify_omp_ctxp = ctx; - - OMP_CLAUSE_CHAIN (nc) = OMP_CLAUSE_CHAIN (clause); - OMP_CLAUSE_CHAIN (clause) = psetc ? psetc : nc; - } else if (code == OMP_CLAUSE_FIRSTPRIVATE && (flags & GOVD_EXPLICIT) == 0) OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT (clause) = 1; else if (code == OMP_CLAUSE_MAP && (flags & GOVD_MAP_0LEN_ARRAY) != 0) diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc index 59143d8efe5..14ec3b8439e 100644 --- a/gcc/omp-low.cc +++ b/gcc/omp-low.cc @@ -15191,14 +15191,8 @@ lower_omp_target (gimple_stmt_iterator *gsi_p, omp_context *ctx) x = fold_convert_loc (clause_loc, type, x); if (!integer_zerop (OMP_CLAUSE_SIZE (c))) { - tree bias = OMP_CLAUSE_SIZE (c), remapped_bias; - if (is_gimple_omp_oacc (ctx->stmt)) - { - if (DECL_P (bias) - && (remapped_bias = maybe_lookup_decl (bias, ctx))) - bias = remapped_bias; - } - else if (DECL_P (bias)) + tree bias = OMP_CLAUSE_SIZE (c); + if (DECL_P (bias)) bias = lookup_decl (bias, ctx); bias = fold_convert_loc (clause_loc, sizetype, bias); bias = fold_build1_loc (clause_loc, NEGATE_EXPR, sizetype, diff --git a/gcc/testsuite/ChangeLog.omp b/gcc/testsuite/ChangeLog.omp index 810f1e6c929..887995991af 100644 --- a/gcc/testsuite/ChangeLog.omp +++ b/gcc/testsuite/ChangeLog.omp @@ -1,3 +1,8 @@ +2023-06-19 Julian Brown + + * c-c++-common/goacc/acc-data-chain.c: Partly disable test. + * gfortran.dg/goacc/pr70828.f90: Likewise. + 2023-06-13 Sandra Loosemore * gfortran.dg/gomp/collapse1.f90: Adjust expected errors. diff --git a/gcc/testsuite/c-c++-common/goacc/acc-data-chain.c b/gcc/testsuite/c-c++-common/goacc/acc-data-chain.c index 8a039be15f5..932786cec76 100644 --- a/gcc/testsuite/c-c++-common/goacc/acc-data-chain.c +++ b/gcc/testsuite/c-c++-common/goacc/acc-data-chain.c @@ -21,4 +21,6 @@ int main(int argc, char *argv[]) } // { dg-final { scan-tree-dump-times "omp target oacc_data map\\(from:b\\\[0\\\] \\\[len: 400\\\]\\) map\\(to:a\\\[0\\\] \\\[len: 400\\\]\\)" 1 "gimple" } } -// { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:b\\\[0\\\] \\\[len: 400\\\]\\) map.alloc:b \\\[pointer assign, bias: 0\\\]\\) map\\(force_present:a\\\[0\\\] \\\[len: 400\\\]\\) map\\(alloc:a \\\[pointer assign, bias: 0\\\]\\)" 1 "gimple" } } +/* This isn't expected to work while the "lexical inheritance" support is + reverted. */ +// { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:b\\\[0\\\] \\\[len: 400\\\]\\) map.alloc:b \\\[pointer assign, bias: 0\\\]\\) map\\(force_present:a\\\[0\\\] \\\[len: 400\\\]\\) map\\(alloc:a \\\[pointer assign, bias: 0\\\]\\)" 0 "gimple" } } diff --git a/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 b/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 index fcfe0865fc4..72b0d9ae92c 100644 --- a/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 +++ b/gcc/testsuite/gfortran.dg/goacc/pr70828.f90 @@ -19,4 +19,5 @@ program test end program test ! { dg-final { scan-tree-dump-times "omp target oacc_data map\\(tofrom:data\\\[\_\[0-9\]+\\\] \\\[len: _\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: _\[0-9\]+\\\]\\)" 1 "gimple" } } -! { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:data\\\[D\\.\[0-9\]+\\\] \\\[len: D\\.\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: D\\.\[0-9\]+\\\]\\)" 1 "gimple" } } +! Disable for now +! { dg-final { scan-tree-dump-times "omp target oacc_parallel map\\(force_present:data\\\[D\\.\[0-9\]+\\\] \\\[len: D\\.\[0-9\]+\\\]\\) map\\(alloc:data \\\[pointer assign, bias: D\\.\[0-9\]+\\\]\\)" 0 "gimple" } } diff --git a/libgomp/ChangeLog.omp b/libgomp/ChangeLog.omp index 5eb770b6ed7..0d84fe89497 100644 --- a/libgomp/ChangeLog.omp +++ b/libgomp/ChangeLog.omp @@ -1,3 +1,14 @@ +2023-06-19 Julian Brown + + * testsuite/libgomp.oacc-c-c++-common/pr70828.c: XFAIL test. + * testsuite/libgomp.oacc-c-c++-common/pr70828-2.c: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828.f90: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828-2.f90: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828-3.f90: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828-4.f90: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828-5.f90: XFAIL test. + * testsuite/libgomp.oacc-fortran/pr70828-6.f90: XFAIL test. + 2023-06-19 Tobias Burnus Backported from mainline: diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828-2.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828-2.c index 357114ccfd3..da5bb3f93c3 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828-2.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828-2.c @@ -32,3 +32,5 @@ main (int argc, char* argv[]) return 0; } + +/* { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } */ diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828.c b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828.c index 4b6dbd7538f..85d09bff1df 100644 --- a/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828.c +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/pr70828.c @@ -25,3 +25,5 @@ main () return 0; } + +/* { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } */ diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-2.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-2.f90 index 22a956622bb..2892b3d5938 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-2.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-2.f90 @@ -29,3 +29,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-3.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-3.f90 index ff17d10cfa3..e28193b1a22 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-3.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-3.f90 @@ -32,3 +32,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-4.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-4.f90 index 01da999b33d..918295d5c8b 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-4.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-4.f90 @@ -29,3 +29,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-5.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-5.f90 index 8a16e3d5550..3b5d05d1379 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-5.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-5.f90 @@ -27,3 +27,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-6.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-6.f90 index e99c3649159..d48168b22eb 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828-6.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828-6.f90 @@ -26,3 +26,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } } diff --git a/libgomp/testsuite/libgomp.oacc-fortran/pr70828.f90 b/libgomp/testsuite/libgomp.oacc-fortran/pr70828.f90 index f87d232fe42..5db49e1a569 100644 --- a/libgomp/testsuite/libgomp.oacc-fortran/pr70828.f90 +++ b/libgomp/testsuite/libgomp.oacc-fortran/pr70828.f90 @@ -22,3 +22,5 @@ program test end if end do end program test + +! { dg-xfail-run-if "PR70828" { ! openacc_host_selected } }