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

--- Comment #7 from CVS 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:5e606ed90a1bed878071b6b5a3ef9b97b3d99838

commit r11-7049-g5e606ed90a1bed878071b6b5a3ef9b97b3d99838
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Wed Feb 3 08:06:11 2021 +0000

    slp: Split out patterns away from using SLP_ONLY into their own flag

    Previously the SLP pattern matcher was using STMT_VINFO_SLP_VECT_ONLY as a
way
    to dissolve the SLP only patterns during SLP cancellation.  However it
seems
    like the semantics for STMT_VINFO_SLP_VECT_ONLY are slightly different than
what
    I expected.

    Namely that the non-SLP path can still use a statement marked
    STMT_VINFO_SLP_VECT_ONLY.  One such example is masked loads which are used
both
    in the SLP and non-SLP path.

    To fix this I now introduce a new flag STMT_VINFO_SLP_VECT_ONLY_PATTERN
which is
    used only by the pattern matcher.

    gcc/ChangeLog:

            PR tree-optimization/98928
            * tree-vect-loop.c (vect_analyze_loop_2): Change
            STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
            * tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
            * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
            (class _stmt_vec_info): Add slp_vect_pattern_only_p.

    gcc/testsuite/ChangeLog:

            PR tree-optimization/98928
            * gcc.target/i386/pr98928.c: New test.

Reply via email to