diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1995-02-25 06:55:11 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1995-02-25 06:55:11 -0500 |
commit | a9c6464d87cc4ddcd1adff1d030caf91ad974753 (patch) | |
tree | c687e075676a041a280cd1a81add9bedecab55e5 /gcc | |
parent | 7a96832ab0f1a65a968c8dd8766eb359f5a4c80e (diff) | |
download | gcc-a9c6464d87cc4ddcd1adff1d030caf91ad974753.zip gcc-a9c6464d87cc4ddcd1adff1d030caf91ad974753.tar.gz gcc-a9c6464d87cc4ddcd1adff1d030caf91ad974753.tar.bz2 |
(simplify_unary_operation): If operand mode is VOIDmode for
UNSIGNED_FLOAT and operand looks negative, can't simplify.
From-SVN: r9081
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cse.c | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -2972,7 +2972,14 @@ simplify_unary_operation (code, mode, op, op_mode) else lv = CONST_DOUBLE_LOW (op), hv = CONST_DOUBLE_HIGH (op); - if (GET_MODE_BITSIZE (op_mode) >= HOST_BITS_PER_WIDE_INT * 2) + if (op_mode == VOIDmode) + { + /* We don't know how to interpret negative-looking numbers in + this case, so don't try to fold those. */ + if (hv < 0) + return 0; + } + else if (GET_MODE_BITSIZE (op_mode) >= HOST_BITS_PER_WIDE_INT * 2) ; else hv = 0, lv &= GET_MODE_MASK (op_mode); |