[RFC] What is the intended semantic of `memref.reinterpret_cast`?

This is also my understanding. reinterpret_cast can be used to add or remove shape or rank dynamicity to memrefs, but nothing else. This is also what the verifier checks when it can https://github.com/llvm/llvm-project/blob/142aa1bdd1dd1db9a7fecf9d157228019c794c94/mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp#L1839-L1879.

Isn’t this done by [RFC] Runtime Op Verification ?

Having such an op gets quite scary. It allows one to effectively break out of the memref structure and create arbitrary, potentially invalid memrefs. Most memref-based analyses become invalid because they can no longer assume memref well-formedness in presence of such an op.