Lines Matching defs:patterns

1 //===- TestLinalgTransforms.cpp - Test Linalg transformation patterns -----===//
52 return "test-linalg-transform-patterns";
55 return "Test Linalg transformation patterns by applying them greedily.";
60 Option<bool> testPatterns{*this, "test-patterns",
61 llvm::cl::desc("Test a mixed set of patterns"),
64 *this, "test-vector-transfer-forwarding-patterns",
69 *this, "test-linalg-to-vector-patterns",
70 llvm::cl::desc("Test a set of patterns that rewrite a linalg contraction "
116 "Test patterns to swap tensor.extract_slice(linalg.fill())"),
120 llvm::cl::desc("Test patterns to erase unused operands and results"),
124 llvm::cl::desc("Test patterns to erase unnecessary inputs"),
138 RewritePatternSet patterns(ctx);
141 // Linalg distribution patterns.
146 // Linalg to vector contraction patterns.
148 patterns.add<CopyVectorizationPattern>(ctx);
150 (void)applyPatternsGreedily(funcOp, std::move(patterns));
161 RewritePatternSet patterns(funcOp.getContext());
163 patterns.add<CopyVectorizationPattern>(ctx);
164 populatePadOpVectorizationPatterns(patterns);
165 populateConvolutionVectorizationPatterns(patterns);
166 (void)applyPatternsGreedily(funcOp, std::move(patterns));
170 RewritePatternSet patterns(funcOp.getContext());
171 patterns.add<DecomposePadOpPattern>(funcOp.getContext());
172 (void)applyPatternsGreedily(funcOp, std::move(patterns));
176 RewritePatternSet patterns(funcOp.getContext());
177 patterns.add<DecomposeOuterUnitDimsPackOpPattern>(funcOp.getContext());
178 (void)applyPatternsGreedily(funcOp, std::move(patterns));
182 RewritePatternSet patterns(funcOp.getContext());
183 patterns.add<DecomposeOuterUnitDimsUnPackOpPattern>(funcOp.getContext());
184 (void)applyPatternsGreedily(funcOp, std::move(patterns));
188 RewritePatternSet patterns(funcOp.getContext());
189 patterns.add<ExtractSliceOfPadTensorSwapPattern>(funcOp.getContext());
190 (void)applyPatternsGreedily(funcOp, std::move(patterns));
194 RewritePatternSet patterns(funcOp.getContext());
195 populateBubbleUpExtractSliceOpPatterns(patterns);
196 (void)applyPatternsGreedily(funcOp, std::move(patterns));
200 RewritePatternSet patterns(funcOp.getContext());
201 populateSwapExtractSliceWithFillPatterns(patterns);
202 (void)applyPatternsGreedily(funcOp, std::move(patterns));
206 RewritePatternSet patterns(funcOp.getContext());
207 populateEraseUnusedOperandsAndResultsPatterns(patterns);
208 (void)applyPatternsGreedily(funcOp, std::move(patterns));
212 RewritePatternSet patterns(funcOp.getContext());
213 populateEraseUnnecessaryInputsPatterns(patterns);
214 (void)applyPatternsGreedily(funcOp, std::move(patterns));
218 RewritePatternSet patterns(funcOp.getContext());
219 populateWinogradConv2DPatterns(patterns, /*m=*/4, /*r=*/3);
220 populateWinogradConv2DPatterns(patterns, /*m=*/2, /*r=*/5);
221 (void)applyPatternsGreedily(funcOp, std::move(patterns));
225 RewritePatternSet patterns(funcOp.getContext());
226 populateDecomposeWinogradOpsPatterns(patterns);
227 (void)applyPatternsGreedily(funcOp, std::move(patterns));
230 /// Apply transformations specified as patterns.