aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/Core
diff options
context:
space:
mode:
authorGravatar Rasmus Larsen <rmlarsen@google.com>2016-04-07 20:23:03 -0700
committerGravatar Rasmus Larsen <rmlarsen@google.com>2016-04-07 20:23:03 -0700
commitc34e55c62ba2749a50165ea77edd6da2b37e74ac (patch)
treed09c06218dbc43956a704bc9ef9abdfe3dc9d337 /Eigen/Core
parent283c51cd5edd5d706635b0bd05593f84cb8d618a (diff)
parent7d5b17087f6a54fab94decaaa9046ff21fa4683a (diff)
Merged eigen/eigen into default
Diffstat (limited to 'Eigen/Core')
-rw-r--r--Eigen/Core15
1 files changed, 15 insertions, 0 deletions
diff --git a/Eigen/Core b/Eigen/Core
index d8c5619d9..8c707618c 100644
--- a/Eigen/Core
+++ b/Eigen/Core
@@ -197,9 +197,18 @@
#define EIGEN_VECTORIZE
#define EIGEN_VECTORIZE_NEON
#include <arm_neon.h>
+ #elif (defined __s390x__ && defined __VEC__)
+ #define EIGEN_VECTORIZE
+ #define EIGEN_VECTORIZE_ZVECTOR
+ #include <vecintrin.h>
#endif
#endif
+#if defined(__F16C__)
+ // We can use the optimized fp16 to float and float to fp16 conversion routines
+ #define EIGEN_HAS_FP16_C
+#endif
+
#if defined __CUDACC__
#define EIGEN_VECTORIZE_CUDA
#include <vector_types.h>
@@ -270,6 +279,8 @@ inline static const char *SimdInstructionSetsInUse(void) {
return "VSX";
#elif defined(EIGEN_VECTORIZE_NEON)
return "ARM NEON";
+#elif defined(EIGEN_VECTORIZE_ZVECTOR)
+ return "S390X ZVECTOR";
#else
return "None";
#endif
@@ -332,6 +343,10 @@ using std::ptrdiff_t;
#include "src/Core/arch/NEON/PacketMath.h"
#include "src/Core/arch/NEON/MathFunctions.h"
#include "src/Core/arch/NEON/Complex.h"
+#elif defined EIGEN_VECTORIZE_ZVECTOR
+ #include "src/Core/arch/ZVector/PacketMath.h"
+ #include "src/Core/arch/ZVector/MathFunctions.h"
+ #include "src/Core/arch/ZVector/Complex.h"
#endif
#include "src/Core/arch/CUDA/Half.h"