re PR middle-end/57073 (__builtin_powif (-1.0, k) should be optimized to "1.0 - 2...
authorTobias Burnus <burnus@net-b.de>
Fri, 31 May 2013 10:18:40 +0000 (12:18 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 31 May 2013 10:18:40 +0000 (12:18 +0200)
2013-05-31  Tobias Burnus  <burnus@net-b.de>

        PR middle-end/57073
        * tree-ssa-math-opts.c (execute_cse_sincos): Move check
        further up.

From-SVN: r199529

gcc/ChangeLog
gcc/tree-ssa-math-opts.c

index ff9f38c467212f1cc5de91a0a9d7155b827cfa5d..b0a5ad11e344689c94815030e1fec80b104f90ae 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-31  Tobias Burnus  <burnus@net-b.de>
+
+       PR middle-end/57073
+       * tree-ssa-math-opts.c (execute_cse_sincos): Move check
+       further up.
+
 2013-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        PR target/56315
index a15c404286790c355e041bf7f47f7eee44da6ed3..b4de411b39d1d93c0bdbdb514fd2249c62276b67 100644 (file)
@@ -1447,9 +1447,10 @@ execute_cse_sincos (void)
                  arg1 = gimple_call_arg (stmt, 1);
                  loc = gimple_location (stmt);
 
-                 if (real_minus_onep (arg0)
-                     && TREE_CODE (TREE_TYPE (arg1)) == INTEGER_TYPE
-                     && !host_integerp (arg1,0))
+                 if (!host_integerp (arg1, 0))
+                   break;
+
+                 if (real_minus_onep (arg0))
                    {
                       tree t0, t1, cond, one, minus_one;
                      gimple stmt;
@@ -1476,9 +1477,6 @@ execute_cse_sincos (void)
                    }
                  else
                    {
-                     if (!host_integerp (arg1, 0))
-                       break;
-
                      n = TREE_INT_CST_LOW (arg1);
                      result = gimple_expand_builtin_powi (&gsi, loc, arg0, n);
                    }