class VPInterleaveRecipe
Declaration
class VPInterleaveRecipe : public VPRecipeBase { /* full declaration omitted */ };
Description
VPInterleaveRecipe is a recipe for transforming an interleave group of load or stores into one wide load/store and shuffles.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:871
Inherits from: VPRecipeBase
Method Overview
- public VPInterleaveRecipe(const InterleaveGroup<llvm::Instruction> * IG, llvm::VPValue * Addr, llvm::VPValue * Mask)
- public static inline bool classof(const llvm::VPRecipeBase * V)
- public void execute(llvm::VPTransformState & State)
- public llvm::VPValue * getAddr() const
- public const InterleaveGroup<llvm::Instruction> * getInterleaveGroup()
- public llvm::VPValue * getMask() const
- public void print(llvm::raw_ostream & O, const llvm::Twine & Indent) const
- public ~VPInterleaveRecipe()
Inherited from VPRecipeBase:
- public eraseFromParent
- public execute
- public getParent
- public getParent
- public getVPRecipeID
- public insertAfter
- public insertBefore
- public moveAfter
- public print
- public removeFromParent
Methods
¶VPInterleaveRecipe(
const InterleaveGroup<llvm::Instruction>* IG,
llvm::VPValue* Addr,
llvm::VPValue* Mask)
VPInterleaveRecipe(
const InterleaveGroup<llvm::Instruction>* IG,
llvm::VPValue* Addr,
llvm::VPValue* Mask)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:877
Parameters
- const InterleaveGroup<llvm::Instruction>* IG
- llvm::VPValue* Addr
- llvm::VPValue* Mask
¶static inline bool classof(
const llvm::VPRecipeBase* V)
static inline bool classof(
const llvm::VPRecipeBase* V)
Description
Method to support type inquiry through isa, cast, and dyn_cast.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:886
Parameters
- const llvm::VPRecipeBase* V
¶void execute(llvm::VPTransformState& State)
void execute(llvm::VPTransformState& State)
Description
Generate the wide load or store, and shuffles.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:903
Parameters
- llvm::VPTransformState& State
¶llvm::VPValue* getAddr() const
llvm::VPValue* getAddr() const
Description
Return the address accessed by this recipe.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:891
¶const InterleaveGroup<llvm::Instruction>*
getInterleaveGroup()
const InterleaveGroup<llvm::Instruction>*
getInterleaveGroup()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:908
¶llvm::VPValue* getMask() const
llvm::VPValue* getMask() const
Description
Return the mask used by this recipe. Note that a full mask is represented by a nullptr.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:897
¶void print(llvm::raw_ostream& O,
const llvm::Twine& Indent) const
void print(llvm::raw_ostream& O,
const llvm::Twine& Indent) const
Description
Print the recipe.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:906
Parameters
- llvm::raw_ostream& O
- const llvm::Twine& Indent
¶~VPInterleaveRecipe()
~VPInterleaveRecipe()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:883