aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-10-18 13:54:34 +0200
committerRichard Biener <rguenther@suse.de>2021-10-18 15:18:03 +0200
commitc9ff4581841f079e00d37fa7743021c62c935315 (patch)
treeb12f22eb30c89b2ff54a76df24756c7563219a3e
parentb0ea7a8409aa4afd0b0fd874b232766a758c0bc6 (diff)
downloadgcc-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.c11
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),