Add Power8 VSX SIMD support
[alexxy/gromacs.git] / src / gromacs / simd / simd.h
index 44b9d356f73166965c38b947a3e2c360033fd199..485025c18b1444e4c0912fe482e68ae5ef634b6f 100644 (file)
@@ -70,9 +70,7 @@
  * \ingroup module_simd
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
+#include "config.h"
 
 #include <stddef.h>
 
@@ -114,26 +112,36 @@ static gmx_inline double * gmx_simd4_align_d(double *p);
  * file with different SIMD definitions for different files.
  */
 #if defined __MIC__
-#    include "gromacs/simd/impl_intel_mic/impl_intel_mic.h"
+#    include "impl_intel_mic/impl_intel_mic.h"
 #elif defined GMX_SIMD_X86_AVX2_256
-#    include "gromacs/simd/impl_x86_avx2_256/impl_x86_avx2_256.h"
+#    include "impl_x86_avx2_256/impl_x86_avx2_256.h"
 #elif defined GMX_SIMD_X86_AVX_256
-#    include "gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h"
+#    include "impl_x86_avx_256/impl_x86_avx_256.h"
 #elif defined GMX_SIMD_X86_AVX_128_FMA
-#    include "gromacs/simd/impl_x86_avx_128_fma/impl_x86_avx_128_fma.h"
+#    include "impl_x86_avx_128_fma/impl_x86_avx_128_fma.h"
 #elif defined GMX_SIMD_X86_SSE4_1
-#    include "gromacs/simd/impl_x86_sse4_1/impl_x86_sse4_1.h"
+#    include "impl_x86_sse4_1/impl_x86_sse4_1.h"
 #elif defined GMX_SIMD_X86_SSE2
-#    include "gromacs/simd/impl_x86_sse2/impl_x86_sse2.h"
+#    include "impl_x86_sse2/impl_x86_sse2.h"
+#elif defined GMX_SIMD_ARM_NEON
+#    include "impl_arm_neon/impl_arm_neon.h"
+#elif defined GMX_SIMD_ARM_NEON_ASIMD
+#    include "impl_arm_neon_asimd/impl_arm_neon_asimd.h"
 #elif defined GMX_SIMD_IBM_QPX
-#    include "gromacs/simd/impl_ibm_qpx/impl_ibm_qpx.h"
+#    include "impl_ibm_qpx/impl_ibm_qpx.h"
+#elif defined GMX_SIMD_IBM_VMX
+#    include "impl_ibm_vmx/impl_ibm_vmx.h"
+#elif defined GMX_SIMD_IBM_VSX
+#    include "impl_ibm_vsx/impl_ibm_vsx.h"
+#elif defined GMX_SIMD_SPARC64_HPC_ACE
+#    include "impl_sparc64_hpc_ace/impl_sparc64_hpc_ace.h"
 #elif (defined GMX_SIMD_REFERENCE) || (defined DOXYGEN)
 /* Plain C SIMD reference implementation, also serves as documentation.
  * For now this code path will also be taken for Sparc64_HPC_ACE since we have
  * not yet added the verlet kernel extensions there. The group kernels do not
  * depend on this file, so they will still be accelerated with SIMD.
  */
-#    include "gromacs/simd/impl_reference/impl_reference.h"
+#    include "impl_reference/impl_reference.h"
 #else
 /* Turn off the GMX_SIMD flag if we do not even have reference support */
 #    undef GMX_SIMD