[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