------- Comment #16 from ebotcazou at gcc dot gnu dot org 2008-02-04 08:12 ------- > Index: combine.c > =================================================================== > --- combine.c (revision 132077) > +++ combine.c (working copy) > @@ -5393,9 +5393,10 @@ > /* Look for cases where we have (abs x) or (neg (abs X)). */ > > if (GET_MODE_CLASS (mode) == MODE_INT > + && comparison_p > + && XEXP (cond, 1) == CONST0_RTX (mode) > && GET_CODE (false_rtx) == NEG > && rtx_equal_p (true_rtx, XEXP (false_rtx, 0)) > - && comparison_p > && rtx_equal_p (true_rtx, XEXP (cond, 0)) > && ! side_effects_p (true_rtx)) > switch (true_code)
This patch is OK for all branches in my opinion but run it by a RM because the PR is not formally marked as a regression. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34627