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 <richard.sandiford@arm.com> 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
This commit is contained in:
parent
2fb672a257
commit
ac190fcea1
@ -1,3 +1,8 @@
|
||||
2020-01-10 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* 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 <andre.simoesdiasvieira@arm.com>
|
||||
|
||||
* tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user