From 78b5bb702fe97fe85f66d72598d0dfa7c49fe001 Mon Sep 17 00:00:00 2001 From: Fraser Cormack Date: Tue, 28 Jan 2025 14:17:23 +0000 Subject: [PATCH] [libclc][NFC] Move key math headers to CLC (#124739) --- .../include/clc/math/clc_subnormal_config.h} | 4 + .../lib => clc/include/clc}/math/math.h | 108 +++++++++--------- .../lib => clc/include/clc}/math/tables.h | 22 ++-- libclc/clspv/lib/math/fma.cl | 2 +- libclc/clspv/lib/subnormal_config.cl | 3 +- libclc/generic/include/math/clc_ldexp.h | 2 + libclc/generic/lib/math/acos.cl | 4 +- libclc/generic/lib/math/acosh.cl | 5 +- libclc/generic/lib/math/acospi.cl | 3 +- libclc/generic/lib/math/asin.cl | 3 +- libclc/generic/lib/math/asinh.cl | 5 +- libclc/generic/lib/math/asinpi.cl | 3 +- libclc/generic/lib/math/atan.cl | 3 +- libclc/generic/lib/math/atan2.cl | 5 +- libclc/generic/lib/math/atan2pi.cl | 5 +- libclc/generic/lib/math/atanh.cl | 3 +- libclc/generic/lib/math/atanpi.cl | 3 +- libclc/generic/lib/math/cbrt.cl | 5 +- libclc/generic/lib/math/clc_exp10.cl | 7 +- libclc/generic/lib/math/clc_fma.cl | 5 +- libclc/generic/lib/math/clc_fmod.cl | 5 +- libclc/generic/lib/math/clc_hypot.cl | 5 +- libclc/generic/lib/math/clc_ldexp.cl | 4 +- libclc/generic/lib/math/clc_pow.cl | 7 +- libclc/generic/lib/math/clc_pown.cl | 7 +- libclc/generic/lib/math/clc_powr.cl | 7 +- libclc/generic/lib/math/clc_remainder.cl | 5 +- libclc/generic/lib/math/clc_remquo.cl | 5 +- libclc/generic/lib/math/clc_rootn.cl | 7 +- libclc/generic/lib/math/clc_tan.cl | 7 +- libclc/generic/lib/math/clc_tanpi.cl | 8 +- libclc/generic/lib/math/cos.cl | 5 +- libclc/generic/lib/math/cosh.cl | 5 +- libclc/generic/lib/math/cospi.cl | 2 +- libclc/generic/lib/math/ep_log.cl | 6 +- libclc/generic/lib/math/ep_log.h | 2 + libclc/generic/lib/math/erf.cl | 3 +- libclc/generic/lib/math/erfc.cl | 3 +- libclc/generic/lib/math/exp.cl | 3 +- libclc/generic/lib/math/exp2.cl | 3 +- libclc/generic/lib/math/exp_helper.cl | 5 +- libclc/generic/lib/math/expm1.cl | 5 +- libclc/generic/lib/math/fdim.cl | 3 +- libclc/generic/lib/math/fma.cl | 2 +- libclc/generic/lib/math/ilogb.cl | 2 +- libclc/generic/lib/math/ldexp.cl | 4 +- libclc/generic/lib/math/lgamma_r.cl | 3 +- libclc/generic/lib/math/log10.cl | 2 +- libclc/generic/lib/math/log1p.cl | 5 +- libclc/generic/lib/math/log2.cl | 2 +- libclc/generic/lib/math/log_base.h | 2 +- libclc/generic/lib/math/logb.cl | 2 +- libclc/generic/lib/math/modf.cl | 3 +- libclc/generic/lib/math/sin.cl | 5 +- libclc/generic/lib/math/sincos_helpers.cl | 7 +- libclc/generic/lib/math/sincos_helpers.h | 9 +- libclc/generic/lib/math/sinh.cl | 5 +- libclc/generic/lib/math/sinpi.cl | 2 +- libclc/generic/lib/math/tables.cl | 2 +- libclc/generic/lib/math/tanh.cl | 3 +- libclc/generic/lib/math/tgamma.cl | 3 +- libclc/generic/lib/subnormal_config.cl | 3 +- libclc/r600/lib/math/fmax.cl | 3 +- libclc/r600/lib/math/fmin.cl | 3 +- libclc/spirv/lib/subnormal_config.cl | 3 +- libclc/spirv64/lib/subnormal_config.cl | 3 +- 66 files changed, 178 insertions(+), 212 deletions(-) rename libclc/{generic/include/config.h => clc/include/clc/math/clc_subnormal_config.h} (90%) rename libclc/{generic/lib => clc/include/clc}/math/math.h (52%) rename libclc/{generic/lib => clc/include/clc}/math/tables.h (81%) diff --git a/libclc/generic/include/config.h b/libclc/clc/include/clc/math/clc_subnormal_config.h similarity index 90% rename from libclc/generic/include/config.h rename to libclc/clc/include/clc/math/clc_subnormal_config.h index 7aa5967f4eb68..eaab5aaee985b 100644 --- a/libclc/generic/include/config.h +++ b/libclc/clc/include/clc/math/clc_subnormal_config.h @@ -19,6 +19,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#ifndef __CLC_MATH_CLC_SUBNORMAL_CONFIG_H__ +#define __CLC_MATH_CLC_SUBNORMAL_CONFIG_H__ #include @@ -26,3 +28,5 @@ _CLC_DECL bool __clc_subnormals_disabled(); _CLC_DECL bool __clc_fp16_subnormals_supported(); _CLC_DECL bool __clc_fp32_subnormals_supported(); _CLC_DECL bool __clc_fp64_subnormals_supported(); + +#endif // __CLC_MATH_CLC_SUBNORMAL_CONFIG_H__ diff --git a/libclc/generic/lib/math/math.h b/libclc/clc/include/clc/math/math.h similarity index 52% rename from libclc/generic/lib/math/math.h rename to libclc/clc/include/clc/math/math.h index d5ef0871e5201..ed37af237bf82 100644 --- a/libclc/generic/lib/math/math.h +++ b/libclc/clc/include/clc/math/math.h @@ -20,12 +20,12 @@ * THE SOFTWARE. */ -#ifndef __CLC_MATH_H_ -#define __CLC_MATH_H_ +#ifndef __CLC_MATH_MATH_H__ +#define __CLC_MATH_MATH_H__ -#include "clc/clcfunc.h" -#include "clc/as_type.h" -#include "config.h" +#include +#include +#include #define SNAN 0x001 #define QNAN 0x002 @@ -54,64 +54,64 @@ bool __attribute__((noinline)) __clc_runtime_has_hw_fma32(void); #define MATH_RECIP(X) (1.0f / (X)) #define MATH_SQRT(X) sqrt(X) -#define SIGNBIT_SP32 0x80000000 -#define EXSIGNBIT_SP32 0x7fffffff -#define EXPBITS_SP32 0x7f800000 -#define MANTBITS_SP32 0x007fffff -#define ONEEXPBITS_SP32 0x3f800000 -#define TWOEXPBITS_SP32 0x40000000 -#define HALFEXPBITS_SP32 0x3f000000 -#define IMPBIT_SP32 0x00800000 -#define QNANBITPATT_SP32 0x7fc00000 +#define SIGNBIT_SP32 0x80000000 +#define EXSIGNBIT_SP32 0x7fffffff +#define EXPBITS_SP32 0x7f800000 +#define MANTBITS_SP32 0x007fffff +#define ONEEXPBITS_SP32 0x3f800000 +#define TWOEXPBITS_SP32 0x40000000 +#define HALFEXPBITS_SP32 0x3f000000 +#define IMPBIT_SP32 0x00800000 +#define QNANBITPATT_SP32 0x7fc00000 #define INDEFBITPATT_SP32 0xffc00000 -#define PINFBITPATT_SP32 0x7f800000 -#define NINFBITPATT_SP32 0xff800000 -#define EXPBIAS_SP32 127 +#define PINFBITPATT_SP32 0x7f800000 +#define NINFBITPATT_SP32 0xff800000 +#define EXPBIAS_SP32 127 #define EXPSHIFTBITS_SP32 23 -#define BIASEDEMIN_SP32 1 -#define EMIN_SP32 -126 -#define BIASEDEMAX_SP32 254 -#define EMAX_SP32 127 -#define LAMBDA_SP32 1.0e30 -#define MANTLENGTH_SP32 24 -#define BASEDIGITS_SP32 7 +#define BIASEDEMIN_SP32 1 +#define EMIN_SP32 -126 +#define BIASEDEMAX_SP32 254 +#define EMAX_SP32 127 +#define LAMBDA_SP32 1.0e30 +#define MANTLENGTH_SP32 24 +#define BASEDIGITS_SP32 7 -_CLC_OVERLOAD _CLC_INLINE float __clc_flush_denormal_if_not_supported(float x) -{ - int ix = as_int(x); - if (!__clc_fp32_subnormals_supported() && - ((ix & EXPBITS_SP32) == 0) && ((ix & MANTBITS_SP32) != 0)) { - ix &= SIGNBIT_SP32; - x = as_float(ix); - } - return x; +_CLC_OVERLOAD _CLC_INLINE float __clc_flush_denormal_if_not_supported(float x) { + int ix = __clc_as_int(x); + if (!__clc_fp32_subnormals_supported() && ((ix & EXPBITS_SP32) == 0) && + ((ix & MANTBITS_SP32) != 0)) { + ix &= SIGNBIT_SP32; + x = __clc_as_float(ix); + } + return x; } #ifdef cl_khr_fp64 -#define SIGNBIT_DP64 0x8000000000000000L -#define EXSIGNBIT_DP64 0x7fffffffffffffffL -#define EXPBITS_DP64 0x7ff0000000000000L -#define MANTBITS_DP64 0x000fffffffffffffL -#define ONEEXPBITS_DP64 0x3ff0000000000000L -#define TWOEXPBITS_DP64 0x4000000000000000L -#define HALFEXPBITS_DP64 0x3fe0000000000000L -#define IMPBIT_DP64 0x0010000000000000L -#define QNANBITPATT_DP64 0x7ff8000000000000L +#define SIGNBIT_DP64 0x8000000000000000L +#define EXSIGNBIT_DP64 0x7fffffffffffffffL +#define EXPBITS_DP64 0x7ff0000000000000L +#define MANTBITS_DP64 0x000fffffffffffffL +#define ONEEXPBITS_DP64 0x3ff0000000000000L +#define TWOEXPBITS_DP64 0x4000000000000000L +#define HALFEXPBITS_DP64 0x3fe0000000000000L +#define IMPBIT_DP64 0x0010000000000000L +#define QNANBITPATT_DP64 0x7ff8000000000000L #define INDEFBITPATT_DP64 0xfff8000000000000L -#define PINFBITPATT_DP64 0x7ff0000000000000L -#define NINFBITPATT_DP64 0xfff0000000000000L -#define EXPBIAS_DP64 1023 +#define PINFBITPATT_DP64 0x7ff0000000000000L +#define NINFBITPATT_DP64 0xfff0000000000000L +#define EXPBIAS_DP64 1023 #define EXPSHIFTBITS_DP64 52 -#define BIASEDEMIN_DP64 1 -#define EMIN_DP64 -1022 -#define BIASEDEMAX_DP64 2046 /* 0x7fe */ -#define EMAX_DP64 1023 /* 0x3ff */ -#define LAMBDA_DP64 1.0e300 -#define MANTLENGTH_DP64 53 -#define BASEDIGITS_DP64 15 +#define BIASEDEMIN_DP64 1 +#define EMIN_DP64 -1022 +#define BIASEDEMAX_DP64 2046 /* 0x7fe */ +#define EMAX_DP64 1023 /* 0x3ff */ +#define LAMBDA_DP64 1.0e300 +#define MANTLENGTH_DP64 53 +#define BASEDIGITS_DP64 15 #endif // cl_khr_fp64 -#define ALIGNED(x) __attribute__((aligned(x))) -#endif // __CLC_MATH_H_ +#define ALIGNED(x) __attribute__((aligned(x))) + +#endif // __CLC_MATH_MATH_H__ diff --git a/libclc/generic/lib/math/tables.h b/libclc/clc/include/clc/math/tables.h similarity index 81% rename from libclc/generic/lib/math/tables.h rename to libclc/clc/include/clc/math/tables.h index ea5221e1f72b0..71a332144c474 100644 --- a/libclc/generic/lib/math/tables.h +++ b/libclc/clc/include/clc/math/tables.h @@ -20,32 +20,30 @@ * THE SOFTWARE. */ +#ifndef __CLC_MATH_TABLES_H__ +#define __CLC_MATH_TABLES_H__ + #include #define TABLE_SPACE __constant #define TABLE_MANGLE(NAME) __clc_##NAME -#define DECLARE_TABLE(TYPE,NAME,LENGTH) \ - TABLE_SPACE TYPE NAME [ LENGTH ] +#define DECLARE_TABLE(TYPE, NAME, LENGTH) TABLE_SPACE TYPE NAME[LENGTH] -#define TABLE_FUNCTION(TYPE,TABLE,NAME) \ - TYPE TABLE_MANGLE(NAME)(size_t idx) { \ - return TABLE[idx]; \ - } +#define TABLE_FUNCTION(TYPE, TABLE, NAME) \ + TYPE TABLE_MANGLE(NAME)(size_t idx) { return TABLE[idx]; } -#define TABLE_FUNCTION_DECL(TYPE, NAME) \ - TYPE TABLE_MANGLE(NAME)(size_t idx); +#define TABLE_FUNCTION_DECL(TYPE, NAME) TYPE TABLE_MANGLE(NAME)(size_t idx); -#define USE_TABLE(NAME, IDX) \ - TABLE_MANGLE(NAME)(IDX) +#define USE_TABLE(NAME, IDX) TABLE_MANGLE(NAME)(IDX) TABLE_FUNCTION_DECL(float2, loge_tbl); TABLE_FUNCTION_DECL(float, log_inv_tbl); TABLE_FUNCTION_DECL(float2, log_inv_tbl_ep); TABLE_FUNCTION_DECL(float2, log2_tbl); TABLE_FUNCTION_DECL(float2, log10_tbl); -TABLE_FUNCTION_DECL(uint4, pibits_tbl); +TABLE_FUNCTION_DECL(uint4, pibits_tbl); TABLE_FUNCTION_DECL(float2, sinhcosh_tbl); TABLE_FUNCTION_DECL(float2, cbrt_tbl); TABLE_FUNCTION_DECL(float, exp_tbl); @@ -67,3 +65,5 @@ TABLE_FUNCTION_DECL(double2, powlog_tbl); TABLE_FUNCTION_DECL(double2, log_f_inv_tbl); #endif // cl_khr_fp64 + +#endif // __CLC_MATH_TABLES_H__ diff --git a/libclc/clspv/lib/math/fma.cl b/libclc/clspv/lib/math/fma.cl index e6251db4e92db..73c6e158601d9 100644 --- a/libclc/clspv/lib/math/fma.cl +++ b/libclc/clspv/lib/math/fma.cl @@ -24,9 +24,9 @@ // (__clc_sw_fma), but avoids the use of ulong in favor of uint2. The logic has // been updated as appropriate. -#include "../../../generic/lib/math/math.h" #include #include +#include struct fp { uint2 mantissa; diff --git a/libclc/clspv/lib/subnormal_config.cl b/libclc/clspv/lib/subnormal_config.cl index 167fe1b1a1bcf..3ab5a6394b933 100644 --- a/libclc/clspv/lib/subnormal_config.cl +++ b/libclc/clspv/lib/subnormal_config.cl @@ -21,8 +21,7 @@ */ #include - -#include "config.h" +#include _CLC_DEF bool __clc_fp16_subnormals_supported() { return false; } diff --git a/libclc/generic/include/math/clc_ldexp.h b/libclc/generic/include/math/clc_ldexp.h index 454b7ed3dcee5..eb83f16240185 100644 --- a/libclc/generic/include/math/clc_ldexp.h +++ b/libclc/generic/include/math/clc_ldexp.h @@ -1,3 +1,5 @@ +#include + _CLC_DEF _CLC_OVERLOAD float __clc_ldexp(float, int); #ifdef cl_khr_fp64 diff --git a/libclc/generic/lib/math/acos.cl b/libclc/generic/lib/math/acos.cl index d71d10024b180..273ddbd4b1ee5 100644 --- a/libclc/generic/lib/math/acos.cl +++ b/libclc/generic/lib/math/acos.cl @@ -19,10 +19,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ + #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float acos(float x) { // Computes arccos(x). diff --git a/libclc/generic/lib/math/acosh.cl b/libclc/generic/lib/math/acosh.cl index 977c2e929b34c..41671e94ea78c 100644 --- a/libclc/generic/lib/math/acosh.cl +++ b/libclc/generic/lib/math/acosh.cl @@ -20,11 +20,10 @@ * THE SOFTWARE. */ +#include "ep_log.h" #include #include - -#include "ep_log.h" -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float acosh(float x) { uint ux = as_uint(x); diff --git a/libclc/generic/lib/math/acospi.cl b/libclc/generic/lib/math/acospi.cl index 5aa8a083df4e9..d640ff24e5386 100644 --- a/libclc/generic/lib/math/acospi.cl +++ b/libclc/generic/lib/math/acospi.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float acospi(float x) { // Computes arccos(x). diff --git a/libclc/generic/lib/math/asin.cl b/libclc/generic/lib/math/asin.cl index 443dec830eb2f..ae60b88e9037c 100644 --- a/libclc/generic/lib/math/asin.cl +++ b/libclc/generic/lib/math/asin.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float asin(float x) { // Computes arcsin(x). diff --git a/libclc/generic/lib/math/asinh.cl b/libclc/generic/lib/math/asinh.cl index 686d9f7a95e5d..1a60fae8bdf9b 100644 --- a/libclc/generic/lib/math/asinh.cl +++ b/libclc/generic/lib/math/asinh.cl @@ -20,11 +20,10 @@ * THE SOFTWARE. */ +#include "ep_log.h" #include #include - -#include "math.h" -#include "ep_log.h" +#include _CLC_OVERLOAD _CLC_DEF float asinh(float x) { uint ux = as_uint(x); diff --git a/libclc/generic/lib/math/asinpi.cl b/libclc/generic/lib/math/asinpi.cl index 18dc53000b034..64b15aff6792c 100644 --- a/libclc/generic/lib/math/asinpi.cl +++ b/libclc/generic/lib/math/asinpi.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float asinpi(float x) { // Computes arcsin(x). diff --git a/libclc/generic/lib/math/atan.cl b/libclc/generic/lib/math/atan.cl index b6b067f2bf4ff..95c247304f91a 100644 --- a/libclc/generic/lib/math/atan.cl +++ b/libclc/generic/lib/math/atan.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float atan(float x) { diff --git a/libclc/generic/lib/math/atan2.cl b/libclc/generic/lib/math/atan2.cl index 32419937a856b..067e43e445ed1 100644 --- a/libclc/generic/lib/math/atan2.cl +++ b/libclc/generic/lib/math/atan2.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float atan2(float y, float x) { diff --git a/libclc/generic/lib/math/atan2pi.cl b/libclc/generic/lib/math/atan2pi.cl index e631918f7539e..d67cf90df63f8 100644 --- a/libclc/generic/lib/math/atan2pi.cl +++ b/libclc/generic/lib/math/atan2pi.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float atan2pi(float y, float x) { const float pi = 0x1.921fb6p+1f; diff --git a/libclc/generic/lib/math/atanh.cl b/libclc/generic/lib/math/atanh.cl index 10bad190cc0dc..81ae1a2ca801c 100644 --- a/libclc/generic/lib/math/atanh.cl +++ b/libclc/generic/lib/math/atanh.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float atanh(float x) { uint ux = as_uint(x); diff --git a/libclc/generic/lib/math/atanpi.cl b/libclc/generic/lib/math/atanpi.cl index 8522acf349933..8c7bac4bb4bb2 100644 --- a/libclc/generic/lib/math/atanpi.cl +++ b/libclc/generic/lib/math/atanpi.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float atanpi(float x) { const float pi = 3.1415926535897932f; diff --git a/libclc/generic/lib/math/cbrt.cl b/libclc/generic/lib/math/cbrt.cl index 49f2ba8a411cb..a2bf152f35f94 100644 --- a/libclc/generic/lib/math/cbrt.cl +++ b/libclc/generic/lib/math/cbrt.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float cbrt(float x) { diff --git a/libclc/generic/lib/math/clc_exp10.cl b/libclc/generic/lib/math/clc_exp10.cl index 572aa396942b7..0eb53d013a85a 100644 --- a/libclc/generic/lib/math/clc_exp10.cl +++ b/libclc/generic/lib/math/clc_exp10.cl @@ -23,12 +23,11 @@ #include #include #include +#include +#include +#include #include -#include "config.h" -#include "math.h" -#include "tables.h" - // Algorithm: // // e^x = 2^(x/ln(2)) = 2^(x*(64/ln(2))/64) diff --git a/libclc/generic/lib/math/clc_fma.cl b/libclc/generic/lib/math/clc_fma.cl index 15de4c8032a93..3f29e7f92615a 100644 --- a/libclc/generic/lib/math/clc_fma.cl +++ b/libclc/generic/lib/math/clc_fma.cl @@ -23,13 +23,12 @@ #include #include #include +#include +#include #include #include #include -#include "config.h" -#include "math.h" - struct fp { ulong mantissa; int exponent; diff --git a/libclc/generic/lib/math/clc_fmod.cl b/libclc/generic/lib/math/clc_fmod.cl index 5d101373178dd..db47536833342 100644 --- a/libclc/generic/lib/math/clc_fmod.cl +++ b/libclc/generic/lib/math/clc_fmod.cl @@ -23,12 +23,11 @@ #include #include #include +#include #include +#include #include - #include -#include "config.h" -#include "math.h" _CLC_DEF _CLC_OVERLOAD float __clc_fmod(float x, float y) { diff --git a/libclc/generic/lib/math/clc_hypot.cl b/libclc/generic/lib/math/clc_hypot.cl index d889969d6d8c2..fd2e87b4a1ed8 100644 --- a/libclc/generic/lib/math/clc_hypot.cl +++ b/libclc/generic/lib/math/clc_hypot.cl @@ -24,13 +24,12 @@ #include #include #include +#include +#include #include #include #include -#include "config.h" -#include "math.h" - // Returns sqrt(x*x + y*y) with no overflow or underflow unless the result // warrants it _CLC_DEF _CLC_OVERLOAD float __clc_hypot(float x, float y) { diff --git a/libclc/generic/lib/math/clc_ldexp.cl b/libclc/generic/lib/math/clc_ldexp.cl index 6d3721588df81..09c27062c63f9 100644 --- a/libclc/generic/lib/math/clc_ldexp.cl +++ b/libclc/generic/lib/math/clc_ldexp.cl @@ -20,8 +20,8 @@ * THE SOFTWARE. */ -#include "config.h" -#include "math.h" +#include +#include #include #include #include diff --git a/libclc/generic/lib/math/clc_pow.cl b/libclc/generic/lib/math/clc_pow.cl index 4abfaf1c10df4..5dcd392c0f7ed 100644 --- a/libclc/generic/lib/math/clc_pow.cl +++ b/libclc/generic/lib/math/clc_pow.cl @@ -24,10 +24,9 @@ #include #include #include - -#include "config.h" -#include "math.h" -#include "tables.h" +#include +#include +#include /* compute pow using log and exp diff --git a/libclc/generic/lib/math/clc_pown.cl b/libclc/generic/lib/math/clc_pown.cl index c020892664602..a0f968c238e99 100644 --- a/libclc/generic/lib/math/clc_pown.cl +++ b/libclc/generic/lib/math/clc_pown.cl @@ -24,10 +24,9 @@ #include #include #include - -#include "config.h" -#include "math.h" -#include "tables.h" +#include +#include +#include // compute pow using log and exp // x^y = exp(y * log(x)) diff --git a/libclc/generic/lib/math/clc_powr.cl b/libclc/generic/lib/math/clc_powr.cl index 9516be34456b8..7e1a6f2a02e7a 100644 --- a/libclc/generic/lib/math/clc_powr.cl +++ b/libclc/generic/lib/math/clc_powr.cl @@ -24,10 +24,9 @@ #include #include #include - -#include "config.h" -#include "math.h" -#include "tables.h" +#include +#include +#include // compute pow using log and exp // x^y = exp(y * log(x)) diff --git a/libclc/generic/lib/math/clc_remainder.cl b/libclc/generic/lib/math/clc_remainder.cl index 8a0ce8816fcb3..e9d2e382d9beb 100644 --- a/libclc/generic/lib/math/clc_remainder.cl +++ b/libclc/generic/lib/math/clc_remainder.cl @@ -23,12 +23,11 @@ #include #include #include +#include #include +#include #include - #include -#include "config.h" -#include "math.h" _CLC_DEF _CLC_OVERLOAD float __clc_remainder(float x, float y) { diff --git a/libclc/generic/lib/math/clc_remquo.cl b/libclc/generic/lib/math/clc_remquo.cl index 8d2e5f9a74bfe..9cbda094294ad 100644 --- a/libclc/generic/lib/math/clc_remquo.cl +++ b/libclc/generic/lib/math/clc_remquo.cl @@ -23,13 +23,12 @@ #include #include #include +#include #include +#include #include #include -#include "config.h" -#include "math.h" - _CLC_DEF _CLC_OVERLOAD float __clc_remquo(float x, float y, __private int *quo) { x = __clc_flush_denormal_if_not_supported(x); diff --git a/libclc/generic/lib/math/clc_rootn.cl b/libclc/generic/lib/math/clc_rootn.cl index 70ae02ac2370c..42b983784c14d 100644 --- a/libclc/generic/lib/math/clc_rootn.cl +++ b/libclc/generic/lib/math/clc_rootn.cl @@ -24,10 +24,9 @@ #include #include #include - -#include "config.h" -#include "math.h" -#include "tables.h" +#include +#include +#include // compute pow using log and exp // x^y = exp(y * log(x)) diff --git a/libclc/generic/lib/math/clc_tan.cl b/libclc/generic/lib/math/clc_tan.cl index 4daaee59b10d2..c1af01fbb7ec7 100644 --- a/libclc/generic/lib/math/clc_tan.cl +++ b/libclc/generic/lib/math/clc_tan.cl @@ -19,16 +19,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ +#include "sincos_helpers.h" #include #include #include +#include +#include #include #include -#include "math.h" -#include "sincos_helpers.h" -#include "tables.h" - _CLC_DEF _CLC_OVERLOAD float __clc_tan(float x) { int ix = as_int(x); int ax = ix & 0x7fffffff; diff --git a/libclc/generic/lib/math/clc_tanpi.cl b/libclc/generic/lib/math/clc_tanpi.cl index 65d1984593706..90f36eae63996 100644 --- a/libclc/generic/lib/math/clc_tanpi.cl +++ b/libclc/generic/lib/math/clc_tanpi.cl @@ -19,12 +19,12 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#include -#include -#include "math.h" #include "sincos_helpers.h" -#include "tables.h" +#include +#include +#include +#include _CLC_DEF _CLC_OVERLOAD float __clc_tanpi(float x) { diff --git a/libclc/generic/lib/math/cos.cl b/libclc/generic/lib/math/cos.cl index 2945c90d6fe0f..e13210cd40864 100644 --- a/libclc/generic/lib/math/cos.cl +++ b/libclc/generic/lib/math/cos.cl @@ -20,11 +20,10 @@ * THE SOFTWARE. */ +#include "sincos_helpers.h" #include #include - -#include "math.h" -#include "sincos_helpers.h" +#include _CLC_OVERLOAD _CLC_DEF float cos(float x) { diff --git a/libclc/generic/lib/math/cosh.cl b/libclc/generic/lib/math/cosh.cl index 02b03a761aa19..5b5400178e28e 100644 --- a/libclc/generic/lib/math/cosh.cl +++ b/libclc/generic/lib/math/cosh.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float cosh(float x) { diff --git a/libclc/generic/lib/math/cospi.cl b/libclc/generic/lib/math/cospi.cl index 98e989267c917..a3bfb8f20eee4 100644 --- a/libclc/generic/lib/math/cospi.cl +++ b/libclc/generic/lib/math/cospi.cl @@ -22,8 +22,8 @@ #include #include +#include -#include "math.h" #include "sincos_helpers.h" #include "sincospiF_piby4.h" #ifdef cl_khr_fp64 diff --git a/libclc/generic/lib/math/ep_log.cl b/libclc/generic/lib/math/ep_log.cl index 3c2c62c3d305b..90c9fa426fec1 100644 --- a/libclc/generic/lib/math/ep_log.cl +++ b/libclc/generic/lib/math/ep_log.cl @@ -22,10 +22,10 @@ #ifdef cl_khr_fp64 -#include #include "ep_log.h" -#include "math.h" -#include "tables.h" +#include +#include +#include #pragma OPENCL EXTENSION cl_khr_fp64 : enable diff --git a/libclc/generic/lib/math/ep_log.h b/libclc/generic/lib/math/ep_log.h index 7f99ac60b72fb..414e6231f7fd6 100644 --- a/libclc/generic/lib/math/ep_log.h +++ b/libclc/generic/lib/math/ep_log.h @@ -20,6 +20,8 @@ * THE SOFTWARE. */ +#include + #ifdef cl_khr_fp64 #pragma OPENCL EXTENSION cl_khr_fp64 : enable diff --git a/libclc/generic/lib/math/erf.cl b/libclc/generic/lib/math/erf.cl index ae8b6ab784558..bc305fe414a32 100644 --- a/libclc/generic/lib/math/erf.cl +++ b/libclc/generic/lib/math/erf.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include /* * ==================================================== diff --git a/libclc/generic/lib/math/erfc.cl b/libclc/generic/lib/math/erfc.cl index c4d34ea85e98b..39d8d826280bc 100644 --- a/libclc/generic/lib/math/erfc.cl +++ b/libclc/generic/lib/math/erfc.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include /* * ==================================================== diff --git a/libclc/generic/lib/math/exp.cl b/libclc/generic/lib/math/exp.cl index 95dc0db44df76..f71ed07c76b36 100644 --- a/libclc/generic/lib/math/exp.cl +++ b/libclc/generic/lib/math/exp.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float exp(float x) { diff --git a/libclc/generic/lib/math/exp2.cl b/libclc/generic/lib/math/exp2.cl index 8d718311f896f..13c4789797da9 100644 --- a/libclc/generic/lib/math/exp2.cl +++ b/libclc/generic/lib/math/exp2.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float exp2(float x) { diff --git a/libclc/generic/lib/math/exp_helper.cl b/libclc/generic/lib/math/exp_helper.cl index 046f306466bca..ea58d49815393 100644 --- a/libclc/generic/lib/math/exp_helper.cl +++ b/libclc/generic/lib/math/exp_helper.cl @@ -21,9 +21,8 @@ */ #include - -#include "math.h" -#include "tables.h" +#include +#include #ifdef cl_khr_fp64 diff --git a/libclc/generic/lib/math/expm1.cl b/libclc/generic/lib/math/expm1.cl index d50a88e0aaae8..5e2141ae791f5 100644 --- a/libclc/generic/lib/math/expm1.cl +++ b/libclc/generic/lib/math/expm1.cl @@ -1,8 +1,7 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include /* Refer to the exp routine for the underlying algorithm */ diff --git a/libclc/generic/lib/math/fdim.cl b/libclc/generic/lib/math/fdim.cl index 6899cb7549bc8..4980d6266a518 100644 --- a/libclc/generic/lib/math/fdim.cl +++ b/libclc/generic/lib/math/fdim.cl @@ -1,6 +1,5 @@ #include - -#include "math.h" +#include #define __CLC_BODY #include diff --git a/libclc/generic/lib/math/fma.cl b/libclc/generic/lib/math/fma.cl index 9ad81be696d95..00d5857fb897b 100644 --- a/libclc/generic/lib/math/fma.cl +++ b/libclc/generic/lib/math/fma.cl @@ -1,6 +1,6 @@ #include +#include -#include "math.h" #include "math/clc_fma.h" #define __CLC_BODY diff --git a/libclc/generic/lib/math/ilogb.cl b/libclc/generic/lib/math/ilogb.cl index f16b4404fbebe..c9a5014a975db 100644 --- a/libclc/generic/lib/math/ilogb.cl +++ b/libclc/generic/lib/math/ilogb.cl @@ -21,9 +21,9 @@ * THE SOFTWARE. */ -#include "math.h" #include #include +#include _CLC_OVERLOAD _CLC_DEF int ilogb(float x) { uint ux = as_uint(x); diff --git a/libclc/generic/lib/math/ldexp.cl b/libclc/generic/lib/math/ldexp.cl index a999c63902ce8..72708f74b5cc1 100644 --- a/libclc/generic/lib/math/ldexp.cl +++ b/libclc/generic/lib/math/ldexp.cl @@ -20,11 +20,11 @@ * THE SOFTWARE. */ -#include "config.h" -#include "math.h" #include "math/clc_ldexp.h" #include #include +#include +#include _CLC_DEFINE_BINARY_BUILTIN(float, ldexp, __clc_ldexp, float, int) diff --git a/libclc/generic/lib/math/lgamma_r.cl b/libclc/generic/lib/math/lgamma_r.cl index bd68a76068ec5..cef836ae9747e 100644 --- a/libclc/generic/lib/math/lgamma_r.cl +++ b/libclc/generic/lib/math/lgamma_r.cl @@ -23,8 +23,7 @@ #include #include - -#include "math.h" +#include /* * ==================================================== diff --git a/libclc/generic/lib/math/log10.cl b/libclc/generic/lib/math/log10.cl index 3abb14a28d8ad..38e36d7992bce 100644 --- a/libclc/generic/lib/math/log10.cl +++ b/libclc/generic/lib/math/log10.cl @@ -20,7 +20,7 @@ * THE SOFTWARE. */ -#include "tables.h" +#include #include #include diff --git a/libclc/generic/lib/math/log1p.cl b/libclc/generic/lib/math/log1p.cl index 7fef79ca7b8f3..da4a921e98659 100644 --- a/libclc/generic/lib/math/log1p.cl +++ b/libclc/generic/lib/math/log1p.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float log1p(float x) { diff --git a/libclc/generic/lib/math/log2.cl b/libclc/generic/lib/math/log2.cl index a6f9692881bb8..c3bcf64a01ab0 100644 --- a/libclc/generic/lib/math/log2.cl +++ b/libclc/generic/lib/math/log2.cl @@ -20,7 +20,7 @@ * THE SOFTWARE. */ -#include "tables.h" +#include #include #include diff --git a/libclc/generic/lib/math/log_base.h b/libclc/generic/lib/math/log_base.h index b8110ca1779a2..bd0169c03236f 100644 --- a/libclc/generic/lib/math/log_base.h +++ b/libclc/generic/lib/math/log_base.h @@ -20,7 +20,7 @@ * THE SOFTWARE. */ -#include "math.h" +#include /* Algorithm: diff --git a/libclc/generic/lib/math/logb.cl b/libclc/generic/lib/math/logb.cl index d91972f780ba9..ae3813225265f 100644 --- a/libclc/generic/lib/math/logb.cl +++ b/libclc/generic/lib/math/logb.cl @@ -1,6 +1,6 @@ -#include "math.h" #include #include +#include _CLC_OVERLOAD _CLC_DEF float logb(float x) { int ax = as_int(x) & EXSIGNBIT_SP32; diff --git a/libclc/generic/lib/math/modf.cl b/libclc/generic/lib/math/modf.cl index a462cab2e802b..5098a41d079c5 100644 --- a/libclc/generic/lib/math/modf.cl +++ b/libclc/generic/lib/math/modf.cl @@ -21,8 +21,7 @@ */ #include - -#include "math.h" +#include #define __CLC_BODY #include diff --git a/libclc/generic/lib/math/sin.cl b/libclc/generic/lib/math/sin.cl index c271e67828066..9b3d7a9580b14 100644 --- a/libclc/generic/lib/math/sin.cl +++ b/libclc/generic/lib/math/sin.cl @@ -20,11 +20,10 @@ * THE SOFTWARE. */ +#include "sincos_helpers.h" #include #include - -#include "math.h" -#include "sincos_helpers.h" +#include _CLC_OVERLOAD _CLC_DEF float sin(float x) { diff --git a/libclc/generic/lib/math/sincos_helpers.cl b/libclc/generic/lib/math/sincos_helpers.cl index e291e81ed980d..6afb1887d7797 100644 --- a/libclc/generic/lib/math/sincos_helpers.cl +++ b/libclc/generic/lib/math/sincos_helpers.cl @@ -20,15 +20,14 @@ * THE SOFTWARE. */ +#include "sincos_helpers.h" #include #include #include +#include +#include #include -#include "math.h" -#include "sincos_helpers.h" -#include "tables.h" - #define bitalign(hi, lo, shift) ((hi) << (32 - (shift))) | ((lo) >> (shift)); #define bytealign(src0, src1, src2) \ diff --git a/libclc/generic/lib/math/sincos_helpers.h b/libclc/generic/lib/math/sincos_helpers.h index e307abc48b2df..6dbca73aa2a2e 100644 --- a/libclc/generic/lib/math/sincos_helpers.h +++ b/libclc/generic/lib/math/sincos_helpers.h @@ -20,7 +20,8 @@ * THE SOFTWARE. */ -#include "clc/clcfunc.h" +#include +#include _CLC_DECL float __clc_sinf_piby4(float x, float y); _CLC_DECL float __clc_cosf_piby4(float x, float y); @@ -31,8 +32,10 @@ _CLC_DECL int __clc_argReductionS(float *r, float *rr, float x); #pragma OPENCL EXTENSION cl_khr_fp64 : enable -_CLC_DECL void __clc_remainder_piby2_medium(double x, double *r, double *rr, int *regn); -_CLC_DECL void __clc_remainder_piby2_large(double x, double *r, double *rr, int *regn); +_CLC_DECL void __clc_remainder_piby2_medium(double x, double *r, double *rr, + int *regn); +_CLC_DECL void __clc_remainder_piby2_large(double x, double *r, double *rr, + int *regn); _CLC_DECL double2 __clc_sincos_piby4(double x, double xx); #endif diff --git a/libclc/generic/lib/math/sinh.cl b/libclc/generic/lib/math/sinh.cl index 23500c1f49b7a..41a8bffb3a69c 100644 --- a/libclc/generic/lib/math/sinh.cl +++ b/libclc/generic/lib/math/sinh.cl @@ -22,9 +22,8 @@ #include #include - -#include "math.h" -#include "tables.h" +#include +#include _CLC_OVERLOAD _CLC_DEF float sinh(float x) { diff --git a/libclc/generic/lib/math/sinpi.cl b/libclc/generic/lib/math/sinpi.cl index 01b340b855c44..81cad9cc17800 100644 --- a/libclc/generic/lib/math/sinpi.cl +++ b/libclc/generic/lib/math/sinpi.cl @@ -22,8 +22,8 @@ #include #include +#include -#include "math.h" #include "sincospiF_piby4.h" #ifdef cl_khr_fp64 #include "sincosD_piby4.h" diff --git a/libclc/generic/lib/math/tables.cl b/libclc/generic/lib/math/tables.cl index 596487c89e568..8eefbffb234f1 100644 --- a/libclc/generic/lib/math/tables.cl +++ b/libclc/generic/lib/math/tables.cl @@ -22,7 +22,7 @@ #include -#include "tables.h" +#include DECLARE_TABLE(float2, LOGE_TBL, 129) = { (float2)(0x0.000000p+0f, 0x0.000000p+0f), diff --git a/libclc/generic/lib/math/tanh.cl b/libclc/generic/lib/math/tanh.cl index d9509c57b0507..80eb33fab903e 100644 --- a/libclc/generic/lib/math/tanh.cl +++ b/libclc/generic/lib/math/tanh.cl @@ -22,8 +22,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float tanh(float x) { diff --git a/libclc/generic/lib/math/tgamma.cl b/libclc/generic/lib/math/tgamma.cl index 314ffda4ec9d5..76614b575b632 100644 --- a/libclc/generic/lib/math/tgamma.cl +++ b/libclc/generic/lib/math/tgamma.cl @@ -23,8 +23,7 @@ #include #include - -#include "math.h" +#include _CLC_OVERLOAD _CLC_DEF float tgamma(float x) { const float pi = 3.1415926535897932384626433832795f; diff --git a/libclc/generic/lib/subnormal_config.cl b/libclc/generic/lib/subnormal_config.cl index 4bcecfd82e18a..7bb25cedc1a43 100644 --- a/libclc/generic/lib/subnormal_config.cl +++ b/libclc/generic/lib/subnormal_config.cl @@ -21,8 +21,7 @@ */ #include - -#include "config.h" +#include _CLC_DEF bool __clc_fp16_subnormals_supported() { return false; diff --git a/libclc/r600/lib/math/fmax.cl b/libclc/r600/lib/math/fmax.cl index a43530fc7507e..7c258e666b66e 100644 --- a/libclc/r600/lib/math/fmax.cl +++ b/libclc/r600/lib/math/fmax.cl @@ -1,7 +1,6 @@ #include #include - -#include "../../../generic/lib/math/math.h" +#include _CLC_DEF _CLC_OVERLOAD float fmax(float x, float y) { diff --git a/libclc/r600/lib/math/fmin.cl b/libclc/r600/lib/math/fmin.cl index a43655da13845..052980dd11156 100644 --- a/libclc/r600/lib/math/fmin.cl +++ b/libclc/r600/lib/math/fmin.cl @@ -1,7 +1,6 @@ #include #include - -#include "../../../generic/lib/math/math.h" +#include _CLC_DEF _CLC_OVERLOAD float fmin(float x, float y) { diff --git a/libclc/spirv/lib/subnormal_config.cl b/libclc/spirv/lib/subnormal_config.cl index 167fe1b1a1bcf..3ab5a6394b933 100644 --- a/libclc/spirv/lib/subnormal_config.cl +++ b/libclc/spirv/lib/subnormal_config.cl @@ -21,8 +21,7 @@ */ #include - -#include "config.h" +#include _CLC_DEF bool __clc_fp16_subnormals_supported() { return false; } diff --git a/libclc/spirv64/lib/subnormal_config.cl b/libclc/spirv64/lib/subnormal_config.cl index 167fe1b1a1bcf..3ab5a6394b933 100644 --- a/libclc/spirv64/lib/subnormal_config.cl +++ b/libclc/spirv64/lib/subnormal_config.cl @@ -21,8 +21,7 @@ */ #include - -#include "config.h" +#include _CLC_DEF bool __clc_fp16_subnormals_supported() { return false; }