[PATCH] D129221: [RISCV] Switch to using get.active.lane.mask when tail folding

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 6 12:34:27 PDT 2022


reames created this revision.
reames added reviewers: craig.topper, frasercrmck.
Herald added subscribers: sunshaoce, VincentWu, luke957, StephenFan, vkmr, 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, bollu, simoncook, johnrusso, rbar, asb, hiraditya, kristof.beyls, arichardson, mcrosier.
Herald added a project: All.
reames requested review of this revision.
Herald added subscribers: pcwang-thead, eopXD, MaskRay.
Herald added a project: LLVM.

The motivation here is to a) bring us closer into alignment with AArch64 under the assumption that codepath is better tested, and b) simplify pattern matching in an upcoming change.

The immediate impact is a significant IR reduction - in particular, killing off a vector IV - but a fairly minimal change in the generated assembly.  Due to a difference in expansion behavior we get a saturating add vs an unsaturating one for the old code, but that's about it.  This difference comes down to different handling of overflow, which doesn't seem to be possible here anyways, so the assembly codegen is arguably a minor regression.  I don't expect that to matter in practice.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D129221

Files:
  llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
  llvm/test/Transforms/LoopVectorize/RISCV/low-trip-count.ll
  llvm/test/Transforms/LoopVectorize/RISCV/scalable-tailfold.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D129221.442664.patch
Type: text/x-patch
Size: 14366 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220706/2ef55b29/attachment.bin>


More information about the llvm-commits mailing list