clang  16.0.0git
Classes | Typedefs | Enumerations | Functions
clang::RISCV Namespace Reference

RISCV builtins. More...

Classes

struct  LMULType
 
struct  PrototypeDescriptor
 
class  RVVIntrinsic
 
struct  RVVIntrinsicRecord
 
class  RVVType
 
class  RVVTypeCache
 

Typedefs

using VScaleVal = llvm::Optional< unsigned >
 
using RVVTypePtr = RVVType *
 
using RVVTypes = std::vector< RVVTypePtr >
 

Enumerations

enum  { LastTIBuiltin = clang::Builtin::FirstTSBuiltin - 1, FirstRVVBuiltin = clang::Builtin::FirstTSBuiltin, LastRVVBuiltin = RISCVVector::FirstTSBuiltin - 1, LastTSBuiltin }
 
enum  VectorTypeModifier : uint8_t {
  VectorTypeModifier::NoModifier, VectorTypeModifier::Widening2XVector, VectorTypeModifier::Widening4XVector, VectorTypeModifier::Widening8XVector,
  VectorTypeModifier::MaskVector, VectorTypeModifier::Log2EEW3, VectorTypeModifier::Log2EEW4, VectorTypeModifier::Log2EEW5,
  VectorTypeModifier::Log2EEW6, VectorTypeModifier::FixedSEW8, VectorTypeModifier::FixedSEW16, VectorTypeModifier::FixedSEW32,
  VectorTypeModifier::FixedSEW64, VectorTypeModifier::LFixedLog2LMULN3, VectorTypeModifier::LFixedLog2LMULN2, VectorTypeModifier::LFixedLog2LMULN1,
  VectorTypeModifier::LFixedLog2LMUL0, VectorTypeModifier::LFixedLog2LMUL1, VectorTypeModifier::LFixedLog2LMUL2, VectorTypeModifier::LFixedLog2LMUL3,
  VectorTypeModifier::SFixedLog2LMULN3, VectorTypeModifier::SFixedLog2LMULN2, VectorTypeModifier::SFixedLog2LMULN1, VectorTypeModifier::SFixedLog2LMUL0,
  VectorTypeModifier::SFixedLog2LMUL1, VectorTypeModifier::SFixedLog2LMUL2, VectorTypeModifier::SFixedLog2LMUL3
}
 
enum  BaseTypeModifier : uint8_t {
  Invalid, BaseTypeModifier::Scalar, BaseTypeModifier::Vector, Void,
  BaseTypeModifier::SizeT, BaseTypeModifier::Ptrdiff, UnsignedLong, SignedLong
}
 
enum  TypeModifier : uint8_t {
  TypeModifier::NoModifier = 0, TypeModifier::Pointer = 1 << 0, TypeModifier::Const = 1 << 1, TypeModifier::Immediate = 1 << 2,
  UnsignedInteger = 1 << 3, SignedInteger = 1 << 4, Float = 1 << 5, TypeModifier::LMUL1 = 1 << 6,
  TypeModifier::MaxOffset = 6, TypeModifier::LLVM_MARK_AS_BITMASK_ENUM =(LMUL1)
}
 
enum  Policy : uint8_t {
  TU = 0, TA = 1, TUMA = 2, TAMA = 3,
  TUMU = 4, TAMU = 5, MU = 6, MA = 7,
  TUM = 10, TAM = 11, PolicyNone
}
 
enum  BasicType : uint8_t {
  BasicType::Unknown = 0, BasicType::Int8 = 1 << 0, BasicType::Int16 = 1 << 1, BasicType::Int32 = 1 << 2,
  BasicType::Int64 = 1 << 3, BasicType::Float16 = 1 << 4, BasicType::Float32 = 1 << 5, BasicType::Float64 = 1 << 6,
  BasicType::MaxOffset = 6, BasicType::LLVM_MARK_AS_BITMASK_ENUM =(Float64)
}
 
enum  ScalarTypeKind : uint8_t {
  Void, Void, Size_t, Ptrdiff_t,
  UnsignedLong, UnsignedLong, SignedLong, SignedLong,
  Boolean, SignedInteger, SignedInteger = 1 << 4, UnsignedInteger,
  UnsignedInteger = 1 << 3, Float, Float = 1 << 5, Invalid,
  Invalid
}
 
enum  PolicyScheme : uint8_t { SchemeNone, HasPassthruOperand, HasPolicyOperand, HasPassthruOperandAtIdx1 }
 
enum  RVVRequire : uint8_t { RVV_REQ_None = 0, RVV_REQ_RV64 = 1 << 0, RVV_REQ_FullMultiply = 1 << 1 }
 

Functions

llvm::SmallVector< PrototypeDescriptorparsePrototypes (llvm::StringRef Prototypes)
 
llvm::raw_ostream & operator<< (llvm::raw_ostream &OS, const RVVIntrinsicRecord &RVVInstrRecord)
 
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
 
static uint64_t computeRVVTypeHashValue (BasicType BT, int Log2LMUL, PrototypeDescriptor Proto)
 
SmallVector< PrototypeDescriptorparsePrototypes (StringRef Prototypes)
 
raw_ostream & operator<< (raw_ostream &OS, const RVVIntrinsicRecord &Record)
 

Detailed Description

RISCV builtins.

Typedef Documentation

◆ RVVTypePtr

using clang::RISCV::RVVTypePtr = typedef RVVType *

Definition at line 185 of file RISCVVIntrinsicUtils.h.

◆ RVVTypes

using clang::RISCV::RVVTypes = typedef std::vector<RVVTypePtr>

Definition at line 186 of file RISCVVIntrinsicUtils.h.

◆ VScaleVal

Definition at line 30 of file RISCVVIntrinsicUtils.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
LastTIBuiltin 
FirstRVVBuiltin 
LastRVVBuiltin 
LastTSBuiltin 

Definition at line 144 of file TargetBuiltins.h.

◆ BaseTypeModifier

enum clang::RISCV::BaseTypeModifier : uint8_t
strong
Enumerator
Invalid 
Scalar 
Vector 
Void 
SizeT 
Ptrdiff 
UnsignedLong 
SignedLong 

Definition at line 65 of file RISCVVIntrinsicUtils.h.

◆ BasicType

enum clang::RISCV::BasicType : uint8_t
strong
Enumerator
Unknown 
Int8 
Int16 
Int32 
Int64 
Float16 
Float32 
Float64 
MaxOffset 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 147 of file RISCVVIntrinsicUtils.h.

◆ Policy

enum clang::RISCV::Policy : uint8_t
Enumerator
TU 
TA 
TUMA 
TAMA 
TUMU 
TAMU 
MU 
MA 
TUM 
TAM 
PolicyNone 

Definition at line 96 of file RISCVVIntrinsicUtils.h.

◆ PolicyScheme

Enumerator
SchemeNone 
HasPassthruOperand 
HasPolicyOperand 
HasPassthruOperandAtIdx1 

Definition at line 303 of file RISCVVIntrinsicUtils.h.

◆ RVVRequire

enum clang::RISCV::RVVRequire : uint8_t
Enumerator
RVV_REQ_None 
RVV_REQ_RV64 
RVV_REQ_FullMultiply 

Definition at line 409 of file RISCVVIntrinsicUtils.h.

◆ ScalarTypeKind

Enumerator
Void 
Void 
Size_t 
Ptrdiff_t 
UnsignedLong 
UnsignedLong 
SignedLong 
SignedLong 
Boolean 
SignedInteger 
SignedInteger 
UnsignedInteger 
UnsignedInteger 
Float 
Float 
Invalid 
Invalid 

Definition at line 161 of file RISCVVIntrinsicUtils.h.

◆ TypeModifier

enum clang::RISCV::TypeModifier : uint8_t
strong
Enumerator
NoModifier 
Pointer 
Const 
Immediate 
UnsignedInteger 
SignedInteger 
Float 
LMUL1 
MaxOffset 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 77 of file RISCVVIntrinsicUtils.h.

◆ VectorTypeModifier

enum clang::RISCV::VectorTypeModifier : uint8_t
strong
Enumerator
NoModifier 
Widening2XVector 
Widening4XVector 
Widening8XVector 
MaskVector 
Log2EEW3 
Log2EEW4 
Log2EEW5 
Log2EEW6 
FixedSEW8 
FixedSEW16 
FixedSEW32 
FixedSEW64 
LFixedLog2LMULN3 
LFixedLog2LMULN2 
LFixedLog2LMULN1 
LFixedLog2LMUL0 
LFixedLog2LMUL1 
LFixedLog2LMUL2 
LFixedLog2LMUL3 
SFixedLog2LMULN3 
SFixedLog2LMULN2 
SFixedLog2LMULN1 
SFixedLog2LMUL0 
SFixedLog2LMUL1 
SFixedLog2LMUL2 
SFixedLog2LMUL3 

Definition at line 33 of file RISCVVIntrinsicUtils.h.

Function Documentation

◆ computeRVVTypeHashValue()

static uint64_t clang::RISCV::computeRVVTypeHashValue ( BasicType  BT,
int  Log2LMUL,
PrototypeDescriptor  Proto 
)
static

◆ LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

clang::RISCV::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ( )

◆ operator<<() [1/2]

llvm::raw_ostream& clang::RISCV::operator<< ( llvm::raw_ostream &  OS,
const RVVIntrinsicRecord RVVInstrRecord 
)

◆ operator<<() [2/2]

raw_ostream& clang::RISCV::operator<< ( raw_ostream &  OS,
const RVVIntrinsicRecord Record 
)

◆ parsePrototypes() [1/2]

llvm::SmallVector<PrototypeDescriptor> clang::RISCV::parsePrototypes ( llvm::StringRef  Prototypes)

◆ parsePrototypes() [2/2]

SmallVector<PrototypeDescriptor> clang::RISCV::parsePrototypes ( StringRef  Prototypes)