MLIR 23.0.0git
mlir::x86 Namespace Reference

Namespaces

namespace  avx2
 Helpers extracted from:

Classes

struct  MaskHelper
 Helper class to factor out the creation and extraction of masks from nibs. More...
struct  ShuffleMasks

Functions

void registerTransformDialectExtension (DialectRegistry &registry)
void populateVectorContractToFMAPatterns (RewritePatternSet &patterns)
void populateVectorContractToPackedTypeDotProductPatterns (RewritePatternSet &patterns)
void populateVectorContractBF16ToFMAPatterns (RewritePatternSet &patterns)
void populateSinkVectorProducerOpsPatterns (RewritePatternSet &patterns)
void populateShuffleVectorFMAOpsPatterns (RewritePatternSet &patterns)
bool isInVnniLayout (Operation *op, llvm::ArrayRef< AffineMap > indexingMaps, std::optional< unsigned > blockingFactor=std::nullopt)
bool validatePairVectorContract (vector::ContractionOp contractOp, vector::ContractionOp pairContOp, bool rhsHasMultipleNonUnitDims, int64_t nonUnitDimValue)
OperationtraceToVectorReadLikeParentOperation (Value v)
OperationtraceToVectorWriteLikeUserOperation (Value v)
LogicalResult shuffleAfterReadLikeOp (PatternRewriter &rewriter, Operation *opA, Operation *opB, vector::ContractionOp contractA, vector::ContractionOp contractB, int64_t nonUnitDimAcc, VectorType accTy)
LogicalResult shuffleBeforeWriteLikeOp (PatternRewriter &rewriter, Operation *opA, Operation *opB, int64_t nonUnitDimAcc, VectorType accTy)
static FailureOr< SmallVector< mlir::utils::IteratorType > > inferIteratorsFromOutMap (AffineMap map)
ShuffleMasks getShuffleMasks (int64_t nonUnitDimAcc)

Function Documentation

◆ getShuffleMasks()

ShuffleMasks mlir::x86::getShuffleMasks ( int64_t nonUnitDimAcc)
inline

Definition at line 119 of file X86Utils.cpp.

Referenced by shuffleAfterReadLikeOp(), and shuffleBeforeWriteLikeOp().

◆ inferIteratorsFromOutMap()

FailureOr< SmallVector< mlir::utils::IteratorType > > mlir::x86::inferIteratorsFromOutMap ( AffineMap map)
static

◆ isInVnniLayout()

bool mlir::x86::isInVnniLayout ( Operation * op,
llvm::ArrayRef< AffineMap > indexingMaps,
std::optional< unsigned > blockingFactor = std::nullopt )

◆ populateShuffleVectorFMAOpsPatterns()

void mlir::x86::populateShuffleVectorFMAOpsPatterns ( RewritePatternSet & patterns)

◆ populateSinkVectorProducerOpsPatterns()

void mlir::x86::populateSinkVectorProducerOpsPatterns ( RewritePatternSet & patterns)

◆ populateVectorContractBF16ToFMAPatterns()

void mlir::x86::populateVectorContractBF16ToFMAPatterns ( RewritePatternSet & patterns)

◆ populateVectorContractToFMAPatterns()

void mlir::x86::populateVectorContractToFMAPatterns ( RewritePatternSet & patterns)

◆ populateVectorContractToPackedTypeDotProductPatterns()

void mlir::x86::populateVectorContractToPackedTypeDotProductPatterns ( RewritePatternSet & patterns)

◆ registerTransformDialectExtension()

void mlir::x86::registerTransformDialectExtension ( DialectRegistry & registry)

Definition at line 75 of file X86TransformOps.cpp.

References mlir::DialectRegistry::addExtensions().

Referenced by mlir::registerAllExtensions().

◆ shuffleAfterReadLikeOp()

LogicalResult mlir::x86::shuffleAfterReadLikeOp ( PatternRewriter & rewriter,
Operation * opA,
Operation * opB,
vector::ContractionOp contractA,
vector::ContractionOp contractB,
int64_t nonUnitDimAcc,
VectorType accTy )

◆ shuffleBeforeWriteLikeOp()

LogicalResult mlir::x86::shuffleBeforeWriteLikeOp ( PatternRewriter & rewriter,
Operation * opA,
Operation * opB,
int64_t nonUnitDimAcc,
VectorType accTy )

◆ traceToVectorReadLikeParentOperation()

Operation * mlir::x86::traceToVectorReadLikeParentOperation ( Value v)

Definition at line 146 of file X86Utils.cpp.

References mlir::Value::getDefiningOp().

Referenced by VectorContractBF16ToFMA::matchAndRewrite().

◆ traceToVectorWriteLikeUserOperation()

◆ validatePairVectorContract()

bool mlir::x86::validatePairVectorContract ( vector::ContractionOp contractOp,
vector::ContractionOp pairContOp,
bool rhsHasMultipleNonUnitDims,
int64_t nonUnitDimValue )