# include <x86intrin.h>
#endif
+#include "config.h"
+
#define gmx_mm_castsi128_pd _mm_castsi128_pd
#define gmx_mm_extract_epi32 _mm_extract_epi32
#ifndef _kernelutil_x86_avx_256_double_h_
#define _kernelutil_x86_avx_256_double_h_
+#include "config.h"
+
#define gmx_mm_castsi128_ps(a) _mm_castsi128_ps(a)
#define _GMX_MM_BLEND256D(b3, b2, b1, b0) (((b3) << 3) | ((b2) << 2) | ((b1) << 1) | ((b0)))
#define _kernelutil_x86_sse2_double_h_
#include <math.h>
-
-
#include <stdio.h>
+#include "config.h"
+
/* Normal sum of four ymm registers */
#define gmx_mm_sum4_pd(t0, t1, t2, t3) _mm_add_pd(_mm_add_pd(t0, t1), _mm_add_pd(t2, t3))
#include <math.h>
+#include "config.h"
+
#define gmx_mm_castsi128_ps _mm_castsi128_ps
#define gmx_mm_extract_epi32(x, imm) _mm_cvtsi128_si32(_mm_srli_si128((x), 4 * (imm)))
#define _kernelutil_x86_sse4_1_double_h_
#include <math.h>
-
#include <stdio.h>
+#include "config.h"
+
#define gmx_mm_extract_epi32(x, imm) _mm_extract_epi32((x), (imm))
#define gmx_mm_castsi128_pd(a) _mm_castsi128_pd(a)
#include <math.h>
+#include "config.h"
+
#undef gmx_restrict
#define gmx_restrict
#include "gromacs/legacyheaders/types/simple.h"
+#include "config.h"
+
/* This files contains all functions/macros for the SIMD kernels
* which have explicit dependencies on the j-cluster size and/or SIMD-width.
* The functionality which depends on the j-cluster size is:
#ifndef _nbnxn_kernel_simd_utils_x86_256s_h_
#define _nbnxn_kernel_simd_utils_x86_256s_h_
+#include "config.h"
+
/* This files contains all functions/macros for the SIMD kernels
* which have explicit dependencies on the j-cluster size and/or SIMD-width.
* The functionality which depends on the j-cluster size is:
#include <qpxmath.h>
#endif
+#include "config.h"
+
/* IBM QPX SIMD instruction wrappers
*
* Please see documentation in gromacs/simd/simd.h for the available
#include <math.h>
#include <immintrin.h>
+#include "config.h"
+
/* Intel Xeon Phi, or
* the-artist-formerly-known-as-Knight's-corner, or
* the-artist-formerly-formerly-known-as-MIC, or
#include <math.h>
#include <immintrin.h>
+#include "config.h"
+
/* x86 256-bit AVX2 SIMD instruction wrappers
*
* Please see documentation in gromacs/simd/simd.h for details
#include <immintrin.h>
#include <x86intrin.h>
+#include "config.h"
+
/* x86 128-bit AVX with FMA SIMD instruction wrappers
*
* Please see documentation in gromacs/simd/simd.h for details
#include <math.h>
#include <immintrin.h>
+#include "config.h"
+
/* It is cleaner to start the AVX implementation from scratch rather than
* first inheriting from SSE4.1, which in turn inherits from SSE2. However,
* the capabilities still form a superset.
#include <math.h>
#include <emmintrin.h>
+#include "config.h"
+
/* Set capabilities that can be inherited */
#define GMX_SIMD_X86_SSE2_OR_HIGHER
#include <math.h>
#include <smmintrin.h>
+#include "config.h"
/* x86 SSE4.1 SIMD instruction wrappers
*
#include "gromacs/math/utilities.h"
#include "gromacs/simd/simd.h"
+#include "config.h"
+
/*! \cond libapi */
/*! \addtogroup module_simd */
/*! \{ */
#include "gromacs/simd/simd.h"
+#include "config.h"
+
/*! \cond libapi */
/*! \addtogroup module_simd */
/*! \{ */