clang 23.0.0git
CIRGenBuiltinAArch64.cpp File Reference
#include "CIRGenBuilder.h"
#include "CIRGenFunction.h"
#include "clang/Basic/TargetBuiltins.h"
#include "clang/CIR/MissingFeatures.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "mlir/IR/Value.h"
#include "clang/AST/GlobalDecl.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/arm_sve_builtin_cg.inc"

Go to the source code of this file.

Macros

#define SVEMAP1(NameBase, llvmIntrinsic, TypeModifier)
#define SVEMAP2(NameBase, TypeModifier)
#define GET_SVE_LLVM_INTRINSIC_MAP

Functions

static mlir::Value genVscaleTimesFactor (mlir::Location loc, CIRGenBuilderTy builder, mlir::Type cirTy, int32_t scalingFactor)
static const AArch64BuiltinInfo * findARMVectorIntrinsicInMap (ArrayRef< AArch64BuiltinInfo > intrinsicMap, unsigned builtinID, bool &mapProvenSorted)

Variables

static bool aarch64SVEIntrinsicsProvenSorted = false
static const AArch64BuiltinInfo aarch64SVEIntrinsicMap []
static const std::pair< unsigned, unsignedneonEquivalentIntrinsicMap []

Macro Definition Documentation

◆ GET_SVE_LLVM_INTRINSIC_MAP

#define GET_SVE_LLVM_INTRINSIC_MAP

◆ SVEMAP1

#define SVEMAP1 ( NameBase,
llvmIntrinsic,
TypeModifier )
Value:
{SVE::BI__builtin_sve_##NameBase, Intrinsic::llvmIntrinsic, TypeModifier}

Definition at line 61 of file CIRGenBuiltinAArch64.cpp.

◆ SVEMAP2

#define SVEMAP2 ( NameBase,
TypeModifier )
Value:
{SVE::BI__builtin_sve_##NameBase, 0, TypeModifier}

Definition at line 64 of file CIRGenBuiltinAArch64.cpp.

Function Documentation

◆ findARMVectorIntrinsicInMap()

◆ genVscaleTimesFactor()

mlir::Value genVscaleTimesFactor ( mlir::Location loc,
CIRGenBuilderTy builder,
mlir::Type cirTy,
int32_t scalingFactor )
static

Variable Documentation

◆ aarch64SVEIntrinsicMap

const AArch64BuiltinInfo aarch64SVEIntrinsicMap[]
static
Initial value:
= {
#define GET_SVE_LLVM_INTRINSIC_MAP
}

Definition at line 66 of file CIRGenBuiltinAArch64.cpp.

Referenced by clang::CIRGen::CIRGenFunction::emitAArch64SVEBuiltinExpr().

◆ aarch64SVEIntrinsicsProvenSorted

bool aarch64SVEIntrinsicsProvenSorted = false
static

◆ neonEquivalentIntrinsicMap

const std::pair<unsigned, unsigned> neonEquivalentIntrinsicMap[]
static