[all-commits] [llvm/llvm-project] 792fab: [ARM] Attempt to use whole register vmovs for MVE ...
David Green via All-commits
all-commits at lists.llvm.org
Sun Dec 8 03:20:46 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 792fab343ba9029dd155f3ae5da30e12ed518c8a
https://github.com/llvm/llvm-project/commit/792fab343ba9029dd155f3ae5da30e12ed518c8a
Author: David Green <david.green at arm.com>
Date: 2019-12-08 (Sun, 08 Dec 2019)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/test/CodeGen/Thumb2/mve-pred-shuffle.ll
M llvm/test/CodeGen/Thumb2/mve-shuffle.ll
M llvm/test/CodeGen/Thumb2/mve-shufflemov.ll
M llvm/test/CodeGen/Thumb2/mve-vld3.ll
M llvm/test/CodeGen/Thumb2/mve-vldst4.ll
M llvm/test/CodeGen/Thumb2/mve-vst3.ll
M llvm/test/CodeGen/Thumb2/mve-vst4.ll
Log Message:
-----------
[ARM] Attempt to use whole register vmovs for MVE shuffles.
MVE doesn't have the range of shuffle instructions available in Neon. We
also cannot use the trick of cutting a difficult vector shuffle in half
to simplify things. Instead we need to be more careful about how we
lower shuffles.
This patch adds an extra combine that attempts to find "whole lane"
vmovs when lowering shuffles of smaller types. This helps us make some
shuffles a lot simpler, generating single lane movs for the parts that
can make use of it, falling back to the original shuffle for the rest.
Differential Revision: https://reviews.llvm.org/D69509
More information about the All-commits
mailing list