aboutsummaryrefslogtreecommitdiff
path: root/src/vectors-4-default.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/vectors-4-default.h')
-rw-r--r--src/vectors-4-default.h43
1 files changed, 22 insertions, 21 deletions
diff --git a/src/vectors-4-default.h b/src/vectors-4-default.h
index 28fae04..ec98ebf 100644
--- a/src/vectors-4-default.h
+++ b/src/vectors-4-default.h
@@ -1,3 +1,4 @@
+// -*-C++-*-
// Fallback vectorisation implementation: Do not vectorise
// We use macros here, so that we are not surprised by compilers which
@@ -23,10 +24,10 @@ vec_static_assert(sizeof(CCTK_REAL4_VEC) ==
sizeof(CCTK_REAL4) * CCTK_REAL4_VEC_SIZE);
// Integer and boolean types corresponding to this real type
-#define CCTK_INTEGER4 CCTK_REAL4
-#define CCTK_BOOLEAN4 CCTK_REAL4
-#define CCTK_INTEGER4_VEC CCTK_REAL4_VEC
-#define CCTK_BOOLEAN4_VEC CCTK_REAL4_VEC
+#define CCTK_INTEGER4 CCTK_INT4
+#define CCTK_BOOLEAN4 CCTK_INT4
+#define CCTK_INTEGER4_VEC CCTK_INT4
+#define CCTK_BOOLEAN4_VEC CCTK_INT4
@@ -38,6 +39,8 @@ vec_static_assert(sizeof(CCTK_REAL4_VEC) ==
// Access vectors elements
#define vec4_elt0(x) (x)
#define vec4_elt(x,d) (x)
+#define vec4_elti(x,d) (x)
+#define vec4_eltb(x,d) (x)
@@ -118,20 +121,18 @@ vec_static_assert(sizeof(CCTK_REAL4_VEC) ==
})
#define k4signbit(x) (std::signbit(x))
-#define k4l2r(x_) ({ CCTK_INT4 x__=(x_); CCTK_INT4 x=x__; *(CCTK_REAL4*)&x; })
-#define k4r2l(x_) ({ CCTK_REAL4 x__=(x_); CCTK_REAL4 x=x__; *(CCTK_INT4*)&x; })
-#define k4lfalse k4l2r(0)
-#define k4ltrue k4l2r(1)
-#define k4lnot(x) k4l2r(!k4r2l(x))
-#define k4land(x,y) k4l2r(k4r2l(x) && k4r2l(y))
-#define k4lor(x,y) k4l2r(k4r2l(x) || k4r2l(y))
-#define k4lxor(x,y) k4l2r(!k4r2l(x) != !k4r2l(y))
-
-#define k4ifthen(x,y,z) (k4r2l(x)?(y):(z))
-
-#define k4cmpeq(x,y) k4l2r((x)==(y))
-#define k4cmpne(x,y) k4l2r((x)!=(y))
-#define k4cmpgt(x,y) k4l2r((x)>(y))
-#define k4cmpge(x,y) k4l2r((x)>=(y))
-#define k4cmplt(x,y) k4l2r((x)<(y))
-#define k4cmple(x,y) k4l2r((x)<=(y))
+#define k4lfalse 0
+#define k4ltrue 1
+#define k4lnot(x) (!(x))
+#define k4land(x,y) ((x) && (y))
+#define k4lor(x,y) ((x) || (y))
+#define k4lxor(x,y) (!(x) != !(y))
+
+#define k4ifthen(x,y,z) ((x)?(y):(z))
+
+#define k4cmpeq(x,y) ((x)==(y))
+#define k4cmpne(x,y) ((x)!=(y))
+#define k4cmpgt(x,y) ((x)>(y))
+#define k4cmpge(x,y) ((x)>=(y))
+#define k4cmplt(x,y) ((x)<(y))
+#define k4cmple(x,y) ((x)<=(y))