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>
|
2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
|
||||||
|
|
||||||
* tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
|
* 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
|
updated offset we set using ADVANCE. Instead we have to make sure the
|
||||||
reference in the data references point to the corresponding copy of
|
reference in the data references point to the corresponding copy of
|
||||||
the original in the epilogue. */
|
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)
|
DR_REF (dr)
|
||||||
= simplify_replace_tree (DR_REF (dr), NULL_TREE, NULL_TREE,
|
= simplify_replace_tree (DR_REF (dr), NULL_TREE, NULL_TREE,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user