class VPReplicateRecipe

Declaration

class VPReplicateRecipe : public VPRecipeBase { /* full declaration omitted */ };

Description

VPReplicateRecipe replicates a given instruction producing multiple scalar copies of the original scalar type, one per lane, instead of producing a single copy of widened type for all lanes. If the instruction is known to be uniform only one copy, per lane zero, will be generated.

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

Inherits from: VPRecipeBase

Method Overview

  • public VPReplicateRecipe(llvm::Instruction * I, bool IsUniform, bool IsPredicated = false)
  • public static inline bool classof(const llvm::VPRecipeBase * V)
  • public void execute(llvm::VPTransformState & State)
  • public void print(llvm::raw_ostream & O, const llvm::Twine & Indent) const
  • public void setAlsoPack(bool Pack)
  • public ~VPReplicateRecipe()

Inherited from VPRecipeBase:

Methods

VPReplicateRecipe(llvm::Instruction* I,
                  bool IsUniform,
                  bool IsPredicated = false)

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

Parameters

llvm::Instruction* I
bool IsUniform
bool IsPredicated = false

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:944

Parameters

const llvm::VPRecipeBase* V

void execute(llvm::VPTransformState& State)

Description

Generate replicas of the desired Ingredient. Replicas will be generated for all parts and lanes unless a specific part and lane are specified in the \p State.

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

Parameters

llvm::VPTransformState& State

void print(llvm::raw_ostream& O,
           const llvm::Twine& Indent) const

Description

Print the recipe.

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

Parameters

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

void setAlsoPack(bool Pack)

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

Parameters

bool Pack

~VPReplicateRecipe()

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