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

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

https://gcc.gnu.org/g:e62a820d686d1fa97a9eefdc65ca07d8f96ac9f4

commit r10-8006-ge62a820d686d1fa97a9eefdc65ca07d8f96ac9f4
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Tue Apr 28 08:04:29 2020 +0100

    vect: Fix COND_EXPRs involving variant booleans [PR94727]

    The previous patch for this PR handled separate comparisons.
    However, as arm targets show, the same fix is needed when
    handling comparisons embedded in a VEC_COND_EXPR.

    Here too, the problem is that vect_get_constant_vectors will
    calculate its own vector type, using truth_type_for on the
    STMT_VINFO_VECTYPE, and the vectoriable_* routines need to be
    consistent with that.

    2020-04-28  Richard Sandiford  <richard.sandif...@arm.com>

    gcc/
            PR tree-optimization/94727
            * tree-vect-stmts.c (vect_is_simple_cond): If both comparison
            operands are invariant booleans, use the mask type associated with
the
            STMT_VINFO_VECTYPE.  Use !slp_node instead of !vectype to exclude
SLP.
            (vectorizable_condition): Pass vectype unconditionally to
            vect_is_simple_cond.

Reply via email to