[PATCH] D90445: [SLP] Make SLPVectorizer to use `llvm.masked.gather` intrinsic
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 3 08:46:47 PST 2020
ABataev added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1581
+ /// Boolean value indicating that pointer operands are scattered.
+ bool IsScatteredOps = false;
+
----------------
I would think about adding a new `EntryState` instead of adding a new data member.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3702
+ Instruction::Load, VecTy, cast<LoadInst>(VL0)->getPointerOperand(),
+ false, alignment, CostKind, VL0);
+ }
----------------
Comment for `false` argument
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4542
+ Value *Val0 = LI->getPointerOperand();
+ FixedVectorType *VecTy =
+ FixedVectorType::get(Val0->getType(), E->Scalars.size());
----------------
`auto *`
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4544
+ FixedVectorType::get(Val0->getType(), E->Scalars.size());
+ Value *VecPtr = UndefValue::get(VecTy);
+ unsigned InsIndex = 0;
----------------
`auto *`
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4551
+ if (getTreeEntry(PO))
+ ExternalUses.push_back(
+ ExternalUser(PO, cast<User>(VecPtr), InsIndex));
----------------
`.emplace_back(PO, cast<User>(VecPtr), InsIndex);`
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4556
+ Instruction *MG = Builder.CreateMaskedGather(VecPtr, LI->getAlign());
+ V = propagateMetadata(MG, E->Scalars);
+ }
----------------
Try to merge this code line with the one in line 4539
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90445/new/
https://reviews.llvm.org/D90445
More information about the llvm-commits
mailing list