LLVM 23.0.0git
llvm::Intrinsic::IITDescriptor Struct Reference

This is a type descriptor which explains the type requirements of an intrinsic. More...

#include "llvm/IR/Intrinsics.h"

Public Types

enum  IITDescriptorKind {
  Void , VarArg , MMX , Token ,
  Metadata , Half , BFloat , Float ,
  Double , Quad , Integer , Vector ,
  Pointer , Struct , AMX , PPCQuad ,
  AArch64Svcount , WasmExternref , WasmFuncref , Overloaded ,
  Match , Extend , Trunc , OneNthEltsVec ,
  SameVecWidth , VecElement , Subdivide2 , Subdivide4 ,
  VecOfBitcastsToInt , VecOfAnyPtrsToElt
}

Public Member Functions

unsigned getOverloadIndex () const
std::pair< AnyKindVectorConstraint, AnyKindElementConstraint > getOverloadConstraints () const
unsigned getVectorDivisor () const
unsigned getRefOverloadIndex () const

Static Public Member Functions

static IITDescriptor get (IITDescriptorKind K, unsigned Field)
static IITDescriptor get (IITDescriptorKind K, unsigned short Hi, unsigned short Lo)
static IITDescriptor getVector (unsigned Width, bool IsScalable)

Public Attributes

enum llvm::Intrinsic::IITDescriptor::IITDescriptorKind Kind
union { 
   unsigned   IntegerWidth 
   unsigned   PointerAddressSpace 
   unsigned   StructNumElements 
   unsigned   OverloadInfo 
   ElementCount   VectorWidth 
}; 

Detailed Description

This is a type descriptor which explains the type requirements of an intrinsic.

This is returned by getIntrinsicInfoTableEntries.

Definition at line 173 of file Intrinsics.h.

Member Enumeration Documentation

◆ IITDescriptorKind

Enumerator
Void 
VarArg 
MMX 
Token 
Metadata 
Half 
BFloat 
Float 
Double 
Quad 
Integer 
Vector 
Pointer 
Struct 
AMX 
PPCQuad 
AArch64Svcount 
WasmExternref 
WasmFuncref 
Overloaded 
Match 
Extend 
Trunc 
OneNthEltsVec 
SameVecWidth 
VecElement 
Subdivide2 
Subdivide4 
VecOfBitcastsToInt 
VecOfAnyPtrsToElt 

Definition at line 174 of file Intrinsics.h.

Member Function Documentation

◆ get() [1/2]

IITDescriptor llvm::Intrinsic::IITDescriptor::get ( IITDescriptorKind K,
unsigned Field )
inlinestatic

Definition at line 262 of file Intrinsics.h.

◆ get() [2/2]

IITDescriptor llvm::Intrinsic::IITDescriptor::get ( IITDescriptorKind K,
unsigned short Hi,
unsigned short Lo )
inlinestatic

Definition at line 267 of file Intrinsics.h.

References llvm::Hi, and llvm::Lo.

◆ getOverloadConstraints()

std::pair< AnyKindVectorConstraint, AnyKindElementConstraint > llvm::Intrinsic::IITDescriptor::getOverloadConstraints ( ) const
inline

Definition at line 240 of file Intrinsics.h.

References assert(), Kind, Overloaded, and OverloadInfo.

◆ getOverloadIndex()

unsigned llvm::Intrinsic::IITDescriptor::getOverloadIndex ( ) const
inline

◆ getRefOverloadIndex()

unsigned llvm::Intrinsic::IITDescriptor::getRefOverloadIndex ( ) const
inline

Definition at line 257 of file Intrinsics.h.

References assert(), Kind, OverloadInfo, and VecOfAnyPtrsToElt.

◆ getVector()

IITDescriptor llvm::Intrinsic::IITDescriptor::getVector ( unsigned Width,
bool IsScalable )
inlinestatic

Definition at line 274 of file Intrinsics.h.

References llvm::ElementCount::get(), and Vector.

◆ getVectorDivisor()

unsigned llvm::Intrinsic::IITDescriptor::getVectorDivisor ( ) const
inline

Definition at line 252 of file Intrinsics.h.

References assert(), Kind, OneNthEltsVec, and OverloadInfo.

Member Data Documentation

◆ [union]

◆ IntegerWidth

unsigned llvm::Intrinsic::IITDescriptor::IntegerWidth

Definition at line 217 of file Intrinsics.h.

◆ Kind

◆ OverloadInfo

unsigned llvm::Intrinsic::IITDescriptor::OverloadInfo

◆ PointerAddressSpace

unsigned llvm::Intrinsic::IITDescriptor::PointerAddressSpace

Definition at line 218 of file Intrinsics.h.

◆ StructNumElements

unsigned llvm::Intrinsic::IITDescriptor::StructNumElements

Definition at line 219 of file Intrinsics.h.

◆ VectorWidth

ElementCount llvm::Intrinsic::IITDescriptor::VectorWidth

Definition at line 221 of file Intrinsics.h.


The documentation for this struct was generated from the following file: