|
clang 22.0.0git
|
#include "CIRGenBuilder.h"#include "CIRGenFunction.h"#include "CIRGenModule.h"#include "mlir/IR/Location.h"#include "mlir/IR/ValueRange.h"#include "clang/Basic/Builtins.h"#include "clang/Basic/TargetBuiltins.h"#include "clang/CIR/Dialect/IR/CIRTypes.h"#include "clang/CIR/MissingFeatures.h"#include "llvm/Support/ErrorHandling.h"Go to the source code of this file.
Functions | |
| template<typename... Operands> | |
| static mlir::Value | emitIntrinsicCallOp (CIRGenBuilderTy &builder, mlir::Location loc, const StringRef str, const mlir::Type &resTy, Operands &&...op) |
| static mlir::Value | emitVectorFCmp (CIRGenBuilderTy &builder, llvm::SmallVector< mlir::Value > &ops, mlir::Location loc, cir::CmpOpKind pred, bool shouldInvert) |
| static mlir::Value | getMaskVecValue (CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value mask, unsigned numElems) |
| static cir::VecShuffleOp | emitPshufWord (CIRGenBuilderTy &builder, const mlir::Value vec, const mlir::Value immediate, const mlir::Location loc, const bool isLow) |
| static void | computeFullLaneShuffleMask (CIRGenFunction &cgf, const mlir::Value vec, uint32_t imm, const bool isShufP, llvm::SmallVectorImpl< int64_t > &outIndices) |
| static mlir::Value | emitX86CompressExpand (CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value source, mlir::Value mask, mlir::Value inputVector, const std::string &id) |
| static mlir::Value | getBoolMaskVecValue (CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value mask, unsigned numElems) |
| static mlir::Value | emitX86Select (CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value mask, mlir::Value op0, mlir::Value op1) |
| static mlir::Value | emitX86MaskAddLogic (CIRGenBuilderTy &builder, mlir::Location loc, const std::string &intrinsicName, SmallVectorImpl< mlir::Value > &ops) |
| static mlir::Value | emitX86MaskUnpack (CIRGenBuilderTy &builder, mlir::Location loc, const std::string &intrinsicName, SmallVectorImpl< mlir::Value > &ops) |
| static mlir::Value | emitX86MaskLogic (CIRGenBuilderTy &builder, mlir::Location loc, cir::BinOpKind binOpKind, SmallVectorImpl< mlir::Value > &ops, bool invertLHS=false) |
| static mlir::Value | emitX86MaskTest (CIRGenBuilderTy &builder, mlir::Location loc, const std::string &intrinsicName, SmallVectorImpl< mlir::Value > &ops) |
| static mlir::Value | emitVecInsert (CIRGenBuilderTy &builder, mlir::Location loc, mlir::Value vec, mlir::Value value, mlir::Value indexOp) |
| static mlir::Value | emitX86FunnelShift (CIRGenBuilderTy &builder, mlir::Location location, mlir::Value &op0, mlir::Value &op1, mlir::Value &amt, bool isRight) |
| static mlir::Value | emitX86Muldq (CIRGenBuilderTy &builder, mlir::Location loc, bool isSigned, SmallVectorImpl< mlir::Value > &ops, unsigned opTypePrimitiveSizeInBits) |
| static mlir::Value | emitX86vpcom (CIRGenBuilderTy &builder, mlir::Location loc, llvm::SmallVector< mlir::Value > ops, bool isSigned) |
|
static |
Definition at line 132 of file CIRGenBuiltinX86.cpp.
References clang::cast(), clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenModule::getDataLayout(), and cir::CIRDataLayout::getTypeSizeInBits().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 29 of file CIRGenBuiltinX86.cpp.
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr(), emitX86CompressExpand(), emitX86FunnelShift(), emitX86MaskAddLogic(), and emitX86MaskTest().
|
static |
Definition at line 100 of file CIRGenBuiltinX86.cpp.
References clang::cast(), clang::CIRGen::CIRGenBuilderTy::createVecShuffle(), and clang::CIRGen::CIRGenFunction::getZExtIntValueFromConstOp().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 282 of file CIRGenBuiltinX86.cpp.
References clang::cast(), and clang::CIRGen::CIRGenBuilderTy::getUInt64().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 61 of file CIRGenBuiltinX86.cpp.
References cir::MissingFeatures::cgFPOptionsRAII(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createNot(), cir::CIRBaseBuilderTy::createVecCompare(), and cir::MissingFeatures::emitConstrainedFPCall().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 155 of file CIRGenBuiltinX86.cpp.
References clang::cast(), emitIntrinsicCallOp(), and getMaskVecValue().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 297 of file CIRGenBuiltinX86.cpp.
References cir::CIRBaseBuilderTy::createIntCast(), emitIntrinsicCallOp(), and clang::CIRGen::CIRGenBuilderTy::getUIntNTy().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 202 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBitcast(), emitIntrinsicCallOp(), getMaskVecValue(), and getType().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 255 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBinop(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createNot(), getMaskVecValue(), and getType().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 270 of file CIRGenBuiltinX86.cpp.
References clang::cast(), emitIntrinsicCallOp(), getMaskVecValue(), clang::CIRGen::CIRGenBuilderTy::getSInt32Ty(), and getType().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 217 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBitcast(), clang::CIRGen::CIRGenBuilderTy::createVecShuffle(), getMaskVecValue(), clang::CIRGen::CIRGenBuilderTy::getSInt32Ty(), and getType().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 331 of file CIRGenBuiltinX86.cpp.
References cir::CIRBaseBuilderTy::createAnd(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createMul(), cir::CIRBaseBuilderTy::createShift(), cir::CIRBaseBuilderTy::getConstant(), and clang::CIRGen::CIRGenBuilderTy::getSInt64Ty().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 188 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createSelect(), and getBoolMaskVecValue().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 365 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBitcast(), cir::CIRBaseBuilderTy::createVecCompare(), cir::CIRBaseBuilderTy::getConstAPInt(), cir::CIRBaseBuilderTy::getNullValue(), clang::CIRGen::CIRGenBuilderTy::getSIntNTy(), clang::CIRGen::CIRGenBuilderTy::getUIntNTy(), and clang::CIRGen::CIRGenFunction::getZExtIntValueFromConstOp().
Referenced by clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr().
|
static |
Definition at line 167 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBitcast(), clang::CIRGen::CIRGenBuilderTy::createVecShuffle(), cir::CIRBaseBuilderTy::getBoolTy(), and clang::CIRGen::CIRGenBuilderTy::getSInt32Ty().
Referenced by emitX86Select().
|
static |
Definition at line 74 of file CIRGenBuiltinX86.cpp.
References clang::cast(), cir::CIRBaseBuilderTy::createBitcast(), clang::CIRGen::CIRGenBuilderTy::createVecShuffle(), clang::CIRGen::CIRGenBuilderTy::getSInt32Ty(), and clang::CIRGen::CIRGenBuilderTy::getUIntNTy().
Referenced by clang::CodeGen::CodeGenFunction::EmitX86BuiltinExpr(), clang::CIRGen::CIRGenFunction::emitX86BuiltinExpr(), emitX86CompressExpand(), emitX86MaskAddLogic(), emitX86MaskLogic(), emitX86MaskTest(), and emitX86MaskUnpack().