llvm-project/libclc/generic/lib
Tom Stellard a64bad8338 Use a more accurate implementation for exp
Using exp2(x * M_LOG2E_F) does not give us accurate enough results for
OpenCL.  If you look at the new exp implementation you'll see that
it does multiply the input by M_LOG2E_F, but it still uses the original
input in part of the calculation.

This exp implementation was ported from the AMD builtin library
and has been tested with piglit, OpenCV, and the ocl conformance tests.

llvm-svn: 237229
2015-05-13 03:55:09 +00:00
..
LLVM3.6 Allow compilation depending to the LLVM version 2015-04-29 15:37:06 +00:00
async Implement async_work_group_copy builtin v3 2014-10-03 19:49:39 +00:00
atomic atomic: Add generic atom[ic]_cmpxchg 2014-09-16 22:34:49 +00:00
cl_khr_global_int32_base_atomics atomic: Add generic atom[ic]_cmpxchg 2014-09-16 22:34:49 +00:00
cl_khr_global_int32_extended_atomics atomic: Add generic atomic_min implementation 2014-09-16 22:34:41 +00:00
cl_khr_local_int32_base_atomics atomic: Add generic atom[ic]_cmpxchg 2014-09-16 22:34:49 +00:00
cl_khr_local_int32_extended_atomics atomic: Add generic atomic_min implementation 2014-09-16 22:34:41 +00:00
common Move mix from math to common 2015-03-03 21:25:08 +00:00
geometric geometric: Limit fast_{distance,length} functions to single precision 2015-05-09 22:31:01 +00:00
integer Implement generic mad_sat 2014-09-02 17:55:02 +00:00
math Use a more accurate implementation for exp 2015-05-13 03:55:09 +00:00
relational Fix bitselect for float/double types v2 2015-03-05 15:31:05 +00:00
shared vload/vstore: Use casts instead of scalarizing everything in CLC version 2014-08-20 13:58:57 +00:00
workitem PTX: move implementations of work-item and synchronisation functions 2012-08-05 22:25:37 +00:00
SOURCES Implement exp2 using OpenCL C rather than using an intrinsic 2015-05-13 03:55:07 +00:00
SOURCES_LLVM3.6 Allow compilation depending to the LLVM version 2015-04-29 15:37:06 +00:00
clcmacro.h math: Add ldexp implementation 2015-05-06 20:53:32 +00:00
gen_convert.py Fix definition of INFINITY and add NAN/HUGE_VAL[F] 2014-06-16 22:32:58 +00:00
subnormal_config.cl configure: Add --enable-runtime-subnormal option 2015-04-20 18:49:50 +00:00
subnormal_disable.ll configure: Add --enable-runtime-subnormal option 2015-04-20 18:49:50 +00:00
subnormal_helper_func.ll configure: Add --enable-runtime-subnormal option 2015-04-20 18:49:50 +00:00
subnormal_use_default.ll configure: Add --enable-runtime-subnormal option 2015-04-20 18:49:50 +00:00