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

--- Comment #36 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by hongtao Liu <liuho...@gcc.gnu.org>:

https://gcc.gnu.org/g:7e204bd2f189850cb940677c99d8d93eb7dd40cd

commit r12-7216-g7e204bd2f189850cb940677c99d8d93eb7dd40cd
Author: liuhongt <hongtao....@intel.com>
Date:   Mon Jan 24 11:05:47 2022 +0800

    Add vect_recog_cond_expr_convert_pattern.

    The pattern converts (cond (cmp a b) (convert c) (convert d))
    to (convert (cond (cmp a b) c d)) when
    1) types_match (c, d)
    2) single_use for (convert c) and (convert d)
    3) TYPE_PRECISION (TREE_TYPE (c)) == TYPE_PRECISION (TREE_TYPE (a))
    4) INTEGERAL_TYPE_P (TREE_TYPE (c))

    The pattern can save packing of mask and data(partial for data, 2 vs
    1).

    gcc/ChangeLog:

            PR target/103771
            * match.pd (cond_expr_convert_p): New match.
            * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
            (vect_recog_cond_expr_convert_pattern): New.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr103771-2.c: New test.
            * gcc.target/i386/pr103771-3.c: New test.

Reply via email to