MLIR-AIE
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
AIEVecToLLVM.cpp File Reference
#include "../PassDetail.h"
#include "aie/Conversion/AIEVecToLLVM/AIEVecToLLVM.h"
#include "aie/Dialect/AIEVec/AIE1/IR/AIEVecAIE1Ops.h"
#include "aie/Dialect/AIEVec/AIEVecUtils.h"
#include "aie/Dialect/AIEVec/IR/AIEVecOps.h"
#include "aie/Dialect/AIEVec/Utils/Utils.h"
#include "aie/Dialect/XLLVM/XLLVMDialect.h"
#include "mlir/Conversion/LLVMCommon/ConversionTarget.h"
#include "mlir/Conversion/LLVMCommon/Pattern.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "mlir/Dialect/Math/IR/Math.h"
#include "mlir/Dialect/UB/IR/UBOps.h"
#include "mlir/IR/TypeUtilities.h"
#include <sstream>
#include "aie/Conversion/Passes.h.inc"
+ Include dependency graph for AIEVecToLLVM.cpp:

Go to the source code of this file.

Classes

struct  xilinx::aievec::BufferParams
 
class  xilinx::aievec::AddOpConversion
 
class  xilinx::aievec::AddElemOpAIE2Conversion
 
struct  xilinx::aievec::AddElemOpAIE2Conversion::DecodedAddElemOp
 
class  xilinx::aievec::SubElemOpAIE2Conversion
 
struct  xilinx::aievec::SubElemOpAIE2Conversion::DecodedSubElemOp
 
class  xilinx::aievec::AddElemOpAIE2pConversion
 
struct  xilinx::aievec::AddElemOpAIE2pConversion::DecodedAddElemOp
 
class  xilinx::aievec::SubElemOpAIE2pConversion
 
struct  xilinx::aievec::SubElemOpAIE2pConversion::DecodedSubElemOp
 
class  xilinx::aievec::SubOpConversion
 
class  xilinx::aievec::FMAOpConversion
 
class  xilinx::aievec::MulOpConversion
 
class  xilinx::aievec::MulElemOpConversion
 
struct  xilinx::aievec::MulElemOpConversion::DecodedMulElemOp
 
class  xilinx::aievec::MulElemOpAIE2pConversion
 
struct  xilinx::aievec::MulElemOpAIE2pConversion::DecodedMulElemOp
 
class  xilinx::aievec::FMAElemOpAIE2pConversion
 
class  xilinx::aievec::UPSOpAIE2Conversion
 
class  xilinx::aievec::UPSOpAIE2pConversion
 
class  xilinx::aievec::SRSOpAIE2Conversion
 
class  xilinx::aievec::SRSOpAIE2pConversion
 
class  xilinx::aievec::UPDOpConversion
 
class  xilinx::aievec::ConcatOpConversion
 
class  xilinx::aievec::ExtOpConversion
 
class  xilinx::aievec::ExtOpAIE2pConversion
 
class  xilinx::aievec::SelectOpConversion
 
class  xilinx::aievec::PackOpConversion
 
class  xilinx::aievec::UnpackOpConversion
 
class  xilinx::aievec::BroadcastOpConversion
 
class  xilinx::aievec::MaxOpConversion
 
class  xilinx::aievec::MinOpConversion
 
class  xilinx::aievec::MaxOpAIE2pConversion
 
class  xilinx::aievec::MinOpAIE2pConversion
 
class  xilinx::aievec::CmpOpConversionBase< MaxLtBf16IntrOp, MinGeBf16IntrOp, MaxLt32IntrOp, MinGe32IntrOp, MaxLt16IntrOp, MinGe16IntrOp >
 
class  xilinx::aievec::SelOpConversionBase< Sel16IntrOp, Sel32IntrOp >
 
class  xilinx::aievec::BroadcastScalarOpConversion
 
class  xilinx::aievec::BroadcastScalarOpAIE2pConversion
 
class  xilinx::aievec::ShiftOpConversion
 
class  xilinx::aievec::ShiftOpAIE2pConversion
 
class  xilinx::aievec::ExtractElemOpConversion
 
class  xilinx::aievec::FMAElemOpConversion
 
class  xilinx::aievec::MatMulOpConversion
 
class  xilinx::aievec::MatMulOpAIE2pConversion
 
class  xilinx::aievec::FoldAIECastOps
 
class  xilinx::aievec::FoldAIECastOpsAIE2p
 
class  xilinx::aievec::ShuffleOpConversion
 
class  xilinx::aievec::InvOpAIE2pConversion
 
class  xilinx::aievec::ExpOpAIE2pConversion
 
class  xilinx::aievec::TanhOpAIE2pConversion
 
class  xilinx::aievec::RsqrtOpAIE2pConversion
 
class  xilinx::aievec::FdivOpConversion
 
class  xilinx::aievec::ExtractElemOpAIE2pConversion
 
class  xilinx::aievec::ConcatOpAIE2pConversion
 
struct  xilinx::aievec::ConvertAIEVecToLLVMPass
 

Namespaces

namespace  xilinx
 
namespace  xilinx::aievec
 

Macros

#define GEN_PASS_DEF_CONVERTAIEVECTOLLVM
 

Typedefs

using xilinx::aievec::CmpOpConversion = CmpOpConversionBase< xllvm::VectorMaxLtBf16IntrOp, xllvm::VectorMinGeBf16IntrOp, xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp, xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp >
 
using xilinx::aievec::CmpOpAIE2pConversion = CmpOpConversionBase< xllvm::VectorMaxLtBf16AIE2pIntrOp, xllvm::VectorMinGeBf16AIE2pIntrOp, xllvm::VectorMaxLt32AIE2pIntrOp, xllvm::VectorMinGe32AIE2pIntrOp, xllvm::VectorMaxLt16AIE2pIntrOp, xllvm::VectorMinGe16AIE2pIntrOp >
 
using xilinx::aievec::SelOpConversion = SelOpConversionBase< xllvm::VectorSel16IntrOp, xllvm::VectorSel32IntrOp >
 
using xilinx::aievec::SelOpAIE2pConversion = SelOpConversionBase< xllvm::VectorSel16AIE2pIntrOp, xllvm::VectorSel32AIE2pIntrOp >
 

Enumerations

enum class  xilinx::aievec::AIEArch { xilinx::aievec::AIE2 , xilinx::aievec::AIE2p }
 

Functions

std::string xilinx::aievec::getVectorTypeString (VectorType type, bool abbrev=false, bool acc=false)
 
std::string xilinx::aievec::getMulOrFMAIntrinsicName (Operation *op)
 
uint32_t xilinx::aievec::encodeSquare (uint32_t square)
 
void xilinx::aievec::encodeConf (uint32_t conf[2], const BufferParams &x, const BufferParams &z, bool sub)
 
void xilinx::aievec::populateAIEVecToLLVMCommonConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
 
void xilinx::aievec::populateAIEVecToLLVMAIE2ConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption)
 
void xilinx::aievec::populateAIEVecToLLVMAIE2pConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
 
void xilinx::aievec::populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, StringRef aieTarget)
 
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass ()
 
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass (const xilinx::ConvertAIEVecToLLVMOptions &options)
 

Macro Definition Documentation

◆ GEN_PASS_DEF_CONVERTAIEVECTOLLVM

#define GEN_PASS_DEF_CONVERTAIEVECTOLLVM

Definition at line 30 of file AIEVecToLLVM.cpp.