[Bug rtl-optimization/54524] [4.6/4.7/4.8 Regression] Spurious add on sum of bitshifts (forward-propagate issue)
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Sep 19 01:39:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54524
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2012-09-19
Ever Confirmed|0 |1
Severity|major |normal
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-09-19 01:39:38 UTC ---
As far as I can tell, Richard's patch just exposed a latent bug as I was
looking into the dumps.
In insn 28, replacing
(ltu:SI (reg:SI 231 [+4 ])
(reg:SI 229 [+4 ]))
with (const_int 1 [0x1])
Changed insn 28
deferring rescan insn with uid = 28.
after cse:
(insn 27 43 28 2 (set (reg:SI 231 [+4 ])
(plus:SI (reg:SI 229 [+4 ])
(const_int 0 [0]))) t.c:24 10 {*addsi3}
(nil))
(insn 28 27 29 2 (set (reg:SI 212)
(ltu:SI (reg:SI 231 [+4 ])
(reg:SI 229 [+4 ]))) t.c:24 521 {*sltu_sisi}
(nil))
So this is a bug in CSE which is not simplifying that addsi3 into just a move
for some reason.
More information about the Gcc-bugs
mailing list