]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
simplify-rtx.c (simplify_gen_relational): Simplify the RTX (cond (compare x y) 0...
authorRoger Sayle <roger@eyesopen.com>
Sat, 25 May 2002 16:09:20 +0000 (16:09 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sat, 25 May 2002 16:09:20 +0000 (16:09 +0000)
* simplify-rtx.c (simplify_gen_relational): Simplify the RTX
(cond (compare x y) 0) into the equivalent (cond x y).

From-SVN: r53870

gcc/ChangeLog
gcc/simplify-rtx.c

index 86d94094bcd53600b2a47402ffc495836f68498e..8c83eb61cc250a4ba45fa9931dd1844ddd43c4e3 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-25  Roger Sayle  <roger@eyesopen.com>
+
+       * simplify-rtx.c (simplify_gen_relational): Simplify the RTX
+       (cond (compare x y) 0) into the equivalent (cond x y).
+
 2002-05-25  Gabriel Dos Reis  <gdr@codesourcery.com>
 
        * toplev.c (output_clean_symbol_name): Use xstrdup.  Fix thinko.
index 36bcc1a22dc158fd65c256a3994f5aaf38ba550f..6ec33a3935be05754036ccf08c6beb6108b4ec3c 100644 (file)
@@ -232,6 +232,10 @@ simplify_gen_relational (code, mode, cmp_mode, op0, op1)
   if ((tem = simplify_relational_operation (code, cmp_mode, op0, op1)) != 0)
     return tem;
 
+  /* If op0 is a compare, extract the comparison arguments from it.  */
+  if (GET_CODE (op0) == COMPARE && op1 == const0_rtx)
+    op1 = XEXP (op0, 1), op0 = XEXP (op0, 0);
+
   /* Put complex operands first and constants second.  */
   if (swap_commutative_operands_p (op0, op1))
     tem = op0, op0 = op1, op1 = tem, code = swap_condition (code);