This adjusts the description of llvm.memcpy to also allow operands
to be equal. This is in line with what Clang currently expects.
This change is intended to be temporary and followed by re-introduce
a variant with the non-overlapping guarantee for cases where we can
actually ensure that property in the front-end.
See the links below for more details:
http://lists.llvm.org/pipermail/cfe-dev/2020-August/066614.html
and PR11763.
I think we only want to allow the source and destination to be the same, and still want to disallow all other cases of overlap. We still want to be able to lower llvm.memcpy to memcpy not memmove.