]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math)
authorRichard Biener <rguenther@suse.de>
Thu, 28 Apr 2016 07:55:33 +0000 (07:55 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 28 Apr 2016 07:55:33 +0000 (07:55 +0000)
2016-04-28  Richard Biener  <rguenther@suse.de>

PR middle-end/70777
* fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
canonicalization.

From-SVN: r235545

gcc/ChangeLog
gcc/fold-const.c

index 4f30dd3587f4bf243bfd476ccf18d1d49548641b..face26bdced7dd4521dadec0f04ae3dad672dd98 100644 (file)
@@ -1,3 +1,9 @@
+2016-04-28  Richard Biener  <rguenther@suse.de>
+
+       PR middle-end/70777
+       * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
+       canonicalization.
+
 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
 
        * common/config/sh/sh-common.c: Remove SH5 support.
index 7fc23c6c3d52e17d4ed99fb1612eb65ebbc6af8c..96d8484c1eb7e46e0d7d9e875dd714396a1954fc 100644 (file)
@@ -10033,24 +10033,6 @@ fold_binary_loc (location_t loc,
              && TREE_CODE (arg1) == CONJ_EXPR
              && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0))
            return fold_mult_zconjz (loc, type, arg0);
-
-         if (flag_unsafe_math_optimizations)
-           {
-
-             /* Canonicalize x*x as pow(x,2.0), which is expanded as x*x.  */
-             if (!in_gimple_form
-                 && optimize
-                 && operand_equal_p (arg0, arg1, 0))
-               {
-                 tree powfn = mathfn_built_in (type, BUILT_IN_POW);
-
-                 if (powfn)
-                   {
-                     tree arg = build_real (type, dconst2);
-                     return build_call_expr_loc (loc, powfn, 2, arg0, arg);
-                   }
-               }
-           }
        }
       goto associate;