Skip to content

Commit a0bfd0e

Browse files
committed
fix the comments
1 parent e9389b1 commit a0bfd0e

File tree

3 files changed

+15
-10
lines changed

3 files changed

+15
-10
lines changed

llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -960,14 +960,18 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
960960
Args.push_back(Arg);
961961
}
962962

963-
if (VPIntrinsic::isVPIntrinsic(VectorIntrinsicID) &&
964-
VectorIntrinsicID != Intrinsic::vp_select) {
965-
Value *Mask =
966-
State.Builder.CreateVectorSplat(State.VF, State.Builder.getTrue());
963+
if (VPIntrinsic::isVPIntrinsic(VectorIntrinsicID)) {
967964
Value *EVL = Args.back();
968965
Args.pop_back();
969-
Args.push_back(Mask);
970-
Args.push_back(EVL);
966+
// Add EVL && Mask Ops for vector-predication intrinsics.
967+
if (VPIntrinsic::getMaskParamPos(VectorIntrinsicID)) {
968+
Value *Mask =
969+
State.Builder.CreateVectorSplat(State.VF, State.Builder.getTrue());
970+
Args.push_back(Mask);
971+
}
972+
if (VPIntrinsic::getVectorLengthParamPos(VectorIntrinsicID)) {
973+
Args.push_back(EVL);
974+
}
971975
}
972976

973977
// Use vector version of the intrinsic.
@@ -982,6 +986,7 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
982986
CI->getOperandBundlesAsDefs(OpBundles);
983987

984988
CallInst *V = State.Builder.CreateCall(VectorF, Args, OpBundles);
989+
985990
setFlags(V);
986991

987992
if (!V->getType()->isVoidTy())

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1484,13 +1484,13 @@ static void transformRecipestoEVLRecipes(VPlan &Plan, VPValue &EVL) {
14841484
.Case<VPWidenIntrinsicRecipe>(
14851485
[&](VPWidenIntrinsicRecipe *CInst) -> VPRecipeBase * {
14861486
auto *CI = cast<CallInst>(CInst->getUnderlyingInstr());
1487-
SmallVector<VPValue *> Ops(CInst->operands());
1488-
Ops.push_back(&EVL);
1489-
14901487
Intrinsic::ID VPID = VPIntrinsic::getForIntrinsic(
14911488
CI->getCalledFunction()->getIntrinsicID());
14921489
if (VPID == Intrinsic::not_intrinsic)
14931490
return nullptr;
1491+
1492+
SmallVector<VPValue *> Ops(CInst->operands());
1493+
Ops.push_back(&EVL);
14941494
return new VPWidenIntrinsicRecipe(
14951495
*CI, VPID, Ops, CI->getType(), CI->getDebugLoc());
14961496
})

llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-call-intrinsics.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,4 +474,4 @@ declare i32 @llvm.ctlz.i32(i32, i1 immarg)
474474
declare i32 @llvm.cttz.i32(i32, i1 immarg)
475475
declare i64 @llvm.lrint.i64.f64(double)
476476
declare i64 @llvm.llrint.i64.f64(double)
477-
declare i32 @llvm.abs.i32(i32, i1 immarg)
477+
declare i32 @llvm.abs.i32(i32, i1 immarg)

0 commit comments

Comments
 (0)