Author: jvesely Date: Fri Apr 6 15:00:00 2018 New Revision: 329462 URL: http://llvm.org/viewvc/llvm-project?rev=329462&view=rev Log: select: simplify implementation and fix fp16
Fix half precision implementation Vector ?: operator should behave exactly as select Passes CTS on carrizo Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu> Reviewer: Jeroen Ketema <j.ket...@xs4all.nl> Modified: libclc/trunk/generic/lib/relational/select.inc Modified: libclc/trunk/generic/lib/relational/select.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/relational/select.inc?rev=329462&r1=329461&r2=329462&view=diff ============================================================================== --- libclc/trunk/generic/lib/relational/select.inc (original) +++ libclc/trunk/generic/lib/relational/select.inc Fri Apr 6 15:00:00 2018 @@ -9,39 +9,25 @@ #define __CLC_S_GENTYPE __CLC_XCONCAT(int, __CLC_VECSIZE) #define __CLC_U_GENTYPE __CLC_XCONCAT(uint, __CLC_VECSIZE) #elif __CLC_FPSIZE == 16 -#define __CLC_S_GENTYPE __CLC_XCONCAT(char, __CLC_VECSIZE) -#define __CLC_U_GENTYPE __CLC_XCONCAT(uchar, __CLC_VECSIZE) -#endif -#ifdef __CLC_FPSIZE -#define __CLC_GENSIZE __CLC_FPSIZE +#define __CLC_S_GENTYPE __CLC_XCONCAT(short, __CLC_VECSIZE) +#define __CLC_U_GENTYPE __CLC_XCONCAT(ushort, __CLC_VECSIZE) #endif -#define __CLC_AS_S_GENTYPE __CLC_XCONCAT(as_, __CLC_S_GENTYPE) -#define __CLC_AS_GENTYPE __CLC_XCONCAT(as_, __CLC_GENTYPE) - _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_S_GENTYPE z) { -#ifdef __CLC_SCALAR return z ? y : x; -#else - __CLC_S_GENTYPE bitmask = z >> (__CLC_GENSIZE - 1); - return __CLC_AS_GENTYPE(bitselect(__CLC_AS_S_GENTYPE(x), __CLC_AS_S_GENTYPE(y), bitmask)); -#endif } _CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE select(__CLC_GENTYPE x, __CLC_GENTYPE y, __CLC_U_GENTYPE z) { - return select(x, y, __CLC_AS_S_GENTYPE(z)); + return z ? y : x; } -#undef __CLC_AS_S_GENTYPE -#undef __CLC_AS_GENTYPE - #ifdef __CLC_FPSIZE #undef __CLC_S_GENTYPE #undef __CLC_U_GENTYPE -#undef __CLC_GENSIZE #endif + #ifdef __CLC_SCALAR #undef __CLC_VECSIZE #endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits