diff options
author | David Green <david.green@arm.com> | 2022-04-19 14:49:50 +0100 |
---|---|---|
committer | David Green <david.green@arm.com> | 2022-04-19 14:49:50 +0100 |
commit | 73dc996428aeed7e5005b4bc80a112f7d5c45a9b (patch) | |
tree | 8ddfcffee04db8b6479aa71669ec2e78c33ccc38 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | 7adfa31bc65e44ce65ee47ebe27e61695b34805a (diff) | |
download | llvm-73dc996428aeed7e5005b4bc80a112f7d5c45a9b.zip llvm-73dc996428aeed7e5005b4bc80a112f7d5c45a9b.tar.gz llvm-73dc996428aeed7e5005b4bc80a112f7d5c45a9b.tar.bz2 |
[AArch64] Add lane moves to PerfectShuffle tables
This teaches the perfect shuffle tables about lane inserts, that can
help reduce the cost of many entries. Many of the shuffle masks are
one-away from being correct, and a simple lane move can be a lot simpler
than trying to use ext/zip/etc. Because they are not exactly like the
other masks handled in the perfect shuffle tables, they require special
casing to generate them, with a special InsOp Operator.
The lane to insert into is encoded as the RHSID, and the move from is
grabbed from the original mask. This helps reduce the maximum perfect
shuffle entry cost to 3, with many more shuffles being generatable in a
single instruction.
Differential Revision: https://reviews.llvm.org/D123386
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions