Line data Source code
1 : /* 2 : * Copyright(c) 2019 Intel Corporation 3 : * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 : */ 5 : 6 : #ifndef EbMemory_SSE4_1_h 7 : #define EbMemory_SSE4_1_h 8 : 9 : #include "EbDefinitions.h" 10 : #include "smmintrin.h" 11 : 12 0 : static INLINE __m128i load8bit_4x2_sse4_1(const void *const src, 13 : const ptrdiff_t strideInByte) 14 : { 15 0 : const __m128i s = _mm_cvtsi32_si128(*(int32_t*)((uint8_t *)src)); 16 0 : return _mm_insert_epi32(s, *(int32_t *)((uint8_t *)src + strideInByte), 1); 17 : } 18 : 19 0 : static INLINE __m128i load_u8_4x2_sse4_1(const uint8_t *const src, 20 : const ptrdiff_t stride) 21 : { 22 0 : return load8bit_4x2_sse4_1(src, sizeof(*src) * stride); 23 : } 24 : 25 0 : static INLINE __m128i load_u16_2x2_sse4_1(const uint16_t *const src, 26 : const ptrdiff_t stride) 27 : { 28 0 : return load8bit_4x2_sse4_1(src, sizeof(*src) * stride); 29 : } 30 : 31 : #endif // EbMemory_SSE4_1_h