From: Richard Sandiford Date: Wed, 11 Sep 2013 17:40:56 +0000 (+0000) Subject: simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg... X-Git-Tag: releases/gcc-4.9.0~4128 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=088845a5f0ba6f712c80bdb9a3a3e98c11f5681f;p=thirdparty%2Fgcc.git simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg ...)) and (neg (not ...)) cases. gcc/ * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary for (not (neg ...)) and (neg (not ...)) cases. From-SVN: r202506 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e9b2079e375..bbe5479e6a2b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-09-11 Richard Sandiford + + * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary + for (not (neg ...)) and (neg (not ...)) cases. + 2013-09-11 Richard Biener PR middle-end/58377 diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 9ec41a5dbd4a..432842ecf0b1 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -825,7 +825,8 @@ simplify_unary_operation_1 (enum rtx_code code, enum machine_mode mode, rtx op) /* Similarly, (not (neg X)) is (plus X -1). */ if (GET_CODE (op) == NEG) - return plus_constant (mode, XEXP (op, 0), -1); + return simplify_gen_binary (PLUS, mode, XEXP (op, 0), + CONSTM1_RTX (mode)); /* (not (xor X C)) for C constant is (xor X D) with D = ~C. */ if (GET_CODE (op) == XOR @@ -932,7 +933,8 @@ simplify_unary_operation_1 (enum rtx_code code, enum machine_mode mode, rtx op) /* Similarly, (neg (not X)) is (plus X 1). */ if (GET_CODE (op) == NOT) - return plus_constant (mode, XEXP (op, 0), 1); + return simplify_gen_binary (PLUS, mode, XEXP (op, 0), + CONST1_RTX (mode)); /* (neg (minus X Y)) can become (minus Y X). This transformation isn't safe for modes with signed zeros, since if X and Y are