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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Richard Sandiford <rsand...@gcc.gnu.org>:

https://gcc.gnu.org/g:740a3be7df29b280f39a04c441fd4917af4eef5e

commit r13-5739-g740a3be7df29b280f39a04c441fd4917af4eef5e
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Wed Feb 8 13:40:29 2023 +0000

    vect: Check gather/scatter offset types [PR108316]

    The gather/scatter support can over-widen an offset if the target
    requires it, but this relies on using a pattern sequence to add
    the widening conversion.  That failed in the testcase because an
    earlier pattern (bool) took priority.

    I think we should allow patterns to be applied to other patterns,
    but that's quite an invasive change and isn't suitable for stage 4.
    This patch instead punts if the offset type doesn't match the
    expected one.

    If we switched to using the SLP representation for everything,
    we would probably handle both patterns by rewriting the graph,
    which should be much easier.

    gcc/
            PR tree-optimization/108316
            * tree-vect-stmts.cc (get_load_store_type): When using
            internal functions for gather/scatter, make sure that the type
            of the offset argument is consistent with the offset vector type.

    gcc/testsuite/
            PR tree-optimization/108316
            * gcc.dg/vect/pr108316.c: New test.

Reply via email to