diff options
author | David Green <david.green@arm.com> | 2022-02-06 16:17:06 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2022-02-06 16:17:06 +0000 |
commit | b7d3a2b62f4d3cea9ec7baf1004ac2f68a0bca98 (patch) | |
tree | ea1b88c7628edd736b3e69160950eff790aacab5 /llvm/lib | |
parent | 3dff4f5cfb461cd25e2c95f2a8e9511f266e5dee (diff) | |
download | llvm-b7d3a2b62f4d3cea9ec7baf1004ac2f68a0bca98.zip llvm-b7d3a2b62f4d3cea9ec7baf1004ac2f68a0bca98.tar.gz llvm-b7d3a2b62f4d3cea9ec7baf1004ac2f68a0bca98.tar.bz2 |
[ARM] Mark i64 and f64 shuffles as Custom for MVE
This way they get lowered through the ARMISD::BUILD_VECTOR, which can
produce more efficient D register moves.
Also helps D115653 not get stuck in a loop.
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index 32cb88b..ce62979 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -392,6 +392,7 @@ void ARMTargetLowering::addMVEVectorTypes(bool HasMVEFP) { setOperationAction(ISD::EXTRACT_VECTOR_ELT, VT, Custom); setOperationAction(ISD::BUILD_VECTOR, VT, Custom); setOperationAction(ISD::VSELECT, VT, Legal); + setOperationAction(ISD::VECTOR_SHUFFLE, VT, Custom); } setOperationAction(ISD::SCALAR_TO_VECTOR, MVT::v2f64, Legal); |