From: rguenth Date: Wed, 23 Mar 2016 13:40:50 +0000 (+0000) Subject: 2016-03-23 Richard Biener X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1a86097c9f6ce32ab1ab7d17da2af5a8cfddf1a9;p=thirdparty%2Fgcc.git 2016-03-23 Richard Biener PR middle-end/70251 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust mode compatibility check. (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234427 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f9b2af2fa852..6538ff096f8c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-03-23 Richard Biener + + PR middle-end/70251 + * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust + mode compatibility check. + (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. + 2016-03-23 Jeff Law PR tree-optimization/64058 diff --git a/gcc/match.pd b/gcc/match.pd index 388a489dcb86..c0ed305ed0e8 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1759,18 +1759,18 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) (simplify (plus:c @3 (view_convert? (vec_cond:s @0 integer_each_onep@1 integer_zerop@2))) (if (VECTOR_TYPE_P (type) - && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@0)) + && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@1)) && (TYPE_MODE (TREE_TYPE (type)) - == TYPE_MODE (TREE_TYPE (TREE_TYPE (@0))))) + == TYPE_MODE (TREE_TYPE (TREE_TYPE (@1))))) (minus @3 (view_convert (vec_cond @0 (negate @1) @2))))) /* ... likewise A - (B vcmp C ? 1 : 0) -> A + (B vcmp C ? -1 : 0). */ (simplify (minus @3 (view_convert? (vec_cond:s @0 integer_each_onep@1 integer_zerop@2))) (if (VECTOR_TYPE_P (type) - && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@0)) + && TYPE_VECTOR_SUBPARTS (type) == TYPE_VECTOR_SUBPARTS (TREE_TYPE (@1)) && (TYPE_MODE (TREE_TYPE (type)) - == TYPE_MODE (TREE_TYPE (TREE_TYPE (@0))))) + == TYPE_MODE (TREE_TYPE (TREE_TYPE (@1))))) (plus @3 (view_convert (vec_cond @0 (negate @1) @2)))))