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