From: Richard Sandiford Date: Fri, 10 Jan 2020 14:56:20 +0000 (+0000) Subject: Fix gather/scatter check when updating a vector epilogue loop X-Git-Tag: upstream/12.2.0~19155 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ac190fcea1bebf87a2c8c3963548a0e5272c42ec;p=platform%2Fupstream%2Fgcc.git Fix gather/scatter check when updating a vector epilogue loop update_epilogue_loop_vinfo applies SSA renmaing to the DR_REF of a gather or scatter, so that vect_check_gather_scatter continues to work. However, we sometimes also rely on vect_check_gather_scatter when using gathers and scatters to implement strided accesses. This showed up on existing tests when testing with fixed-length -msve-vector-bits=128. 2020-01-10 Richard Sandiford gcc/ * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF for any type of gather or scatter, including strided accesses. From-SVN: r280111 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8298ab..28564f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2020-01-10 Richard Sandiford + + * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF + for any type of gather or scatter, including strided accesses. + 2020-01-10 Andre Vieira * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c index 596eafc..1fa3ba6 100644 --- a/gcc/tree-vect-loop.c +++ b/gcc/tree-vect-loop.c @@ -8451,7 +8451,7 @@ update_epilogue_loop_vinfo (class loop *epilogue, tree advance) updated offset we set using ADVANCE. Instead we have to make sure the reference in the data references point to the corresponding copy of the original in the epilogue. */ - if (STMT_VINFO_GATHER_SCATTER_P (stmt_vinfo)) + if (STMT_VINFO_MEMORY_ACCESS_TYPE (stmt_vinfo) == VMAT_GATHER_SCATTER) { DR_REF (dr) = simplify_replace_tree (DR_REF (dr), NULL_TREE, NULL_TREE,