[llvm] [VPlan] Add new VPInstruction ocpode for header mask. (PR #89603)
via llvm-commits
llvm-commits at lists.llvm.org
Mon May 6 03:45:44 PDT 2024
================
@@ -1897,22 +1901,21 @@ void VPExpandSCEVRecipe::print(raw_ostream &O, const Twine &Indent,
#endif
void VPWidenCanonicalIVRecipe::execute(VPTransformState &State) {
- Value *CanonicalIV = State.get(getOperand(0), 0, /*IsScalar*/ true);
- Type *STy = CanonicalIV->getType();
+ Value *Start = State.get(getOperand(0), 0, /*IsScalar*/ true);
+ Type *STy = Start->getType();
IRBuilder<> Builder(State.CFG.PrevBB->getTerminator());
ElementCount VF = State.VF;
- Value *VStart = VF.isScalar()
- ? CanonicalIV
- : Builder.CreateVectorSplat(VF, CanonicalIV, "broadcast");
+ Value *VStart =
+ VF.isScalar() ? Start : Builder.CreateVectorSplat(VF, Start, "broadcast");
for (unsigned Part = 0, UF = State.UF; Part < UF; ++Part) {
Value *VStep = createStepForVF(Builder, STy, VF, Part);
if (VF.isVector()) {
VStep = Builder.CreateVectorSplat(VF, VStep);
VStep =
Builder.CreateAdd(VStep, Builder.CreateStepVector(VStep->getType()));
}
- Value *CanonicalVectorIV = Builder.CreateAdd(VStart, VStep, "vec.iv");
- State.set(this, CanonicalVectorIV, Part);
+ Value *Res = Builder.CreateAdd(VStart, VStep, "vec.iv");
----------------
ayalz wrote:
Retain name - this still generates a canonical wide IV?
https://github.com/llvm/llvm-project/pull/89603
More information about the llvm-commits
mailing list