[SVE] Lower vector BITREVERSE and BSWAP operations.
authorPaul Walker <paul.walker@arm.com>
Fri, 18 Dec 2020 18:42:58 +0000 (18:42 +0000)
committerPaul Walker <paul.walker@arm.com>
Tue, 22 Dec 2020 16:49:50 +0000 (16:49 +0000)
commit8eec7294fea87273215592a2dc5bee6afd47d456
tree27f8b0f40639fc3a91f290d21b3c441117438332
parent0955d8df06355610bf539c53afd26bb62c500f44
[SVE] Lower vector BITREVERSE and BSWAP operations.

These operations are lowered to RBIT and REVB instructions
respectively.  In the case of fixed-length support using SVE we
also lower BITREVERSE operating on NEON sized vectors as this
results in fewer instructions.

Differential Revision: https://reviews.llvm.org/D93606
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.h
llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
llvm/lib/Target/AArch64/SVEInstrFormats.td
llvm/test/CodeGen/AArch64/sve-fixed-length-rev.ll [new file with mode: 0644]
llvm/test/CodeGen/AArch64/sve-intrinsics-reversal.ll
llvm/test/CodeGen/AArch64/sve-rev.ll [new file with mode: 0644]