OSDN Git Service

* fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
authorsayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Jul 2004 16:44:17 +0000 (16:44 +0000)
committersayle <sayle@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Jul 2004 16:44:17 +0000 (16:44 +0000)
commit662f41e425fd6d5af06b128767e8e9bc10c5e174
tree8295df6654e3966bffcbd5af16d6026cf42c98c7
parent60f65a0a49e09022024224c76569fcfe389bcb26
* fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus
by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)".
Normalize "X % C" as "X % -C" for signed modulus and negative C.
Optimize "X % -Y" as "X % Y" for signed modulus.
<EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0"
into "((unsigned) X % Y) == 0".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84122 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c