diff options
author | Richard Biener <rguenther@suse.de> | 2021-10-18 13:54:34 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-10-18 15:18:03 +0200 |
commit | c9ff4581841f079e00d37fa7743021c62c935315 (patch) | |
tree | b12f22eb30c89b2ff54a76df24756c7563219a3e | |
parent | b0ea7a8409aa4afd0b0fd874b232766a758c0bc6 (diff) | |
download | gcc-c9ff4581841f079e00d37fa7743021c62c935315.zip gcc-c9ff4581841f079e00d37fa7743021c62c935315.tar.gz gcc-c9ff4581841f079e00d37fa7743021c62c935315.tar.bz2 |
Reduce the number of aligned_access_p calls
This uses the computed alignment scheme in vectorizable_store
much like vectorizable_load does instead of re-querying
it via aligned_access_p.
2021-10-18 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (vectorizable_store): Use the
computed alignment scheme instead of querying
aligned_access_p.
-rw-r--r-- | gcc/tree-vect-stmts.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 0e5e553..07123a2 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -8213,8 +8213,11 @@ vectorizable_store (vec_info *vinfo, vec_oprnd = result_chain[i]; align = known_alignment (DR_TARGET_ALIGNMENT (first_dr_info)); - if (aligned_access_p (first_dr_info, vectype)) - misalign = 0; + if (alignment_support_scheme == dr_aligned) + { + gcc_assert (aligned_access_p (first_dr_info, vectype)); + misalign = 0; + } else if (dr_misalignment (first_dr_info, vectype) == DR_MISALIGNMENT_UNKNOWN) { @@ -8299,8 +8302,8 @@ vectorizable_store (vec_info *vinfo, dataref_offset ? dataref_offset : build_int_cst (ref_type, 0)); - if (aligned_access_p (first_dr_info, vectype)) - ; + if (alignment_support_scheme == dr_aligned) + gcc_assert (aligned_access_p (first_dr_info, vectype)); else TREE_TYPE (data_ref) = build_aligned_type (TREE_TYPE (data_ref), |