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

--- Comment #3 from CVS 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:beab5b95c581452adeb26efd59ae84a61fb3b429

commit r14-4745-gbeab5b95c581452adeb26efd59ae84a61fb3b429
Author: Richard Biener <rguent...@suse.de>
Date:   Thu Oct 19 10:33:01 2023 +0200

    tree-optimization/111131 - SLP for non-IFN gathers

    The following implements SLP vectorization support for gathers
    without relying on IFNs being pattern detected (and supported by
    the target).  That includes support for emulated gathers but also
    the legacy x86 builtin path.

            PR tree-optimization/111131
            * tree-vect-loop.cc (update_epilogue_loop_vinfo): Make
            sure to update all gather/scatter stmt DRs, not only those
            that eventually got VMAT_GATHER_SCATTER set.
            * tree-vect-slp.cc (_slp_oprnd_info::first_gs_info): Add.
            (vect_get_and_check_slp_defs): Handle gathers/scatters,
            adding the offset as SLP operand and comparing base and scale.
            (vect_build_slp_tree_1): Handle gathers.
            (vect_build_slp_tree_2): Likewise.

            * gcc.dg/vect/vect-gather-1.c: Now expected to vectorize
            everywhere.
            * gcc.dg/vect/vect-gather-2.c: Expected to not SLP anywhere.
            Massage the scale case to more reliably produce a different
            one.  Scan for the specific messages.
            * gcc.dg/vect/vect-gather-3.c: Masked gather is also supported
            for AVX2, but not emulated.
            * gcc.dg/vect/vect-gather-4.c: Expected to not SLP anywhere.
            Massage to more properly ensure this.
            * gcc.dg/vect/tsvc/vect-tsvc-s353.c: Expect to vectorize
            everywhere.

Reply via email to