class ConstantDataVector

Declaration

class ConstantDataVector : public ConstantDataSequential { /* full declaration omitted */ };

Description

A vector constant whose element type is a simple 1/2/4/8-byte integer or float/double, and whose elements are just simple data values (i.e. ConstantInt/ConstantFP). This Constant node has no operands because it stores all of the elements of the constant as densely packed data, instead of as Value*'s.

Declared at: llvm/include/llvm/IR/Constants.h:762

Inherits from: ConstantDataSequential

Member Variables

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 29
public static MaximumAlignment = 1U << MaxAlignmentExponent

Method Overview

  • public ConstantDataVector(const llvm::ConstantDataVector &)
  • public static bool classof(const llvm::Value * V)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint8_t> Elts)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint16_t> Elts)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint32_t> Elts)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<uint64_t> Elts)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<float> Elts)
  • public static llvm::Constant * get(llvm::LLVMContext & Context, ArrayRef<double> Elts)
  • public static llvm::Constant * getFP(llvm::LLVMContext & Context, ArrayRef<uint16_t> Elts)
  • public static llvm::Constant * getFP(llvm::LLVMContext & Context, ArrayRef<uint32_t> Elts)
  • public static llvm::Constant * getFP(llvm::LLVMContext & Context, ArrayRef<uint64_t> Elts)
  • public static llvm::Constant * getSplat(unsigned int NumElts, llvm::Constant * Elt)
  • public llvm::Constant * getSplatValue() const
  • public inline llvm::VectorType * getType() const
  • public bool isSplat() const

Inherited from ConstantDataSequential:

Inherited from ConstantData:

Inherited from Constant:

Inherited from User:

Inherited from Value:

Methods

ConstantDataVector(
    const llvm::ConstantDataVector&)

Declared at: llvm/include/llvm/IR/Constants.h:769

Parameters

const llvm::ConstantDataVector&

static bool classof(const llvm::Value* V)

Description

Methods for support type inquiry through isa, cast, and dyn_cast:

Declared at: llvm/include/llvm/IR/Constants.h:810

Parameters

const llvm::Value* V

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<uint8_t> Elts)

Description

get() constructors - Return a constant with vector type with an element count and element type matching the ArrayRef passed in. Note that this can return a ConstantAggregateZero object.

Declared at: llvm/include/llvm/IR/Constants.h:774

Parameters

llvm::LLVMContext& Context
ArrayRef<uint8_t> Elts

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<uint16_t> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:775

Parameters

llvm::LLVMContext& Context
ArrayRef<uint16_t> Elts

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<uint32_t> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:776

Parameters

llvm::LLVMContext& Context
ArrayRef<uint32_t> Elts

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<uint64_t> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:777

Parameters

llvm::LLVMContext& Context
ArrayRef<uint64_t> Elts

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<float> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:778

Parameters

llvm::LLVMContext& Context
ArrayRef<float> Elts

static llvm::Constant* get(
    llvm::LLVMContext& Context,
    ArrayRef<double> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:779

Parameters

llvm::LLVMContext& Context
ArrayRef<double> Elts

static llvm::Constant* getFP(
    llvm::LLVMContext& Context,
    ArrayRef<uint16_t> Elts)

Description

getFP() constructors - Return a constant with vector type with an element count and element type of float with the precision matching the number of bits in the ArrayRef passed in. (i.e. half for 16bits, float for 32bits, double for 64bits) Note that this can return a ConstantAggregateZero object.

Declared at: llvm/include/llvm/IR/Constants.h:786

Parameters

llvm::LLVMContext& Context
ArrayRef<uint16_t> Elts

static llvm::Constant* getFP(
    llvm::LLVMContext& Context,
    ArrayRef<uint32_t> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:787

Parameters

llvm::LLVMContext& Context
ArrayRef<uint32_t> Elts

static llvm::Constant* getFP(
    llvm::LLVMContext& Context,
    ArrayRef<uint64_t> Elts)

Declared at: llvm/include/llvm/IR/Constants.h:788

Parameters

llvm::LLVMContext& Context
ArrayRef<uint64_t> Elts

static llvm::Constant* getSplat(
    unsigned int NumElts,
    llvm::Constant* Elt)

Description

Return a ConstantVector with the specified constant in each element. The specified constant has to be a of a compatible type (i8/i16/ i32/i64/float/double) and must be a ConstantFP or ConstantInt.

Declared at: llvm/include/llvm/IR/Constants.h:793

Parameters

unsigned int NumElts
llvm::Constant* Elt

llvm::Constant* getSplatValue() const

Description

If this is a splat constant, meaning that all of the elements have the same value, return that value. Otherwise return NULL.

Declared at: llvm/include/llvm/IR/Constants.h:801

inline llvm::VectorType* getType() const

Description

Specialize the getType() method to always return a VectorType, which reduces the amount of casting needed in parts of the compiler.

Declared at: llvm/include/llvm/IR/Constants.h:805

bool isSplat() const

Description

Returns true if this is a splat constant, meaning that all elements have the same value.

Declared at: llvm/include/llvm/IR/Constants.h:797