1#include <clc/clc.h> 2#include "relational.h" 3 4#define _CLC_DEFINE_ISNOTEQUAL(RET_TYPE, FUNCTION, ARG1_TYPE, ARG2_TYPE) \ 5_CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION(ARG1_TYPE x, ARG2_TYPE y) { \ 6 return (x != y); \ 7} \ 8 9_CLC_DEFINE_ISNOTEQUAL(int, isnotequal, float, float) 10_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(int, isnotequal, float, float) 11 12#ifdef cl_khr_fp64 13#pragma OPENCL EXTENSION cl_khr_fp64 : enable 14 15// The scalar version of isnotequal(double, double) returns an int, but the vector versions 16// return long. 17 18_CLC_DEFINE_ISNOTEQUAL(int, isnotequal, double, double) 19_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(long, isnotequal, double, double) 20 21#endif 22#ifdef cl_khr_fp16 23#pragma OPENCL EXTENSION cl_khr_fp16 : enable 24 25// The scalar version of isnotequal(half, half) returns an int, but the vector versions 26// return short. 27 28_CLC_DEFINE_ISNOTEQUAL(int, isnotequal, half, half) 29_CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL(short, isnotequal, half, half) 30 31#endif 32 33#undef _CLC_DEFINE_ISNOTEQUAL 34