diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-06-29 19:21:43 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-06-29 19:21:43 -0400 |
commit | 725fc5a08d59d147b38a004367b79e724b9f4655 (patch) | |
tree | d43358e48f352e5986b0673405416b24837db243 /gcc/loop.c | |
parent | 85d159a36aaad5d45fbe9c1a491e6e6e3923d5cb (diff) | |
download | gcc-725fc5a08d59d147b38a004367b79e724b9f4655.zip gcc-725fc5a08d59d147b38a004367b79e724b9f4655.tar.gz gcc-725fc5a08d59d147b38a004367b79e724b9f4655.tar.bz2 |
(basic_induction_var, case REG): Allow previous insn to set a SUBREG
of X.
From-SVN: r7611
Diffstat (limited to 'gcc/loop.c')
-rw-r--r-- | gcc/loop.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -4834,7 +4834,12 @@ basic_induction_var (x, mode, dest_reg, p, inc_val, mult_val) if (insn) set = single_set (insn); - if (set != 0 && SET_DEST (set) == x) + if (set != 0 + && (SET_DEST (set) == x + || (GET_CODE (SET_DEST (set)) == SUBREG + && (GET_MODE_SIZE (GET_MODE (SET_DEST (set))) + <= UNITS_PER_WORD) + && SUBREG_REG (SET_DEST (set)) == x))) return basic_induction_var (SET_SRC (set), (GET_MODE (SET_SRC (set)) == VOIDmode ? GET_MODE (x) |