[PATCH] D157861: LoopVectorize: vectorize finding first IV in select-cmp

Ramkumar Ramachandra via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 14 05:53:17 PDT 2023


artagnon created this revision.
artagnon added reviewers: Mel-Chen, fhahn, Ayal, shiva0217.
Herald added subscribers: StephenFan, rogfer01, hiraditya.
Herald added a project: All.
artagnon requested review of this revision.
Herald added subscribers: llvm-commits, wangpc, vkmr.
Herald added a project: LLVM.

Extend the idea in D150851 <https://reviews.llvm.org/D150851> to introduce RecurKinds [I|F]FindFirstIV
corresponding to [I|F]FirstLastIV. D150851 <https://reviews.llvm.org/D150851> enabled vectorization of the
following example:

  long src[20000] = {4, 5, 2};
  long r = 331;
  for (long i = 0; i < 20000; i++) {
    if (src[i] > 3)
      r = i;
  }
  return r;

This patch extends the above idea to also vectorize:

  long src[20000] = {4, 5, 2};
  long r = 331;
  for (long i = 20000 - 1; i >= 0; i--) {
    if (src[i] > 3)
      r = i;
  }
  return r;


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D157861

Files:
  llvm/include/llvm/Analysis/IVDescriptors.h
  llvm/include/llvm/Transforms/Utils/LoopUtils.h
  llvm/lib/Analysis/IVDescriptors.cpp
  llvm/lib/Transforms/Utils/LoopUtils.cpp
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
  llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
  llvm/test/Transforms/LoopVectorize/iv-select-cmp.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157861.549895.patch
Type: text/x-patch
Size: 35702 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230814/42cbd85e/attachment.bin>


More information about the llvm-commits mailing list