1 2 #define _CLC_ISNAN_DECL(RET_TYPE, ARG_TYPE) \ 3 _CLC_OVERLOAD _CLC_DECL RET_TYPE isnan(ARG_TYPE); 4 5 #define _CLC_VECTOR_ISNAN_DECL(RET_TYPE, ARG_TYPE) \ 6 _CLC_ISNAN_DECL(RET_TYPE##2, ARG_TYPE##2) \ 7 _CLC_ISNAN_DECL(RET_TYPE##3, ARG_TYPE##3) \ 8 _CLC_ISNAN_DECL(RET_TYPE##4, ARG_TYPE##4) \ 9 _CLC_ISNAN_DECL(RET_TYPE##8, ARG_TYPE##8) \ 10 _CLC_ISNAN_DECL(RET_TYPE##16, ARG_TYPE##16) 11 12 _CLC_ISNAN_DECL(int, float) 13 _CLC_VECTOR_ISNAN_DECL(int, float) 14 15 #ifdef cl_khr_fp64 16 _CLC_ISNAN_DECL(int, double) 17 _CLC_VECTOR_ISNAN_DECL(long, double) 18 #endif 19 20 #ifdef cl_khr_fp16 21 _CLC_ISNAN_DECL(int, half) 22 _CLC_VECTOR_ISNAN_DECL(short, half) 23 #endif 24 25 #undef _CLC_ISNAN_DECL 26 #undef _CLC_VECTOR_ISNAN_DECL 27