[PATCH] D113034: [LoopVectorize] Mark store instructions as uniform in collectLoopUniforms

Kerry McLaughlin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 2 10:40:27 PDT 2021


kmclaughlin created this revision.
kmclaughlin added reviewers: sdesmalen, david-arm, fhahn, efriedma.
Herald added a subscriber: hiraditya.
kmclaughlin requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Follow on from D112725 <https://reviews.llvm.org/D112725>, which changes VPReplicateRecipe to generate the
last lane of a uniform store. This patch changes collectLoopUniforms to add stores
to the list of uniform instructions where `Legal->isUniformMemOp` is true.

setCostBasedWideningDecision now sets the widening decision for all uniform
memory ops to Scalarize, where previously GatherScatter may have been
chosen for scalable stores.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D113034

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/AArch64/sve-inv-store.ll
  llvm/test/Transforms/LoopVectorize/AArch64/sve-uniform-store.ll
  llvm/test/Transforms/LoopVectorize/X86/cost-model-assert.ll
  llvm/test/Transforms/LoopVectorize/X86/illegal-parallel-loop-uniform-write.ll
  llvm/test/Transforms/LoopVectorize/X86/uniform_mem_op.ll
  llvm/test/Transforms/LoopVectorize/invariant-store-vectorization-2.ll
  llvm/test/Transforms/LoopVectorize/pr44488-predication.ll
  llvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll
  llvm/test/Transforms/LoopVectorize/skeleton-lcssa-crash.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D113034.384156.patch
Type: text/x-patch
Size: 33028 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211102/02dec135/attachment-0001.bin>


More information about the llvm-commits mailing list