[PATCH] D146747: [RISCV] Model select and insertsubvector shuffle kinds

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 23 10:58:56 PDT 2023


luke created this revision.
luke added reviewers: craig.topper, reames, fakepaper56, benshi001.
Herald added subscribers: jobnoorman, asb, pmatos, VincentWu, vkmr, frasercrmck, evandro, 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, pcwang-thead, eopXD, MaskRay.
Herald added a project: LLVM.

These types of shuffles get lowered as a vmerge with a potential
vslide{up,down}.
There is still room for improvement in modeling these types, including
concatenating shuffles which are designated SK_InsertSubvector. These
can be lowered to one vslideup provided the types are legal. (And
sometimes, if the concatenated shuffle is used in something like an
interleave shuffle, then it has no cost at all. But there isn't any way
to detect that from the target hooks.)


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D146747

Files:
  llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
  llvm/test/Analysis/CostModel/RISCV/rvv-shuffle.ll
  llvm/test/Analysis/CostModel/RISCV/shuffle-insert.ll
  llvm/test/Analysis/CostModel/RISCV/shuffle-interleave.ll
  llvm/test/Analysis/CostModel/RISCV/shuffle-select.ll
  llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D146747.507822.patch
Type: text/x-patch
Size: 25357 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230323/d811dc81/attachment-0001.bin>


More information about the llvm-commits mailing list