aboutsummaryrefslogtreecommitdiff
path: root/src/vectors.h
diff options
context:
space:
mode:
authoreschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2013-07-19 17:48:51 +0000
committereschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2013-07-19 17:48:51 +0000
commitdc69911dd15fa1fa24c51ca222fc7883d3fc5cff (patch)
tree0ee4c550f788de3787c2e922f1268189334b6983 /src/vectors.h
parent825b89e0e6bf3e4e248188b36f5b29029737d44a (diff)
Do not use type punning any more
Do not cast between different pointer types. This is illegal in C/C++, and modern compilers (such as gcc 4.8) then generate wrong code. Instead, use memcpy to re-interpret the bit patterns of values with a different type. git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/Vectors/trunk@85 105869f7-3296-0410-a4ea-f4349344b45a
Diffstat (limited to 'src/vectors.h')
-rw-r--r--src/vectors.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/vectors.h b/src/vectors.h
index 9222823..9a47422 100644
--- a/src/vectors.h
+++ b/src/vectors.h
@@ -13,7 +13,7 @@
#if VECTORISE
-# if defined __AVX__ // Intel AVX
+# if defined __AVX__ && !defined DISABLE_AVX // Intel AVX
# include "vectors-4-AVX.h"
# elif defined __SSE__ // Intel SSE
# include "vectors-4-SSE.h"
@@ -23,13 +23,13 @@
# if defined __MIC__ // Intel MIC
# include "vectors-8-MIC.h"
-# elif defined __AVX__ && !defined DISABLE_AVX // Intel AVX
+# elif defined __AVX__ && !defined DISABLE_AVX // Intel AVX
# include "vectors-8-AVX.h"
# elif defined __SSE2__ // Intel SSE2
# include "vectors-8-SSE2.h"
-# elif defined __bgq__ && defined __VECTOR4DOUBLE__ // Blue Gene/Q QPX
+# elif defined __bgq__ && defined __VECTOR4DOUBLE__ // Blue Gene/Q QPX
# include "vectors-8-QPX.h"
-# elif defined __ALTIVEC__ && defined _ARCH_PWR7 // Power VSX
+# elif defined __ALTIVEC__ && defined _ARCH_PWR7 // Power VSX
# include "vectors-8-VSX.h"
# elif defined _ARCH_450D // Blue Gene/P Double Hummer
# include "vectors-8-DoubleHummer.h"
@@ -63,8 +63,9 @@
# define vec_set1 vec4_set1
# define vec_set vec4_set
-# define vec_elt0 vec4_elt0
# define vec_elt vec4_elt
+# define vec_elti vec4_elti
+# define vec_eltb vec4_eltb
# define vec_load vec4_load
# define vec_loadu vec4_loadu
@@ -135,16 +136,17 @@
# define CCTK_REAL_VEC CCTK_REAL8_VEC
# define CCTK_REAL_VEC_SIZE CCTK_REAL8_VEC_SIZE
-//# define CCTK_INTEGER CCTK_INTEGER8
+# define CCTK_INTEGER CCTK_INTEGER8
# define CCTK_BOOLEAN CCTK_BOOLEAN8
-//# define CCTK_INTEGER_VEC CCTK_INTEGER8_VEC
+# define CCTK_INTEGER_VEC CCTK_INTEGER8_VEC
# define CCTK_BOOLEAN_VEC CCTK_BOOLEAN8_VEC
# define vec_set1 vec8_set1
# define vec_set vec8_set
-# define vec_elt0 vec8_elt0
# define vec_elt vec8_elt
+# define vec_elti vec8_elti
+# define vec_eltb vec8_eltb
# define vec_load vec8_load
# define vec_loadu vec8_loadu