diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-04-23 07:17:07 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-04-23 07:17:07 -0400 |
commit | 21648b45ae5e0996b1054e8066cfb44afdf6b7d5 (patch) | |
tree | ed96b9e6798e861777a9a6ad19fddd0685a3999d /gcc | |
parent | 6e3f07241c343ba0d1c2023af0be57704d93a5be (diff) | |
download | gcc-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.c | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -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; |