65 lines · cpp
1//===- X86VectorTransformOps.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-exception6//7//===----------------------------------------------------------------------===//8 9#include "mlir/Dialect/X86Vector/TransformOps/X86VectorTransformOps.h"10#include "mlir/Conversion/LLVMCommon/TypeConverter.h"11#include "mlir/Dialect/LLVMIR/LLVMDialect.h"12#include "mlir/Dialect/Transform/IR/TransformDialect.h"13#include "mlir/Dialect/Transform/Interfaces/TransformInterfaces.h"14#include "mlir/Dialect/Vector/IR/VectorOps.h"15#include "mlir/Dialect/X86Vector/Transforms.h"16#include "mlir/Dialect/X86Vector/X86VectorDialect.h"17 18#include "mlir/IR/OpImplementation.h"19#include "mlir/IR/RegionKindInterface.h"20 21using namespace mlir;22using namespace mlir::x86vector;23using namespace mlir::transform;24 25void mlir::transform::ApplyVectorContractToFMAPatternsOp::populatePatterns(26 RewritePatternSet &patterns) {27 x86vector::populateVectorContractToFMAPatterns(patterns);28}29 30void mlir::transform::ApplyVectorContractToPackedTypeDotProductPatternsOp::31 populatePatterns(RewritePatternSet &patterns) {32 x86vector::populateVectorContractToPackedTypeDotProductPatterns(patterns);33}34 35//===----------------------------------------------------------------------===//36// Transform op registration37//===----------------------------------------------------------------------===//38 39namespace {40class X86VectorTransformDialectExtension41 : public transform::TransformDialectExtension<42 X86VectorTransformDialectExtension> {43public:44 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(45 X86VectorTransformDialectExtension)46 47 X86VectorTransformDialectExtension() {48 declareGeneratedDialect<x86vector::X86VectorDialect>();49 declareGeneratedDialect<LLVM::LLVMDialect>();50 registerTransformOps<51#define GET_OP_LIST52#include "mlir/Dialect/X86Vector/TransformOps/X86VectorTransformOps.cpp.inc"53 >();54 }55};56} // namespace57 58#define GET_OP_CLASSES59#include "mlir/Dialect/X86Vector/TransformOps/X86VectorTransformOps.cpp.inc"60 61void mlir::x86vector::registerTransformDialectExtension(62 DialectRegistry ®istry) {63 registry.addExtensions<X86VectorTransformDialectExtension>();64}65