aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-03-11 17:45:03 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-03-11 17:45:03 +0000
commit239a625ee83ff08df15beab3ca2f1b37881e7f10 (patch)
tree53c0a411f358defff23d8e0c39b1dc0819424479 /gcc/ChangeLog
parent4b0b51c9706b25603247ec6e48d8ac53e8db64f3 (diff)
downloadgcc-239a625ee83ff08df15beab3ca2f1b37881e7f10.zip
gcc-239a625ee83ff08df15beab3ca2f1b37881e7f10.tar.gz
gcc-239a625ee83ff08df15beab3ca2f1b37881e7f10.tar.bz2
fold-const.c (negate_expr_p): We can optimize -((int)X>>C) where C is an integer constant one bit less than...
* fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize -((int)X>>C) where C is an integer constant one bit less than the size of X into (unsigned)X>>C. Similarly for unsigned->signed. (negate_expr) <RSHIFT_EXPR>: Implement the above transformations. * simplify-rtx.c (simplify_unary_operation): Also implement the above transformations at the RTL level. * gcc.c-torture/execute/20040311-1.c: New test case. From-SVN: r79334
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 318b12f..dcaa0b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2004-03-11 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
+ -((int)X>>C) where C is an integer constant one bit less than the
+ size of X into (unsigned)X>>C. Similarly for unsigned->signed.
+ (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
+
+ * simplify-rtx.c (simplify_unary_operation): Also implement the
+ above transformations at the RTL level.
+
2004-03-11 Alan Modra <amodra@bigpond.net.au>
* real.c (encode_ibm_extended): Do round low word.