[PATCH] D132591: [LV] Use safe-divisor lowering for fixed vectors if profitable

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 24 12:26:01 PDT 2022


reames created this revision.
reames added reviewers: fhahn, david-arm.
Herald added subscribers: frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, bollu, simoncook, johnrusso, rbar, asb, hiraditya, mcrosier.
Herald added a project: All.
reames requested review of this revision.
Herald added subscribers: alextsao1999, pcwang-thead, MaskRay.
Herald added a project: LLVM.

This extends the safe-divisor widening scheme recently added for scalable vectors to handle fixed vectors as well.

Two notes:

- Due to how early this is used during costing, I couldn't figure out how to intersect this with the minimum bitwidth handling.  So, in theory, we could chose to widen when a narrower scalarization would have been profitable.
- This is mostly completion-ism from my side.  I think it makes sense, but I'm not strongly motivated to push this currently.  If there are any serious cost model concerns raised, I'm likely to abandon the patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D132591

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/RISCV/divrem.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
  llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
  llvm/test/Transforms/LoopVectorize/induction.ll
  llvm/test/Transforms/LoopVectorize/pr44488-predication.ll
  llvm/test/Transforms/LoopVectorize/reduction-small-size.ll
  llvm/test/Transforms/LoopVectorize/vplan-printing.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D132591.455327.patch
Type: text/x-patch
Size: 137175 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220824/8f2e28e9/attachment-0001.bin>


More information about the llvm-commits mailing list