| Index: source/libvpx/vp9/encoder/x86/vp9_dct32x32_sse2.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/x86/vp9_dct32x32_sse2.c (revision 232232)
|
| +++ source/libvpx/vp9/encoder/x86/vp9_dct32x32_sse2.c (working copy)
|
| @@ -27,32 +27,14 @@
|
| __m128i buf1 = _mm_shuffle_epi32(b, _MM_SHUFFLE(0, 0, 2, 0));
|
| return _mm_unpacklo_epi64(buf0, buf1);
|
| }
|
| -
|
| -static INLINE __m128i k_cvtlo_epi16(__m128i a, __m128i mask16, __m128i kZero) {
|
| - // convert the lower 4 signed 16-bit integers into 4 signed 32-bit integers
|
| - __m128i sign_bit = _mm_and_si128(a, mask16);
|
| - __m128i b = _mm_unpacklo_epi16(a, kZero);
|
| - sign_bit = _mm_cmplt_epi16(sign_bit, kZero);
|
| - sign_bit = _mm_unpacklo_epi16(kZero, sign_bit);
|
| - return _mm_or_si128(sign_bit, b);
|
| -}
|
| -
|
| -static INLINE __m128i k_cvthi_epi16(__m128i a, __m128i mask16, __m128i kZero) {
|
| - // convert the lower 4 signed 16-bit integers into 4 signed 32-bit integers
|
| - __m128i sign_bit = _mm_and_si128(a, mask16);
|
| - __m128i b = _mm_unpackhi_epi16(a, kZero);
|
| - sign_bit = _mm_cmplt_epi16(sign_bit, kZero);
|
| - sign_bit = _mm_unpackhi_epi16(kZero, sign_bit);
|
| - return _mm_or_si128(sign_bit, b);
|
| -}
|
| #endif
|
|
|
| -void FDCT32x32_2D(int16_t *input,
|
| - int16_t *output_org, int pitch) {
|
| +void FDCT32x32_2D(const int16_t *input,
|
| + int16_t *output_org, int stride) {
|
| // Calculate pre-multiplied strides
|
| - const int str1 = pitch >> 1;
|
| - const int str2 = pitch;
|
| - const int str3 = pitch + str1;
|
| + const int str1 = stride;
|
| + const int str2 = 2 * stride;
|
| + const int str3 = 2 * stride + str1;
|
| // We need an intermediate buffer between passes.
|
| DECLARE_ALIGNED(16, int16_t, intermediate[32 * 32]);
|
| // Constants
|
| @@ -111,13 +93,13 @@
|
| // Note: even though all the loads below are aligned, using the aligned
|
| // intrinsic make the code slightly slower.
|
| if (0 == pass) {
|
| - int16_t *in = &input[column_start];
|
| + const int16_t *in = &input[column_start];
|
| // step1[i] = (in[ 0 * stride] + in[(32 - 1) * stride]) << 2;
|
| // Note: the next four blocks could be in a loop. That would help the
|
| // instruction cache but is actually slower.
|
| {
|
| - int16_t *ina = in + 0 * str1;
|
| - int16_t *inb = in + 31 * str1;
|
| + const int16_t *ina = in + 0 * str1;
|
| + const int16_t *inb = in + 31 * str1;
|
| __m128i *step1a = &step1[ 0];
|
| __m128i *step1b = &step1[31];
|
| const __m128i ina0 = _mm_loadu_si128((const __m128i *)(ina));
|
| @@ -146,8 +128,8 @@
|
| step1b[-0] = _mm_slli_epi16(step1b[-0], 2);
|
| }
|
| {
|
| - int16_t *ina = in + 4 * str1;
|
| - int16_t *inb = in + 27 * str1;
|
| + const int16_t *ina = in + 4 * str1;
|
| + const int16_t *inb = in + 27 * str1;
|
| __m128i *step1a = &step1[ 4];
|
| __m128i *step1b = &step1[27];
|
| const __m128i ina0 = _mm_loadu_si128((const __m128i *)(ina));
|
| @@ -176,8 +158,8 @@
|
| step1b[-0] = _mm_slli_epi16(step1b[-0], 2);
|
| }
|
| {
|
| - int16_t *ina = in + 8 * str1;
|
| - int16_t *inb = in + 23 * str1;
|
| + const int16_t *ina = in + 8 * str1;
|
| + const int16_t *inb = in + 23 * str1;
|
| __m128i *step1a = &step1[ 8];
|
| __m128i *step1b = &step1[23];
|
| const __m128i ina0 = _mm_loadu_si128((const __m128i *)(ina));
|
| @@ -206,8 +188,8 @@
|
| step1b[-0] = _mm_slli_epi16(step1b[-0], 2);
|
| }
|
| {
|
| - int16_t *ina = in + 12 * str1;
|
| - int16_t *inb = in + 19 * str1;
|
| + const int16_t *ina = in + 12 * str1;
|
| + const int16_t *inb = in + 19 * str1;
|
| __m128i *step1a = &step1[12];
|
| __m128i *step1b = &step1[19];
|
| const __m128i ina0 = _mm_loadu_si128((const __m128i *)(ina));
|
| @@ -1159,28 +1141,43 @@
|
| } else {
|
| __m128i lstep1[64], lstep2[64], lstep3[64];
|
| __m128i u[32], v[32], sign[16];
|
| - const __m128i mask16 = _mm_set1_epi32(0x80008000);
|
| const __m128i K32One = _mm_set_epi32(1, 1, 1, 1);
|
| // start using 32-bit operations
|
| // stage 3
|
| {
|
| // expanding to 32-bit length priori to addition operations
|
| - lstep2[ 0] = k_cvtlo_epi16(step2[ 0], mask16, kZero);
|
| - lstep2[ 1] = k_cvthi_epi16(step2[ 0], mask16, kZero);
|
| - lstep2[ 2] = k_cvtlo_epi16(step2[ 1], mask16, kZero);
|
| - lstep2[ 3] = k_cvthi_epi16(step2[ 1], mask16, kZero);
|
| - lstep2[ 4] = k_cvtlo_epi16(step2[ 2], mask16, kZero);
|
| - lstep2[ 5] = k_cvthi_epi16(step2[ 2], mask16, kZero);
|
| - lstep2[ 6] = k_cvtlo_epi16(step2[ 3], mask16, kZero);
|
| - lstep2[ 7] = k_cvthi_epi16(step2[ 3], mask16, kZero);
|
| - lstep2[ 8] = k_cvtlo_epi16(step2[ 4], mask16, kZero);
|
| - lstep2[ 9] = k_cvthi_epi16(step2[ 4], mask16, kZero);
|
| - lstep2[10] = k_cvtlo_epi16(step2[ 5], mask16, kZero);
|
| - lstep2[11] = k_cvthi_epi16(step2[ 5], mask16, kZero);
|
| - lstep2[12] = k_cvtlo_epi16(step2[ 6], mask16, kZero);
|
| - lstep2[13] = k_cvthi_epi16(step2[ 6], mask16, kZero);
|
| - lstep2[14] = k_cvtlo_epi16(step2[ 7], mask16, kZero);
|
| - lstep2[15] = k_cvthi_epi16(step2[ 7], mask16, kZero);
|
| + lstep2[ 0] = _mm_unpacklo_epi16(step2[ 0], kZero);
|
| + lstep2[ 1] = _mm_unpackhi_epi16(step2[ 0], kZero);
|
| + lstep2[ 2] = _mm_unpacklo_epi16(step2[ 1], kZero);
|
| + lstep2[ 3] = _mm_unpackhi_epi16(step2[ 1], kZero);
|
| + lstep2[ 4] = _mm_unpacklo_epi16(step2[ 2], kZero);
|
| + lstep2[ 5] = _mm_unpackhi_epi16(step2[ 2], kZero);
|
| + lstep2[ 6] = _mm_unpacklo_epi16(step2[ 3], kZero);
|
| + lstep2[ 7] = _mm_unpackhi_epi16(step2[ 3], kZero);
|
| + lstep2[ 8] = _mm_unpacklo_epi16(step2[ 4], kZero);
|
| + lstep2[ 9] = _mm_unpackhi_epi16(step2[ 4], kZero);
|
| + lstep2[10] = _mm_unpacklo_epi16(step2[ 5], kZero);
|
| + lstep2[11] = _mm_unpackhi_epi16(step2[ 5], kZero);
|
| + lstep2[12] = _mm_unpacklo_epi16(step2[ 6], kZero);
|
| + lstep2[13] = _mm_unpackhi_epi16(step2[ 6], kZero);
|
| + lstep2[14] = _mm_unpacklo_epi16(step2[ 7], kZero);
|
| + lstep2[15] = _mm_unpackhi_epi16(step2[ 7], kZero);
|
| + lstep2[ 0] = _mm_madd_epi16(lstep2[ 0], kOne);
|
| + lstep2[ 1] = _mm_madd_epi16(lstep2[ 1], kOne);
|
| + lstep2[ 2] = _mm_madd_epi16(lstep2[ 2], kOne);
|
| + lstep2[ 3] = _mm_madd_epi16(lstep2[ 3], kOne);
|
| + lstep2[ 4] = _mm_madd_epi16(lstep2[ 4], kOne);
|
| + lstep2[ 5] = _mm_madd_epi16(lstep2[ 5], kOne);
|
| + lstep2[ 6] = _mm_madd_epi16(lstep2[ 6], kOne);
|
| + lstep2[ 7] = _mm_madd_epi16(lstep2[ 7], kOne);
|
| + lstep2[ 8] = _mm_madd_epi16(lstep2[ 8], kOne);
|
| + lstep2[ 9] = _mm_madd_epi16(lstep2[ 9], kOne);
|
| + lstep2[10] = _mm_madd_epi16(lstep2[10], kOne);
|
| + lstep2[11] = _mm_madd_epi16(lstep2[11], kOne);
|
| + lstep2[12] = _mm_madd_epi16(lstep2[12], kOne);
|
| + lstep2[13] = _mm_madd_epi16(lstep2[13], kOne);
|
| + lstep2[14] = _mm_madd_epi16(lstep2[14], kOne);
|
| + lstep2[15] = _mm_madd_epi16(lstep2[15], kOne);
|
|
|
| lstep3[ 0] = _mm_add_epi32(lstep2[14], lstep2[ 0]);
|
| lstep3[ 1] = _mm_add_epi32(lstep2[15], lstep2[ 1]);
|
| @@ -1231,42 +1228,75 @@
|
| lstep3[27] = _mm_srai_epi32(s3_13_5, DCT_CONST_BITS);
|
| }
|
| {
|
| - lstep2[40] = k_cvtlo_epi16(step2[20], mask16, kZero);
|
| - lstep2[41] = k_cvthi_epi16(step2[20], mask16, kZero);
|
| - lstep2[42] = k_cvtlo_epi16(step2[21], mask16, kZero);
|
| - lstep2[43] = k_cvthi_epi16(step2[21], mask16, kZero);
|
| - lstep2[44] = k_cvtlo_epi16(step2[22], mask16, kZero);
|
| - lstep2[45] = k_cvthi_epi16(step2[22], mask16, kZero);
|
| - lstep2[46] = k_cvtlo_epi16(step2[23], mask16, kZero);
|
| - lstep2[47] = k_cvthi_epi16(step2[23], mask16, kZero);
|
| - lstep2[48] = k_cvtlo_epi16(step2[24], mask16, kZero);
|
| - lstep2[49] = k_cvthi_epi16(step2[24], mask16, kZero);
|
| - lstep2[50] = k_cvtlo_epi16(step2[25], mask16, kZero);
|
| - lstep2[51] = k_cvthi_epi16(step2[25], mask16, kZero);
|
| - lstep2[52] = k_cvtlo_epi16(step2[26], mask16, kZero);
|
| - lstep2[53] = k_cvthi_epi16(step2[26], mask16, kZero);
|
| - lstep2[54] = k_cvtlo_epi16(step2[27], mask16, kZero);
|
| - lstep2[55] = k_cvthi_epi16(step2[27], mask16, kZero);
|
| + lstep2[40] = _mm_unpacklo_epi16(step2[20], kZero);
|
| + lstep2[41] = _mm_unpackhi_epi16(step2[20], kZero);
|
| + lstep2[42] = _mm_unpacklo_epi16(step2[21], kZero);
|
| + lstep2[43] = _mm_unpackhi_epi16(step2[21], kZero);
|
| + lstep2[44] = _mm_unpacklo_epi16(step2[22], kZero);
|
| + lstep2[45] = _mm_unpackhi_epi16(step2[22], kZero);
|
| + lstep2[46] = _mm_unpacklo_epi16(step2[23], kZero);
|
| + lstep2[47] = _mm_unpackhi_epi16(step2[23], kZero);
|
| + lstep2[48] = _mm_unpacklo_epi16(step2[24], kZero);
|
| + lstep2[49] = _mm_unpackhi_epi16(step2[24], kZero);
|
| + lstep2[50] = _mm_unpacklo_epi16(step2[25], kZero);
|
| + lstep2[51] = _mm_unpackhi_epi16(step2[25], kZero);
|
| + lstep2[52] = _mm_unpacklo_epi16(step2[26], kZero);
|
| + lstep2[53] = _mm_unpackhi_epi16(step2[26], kZero);
|
| + lstep2[54] = _mm_unpacklo_epi16(step2[27], kZero);
|
| + lstep2[55] = _mm_unpackhi_epi16(step2[27], kZero);
|
| + lstep2[40] = _mm_madd_epi16(lstep2[40], kOne);
|
| + lstep2[41] = _mm_madd_epi16(lstep2[41], kOne);
|
| + lstep2[42] = _mm_madd_epi16(lstep2[42], kOne);
|
| + lstep2[43] = _mm_madd_epi16(lstep2[43], kOne);
|
| + lstep2[44] = _mm_madd_epi16(lstep2[44], kOne);
|
| + lstep2[45] = _mm_madd_epi16(lstep2[45], kOne);
|
| + lstep2[46] = _mm_madd_epi16(lstep2[46], kOne);
|
| + lstep2[47] = _mm_madd_epi16(lstep2[47], kOne);
|
| + lstep2[48] = _mm_madd_epi16(lstep2[48], kOne);
|
| + lstep2[49] = _mm_madd_epi16(lstep2[49], kOne);
|
| + lstep2[50] = _mm_madd_epi16(lstep2[50], kOne);
|
| + lstep2[51] = _mm_madd_epi16(lstep2[51], kOne);
|
| + lstep2[52] = _mm_madd_epi16(lstep2[52], kOne);
|
| + lstep2[53] = _mm_madd_epi16(lstep2[53], kOne);
|
| + lstep2[54] = _mm_madd_epi16(lstep2[54], kOne);
|
| + lstep2[55] = _mm_madd_epi16(lstep2[55], kOne);
|
|
|
| - lstep1[32] = k_cvtlo_epi16(step1[16], mask16, kZero);
|
| - lstep1[33] = k_cvthi_epi16(step1[16], mask16, kZero);
|
| - lstep1[34] = k_cvtlo_epi16(step1[17], mask16, kZero);
|
| - lstep1[35] = k_cvthi_epi16(step1[17], mask16, kZero);
|
| - lstep1[36] = k_cvtlo_epi16(step1[18], mask16, kZero);
|
| - lstep1[37] = k_cvthi_epi16(step1[18], mask16, kZero);
|
| - lstep1[38] = k_cvtlo_epi16(step1[19], mask16, kZero);
|
| - lstep1[39] = k_cvthi_epi16(step1[19], mask16, kZero);
|
| - lstep1[56] = k_cvtlo_epi16(step1[28], mask16, kZero);
|
| - lstep1[57] = k_cvthi_epi16(step1[28], mask16, kZero);
|
| - lstep1[58] = k_cvtlo_epi16(step1[29], mask16, kZero);
|
| - lstep1[59] = k_cvthi_epi16(step1[29], mask16, kZero);
|
| - lstep1[60] = k_cvtlo_epi16(step1[30], mask16, kZero);
|
| - lstep1[61] = k_cvthi_epi16(step1[30], mask16, kZero);
|
| - lstep1[62] = k_cvtlo_epi16(step1[31], mask16, kZero);
|
| - lstep1[63] = k_cvthi_epi16(step1[31], mask16, kZero);
|
| + lstep1[32] = _mm_unpacklo_epi16(step1[16], kZero);
|
| + lstep1[33] = _mm_unpackhi_epi16(step1[16], kZero);
|
| + lstep1[34] = _mm_unpacklo_epi16(step1[17], kZero);
|
| + lstep1[35] = _mm_unpackhi_epi16(step1[17], kZero);
|
| + lstep1[36] = _mm_unpacklo_epi16(step1[18], kZero);
|
| + lstep1[37] = _mm_unpackhi_epi16(step1[18], kZero);
|
| + lstep1[38] = _mm_unpacklo_epi16(step1[19], kZero);
|
| + lstep1[39] = _mm_unpackhi_epi16(step1[19], kZero);
|
| + lstep1[56] = _mm_unpacklo_epi16(step1[28], kZero);
|
| + lstep1[57] = _mm_unpackhi_epi16(step1[28], kZero);
|
| + lstep1[58] = _mm_unpacklo_epi16(step1[29], kZero);
|
| + lstep1[59] = _mm_unpackhi_epi16(step1[29], kZero);
|
| + lstep1[60] = _mm_unpacklo_epi16(step1[30], kZero);
|
| + lstep1[61] = _mm_unpackhi_epi16(step1[30], kZero);
|
| + lstep1[62] = _mm_unpacklo_epi16(step1[31], kZero);
|
| + lstep1[63] = _mm_unpackhi_epi16(step1[31], kZero);
|
| + lstep1[32] = _mm_madd_epi16(lstep1[32], kOne);
|
| + lstep1[33] = _mm_madd_epi16(lstep1[33], kOne);
|
| + lstep1[34] = _mm_madd_epi16(lstep1[34], kOne);
|
| + lstep1[35] = _mm_madd_epi16(lstep1[35], kOne);
|
| + lstep1[36] = _mm_madd_epi16(lstep1[36], kOne);
|
| + lstep1[37] = _mm_madd_epi16(lstep1[37], kOne);
|
| + lstep1[38] = _mm_madd_epi16(lstep1[38], kOne);
|
| + lstep1[39] = _mm_madd_epi16(lstep1[39], kOne);
|
| + lstep1[56] = _mm_madd_epi16(lstep1[56], kOne);
|
| + lstep1[57] = _mm_madd_epi16(lstep1[57], kOne);
|
| + lstep1[58] = _mm_madd_epi16(lstep1[58], kOne);
|
| + lstep1[59] = _mm_madd_epi16(lstep1[59], kOne);
|
| + lstep1[60] = _mm_madd_epi16(lstep1[60], kOne);
|
| + lstep1[61] = _mm_madd_epi16(lstep1[61], kOne);
|
| + lstep1[62] = _mm_madd_epi16(lstep1[62], kOne);
|
| + lstep1[63] = _mm_madd_epi16(lstep1[63], kOne);
|
|
|
| lstep3[32] = _mm_add_epi32(lstep2[46], lstep1[32]);
|
| lstep3[33] = _mm_add_epi32(lstep2[47], lstep1[33]);
|
| +
|
| lstep3[34] = _mm_add_epi32(lstep2[44], lstep1[34]);
|
| lstep3[35] = _mm_add_epi32(lstep2[45], lstep1[35]);
|
| lstep3[36] = _mm_add_epi32(lstep2[42], lstep1[36]);
|
| @@ -1302,14 +1332,22 @@
|
| // stage 4
|
| {
|
| // expanding to 32-bit length priori to addition operations
|
| - lstep2[16] = k_cvtlo_epi16(step2[ 8], mask16, kZero);
|
| - lstep2[17] = k_cvthi_epi16(step2[ 8], mask16, kZero);
|
| - lstep2[18] = k_cvtlo_epi16(step2[ 9], mask16, kZero);
|
| - lstep2[19] = k_cvthi_epi16(step2[ 9], mask16, kZero);
|
| - lstep2[28] = k_cvtlo_epi16(step2[14], mask16, kZero);
|
| - lstep2[29] = k_cvthi_epi16(step2[14], mask16, kZero);
|
| - lstep2[30] = k_cvtlo_epi16(step2[15], mask16, kZero);
|
| - lstep2[31] = k_cvthi_epi16(step2[15], mask16, kZero);
|
| + lstep2[16] = _mm_unpacklo_epi16(step2[ 8], kZero);
|
| + lstep2[17] = _mm_unpackhi_epi16(step2[ 8], kZero);
|
| + lstep2[18] = _mm_unpacklo_epi16(step2[ 9], kZero);
|
| + lstep2[19] = _mm_unpackhi_epi16(step2[ 9], kZero);
|
| + lstep2[28] = _mm_unpacklo_epi16(step2[14], kZero);
|
| + lstep2[29] = _mm_unpackhi_epi16(step2[14], kZero);
|
| + lstep2[30] = _mm_unpacklo_epi16(step2[15], kZero);
|
| + lstep2[31] = _mm_unpackhi_epi16(step2[15], kZero);
|
| + lstep2[16] = _mm_madd_epi16(lstep2[16], kOne);
|
| + lstep2[17] = _mm_madd_epi16(lstep2[17], kOne);
|
| + lstep2[18] = _mm_madd_epi16(lstep2[18], kOne);
|
| + lstep2[19] = _mm_madd_epi16(lstep2[19], kOne);
|
| + lstep2[28] = _mm_madd_epi16(lstep2[28], kOne);
|
| + lstep2[29] = _mm_madd_epi16(lstep2[29], kOne);
|
| + lstep2[30] = _mm_madd_epi16(lstep2[30], kOne);
|
| + lstep2[31] = _mm_madd_epi16(lstep2[31], kOne);
|
|
|
| lstep1[ 0] = _mm_add_epi32(lstep3[ 6], lstep3[ 0]);
|
| lstep1[ 1] = _mm_add_epi32(lstep3[ 7], lstep3[ 1]);
|
| @@ -1337,41 +1375,41 @@
|
| lstep1[31] = _mm_add_epi32(lstep3[25], lstep2[31]);
|
| }
|
| {
|
| - // to be continued...
|
| - //
|
| - const __m128i k32_p16_p16 = pair_set_epi32(cospi_16_64, cospi_16_64);
|
| - const __m128i k32_p16_m16 = pair_set_epi32(cospi_16_64, -cospi_16_64);
|
| + // to be continued...
|
| + //
|
| + const __m128i k32_p16_p16 = pair_set_epi32(cospi_16_64, cospi_16_64);
|
| + const __m128i k32_p16_m16 = pair_set_epi32(cospi_16_64, -cospi_16_64);
|
|
|
| - u[0] = _mm_unpacklo_epi32(lstep3[12], lstep3[10]);
|
| - u[1] = _mm_unpackhi_epi32(lstep3[12], lstep3[10]);
|
| - u[2] = _mm_unpacklo_epi32(lstep3[13], lstep3[11]);
|
| - u[3] = _mm_unpackhi_epi32(lstep3[13], lstep3[11]);
|
| + u[0] = _mm_unpacklo_epi32(lstep3[12], lstep3[10]);
|
| + u[1] = _mm_unpackhi_epi32(lstep3[12], lstep3[10]);
|
| + u[2] = _mm_unpacklo_epi32(lstep3[13], lstep3[11]);
|
| + u[3] = _mm_unpackhi_epi32(lstep3[13], lstep3[11]);
|
|
|
| - // TODO(jingning): manually inline k_madd_epi32_ to further hide
|
| - // instruction latency.
|
| - v[ 0] = k_madd_epi32(u[0], k32_p16_m16);
|
| - v[ 1] = k_madd_epi32(u[1], k32_p16_m16);
|
| - v[ 2] = k_madd_epi32(u[2], k32_p16_m16);
|
| - v[ 3] = k_madd_epi32(u[3], k32_p16_m16);
|
| - v[ 4] = k_madd_epi32(u[0], k32_p16_p16);
|
| - v[ 5] = k_madd_epi32(u[1], k32_p16_p16);
|
| - v[ 6] = k_madd_epi32(u[2], k32_p16_p16);
|
| - v[ 7] = k_madd_epi32(u[3], k32_p16_p16);
|
| + // TODO(jingning): manually inline k_madd_epi32_ to further hide
|
| + // instruction latency.
|
| + v[ 0] = k_madd_epi32(u[0], k32_p16_m16);
|
| + v[ 1] = k_madd_epi32(u[1], k32_p16_m16);
|
| + v[ 2] = k_madd_epi32(u[2], k32_p16_m16);
|
| + v[ 3] = k_madd_epi32(u[3], k32_p16_m16);
|
| + v[ 4] = k_madd_epi32(u[0], k32_p16_p16);
|
| + v[ 5] = k_madd_epi32(u[1], k32_p16_p16);
|
| + v[ 6] = k_madd_epi32(u[2], k32_p16_p16);
|
| + v[ 7] = k_madd_epi32(u[3], k32_p16_p16);
|
|
|
| - u[0] = k_packs_epi64(v[0], v[1]);
|
| - u[1] = k_packs_epi64(v[2], v[3]);
|
| - u[2] = k_packs_epi64(v[4], v[5]);
|
| - u[3] = k_packs_epi64(v[6], v[7]);
|
| + u[0] = k_packs_epi64(v[0], v[1]);
|
| + u[1] = k_packs_epi64(v[2], v[3]);
|
| + u[2] = k_packs_epi64(v[4], v[5]);
|
| + u[3] = k_packs_epi64(v[6], v[7]);
|
|
|
| - v[0] = _mm_add_epi32(u[0], k__DCT_CONST_ROUNDING);
|
| - v[1] = _mm_add_epi32(u[1], k__DCT_CONST_ROUNDING);
|
| - v[2] = _mm_add_epi32(u[2], k__DCT_CONST_ROUNDING);
|
| - v[3] = _mm_add_epi32(u[3], k__DCT_CONST_ROUNDING);
|
| + v[0] = _mm_add_epi32(u[0], k__DCT_CONST_ROUNDING);
|
| + v[1] = _mm_add_epi32(u[1], k__DCT_CONST_ROUNDING);
|
| + v[2] = _mm_add_epi32(u[2], k__DCT_CONST_ROUNDING);
|
| + v[3] = _mm_add_epi32(u[3], k__DCT_CONST_ROUNDING);
|
|
|
| - lstep1[10] = _mm_srai_epi32(v[0], DCT_CONST_BITS);
|
| - lstep1[11] = _mm_srai_epi32(v[1], DCT_CONST_BITS);
|
| - lstep1[12] = _mm_srai_epi32(v[2], DCT_CONST_BITS);
|
| - lstep1[13] = _mm_srai_epi32(v[3], DCT_CONST_BITS);
|
| + lstep1[10] = _mm_srai_epi32(v[0], DCT_CONST_BITS);
|
| + lstep1[11] = _mm_srai_epi32(v[1], DCT_CONST_BITS);
|
| + lstep1[12] = _mm_srai_epi32(v[2], DCT_CONST_BITS);
|
| + lstep1[13] = _mm_srai_epi32(v[3], DCT_CONST_BITS);
|
| }
|
| {
|
| const __m128i k32_m08_p24 = pair_set_epi32(-cospi_8_64, cospi_24_64);
|
| @@ -2647,4 +2685,4 @@
|
| }
|
| }
|
| }
|
| -}
|
| +} // NOLINT
|
|
|