simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1 into -a.

2001-05-04  Lars Brinkhoff  <lars@nocrew.org>

	* simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
	into -a.

From-SVN: r41854
This commit is contained in:
Lars Brinkhoff 2001-05-05 00:32:19 +00:00 committed by Geoffrey Keating
parent 4264cf59cf
commit c52c9a9cee
2 changed files with 14 additions and 1 deletions

View File

@ -1,6 +1,12 @@
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>

View File

@ -945,6 +945,13 @@ simplify_binary_operation (code, mode, op0, op1)
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