[PATCH] D155071: [RISCV] Fold vmerge into its ops with smaller VL if known

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 12 04:30:42 PDT 2023


luke created this revision.
luke added reviewers: craig.topper, reames, fakepaper56, frasercrmck.
Herald added subscribers: jobnoorman, asb, pmatos, VincentWu, vkmr, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, hiraditya, arichardson.
Herald added a project: All.
luke requested review of this revision.
Herald added subscribers: llvm-commits, wangpc, eopXD, MaskRay.
Herald added a project: LLVM.

Currently when folding vmerge into its operands, we stop if the VLs aren't
identical.  However since the body of (vmerge (vop)) is the intersection of
vmerge and vop's bodies, we can use the smaller of the two VLs if we know it
ahead of time.  This patch relaxes the constraint on VL if they are both
constants, or if either of them are VLMAX.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D155071

Files:
  llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
  llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vselect.ll
  llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-masked-vops.ll
  llvm/test/CodeGen/RISCV/rvv/rvv-peephole-vmerge-vops.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D155071.539498.patch
Type: text/x-patch
Size: 17845 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230712/8accd949/attachment.bin>


More information about the llvm-commits mailing list