This patch fixes a bug in the bswap pass.
authorWilco Dijkstra <wdijkstr@arm.com>
Tue, 28 Jun 2016 13:57:47 +0000 (13:57 +0000)
committerWilco Dijkstra <wilco@gcc.gnu.org>
Tue, 28 Jun 2016 13:57:47 +0000 (13:57 +0000)
commitf6922a5660bc593d7eed186c0538eb28269fcbe5
treec094454f4fad5edb0815ce22ddd5ab07dd9d866e
parenteda328bf1dd994826252fa0435d2e58103c2c2d8
This patch fixes a bug in the bswap pass.

This patch fixes a bug in the bswap pass.  In big-endian BIT_FIELD_REF uses
big-endian bit numbering so we need to adjust the bit position.
The existing version could potentially generate incorrect code however GCC
doesn't emit a BIT_FIELD_REF to access the low byte in a register, so the
symbolic number never matches in big-endian.

    gcc/
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
for big-endian BIT_FIELD_REF.

From-SVN: r237822
gcc/ChangeLog
gcc/tree-ssa-math-opts.c