From 32ee391b8317246560f346617f92a876bd376e30 Mon Sep 17 00:00:00 2001
From: Richard Henderson <rth@redhat.com>
Date: Tue, 31 Oct 2000 17:52:52 -0800
Subject: [PATCH] i386.c (fcmov_comparison_operator): Check for CCFPmode or
 CCFPUmode instead of CCmode.

        * config/i386/i386.c (fcmov_comparison_operator): Check for
        CCFPmode or CCFPUmode instead of CCmode.
        (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
        unordered operations as well.

From-SVN: r37179
---
 gcc/ChangeLog          | 7 +++++++
 gcc/config/i386/i386.c | 8 +++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 25004ba22753..750c1c2a2ba1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-31  Richard Henderson  <rth@redhat.com>
+
+	* config/i386/i386.c (fcmov_comparison_operator): Check for
+	CCFPmode or CCFPUmode instead of CCmode.
+	(ix86_expand_fp_movcc): Call ix86_expand_setcc for most
+	unordered operations as well.
+
 2000-10-31  Richard Henderson  <rth@redhat.com>
 
 	* c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index b27edaaf8119..396df6eb7954 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1339,7 +1339,7 @@ fcmov_comparison_operator (op, mode)
     case EQ: case NE:
       return 1;
     case LTU: case GTU: case LEU: case ORDERED: case UNORDERED: case GEU:
-      if (inmode == CCmode)
+      if (inmode == CCFPmode || inmode == CCFPUmode)
 	return 1;
       return 0;
     default:
@@ -5600,6 +5600,12 @@ ix86_expand_fp_movcc (operands)
     case LE:
     case GE:
     case GT:
+    case UNEQ:
+    case UNGE:
+    case UNGT:
+    case UNLE:
+    case UNLT:
+    case LTGT:
       tmp = gen_reg_rtx (QImode);
       ix86_expand_setcc (code, tmp);
       code = NE;
-- 
GitLab