aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-04-23 07:17:07 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-04-23 07:17:07 -0400
commit21648b45ae5e0996b1054e8066cfb44afdf6b7d5 (patch)
treeed96b9e6798e861777a9a6ad19fddd0685a3999d /gcc
parent6e3f07241c343ba0d1c2023af0be57704d93a5be (diff)
downloadgcc-21648b45ae5e0996b1054e8066cfb44afdf6b7d5.zip
gcc-21648b45ae5e0996b1054e8066cfb44afdf6b7d5.tar.gz
gcc-21648b45ae5e0996b1054e8066cfb44afdf6b7d5.tar.bz2
*** empty log message ***
From-SVN: r823
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cse.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 7c3057b..e456a93 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3270,11 +3270,15 @@ simplify_binary_operation (code, mode, op0, op1)
break;
case MINUS:
- /* In IEEE floating point, x-0 is not the same as x. */
+ /* None of these optimizations can be done for IEEE
+ floating point. */
+ if (TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT
+ && GET_MODE_CLASS (mode) != MODE_INT)
+ break;
+
+ /* We can't assume x-x is 0 even with non-IEEE floating point. */
if (rtx_equal_p (op0, op1)
&& ! side_effects_p (op0)
- /* We can't assume x-x is 0
- even with non-IEEE floating point. */
&& GET_MODE_CLASS (mode) != MODE_FLOAT)
return const0_rtx;
@@ -3282,12 +3286,6 @@ simplify_binary_operation (code, mode, op0, op1)
if (op0 == CONST0_RTX (mode))
return gen_rtx (NEG, mode, op1);
- /* The remainer of these cases cannot be done for IEEE
- floating-point. */
- if (TARGET_FLOAT_FORMAT == IEEE_FLOAT_FORMAT
- && GET_MODE_CLASS (mode) != MODE_INT)
- break;
-
/* Subtracting 0 has no effect. */
if (op1 == CONST0_RTX (mode))
return op0;