После того, как я добавил convert_uchar4 (...), ошибка компиляции больше не появляется. Похоже, условие аргумента в функции выбора (a, b, условие) должно быть того же типа, что и a и b. Я также изменил 0 в части условия на (float4) (0,0,0,0).
__kernel void hard_decision(__global const float4 *input,
__global uchar4 *bit_decision,
uchar4 zero,
uchar4 one)
{
bit_decision[get_global_id(0)] = select(zero, one, convert_uchar4(input[get_global_id(0)]<(float4)(0,0,0,0)));
}