class BuildVectorSDNode

Declaration

class BuildVectorSDNode : public SDNode { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1916

Inherits from: SDNode

Member Variables

Inherited from SDNode:

protected
public PersistentId

Method Overview

  • public BuildVectorSDNode()
  • public static bool classof(const llvm::SDNode * N)
  • public llvm::ConstantFPSDNode * getConstantFPSplatNode(const llvm::APInt & DemandedElts, llvm::BitVector * UndefElements = nullptr) const
  • public llvm::ConstantFPSDNode * getConstantFPSplatNode(llvm::BitVector * UndefElements = nullptr) const
  • public int32_t getConstantFPSplatPow2ToLog2Int(llvm::BitVector * UndefElements, uint32_t BitWidth) const
  • public llvm::ConstantSDNode * getConstantSplatNode(const llvm::APInt & DemandedElts, llvm::BitVector * UndefElements = nullptr) const
  • public llvm::ConstantSDNode * getConstantSplatNode(llvm::BitVector * UndefElements = nullptr) const
  • public llvm::SDValue getSplatValue(const llvm::APInt & DemandedElts, llvm::BitVector * UndefElements = nullptr) const
  • public llvm::SDValue getSplatValue(llvm::BitVector * UndefElements = nullptr) const
  • public bool isConstant() const
  • public bool isConstantSplat(llvm::APInt & SplatValue, llvm::APInt & SplatUndef, unsigned int & SplatBitSize, bool & HasAnyUndefs, unsigned int MinSplatBits = 0, bool isBigEndian = false) const

Inherited from SDNode:

Inherited from FoldingSetBase::Node:

Methods

BuildVectorSDNode()

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1919

static bool classof(const llvm::SDNode* N)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1996

Parameters

const llvm::SDNode* N

llvm::ConstantFPSDNode* getConstantFPSplatNode(
    const llvm::APInt& DemandedElts,
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the demanded splatted constant FP or null if this is not a constant FP splat. The DemandedElts mask indicates the elements that must be in the splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1975

Parameters

const llvm::APInt& DemandedElts
llvm::BitVector* UndefElements = nullptr

llvm::ConstantFPSDNode* getConstantFPSplatNode(
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the splatted constant FP or null if this is not a constant FP splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1984

Parameters

llvm::BitVector* UndefElements = nullptr

int32_t getConstantFPSplatPow2ToLog2Int(
    llvm::BitVector* UndefElements,
    uint32_t BitWidth) const

Description

If this is a constant FP splat and the splatted constant FP is an exact power or 2, return the log base 2 integer value. Otherwise, return -1. The BitWidth specifies the necessary bit precision.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1991

Parameters

llvm::BitVector* UndefElements
uint32_t BitWidth

llvm::ConstantSDNode* getConstantSplatNode(
    const llvm::APInt& DemandedElts,
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the demanded splatted constant or null if this is not a constant splat. The DemandedElts mask indicates the elements that must be in the splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1957

Parameters

const llvm::APInt& DemandedElts
llvm::BitVector* UndefElements = nullptr

llvm::ConstantSDNode* getConstantSplatNode(
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the splatted constant or null if this is not a constant splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1966

Parameters

llvm::BitVector* UndefElements = nullptr

llvm::SDValue getSplatValue(
    const llvm::APInt& DemandedElts,
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the demanded splatted value or a null value if this is not a splat. The DemandedElts mask indicates the elements that must be in the splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1941

Parameters

const llvm::APInt& DemandedElts
llvm::BitVector* UndefElements = nullptr

llvm::SDValue getSplatValue(
    llvm::BitVector* UndefElements =
        nullptr) const

Description

Returns the splatted value or a null value if this is not a splat. If passed a non-null UndefElements bitvector, it will resize it to match the vector width and set the bits where elements are undef.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1948

Parameters

llvm::BitVector* UndefElements = nullptr

bool isConstant() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1994

bool isConstantSplat(
    llvm::APInt& SplatValue,
    llvm::APInt& SplatUndef,
    unsigned int& SplatBitSize,
    bool& HasAnyUndefs,
    unsigned int MinSplatBits = 0,
    bool isBigEndian = false) const

Description

Check if this is a constant splat, and if so, find the smallest element size that splats the vector. If MinSplatBits is nonzero, the element size must be at least that large. Note that the splat element may be the entire vector (i.e., a one element vector). Returns the splat element value in SplatValue. Any undefined bits in that value are zero, and the corresponding bits in the SplatUndef mask are set. The SplatBitSize value is set to the splat element size in bits. HasAnyUndefs is set to true if any bits in the vector are undefined. isBigEndian describes the endianness of the target.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1930

Parameters

llvm::APInt& SplatValue
llvm::APInt& SplatUndef
unsigned int& SplatBitSize
bool& HasAnyUndefs
unsigned int MinSplatBits = 0
bool isBigEndian = false