[PATCH] D83222: [ARM] Add patterns for select(p, BinOp(x, y), z) -> BinOpT(x, y,p z)

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 12:53:55 PDT 2020


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

Most MVE instructions can be predicated to fold a select into the instruction, using the predicate and the select "else" as a passthough. This adds tablegen patterns for most two operand instructions using the newly added TwoOpPattern from D83219 <https://reviews.llvm.org/D83219>. It could probably be done differently, perhaps after ISel as a peephole optimisation, but doing it in tblgen gives a good excuse to clear up some of the existing patterns.


https://reviews.llvm.org/D83222

Files:
  llvm/lib/Target/ARM/ARMInstrMVE.td
  llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
  llvm/test/CodeGen/Thumb2/mve-pred-selectop.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83222.275690.patch
Type: text/x-patch
Size: 41712 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200706/f008b439/attachment-0001.bin>


More information about the llvm-commits mailing list