From a92123e9663dc9b205a282d35c59a9100835de84 Mon Sep 17 00:00:00 2001
From: rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 28 Mar 2002 18:52:43 +0000
Subject: [PATCH]         * config/alpha/alpha.c
 (alpha_emit_conditional_branch): TFmode NE         comparison should be done
 vs !=0 not >0 return code.  Tidy cases.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51519 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog            |  5 +++++
 gcc/config/alpha/alpha.c | 30 +++++++++++++++++++-----------
 2 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 288f5107940c..b1094d701e8c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-28  Richard Henderson  <rth@redhat.com>
+
+	* config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
+	comparison should be done vs !=0 not >0 return code.  Tidy cases.
+
 2002-03-28  Richard Henderson  <rth@redhat.com>
 
 	* c-decl.c (finish_function): New arg can_defer_p.  Pass it
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 6893677a2066..73baa891e7e4 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -2812,21 +2812,29 @@ alpha_emit_conditional_branch (code)
 	    1  true
 	 Convert the compare against the raw return value.  */
 
-      if (code == UNORDERED || code == ORDERED)
-	cmp_code = EQ;
-      else
-	cmp_code = code;
+      switch (code)
+	{
+	case UNORDERED:
+	  cmp_code = EQ;
+	  code = LT;
+	  break;
+	case ORDERED:
+	  cmp_code = EQ;
+	  code = GE;
+	  break;
+	case NE:
+	  cmp_code = NE;
+	  code = NE;
+	  break;
+	default:
+	  cmp_code = code;
+  code = GT;
+	  break;
+	}
 
       op0 = alpha_emit_xfloating_compare (cmp_code, op0, op1);
       op1 = const0_rtx;
       alpha_compare.fp_p = 0;
-
-      if (code == UNORDERED)
-	code = LT;
-      else if (code == ORDERED)
-	code = GE;
-      else
-        code = GT;
     }
 
   /* The general case: fold the comparison code to the types of compares
-- 
GitLab