[PATCH] D53668: [LV] Support vectorization of interleave-groups that require an epilog under optsize using masked wide loads
Dorit Nuzman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 24 13:29:32 PDT 2018
dorit created this revision.
dorit added reviewers: Ayal, hsaito, dcaballe, fhahn.
Herald added subscribers: jsji, rkruppe, kbarton, javed.absar, nemanjai.
Under Opt for Size, the vectorizer does not vectorize interleave-groups that have gaps at the end of the group (such as a loop that reads only the even elements: a[2*i]) because that implies that we'll require a scalar epilogue (which is not allowed under Opt for Size). This patch extends the support for masked-interleave-groups (introduced by https://reviews.llvm.org/D53011 for conditional accesses) to also cover the case of gaps in a group of loads; Targets that enable the masked-interleave-group feature don't have to invalidate interleave-groups of loads with gaps; they could now use masked wide-loads and shuffles (if that's what the cost model selects).
https://reviews.llvm.org/D53668
Files:
include/llvm/Analysis/TargetTransformInfo.h
include/llvm/Analysis/TargetTransformInfoImpl.h
include/llvm/Analysis/VectorUtils.h
include/llvm/CodeGen/BasicTTIImpl.h
lib/Analysis/TargetTransformInfo.cpp
lib/Analysis/VectorUtils.cpp
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
lib/Target/AArch64/AArch64TargetTransformInfo.h
lib/Target/ARM/ARMTargetTransformInfo.cpp
lib/Target/ARM/ARMTargetTransformInfo.h
lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
lib/Target/Hexagon/HexagonTargetTransformInfo.h
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
lib/Target/PowerPC/PPCTargetTransformInfo.h
lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
lib/Target/SystemZ/SystemZTargetTransformInfo.h
lib/Target/X86/X86TargetTransformInfo.cpp
lib/Target/X86/X86TargetTransformInfo.h
lib/Transforms/Vectorize/LoopVectorize.cpp
test/Transforms/LoopVectorize/X86/x86-interleaved-accesses-masked-group.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53668.170962.patch
Type: text/x-patch
Size: 55099 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181024/1f2163bb/attachment-0001.bin>
More information about the llvm-commits
mailing list