[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