summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-07-04 11:01:36 -0400
committerErik Schnetter <schnetter@gmail.com>2013-07-04 11:01:36 -0400
commit9d0164114f1b947f182bf17cd621c071fb7d0865 (patch)
tree7eba1853af2a77250e66ac62a937780b7b74ee10
parent5e0202c71b3249ecb7f8fcbc8387afe8cf127981 (diff)
downloadvecmathlib-9d0164114f1b947f182bf17cd621c071fb7d0865.zip
vecmathlib-9d0164114f1b947f182bf17cd621c071fb7d0865.tar.gz
Avoid warnings when building pocl library without double precision support
-rwxr-xr-xpocl/generate-files.py2
-rw-r--r--pocl/pocl-compat.h12
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
OpenPOWER on IntegriCloud