diff options
author | Roger Sayle <roger@eyesopen.com> | 2006-02-13 18:33:32 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2006-02-13 18:33:32 +0000 |
commit | 840992bdc20effc919b96522ab4f82fd96087939 (patch) | |
tree | d38a31a2f50f89e4589d53b8f378f0319c82ce34 /gcc/loop-invariant.c | |
parent | 4c553323a6f4d90e48002ea23b7f779c106ad620 (diff) | |
download | gcc-840992bdc20effc919b96522ab4f82fd96087939.zip gcc-840992bdc20effc919b96522ab4f82fd96087939.tar.gz gcc-840992bdc20effc919b96522ab4f82fd96087939.tar.bz2 |
re PR middle-end/24427 (missing optimization opportunity with binary operators)
PR middle-end/24427
* fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
into (X,C2) if C1 is a subset of the bits of C2. Transform
(X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as
(X&(C1&~C2))|C2.
<BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
* gcc.dg/tree-ssa/andor-1.c: New test case.
From-SVN: r110918
Diffstat (limited to 'gcc/loop-invariant.c')
0 files changed, 0 insertions, 0 deletions