2016-03-23 Richard Biener <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2016 13:40:50 +0000 (13:40 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 23 Mar 2016 13:40:50 +0000 (13:40 +0000)
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

gcc/ChangeLog
gcc/match.pd

index f9b2af2..6538ff0 100644 (file)
@@ -1,3 +1,10 @@
+2016-03-23  Richard Biener  <rguenther@suse.de>
+
+       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  <law@redhat.com>
 
        PR tree-optimization/64058
index 388a489..c0ed305 100644 (file)
@@ -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)))))