Added parentheses for casts in SIMD macros
authorBerk Hess <hess@kth.se>
Thu, 29 Jan 2015 10:21:18 +0000 (11:21 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Mon, 2 Mar 2015 14:12:59 +0000 (15:12 +0100)
Change-Id: I7b7a2346ad59b19d25be502cfb1c6c82c81a409f

src/gromacs/simd/impl_ibm_vmx/impl_ibm_vmx.h
src/gromacs/simd/impl_ibm_vsx/impl_ibm_vsx.h
src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h
src/gromacs/simd/impl_x86_sse2/impl_x86_sse2.h

index 810a13433ba3ecf787f4b3fb67e3864ee60b1789..66b2986925a9a607111339765f235549de6e1196 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
  *      SINGLE PRECISION SIMD IMPLEMENTATION        *
  ****************************************************/
 #define gmx_simd_float_t           __vector float
-#define gmx_simd_load_f(m)         vec_ld(0, (const __vector float *)m)
+#define gmx_simd_load_f(m)         vec_ld(0, (const __vector float *)(m))
 #define gmx_simd_load1_f(m)        gmx_simd_load1_f_ibm_vmx(m)
 #define gmx_simd_set1_f(x)         gmx_simd_set1_f_ibm_vmx(x)
-#define gmx_simd_store_f(m, x)     vec_st(x, 0, (__vector float *)m)
+#define gmx_simd_store_f(m, x)     vec_st(x, 0, (__vector float *)(m))
 #undef  gmx_simd_loadu_f
 #undef  gmx_simd_storeu_f
 #define gmx_simd_setzero_f()       ((__vector float)vec_splat_u32(0))
 #define gmx_simd_set_exponent_f(a) gmx_simd_set_exponent_f_ibm_vmx(a)
 /* integer datatype corresponding to float: gmx_simd_fint32_t */
 #define gmx_simd_fint32_t          __vector int
-#define gmx_simd_load_fi(m)        vec_ld(0, (const __vector int *)m)
-#define gmx_simd_set1_fi(i)        gmx_simd_set1_fi_ibm_vmx((int)i)
-#define gmx_simd_store_fi(m, x)    vec_st(x, 0, (__vector int *)m)
+#define gmx_simd_load_fi(m)        vec_ld(0, (const __vector int *)(m))
+#define gmx_simd_set1_fi(i)        gmx_simd_set1_fi_ibm_vmx((int)(i))
+#define gmx_simd_store_fi(m, x)    vec_st(x, 0, (__vector int *)(m))
 #undef  gmx_simd_loadu_fi
 #undef  gmx_simd_storeu_fi
 #define gmx_simd_setzero_fi()      vec_splat_s32(0)
index 4430e587470bada78019fa155abf586664e85c4f..ca8fb1ba5c3065115f5a19291ee781c890e960ed 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
  ****************************************************/
 #define gmx_simd_float_t           __vector float
 #ifdef __GNUC__
-#    define gmx_simd_load_f(m)     vec_vsx_ld(0, (const float *)m)
-#    define gmx_simd_store_f(m, x) vec_vsx_st(x, 0, (float *)m)
+#    define gmx_simd_load_f(m)     vec_vsx_ld(0, (const float *)(m))
+#    define gmx_simd_store_f(m, x) vec_vsx_st(x, 0, (float *)(m))
 #else
 /* IBM xlC */
 #    define gmx_simd_load_f(m)     vec_xlw4(0, (float *)(m))
 /* integer datatype corresponding to float: gmx_simd_fint32_t */
 #define gmx_simd_fint32_t          __vector signed int
 #ifdef __GNUC__
-#    define gmx_simd_load_fi(m)     vec_vsx_ld(0, (const int *)m)
-#    define gmx_simd_store_fi(m, x) vec_vsx_st(x, 0, (int *)m)
+#    define gmx_simd_load_fi(m)     vec_vsx_ld(0, (const int *)(m))
+#    define gmx_simd_store_fi(m, x) vec_vsx_st(x, 0, (int *)(m))
 #else
 /* IBM xlC */
-#    define gmx_simd_load_fi(m)     vec_xlw4(0, (int *)m)
-#    define gmx_simd_store_fi(m, x) vec_xstw4(x, 0, (int *)m)
+#    define gmx_simd_load_fi(m)     vec_xlw4(0, (int *)(m))
+#    define gmx_simd_store_fi(m, x) vec_xstw4(x, 0, (int *)(m))
 #endif
 #define gmx_simd_set1_fi(i)        vec_splats((int)(i))
 #define gmx_simd_loadu_fi          gmx_simd_load_fi
 #define gmx_simd_cvt_i2f(a)        vec_ctf(a, 0)
 #define gmx_simd_extract_fi(a, i)   gmx_simd_extract_fi_ibm_vsx(a, i)
 /* Integer logical ops on gmx_simd_fint32_t */
-#define gmx_simd_slli_fi(a, i)      vec_sl(a, vec_splats((unsigned int)i))
-#define gmx_simd_srli_fi(a, i)      vec_sr(a, vec_splats((unsigned int)i))
+#define gmx_simd_slli_fi(a, i)      vec_sl(a, vec_splats((unsigned int)(i)))
+#define gmx_simd_srli_fi(a, i)      vec_sr(a, vec_splats((unsigned int)(i)))
 #define gmx_simd_and_fi(a, b)       vec_and(a, b)
 #define gmx_simd_andnot_fi(a, b)    vec_andc(b, a)
 #define gmx_simd_or_fi(a, b)        vec_or(a, b)
 #define gmx_simd_cvt_d2i(a)         gmx_simd_cvtt_d2i(gmx_simd_round_d(a))
 #define gmx_simd_extract_di(a, i)   gmx_simd_extract_fi_ibm_vsx(a, (i)*2)
 /* Integer logical ops on gmx_simd_dint32_t */
-#define gmx_simd_slli_di(a, i)      vec_sl(a, vec_splats((unsigned int)i))
-#define gmx_simd_srli_di(a, i)      vec_sr(a, vec_splats((unsigned int)i))
+#define gmx_simd_slli_di(a, i)      vec_sl(a, vec_splats((unsigned int)(i)))
+#define gmx_simd_srli_di(a, i)      vec_sr(a, vec_splats((unsigned int)(i)))
 #define gmx_simd_and_di(a, b)       vec_and(a, b)
 #define gmx_simd_andnot_di(a, b)    vec_andc(b, a)
 #define gmx_simd_or_di(a, b)        vec_or(a, b)
index 493fe2a34f695667dfb51a76630573363b56fa6f..8e2671a321edb5043852cd742a7dd4fa84369d7b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 #define gmx_simd_set_exponent_f    gmx_simd_set_exponent_f_avx_256
 /* integer datatype corresponding to float: gmx_simd_fint32_t */
 #define gmx_simd_fint32_t          __m256i
-#define gmx_simd_load_fi(m)        _mm256_load_si256((__m256i const*)m)
+#define gmx_simd_load_fi(m)        _mm256_load_si256((__m256i const*)(m))
 #define gmx_simd_set1_fi           _mm256_set1_epi32
-#define gmx_simd_store_fi(m, x)    _mm256_store_si256((__m256i *)m, x)
-#define gmx_simd_loadu_fi(m)       _mm256_loadu_si256((__m256i const*)m)
-#define gmx_simd_storeu_fi(m, x)   _mm256_storeu_si256((__m256i *)m, x)
+#define gmx_simd_store_fi(m, x)    _mm256_store_si256((__m256i *)(m), x)
+#define gmx_simd_loadu_fi(m)       _mm256_loadu_si256((__m256i const*)(m))
+#define gmx_simd_storeu_fi(m, x)   _mm256_storeu_si256((__m256i *)(m), x)
 #define gmx_simd_setzero_fi        _mm256_setzero_si256
 #define gmx_simd_cvt_f2i           _mm256_cvtps_epi32
 #define gmx_simd_cvtt_f2i          _mm256_cvttps_epi32
 #define gmx_simd_set_exponent_d    gmx_simd_set_exponent_d_avx_256
 /* integer datatype corresponding to double: gmx_simd_dint32_t */
 #define gmx_simd_dint32_t          __m128i
-#define gmx_simd_load_di(m)        _mm_load_si128((const __m128i *)m)
+#define gmx_simd_load_di(m)        _mm_load_si128((const __m128i *)(m))
 #define gmx_simd_set1_di           _mm_set1_epi32
-#define gmx_simd_store_di(m, x)     _mm_store_si128((__m128i *)m, x)
-#define gmx_simd_loadu_di(m)       _mm_loadu_si128((const __m128i *)m)
-#define gmx_simd_storeu_di(m, x)    _mm_storeu_si128((__m128i *)m, x)
+#define gmx_simd_store_di(m, x)     _mm_store_si128((__m128i *)(m), x)
+#define gmx_simd_loadu_di(m)       _mm_loadu_si128((const __m128i *)(m))
+#define gmx_simd_storeu_di(m, x)    _mm_storeu_si128((__m128i *)(m), x)
 #define gmx_simd_setzero_di        _mm_setzero_si128
 #define gmx_simd_cvt_d2i           _mm256_cvtpd_epi32
 #define gmx_simd_cvtt_d2i          _mm256_cvttpd_epi32
index 2d3f908f56e626e6479bd6d16f7f44a1cf1992c3..90aac616a13f21305e38bae5bc79eb58b53c9ba6 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2014, by the GROMACS development team, led by
+ * Copyright (c) 2014,2015, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 #define gmx_simd_set_exponent_f   gmx_simd_set_exponent_f_sse2
 /* integer datatype corresponding to float: gmx_simd_fint32_t */
 #define gmx_simd_fint32_t         __m128i
-#define gmx_simd_load_fi(m)       _mm_load_si128((const __m128i *)m)
+#define gmx_simd_load_fi(m)       _mm_load_si128((const __m128i *)(m))
 #define gmx_simd_set1_fi          _mm_set1_epi32
-#define gmx_simd_store_fi(m, x)    _mm_store_si128((__m128i *)m, x)
-#define gmx_simd_loadu_fi(m)      _mm_loadu_si128((const __m128i *)m)
-#define gmx_simd_storeu_fi(m, x)   _mm_storeu_si128((__m128i *)m, x)
+#define gmx_simd_store_fi(m, x)    _mm_store_si128((__m128i *)(m), x)
+#define gmx_simd_loadu_fi(m)      _mm_loadu_si128((const __m128i *)(m))
+#define gmx_simd_storeu_fi(m, x)   _mm_storeu_si128((__m128i *)(m), x)
 #define gmx_simd_setzero_fi       _mm_setzero_si128
 #define gmx_simd_cvt_f2i          _mm_cvtps_epi32
 #define gmx_simd_cvtt_f2i         _mm_cvttps_epi32
 #define gmx_simd_set_exponent_d    gmx_simd_set_exponent_d_sse2
 /* integer datatype corresponding to double: gmx_simd_dint32_t */
 #define gmx_simd_dint32_t          __m128i
-#define gmx_simd_load_di(m)        _mm_loadl_epi64((const __m128i *)m)
+#define gmx_simd_load_di(m)        _mm_loadl_epi64((const __m128i *)(m))
 #define gmx_simd_set1_di           _mm_set1_epi32
-#define gmx_simd_store_di(m, x)     _mm_storel_epi64((__m128i *)m, x)
-#define gmx_simd_loadu_di(m)       _mm_loadl_epi64((const __m128i *)m)
-#define gmx_simd_storeu_di(m, x)    _mm_storel_epi64((__m128i *)m, x)
+#define gmx_simd_store_di(m, x)     _mm_storel_epi64((__m128i *)(m), x)
+#define gmx_simd_loadu_di(m)       _mm_loadl_epi64((const __m128i *)(m))
+#define gmx_simd_storeu_di(m, x)    _mm_storel_epi64((__m128i *)(m), x)
 #define gmx_simd_setzero_di        _mm_setzero_si128
 #define gmx_simd_cvt_d2i           _mm_cvtpd_epi32
 #define gmx_simd_cvtt_d2i          _mm_cvttpd_epi32