1
0
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:
paboyle 2016-10-10 23:50:13 +01:00
parent db749f103f
commit 3d5c9a1ee9

View File

@ -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;