clang 17.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>
Include dependency graph for RISCVVIntrinsicUtils.h:
This graph shows which files directly or indirectly include this file:

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
 YAML serialization mapping.
 
namespace  clang
 
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
}
 
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
}
 
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::LMUL1 = 1 << 6 ,
  clang::RISCV::MaxOffset = 6 , 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::Float16 = 1 << 4 , clang::RISCV::Float32 = 1 << 5 , clang::RISCV::Float64 = 1 << 6 ,
  clang::RISCV::MaxOffset = 6 , 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::Invalid
}
 
enum  clang::RISCV::PolicyScheme : uint8_t { clang::RISCV::SchemeNone , clang::RISCV::HasPassthruOperand , clang::RISCV::HasPolicyOperand }
 
enum  clang::RISCV::RVVRequire : uint8_t { clang::RISCV::RVV_REQ_None = 0 , clang::RISCV::RVV_REQ_RV64 = 1 << 0 , clang::RISCV::RVV_REQ_FullMultiply = 1 << 1 }
 

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 ()