mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
No compile fix on clang++ 3.9
This commit is contained in:
parent
db749f103f
commit
3d5c9a1ee9
@ -450,13 +450,12 @@ namespace Optimization {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#if defined (AVX2) || defined (AVXFMA4)
|
#if defined (AVX2) || defined (AVXFMA4)
|
||||||
#define _mm256_alignr_epi32(ret,a,b,n) ret=(__m256) _mm256_alignr_epi8((__m256i)a,(__m256i)b,(n*4)%16)
|
#define _mm256_alignr_epi32_grid(ret,a,b,n) ret=(__m256) _mm256_alignr_epi8((__m256i)a,(__m256i)b,(n*4)%16)
|
||||||
#define _mm256_alignr_epi64(ret,a,b,n) ret=(__m256d) _mm256_alignr_epi8((__m256i)a,(__m256i)b,(n*8)%16)
|
#define _mm256_alignr_epi64_grid(ret,a,b,n) ret=(__m256d) _mm256_alignr_epi8((__m256i)a,(__m256i)b,(n*8)%16)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (AVX1)
|
#if defined (AVX1)
|
||||||
|
#define _mm256_alignr_epi32_grid(ret,a,b,n) { \
|
||||||
#define _mm256_alignr_epi32(ret,a,b,n) { \
|
|
||||||
__m128 aa, bb; \
|
__m128 aa, bb; \
|
||||||
\
|
\
|
||||||
aa = _mm256_extractf128_ps(a,1); \
|
aa = _mm256_extractf128_ps(a,1); \
|
||||||
@ -470,7 +469,7 @@ namespace Optimization {
|
|||||||
ret = _mm256_insertf128_ps(ret,aa,0); \
|
ret = _mm256_insertf128_ps(ret,aa,0); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define _mm256_alignr_epi64(ret,a,b,n) { \
|
#define _mm256_alignr_epi64_grid(ret,a,b,n) { \
|
||||||
__m128d aa, bb; \
|
__m128d aa, bb; \
|
||||||
\
|
\
|
||||||
aa = _mm256_extractf128_pd(a,1); \
|
aa = _mm256_extractf128_pd(a,1); \
|
||||||
@ -530,9 +529,9 @@ namespace Optimization {
|
|||||||
__m256 tmp = Permute::Permute0(in);
|
__m256 tmp = Permute::Permute0(in);
|
||||||
__m256 ret;
|
__m256 ret;
|
||||||
if ( n > 3 ) {
|
if ( n > 3 ) {
|
||||||
_mm256_alignr_epi32(ret,in,tmp,n);
|
_mm256_alignr_epi32_grid(ret,in,tmp,n);
|
||||||
} else {
|
} else {
|
||||||
_mm256_alignr_epi32(ret,tmp,in,n);
|
_mm256_alignr_epi32_grid(ret,tmp,in,n);
|
||||||
}
|
}
|
||||||
// std::cout << " align epi32 n=" <<n<<" in "<<tmp<<in<<" -> "<< ret <<std::endl;
|
// std::cout << " align epi32 n=" <<n<<" in "<<tmp<<in<<" -> "<< ret <<std::endl;
|
||||||
return ret;
|
return ret;
|
||||||
@ -543,9 +542,9 @@ namespace Optimization {
|
|||||||
__m256d tmp = Permute::Permute0(in);
|
__m256d tmp = Permute::Permute0(in);
|
||||||
__m256d ret;
|
__m256d ret;
|
||||||
if ( n > 1 ) {
|
if ( n > 1 ) {
|
||||||
_mm256_alignr_epi64(ret,in,tmp,n);
|
_mm256_alignr_epi64_grid(ret,in,tmp,n);
|
||||||
} else {
|
} else {
|
||||||
_mm256_alignr_epi64(ret,tmp,in,n);
|
_mm256_alignr_epi64_grid(ret,tmp,in,n);
|
||||||
}
|
}
|
||||||
// std::cout << " align epi64 n=" <<n<<" in "<<tmp<<in<<" -> "<< ret <<std::endl;
|
// std::cout << " align epi64 n=" <<n<<" in "<<tmp<<in<<" -> "<< ret <<std::endl;
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user