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

RISCV builtins. More...

Classes

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

Typedefs

using VScaleVal = std::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 class  VectorTypeModifier : uint8_t {
  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
}
 
enum class  BaseTypeModifier : uint8_t {
  Invalid , Scalar , Vector , Void ,
  SizeT , Ptrdiff , UnsignedLong , SignedLong
}
 
enum class  TypeModifier : uint8_t {
  NoModifier = 0 , Pointer = 1 << 0 , Const = 1 << 1 , Immediate = 1 << 2 ,
  UnsignedInteger = 1 << 3 , SignedInteger = 1 << 4 , Float = 1 << 5 , LMUL1 = 1 << 6 ,
  MaxOffset = 6 , LLVM_MARK_AS_BITMASK_ENUM =(LMUL1)
}
 
enum class  BasicType : uint8_t {
  Unknown = 0 , Int8 = 1 << 0 , Int16 = 1 << 1 , Int32 = 1 << 2 ,
  Int64 = 1 << 3 , Float16 = 1 << 4 , Float32 = 1 << 5 , Float64 = 1 << 6 ,
  MaxOffset = 6 , LLVM_MARK_AS_BITMASK_ENUM =(Float64)
}
 
enum  ScalarTypeKind : uint8_t {
  Void , Size_t , Ptrdiff_t , UnsignedLong ,
  SignedLong , Boolean , SignedInteger , UnsignedInteger ,
  Float , Invalid
}
 
enum  PolicyScheme : uint8_t { SchemeNone , HasPassthruOperand , HasPolicyOperand }
 
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 227 of file RISCVVIntrinsicUtils.h.

◆ RVVTypes

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

Definition at line 228 of file RISCVVIntrinsicUtils.h.

◆ VScaleVal

using clang::RISCV::VScaleVal = typedef std::optional<unsigned>

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 class 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 class clang::RISCV::BasicType : uint8_t
strong
Enumerator
Unknown 
Int8 
Int16 
Int32 
Int64 
Float16 
Float32 
Float64 
MaxOffset 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 189 of file RISCVVIntrinsicUtils.h.

◆ PolicyScheme

Enumerator
SchemeNone 
HasPassthruOperand 
HasPolicyOperand 

Definition at line 345 of file RISCVVIntrinsicUtils.h.

◆ RVVRequire

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

Definition at line 461 of file RISCVVIntrinsicUtils.h.

◆ ScalarTypeKind

Enumerator
Void 
Size_t 
Ptrdiff_t 
UnsignedLong 
SignedLong 
Boolean 
SignedInteger 
UnsignedInteger 
Float 
Invalid 

Definition at line 203 of file RISCVVIntrinsicUtils.h.

◆ TypeModifier

enum class 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 class 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 
)

Definition at line 1057 of file RISCVVIntrinsicUtils.cpp.

References int, and OS.

◆ parsePrototypes() [1/2]

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

◆ parsePrototypes() [2/2]

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