mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-24 12:45:56 +01:00
Merge pull request #145 from yongchull/fix-skylake-avx512
patch to compile with AVX512 for SkyLake Xeon processor using GCC7.2.…
This commit is contained in:
commit
ebb1bebf24
@ -249,6 +249,9 @@ case ${ax_cv_cxx_compiler_vendor} in
|
|||||||
AVX512)
|
AVX512)
|
||||||
AC_DEFINE([AVX512],[1],[AVX512 intrinsics])
|
AC_DEFINE([AVX512],[1],[AVX512 intrinsics])
|
||||||
SIMD_FLAGS='-mavx512f -mavx512pf -mavx512er -mavx512cd';;
|
SIMD_FLAGS='-mavx512f -mavx512pf -mavx512er -mavx512cd';;
|
||||||
|
SKL)
|
||||||
|
AC_DEFINE([AVX512],[1],[AVX512 intrinsics for SkyLake Xeon])
|
||||||
|
SIMD_FLAGS='-march=skylake-avx512';;
|
||||||
KNC)
|
KNC)
|
||||||
AC_DEFINE([IMCI],[1],[IMCI intrinsics for Knights Corner])
|
AC_DEFINE([IMCI],[1],[IMCI intrinsics for Knights Corner])
|
||||||
SIMD_FLAGS='';;
|
SIMD_FLAGS='';;
|
||||||
|
@ -469,7 +469,7 @@ void CayleyFermion5D<Impl>::MooeeInternalAsm(const FermionField &psi, FermionFie
|
|||||||
}
|
}
|
||||||
a0 = a0+incr;
|
a0 = a0+incr;
|
||||||
a1 = a1+incr;
|
a1 = a1+incr;
|
||||||
a2 = a2+sizeof(Simd::scalar_type);
|
a2 = a2+sizeof(typename Simd::scalar_type);
|
||||||
}}
|
}}
|
||||||
{
|
{
|
||||||
int lexa = s1+LLs*site;
|
int lexa = s1+LLs*site;
|
||||||
@ -701,7 +701,7 @@ void CayleyFermion5D<Impl>::MooeeInternalZAsm(const FermionField &psi, FermionFi
|
|||||||
}
|
}
|
||||||
a0 = a0+incr;
|
a0 = a0+incr;
|
||||||
a1 = a1+incr;
|
a1 = a1+incr;
|
||||||
a2 = a2+sizeof(Simd::scalar_type);
|
a2 = a2+sizeof(typename Simd::scalar_type);
|
||||||
}}
|
}}
|
||||||
{
|
{
|
||||||
int lexa = s1+LLs*site;
|
int lexa = s1+LLs*site;
|
||||||
|
@ -475,7 +475,7 @@ namespace QCD {
|
|||||||
}
|
}
|
||||||
a0 = a0 + incr;
|
a0 = a0 + incr;
|
||||||
a1 = a1 + incr;
|
a1 = a1 + incr;
|
||||||
a2 = a2 + sizeof(Simd::scalar_type);
|
a2 = a2 + sizeof(typename Simd::scalar_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -853,7 +853,7 @@ namespace QCD {
|
|||||||
|
|
||||||
a0 = a0 + incr;
|
a0 = a0 + incr;
|
||||||
a1 = a1 + incr;
|
a1 = a1 + incr;
|
||||||
a2 = a2 + sizeof(Simd::scalar_type);
|
a2 = a2 + sizeof(typename Simd::scalar_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -556,7 +556,7 @@ namespace Optimization {
|
|||||||
v3 = _mm256_add_epi32(v1, v2);
|
v3 = _mm256_add_epi32(v1, v2);
|
||||||
v1 = _mm256_hadd_epi32(v3, v3);
|
v1 = _mm256_hadd_epi32(v3, v3);
|
||||||
v2 = _mm256_hadd_epi32(v1, v1);
|
v2 = _mm256_hadd_epi32(v1, v1);
|
||||||
u1 = _mm256_castsi256_si128(v2) // upper half
|
u1 = _mm256_castsi256_si128(v2); // upper half
|
||||||
u2 = _mm256_extracti128_si256(v2, 1); // lower half
|
u2 = _mm256_extracti128_si256(v2, 1); // lower half
|
||||||
ret = _mm_add_epi32(u1, u2);
|
ret = _mm_add_epi32(u1, u2);
|
||||||
return _mm_cvtsi128_si32(ret);
|
return _mm_cvtsi128_si32(ret);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user