With the recent improvements to OpDSL it is cheap to reintroduce a linalg.copy operation.
This operation is needed in at least 2 cases:
- for copies that may want to change the elemental type (e.g. cast, truncate, quantize, etc)
- to specify new tensors that should bufferize to a copy operation. The linalg.generic form always folds away which is not always the right call.