[PATCH] D105589: [ARM] Move the creation of VBICIMM and VORRIMM to lowering

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 7 13:47:15 PDT 2021


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

These opcodes were being created as combines, meaning they can be created very early. This moves that so that they are created during lowering or the And/Or, meaning other target independent optimizations are more likely to fire, leading to better code.

Making Or and And custom does require some cost adjustments to keep the cost at 1. In the long run, I think it would be good to remove VMOVImm/VBICImm/VORRImm and recognize them during selection.


https://reviews.llvm.org/D105589

Files:
  llvm/lib/Target/ARM/ARMISelLowering.cpp
  llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
  llvm/test/Analysis/CostModel/ARM/arith-overflow.ll
  llvm/test/Analysis/CostModel/ARM/arith-ssat.ll
  llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll
  llvm/test/CodeGen/Thumb2/mve-vqshl.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105589.357064.patch
Type: text/x-patch
Size: 30183 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210707/e0978f6e/attachment.bin>


More information about the llvm-commits mailing list