loop.c (basic_induction_var): A non-integer variable which is being set by a paradoxi...
authorGeoff Keating <geoffk@cygnus.com>
Tue, 26 Oct 1999 05:56:15 +0000 (05:56 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 26 Oct 1999 05:56:15 +0000 (23:56 -0600)
        * loop.c (basic_induction_var): A non-integer variable which is
        being set by a paradoxical subreg is probably not a biv.

From-SVN: r30181

gcc/ChangeLog
gcc/loop.c

index c7251d8..a9763a1 100644 (file)
@@ -1,3 +1,8 @@
+Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
+
+       * loop.c (basic_induction_var): A non-integer variable which is
+       being set by a paradoxical subreg is probably not a biv.
+
 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
        * prefix.c (translate_name) Check for empty prefix string.
index 5ef10bd..2b2a837 100644 (file)
@@ -6118,6 +6118,8 @@ basic_induction_var (x, mode, dest_reg, p, inc_val, mult_val, location)
               || (GET_CODE (SET_DEST (set)) == SUBREG
                   && (GET_MODE_SIZE (GET_MODE (SET_DEST (set)))
                       <= UNITS_PER_WORD)
+                  && (GET_MODE_CLASS (GET_MODE (SET_DEST (set)))
+                      == MODE_INT)
                   && SUBREG_REG (SET_DEST (set)) == x))
              && basic_induction_var (SET_SRC (set),
                                      (GET_MODE (SET_SRC (set)) == VOIDmode