Using if-case branching. Even if OpenCL C were a high-level language with string-based dispatch, the runtime would only end up doing that anyway. OpenCL C is slightly more limited even than C in this because the functions have to be able to be inlined, so even computed branches and a function pointer table doesn't really work.