aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2013-02-26 16:38:01 +0000
committereschnett <eschnett@105869f7-3296-0410-a4ea-f4349344b45a>2013-02-26 16:38:01 +0000
commita053c8d6b83a0e311220a82800ba696ecc23c701 (patch)
tree56b02c999338a9c4841d0264fb41cf4354b91fbf
parent8a908ac6b1ee28850827530d0d007eb62dfce348 (diff)
Use inline function instead of macro for IfThen for Power7
git-svn-id: https://svn.cct.lsu.edu/repos/numrel/LSUThorns/Vectors/trunk@80 105869f7-3296-0410-a4ea-f4349344b45a
-rw-r--r--src/vectors.h26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/vectors.h b/src/vectors.h
index 8ed8528..9222823 100644
--- a/src/vectors.h
+++ b/src/vectors.h
@@ -13,25 +13,25 @@
#if VECTORISE
-# if defined(__AVX__) // Intel AVX
+# if defined __AVX__ // Intel AVX
# include "vectors-4-AVX.h"
-# elif defined(__SSE__) // Intel SSE
+# elif defined __SSE__ // Intel SSE
# include "vectors-4-SSE.h"
-# elif defined(__ALTIVEC__) // Power Altivec
+# elif defined __ALTIVEC__ // Power Altivec
# include "vectors-4-Altivec.h"
# endif
-# if defined(__MIC__) // Intel MIC
+# 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
+# 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
+# elif defined _ARCH_450D // Blue Gene/P Double Hummer
# include "vectors-8-DoubleHummer.h"
# endif
@@ -49,7 +49,7 @@
// Define macros for CCTK_REAL
-#if defined(CCTK_REAL_PRECISION_4)
+#if defined CCTK_REAL_PRECISION_4
# define vec_architecture vec4_architecture
@@ -129,7 +129,7 @@
# define kcmplt k4cmplt
# define kcmple k4cmple
-#elif defined(CCTK_REAL_PRECISION_8)
+#elif defined CCTK_REAL_PRECISION_8
# define vec_architecture vec8_architecture
@@ -523,7 +523,9 @@ public:
# define ToReal(x) (vec_set1(CCTK_REAL(x)))
# undef IfThen
-# ifdef __PGI
+# if (defined __PGI || \
+ defined _ARCH_450D || \
+ (defined __ALTIVEC__ && defined _ARCH_PWR7))
static inline CCTK_ATTRIBUTE_ALWAYS_INLINE
CCTK_REAL_VEC vec_IfThen(CCTK_BOOLEAN x, CCTK_REAL_VEC y, CCTK_REAL_VEC z)
{