revert: match.pd: Add flag_unsafe_math_optimizations check before deciding on the...
authorRichard Biener <rguenther@suse.de>
Wed, 11 Sep 2019 08:22:51 +0000 (08:22 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 11 Sep 2019 08:22:51 +0000 (08:22 +0000)
2019-09-11  Richard Biener  <rguenther@suse.de>

Revert
2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>

* match.pd: Add flag_unsafe_math_optimizations check
before deciding on the widest type in a binary math operation.

* gcc.dg/fold-binary-math-casts.c: New test.

From-SVN: r275632

gcc/ChangeLog
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fold-binary-math-casts.c [deleted file]

index a0badf5ac9669b3fec2af9b7d6ea44ccf73f1c17..0aa93bceb4b887d69fa00c35f17dd375ff6f2b06 100644 (file)
@@ -1,3 +1,11 @@
+2019-09-11  Richard Biener  <rguenther@suse.de>
+
+       Revert
+       2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
+
+       * match.pd: Add flag_unsafe_math_optimizations check
+       before deciding on the widest type in a binary math operation.
+
 2019-09-10  Richard Sandiford  <richard.sandiford@arm.com>
 
        * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS
index 309a094071b81fccf396c1cca43bfff9a09b62ec..05009bb7a5ac8ded105fadb9e517b2a704d950a0 100644 (file)
@@ -5056,18 +5056,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
              && newtype == type
              && types_match (newtype, type))
            (op (convert:newtype @1) (convert:newtype @2))
-           (with
-             {
-               if (!flag_unsafe_math_optimizations)
-                 {
-                   if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
+           (with { if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
                      newtype = ty1;
-
                    if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
-                     newtype = ty2;
-                 }
-             }
-
+                     newtype = ty2; }
               /* Sometimes this transformation is safe (cannot
                  change results through affecting double rounding
                  cases) and sometimes it is not.  If NEWTYPE is
index bbb5d9520fb38f183dc8438df8970b6f8ba7a034..8b3dfbbecf00bc74aaa7910c9e5f9ed04e19031b 100644 (file)
@@ -1,3 +1,10 @@
+2019-09-11  Richard Biener  <rguenther@suse.de>
+
+       Revert
+       2019-09-09  Barnaby Wilks  <barnaby.wilks@arm.com>
+
+       * gcc.dg/fold-binary-math-casts.c: New test.
+
 2019-09-10  Marek Polacek  <polacek@redhat.com>
 
        PR c++/91673 - ICE with noexcept in alias-declaration.
diff --git a/gcc/testsuite/gcc.dg/fold-binary-math-casts.c b/gcc/testsuite/gcc.dg/fold-binary-math-casts.c
deleted file mode 100644 (file)
index 53c247f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-Ofast -fdump-tree-optimized" } */
-
-#include <math.h>
-
-float
-f (float x, float y)
-{
-  double z = 1.0 / x;
-  return z * y;
-}
-
-float
-g (float x, float y)
-{
-  double a = 1.0 / x;
-  double b = 1.0 / y;
-  long double k = x*x*x*x*x*x;
-
-  return a + b - k;
-}
-
-float
-h (float x)
-{
-  double a = x * 2.0;
-  double b = a / 3.5f;
-  return a + b;
-}
-
-float
-i (float y, float z)
-{
-  return pow (y, 2.0) / (double) (y + z);
-}
-
-float
-j (float x, float y)
-{
-  double t = 4.0 * x;
-  double z = t + y;
-  return z;
-}
-
-float
-k (float a)
-{
-  return 1.0 / sqrtf (a);
-}
-
-float
-l (float a)
-{
-  return (double) a * (a / 2.0);
-}
-
-/* { dg-final { scan-tree-dump-not "\\(double\\)" "optimized" } } */
-/* { dg-final { scan-tree-dump-not "\\(float\\)" "optimized" } } */