OSDN Git Service

[ARM] Add patterns for select(p, BinOp(x, y), z) -> BinOpT(x, y,p z)
authorDavid Green <david.green@arm.com>
Wed, 22 Jul 2020 12:24:01 +0000 (13:24 +0100)
committerDavid Green <david.green@arm.com>
Wed, 22 Jul 2020 12:24:01 +0000 (13:24 +0100)
commit3533e0a08d00458efc28cf7d3faabb5a1721d245
tree47466fb01e07a19d47c0a405bf601c50c8299cfd
parentce6de3747bce66b122134d02bb6d25827730d498
[ARM] Add patterns for select(p, BinOp(x, y), z) -> BinOpT(x, y,p z)

Most MVE instructions can be predicated to fold a select into the
instruction, using the predicate and the selects else as a passthough.
This adds tablegen patterns for most two operand instructions using the
newly added TwoOpPattern from 1030e82598da.

Differential Revision: https://reviews.llvm.org/D83222
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
llvm/test/CodeGen/Thumb2/mve-pred-selectop2.ll
llvm/test/CodeGen/Thumb2/mve-pred-selectop3.ll
llvm/test/CodeGen/Thumb2/mve-vecreduce-addpred.ll
llvm/test/CodeGen/Thumb2/mve-vecreduce-mlapred.ll