tree.c (integer_each_onep): New function.
commitd9a72d17e64f6a1b50ef859dadcf86551de1b265
authorMarc Glisse <marc.glisse@inria.fr>
Fri, 12 Sep 2014 10:42:47 +0000 (12 12:42 +0200)
committerMarc Glisse <glisse@gcc.gnu.org>
Fri, 12 Sep 2014 10:42:47 +0000 (12 10:42 +0000)
tree27bbde3457695f894291e97fcc17689a975b4a96
parente4a9c55ade081438460f6b0db8afbaad34b05d35
tree.c (integer_each_onep): New function.

2014-09-12  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* tree.c (integer_each_onep): New function.
* tree.h (integer_each_onep): Declare it.
* fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
-A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
(X & 1) == 0 for vector and complex.
gcc/testsuite/
* gcc.dg/vec-andxor1.c: New file.

From-SVN: r215209
gcc/ChangeLog
gcc/fold-const.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vec-andxor1.c [new file with mode: 0644]
gcc/tree.c
gcc/tree.h