]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR tree-optimization/45216 (Rotate expressions not recognized at tree level)
authorJakub Jelinek <jakub@redhat.com>
Mon, 13 May 2013 11:04:26 +0000 (13:04 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 13 May 2013 11:04:26 +0000 (13:04 +0200)
commitae6fa899e7000352aa8573a23b1e92c225337ea1
tree6346bea605532f76d3b46ee9bfb0d6588ee811de
parent4502fe8dfcb1cc2c59b50b868ac75fb5cdd742fc
re PR tree-optimization/45216 (Rotate expressions not recognized at tree level)

PR tree-optimization/45216
PR tree-optimization/57157
* tree-ssa-forwprop.c (simplify_rotate): Only recognize
the (-Y) & (B - 1) variant if OP is |.
* expmed.c (expand_shift_1): For rotations by const0_rtx just
return shifted.  Use (-op1) & (prec - 1) as other_amount
instead of prec - op1.

* c-c++-common/rotate-1.c: Add 32 tests with +.
* c-c++-common/rotate-1a.c: Adjust.
* c-c++-common/rotate-2.c: Add 32 tests with +, expect
only 48 rotates.
* c-c++-common/rotate-2b.c: New test.
* c-c++-common/rotate-3.c: Add 32 tests with +.
* c-c++-common/rotate-4.c: Add 32 tests with +, expect
only 48 rotates.
* c-c++-common/rotate-4b.c: New test.
* c-c++-common/rotate-5.c: New test.

From-SVN: r198823
gcc/ChangeLog
gcc/expmed.c
gcc/testsuite/ChangeLog
gcc/testsuite/c-c++-common/rotate-1.c
gcc/testsuite/c-c++-common/rotate-1a.c
gcc/testsuite/c-c++-common/rotate-2.c
gcc/testsuite/c-c++-common/rotate-3.c
gcc/testsuite/c-c++-common/rotate-4.c
gcc/testsuite/c-c++-common/rotate-5.c [new file with mode: 0644]
gcc/tree-ssa-forwprop.c