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(
54 vector::populateCastAwayVectorLeadingOneDimPatterns(
patterns);
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(
79 vector::populateVectorTransferDropUnitDimsPatterns(
patterns);
82 void transform::ApplyTransferPermutationPatternsOp::populatePatterns(
87 void transform::ApplyDropUnitDimWithShapeCastPatternsOp::populatePatterns(
89 vector::populateDropUnitDimWithShapeCastPatterns(
patterns);
92 void transform::ApplyLowerBitCastPatternsOp::populatePatterns(
97 void transform::ApplyLowerBroadcastPatternsOp::populatePatterns(
102 void transform::ApplyLowerContractionPatternsOp::populatePatterns(
109 void transform::ApplyLowerMasksPatternsOp::populatePatterns(
114 void transform::ApplyLowerMaskedTransfersPatternsOp::populatePatterns(
119 void transform::ApplyMaterializeMasksPatternsOp::populatePatterns(
121 populateVectorMaskMaterializationPatterns(
patterns,
125 void transform::ApplyLowerMultiReductionPatternsOp::populatePatterns(
133 void transform::ApplyLowerOuterProductPatternsOp::populatePatterns(
138 void transform::ApplyLowerGatherPatternsOp::populatePatterns(
143 void transform::ApplyLowerScanPatternsOp::populatePatterns(
148 void transform::ApplyLowerShapeCastPatternsOp::populatePatterns(
153 void transform::ApplyLowerTransferPatternsOp::populatePatterns(
156 getMaxTransferRank());
159 void transform::ApplyLowerTransposePatternsOp::populatePatterns(
162 getLoweringStrategy());
163 if (getAvx2LoweringStrategy()) {
164 auto avx2LoweringOptions =
168 .lower8x8xf32(
true));
174 void transform::ApplyLowerInterleavePatternsOp::populatePatterns(
179 void transform::ApplyInterleaveToShufflePatternsOp::populatePatterns(
184 void transform::ApplyRewriteNarrowTypePatternsOp::populatePatterns(
186 populateVectorNarrowTypeRewritePatterns(
patterns);
187 populateVectorTransposeNarrowTypeRewritePatterns(
patterns);
190 void transform::ApplySplitTransferFullPartialPatternsOp::populatePatterns(
197 void transform::ApplyTransferToScfPatternsOp::populatePatterns(
206 void transform::ApplySinkVectorPatternsOp::populatePatterns(
211 void transform::ApplySinkVectorMemPatternsOp::populatePatterns(
213 vector::populateSinkVectorMemOpsPatterns(
patterns);
223 class VectorTransformDialectExtension
225 VectorTransformDialectExtension> {
229 VectorTransformDialectExtension() {
230 declareGeneratedDialect<vector::VectorDialect>();
231 declareGeneratedDialect<LLVM::LLVMDialect>();
232 registerTransformOps<
234 #include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.cpp.inc"
240 #define GET_OP_CLASSES
241 #include "mlir/Dialect/Vector/TransformOps/VectorTransformOps.cpp.inc"
#define MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(CLASS_NAME)
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 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 registerTransformDialectExtension(DialectRegistry ®istry)
void populateVectorTransposeLoweringPatterns(RewritePatternSet &patterns, VectorTransposeLowering vectorTransposeLowering, PatternBenefit benefit=1)
Populate the pattern set with the following patterns:
void populateFoldArithExtensionPatterns(RewritePatternSet &patterns)
Collect a set of patterns that fold arithmetic extension on floating point into vector contract for t...
void populateSinkVectorOpsPatterns(RewritePatternSet &patterns, PatternBenefit benefit=1)
Patterns that remove redundant Vector Ops by re-ordering them with e.g.
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 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 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 populateVectorContractLoweringPatterns(RewritePatternSet &patterns, VectorContractLowering vectorContractLoweringOption, PatternBenefit benefit=1, bool disableOuterProductLowering=false)
Populate the pattern set with the following patterns:
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.
const FrozenRewritePatternSet & patterns
void populateVectorToSCFConversionPatterns(RewritePatternSet &patterns, const VectorTransferToSCFOptions &options=VectorTransferToSCFOptions())
Collect a set of patterns to convert from the Vector dialect to SCF + func.
void populateVectorToLLVMConversionPatterns(const LLVMTypeConverter &converter, RewritePatternSet &patterns, bool reassociateFPReductions=false, bool force32BitVectorIndices=false)
Collect a set of patterns to convert from the Vector dialect to LLVM.
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.