PR tree-optimization/86401
commitdba2ece2a4f1734c763e4c2f0f92ba27ff8eb941
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2018 21:42:41 +0000 (6 21:42 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 6 Jul 2018 21:42:41 +0000 (6 21:42 +0000)
tree18cda432e83a3fcae530b889830983dd4a7f0efb
parent93711a35c57a85d368fed378ba08b8f788cd1112
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@262485 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/fold-const.c
gcc/fold-const.h
gcc/match.pd
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/rotate-9.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr86401-1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/pr86401-2.c [new file with mode: 0644]