diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2016-07-06 08:16:53 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2016-07-06 08:16:53 +0000 |
commit | 62da9e14ce5b670bf40a91f1dc9473579a2d5549 (patch) | |
tree | f64f6affdc9e9aa406115967f1fe3db21b1b124c /gcc/ada | |
parent | 2de001eed013bb666f832694bc75b8f055ffdc76 (diff) | |
download | gcc-62da9e14ce5b670bf40a91f1dc9473579a2d5549.zip gcc-62da9e14ce5b670bf40a91f1dc9473579a2d5549.tar.gz gcc-62da9e14ce5b670bf40a91f1dc9473579a2d5549.tar.bz2 |
[7/7] Add negative and zero strides to vect_memory_access_type
This patch uses the vect_memory_access_type from patch 6 to represent
the effect of a negative contiguous stride or a zero stride. The latter
is valid only for loads.
Tested on aarch64-linux-gnu and x86_64-linux-gnu.
gcc/
* tree-vectorizer.h (vect_memory_access_type): Add
VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
* tree-vect-stmts.c (compare_step_with_zero): New function.
(perm_mask_for_reverse): Move further up file.
(get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
step is negative.
(get_negative_load_store_type): New function.
(get_load_store_type): Call it. Add an ncopies argument.
(vectorizable_mask_load_store): Update call accordingly and
remove tests for negative steps.
(vectorizable_store, vectorizable_load): Likewise. Handle new
memory_access_types.
From-SVN: r238039
Diffstat (limited to 'gcc/ada')
0 files changed, 0 insertions, 0 deletions