math: Use precomputed constant for log2(10.0)
exp10 CTS fails with or without this change Reviewer: Jeroen Ketema Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 318063
This commit is contained in:
parent
0a7d0230fc
commit
79b7566210
|
@ -31,6 +31,10 @@
|
|||
#define M_SQRT2_F 0x1.6a09e6p+0f
|
||||
#define M_SQRT1_2_F 0x1.6a09e6p-1f
|
||||
|
||||
#ifdef __CLC_INTERNAL
|
||||
#define M_LOG210_F 0x1.a934f0p+1f
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp64
|
||||
|
||||
#define HUGE_VAL __builtin_huge_val()
|
||||
|
@ -59,6 +63,10 @@
|
|||
#define M_SQRT2 0x1.6a09e667f3bcdp+0
|
||||
#define M_SQRT1_2 0x1.6a09e667f3bcdp-1
|
||||
|
||||
#ifdef __CLC_INTERNAL
|
||||
#define M_LOG210 0x1.a934f0979a371p+1
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef cl_khr_fp16
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE exp10(__CLC_GENTYPE val) {
|
||||
// exp10(x) = exp2(x * log2(10))
|
||||
#if __CLC_FPSIZE == 32
|
||||
return exp2(val * log2(10.0f));
|
||||
return exp2(val * M_LOG210_F);
|
||||
#elif __CLC_FPSIZE == 64
|
||||
return exp2(val * log2(10.0));
|
||||
return exp2(val * M_LOG210);
|
||||
#else
|
||||
#error unknown _CLC_FPSIZE
|
||||
#endif
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
_CLC_OVERLOAD _CLC_DEF __CLC_GENTYPE native_exp10(__CLC_GENTYPE val) {
|
||||
return native_exp2(val * native_log2(10));
|
||||
return native_exp2(val * M_LOG210_F);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue