diff --git a/llvm/lib/Transforms/Vectorize/VPlan.h b/llvm/lib/Transforms/Vectorize/VPlan.h index 16c461cd60919..24c0f4925ec9b 100644 --- a/llvm/lib/Transforms/Vectorize/VPlan.h +++ b/llvm/lib/Transforms/Vectorize/VPlan.h @@ -1488,8 +1488,8 @@ class VPWidenCallRecipe : public VPRecipeWithIRFlags, public VPIRMetadata { ~VPWidenCallRecipe() override = default; VPWidenCallRecipe *clone() override { - return new VPWidenCallRecipe(getUnderlyingValue(), Variant, - {op_begin(), op_end()}, getDebugLoc()); + return new VPWidenCallRecipe(getUnderlyingValue(), Variant, operands(), + getDebugLoc()); } VP_CLASSOF_IMPL(VPDef::VPWidenCallSC) @@ -1505,11 +1505,9 @@ class VPWidenCallRecipe : public VPRecipeWithIRFlags, public VPIRMetadata { return cast(getOperand(getNumOperands() - 1)->getLiveInIRValue()); } - operand_range arg_operands() { - return make_range(op_begin(), op_begin() + getNumOperands() - 1); - } - const_operand_range arg_operands() const { - return make_range(op_begin(), op_begin() + getNumOperands() - 1); + operand_range args() { return make_range(op_begin(), std::prev(op_end())); } + const_operand_range args() const { + return make_range(op_begin(), std::prev(op_end())); } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index 18229780bc4a5..3d8e7c0ff4f07 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -1235,7 +1235,7 @@ void VPWidenCallRecipe::execute(VPTransformState &State) { FunctionType *VFTy = Variant->getFunctionType(); // Add return type if intrinsic is overloaded on it. SmallVector Args; - for (const auto &I : enumerate(arg_operands())) { + for (const auto &I : enumerate(args())) { Value *Arg; // Some vectorized function variants may also take a scalar argument, // e.g. linear parameters for pointers. This needs to be the scalar value @@ -1284,7 +1284,7 @@ void VPWidenCallRecipe::print(raw_ostream &O, const Twine &Indent, O << "call"; printFlags(O); O << " @" << CalledFn->getName() << "("; - interleaveComma(arg_operands(), O, [&O, &SlotTracker](VPValue *Op) { + interleaveComma(args(), O, [&O, &SlotTracker](VPValue *Op) { Op->printAsOperand(O, SlotTracker); }); O << ")";