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

--- Comment #4 from GCC 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:935aaface9469df644a3d926320da68cd796c067

commit r15-5337-g935aaface9469df644a3d926320da68cd796c067
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Nov 15 08:42:04 2024 +0100

    tree-optimization/117558 - peeling for gaps and VL vectors

    The following ensures that peeling a single iteration for gaps is
    sufficient by enforcing niter masking (partial vector use) given
    we cannot (always) statically decide when the vector size isn't known.
    The condition guarding this and thus statically giving a pass in
    some cases for VL vectors is questionable, the patch doesn't address
    this.

    This fixes a set of known failout from enabling
    --param vect-force-slp=1 by default.

            PR tree-optimization/117558
            * tree-vectorizer.h (_loop_vec_info::must_use_partial_vectors_p):
New.
            (LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P): Likewise.
            * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
            must_use_partial_vectors_p.
            (vect_determine_partial_vectors_and_peeling): Enforce it.
            (vect_analyze_loop_2): Reset before restarting.
            * tree-vect-stmts.cc (get_group_load_store_type): When peeling
            a single gap iteration cannot be determined safe statically
            enforce the use of partial vectors.

Reply via email to