+2001-05-04 Lars Brinkhoff <lars@nocrew.org>
+
+ * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
+ into -a.
+
2000-05-04 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
- * config/rs6000/rs6000.md (ashldi3 splits): Guard with TARGET_POWERPC64.
+ * config/rs6000/rs6000.md (ashldi3 splits): Guard with
+ TARGET_POWERPC64.
2001-05-04 Stephane Carrez <Stephane.Carrez@worldnet.fr>
else if (GET_CODE (op1) == NEG)
return simplify_gen_binary (MINUS, mode, op0, XEXP (op1, 0));
+ /* (~a) + 1 -> -a */
+ if (INTEGRAL_MODE_P (mode)
+ && GET_CODE (op0) == NOT
+ && GET_CODE (op1) == CONST_INT
+ && INTVAL (op1) == 1)
+ return gen_rtx_NEG (mode, XEXP (op0, 0));
+
/* Handle both-operands-constant cases. We can only add
CONST_INTs to constants since the sum of relocatable symbols
can't be handled by most assemblers. Don't add CONST_INT