[llvm] [LV, VP]VP intrinsics support for the Loop Vectorizer + adding new tail-folding mode using EVL. (PR #76172)
Alexey Bataev via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 5 07:44:05 PST 2024
================
@@ -4733,6 +4755,36 @@ LoopVectorizationCostModel::computeMaxVF(ElementCount UserVF, unsigned UserIC) {
// FIXME: look for a smaller MaxVF that does divide TC rather than masking.
if (Legal->prepareToFoldTailByMasking()) {
CanFoldTailByMasking = true;
+ if (getTailFoldingStyle() == TailFoldingStyle::None)
+ return MaxFactors;
+
+ if (UserIC > 1) {
+ LLVM_DEBUG(dbgs() << "LV: Preference for VP intrinsics indicated. Will "
+ "not generate VP intrinsics since interleave count "
+ "specified is greater than 1.\n");
+ return MaxFactors;
+ }
+
+ // FIXME: use actual opcode/data type for analysis here.
+ PreferEVL = MaxFactors.ScalableVF.isScalable() &&
+ getTailFoldingStyle() == TailFoldingStyle::DataWithEVL &&
----------------
alexey-bataev wrote:
Reworked this part
https://github.com/llvm/llvm-project/pull/76172
More information about the llvm-commits
mailing list