* combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Dec 1999 09:42:57 +0000 (09:42 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Dec 1999 09:42:57 +0000 (09:42 +0000)
        to (OP A B).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30970 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index acce2bf..35343e3 100644 (file)
@@ -1,3 +1,8 @@
+Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
+
+       * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
+       to (OP A B).
+
 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
 
        * h8300.md (HImode preinc peephole): Fix typo.
index 5dc4fc8..3599168 100644 (file)
@@ -10320,6 +10320,14 @@ simplify_comparison (code, pop0, pop1)
          break;
 
        case MINUS:
+         /* (op (minus A B) 0) -> (op A B) */
+         if (op1 == const0_rtx)
+           {
+             op1 = XEXP (op0, 1);
+             op0 = XEXP (op0, 0);
+             continue;
+           }
+
          /* (eq (minus A B) C) -> (eq A (plus B C)) or
             (eq B (minus A C)), whichever simplifies.  We can only do
             this for equality comparisons due to pathological cases involving