Adding lowering support for bitreverse.
Previously, lowering bitreverse would expand it into a series of other instructions. This patch makes it so this produces a single rbit instruction instead.
Paths
| Differential D102397
[AArch64] Lower bitreverse in ISel ClosedPublic Authored by Rin on May 13 2021, 5:59 AM.
Details
Summary Adding lowering support for bitreverse. Previously, lowering bitreverse would expand it into a series of other instructions. This patch makes it so this produces a single rbit instruction instead.
Diff Detail
Event TimelineHerald added subscribers: dexonsmith, danielkiss, hiraditya, kristof.beyls. · View Herald TranscriptMay 13 2021, 5:59 AM Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptMay 13 2021, 5:59 AM Comment Actions Sounds good.
Comment Actions Thanks. LGTM
This revision is now accepted and ready to land.May 17 2021, 3:40 AM Closed by commit rG50511df32edf: [AArch64] Lower bitreverse in ISel (authored by Rin). · Explain WhyMay 17 2021, 5:40 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 345465 clang/lib/CodeGen/CGBuiltin.cpp
clang/test/CodeGen/aarch64-neon-misc.c
llvm/include/llvm/IR/IntrinsicsAArch64.td
llvm/lib/IR/AutoUpgrade.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/test/CodeGen/AArch64/arm64-vbitwise.ll
llvm/test/CodeGen/AArch64/bitreverse.llllvm/test/CodeGen/AArch64/neon_rbit.ll
|
Do we have a test for the autoupgrade, to show that @llvm.aarch64.neon.rbit turns into @llvm.bitreverse?