* loop.c (basic_induction_var): A non-integer variable which is
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Oct 1999 05:56:15 +0000 (05:56 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Oct 1999 05:56:15 +0000 (05:56 +0000)
        being set by a paradoxical subreg is probably not a biv.

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

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