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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfch...@gcc.gnu.org>:

https://gcc.gnu.org/g:6c8d221b74869f2760ded2d67f95dd9d275bc1a2

commit r16-2119-g6c8d221b74869f2760ded2d67f95dd9d275bc1a2
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Wed Jul 9 08:39:35 2025 +0100

    middle-end: don't set range on partial vectors [PR120922]

    Before the change in g:309dbcea2cabb31bde1a65cdfd30bb7f87b170a2 we would
never
    set a range for constant VF and requires partial vector loops.

    I think a range could be set, since I think the number of latch executions
is a
    ceiling division of TYPE_MAX_VALUE / vf. To account for the partial
iteration.

    This would also then deal with the ICE cause in the PR where the chosen VF
was
    much higher than TYPE_MAX_VALUE and that a mask is relied upon to make it
safe.

    Since the patch was supposed to not change behavior I've added an
additional
    partial vector check on the const_vf > 0 check to make it explicit that we
only
    set it on non-partial vectors (alternative would have been to swap the
order of
    the vf.constant(&const_vf)) check, but that would have hidden the
requirement
    sneakily.

    The second patch adds support for ranges for partial masks.

    gcc/ChangeLog:

            PR tree-optimization/120922
            * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Don't set
range
            for partial vectors.

    gcc/testsuite/ChangeLog:

            PR tree-optimization/120922
            * gcc.dg/vect/pr120922.c: New test.

Reply via email to