__kernel void x1_search_kernel(int totalRows, int stride, __global float *data, __global float *resultArray, __global int *roffsetResult) { int i = get_global_id(0); int workingSet = totalRows/16; int startRow = i * workingSet; int endOffset = (startRow + workingSet)*stride; size_t offset = startRow*stride; size_t roffset = startRow*stride; if (i == 15) endOffset = totalRows * stride; for(;offset < endOffset; offset+=stride) { if ((data[offset+4] > -60.0f) && (data[offset+5] < -5.0f)) { resultArray[roffset]=data[offset]; resultArray[roffset+1]=data[offset+4]; resultArray[roffset+2]=data[offset+5]; roffset+= 3; } } roffsetResult[i] = (roffset-(startRow*stride))/3; }