clang 22.0.0git
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 , SEFixedLog2LMULN3 ,
  SEFixedLog2LMULN2 , SEFixedLog2LMULN1 , SEFixedLog2LMUL0 , SEFixedLog2LMUL1 ,
  SEFixedLog2LMUL2 , SEFixedLog2LMUL3 , Tuple2 , Tuple3 ,
  Tuple4 , Tuple5 , Tuple6 , Tuple7 ,
  Tuple8
}
enum class  BaseTypeModifier : uint8_t {
  Invalid , Scalar , Vector , Void ,
  SizeT , Ptrdiff , UnsignedLong , SignedLong ,
  Float32
}
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 , BFloat = 1 << 6 ,
  LMUL1 = 1 << 7 , MaxOffset = 7 , 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 , BFloat16 = 1 << 4 , Float16 = 1 << 5 , Float32 = 1 << 6 ,
  Float64 = 1 << 7 , MaxOffset = 7 , LLVM_MARK_AS_BITMASK_ENUM =(Float64)
}
enum  ScalarTypeKind : uint8_t {
  Void , Size_t , Ptrdiff_t , UnsignedLong ,
  SignedLong , Boolean , SignedInteger , UnsignedInteger ,
  Float , BFloat , Invalid , Undefined
}
enum  PolicyScheme : uint8_t { SchemeNone , HasPassthruOperand , HasPolicyOperand }

Functions

llvm::SmallVector< PrototypeDescriptorparsePrototypes (llvm::StringRef Prototypes)
llvm::raw_ostream & operator<< (llvm::raw_ostream &OS, enum PolicyScheme PS)
llvm::raw_ostream & operator<< (llvm::raw_ostream &OS, const RVVIntrinsicRecord &RVVInstrRecord)
 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()
static VectorTypeModifier getTupleVTM (unsigned NF)
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

Definition at line 246 of file RISCVVIntrinsicUtils.h.

◆ RVVTypes

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

Definition at line 247 of file RISCVVIntrinsicUtils.h.

◆ VScaleVal

using clang::RISCV::VScaleVal = 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 220 of file TargetBuiltins.h.

◆ BaseTypeModifier

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

Definition at line 79 of file RISCVVIntrinsicUtils.h.

◆ BasicType

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

Definition at line 205 of file RISCVVIntrinsicUtils.h.

◆ PolicyScheme

Enumerator
SchemeNone 
HasPassthruOperand 
HasPolicyOperand 

Definition at line 372 of file RISCVVIntrinsicUtils.h.

◆ ScalarTypeKind

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

Definition at line 220 of file RISCVVIntrinsicUtils.h.

◆ TypeModifier

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

Definition at line 92 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 
SEFixedLog2LMULN3 
SEFixedLog2LMULN2 
SEFixedLog2LMULN1 
SEFixedLog2LMUL0 
SEFixedLog2LMUL1 
SEFixedLog2LMUL2 
SEFixedLog2LMUL3 
Tuple2 
Tuple3 
Tuple4 
Tuple5 
Tuple6 
Tuple7 
Tuple8 

Definition at line 33 of file RISCVVIntrinsicUtils.h.

Function Documentation

◆ computeRVVTypeHashValue()

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

◆ getTupleVTM()

◆ LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE()

clang::RISCV::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ( )

◆ operator<<() [1/3]

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

◆ operator<<() [2/3]

llvm::raw_ostream & clang::RISCV::operator<< ( llvm::raw_ostream & OS,
enum PolicyScheme PS )

Definition at line 1201 of file RISCVVIntrinsicUtils.cpp.

References HasPassthruOperand, HasPolicyOperand, SchemeNone, and STRINGIFY.

◆ operator<<() [3/3]

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

Definition at line 1212 of file RISCVVIntrinsicUtils.cpp.

◆ parsePrototypes() [1/2]

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

◆ parsePrototypes() [2/2]

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