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.