[PATCH] D85110: [ARM] Convert VPSEL to VMOV in tail predicated loops

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 3 00:48:54 PDT 2020


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

VPSEL has slightly different schematics under tail predication (it can end up selecting from Qn, Qm and Qd). We do not model that at the moment so they block tail predicated loops from being formed.

This just converts them into a predicated VMOV instead (via a VORR), allowing tail predication to happen whilst still modelling the original behaviour of the input.


https://reviews.llvm.org/D85110

Files:
  llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
  llvm/test/CodeGen/Thumb2/mve-pred-selectop3.ll
  llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
  llvm/test/CodeGen/Thumb2/mve-vctp.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85110.282402.patch
Type: text/x-patch
Size: 13117 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200803/d545c598/attachment.bin>


More information about the llvm-commits mailing list