1 /* 2 * Copyright(c) 2019 Intel Corporation 3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 */ 5 6 #define MACRO_VERTICAL_LUMA_8(A, B, C)\ 7 _mm_storel_epi64((__m128i*)prediction_ptr, _mm_or_si128(_mm_and_si128(A, B), C)); \ 8 A = _mm_srli_si128(A, 1); \ 9 _mm_storel_epi64((__m128i*)(prediction_ptr + pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 10 A = _mm_srli_si128(A, 1); \ 11 _mm_storel_epi64((__m128i*)(prediction_ptr + 2*pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 12 A = _mm_srli_si128(A, 1); \ 13 _mm_storel_epi64((__m128i*)(prediction_ptr + 3*pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 14 A = _mm_srli_si128(A, 1); 15 16 #define MACRO_VERTICAL_LUMA_16(A, B, C)\ 17 _mm_storeu_si128((__m128i*)prediction_ptr, _mm_or_si128(_mm_and_si128(A, B), C)); \ 18 A = _mm_srli_si128(A, 1); \ 19 _mm_storeu_si128((__m128i*)(prediction_ptr + pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 20 A = _mm_srli_si128(A, 1); \ 21 _mm_storeu_si128((__m128i*)(prediction_ptr + 2*pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 22 A = _mm_srli_si128(A, 1); \ 23 _mm_storeu_si128((__m128i*)(prediction_ptr + 3*pStride), _mm_or_si128(_mm_and_si128(A, B), C)); \ 24 A = _mm_srli_si128(A, 1); 25