[PATCH] D117502: [LV] Combine vector reductions parts in tree instead of serially.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 17 09:50:54 PST 2022


fhahn created this revision.
fhahn added reviewers: dmgreen, Ayal, spatel, kmclaughlin.
Herald added a subscriber: hiraditya.
fhahn requested review of this revision.
Herald added a subscriber: alextsao1999.
Herald added a project: LLVM.

At the moment, LV chains together the reduction values for all parts
serially. This results in larger than necessary dependency chains.

This patch updates LV to repeatedly combine adjacent pairs of parts to
combine them, for arithmetic opcodes.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D117502

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/AArch64/scalable-reductions.ll
  llvm/test/Transforms/LoopVectorize/AArch64/scalable-strict-fadd.ll
  llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll
  llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
  llvm/test/Transforms/LoopVectorize/X86/invariant-store-vectorization.ll
  llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
  llvm/test/Transforms/LoopVectorize/X86/pr35432.ll
  llvm/test/Transforms/LoopVectorize/X86/pr42674.ll
  llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll
  llvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
  llvm/test/Transforms/LoopVectorize/first-order-recurrence.ll
  llvm/test/Transforms/LoopVectorize/if-pred-stores.ll
  llvm/test/Transforms/LoopVectorize/induction.ll
  llvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll
  llvm/test/Transforms/LoopVectorize/reduction-odd-interleave-counts.ll
  llvm/test/Transforms/LoopVectorize/scalable-reduction-inloop.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D117502.400596.patch
Type: text/x-patch
Size: 61549 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220117/63530f9f/attachment.bin>


More information about the llvm-commits mailing list