[all-commits] [llvm/llvm-project] 969d2d: [AArch64][GlobalISel] Add selection support for re...
Jessica Paquette via All-commits
all-commits at lists.llvm.org
Wed Jun 3 15:31:05 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 969d2d1ea9466143e7099040f5f0735cc81963b1
https://github.com/llvm/llvm-project/commit/969d2d1ea9466143e7099040f5f0735cc81963b1
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2020-06-03 (Wed, 03 Jun 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/AArch64InstrGISel.td
M llvm/lib/Target/AArch64/AArch64PostLegalizerCombiner.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-combiner-rev.mir
A llvm/test/CodeGen/AArch64/GlobalISel/select-rev.mir
Log Message:
-----------
[AArch64][GlobalISel] Add selection support for rev16, rev32, and rev64
This does three things:
1) Adds G_REV16, G_REV32, and G_REV64. These are equivalent to AArch64rev16,
AArch64rev32, and AArch64rev64 respectively.
2) Adds support for producing G_REV64 in the postlegalizer combiner.
We don't legalize any of the shuffles which could give us a G_REV32 or
G_REV16 yet. Since the function for detecting the rev mask is lifted from
AArch64ISelLowering, it should work for G_REV32 and G_REV16 when we get
there.
3) Adds a selection test for a good portion of the patterns imported for the rev
family. The only ones which are not tested are the ones with bitconvert.
This also does a little cleanup, and adds a struct for shuffle vector pseudo
matchdata. This lets us still use `applyShuffleVectorPseudo` rather than adding
a new function.
It should also make it a bit easier to port some of the other masks from
AArch64ISelLowering. (e.g. `isZIP_v_undef_Mask` and friends)
Differential Revision: https://reviews.llvm.org/D81112
More information about the All-commits
mailing list