Line data Source code
1 : /* 2 : * Copyright(c) 2019 Intel Corporation 3 : * SPDX - License - Identifier: BSD - 2 - Clause - Patent 4 : */ 5 : 6 : // C instance for unit test. 7 : 8 : #include "EbDefinitions.h" 9 : 10 : #include "transpose_sse2.h" 11 : 12 0 : void transpose_8bit_4x4_reg128bit_instance_sse2(const __m128i *const in, 13 : __m128i *const out) { 14 0 : __m128i out_tmp[4] = {0}; 15 0 : out_tmp[0] = transpose_8bit_4x4(in); 16 0 : for (size_t i = 0; i < 4; i++) { 17 0 : out[i] = _mm_loadu_si128((__m128i *)(&((uint8_t *)(&out_tmp))[4 * i])); 18 : } 19 0 : } 20 : 21 0 : void transpose_8bit_8x8_reg128bit_instance_sse2(const __m128i *const in, 22 : __m128i *const out) { 23 0 : transpose_8bit_8x8(in, out); 24 0 : } 25 : 26 0 : void transpose_8bit_16x8_reg128bit_instance_sse2(const __m128i *const in, 27 : __m128i *const out) { 28 0 : transpose_8bit_16x8(in, out); 29 0 : } 30 : 31 0 : void transpose_8bit_16x16_reg128bit_instance_sse2(const __m128i *const in, 32 : __m128i *const out) { 33 0 : transpose_8bit_16x16_sse2(in, out); 34 0 : } 35 : 36 0 : void partial_transpose_8bit_8x8_reg128bit_instance_sse2(const __m128i *const in, 37 : __m128i *const out) { 38 0 : partial_transpose_8bit_8x8(in, out); 39 0 : } 40 : 41 0 : void transpose_16bit_4x4_reg128bit_instance_sse2(const __m128i *const in, 42 : __m128i *const out) { 43 0 : transpose_16bit_4x4(in, out); 44 0 : } 45 : 46 0 : void transpose_16bit_4x8_reg128bit_instance_sse2(const __m128i *const in, 47 : __m128i *const out) { 48 0 : transpose_16bit_4x8(in, out); 49 0 : } 50 : 51 0 : void transpose_16bit_8x4_reg128bit_instance_sse2(const __m128i *const in, 52 : __m128i *const out) { 53 0 : transpose_16bit_8x4(in, out); 54 0 : } 55 : 56 0 : void transpose_16bit_8x8_reg128bit_instance_sse2(const __m128i *const in, 57 : __m128i *const out) { 58 0 : transpose_16bit_8x8(in, out); 59 0 : } 60 : 61 0 : void transpose_16bit_16x16_reg128bit_instance_sse2(const __m128i *const in, 62 : __m128i *const out) { 63 0 : memcpy(out, in, 16 * 16 * sizeof(__m128i)); 64 0 : transpose_16bit_16x16(out, &out[16]); 65 0 : } 66 : 67 0 : void transpose_32bit_4x4_reg128bit_instance_sse2(const __m128i *const in, 68 : __m128i *const out) { 69 0 : transpose_32bit_4x4(in, out); 70 0 : } 71 : 72 0 : void transpose_32bit_4x4x2_reg128bit_instance_sse2(const __m128i *const in, 73 : __m128i *const out) { 74 0 : transpose_32bit_4x4x2(in, out); 75 0 : } 76 : 77 0 : void transpose_32bit_8x4_reg128bit_instance_sse2(const __m128i *const in, 78 : __m128i *const out) { 79 0 : transpose_32bit_8x4(in, out); 80 0 : }