diff --git a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp index 7d2a68b2616ca..947c0c85ce7ba 100644 --- a/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp +++ b/compiler/src/iree/compiler/Dialect/Stream/IR/StreamOps.cpp @@ -1513,12 +1513,9 @@ LogicalResult TensorCloneOp::verify() { // information. auto sourceEncoding = llvm::cast(op.getSourceEncoding()); auto resultEncoding = llvm::cast(op.getResultEncoding()); - if (IREE::Encoding::hasPackedStorageAttr(sourceEncoding) != - IREE::Encoding::hasPackedStorageAttr(resultEncoding)) { - return op.emitOpError() - << "clones attribute #iree_encoding.packed_storage mismatch"; - } - if (sourceEncoding.getEncoding() != resultEncoding.getEncoding()) { + if (sourceEncoding.getEncoding() != resultEncoding.getEncoding() && + !IREE::Encoding::hasPackedStorageAttr(sourceEncoding) && + !IREE::Encoding::hasPackedStorageAttr(resultEncoding)) { return op.emitOpError() << "clones changing tensor encoding from " << sourceEncoding.getEncoding() << " to " << resultEncoding.getEncoding() << "; not allowed";