2 #include
"relational.h"
4 #define _CLC_DEFINE_ISORDERED
(RET_TYPE, FUNCTION
, ARG1_TYPE
, ARG2_TYPE
) \
5 _CLC_DEF _CLC_OVERLOAD RET_TYPE FUNCTION
(ARG1_TYPE x
, ARG2_TYPE y
) { \
6 return isequal
(x, x
) && isequal
(y, y
); \
9 _CLC_DEFINE_ISORDERED
(int, isordered
, float
, float
)
10 _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL
(int, isordered
, float
, float
)
13 #pragma OPENCL EXTENSION cl_khr_fp64
: enable
15 // The scalar version of isordered
(double, double
) returns an int
, but the vector versions
18 _CLC_DEFINE_ISORDERED
(int, isordered
, double
, double
)
19 _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL
(long, isordered
, double
, double
)
23 #pragma OPENCL EXTENSION cl_khr_fp16
: enable
25 // The scalar version of isordered
(half, half
) returns an int
, but the vector versions
28 _CLC_DEFINE_ISORDERED
(int, isordered
, half
, half
)
29 _CLC_DEFINE_RELATIONAL_BINARY_VEC_ALL
(short, isordered
, half
, half
)
33 #undef _CLC_DEFINE_ISORDERED