[PATCH] D132458: [LoopVectorize] Synthesize mask operands for vector variants as needed

Graham Hunter via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 24 03:20:12 PST 2022


huntergr updated this revision to Diff 477717.
huntergr retitled this revision from "[LoopVectorize] Support masked function vectorization" to "[LoopVectorize] Synthesize mask operands for vector variants as needed".
huntergr edited the summary of this revision.
huntergr added a comment.

Updated to store the pointer to the vector function in the recipe rather than looking it up again during recipe execution. Forced generation of a plan per VF when there are variants available for those VFs. Added some new tests for masked vs. unmasked variants.

I'm not fond of adding the optional parameters LoopVectorizationCostModel::getVectorCallCost -- it feels like function lookup needs to be split out of it, but I'd like to get some feedback from others before doing so.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D132458/new/

https://reviews.llvm.org/D132458

Files:
  llvm/include/llvm/Analysis/VectorUtils.h
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
  llvm/lib/Transforms/Vectorize/VPlan.h
  llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
  llvm/test/Transforms/LoopVectorize/AArch64/masked-call.ll
  llvm/test/Transforms/LoopVectorize/AArch64/synthesize-mask-for-call.ll
  llvm/test/Transforms/LoopVectorize/AArch64/widen-call-with-intrinsic-or-libfunc.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D132458.477717.patch
Type: text/x-patch
Size: 34228 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221124/8c830116/attachment-0001.bin>


More information about the llvm-commits mailing list