aboutsummaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-12-26 19:31:49 -0800
committerRichard Henderson <rth@gcc.gnu.org>2004-12-26 19:31:49 -0800
commit551a3297bb7f0468b5ec488641313286ea3e703f (patch)
treeb5d173602e1a933bd93e68b8dd08cf5c3d5c9ec9 /gcc/simplify-rtx.c
parent73096ba97f7b04b4ad454b2ad8a5307b578846b5 (diff)
downloadgcc-551a3297bb7f0468b5ec488641313286ea3e703f.zip
gcc-551a3297bb7f0468b5ec488641313286ea3e703f.tar.gz
gcc-551a3297bb7f0468b5ec488641313286ea3e703f.tar.bz2
simplify-rtx.c (simplify_relational_operation_1): Don't simplify plus/minus across EQ for floating-point.
* simplify-rtx.c (simplify_relational_operation_1): Don't simplify plus/minus across EQ for floating-point. From-SVN: r92631
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r--gcc/simplify-rtx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 8d7cb3f..34b0ab8 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -2807,7 +2807,8 @@ simplify_relational_operation_1 (enum rtx_code code, enum machine_mode mode,
if ((code == EQ || code == NE)
&& (op0code == PLUS || op0code == MINUS)
&& CONSTANT_P (op1)
- && CONSTANT_P (XEXP (op0, 1)))
+ && CONSTANT_P (XEXP (op0, 1))
+ && (INTEGRAL_MODE_P (cmp_mode) || flag_unsafe_math_optimizations))
{
rtx x = XEXP (op0, 0);
rtx c = XEXP (op0, 1);