summaryrefslogtreecommitdiff
path: root/gcc/loop.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/loop.c')
-rw-r--r--gcc/loop.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 51ca938c736..ce522a03bfc 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -6904,9 +6904,12 @@ emit_iv_add_mult (b, m, a, reg, insert_before)
record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
}
}
- else if (GET_CODE (seq) == SET
- && GET_CODE (SET_DEST (seq)) == REG)
- record_base_value (REGNO (SET_DEST (seq)), SET_SRC (seq), 0);
+ else
+ {
+ rtx set = single_set (seq);
+ if (set && GET_CODE (SET_DEST (set)) == REG)
+ record_base_value (REGNO (SET_DEST (set)), SET_SRC (set), 0);
+ }
}
/* Similar to emit_iv_add_mult, but compute cost rather than emitting