MLIR 24.0.0git
X86TransformOps.cpp
Go to the documentation of this file.
1//===- X86TransformOps.cpp ------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
21
23
24using namespace mlir;
25using namespace mlir::x86;
26using namespace mlir::transform;
27
28void mlir::transform::ApplyVectorContractToFMAPatternsOp::populatePatterns(
29 RewritePatternSet &patterns) {
31}
32
33void mlir::transform::ApplyVectorContractToPackedTypeDotProductPatternsOp::
34 populatePatterns(RewritePatternSet &patterns) {
36}
37
38void mlir::transform::ApplyVectorContractBF16ToFMAPatternsOp::populatePatterns(
39 RewritePatternSet &patterns) {
41}
42
43void mlir::transform::ApplySinkVectorProducerOpsPatternsOp::populatePatterns(
44 RewritePatternSet &patterns) {
46}
47
48void mlir::transform::ApplyShuffleVectorFMAOpsPatternsOp::populatePatterns(
49 RewritePatternSet &patterns) {
51}
52
53void mlir::transform::ApplyVectorContractToAMXDotProductPatternsOp::
54 populatePatterns(RewritePatternSet &patterns) {
56}
57
58void mlir::transform::ApplyMoveAccumulatorForContractLoopPatternsOp::
59 populatePatterns(RewritePatternSet &patterns) {
61}
62
63void mlir::transform::ApplyPrepareVectorContractLoopsPatternsOp::
64 populatePatterns(RewritePatternSet &patterns) {
66}
67
68void mlir::transform::ApplyVectorContractMultiLevelUnrollForAMXPatternsOp::
69 populatePatterns(RewritePatternSet &patterns) {
71}
72
73void mlir::transform::ApplyMathRsqrtApproximationPatternsOp::populatePatterns(
74 RewritePatternSet &patterns) {
76}
77
78//===----------------------------------------------------------------------===//
79// Transform op registration
80//===----------------------------------------------------------------------===//
81
82namespace {
83class X86TransformDialectExtension
85 X86TransformDialectExtension> {
86public:
87 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(X86TransformDialectExtension)
88
89 X86TransformDialectExtension() {
90 declareGeneratedDialect<affine::AffineDialect>();
91 declareGeneratedDialect<arith::ArithDialect>();
92 declareGeneratedDialect<math::MathDialect>();
93 declareGeneratedDialect<memref::MemRefDialect>();
94 declareGeneratedDialect<vector::VectorDialect>();
95 declareGeneratedDialect<x86::X86Dialect>();
96 declareGeneratedDialect<LLVM::LLVMDialect>();
97 registerTransformOps<
98#define GET_OP_LIST
99#include "mlir/Dialect/X86/TransformOps/X86TransformOps.cpp.inc"
100 >();
101 }
102};
103} // namespace
104
105#define GET_OP_CLASSES
106#include "mlir/Dialect/X86/TransformOps/X86TransformOps.cpp.inc"
107
109 registry.addExtensions<X86TransformDialectExtension>();
110}
#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.
Base class for extensions of the Transform dialect that supports injecting operations into the Transf...
void registerTransformDialectExtension(DialectRegistry &registry)
void populateMathRsqrtApproximationPatterns(RewritePatternSet &patterns)
void populateVectorContractMultiLevelUnrollForAMXPatterns(RewritePatternSet &patterns)
void populateVectorContractToPackedTypeDotProductPatterns(RewritePatternSet &patterns)
void populateSinkVectorProducerOpsPatterns(RewritePatternSet &patterns)
void populateVectorContractToAMXDotProductPatterns(RewritePatternSet &patterns)
void populateVectorContractBF16ToFMAPatterns(RewritePatternSet &patterns)
void populatePrepareVectorContractLoopsPatterns(RewritePatternSet &patterns)
void populateShuffleVectorFMAOpsPatterns(RewritePatternSet &patterns)
void populateVectorContractToFMAPatterns(RewritePatternSet &patterns)
void populateMoveAccumulatorForContractLoopPatterns(RewritePatternSet &patterns)
Include the generated interface declarations.