diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp --- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp +++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp @@ -977,12 +977,9 @@ auto initTensorOp = dimOp.source().getDefiningOp(); if (!initTensorOp || !maybeConstantIndex) return failure(); - if (initTensorOp.isDynamicSize(*maybeConstantIndex)) { - rewriter.replaceOp(dimOp, - initTensorOp.getDynamicSize(*maybeConstantIndex)); - return success(); - } - rewriter.replaceOpWithNewOp(dimOp, *maybeConstantIndex); + if (!initTensorOp.isDynamicSize(*maybeConstantIndex)) + return failure(); + rewriter.replaceOp(dimOp, initTensorOp.getDynamicSize(*maybeConstantIndex)); return success(); } };