Skip to content
Snippets Groups Projects
Commit 5302bc06 authored by Frank Bossen's avatar Frank Bossen
Browse files

Silence valgrind warnings

Reduce the amount of data being loaded to the strict minimum
parent dd8c4ae7
No related branches found
No related tags found
No related merge requests found
...@@ -277,12 +277,20 @@ void calcBIOSums_SSE(const Pel* srcY0Tmp, const Pel* srcY1Tmp, Pel* gradX0, Pel* ...@@ -277,12 +277,20 @@ void calcBIOSums_SSE(const Pel* srcY0Tmp, const Pel* srcY1Tmp, Pel* gradX0, Pel*
for (int y = 0; y < 6; y++) for (int y = 0; y < 6; y++)
{ {
__m128i shiftSrcY0Tmp = _mm_srai_epi16(_mm_loadu_si128((__m128i*)(srcY0Tmp)), shift4); // Note: loading 8 values also works, but valgrind doesn't like it
__m128i shiftSrcY1Tmp = _mm_srai_epi16(_mm_loadu_si128((__m128i*)(srcY1Tmp)), shift4); auto load6values = [](const Pel *ptr) {
__m128i loadGradX0 = _mm_loadu_si128((__m128i*)(gradX0)); __m128i a = _mm_loadl_epi64((const __m128i *) ptr);
__m128i loadGradX1 = _mm_loadu_si128((__m128i*)(gradX1)); __m128i b = _mm_cvtsi32_si128(*(uint32_t *) (ptr + 4));
__m128i loadGradY0 = _mm_loadu_si128((__m128i*)(gradY0)); return _mm_unpacklo_epi64(a, b);
__m128i loadGradY1 = _mm_loadu_si128((__m128i*)(gradY1)); };
__m128i shiftSrcY0Tmp = _mm_srai_epi16(load6values(srcY0Tmp), shift4);
__m128i shiftSrcY1Tmp = _mm_srai_epi16(load6values(srcY1Tmp), shift4);
__m128i loadGradX0 = load6values(gradX0);
__m128i loadGradX1 = load6values(gradX1);
__m128i loadGradY0 = load6values(gradY0);
__m128i loadGradY1 = load6values(gradY1);
__m128i subTemp1 = _mm_sub_epi16(shiftSrcY1Tmp, shiftSrcY0Tmp); __m128i subTemp1 = _mm_sub_epi16(shiftSrcY1Tmp, shiftSrcY0Tmp);
__m128i packTempX = _mm_srai_epi16(_mm_add_epi16(loadGradX0, loadGradX1), shift5); __m128i packTempX = _mm_srai_epi16(_mm_add_epi16(loadGradX0, loadGradX1), shift5);
__m128i packTempY = _mm_srai_epi16(_mm_add_epi16(loadGradY0, loadGradY1), shift5); __m128i packTempY = _mm_srai_epi16(_mm_add_epi16(loadGradY0, loadGradY1), shift5);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment