class RVVType

Declaration

class RVVType { /* full declaration omitted */ };

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:172

Member Variables

private clang::RISCV::BasicType BT
private clang::RISCV::ScalarTypeKind ScalarType = Invalid
private clang::RISCV::LMULType LMUL
private bool IsPointer = false
private bool IsImmediate = false
private bool IsConstant = false
private unsigned int ElementBitwidth = 0
private clang::RISCV::VScaleVal Scale = 0
private bool Valid
private std::string BuiltinStr
private std::string ClangBuiltinStr
private std::string Str
private std::string ShortStr

Method Overview

Methods

RVVType(clang::RISCV::BasicType BT,
        int Log2LMUL,
        const clang::RISCV::PrototypeDescriptor&
            Profile)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:194

Parameters

clang::RISCV::BasicType BT
int Log2LMUL
const clang::RISCV::PrototypeDescriptor& Profile

RVVType()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:193

void applyBasicType()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:245

void applyFixedLog2LMUL(int Log2LMUL,
                        enum FixedLMULType Type)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:253

Parameters

int Log2LMUL
enum FixedLMULType Type

void applyFixedSEW(unsigned int NewSEW)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:252

Parameters

unsigned int NewSEW

void applyLog2EEW(unsigned int Log2EEW)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:251

Parameters

unsigned int Log2EEW

void applyModifier(
    const clang::RISCV::PrototypeDescriptor&
        prototype)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:249

Parameters

const clang::RISCV::PrototypeDescriptor& prototype

static llvm::Optional<RVVTypePtr> computeType(
    clang::RISCV::BasicType BT,
    int Log2LMUL,
    clang::RISCV::PrototypeDescriptor Proto)

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:272

Parameters

clang::RISCV::BasicType BT
int Log2LMUL
clang::RISCV::PrototypeDescriptor Proto

static llvm::Optional<RVVTypes> computeTypes(
    clang::RISCV::BasicType BT,
    int Log2LMUL,
    unsigned int NF,
    llvm::ArrayRef<PrototypeDescriptor> Prototype)

Description

Compute output and input types by applying different config (basic type and LMUL with type transformers). It also record result of type in legal or illegal set to avoid compute the same config again. The result maybe have illegal RVVType.

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:270

Parameters

clang::RISCV::BasicType BT
int Log2LMUL
unsigned int NF
llvm::ArrayRef<PrototypeDescriptor> Prototype

const std::string& getBuiltinStr() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:198

const std::string& getClangBuiltinStr() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:202

unsigned int getElementBitwidth() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:235

clang::RISCV::ScalarTypeKind getScalarType() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:237

clang::RISCV::VScaleVal getScale() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:238

const std::string& getShortStr()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:209

const std::string& getTypeStr() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:206

void initBuiltinStr()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:256

void initClangBuiltinStr()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:258

void initShortStr()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:262

void initTypeStr()

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:260

bool isConstant() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:233

bool isFloat(unsigned int Width) const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:230

Parameters

unsigned int Width

bool isFloat() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:223

bool isFloatVector(unsigned int Width) const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:227

Parameters

unsigned int Width

bool isPointer() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:234

bool isScalar() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:218

bool isSignedInteger() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:224

bool isValid() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:217

bool isVector(unsigned int Width) const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:220

Parameters

unsigned int Width

bool isVector() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:219

bool verifyType() const

Declared at: clang/include/clang/Support/RISCVVIntrinsicUtils.h:242