diff options
author | Jan Hubicka <jh@suse.cz> | 2001-01-07 14:40:09 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-01-07 13:40:09 +0000 |
commit | 1f36a2ddaac4e1f25258c5c6bbd08f6341549d60 (patch) | |
tree | 32465aa9478284ae595a93d764dc43faec17562c | |
parent | 69bc0a1faf3b86e36ab1316d43ddfbee144b8d49 (diff) | |
download | gcc-1f36a2ddaac4e1f25258c5c6bbd08f6341549d60.zip gcc-1f36a2ddaac4e1f25258c5c6bbd08f6341549d60.tar.gz gcc-1f36a2ddaac4e1f25258c5c6bbd08f6341549d60.tar.bz2 |
simplify-rtx.c (simplify_relational_operation): Always simplify ORDERED and UNORDERED when FLAG_FAST_MATH.
* simplify-rtx.c (simplify_relational_operation): Always simplify
ORDERED and UNORDERED when FLAG_FAST_MATH. Handle properly UNLE
and UNGE.
From-SVN: r38775
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c1141eb..14df383 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sun Jan 7 14:39:07 MET 2001 Jan Hubicka <jh@suse.cz> + + * simplify-rtx.c (simplify_relational_operation): Always simplify + ORDERED and UNORDERED when FLAG_FAST_MATH. Handle properly UNLE + and UNGE. + Sun Jan 7 14:35:13 MET 2001 Jan Hubicka <jh@suse.cz> * combine.c (combine_simplify_rtx): Recognize the unordered compares. diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 13d693c..a3a1bfe 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -1762,6 +1762,12 @@ simplify_relational_operation (code, mode, op0, op1) return simplify_relational_operation (signed_condition (code), mode, tem, const0_rtx); + if (flag_fast_math && code == ORDERED) + return const_true_rtx; + + if (flag_fast_math && code == UNORDERED) + return const0_rtx; + /* For non-IEEE floating-point, if the two operands are equal, we know the result. */ if (rtx_equal_p (op0, op1) @@ -1953,8 +1959,10 @@ simplify_relational_operation (code, mode, op0, op1) case GTU: return op1ltu ? const_true_rtx : const0_rtx; case LE: + case UNLE: return equal || op0lt ? const_true_rtx : const0_rtx; case GE: + case UNGE: return equal || op1lt ? const_true_rtx : const0_rtx; case LEU: return equal || op0ltu ? const_true_rtx : const0_rtx; |