https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96109

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:94f28340513753ba94ab483e93ce1d096842a5ad

commit r12-4706-g94f28340513753ba94ab483e93ce1d096842a5ad
Author: Richard Biener <rguent...@suse.de>
Date:   Mon Oct 25 13:39:07 2021 +0200

    Move negative stride bias out of dr_misalignment

    This moves applying of a bias for negative stride accesses out of
    dr_misalignment in favor of a more general optional offset argument.
    The negative bias is now computed by get_load_store_type and applied
    accordingly to determine the alignment support scheme.  Likewise
    the peeling/versioning code is adjusted albeit that still assumes
    we'll end up with VMAT_CONTIGUOUS_DOWN or VMAT_CONTIGUOUS_REVERSE
    but at least when not so (VMAT_STRIDED_SLP is one possibility) then
    get_load_store_type will _not_ falsely report an aligned access but
    instead an access with known misalignment.

    This fixes PR96109.

    2021-10-25  Richard Biener  <rguent...@suse.de>

            PR tree-optimization/96109
            * tree-vectorizer.h (dr_misalignment): Add optional offset
            parameter.
            * tree-vect-data-refs.c (dr_misalignment): Likewise.  Remove
            offset applied for negative stride accesses.
            (vect_enhance_data_refs_alignment): Compute negative stride
            access offset and pass it to dr_misalignment.
            * tree-vect-stmts.c (get_negative_load_store_type): Pass
            negative offset to dr_misalignment.
            (get_group_load_store_type): Likewise.
            (get_load_store_type): Likewise.
            (vectorizable_store): Remove asserts about alignment.
            (vectorizable_load): Likewise.

Reply via email to