diff --git a/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td b/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td index c71e39d..3eecea2 100644 --- a/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td +++ b/include/mlir-hlo/Dialect/mhlo/IR/hlo_ops.td @@ -825,8 +825,9 @@ def HLO_BroadcastInDimOp : HLO_Op<"broadcast_in_dim", let hasCustomHLOConverter = 1; } -def HLO_DynamicBroadcastInDimOp : HLO_Op<"dynamic_broadcast_in_dim", - [NoSideEffect]> { +def HLO_DynamicBroadcastInDimOp : HLO_Op<"dynamic_broadcast_in_dim", [ + NoSideEffect, DeclareOpInterfaceMethods]> { string summary = "Broadcast a tensor into the given dynamic shape by adding dimensions."; string description = [{ This is a generalization of the BroadcastInDimOp which accepts its output diff --git a/lib/Dialect/mhlo/IR/hlo_ops.cc b/lib/Dialect/mhlo/IR/hlo_ops.cc index 94079b8..8eb0670 100644 --- a/lib/Dialect/mhlo/IR/hlo_ops.cc +++ b/lib/Dialect/mhlo/IR/hlo_ops.cc @@ -908,6 +908,18 @@ void DynamicBroadcastInDimOp::getCanonicalizationPatterns( context); } +LogicalResult DynamicBroadcastInDimOp::inferReturnTypeComponents( + MLIRContext*, llvm::Optional, ValueRange, DictionaryAttr, + RegionRange, llvm::SmallVectorImpl&) { + return failure(); +} + +LogicalResult DynamicBroadcastInDimOp::reifyReturnTypeShapes( + OpBuilder&, SmallVectorImpl& reifiedReturnShapes) { + reifiedReturnShapes.push_back(output_dimensions()); + return success(); +} + //===----------------------------------------------------------------------===// // ClampOp //===----------------------------------------------------------------------===//