It is very hard to maintain copy-pasted code from the different places. So we prefer to have single kernel with templated datatypes (float_t) and operations (convert_uchar_t).
It will be great to have optimizations with minimal changes.