match.pd: Refine type conversion in result expr for below pattern: (cond (cmp (convert1?
authorBin Cheng <bin.cheng@arm.com>
Thu, 24 Nov 2016 12:09:19 +0000 (12:09 +0000)
committerBin Cheng <amker@gcc.gnu.org>
Thu, 24 Nov 2016 12:09:19 +0000 (12:09 +0000)
* match.pd: Refine type conversion in result expr for below pattern:
(cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).

From-SVN: r242831

gcc/ChangeLog
gcc/match.pd

index 61f35aee1e0c595d74ecf02087c603d2e571f700..7a22234ed9234453e11454e58198dac752110d98 100644 (file)
@@ -1,3 +1,8 @@
+2016-11-24  Bin Cheng  <bin.cheng@arm.com>
+
+       * match.pd: Refine type conversion in result expr for below pattern:
+       (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
+
 2016-11-24  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR middle-end/78429
index e3f85140e1ec13f496e20dfed421199e12181bc1..3aa27fae7460a89eff5130749de6e1d4a4ed4e8e 100644 (file)
@@ -2022,11 +2022,12 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
        }
    }
    (if (code == MAX_EXPR)
-    (convert (max @1 (convert:from_type @2)))
+    (convert (max @1 (convert @2)))
     (if (code == MIN_EXPR)
-     (convert (min @1 (convert:from_type @2)))
+     (convert (min @1 (convert @2)))
      (if (code == EQ_EXPR)
-      (cond (cmp @1 (convert:from_type @3)) (convert:from_type @3) @2)))))))
+      (convert (cond (cmp @1 (convert @3))
+                    (convert:from_type @3) (convert:from_type @2)))))))))
 
 (for cnd (cond vec_cond)
  /* A ? B : (A ? X : C) -> A ? B : C.  */