diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-07-06 23:42:41 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-07-06 23:42:41 +0200 |
commit | f290100275139ccb59832bb75ff7fb2606e110d7 (patch) | |
tree | 18cda432e83a3fcae530b889830983dd4a7f0efb /gcc/tree-ssa-loop-niter.c | |
parent | 8de583fc5301987f31e1897e07d545e218b943da (diff) | |
download | gcc-f290100275139ccb59832bb75ff7fb2606e110d7.zip gcc-f290100275139ccb59832bb75ff7fb2606e110d7.tar.gz gcc-f290100275139ccb59832bb75ff7fb2606e110d7.tar.bz2 |
re PR tree-optimization/86401 (The "For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M,..." opts are only in fold-const.c and in RTL)
PR tree-optimization/86401
* fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the
((A & N) + B) & M -> (A + B) & M etc. optimization into ...
(fold_bit_and_mask): ... here. New helper function for match.pd.
* fold-const.h (fold_bit_and_mask): Declare.
* match.pd (((A & N) + B) & M -> (A + B) & M): New optimization.
* gcc.dg/tree-ssa/pr86401-1.c: New test.
* gcc.dg/tree-ssa/pr86401-2.c: New test.
* c-c++-common/rotate-9.c: New test.
From-SVN: r262485
Diffstat (limited to 'gcc/tree-ssa-loop-niter.c')
0 files changed, 0 insertions, 0 deletions