re PR tree-optimization/70251 (Wrong code with -O3 -march=skylake-avx512.)
authorRichard Biener <rguenther@suse.de>
Wed, 23 Mar 2016 13:40:50 +0000 (13:40 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 23 Mar 2016 13:40:50 +0000 (13:40 +0000)
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.

From-SVN: r234427

gcc/ChangeLog
gcc/match.pd

index f9b2af2fa852ff0750722d1b0665c358621ef077..6538ff096f8cac16870b2e423e63968cfd3b36bd 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 388a489dcb86cd19dc68496051846bed670a79aa..c0ed305ed0e8df43f5401816abdb8a19ed6add10 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)))))