alpha.c (alpha_emit_conditional_branch): TFmode NE comparison should be done vs ...
authorRichard Henderson <rth@redhat.com>
Thu, 28 Mar 2002 18:52:43 +0000 (10:52 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 28 Mar 2002 18:52:43 +0000 (10:52 -0800)
        * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
        comparison should be done vs !=0 not >0 return code.  Tidy cases.

From-SVN: r51519

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 288f5107940cbc829771853f393fe9fc8f74dd4e..b1094d701e8caf04cb9464f9de4b262684525466 100644 (file)
@@ -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
index 6893677a2066f392fa1730ece86bc4287c268129..73baa891e7e477c24be8bba684118323dd165c97 100644 (file)
@@ -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