------- Comment #5 from rguenth at gcc dot gnu dot org 2010-06-21 11:38 ------- It is folding from the frontend that changes
if (y >= 0x80000000) to if ((int) y < 0) (see code == LT instead of code == GEU) But the main issue is that y = -y to abs is bogus (but we can't easily tell that as on RTL operands do not have a signedness). -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |wrong-code Last reconfirmed|0000-00-00 00:00:00 |2010-06-21 11:38:28 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44608