Commit 3b54ace 1 parent c9bc549 commit 3b54ace Copy full SHA for 3b54ace
File tree 1 file changed +8
-0
lines changed
1 file changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -102,11 +102,19 @@ class AVX2Vector {
102
102
return AVX2Vector (_mm256_andnot_si256 (rhs.vector , vector));
103
103
}
104
104
105
+ #ifdef CPU_FEATURES_ARCH_X86_64
105
106
inline uint16_t sum () const {
106
107
__m256i sum256 = _mm256_sad_epu8 (vector, _mm256_setzero_si256 ());
107
108
__m128i sum128 = _mm_add_epi64 (_mm256_extractf128_si256 (sum256, 1 ), _mm256_castsi256_si128 (sum256));
108
109
return _mm_extract_epi64 (sum128, 0 ) + _mm_extract_epi64 (sum128, 1 );
109
110
}
111
+ #else
112
+ inline uint16_t sum () const {
113
+ __m256i sum256 = _mm256_sad_epu8 (vector, _mm256_setzero_si256 ());
114
+ __m128i sum128 = _mm_add_epi64 (_mm256_extractf128_si256 (sum256, 1 ), _mm256_castsi256_si128 (sum256));
115
+ return _mm_extract_epi32 (sum128, 0 ) + _mm_extract_epi32 (sum128, 1 );
116
+ }
117
+ #endif
110
118
111
119
inline void clear () { vector = _mm256_setzero_si256 (); }
112
120
};
You can’t perform that action at this time.
0 commit comments