MLIR 23.0.0git
mlir::x86vector 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::x86vector::getShuffleMasks ( int64_t nonUnitDimAcc)
inline

Definition at line 119 of file X86VectorUtils.cpp.

Referenced by shuffleAfterReadLikeOp(), and shuffleBeforeWriteLikeOp().

◆ inferIteratorsFromOutMap()

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

◆ isInVnniLayout()

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

◆ populateShuffleVectorFMAOpsPatterns()

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

Definition at line 183 of file ShuffleVectorFMAOps.cpp.

References mlir::patterns.

◆ populateSinkVectorProducerOpsPatterns()

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

Definition at line 144 of file SinkVectorProducerOps.cpp.

References mlir::patterns.

◆ populateVectorContractBF16ToFMAPatterns()

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

Definition at line 507 of file VectorContractBF16ToFMA.cpp.

References mlir::patterns.

◆ populateVectorContractToFMAPatterns()

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

Definition at line 140 of file VectorContractToFMA.cpp.

References mlir::patterns.

◆ populateVectorContractToPackedTypeDotProductPatterns()

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

Definition at line 418 of file VectorContractToPackedTypeDotProduct.cpp.

References mlir::patterns.

◆ registerTransformDialectExtension()

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

◆ shuffleAfterReadLikeOp()

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

◆ shuffleBeforeWriteLikeOp()

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

◆ traceToVectorReadLikeParentOperation()

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

◆ traceToVectorWriteLikeUserOperation()

◆ validatePairVectorContract()

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