================ @@ -182,6 +182,53 @@ struct CastOpInterface } }; +struct CopyOpInterface + : public RuntimeVerifiableOpInterface::ExternalModel<CopyOpInterface, + CopyOp> { + void generateRuntimeVerification(Operation *op, OpBuilder &builder, + Location loc) const { + auto copyOp = cast<CopyOp>(op); + BaseMemRefType sourceType = copyOp.getSource().getType(); + BaseMemRefType targetType = copyOp.getTarget().getType(); + auto rankedSourceType = dyn_cast<MemRefType>(sourceType); + auto rankedTargetType = dyn_cast<MemRefType>(targetType); + + // TODO: Verification for unranked memrefs is not supported yet. + if (!rankedSourceType || !rankedTargetType) ---------------- matthias-springer wrote:
It looks like mixed unranked/ranked memrefs are allowed by `SameOperandsShape`. https://github.com/llvm/llvm-project/pull/130437 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits