diff --git a/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp b/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp --- a/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp +++ b/mlir/lib/Dialect/Tensor/IR/TensorTilingInterfaceImpl.cpp @@ -402,9 +402,12 @@ unpackOp.getDestType().getElementType()); } - Operation *tiledUnpackOp = - b.create(loc, TypeRange{sliceDest.getType()}, - ValueRange{sliceSource, sliceDest}, op->getAttrs()); + SmallVector tiledOperands = {sliceSource, sliceDest}; + for (auto tile : unpackOp.getInnerTiles()) + tiledOperands.push_back(tile); + + Operation *tiledUnpackOp = b.create( + loc, TypeRange{sliceDest.getType()}, tiledOperands, op->getAttrs()); if (isPerfectTilingCase) return {tiledUnpackOp};