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

--- Comment #8 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:08cdd61e70c9c33a7a33b9c656cbc2ccb2914bd1

commit r16-3278-g08cdd61e70c9c33a7a33b9c656cbc2ccb2914bd1
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Tue Aug 19 10:17:17 2025 +0100

    middle-end: Fix costing hooks of various vectorizable_* [PR121536]

    commit g:1786be14e94bf1a7806b9dc09186f021737f0227 stops storing in
    STMT_VINFO_VECTYPE the vectype of the current stmt being vectorized and
instead
    requires the use of SLP_TREE_VECTYPE for everything but data-refs.

    However contrary to what the commit says not all usages of
STMT_VINFO_VECTYPE
    have been purged from vectorizable_* as the costing hooks which don't pass
the
    SLP tree as an agrument will extract vectype using STMT_VINFO_VECTYPE.

    This results in no vector type being passed to the backends and results in
a few
    costing test failures in AArch64.

    This commit replaces the last few cases I could find, all except for in
    vectorizable_reduction when single_defuse_cycle where the stmt being costed
is
    not the representative of the PHI in the SLP tree but rather the out of
tree
    reduction statement.  So I've left that alone, but it does mean vectype is
NULL.

    Most likely this needs to use the overload where we pass an explicit
vectype but
    I wasn't sure so left it for now.

    gcc/ChangeLog:

            PR target/121536
            * tree-vect-loop.cc (vectorizable_phi, vectorizable_recurr,
            vectorizable_nonlinear_induction, vectorizable_induction): Pass
slp_node
            instead of stmt_info to record_stmt_cost.

Reply via email to