1#ifdef __CLC_SCALAR 2#define __CLC_VECSIZE 3#endif 4 5#if __CLC_FPSIZE == 64 6#define __CLC_S_GENTYPE __CLC_XCONCAT(long, __CLC_VECSIZE) 7#define __CLC_U_GENTYPE __CLC_XCONCAT(ulong, __CLC_VECSIZE) 8#elif __CLC_FPSIZE == 32 9#define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE) 10#define __CLC_U_GENTYPE __CLC_XCONCAT(uint, __CLC_VECSIZE) 11#elif __CLC_FPSIZE == 16 12#define __CLC_S_GENTYPE __CLC_XCONCAT(short, __CLC_VECSIZE) 13#define __CLC_U_GENTYPE __CLC_XCONCAT(ushort, __CLC_VECSIZE) 14#endif 15 16_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_S_GENTYPE z) 17{ 18 return z ? y : x; 19} 20 21_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_U_GENTYPE z) 22{ 23 return z ? y : x; 24} 25 26#ifdef __CLC_FPSIZE 27#undef __CLC_S_GENTYPE 28#undef __CLC_U_GENTYPE 29#endif 30 31#ifdef __CLC_SCALAR 32#undef __CLC_VECSIZE 33#endif 34