From: James Zern Date: Tue, 7 Aug 2018 18:06:08 +0000 (-0700) Subject: vpx_highbd_d153_predictor_4x4_sse2: reduce load size X-Git-Tag: v1.8.0~444^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64220915dc0af86f29a8e52c0c3ede6d83539a5e;p=libvpx vpx_highbd_d153_predictor_4x4_sse2: reduce load size this avoids reading 4 pixels into another block, which may be operated on by a different thread. quiets a tsan warning. Change-Id: Id27ad9d61819b0e5de0230647b4b510f7c265a71 --- diff --git a/vpx_dsp/x86/highbd_intrapred_intrin_sse2.c b/vpx_dsp/x86/highbd_intrapred_intrin_sse2.c index 2051381aa..43634aea3 100644 --- a/vpx_dsp/x86/highbd_intrapred_intrin_sse2.c +++ b/vpx_dsp/x86/highbd_intrapred_intrin_sse2.c @@ -460,7 +460,8 @@ void vpx_highbd_d153_predictor_4x4_sse2(uint16_t *dst, ptrdiff_t stride, const int J = left[1]; const int K = left[2]; const int L = left[3]; - const __m128i XXXXXABC = _mm_loadu_si128((const __m128i *)(above - 5)); + const __m128i XXXXXABC = _mm_castps_si128( + _mm_loadh_pi(_mm_setzero_ps(), (const __m64 *)(above - 1))); const __m128i LXXXXABC = _mm_insert_epi16(XXXXXABC, L, 0); const __m128i LKXXXABC = _mm_insert_epi16(LXXXXABC, K, 1); const __m128i LKJXXABC = _mm_insert_epi16(LKXXXABC, J, 2);