diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-07-04 11:01:36 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-07-04 11:01:36 -0400 |
commit | 9d0164114f1b947f182bf17cd621c071fb7d0865 (patch) | |
tree | 7eba1853af2a77250e66ac62a937780b7b74ee10 | |
parent | 5e0202c71b3249ecb7f8fcbc8387afe8cf127981 (diff) | |
download | vecmathlib-9d0164114f1b947f182bf17cd621c071fb7d0865.zip vecmathlib-9d0164114f1b947f182bf17cd621c071fb7d0865.tar.gz |
Avoid warnings when building pocl library without double precision support
-rwxr-xr-x | pocl/generate-files.py | 2 | ||||
-rw-r--r-- | pocl/pocl-compat.h | 12 |
2 files changed, 12 insertions, 2 deletions
diff --git a/pocl/generate-files.py b/pocl/generate-files.py index c14ffc2..a4f1ff3 100755 --- a/pocl/generate-files.py +++ b/pocl/generate-files.py @@ -87,7 +87,7 @@ directfuncs = [ ("cospi" , [VF ], VF, "cos((scalar_t)M_PI*x0)"), ("fmax" , [VF, SF ], VF, "fmax(x0,(vector_t)x1)"), ("fmin" , [VF, SF ], VF, "fmin(x0,(vector_t)x1)"), - ("fract" , [VF, PVF ], VF, "*x1=floor(x0), fmin(x0-floor(x0), sizeof(scalar_t)==sizeof(float) ? (scalar_t)0x1.fffffep-1f : (scalar_t)0x1.fffffffffffffp-1)"), + ("fract" , [VF, PVF ], VF, "*x1=floor(x0), fmin(x0-floor(x0), sizeof(scalar_t)==sizeof(float) ? (scalar_t)M_FRACT_MIN_F : (scalar_t)M_FRACT_MIN)"), ("frexp" , [VF, PVK ], VF, "*x1=ilogb(x0), ldexp(x0,-ilogb(x0))"), ("ilogb" , [VF ], VK, "convert_kvector_t(({ __attribute__((__overloadable__)) jvector_t ilogb_(vector_t); jvector_t jmin=sizeof(jvector_t)==sizeof(int)?INT_MIN:LONG_MIN; jvector_t r=ilogb_(x0); select(r, (jvector_t)FP_ILOGB0, r==jmin); }))"), ("ldexp" , [VF, VK ], VF, "({ __attribute__((__overloadable__)) vector_t ldexp_(vector_t,jvector_t); ldexp_(x0,convert_ivector_t(x1)); })"), diff --git a/pocl/pocl-compat.h b/pocl/pocl-compat.h index d6889c4..04e01c4 100644 --- a/pocl/pocl-compat.h +++ b/pocl/pocl-compat.h @@ -18,10 +18,20 @@ #define pocl_static_assert(b) typedef char _static_assert[(b)?+1:-1] -// Define dummy values +// Needed for fract() +#define M_FRACT_MIN 0x1.fffffffffffffp-1 +#define M_FRACT_MIN_F 0x1.fffffep-1f + +// If double precision is not supported, then define single-precision +// (dummy) values to avoid compiler warnings for double precision +// values #ifndef cl_khr_fp64 # undef M_PI # define M_PI M_PI_F +// # define M_PI_2 M_PI_2_F +// # define LONG_MIN INT_MIN +# undef M_FRACT_MIN +# define M_FRACT_MIN M_FRACT_MIN_F #endif // Define vector types |