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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-16 branch has been updated by Richard Biener
<[email protected]>:

https://gcc.gnu.org/g:e47c84926bfd72fbd8b680b3b6663913e083ed8a

commit r16-9858-ge47c84926bfd72fbd8b680b3b6663913e083ed8a
Author: Richard Biener <[email protected]>
Date:   Fri Sep 25 10:45:00 2026 +0200

    tree-optimization/127601 - negative step SLP vectorization with gap

    The following disables negative step SLP (with a group size bigger
    than one) vectorization with gaps since the VMAT_STRIDED_SLP path
    does not implement using smaller vectors to avoid touching the gap
    nor can we use peeling for gaps to deal with a gap that would be
    touched with the first vector load.

            PR tree-optimization/127601
            * tree-vect-stmts.cc (get_load_store_type): Move overrun
            flags and final handling to the relevant section, after
            determining the step direction and the memory access type.
            Only elide overrun with half-vector accesses for the
            memory access types supporting that.  Do not claim
            VMAT_STRIDED_SLP can handle overruns when the step is
            negative.
            (vectorizable_load): For the last memory access type group
            analysis/transform assert what memory access type that covers.

            * gcc.dg/vect/vect-pr127601.c: New testcase.

    (cherry picked from commit b4a5597ccd6a38f5598c4c190f34162031ad6700)

Reply via email to