Author: jvesely Date: Tue Nov 14 13:55:41 2017 New Revision: 318204 URL: http://llvm.org/viewvc/llvm-project?rev=318204&view=rev Log: native_powr: Switch implementation to native_exp2 and native_log2
v2: don't use assume check only for x<0, the other conditions are handled transparently v3: don't check inputs at all, nan propagation works as expected Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely <jan.ves...@rutgers.edu> Added: libclc/trunk/generic/lib/math/native_powr.cl libclc/trunk/generic/lib/math/native_powr.inc Modified: libclc/trunk/generic/include/clc/math/native_powr.h libclc/trunk/generic/lib/SOURCES Modified: libclc/trunk/generic/include/clc/math/native_powr.h URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/include/clc/math/native_powr.h?rev=318204&r1=318203&r2=318204&view=diff ============================================================================== --- libclc/trunk/generic/include/clc/math/native_powr.h (original) +++ libclc/trunk/generic/include/clc/math/native_powr.h Tue Nov 14 13:55:41 2017 @@ -1 +1,7 @@ -#define native_powr pow +#define __CLC_BODY <clc/math/binary_decl_tt.inc> +#define __CLC_FUNCTION native_powr + +#include <clc/math/gentype.inc> + +#undef __CLC_BODY +#undef __CLC_FUNCTION Modified: libclc/trunk/generic/lib/SOURCES URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/SOURCES?rev=318204&r1=318203&r2=318204&view=diff ============================================================================== --- libclc/trunk/generic/lib/SOURCES (original) +++ libclc/trunk/generic/lib/SOURCES Tue Nov 14 13:55:41 2017 @@ -127,6 +127,7 @@ math/native_exp2.cl math/native_log.cl math/native_log10.cl math/native_log2.cl +math/native_powr.cl math/native_recip.cl math/native_rsqrt.cl math/native_sin.cl Added: libclc/trunk/generic/lib/math/native_powr.cl URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/native_powr.cl?rev=318204&view=auto ============================================================================== --- libclc/trunk/generic/lib/math/native_powr.cl (added) +++ libclc/trunk/generic/lib/math/native_powr.cl Tue Nov 14 13:55:41 2017 @@ -0,0 +1,5 @@ +#include <clc/clc.h> + +#define __CLC_BODY <native_powr.inc> +#define __FLOAT_ONLY +#include <clc/math/gentype.inc> Added: libclc/trunk/generic/lib/math/native_powr.inc URL: http://llvm.org/viewvc/llvm-project/libclc/trunk/generic/lib/math/native_powr.inc?rev=318204&view=auto ============================================================================== --- libclc/trunk/generic/lib/math/native_powr.inc (added) +++ libclc/trunk/generic/lib/math/native_powr.inc Tue Nov 14 13:55:41 2017 @@ -0,0 +1,5 @@ +_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_powr(__CLC_GENTYPE x, __CLC_GENTYPE y) { + // x^y == 2^{log2 x^y} == 2^{y * log2 x} + // for x < 0 propagate nan created by log2 + return native_exp2(y * native_log2(x)); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits