aboutsummaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2009-08-03 21:38:53 +0000
committerJanis Johnson <janis@gcc.gnu.org>2009-08-03 21:38:53 +0000
commit50cd60be11a52f6ee997d331f83c5b62ee59f448 (patch)
tree3a7a0f8a8cbeffcc21995e11ae23fb831f2f9e90 /gcc/simplify-rtx.c
parent1768a052038172cc56a7af8ad2e90982f3c84d13 (diff)
downloadgcc-50cd60be11a52f6ee997d331f83c5b62ee59f448.zip
gcc-50cd60be11a52f6ee997d331f83c5b62ee59f448.tar.gz
gcc-50cd60be11a52f6ee997d331f83c5b62ee59f448.tar.bz2
re PR c/39902 (x * 1.0DF gets wrong value)
PR c/39902 * simplify-rtx.c (simplify_binary_operation_1): Disable simplifications for decimal float operations. PR c/39902 * gcc.target/powerpc/pr39902-2.c: New test. From-SVN: r150383
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r--gcc/simplify-rtx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index ff69068..e3809a8 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -1997,6 +1997,7 @@ simplify_binary_operation_1 (enum rtx_code code, enum machine_mode mode,
/* x*2 is x+x and x*(-1) is -x */
if (GET_CODE (trueop1) == CONST_DOUBLE
&& SCALAR_FLOAT_MODE_P (GET_MODE (trueop1))
+ && !DECIMAL_FLOAT_MODE_P (GET_MODE (trueop1))
&& GET_MODE (op0) == mode)
{
REAL_VALUE_TYPE d;