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:

Methods

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)

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)

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

Description

Return the address accessed by this recipe.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:891

const InterleaveGroup<llvm::Instruction>*
getInterleaveGroup()

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:908

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

Description

Print the recipe.

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:906

Parameters

llvm::raw_ostream& O
const llvm::Twine& Indent

~VPInterleaveRecipe()

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:883