(simplify_shift_const):
authorRichard Stallman <rms@gnu.org>
Sat, 31 Oct 1992 21:16:47 +0000 (21:16 +0000)
committerRichard Stallman <rms@gnu.org>
Sat, 31 Oct 1992 21:16:47 +0000 (21:16 +0000)
For a subreg, require subreg_lowpart_p and not paradoxical.

From-SVN: r2664

gcc/combine.c

index 51835084b9ab62f35347482bded4eba46d005b01..3f90edb926d6bc0706ab4754b8b27f1e8e578bc7 100644 (file)
@@ -6792,7 +6792,9 @@ simplify_shift_const (x, code, result_mode, varop, count)
          /* If VAROP is a SUBREG, strip it as long as the inner operand has
             the same number of words as what we've seen so far.  Then store
             the widest mode in MODE.  */
-         if (SUBREG_WORD (varop) == 0
+         if (subreg_lowpart_p (varop)
+             && (GET_MODE_SIZE (GET_MODE (SUBREG_REG (varop)))
+                 > GET_MODE_SIZE (GET_MODE (varop)))
              && (((GET_MODE_SIZE (GET_MODE (SUBREG_REG (varop)))
                    + (UNITS_PER_WORD - 1)) / UNITS_PER_WORD)
                  == mode_words))