aboutsummaryrefslogtreecommitdiff
path: root/src/vectors-8-default.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vectors-8-default.h')
-rw-r--r--src/vectors-8-default.h49
1 files changed, 22 insertions, 27 deletions
diff --git a/src/vectors-8-default.h b/src/vectors-8-default.h
index 5c07bfb..fac21ba 100644
--- a/src/vectors-8-default.h
+++ b/src/vectors-8-default.h
@@ -1,3 +1,4 @@
+// -*-C++-*-
// Fallback vectorisation implementation: Do not vectorise
@@ -19,10 +20,10 @@ vec_static_assert(sizeof(CCTK_REAL8_VEC) ==
sizeof(CCTK_REAL8) * CCTK_REAL8_VEC_SIZE);
// Integer and boolean types corresponding to this real type
-//#define CCTK_INTEGER8 CCTK_REAL8
-#define CCTK_BOOLEAN8 CCTK_REAL8
-//#define CCTK_INTEGER8_VEC CCTK_REAL8_VEC
-#define CCTK_BOOLEAN8_VEC CCTK_REAL8_VEC
+#define CCTK_INTEGER8 CCTK_INT8
+#define CCTK_BOOLEAN8 CCTK_INT8
+#define CCTK_INTEGER8_VEC CCTK_INT8
+#define CCTK_BOOLEAN8_VEC CCTK_INT8
@@ -34,6 +35,8 @@ vec_static_assert(sizeof(CCTK_REAL8_VEC) ==
// Access vectors elements
#define vec8_elt0(x) (x)
#define vec8_elt(x,d) (x)
+#define vec8_elti(x,d) (x)
+#define vec8_eltb(x,d) (x)
@@ -105,29 +108,21 @@ vec_static_assert(sizeof(CCTK_REAL8_VEC) ==
#define k8tanh(x) (tanh(x))
#define k8signbit(x) (std::signbit(x))
-static inline CCTK_REAL8_VEC k8l2r(CCTK_INT8 const x)
-{
- return *(CCTK_REAL8 const*)&x;
-}
-static inline CCTK_INT8 k8r2l(CCTK_REAL8_VEC const x)
-{
- return *(CCTK_INT8 const*)&x;
-}
-#define k8lfalse k8l2r(0)
-#define k8ltrue k8l2r(1)
-#define k8lnot(x) k8l2r(!k8r2l(x))
-#define k8land(x,y) k8l2r(k8r2l(x) && k8r2l(y))
-#define k8lor(x,y) k8l2r(k8r2l(x) || k8r2l(y))
-#define k8lxor(x,y) k8l2r(!k8r2l(x) != !k8r2l(y))
-
-#define k8ifthen(x,y,z) (k8r2l(x)?(y):(z))
-
-#define k8cmpeq(x,y) k8l2r((x)==(y))
-#define k8cmpne(x,y) k8l2r((x)!=(y))
-#define k8cmpgt(x,y) k8l2r((x)>(y))
-#define k8cmpge(x,y) k8l2r((x)>=(y))
-#define k8cmplt(x,y) k8l2r((x)<(y))
-#define k8cmple(x,y) k8l2r((x)<=(y))
+#define k8lfalse 0
+#define k8ltrue 1
+#define k8lnot(x) (!(x))
+#define k8land(x,y) ((x) && (y))
+#define k8lor(x,y) ((x) || (y))
+#define k8lxor(x,y) (!(x) != !(y))
+
+#define k8ifthen(x,y,z) ((x)?(y):(z))
+
+#define k8cmpeq(x,y) ((x)==(y))
+#define k8cmpne(x,y) ((x)!=(y))
+#define k8cmpgt(x,y) ((x)>(y))
+#define k8cmpge(x,y) ((x)>=(y))
+#define k8cmplt(x,y) ((x)<(y))
+#define k8cmple(x,y) ((x)<=(y))
static inline CCTK_REAL8_VEC k8sgn(CCTK_REAL8_VEC const x)
{