aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-01-07 14:40:09 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-01-07 13:40:09 +0000
commit1f36a2ddaac4e1f25258c5c6bbd08f6341549d60 (patch)
tree32465aa9478284ae595a93d764dc43faec17562c
parent69bc0a1faf3b86e36ab1316d43ddfbee144b8d49 (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/simplify-rtx.c8
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;