Skip to content

Commit 979c84b

Browse files
committed
Debug AVX2 sum function
1 parent 8837625 commit 979c84b

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

.github/workflows/build.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
runs-on: ubuntu-20.04
2525
strategy:
2626
matrix:
27-
arch: [x86]
27+
arch: [x86, x86_64]
2828
cpu_instr: [non-SIMD, SSE2, AVX2, NEON, auto-selected]
2929

3030
steps:

source/Platform/x86/AVX2.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,16 @@ class AVX2Vector {
106106
inline uint16_t sum() const {
107107
__m256i sum256 = _mm256_sad_epu8(vector, _mm256_setzero_si256());
108108
__m128i sum128 = _mm_add_epi64(_mm256_extractf128_si256(sum256, 1), _mm256_castsi256_si128(sum256));
109+
uint16_t res = _mm_extract_epi64(sum128, 0) + _mm_extract_epi64(sum128, 1);
110+
std::cout << "uint16_t res = " << res << "\n";
109111
return _mm_extract_epi64(sum128, 0) + _mm_extract_epi64(sum128, 1);
110112
}
111113
#else
112114
inline uint16_t sum() const {
113115
__m256i sum256 = _mm256_sad_epu8(vector, _mm256_setzero_si256());
114116
__m128i sum128 = _mm_add_epi64(_mm256_extractf128_si256(sum256, 1), _mm256_castsi256_si128(sum256));
117+
uint16_t res = _mm_extract_epi32(sum128, 0) + _mm_extract_epi32(sum128, 1);
118+
std::cout << "uint16_t res = " << res << "\n";
115119
return _mm_extract_epi32(sum128, 0) + _mm_extract_epi32(sum128, 2);
116120
}
117121
#endif

0 commit comments

Comments
 (0)