|
clang 23.0.0git
|
#include "CodeGenFunction.h"#include "clang/Basic/TargetBuiltins.h"#include "llvm/IR/IntrinsicsRISCV.h"#include "llvm/TargetParser/RISCVISAInfo.h"#include "llvm/TargetParser/RISCVTargetParser.h"#include "clang/Basic/riscv_vector_builtin_cg.inc"#include "clang/Basic/riscv_sifive_vector_builtin_cg.inc"#include "clang/Basic/riscv_andes_vector_builtin_cg.inc"Go to the source code of this file.
Functions | |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVVLEFFBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVVSSEBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVIndexedStoreBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoUnaryBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoVNotBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoMaskBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoVFUnaryBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoVWCVTBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVPseudoVNCVTBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVVlenbBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVVsetvliBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVVSEMaskBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVUnitStridedSegLoadTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVUnitStridedSegStoreTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVUnitStridedSegLoadFFTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVStridedSegLoadTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVStridedSegStoreTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVAveragingBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVNarrowingClipBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVFloatingPointBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVWideningFloatingPointBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVIndexedSegLoadTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVIndexedSegStoreTupleBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked, unsigned SegInstSEW) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVFMABuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVWideningFMABuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVFloatingUnaryBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVFloatingConvBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVFloatingReductionBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVReinterpretBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVGetBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVSetBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static LLVM_ATTRIBUTE_NOINLINE Value * | emitRVVCreateBuiltin (CodeGenFunction *CGF, const CallExpr *E, ReturnValueSlot ReturnValue, llvm::Type *ResultType, Intrinsic::ID ID, SmallVectorImpl< Value * > &Ops, int PolicyAttrs, bool IsMasked) |
| static Value * | loadRISCVFeatureBits (unsigned Index, CGBuilderTy &Builder, CodeGenModule &CGM) |
Variables | |
| static constexpr unsigned | RVV_VTA = 0x1 |
| static constexpr unsigned | RVV_VMA = 0x2 |
|
static |
Definition at line 493 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 943 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), getType(), and clang::isa().
|
static |
Definition at line 787 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 554 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 821 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 750 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 692 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 893 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), and getType().
|
static |
Definition at line 625 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 660 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 93 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 523 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 180 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 120 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 195 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 252 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 150 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 222 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), clang::CodeGen::CodeGenFunction::CGM, getType(), RVV_VMA, and RVV_VTA.
|
static |
Definition at line 854 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, getType(), clang::CodeGen::CodeGenTypeCache::Int64Ty, and clang::isa().
|
static |
Definition at line 918 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::cast(), and getType().
|
static |
Definition at line 434 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 465 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 394 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CallExpr::getArg(), clang::Expr::getType(), RVV_VMA, RVV_VTA, and V.
|
static |
Definition at line 336 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 367 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 32 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CallExpr::getArg(), clang::CallExpr::getNumArgs(), clang::Expr::getType(), clang::Value::getType(), RVV_VMA, RVV_VTA, and V.
|
static |
Definition at line 284 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenModule::getLLVMContext(), and clang::CodeGen::CodeGenTypeCache::SizeTy.
|
static |
Definition at line 312 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 301 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, and clang::CodeGen::CodeGenModule::getIntrinsic().
|
static |
Definition at line 69 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 589 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, RVV_VMA, and RVV_VTA.
|
static |
Definition at line 721 of file RISCV.cpp.
References clang::CodeGen::CodeGenFunction::Builder, and clang::CodeGen::CodeGenFunction::CGM.
|
static |
Definition at line 986 of file RISCV.cpp.
References clang::cast(), clang::CodeGen::CodeGenModule::CreateRuntimeVariable(), and clang::CharUnits::fromQuantity().
Referenced by clang::CodeGen::CodeGenFunction::EmitRISCVCpuSupports().
|
staticconstexpr |
Definition at line 26 of file RISCV.cpp.
Referenced by emitRVVAveragingBuiltin(), emitRVVFloatingConvBuiltin(), emitRVVFloatingPointBuiltin(), emitRVVFloatingReductionBuiltin(), emitRVVFloatingUnaryBuiltin(), emitRVVIndexedSegLoadTupleBuiltin(), emitRVVNarrowingClipBuiltin(), emitRVVPseudoUnaryBuiltin(), emitRVVPseudoVFUnaryBuiltin(), emitRVVPseudoVNCVTBuiltin(), emitRVVPseudoVNotBuiltin(), emitRVVPseudoVWCVTBuiltin(), emitRVVStridedSegLoadTupleBuiltin(), emitRVVUnitStridedSegLoadFFTupleBuiltin(), emitRVVUnitStridedSegLoadTupleBuiltin(), emitRVVVLEFFBuiltin(), and emitRVVWideningFloatingPointBuiltin().
|
staticconstexpr |
Definition at line 25 of file RISCV.cpp.
Referenced by emitRVVAveragingBuiltin(), emitRVVFloatingConvBuiltin(), emitRVVFloatingPointBuiltin(), emitRVVFloatingReductionBuiltin(), emitRVVFloatingUnaryBuiltin(), emitRVVIndexedSegLoadTupleBuiltin(), emitRVVNarrowingClipBuiltin(), emitRVVPseudoUnaryBuiltin(), emitRVVPseudoVFUnaryBuiltin(), emitRVVPseudoVNCVTBuiltin(), emitRVVPseudoVNotBuiltin(), emitRVVPseudoVWCVTBuiltin(), emitRVVStridedSegLoadTupleBuiltin(), emitRVVUnitStridedSegLoadFFTupleBuiltin(), emitRVVUnitStridedSegLoadTupleBuiltin(), emitRVVVLEFFBuiltin(), and emitRVVWideningFloatingPointBuiltin().