*** empty log message ***
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Jun 1992 19:45:24 +0000 (19:45 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 27 Jun 1992 19:45:24 +0000 (19:45 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@1316 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index eeea4bc..922e6c6 100644 (file)
@@ -1483,6 +1483,7 @@ try_combine (i3, i2, i1)
          /* If I2DEST is a hard register or the only use of a pseudo,
             we can change its mode.  */
          if (GET_MODE (SET_DEST (newpat)) != GET_MODE (i2dest)
+             && GET_MODE (SET_DEST (newpat)) != VOIDmode
              && (REGNO (i2dest) < FIRST_PSEUDO_REGISTER
                  || (reg_n_sets[REGNO (i2dest)] == 1 && ! added_sets_2
                      && ! REG_USERVAR_P (i2dest))))
@@ -2952,6 +2953,18 @@ subst (x, from, to, in_dest, unique_copy)
             GET_MODE_BITSIZE (mode) - 1);
          goto restart;
        }
+
+      /* If we are adding two things that have no bits in common, convert
+        the addition into an IOR.  This will often be further simplified,
+        for example in cases like ((a & 1) + (a & 2)), which can
+        become a & 3.  */
+
+      if ((significant_bits (XEXP (x, 0), mode)
+          & significant_bits (XEXP (x, 1), mode)) == 0)
+       {
+         x = gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
+         goto restart;
+       }
       break;
 
     case MINUS:
@@ -2966,18 +2979,6 @@ subst (x, from, to, in_dest, unique_copy)
                                      - INTVAL (XEXP (XEXP (x, 1), 1)) - 1);
          goto restart;
        }
-
-      /* If we are adding two things that have no bits in common, convert
-        the addition into an IOR.  This will often be further simplified,
-        for example in cases like ((a & 1) + (a & 2)), which can
-        become a & 3.  */
-
-      if ((significant_bits (XEXP (x, 0), mode)
-          & significant_bits (XEXP (x, 1), mode)) == 0)
-       {
-         x = gen_binary (IOR, mode, XEXP (x, 0), XEXP (x, 1));
-         goto restart;
-       }
       break;
 
     case MULT: