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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:93b09bf3246f413b8e469ebfd8ce43947c0073a6

commit r13-2656-g93b09bf3246f413b8e469ebfd8ce43947c0073a6
Author: liuhongt <hongtao....@intel.com>
Date:   Tue Sep 13 13:25:24 2022 +0800

    Check another epilog variable peeling case in
vectorizable_nonlinear_induction.

    in vectorizable_nonlinear_induction, r13-2503-gc13223b790bbc5 prevent
variable peeling by
    only checking LOOP_VINFO_MASK_SKIP_NITERS (loop_vinfo). But when
    "!vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
    LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0", vectorizer will
    still do variable peeling for epilog, and it hits gcc_assert in
    vect_peel_nonlinear_iv_init.

    gcc/ChangeLog:

            PR tree-optimization/106905
            * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
            false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
            LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr106905.c: New test.
            * gcc.target/ia64/pr106905.c: New test.

Reply via email to