aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1997-05-18 12:39:57 +0000
committerRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1997-05-18 12:39:57 +0000
commitacb299a41423e53cf1ef154b7824e77e21e6619d (patch)
treea56f12fa3f6d73aaee5dcaf590d3ac4bbe1c3a44
parenta54a5c443745b2874051d3973086137d438b1360 (diff)
(maybe_eliminate_biv_1): In (set (cc0) <biv>) case, swap compare
operands when mult_val < 0 in one additional place. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@14087 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/loop.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/loop.c b/gcc/loop.c
index 64c1245977a..1c2cbc24161 100644
--- a/gcc/loop.c
+++ b/gcc/loop.c
@@ -6343,9 +6343,10 @@ maybe_eliminate_biv_1 (x, insn, bl, eliminate_p, where)
emit_insn_before (gen_move_insn (tem, copy_rtx (v->add_val)),
where);
- if (validate_change (insn, &SET_SRC (PATTERN (insn)),
- gen_rtx (COMPARE, VOIDmode,
- v->new_reg, tem), 0))
+ /* Substitute the new register for its invariant value in
+ the compare expression. */
+ XEXP (new, (INTVAL (v->mult_val) < 0) ? 0 : 1) = tem;
+ if (validate_change (insn, &SET_SRC (PATTERN (insn)), new, 0))
return 1;
}
}