--- Comment #7 from pinskia at gcc dot gnu dot org 2008-09-14 03:47 ---
Fixed for 4.4.0 by IRA. There is one less movq, though the other movq is below
the mulq.
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
---
--- Comment #6 from scovich at gmail dot com 2007-07-26 22:51 ---
I've observed several more pieces of code where this bug comes up, and it
always seems to be a case of (a) the compiler duplicating a register to
preserve the value after a 2-operand insn can clobbers the original, then (b
--- Comment #5 from ubizjak at gmail dot com 2007-07-12 07:05 ---
(In reply to comment #3)
> regmove should have changed that but it does not probably because the final
> constraint does not have a duplicate operand. Actually, I think you want to
> look at anddi_1_rex64, not adddi_1_re
--- Comment #4 from rask at sygehus dot dk 2007-07-11 20:45 ---
In reply to comment #2:
Reload is unable to use a register with a REG_DEAD note for an output reload.
Look at the functions find_reload_regs(), order_regs_for_reload() and
find_reg() and pay attention to how they use chain->
--- Comment #3 from bonzini at gnu dot org 2007-07-11 19:49 ---
First, I'm not a reload expert. :-) But it does not look like a reload bug (or
at least it is easily worked around in the machine description, methinks).
regmove should have changed that but it does not probably because t
--- Comment #2 from ubizjak at gmail dot com 2007-07-11 19:12 ---
This is due to reload. It is trying to solve following pattern
(insn:HI 25 24 28 2 pr32725.c:14 (parallel [
(set (reg:DI 75)
(and:DI (reg:DI 71)
(reg:DI 74)))
(c