[llvm] [VPlan] Populate and use VPIRFlags from initial VPInstruction (NFC) (PR #168450)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 18 03:29:06 PST 2025
================
@@ -1509,30 +1504,23 @@ class VPWidenCastRecipe : public VPRecipeWithIRFlags, public VPIRMetadata {
public:
VPWidenCastRecipe(Instruction::CastOps Opcode, VPValue *Op, Type *ResultTy,
- CastInst &UI, const VPIRMetadata &Metadata)
- : VPRecipeWithIRFlags(VPDef::VPWidenCastSC, Op, UI),
- VPIRMetadata(Metadata), Opcode(Opcode), ResultTy(ResultTy) {
- assert(UI.getOpcode() == Opcode &&
- "opcode of underlying cast doesn't match");
- }
- VPWidenCastRecipe(Instruction::CastOps Opcode, VPValue *Op, Type *ResultTy,
- const VPIRFlags &Flags = {},
+ CastInst *CI = nullptr, const VPIRFlags &Flags = {},
const VPIRMetadata &Metadata = {},
DebugLoc DL = DebugLoc::getUnknown())
: VPRecipeWithIRFlags(VPDef::VPWidenCastSC, Op, Flags, DL),
VPIRMetadata(Metadata), Opcode(Opcode), ResultTy(ResultTy) {
assert(flagsValidForOpcode(Opcode) &&
"Set flags not supported for the provided opcode");
+ setUnderlyingValue(CI);
}
~VPWidenCastRecipe() override = default;
VPWidenCastRecipe *clone() override {
- auto *New = new VPWidenCastRecipe(Opcode, getOperand(0), ResultTy, *this,
- *this, getDebugLoc());
- if (auto *UV = getUnderlyingValue())
- New->setUnderlyingValue(UV);
- return New;
+ return new VPWidenCastRecipe(
+ Opcode, getOperand(0), ResultTy,
+ dyn_cast_or_null<CastInst>(getUnderlyingValue()), *this, *this,
----------------
fhahn wrote:
Yep, updated, thanks
https://github.com/llvm/llvm-project/pull/168450
More information about the llvm-commits
mailing list