From e0f7d9cbcc780cfe05e6176d412a6b094c5c2841 Mon Sep 17 00:00:00 2001 From: Roland Schulz Date: Sun, 6 Jul 2014 17:47:19 -0400 Subject: [PATCH] Simplify AVX integer load/store Also has the potential to improve performance on some architectures (if there is a domain crossing penalty - not sure whether any AVX capable generation has a penalty). Change-Id: Icc7b136571fc9ad1dbabeabe446c93e8816ec678 --- src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h index f6d5402aaa..e688d14c94 100644 --- a/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h +++ b/src/gromacs/simd/impl_x86_avx_256/impl_x86_avx_256.h @@ -119,11 +119,11 @@ #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_castps_si256(_mm256_load_ps((const float *)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_ps((float *)m, _mm256_castsi256_ps(x)) -#define gmx_simd_loadu_fi(m) _mm256_castps_si256(_mm256_loadu_ps((const float *)m)) -#define gmx_simd_storeu_fi(m, x) _mm256_storeu_ps((float *)m, _mm256_castsi256_ps(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 -- 2.22.0