[PATCH] D79606: [ARM] Convert VDUPLANE to VDUP under MVE

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 7 15:46:54 PDT 2020


dmgreen created this revision.
dmgreen added reviewers: efriedma, SjoerdMeijer, simon_tatham, ostannard, samparker.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
Herald added a project: LLVM.

Unlike Neon, MVE does not have a way of duplicating from a vector lane, so a VDUPLANE currently selects to a VDUP(move_from_lane(..)). This forces that to be done earlier as a dag combine to allow other folds to happen.

It mostly converts to a VDUP(EXTRACT). FP16 is a little special and goes via a VGETLANEu to prevent it from creating a vmovx;vmovhr pair, using a single move_from_reg instead.


https://reviews.llvm.org/D79606

Files:
  llvm/lib/Target/ARM/ARMISelLowering.cpp
  llvm/lib/Target/ARM/ARMInstrInfo.td
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
  llvm/test/CodeGen/Thumb2/mve-pred-shuffle.ll
  llvm/test/CodeGen/Thumb2/mve-vdup.ll
  llvm/test/CodeGen/Thumb2/mve-vecreduce-fminmax.ll
  llvm/test/CodeGen/Thumb2/mve-vld3.ll
  llvm/test/CodeGen/Thumb2/mve-vld4.ll
  llvm/test/CodeGen/Thumb2/mve-vst3.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79606.262776.patch
Type: text/x-patch
Size: 67931 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200507/ad1e5805/attachment.bin>


More information about the llvm-commits mailing list