clang 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
RISCVVIntrinsicUtils.h File Reference
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include <cstdint>
#include <optional>
#include <set>
#include <string>
#include <unordered_map>
#include <vector>

Go to the source code of this file.

Classes

class  clang::RISCV::Policy
 
struct  clang::RISCV::PrototypeDescriptor
 
struct  clang::RISCV::LMULType
 
class  clang::RISCV::RVVType
 
class  clang::RISCV::RVVTypeCache
 
class  clang::RISCV::RVVIntrinsic
 
struct  clang::RISCV::RVVIntrinsicRecord
 

Namespaces

namespace  llvm
 Diagnostic wrappers for TextAPI types for error reporting.
 
namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::RISCV
 RISCV builtins.
 

Typedefs

using clang::RISCV::VScaleVal = std::optional< unsigned >
 
using clang::RISCV::RVVTypePtr = RVVType *
 
using clang::RISCV::RVVTypes = std::vector< RVVTypePtr >
 

Enumerations

enum class  clang::RISCV::VectorTypeModifier : uint8_t {
  clang::RISCV::NoModifier , clang::RISCV::Widening2XVector , clang::RISCV::Widening4XVector , clang::RISCV::Widening8XVector ,
  clang::RISCV::MaskVector , clang::RISCV::Log2EEW3 , clang::RISCV::Log2EEW4 , clang::RISCV::Log2EEW5 ,
  clang::RISCV::Log2EEW6 , clang::RISCV::FixedSEW8 , clang::RISCV::FixedSEW16 , clang::RISCV::FixedSEW32 ,
  clang::RISCV::FixedSEW64 , clang::RISCV::LFixedLog2LMULN3 , clang::RISCV::LFixedLog2LMULN2 , clang::RISCV::LFixedLog2LMULN1 ,
  clang::RISCV::LFixedLog2LMUL0 , clang::RISCV::LFixedLog2LMUL1 , clang::RISCV::LFixedLog2LMUL2 , clang::RISCV::LFixedLog2LMUL3 ,
  clang::RISCV::SFixedLog2LMULN3 , clang::RISCV::SFixedLog2LMULN2 , clang::RISCV::SFixedLog2LMULN1 , clang::RISCV::SFixedLog2LMUL0 ,
  clang::RISCV::SFixedLog2LMUL1 , clang::RISCV::SFixedLog2LMUL2 , clang::RISCV::SFixedLog2LMUL3 , clang::RISCV::SEFixedLog2LMULN3 ,
  clang::RISCV::SEFixedLog2LMULN2 , clang::RISCV::SEFixedLog2LMULN1 , clang::RISCV::SEFixedLog2LMUL0 , clang::RISCV::SEFixedLog2LMUL1 ,
  clang::RISCV::SEFixedLog2LMUL2 , clang::RISCV::SEFixedLog2LMUL3 , clang::RISCV::Tuple2 , clang::RISCV::Tuple3 ,
  clang::RISCV::Tuple4 , clang::RISCV::Tuple5 , clang::RISCV::Tuple6 , clang::RISCV::Tuple7 ,
  clang::RISCV::Tuple8
}
 
enum class  clang::RISCV::BaseTypeModifier : uint8_t {
  clang::RISCV::Invalid , clang::RISCV::Scalar , clang::RISCV::Vector , clang::RISCV::Void ,
  clang::RISCV::SizeT , clang::RISCV::Ptrdiff , clang::RISCV::UnsignedLong , clang::RISCV::SignedLong ,
  clang::RISCV::Float32
}
 
enum class  clang::RISCV::TypeModifier : uint8_t {
  clang::RISCV::NoModifier = 0 , clang::RISCV::Pointer = 1 << 0 , clang::RISCV::Const = 1 << 1 , clang::RISCV::Immediate = 1 << 2 ,
  clang::RISCV::UnsignedInteger = 1 << 3 , clang::RISCV::SignedInteger = 1 << 4 , clang::RISCV::Float = 1 << 5 , clang::RISCV::BFloat = 1 << 6 ,
  clang::RISCV::LMUL1 = 1 << 7 , clang::RISCV::MaxOffset = 7 , clang::RISCV::LLVM_MARK_AS_BITMASK_ENUM =(LMUL1)
}
 
enum class  clang::RISCV::BasicType : uint8_t {
  clang::RISCV::Unknown = 0 , clang::RISCV::Int8 = 1 << 0 , clang::RISCV::Int16 = 1 << 1 , clang::RISCV::Int32 = 1 << 2 ,
  clang::RISCV::Int64 = 1 << 3 , clang::RISCV::BFloat16 = 1 << 4 , clang::RISCV::Float16 = 1 << 5 , clang::RISCV::Float32 = 1 << 6 ,
  clang::RISCV::Float64 = 1 << 7 , clang::RISCV::MaxOffset = 7 , clang::RISCV::LLVM_MARK_AS_BITMASK_ENUM =(Float64)
}
 
enum  clang::RISCV::ScalarTypeKind : uint8_t {
  clang::RISCV::Void , clang::RISCV::Size_t , clang::RISCV::Ptrdiff_t , clang::RISCV::UnsignedLong ,
  clang::RISCV::SignedLong , clang::RISCV::Boolean , clang::RISCV::SignedInteger , clang::RISCV::UnsignedInteger ,
  clang::RISCV::Float , clang::RISCV::BFloat , clang::RISCV::Invalid , clang::RISCV::Undefined
}
 
enum  clang::RISCV::PolicyScheme : uint8_t { clang::RISCV::SchemeNone , clang::RISCV::HasPassthruOperand , clang::RISCV::HasPolicyOperand }
 
enum  clang::RISCV::RVVRequire : uint32_t {
  clang::RISCV::RVV_REQ_None = 0 , clang::RISCV::RVV_REQ_RV64 = 1 << 0 , clang::RISCV::RVV_REQ_Zvfhmin = 1 << 1 , clang::RISCV::RVV_REQ_Xsfvcp = 1 << 2 ,
  clang::RISCV::RVV_REQ_Xsfvfnrclipxfqf = 1 << 3 , clang::RISCV::RVV_REQ_Xsfvfwmaccqqq = 1 << 4 , clang::RISCV::RVV_REQ_Xsfvqmaccdod = 1 << 5 , clang::RISCV::RVV_REQ_Xsfvqmaccqoq = 1 << 6 ,
  clang::RISCV::RVV_REQ_Zvbb = 1 << 7 , clang::RISCV::RVV_REQ_Zvbc = 1 << 8 , clang::RISCV::RVV_REQ_Zvkb = 1 << 9 , clang::RISCV::RVV_REQ_Zvkg = 1 << 10 ,
  clang::RISCV::RVV_REQ_Zvkned = 1 << 11 , clang::RISCV::RVV_REQ_Zvknha = 1 << 12 , clang::RISCV::RVV_REQ_Zvknhb = 1 << 13 , clang::RISCV::RVV_REQ_Zvksed = 1 << 14 ,
  clang::RISCV::RVV_REQ_Zvksh = 1 << 15 , clang::RISCV::RVV_REQ_Zvfbfwma = 1 << 16 , clang::RISCV::RVV_REQ_Zvfbfmin = 1 << 17 , clang::RISCV::RVV_REQ_Zvfh = 1 << 18 ,
  clang::RISCV::RVV_REQ_Experimental = 1 << 19
}
 

Functions

llvm::SmallVector< PrototypeDescriptor > clang::RISCV::parsePrototypes (llvm::StringRef Prototypes)
 
llvm::raw_ostream & clang::RISCV::operator<< (llvm::raw_ostream &OS, const RVVIntrinsicRecord &RVVInstrRecord)
 
 clang::RISCV::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE ()