33 void transform::ApplyVectorToLLVMConversionPatternsOp::populatePatterns(
37 getReassociateFpReductions(), getForce_32bitVectorIndices());
41 transform::ApplyVectorToLLVMConversionPatternsOp::verifyTypeConverter(
42 transform::TypeConverterBuilderOpInterface builder) {
43 if (builder.getTypeConverterType() !=
"LLVMTypeConverter")
44 return emitOpError(
"expected LLVMTypeConverter");
52 void transform::ApplyCastAwayVectorLeadingOneDimPatternsOp::populatePatterns(
57 void transform::ApplyFoldArithExtensionPatternsOp::populatePatterns(
62 void transform::ApplyFoldElementwiseToVectorPatternsOp::populatePatterns(
67 void transform::ApplyVectorReductionToContractPatternsOp::populatePatterns(
72 void transform::ApplyLowerCreateMaskPatternsOp::populatePatterns(
77 void transform::ApplyRankReducingSubviewPatternsOp::populatePatterns(
82 void transform::ApplyTransferPermutationPatternsOp::populatePatterns(
87 void transform::ApplyLowerBitCastPatternsOp::populatePatterns(
92 void transform::ApplyLowerBroadcastPatternsOp::populatePatterns(
97 void transform::ApplyLowerContractionPatternsOp::populatePatterns(
106 void transform::ApplyLowerMasksPatternsOp::populatePatterns(
111 void transform::ApplyLowerMaskedTransfersPatternsOp::populatePatterns(
116 void transform::ApplyMaterializeMasksPatternsOp::populatePatterns(
122 void transform::ApplyLowerMultiReductionPatternsOp::populatePatterns(
130 void transform::ApplyLowerOuterProductPatternsOp::populatePatterns(
135 void transform::ApplyLowerGatherPatternsOp::populatePatterns(
140 void transform::ApplyLowerScanPatternsOp::populatePatterns(
145 void transform::ApplyLowerShapeCastPatternsOp::populatePatterns(
150 void transform::ApplyLowerTransferPatternsOp::populatePatterns(
153 getMaxTransferRank());
156 void transform::ApplyLowerTransposePatternsOp::populatePatterns(
160 getLoweringStrategy()));
161 if (getAvx2LoweringStrategy()) {
162 auto avx2LoweringOptions =
166 .lower8x8xf32(
true));
168 patterns, avx2LoweringOptions, 10);
172 void transform::ApplyLowerInterleavePatternsOp::populatePatterns(
177 void transform::ApplyInterleaveToShufflePatternsOp::populatePatterns(
182 void transform::ApplyRewriteNarrowTypePatternsOp::populatePatterns(
188 void transform::ApplySplitTransferFullPartialPatternsOp::populatePatterns(
195 void transform::ApplyTransferToScfPatternsOp::populatePatterns(
211 class VectorTransformDialectExtension
213 VectorTransformDialectExtension> {
215 VectorTransformDialectExtension() {
216 declareGeneratedDialect<vector::VectorDialect>();
217 declareGeneratedDialect<LLVM::LLVMDialect>();
218 registerTransformOps<
220 #include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.cpp.inc"
226 #define GET_OP_CLASSES
227 #include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.cpp.inc"
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
void addExtensions()
Add the given extensions to the registry.
Conversion from types to the LLVM IR dialect.
Base class for extensions of the Transform dialect that supports injecting operations into the Transf...
void populateVectorTransferPermutationMapLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Collect a set of transfer read/write lowering patterns that simplify the permutation map (e....
void populateVectorNarrowTypeRewritePatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Appends patterns for rewriting vector operations over narrow types with ops over wider types.
void populateVectorTransposeLoweringPatterns(RewritePatternSet &patterns, VectorTransformsOptions options, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateElementwiseToVectorOpsPatterns(RewritePatternSet &patterns)
Collect a set of patterns that fold elementwise op on vectors to the vector dialect.
void populateVectorInterleaveToShufflePatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
void populateVectorShapeCastLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorGatherLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorTransferLoweringPatterns(RewritePatternSet &patterns, std::optional< unsigned > maxTransferRank=std::nullopt, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorTransferDropUnitDimsPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Collect a set of one dimension removal patterns.
void registerTransformDialectExtension(DialectRegistry ®istry)
void populateFoldArithExtensionPatterns(RewritePatternSet &patterns)
Collect a set of patterns that fold arithmetic extension on floating point into vector contract for t...
void populateVectorBroadcastLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorBitCastLoweringPatterns(RewritePatternSet &patterns, int64_t targetRank=1, PatternBenefit benefit=1)
Populates the pattern set with the following patterns:
void populateVectorMaskMaterializationPatterns(RewritePatternSet &patterns, bool force32BitVectorIndices, PatternBenefit benefit=1)
These patterns materialize masks for various vector ops such as transfers.
void populateVectorOuterProductLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorMaskOpLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateVectorMultiReductionLoweringPatterns(RewritePatternSet &patterns, VectorMultiReductionLowering options, PatternBenefit benefit=1)
Collect a set of patterns to convert vector.multi_reduction op into a sequence of vector....
void populateVectorReductionToContractPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Collect patterns to convert reduction op to vector.contract and fold transpose/broadcast ops into the...
void populateVectorContractLoweringPatterns(RewritePatternSet &patterns, VectorTransformsOptions options, PatternBenefit benefit=1, bool disableOuterProductLowering=false)
Populate the pattern set with the following patterns:
void populateVectorTransferFullPartialPatterns(RewritePatternSet &patterns, const VectorTransformsOptions &options)
Populate patterns with the following patterns.
void populateVectorMaskLoweringPatternsForSideEffectingOps(RewritePatternSet &patterns)
Populates instances of MaskOpRewritePattern to lower masked operations with vector....
void populateVectorInterleaveLoweringPatterns(RewritePatternSet &patterns, int64_t targetRank=1, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateCastAwayVectorLeadingOneDimPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Collect a set of leading one dimension removal patterns.
void populateVectorTransposeNarrowTypeRewritePatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Appends patterns for emulating a sub-byte vector transpose.
void populateVectorScanLoweringPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateSpecializedTransposeLoweringPatterns(RewritePatternSet &patterns, LoweringOptions options=LoweringOptions(), int benefit=10)
Insert specialized transpose lowering patterns.
Include the generated interface declarations.
void populateVectorToLLVMConversionPatterns(LLVMTypeConverter &converter, RewritePatternSet &patterns, bool reassociateFPReductions=false, bool force32BitVectorIndices=false)
Collect a set of patterns to convert from the Vector dialect to LLVM.
void populateVectorToSCFConversionPatterns(RewritePatternSet &patterns, const VectorTransferToSCFOptions &options=VectorTransferToSCFOptions())
Collect a set of patterns to convert from the Vector dialect to SCF + func.
When lowering an N-d vector transfer op to an (N-1)-d vector transfer op, a temporary buffer is creat...
VectorTransferToSCFOptions & enableFullUnroll(bool u=true)
VectorTransferToSCFOptions & setTargetRank(unsigned r)
Options for controlling specialized AVX2 lowerings.
LoweringOptions & setTransposeOptions(TransposeLoweringOptions options)
Structure to control the behavior of specialized AVX2 transpose lowering.