Skip to content

Commit 898b584

Browse files
committed
fix the comments
1 parent f5e5d86 commit 898b584

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
@@ -957,14 +957,18 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
957957
Args.push_back(Arg);
958958
}
959959

960-
if (VPIntrinsic::isVPIntrinsic(VectorIntrinsicID) &&
961-
VectorIntrinsicID != Intrinsic::vp_select) {
962-
Value *Mask =
963-
State.Builder.CreateVectorSplat(State.VF, State.Builder.getTrue());
960+
if (VPIntrinsic::isVPIntrinsic(VectorIntrinsicID)) {
964961
Value *EVL = Args.back();
965962
Args.pop_back();
966-
Args.push_back(Mask);
967-
Args.push_back(EVL);
963+
// Add EVL && Mask Ops for vector-predication intrinsics.
964+
if (VPIntrinsic::getMaskParamPos(VectorIntrinsicID)) {
965+
Value *Mask =
966+
State.Builder.CreateVectorSplat(State.VF, State.Builder.getTrue());
967+
Args.push_back(Mask);
968+
}
969+
if (VPIntrinsic::getVectorLengthParamPos(VectorIntrinsicID)) {
970+
Args.push_back(EVL);
971+
}
968972
}
969973

970974
// Use vector version of the intrinsic.
@@ -979,6 +983,7 @@ void VPWidenIntrinsicRecipe::execute(VPTransformState &State) {
979983
CI->getOperandBundlesAsDefs(OpBundles);
980984

981985
CallInst *V = State.Builder.CreateCall(VectorF, Args, OpBundles);
986+
982987
setFlags(V);
983988

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

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,13 +1477,13 @@ static void transformRecipestoEVLRecipes(VPlan &Plan, VPValue &EVL) {
14771477
.Case<VPWidenIntrinsicRecipe>(
14781478
[&](VPWidenIntrinsicRecipe *CInst) -> VPRecipeBase * {
14791479
auto *CI = cast<CallInst>(CInst->getUnderlyingInstr());
1480-
SmallVector<VPValue *> Ops(CInst->operands());
1481-
Ops.push_back(&EVL);
1482-
14831480
Intrinsic::ID VPID = VPIntrinsic::getForIntrinsic(
14841481
CI->getCalledFunction()->getIntrinsicID());
14851482
if (VPID == Intrinsic::not_intrinsic)
14861483
return nullptr;
1484+
1485+
SmallVector<VPValue *> Ops(CInst->operands());
1486+
Ops.push_back(&EVL);
14871487
return new VPWidenIntrinsicRecipe(
14881488
*CI, VPID, Ops, CI->getType(), CI->getDebugLoc());
14891489
})

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)