This uses the computed alignment scheme in vectorizable_store much like vectorizable_load does instead of re-querying it via aligned_access_p.
Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed. 2021-10-18 Richard Biener <rguent...@suse.de> * tree-vect-stmts.c (vectorizable_store): Use the computed alignment scheme instead of querying aligned_access_p. --- gcc/tree-vect-stmts.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 0e5e553ffe8..07123a2970f 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), -- 2.31.1