aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2013-05-31 12:18:40 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2013-05-31 12:18:40 +0200
commite3530904e76e650e0df59fed4319749388ac3494 (patch)
tree2f36f1f69e0b1048eb78977bea80dcfac7d886e5 /gcc
parent2bdf1c75e432bb2a20e9b6de02c015736b22aa44 (diff)
downloadgcc-e3530904e76e650e0df59fed4319749388ac3494.zip
gcc-e3530904e76e650e0df59fed4319749388ac3494.tar.gz
gcc-e3530904e76e650e0df59fed4319749388ac3494.tar.bz2
re PR middle-end/57073 (__builtin_powif (-1.0, k) should be optimized to "1.0 - 2.0 * (K%2)")
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-math-opts.c10
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ff9f38c..b0a5ad11 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index a15c404..b4de411 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -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);
}