Brcc fails in case funtion name matches with any parameter name or variable inside kernel.
Try changing kernel name.
kernel void foo_s(float matches<>, out float zeros<>)
zeros = (matches < 1.0F) ? (float)idx:0.0F;
This works, although Garuav beat me to it, your function name and output stream name are the same.
ok, I had a feel it would be my fault. A more descriptive error message might have pointed me in the right direction!
Thanks for your help once again guys.