| //==-- ShapeToStandard.td - Shape to Standard Patterns -------*- tablegen -*==// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // Defines Patterns to lower Shape ops to Std. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef MLIR_CONVERSION_SHAPETOSTANDARD_TD | |
| #define MLIR_CONVERSION_SHAPETOSTANDARD_TD | |
| include "mlir/IR/PatternBase.td" | |
| include "mlir/Dialect/Shape/IR/ShapeOps.td" | |
| def BroadcastableStringAttr : NativeCodeCall<[{ | |
| $_builder.getStringAttr("required broadcastable shapes") | |
| }]>; | |
| def CstrBroadcastableToRequire : Pat<(Shape_CstrBroadcastableOp $shapes), | |
| (Shape_CstrRequireOp | |
| (Shape_IsBroadcastableOp $shapes), | |
| (BroadcastableStringAttr))>; | |
| def EqStringAttr : NativeCodeCall<[{ | |
| $_builder.getStringAttr("required equal shapes") | |
| }]>; | |
| def CstrEqToRequire : Pat<(Shape_CstrEqOp $shapes), | |
| (Shape_CstrRequireOp (Shape_ShapeEqOp $shapes), (EqStringAttr))>; | |
| #endif // MLIR_CONVERSION_SHAPETOSTANDARD_TD |