aboutsummaryrefslogtreecommitdiff
path: root/gcc/omp-low.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-07-20 08:38:59 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2019-07-20 08:38:59 +0200
commitb6339213ff68ac5a87b7fdda878f26b52d801b76 (patch)
tree91fbdb4b379a4e01d78add2ffea75605037d95be /gcc/omp-low.c
parent05584e7c94f71ae287e2b9f148c0a1c93aff6b55 (diff)
downloadgcc-b6339213ff68ac5a87b7fdda878f26b52d801b76.zip
gcc-b6339213ff68ac5a87b7fdda878f26b52d801b76.tar.gz
gcc-b6339213ff68ac5a87b7fdda878f26b52d801b76.tar.bz2
omp-low.c (lower_rec_input_clauses): Don't force simd arrays for lastprivate non-addressable iterator of a...
* omp-low.c (lower_rec_input_clauses): Don't force simd arrays for lastprivate non-addressable iterator of a collapse(1) simd. * gcc.dg/vect/vect-simd-16.c: New test. From-SVN: r273620
Diffstat (limited to 'gcc/omp-low.c')
-rw-r--r--gcc/omp-low.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index a18f24c..03df07b 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -5097,7 +5097,10 @@ lower_rec_input_clauses (tree clauses, gimple_seq *ilist, gimple_seq *dlist,
{
tree y = lang_hooks.decls.omp_clause_dtor (c, new_var);
if ((TREE_ADDRESSABLE (new_var) || nx || y
- || OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE
+ || (OMP_CLAUSE_CODE (c) == OMP_CLAUSE_LASTPRIVATE
+ && (gimple_omp_for_collapse (ctx->stmt) != 1
+ || (gimple_omp_for_index (ctx->stmt, 0)
+ != new_var)))
|| OMP_CLAUSE_CODE (c) == OMP_CLAUSE__CONDTEMP_
|| omp_is_reference (var))
&& lower_rec_simd_input_clauses (new_var, ctx, &sctx,