41 auto iface = dyn_cast<IndexedMemCopyOpInterface>(op);
51 if (src.getType().getRank() !=
52 static_cast<int64_t>(iface.getSrcIndices().size()))
54 "invalid number of indices for source memref, expected " +
55 Twine(src.getType().getRank()) +
", got " +
56 Twine(iface.getSrcIndices().size()));
57 if (dst.getType().getRank() !=
58 static_cast<int64_t>(iface.getDstIndices().size()))
60 "invalid number of indices for destination memref, expected ")
61 << dst.getType().getRank() <<
", got "
62 << iface.getDstIndices().size();
std::conditional_t< std::is_same_v< Ty, mlir::Type >, mlir::Value, detail::TypedValue< Ty > > TypedValue
If Ty is mlir::Type this will select Value instead of having a wrapper around it.