[PATCH] D144485: [LV][RISCV] Don't interleave scalable vector loops

Luke Lau via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 21 07:06:18 PST 2023


luke created this revision.
luke added reviewers: fhahn, loralb, craig.topper, reames.
Herald added subscribers: asb, pmatos, VincentWu, StephenFan, vkmr, frasercrmck, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, arphaman, 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, alextsao1999, eopXD, MaskRay.
Herald added a project: LLVM.

It's less clear with scalable vectors than fixed length vectors that
interleaving exposes more ILP, as scalable vectors can be thought of a
sort of hardware form of interleaving, especially with larger LMULs.
This also addresses the unexpected additional unrolling that occurs when
using larger LMULs in the loop vectorizer.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D144485

Files:
  llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
  llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
  llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
  llvm/test/Transforms/LoopVectorize/RISCV/lmul.ll
  llvm/test/Transforms/LoopVectorize/RISCV/mask-index-type.ll
  llvm/test/Transforms/LoopVectorize/RISCV/riscv-vector-reverse.ll
  llvm/test/Transforms/LoopVectorize/RISCV/scalable-basics.ll
  llvm/test/Transforms/LoopVectorize/RISCV/scalable-reductions.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D144485.499160.patch
Type: text/x-patch
Size: 52212 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230221/61c5283b/attachment.bin>


More information about the llvm-commits mailing list