[PATCH] D141791: [Thumb2][MVE] Recognise shuffle truncation patterns suitable for ARMISD::MVETRUNC
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 16 02:54:48 PST 2023
dmgreen added a comment.
Thanks for looking at this. I was considering the changes in mve-vst3.ll from D127115 <https://reviews.llvm.org/D127115> to be unimportant, the tests were just added for completeness. This looks like a nice improvement on it's own though. It does involve going via the stack which can be quite expensive, but should hopefully be cheaper overall than all the lane moves.
I think the bitcasts will be causing BE to be incorrect. Can you change them to VECTOR_REG_CAST, so that they are not dependent on the endianness?
================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:8876
+ MVT FromVT = MVT::getVectorVT(FromSVT, ShuffleMask.size() / 2);
+ SDValue Lo = DAG.getBitcast(FromVT, V1);
+ SDValue Hi = DAG.getBitcast(FromVT, SingleSource ? V1 : V2);
----------------
Can you use VECTOR_REG_CAST instead of bitcast.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141791/new/
https://reviews.llvm.org/D141791
More information about the llvm-commits
mailing list