aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cse.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 03aa317..3edb9b2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2000-10-25 Richard Henderson <rth@redhat.com>
+ * cse.c (find_comparison_args): Check that we can reverse a
+ comparison if needed before accepting the substitution.
+
+2000-10-25 Richard Henderson <rth@redhat.com>
+
* reload.c (find_reloads_address_part): Kill rtx obstack hackery.
2000-10-25 Richard Henderson <rth@redhat.com>
diff --git a/gcc/cse.c b/gcc/cse.c
index ac9ae6b..17d35ce 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3234,6 +3234,12 @@ find_comparison_args (code, parg1, parg2, pmode1, pmode2)
if (x == 0)
break;
+ /* If we need to reverse the comparison, make sure that that is
+ possible -- we can't necessarily infer the value of GE from LT
+ with floating-point operands. */
+ if (reverse_code && ! can_reverse_comparison_p (x, NULL_RTX))
+ break;
+
arg1 = XEXP (x, 0), arg2 = XEXP (x, 1);
if (GET_RTX_CLASS (GET_CODE (x)) == '<')
code = GET_CODE (x);