The CPU backend supports real function calls, inline asm, and function pointers, however OpenCL does not allow it. The CPU backend is the LLVM x86 backend with some modifications for OpenCL, so anything it supports we can support, however the OpenCL language does not support many of your requests yet.
Thanks Micah for your deep insight only thinking about
what features can come next to OpenCL world..
I think that similar as AMD thinks exposing your fast SAD
and GDS hardware implementations as soon as you can even if creating
propietary extensions is good I think also as already your backend supports that and "if" it's not a real big effort AMD could create a similar extension or various ones supporting such features.. I think that can provide benefits for users already playing with it in CUDA hardware and that later will want to port to OpenCL for "some" portability if your backend supports it..
Anyway thanks for answering.