gnu/gcc/3456cc8dba75ea71ca099df75372f763bdb86d22 simplify-rtx: Canonicalize bswap (bitreverse x) as bitreverse (bswap x)
This patch implements an RTL simplification (to help bitreverse on cris)
which is for simplify-rtx and combine to canonicalize bswap(bitreverse x)
as bitreverse(bswap x). The two forms are equivalent, so canonicalizing
simplifies machine descriptions. The (otherwise arbitrary) choice to
perform BSWAP first, is (1) to aid targets like powerpc that can perform
bswap on load and (2) to place bswap next to bswap on targets that split
bitreverse in a similar order to GCC's default optab expansion.
2026-09-02 Roger Sayle <roger@nextmovesoftware.com>
gcc/ChangeLog
* simplify-rtx.cc (simplify_unary_operation_1) <case BSWAP>:
Canonicalize (BSWAP (BITREVERSE x)) as (BITREVERSE (BSWAP x)).
1 file changed