]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
authorBernd Schmidt <bernd.schmidt@analog.com>
Tue, 31 Mar 2009 15:22:13 +0000 (15:22 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Tue, 31 Mar 2009 15:22:13 +0000 (15:22 +0000)
* loop-iv.c (simple_rhs_p): Allow more kinds of expressions.

From-SVN: r145355

gcc/ChangeLog
gcc/loop-iv.c

index d060adfe63829a9ddc7003b877a9c7f8362f2e39..f5360a5073684b12bc12eeda3d2ab2f42103e314 100644 (file)
@@ -23,6 +23,8 @@
        changed.  Use this when trying to improve the upper bound.
        Generate the comparison by using simplify_gen_relational.
 
+       * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
+
 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
 
         PR target/27237
index 9b35b88821012d728155d982b2c81d8093450cfd..67d1ebd2cb2d7d1f3f14a364e82063b604e7c7c2 100644 (file)
@@ -1336,9 +1336,10 @@ simple_rhs_p (rtx rhs)
     {
     case PLUS:
     case MINUS:
+    case AND:
       op0 = XEXP (rhs, 0);
       op1 = XEXP (rhs, 1);
-      /* Allow reg + const and reg + reg.  */
+      /* Allow reg OP const and reg OP reg.  */
       if (!(REG_P (op0) && !HARD_REGISTER_P (op0))
          && !CONSTANT_P (op0))
        return false;
@@ -1349,9 +1350,12 @@ simple_rhs_p (rtx rhs)
       return true;
 
     case ASHIFT:
+    case ASHIFTRT:
+    case LSHIFTRT:
+    case MULT:
       op0 = XEXP (rhs, 0);
       op1 = XEXP (rhs, 1);
-      /* Allow reg << const.  */
+      /* Allow reg OP const.  */
       if (!(REG_P (op0) && !HARD_REGISTER_P (op0)))
        return false;
       if (!CONSTANT_P (op1))