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

--- Comment #40 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:754dce903ca28c4c2f2bc8614a8de5e631655f2e

commit r12-7276-g754dce903ca28c4c2f2bc8614a8de5e631655f2e
Author: liuhongt <hongtao....@intel.com>
Date:   Wed Feb 16 12:15:18 2022 +0800

    Restrict the two sources of vect_recog_cond_expr_convert_pattern to be of
the same type when convert is extension.

    It's not equal to transform

     (cond (cmp @1 @2) (convert@3 @4) (convert@5 @6))

     to

     (convert (cmp @1 @2) (convert)@4 @6)

    when(convert@3 @4) is extension because it's zero_extend vs sign_extend.

    gcc/ChangeLog:

            PR tree-optimization/104551
            PR tree-optimization/103771
            * match.pd (cond_expr_convert_p): Add types_match check when
            convert is extension.
            * tree-vect-patterns.cc
            (gimple_cond_expr_convert_p): Adjust comments.
            (vect_recog_cond_expr_convert_pattern): Ditto.

    gcc/testsuite/ChangeLog:

            * gcc.target/i386/pr104551.c: New test.

Reply via email to