diff --git a/mlir/lib/Dialect/Tensor/IR/TensorOps.cpp b/mlir/lib/Dialect/Tensor/IR/TensorOps.cpp index 4c65045084dc5..7a13f7a7d1355 100644 --- a/mlir/lib/Dialect/Tensor/IR/TensorOps.cpp +++ b/mlir/lib/Dialect/Tensor/IR/TensorOps.cpp @@ -1676,10 +1676,12 @@ void ExpandShapeOp::build(OpBuilder &builder, OperationState &result, auto tensorResultTy = cast(resultType); FailureOr> outputShape = inferOutputShape( builder, result.location, tensorResultTy, reassociation, inputShape); - // Failure of this assertion usually indicates presence of multiple - // dynamic dimensions in the same reassociation group. - assert(succeeded(outputShape) && "unable to infer output shape"); - build(builder, result, tensorResultTy, src, reassociation, *outputShape); + SmallVector outputShapeOrEmpty; + if (succeeded(outputShape)) { + outputShapeOrEmpty = *outputShape; + } + build(builder, result, tensorResultTy, src, reassociation, + outputShapeOrEmpty); } SmallVector CollapseShapeOp::getReassociationMaps() {