diff -uNr gcc-4.1.2.orig/gcc/combine.c gcc-4.1.2/gcc/combine.c --- gcc-4.1.2.orig/gcc/combine.c 2008-02-04 12:37:00.000000000 +0100 +++ gcc-4.1.2/gcc/combine.c 2008-02-04 12:42:11.000000000 +0100 @@ -5067,9 +5067,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)