diff --git a/source/Lib/CommonLib/x86/BufferX86.h b/source/Lib/CommonLib/x86/BufferX86.h
index b91ef72f2fada8d561d6b9582587ba08e4048d3c..3275097e88c78882ffcd4fda69fce38dfb80da3f 100644
--- a/source/Lib/CommonLib/x86/BufferX86.h
+++ b/source/Lib/CommonLib/x86/BufferX86.h
@@ -249,7 +249,8 @@ void addBIOAvg4_SSE(const Pel* src0, int src0Stride, const Pel* src1, int src1St
       a   = _mm_unpacklo_epi16(_mm_loadl_epi64((const __m128i *) (src0 + x)),
                              _mm_loadl_epi64((const __m128i *) (src1 + x)));
 #if JVET_P0091_REMOVE_BDOF_OFFSET_SHIFT
-      sum = _mm_add_epi32(sum, _mm_set1_epi32(2 * offset));
+      sum = _mm_add_epi32(sum, _mm_madd_epi16(a, _mm_set1_epi16(1)));
+      sum = _mm_add_epi32(sum, _mm_set1_epi32(offset));
       sum = _mm_sra_epi32(sum, _mm_cvtsi32_si128(shift));
 #else
       sum = _mm_add_epi32(sum, _mm_madd_epi16(a, _mm_set1_epi16(2)));