[llvm] [LV, VP]VP intrinsics support for the Loop Vectorizer + adding new tail-folding mode using EVL. (PR #76172)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 8 12:42:19 PST 2024
================
@@ -9445,14 +9552,31 @@ void VPWidenMemoryInstructionRecipe::execute(VPTransformState &State) {
}
}
+ auto MaskValue = [&](unsigned Part) -> Value * {
+ if (isMaskRequired)
+ return BlockInMaskParts[Part];
+ return nullptr;
+ };
+
// Handle Stores:
if (SI) {
State.setDebugLocFrom(SI->getDebugLoc());
for (unsigned Part = 0; Part < State.UF; ++Part) {
Instruction *NewSI = nullptr;
Value *StoredVal = State.get(StoredValue, Part);
- if (CreateGatherScatter) {
+ if (State.EVL) {
----------------
fhahn wrote:
As mentioned earlier, I think we are in agreement that the recipe should be split up (also independent of EVL support). It's something I am planning to get around to do sometime soon, but there are a number of other changes I would like to wrap up first.
So I don't think we need to block the current patch on the refactoring, but leave a TODO to split up the recipe in general.
https://github.com/llvm/llvm-project/pull/76172
More information about the llvm-commits
mailing list