diff options
author | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-03 06:44:35 +0000 |
---|---|---|
committer | sayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-02-03 06:44:35 +0000 |
commit | 09fde96cf451f1da14f7a447b02cb872e86f71a4 (patch) | |
tree | fb250b8935df7ba966a9aeae4f38b4eca4fc2969 /gcc/real.h | |
parent | b4f9573e66383d8db22f382c6462668fcb725810 (diff) | |
download | gcc-09fde96cf451f1da14f7a447b02cb872e86f71a4.tar.gz |
PR middle-end/19405
* real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
* fold-const.c (const_binop): Avoid constant folding floating
point operations in modes that use composite representations.
* simplify-rtx.c (simplify_binary_operation): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94653 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/real.h')
-rw-r--r-- | gcc/real.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/real.h b/gcc/real.h index 13f072e96a8..5c4e9c605d8 100644 --- a/gcc/real.h +++ b/gcc/real.h @@ -157,6 +157,12 @@ extern const struct real_format * #define REAL_MODE_FORMAT(MODE) (real_format_for_mode[(MODE) - MIN_MODE_FLOAT]) +/* The following macro determines whether the floating point format is + composite, i.e. may contain non-consecutive mantissa bits, in which + case compile-time FP overflow may not model run-time overflow. */ +#define REAL_MODE_FORMAT_COMPOSITE_P(MODE) \ + ((REAL_MODE_FORMAT(MODE))->pnan < (REAL_MODE_FORMAT (MODE))->p) + /* Declare functions in real.c. */ /* Binary or unary arithmetic on tree_code. */ |