@ -69,9 +69,24 @@ __kernel void arithm_compare_eq_D0 (__global uchar *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
uchar4 src1_data = vload4 ( 0 , src1 + src1_index_fix ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index_fix ) ;
if ( src1_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 src1_data = vload4 ( 0 , src1 + src1_index ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -85,7 +100,8 @@ __kernel void arithm_compare_eq_D0 (__global uchar *src1, int src1_step, int src
}
}
__kernel void arithm_compare_eq_D2 ( __global ushort *src1, int src1_step, int src1_offset,
__kernel void arithm_compare_ne_D2 ( __global ushort *src1, int src1_step, int src1_offset,
__global ushort *src2, int src2_step, int src2_offset,
__global uchar *dst, int dst_step, int dst_offset,
int rows, int cols, int dst_step1 )
@ -98,7 +114,7 @@ __kernel void arithm_compare_eq_D2 (__global ushort *src1, int src1_step, int sr
{
x = x << 2 ;
# define dst_align ( ( dst_offset >> 1 ) & 3 )
# define dst_align ( ( dst_offset >> 1 ) & 3 )
int src1_index = mad24 ( y, src1_step, ( x << 1 ) + src1_offset - ( dst_align << 1 ) ) ;
int src2_index = mad24 ( y, src2_step, ( x << 1 ) + src2_offset - ( dst_align << 1 ) ) ;
@ -106,8 +122,22 @@ __kernel void arithm_compare_eq_D2 (__global ushort *src1, int src1_step, int sr
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
ushort4 src1_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src1 + src1_index ) ) ;
ushort4 src2_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -122,7 +152,6 @@ __kernel void arithm_compare_eq_D2 (__global ushort *src1, int src1_step, int sr
}
__kernel void arithm_compare_eq_D3 ( __global short *src1, int src1_step, int src1_offset,
__global short *src2, int src2_step, int src2_offset,
__global uchar *dst, int dst_step, int dst_offset,
@ -143,9 +172,25 @@ __kernel void arithm_compare_eq_D3 (__global short *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
short4 src1_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src1 + src1_index ) ) ;
short4 src2_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -179,9 +224,24 @@ __kernel void arithm_compare_eq_D4 (__global int *src1, int src1_step, int src1_
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
int4 src1_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src1 + src1_index ) ) ;
int4 src2_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -212,9 +272,17 @@ __kernel void arithm_compare_eq_D5 (__global float *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index_fix ) ) ; if(src2_index < 0)
{
float4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index ) ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -246,9 +314,24 @@ __kernel void arithm_compare_eq_D6 (__global double *src1, int src1_step, int sr
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index_fix ) ) ;
if ( src1_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index ) ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data == src2_data ) ) ;
@ -282,9 +365,24 @@ __kernel void arithm_compare_gt_D0 (__global uchar *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
uchar4 src1_data = vload4 ( 0 , src1 + src1_index_fix ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index_fix ) ;
if ( src1_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 src1_data = vload4 ( 0 , src1 + src1_index ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -318,9 +416,24 @@ __kernel void arithm_compare_gt_D2 (__global ushort *src1, int src1_step, int sr
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
ushort4 src1_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src1 + src1_index ) ) ;
ushort4 src2_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -356,9 +469,24 @@ __kernel void arithm_compare_gt_D3 (__global short *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
short4 src1_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src1 + src1_index ) ) ;
short4 src2_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -390,9 +518,25 @@ __kernel void arithm_compare_gt_D4 (__global int *src1, int src1_step, int src1_
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
int4 src1_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src1 + src1_index ) ) ;
int4 src2_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -423,9 +567,24 @@ __kernel void arithm_compare_gt_D5 (__global float *src1, int src1_step, int src
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index_fix ) ) ;
if ( src1_index < 0 )
{
float4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
float4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index ) ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -457,9 +616,24 @@ __kernel void arithm_compare_gt_D6 (__global double *src1, int src1_step, int sr
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index_fix ) ) ;
if ( src1_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index ) ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data > src2_data ) ) ;
@ -494,8 +668,24 @@ __kernel void arithm_compare_ge_D0 (__global uchar *src1, int src1_step, int src
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
uchar4 src1_data = vload4 ( 0 , src1 + src1_index ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
uchar4 src1_data = vload4 ( 0 , src1 + src1_index_fix ) ;
uchar4 src2_data = vload4 ( 0 , src2 + src2_index_fix ) ;
if ( src1_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
uchar4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
@ -532,8 +722,25 @@ __kernel void arithm_compare_ge_D2 (__global ushort *src1, int src1_step, int sr
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
ushort4 src1_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src1 + src1_index ) ) ;
ushort4 src2_data = vload4 ( 0 , ( __global ushort * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
ushort4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
@ -570,8 +777,24 @@ __kernel void arithm_compare_ge_D3 (__global short *src1, int src1_step, int src
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
short4 src1_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src1 + src1_index ) ) ;
short4 src2_data = vload4 ( 0 , ( __global short * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
short4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
@ -605,8 +828,23 @@ __kernel void arithm_compare_ge_D4 (__global int *src1, int src1_step, int src1_
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
int4 src1_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src1 + src1_index ) ) ;
int4 src2_data = vload4 ( 0 , ( __global int * ) ( ( __global char * ) src2 + src2_index ) ) ;
if ( src1_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
int4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
@ -639,8 +877,24 @@ __kernel void arithm_compare_ge_D5 (__global float *src1, int src1_step, int src
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index ) ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
float4 src1_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
float4 src2_data = vload4 ( 0 , ( __global float * ) ( ( __global char * ) src2 + src2_index_fix ) ) ;
if ( src1_index < 0 )
{
float4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
float4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
}
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
@ -673,10 +927,22 @@ __kernel void arithm_compare_ge_D6 (__global double *src1, int src1_step, int sr
int dst_start = mad24 ( y, dst_step, dst_offset ) ;
int dst_end = mad24 ( y, dst_step, dst_offset + dst_step1 ) ;
int dst_index = mad24 ( y, dst_step, dst_offset + x & ( int ) 0xfffffffc ) ;
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index ) ) ;
uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
int src1_index_fix = src1_index < 0 ? 0 : src1_index ;
int src2_index_fix = src2_index < 0 ? 0 : src2_index ;
double4 src1_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src1 + src1_index_fix ) ) ;
double4 src2_data = vload4 ( 0 , ( __global double * ) ( ( __global char * ) src2 + src2_index_fix ) ) ;
if ( src1_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src1_index == -2 ) ? src1_data.zwxy:src1_data.yzwx ;
src1_data.xyzw = ( src1_index == -1 ) ? src1_data.wxyz:tmp.xyzw ;
}
if ( src2_index < 0 )
{
double4 tmp ;
tmp.xyzw = ( src2_index == -2 ) ? src2_data.zwxy:src2_data.yzwx ;
src2_data.xyzw = ( src2_index == -1 ) ? src2_data.wxyz:tmp.xyzw ;
} uchar4 dst_data = * ( ( __global uchar4 * ) ( dst + dst_index ) ) ;
uchar4 tmp_data = convert_uchar4 ( ( src1_data >= src2_data ) ) ;
dst_data.x = ( ( dst_index + 0 >= dst_start ) && ( dst_index + 0 < dst_end ) ) ? tmp_data.x : dst_data.x ;