MLIR-AIE 1.4.5.dev
xilinx::aievec Namespace Reference

Namespaces

namespace  aie1

Classes

struct  MatMulRecipe
struct  ShuffleModeShape
class  AIEVecType
struct  CanonicalizeVectorForAIEVecOptions
 Options for the "canonicalize-vector-for-aievec" pipeline. More...
struct  LowerVectorToAIEVecOptions
 Options for the "lower-vector-to-aievec" pipeline. More...
struct  OptimizeAIEVecOptions
 Options for the "optimize-aievec" pipeline. More...
struct  ConvertVectorToAIEVecOptions
 Options for the "convert-vector-to-aievec" pipeline. More...
struct  BufferParams
class  AddOpConversion
class  AddElemOpAIE2Conversion
class  SubElemOpAIE2Conversion
class  AccFloatAddSubAIE2pConversion
class  NegOpAIE2Conversion
class  NegOpAIE2pConversion
class  SubOpConversion
class  FMAOpConversion
class  MulOpConversion
class  MulElemOpConversion
class  MulElemOpAIE2pConversion
class  FMAElemOpAIE2pConversion
class  UPSOpAIE2Conversion
class  UPSOpAIE2pConversion
class  SRSOpAIE2Conversion
class  SRSOpAIE2pConversion
class  UPDOpConversion
class  ConcatOpConversion
class  ExtOpConversion
class  ExtOpAIE2pConversion
class  SelectOpConversion
class  PackOpConversion
class  UnpackOpConversion
class  UnpackI4OpAIE2pConversion
class  BroadcastOpConversion
class  MaxOpConversion
class  MinOpConversion
class  MaxOpAIE2pConversion
class  MinOpAIE2pConversion
class  CmpOpConversionBase
class  SelOpConversionBase
class  BroadcastScalarOpConversion
class  BroadcastScalarOpAIE2pConversion
class  ShiftOpConversion
class  ShiftOpAIE2pConversion
class  ExtractElemOpConversion
class  FMAElemOpConversion
struct  ResolvedMatMulOperand
class  MatMulOpConversion
class  MatMulOpAIE2pConversion
class  FoldAIECastOps
class  FoldAIECastOpsAIE2p
class  ShuffleOpConversion
class  ShuffleOpAIE2pConversion
class  InvOpAIE2pConversion
class  ExpOpAIE2pConversion
class  AccFloatUnaryOpAIE2pConversion
class  RsqrtOpAIE2pConversion
class  OneLaneBroadcastOpConversion
class  OneLaneInsertOpConversion
class  FdivOpConversion
class  ExtractElemOpAIE2pConversion
class  ConcatOpAIE2pConversion
struct  ConvertAIEVecToLLVMPass
struct  ShuffleGather
struct  ShuffleRequest
struct  ShufflePlan
class  AIE2PShufflePlanner
struct  AIEVecConvAnalysis

Typedefs

using AddElemOpAIE2pConversion
using SubElemOpAIE2pConversion
using CmpOpConversion
using CmpOpAIE2pConversion
using SelOpConversion
using SelOpAIE2pConversion

Enumerations

enum class  MatMulRecipeKind {
  AIE2_I8xI4_4x16x8 , AIE2_I8xI8_4x8x8 , AIE2_I16xI8_4x4x8 , AIE2_I16xI16_4x2x8 ,
  AIE2_I16xI8_2x8x8_Acc64 , AIE2_I16xI8_4x8x4_Acc64 , AIE2_I16xI16_2x4x8_Acc64 , AIE2_I16xI16_4x4x4_Acc64 ,
  AIE2_I32xI16_4x2x4_Acc64 , AIE2_BF16_4x8x4 , AIE2P_I8_8x8x8 , AIE2P_I16_8x2x8 ,
  AIE2P_BFP16_8x8x8 , AIE2P_BFP16_4x8x8 , AIE2P_BF16Elem_8x8x4 , AIE2P_BF16Elem_4x8x4 ,
  AIE2P_BF16Outer_8x1x8
}
enum class  AIEArch { AIE2 , AIE2p }

Functions

void populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, llvm::StringRef aieTarget)
void populateAIEVecToLLVMCommonConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
void populateAIEVecToLLVMAIE2ConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
void populateAIEVecToLLVMAIE2pConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns)
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createConvertAIEVecToLLVMPass ()
std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > createConvertAIEVecToLLVMPass (const xilinx::ConvertAIEVecToLLVMOptions &options)
char getHexValue (int val)
bool isPowerOfTwo (int32_t n)
mlir::VectorType createVectorType (unsigned lanes, mlir::Type elementType)
int32_t getElementSizeInBits (mlir::VectorType type)
unsigned getVectorLaneSize (mlir::VectorType type)
int32_t getVectorSizeInBits (mlir::VectorType type)
bool isAIEOp (mlir::Operation *op)
mlir::VectorType getVectorOpDestType (mlir::VectorType type, bool AIE2)
mlir::AffineExpr flattenedStridedExpr (llvm::ArrayRef< int64_t > sizes, llvm::ArrayRef< mlir::AffineExpr > exprs, mlir::MLIRContext *context)
mlir::AffineExpr constructLinearizedAffineExprForUPDOp (UPDOp updOp)
std::pair< mlir::AffineExpr, int32_t > extractBaseAndOffset (mlir::AffineExpr expr)
bool isAssumingNoImplicitBroadcastOfDynamicSizes (mlir::Block *block)
bool isAssumingNoImplicitBroadcastOfDynamicSizes (mlir::OpBuilder &builder)
std::unique_ptr< mlir::Pass > createAIEVecConvolutionAnalysisPass ()
std::optional< MatMulRecipe > getMatMulRecipe (bool aie2p, mlir::Type lhsElemTy, mlir::Type rhsElemTy, mlir::Type accElemTy, int64_t m, int64_t k, int64_t n)
std::optional< llvm::SmallVector< ShuffleMode, 2 > > getTileTransposeModes (bool aie2p, mlir::Type elemTy, int64_t rows, int64_t cols)
std::optional< MatMulRecipe > checkMatMulTile (bool aie2p, mlir::VectorType lhsTy, mlir::VectorType rhsTy, mlir::VectorType accTy, bool lhsTransposed, bool rhsTransposed, llvm::function_ref< mlir::InFlightDiagnostic()> emitError=nullptr)
ShuffleModeShape getShuffleModeShape (ShuffleMode mode)
bool isAIE2POnlyShuffleMode (ShuffleMode mode)
std::array< uint8_t, 64 > getShuffleModeBytePermutation (ShuffleMode mode)
void buildConvertVectorToAIEVec (mlir::OpPassManager &pm, const ConvertVectorToAIEVecOptions &options)
 Adds the "convert-vector-to-aievec" pipeline to the OpPassManager.
void buildCanonicalizeVectorForAIEVec (mlir::OpPassManager &pm, const CanonicalizeVectorForAIEVecOptions &options)
void buildLowerVectorToAIEVec (mlir::OpPassManager &pm, const LowerVectorToAIEVecOptions &options)
void buildOptimizeAIEVec (mlir::OpPassManager &pm, const OptimizeAIEVecOptions &options)
void registerAIEVecPipelines ()
 Register all pipelines for the AIE Vector dialect.
std::unique_ptr<::mlir::Pass > createCopyRemovalPass ()
 Create a pass that removes unnecessary Copy operations.
std::unique_ptr<::mlir::Pass > createDynamicSizeNoImplicitBroadcastPass ()
void buildDynamicSizeNoImplicitBroadcastPass (mlir::OpPassManager &pm)
std::unique_ptr<::mlir::Pass > createSplitVectorLoadUpsChainsPass ()
 Create a pass that splits vector.load + aievec.ups chains to reduce shuffle operations for AIE2p targets.
std::unique_ptr<::mlir::Pass > createBF16EmulationPass ()
 Create a pass that runs f32 vector arithmetic on the bf16 datapath: multiplies and transcendentals take inputs rounded to bf16, sums stay f32.
void registerTransformDialectExtension (mlir::DialectRegistry &registry)
template<typename TransferReadLikeOp, typename = std::enable_if_t< std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp> || std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp::Adaptor>>>
std::optional< int64_t > getTransferReadAlignmentOffset (TransferReadLikeOp readOp, mlir::VectorType vType, int64_t alignment)
mlir::VectorType getFlattenedVectorType (mlir::VectorType vecTy)
void populateAIEVecToLLVMConversionPatterns (mlir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns, Aie2Fp32Emulation aie2Fp32EmulationOption, StringRef aieTarget)
unsigned estimateLLVMShuffleCost (const ShuffleGather &gather)
bool simulateShufflePlan (const ShuffleGather &gather, const ShufflePlan &plan)
void populateAIE2PShufflePlannerPatterns (mlir::RewritePatternSet &patterns, std::shared_ptr< AIE2PShufflePlanner > planner)
void configureAIE2PShufflePlannerLegality (mlir::ConversionTarget &target, std::shared_ptr< AIE2PShufflePlanner > planner)
SmallVector< NamedAttribute > buildFMAOpSplatAttrForElemTy (aievec::aie1::FMAOp fmaOp, int64_t bcastPos, int64_t step=1)
void configureAIEVecConvOpTransformationLegalizations (ConversionTarget &target, AnalysisManager &am)
void populateAIEVecConvOpTransformationPatterns (RewritePatternSet &patterns, AnalysisManager &am, unsigned shiftParam)
void configureAIEVecConvOpTransformationLegalizations (mlir::ConversionTarget &target, mlir::AnalysisManager &am)
void populateAIEVecConvOpTransformationPatterns (mlir::RewritePatternSet &patterns, mlir::AnalysisManager &am, unsigned shiftParam)
template<typename TransferReadLikeOp, typename>
std::optional< int64_t > getTransferReadAlignmentOffset (TransferReadLikeOp readOp, VectorType vType, int64_t alignment)
template std::optional< int64_t > getTransferReadAlignmentOffset (vector::TransferReadOp readOp, VectorType vType, int64_t alignment)
template std::optional< int64_t > getTransferReadAlignmentOffset (vector::TransferReadOp::Adaptor readOp, VectorType vType, int64_t alignment)
VectorType getFlattenedVectorType (VectorType vecTy)

Typedef Documentation

◆ AddElemOpAIE2pConversion

Initial value:
AccFloatAddSubAIE2pConversion<aievec::AddElemOp,
xllvm::AddACC2048AccFloatAIE2pIntrOp>

Definition at line 510 of file AIEVecToLLVM.cpp.

◆ CmpOpAIE2pConversion

Initial value:
xllvm::VectorMaxLtBf16AIE2pIntrOp, xllvm::VectorMinGeBf16AIE2pIntrOp,
xllvm::VectorMaxLt32AIE2pIntrOp, xllvm::VectorMinGe32AIE2pIntrOp,
xllvm::VectorMaxLt16AIE2pIntrOp, xllvm::VectorMinGe16AIE2pIntrOp>

Definition at line 3462 of file AIEVecToLLVM.cpp.

◆ CmpOpConversion

Initial value:
CmpOpConversionBase<xllvm::VectorMaxLtBf16IntrOp,
xllvm::VectorMinGeBf16IntrOp,
xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp,
xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp>

Definition at line 3456 of file AIEVecToLLVM.cpp.

◆ SelOpAIE2pConversion

Initial value:
SelOpConversionBase<xllvm::VectorSel16AIE2pIntrOp,
xllvm::VectorSel32AIE2pIntrOp>

Definition at line 3561 of file AIEVecToLLVM.cpp.

◆ SelOpConversion

◆ SubElemOpAIE2pConversion

Initial value:
AccFloatAddSubAIE2pConversion<aievec::SubElemOp,
xllvm::SubACC2048AccFloatAIE2pIntrOp>

Definition at line 513 of file AIEVecToLLVM.cpp.

Enumeration Type Documentation

◆ AIEArch

enum class xilinx::aievec::AIEArch
strong
Enumerator
AIE2 
AIE2p 

Definition at line 1490 of file AIEVecToLLVM.cpp.

◆ MatMulRecipeKind

Enumerator
AIE2_I8xI4_4x16x8 
AIE2_I8xI8_4x8x8 
AIE2_I16xI8_4x4x8 
AIE2_I16xI16_4x2x8 
AIE2_I16xI8_2x8x8_Acc64 
AIE2_I16xI8_4x8x4_Acc64 
AIE2_I16xI16_2x4x8_Acc64 
AIE2_I16xI16_4x4x4_Acc64 
AIE2_I32xI16_4x2x4_Acc64 
AIE2_BF16_4x8x4 
AIE2P_I8_8x8x8 
AIE2P_I16_8x2x8 
AIE2P_BFP16_8x8x8 
AIE2P_BFP16_4x8x8 
AIE2P_BF16Elem_8x8x4 
AIE2P_BF16Elem_4x8x4 
AIE2P_BF16Outer_8x1x8 

Definition at line 29 of file AIEVecMatMul.h.

Function Documentation

◆ buildCanonicalizeVectorForAIEVec()

void xilinx::aievec::buildCanonicalizeVectorForAIEVec ( mlir::OpPassManager & pm,
const CanonicalizeVectorForAIEVecOptions & options )

Referenced by registerAIEVecPipelines().

◆ buildConvertVectorToAIEVec()

void xilinx::aievec::buildConvertVectorToAIEVec ( mlir::OpPassManager & pm,
const ConvertVectorToAIEVecOptions & options )

Adds the "convert-vector-to-aievec" pipeline to the OpPassManager.

This pipeline takes Vector code, transforms it to make it compatible with the selected AIE target, lowers it to AIEVec dialect, and performs some optimizations based on the target AIE architecture.

Referenced by registerAIEVecPipelines().

◆ buildDynamicSizeNoImplicitBroadcastPass()

void xilinx::aievec::buildDynamicSizeNoImplicitBroadcastPass ( mlir::OpPassManager & pm)

Referenced by registerAIEVecPipelines().

◆ buildFMAOpSplatAttrForElemTy()

SmallVector< NamedAttribute > xilinx::aievec::buildFMAOpSplatAttrForElemTy ( aievec::aie1::FMAOp fmaOp,
int64_t bcastPos,
int64_t step = 1 )

◆ buildLowerVectorToAIEVec()

void xilinx::aievec::buildLowerVectorToAIEVec ( mlir::OpPassManager & pm,
const LowerVectorToAIEVecOptions & options )

Referenced by registerAIEVecPipelines().

◆ buildOptimizeAIEVec()

void xilinx::aievec::buildOptimizeAIEVec ( mlir::OpPassManager & pm,
const OptimizeAIEVecOptions & options )

Referenced by registerAIEVecPipelines().

◆ checkMatMulTile()

std::optional< MatMulRecipe > xilinx::aievec::checkMatMulTile ( bool aie2p,
mlir::VectorType lhsTy,
mlir::VectorType rhsTy,
mlir::VectorType accTy,
bool lhsTransposed,
bool rhsTransposed,
llvm::function_ref< mlir::InFlightDiagnostic()> emitError = nullptr )

◆ configureAIE2PShufflePlannerLegality()

void xilinx::aievec::configureAIE2PShufflePlannerLegality ( mlir::ConversionTarget & target,
std::shared_ptr< AIE2PShufflePlanner > planner )

◆ configureAIEVecConvOpTransformationLegalizations() [1/2]

void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations ( ConversionTarget & target,
AnalysisManager & am )

◆ configureAIEVecConvOpTransformationLegalizations() [2/2]

void xilinx::aievec::configureAIEVecConvOpTransformationLegalizations ( mlir::ConversionTarget & target,
mlir::AnalysisManager & am )

◆ constructLinearizedAffineExprForUPDOp()

mlir::AffineExpr xilinx::aievec::constructLinearizedAffineExprForUPDOp ( UPDOp updOp)
inline

Definition at line 150 of file AIEVecUtils.h.

References flattenedStridedExpr().

◆ createAIEVecConvolutionAnalysisPass()

std::unique_ptr< Pass > xilinx::aievec::createAIEVecConvolutionAnalysisPass ( )

Definition at line 596 of file FoldMulAddChainToConvOp.cpp.

◆ createBF16EmulationPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createBF16EmulationPass ( )

Create a pass that runs f32 vector arithmetic on the bf16 datapath: multiplies and transcendentals take inputs rounded to bf16, sums stay f32.

Definition at line 1000 of file VectorToVectorConversions.cpp.

◆ createConvertAIEVecToLLVMPass() [1/2]

std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass ( )

◆ createConvertAIEVecToLLVMPass() [2/2]

std::unique_ptr< mlir::OperationPass< mlir::ModuleOp > > xilinx::aievec::createConvertAIEVecToLLVMPass ( const xilinx::ConvertAIEVecToLLVMOptions & options)

Definition at line 5430 of file AIEVecToLLVM.cpp.

References createConvertAIEVecToLLVMPass().

◆ createCopyRemovalPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createCopyRemovalPass ( )

Create a pass that removes unnecessary Copy operations.

Definition at line 239 of file CopyRemoval.cpp.

◆ createDynamicSizeNoImplicitBroadcastPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createDynamicSizeNoImplicitBroadcastPass ( )

Definition at line 118 of file DynamicSizeNoImplicitBroadcast.cpp.

◆ createSplitVectorLoadUpsChainsPass()

std::unique_ptr<::mlir::Pass > xilinx::aievec::createSplitVectorLoadUpsChainsPass ( )

Create a pass that splits vector.load + aievec.ups chains to reduce shuffle operations for AIE2p targets.

Definition at line 389 of file SplitVectorLoadUpsChains.cpp.

◆ createVectorType()

◆ estimateLLVMShuffleCost()

◆ extractBaseAndOffset()

std::pair< mlir::AffineExpr, int32_t > xilinx::aievec::extractBaseAndOffset ( mlir::AffineExpr expr)
inline

Definition at line 205 of file AIEVecUtils.h.

◆ flattenedStridedExpr()

mlir::AffineExpr xilinx::aievec::flattenedStridedExpr ( llvm::ArrayRef< int64_t > sizes,
llvm::ArrayRef< mlir::AffineExpr > exprs,
mlir::MLIRContext * context )
inline

Definition at line 110 of file AIEVecUtils.h.

Referenced by constructLinearizedAffineExprForUPDOp().

◆ getElementSizeInBits()

◆ getFlattenedVectorType() [1/2]

◆ getFlattenedVectorType() [2/2]

VectorType xilinx::aievec::getFlattenedVectorType ( VectorType vecTy)

Definition at line 143 of file Utils.cpp.

◆ getHexValue()

char xilinx::aievec::getHexValue ( int val)
inline

Definition at line 30 of file AIEVecUtils.h.

◆ getMatMulRecipe()

std::optional< MatMulRecipe > xilinx::aievec::getMatMulRecipe ( bool aie2p,
mlir::Type lhsElemTy,
mlir::Type rhsElemTy,
mlir::Type accElemTy,
int64_t m,
int64_t k,
int64_t n )

Definition at line 1302 of file AIEVecOps.cpp.

◆ getShuffleModeBytePermutation()

◆ getShuffleModeShape()

◆ getTileTransposeModes()

std::optional< SmallVector< ShuffleMode, 2 > > xilinx::aievec::getTileTransposeModes ( bool aie2p,
mlir::Type elemTy,
int64_t rows,
int64_t cols )

Definition at line 1323 of file AIEVecOps.cpp.

◆ getTransferReadAlignmentOffset() [1/4]

template<typename TransferReadLikeOp, typename = std::enable_if_t< std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp> || std::is_same_v<TransferReadLikeOp, mlir::vector::TransferReadOp::Adaptor>>>
std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( TransferReadLikeOp readOp,
mlir::VectorType vType,
int64_t alignment )

◆ getTransferReadAlignmentOffset() [2/4]

template<typename TransferReadLikeOp, typename>
std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( TransferReadLikeOp readOp,
VectorType vType,
int64_t alignment )

Definition at line 117 of file Utils.cpp.

◆ getTransferReadAlignmentOffset() [3/4]

template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( vector::TransferReadOp readOp,
VectorType vType,
int64_t alignment )

◆ getTransferReadAlignmentOffset() [4/4]

template std::optional< int64_t > xilinx::aievec::getTransferReadAlignmentOffset ( vector::TransferReadOp::Adaptor readOp,
VectorType vType,
int64_t alignment )

◆ getVectorLaneSize()

unsigned xilinx::aievec::getVectorLaneSize ( mlir::VectorType type)
inline

Definition at line 54 of file AIEVecUtils.h.

Referenced by xilinx::aievec::MulElemOpAIE2pConversion::decodeMulElemOp(), getVectorSizeInBits(), ComputeAbsOpPattern< math::AbsFOp >::matchAndRewrite(), ComputeBandAndBorOpPattern< arith::OrIOp, aievec::BorOp >::matchAndRewrite(), ComputeBxorAndBnegOpPattern::matchAndRewrite(), ComputeCeilOpPattern::matchAndRewrite(), ComputeErfOpPattern::matchAndRewrite(), ComputeExpOpByLUTLLVMPattern::matchAndRewrite(), ComputeFloorOpPattern::matchAndRewrite(), ComputeNegOpPattern::matchAndRewrite(), ComputeRsqrtOpLLVMAIE2Pattern::matchAndRewrite(), ComputeRsqrtOpPattern::matchAndRewrite(), ComputeSigmoidOpPattern::matchAndRewrite(), ComputeSignedIntRightShiftOpPattern::matchAndRewrite(), ComputeSqrtOpAIE2Pattern::matchAndRewrite(), ComputeTanhOpByLUTPattern::matchAndRewrite(), ConvertDivFToAIEVecInvOpPattern::matchAndRewrite(), ConvertMulAddFToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulAddToAIEVecFMAElemOpPattern::matchAndRewrite(), ConvertMulFToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertMulIToAIEVecMulElemOpPattern::matchAndRewrite(), ConvertSplatToAIEBroadcast::matchAndRewrite(), ConvertSplatToAIEBroadcastAIE2p::matchAndRewrite(), ConvertVectorFMAOpToAIEVecFMAElemOpPattern::matchAndRewrite(), FoldVectorExtractAndSplatToAIEBroadcast::matchAndRewrite(), LowerVectorAddOrSubOpToAIEVecAddElemOrSubElemOp< arith::AddIOp, aievec::AddElemOp >::matchAndRewrite(), LowerVectorCmpOpToAIEVecCmpOp< arith::CmpIOp, CmpIPredicate >::matchAndRewrite(), LowerVectorMinMaxOpToAIEVecMinMaxOp< arith::MinSIOp, aievec::MinOp >::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2::matchAndRewrite(), LowerVectorReductionAddBfloat16OpAIE2P::matchAndRewrite(), LowerVectorReductionAddFloatOp::matchAndRewrite(), LowerVectorReductionAddIntOp::matchAndRewrite(), LowerVectorReductionMaxOp::matchAndRewrite(), LowerVectorReductionMinOp::matchAndRewrite(), LowerVectorSelectOpToAIEVecSelOp::matchAndRewrite(), ShiftClampTruncToSRSPattern::matchAndRewrite(), xilinx::aievec::AccFloatUnaryOpAIE2pConversion< SrcOpTy, IntrOpTy >::matchAndRewrite(), xilinx::aievec::BroadcastScalarOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::BroadcastScalarOpConversion::matchAndRewrite(), xilinx::aievec::CmpOpConversionBase< xllvm::VectorMaxLtBf16IntrOp, xllvm::VectorMinGeBf16IntrOp, xllvm::VectorMaxLt32IntrOp, xllvm::VectorMinGe32IntrOp, xllvm::VectorMaxLt16IntrOp, xllvm::VectorMinGe16IntrOp >::matchAndRewrite(), xilinx::aievec::ConcatOpConversion::matchAndRewrite(), xilinx::aievec::ExpOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExtOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ExtOpConversion::matchAndRewrite(), xilinx::aievec::ExtractElemOpConversion::matchAndRewrite(), xilinx::aievec::FdivOpConversion::matchAndRewrite(), xilinx::aievec::InvOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MaxOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MaxOpConversion::matchAndRewrite(), xilinx::aievec::MinOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::MinOpConversion::matchAndRewrite(), xilinx::aievec::RsqrtOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::SelOpConversionBase< xllvm::VectorSel16IntrOp, xllvm::VectorSel32IntrOp >::matchAndRewrite(), xilinx::aievec::ShiftOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::ShiftOpConversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2Conversion::matchAndRewrite(), xilinx::aievec::SRSOpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UnpackI4OpAIE2pConversion::matchAndRewrite(), xilinx::aievec::UPDOpConversion::matchAndRewrite(), xilinx::aievec::UPSOpAIE2Conversion::matchAndRewrite(), and xilinx::aievec::UPSOpAIE2pConversion::matchAndRewrite().

◆ getVectorOpDestType()

◆ getVectorSizeInBits()

int32_t xilinx::aievec::getVectorSizeInBits ( mlir::VectorType type)
inline

◆ isAIE2POnlyShuffleMode()

bool xilinx::aievec::isAIE2POnlyShuffleMode ( ShuffleMode mode)

Definition at line 1473 of file AIEVecOps.cpp.

◆ isAIEOp()

bool xilinx::aievec::isAIEOp ( mlir::Operation * op)
inline

Definition at line 72 of file AIEVecUtils.h.

◆ isAssumingNoImplicitBroadcastOfDynamicSizes() [1/2]

bool xilinx::aievec::isAssumingNoImplicitBroadcastOfDynamicSizes ( mlir::Block * block)
inline

◆ isAssumingNoImplicitBroadcastOfDynamicSizes() [2/2]

bool xilinx::aievec::isAssumingNoImplicitBroadcastOfDynamicSizes ( mlir::OpBuilder & builder)
inline

Definition at line 245 of file AIEVecUtils.h.

References isAssumingNoImplicitBroadcastOfDynamicSizes().

◆ isPowerOfTwo()

bool xilinx::aievec::isPowerOfTwo ( int32_t n)
inline

Definition at line 38 of file AIEVecUtils.h.

◆ populateAIE2PShufflePlannerPatterns()

void xilinx::aievec::populateAIE2PShufflePlannerPatterns ( mlir::RewritePatternSet & patterns,
std::shared_ptr< AIE2PShufflePlanner > planner )

◆ populateAIEVecConvOpTransformationPatterns() [1/2]

void xilinx::aievec::populateAIEVecConvOpTransformationPatterns ( mlir::RewritePatternSet & patterns,
mlir::AnalysisManager & am,
unsigned shiftParam )

◆ populateAIEVecConvOpTransformationPatterns() [2/2]

void xilinx::aievec::populateAIEVecConvOpTransformationPatterns ( RewritePatternSet & patterns,
AnalysisManager & am,
unsigned shiftParam )

◆ populateAIEVecToLLVMAIE2ConversionPatterns()

void xilinx::aievec::populateAIEVecToLLVMAIE2ConversionPatterns ( mlir::LLVMTypeConverter & converter,
mlir::RewritePatternSet & patterns )

◆ populateAIEVecToLLVMAIE2pConversionPatterns()

void xilinx::aievec::populateAIEVecToLLVMAIE2pConversionPatterns ( mlir::LLVMTypeConverter & converter,
mlir::RewritePatternSet & patterns )

◆ populateAIEVecToLLVMCommonConversionPatterns()

void xilinx::aievec::populateAIEVecToLLVMCommonConversionPatterns ( mlir::LLVMTypeConverter & converter,
mlir::RewritePatternSet & patterns )

◆ populateAIEVecToLLVMConversionPatterns() [1/2]

void xilinx::aievec::populateAIEVecToLLVMConversionPatterns ( mlir::LLVMTypeConverter & converter,
mlir::RewritePatternSet & patterns,
Aie2Fp32Emulation aie2Fp32EmulationOption,
llvm::StringRef aieTarget )

◆ populateAIEVecToLLVMConversionPatterns() [2/2]

void xilinx::aievec::populateAIEVecToLLVMConversionPatterns ( mlir::LLVMTypeConverter & converter,
mlir::RewritePatternSet & patterns,
Aie2Fp32Emulation aie2Fp32EmulationOption,
StringRef aieTarget )

◆ registerAIEVecPipelines()

void xilinx::aievec::registerAIEVecPipelines ( )

◆ registerTransformDialectExtension()

void xilinx::aievec::registerTransformDialectExtension ( mlir::DialectRegistry & registry)

◆ simulateShufflePlan()