/*
 *  Copyright (c) 2012 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */

#include <immintrin.h>  // AVX2

#include "vpx_dsp/txfm_common.h"

#define pair256_set_epi16(a, b) \
  _mm256_set_epi16((int16_t)(b), (int16_t)(a), (int16_t)(b), (int16_t)(a), \
                   (int16_t)(b), (int16_t)(a), (int16_t)(b), (int16_t)(a), \
                   (int16_t)(b), (int16_t)(a), (int16_t)(b), (int16_t)(a), \
                   (int16_t)(b), (int16_t)(a), (int16_t)(b), (int16_t)(a))

#define pair256_set_epi32(a, b) \
  _mm256_set_epi32((int)(b), (int)(a), (int)(b), (int)(a), \
                   (int)(b), (int)(a), (int)(b), (int)(a))

#if FDCT32x32_HIGH_PRECISION
static INLINE __m256i k_madd_epi32_avx2(__m256i a, __m256i b) {
  __m256i buf0, buf1;
  buf0 = _mm256_mul_epu32(a, b);
  a = _mm256_srli_epi64(a, 32);
  b = _mm256_srli_epi64(b, 32);
  buf1 = _mm256_mul_epu32(a, b);
  return _mm256_add_epi64(buf0, buf1);
}

static INLINE __m256i k_packs_epi64_avx2(__m256i a, __m256i b) {
  __m256i buf0 = _mm256_shuffle_epi32(a, _MM_SHUFFLE(0, 0, 2, 0));
  __m256i buf1 = _mm256_shuffle_epi32(b, _MM_SHUFFLE(0, 0, 2, 0));
  return _mm256_unpacklo_epi64(buf0, buf1);
}
#endif

void FDCT32x32_2D_AVX2(const int16_t *input,
                  int16_t *output_org, int stride) {
  // Calculate pre-multiplied strides
  const int str1 = stride;
  const int str2 = 2 * stride;
  const int str3 = 2 * stride + str1;
  // We need an intermediate buffer between passes.
  DECLARE_ALIGNED(32, int16_t, intermediate[32 * 32]);
  // Constants
  //    When we use them, in one case, they are all the same. In all others
  //    it's a pair of them that we need to repeat four times. This is done
  //    by constructing the 32 bit constant corresponding to that pair.
  const __m256i k__cospi_p16_p16 = _mm256_set1_epi16((int16_t)cospi_16_64);
  const __m256i k__cospi_p16_m16 = pair256_set_epi16(+cospi_16_64, -cospi_16_64);
  const __m256i k__cospi_m08_p24 = pair256_set_epi16(-cospi_8_64,   cospi_24_64);
  const __m256i k__cospi_m24_m08 = pair256_set_epi16(-cospi_24_64, -cospi_8_64);
  const __m256i k__cospi_p24_p08 = pair256_set_epi16(+cospi_24_64,  cospi_8_64);
  const __m256i k__cospi_p12_p20 = pair256_set_epi16(+cospi_12_64,  cospi_20_64);
  const __m256i k__cospi_m20_p12 = pair256_set_epi16(-cospi_20_64,  cospi_12_64);
  const __m256i k__cospi_m04_p28 = pair256_set_epi16(-cospi_4_64,   cospi_28_64);
  const __m256i k__cospi_p28_p04 = pair256_set_epi16(+cospi_28_64,  cospi_4_64);
  const __m256i k__cospi_m28_m04 = pair256_set_epi16(-cospi_28_64, -cospi_4_64);
  const __m256i k__cospi_m12_m20 = pair256_set_epi16(-cospi_12_64, -cospi_20_64);
  const __m256i k__cospi_p30_p02 = pair256_set_epi16(+cospi_30_64,  cospi_2_64);
  const __m256i k__cospi_p14_p18 = pair256_set_epi16(+cospi_14_64,  cospi_18_64);
  const __m256i k__cospi_p22_p10 = pair256_set_epi16(+cospi_22_64,  cospi_10_64);
  const __m256i k__cospi_p06_p26 = pair256_set_epi16(+cospi_6_64,   cospi_26_64);
  const __m256i k__cospi_m26_p06 = pair256_set_epi16(-cospi_26_64,  cospi_6_64);
  const __m256i k__cospi_m10_p22 = pair256_set_epi16(-cospi_10_64,  cospi_22_64);
  const __m256i k__cospi_m18_p14 = pair256_set_epi16(-cospi_18_64,  cospi_14_64);
  const __m256i k__cospi_m02_p30 = pair256_set_epi16(-cospi_2_64,   cospi_30_64);
  const __m256i k__cospi_p31_p01 = pair256_set_epi16(+cospi_31_64,  cospi_1_64);
  const __m256i k__cospi_p15_p17 = pair256_set_epi16(+cospi_15_64,  cospi_17_64);
  const __m256i k__cospi_p23_p09 = pair256_set_epi16(+cospi_23_64,  cospi_9_64);
  const __m256i k__cospi_p07_p25 = pair256_set_epi16(+cospi_7_64,   cospi_25_64);
  const __m256i k__cospi_m25_p07 = pair256_set_epi16(-cospi_25_64,  cospi_7_64);
  const __m256i k__cospi_m09_p23 = pair256_set_epi16(-cospi_9_64,   cospi_23_64);
  const __m256i k__cospi_m17_p15 = pair256_set_epi16(-cospi_17_64,  cospi_15_64);
  const __m256i k__cospi_m01_p31 = pair256_set_epi16(-cospi_1_64,   cospi_31_64);
  const __m256i k__cospi_p27_p05 = pair256_set_epi16(+cospi_27_64,  cospi_5_64);
  const __m256i k__cospi_p11_p21 = pair256_set_epi16(+cospi_11_64,  cospi_21_64);
  const __m256i k__cospi_p19_p13 = pair256_set_epi16(+cospi_19_64,  cospi_13_64);
  const __m256i k__cospi_p03_p29 = pair256_set_epi16(+cospi_3_64,   cospi_29_64);
  const __m256i k__cospi_m29_p03 = pair256_set_epi16(-cospi_29_64,  cospi_3_64);
  const __m256i k__cospi_m13_p19 = pair256_set_epi16(-cospi_13_64,  cospi_19_64);
  const __m256i k__cospi_m21_p11 = pair256_set_epi16(-cospi_21_64,  cospi_11_64);
  const __m256i k__cospi_m05_p27 = pair256_set_epi16(-cospi_5_64,   cospi_27_64);
  const __m256i k__DCT_CONST_ROUNDING = _mm256_set1_epi32(DCT_CONST_ROUNDING);
  const __m256i kZero = _mm256_set1_epi16(0);
  const __m256i kOne  = _mm256_set1_epi16(1);
  // Do the two transform/transpose passes
  int pass;
  for (pass = 0; pass < 2; ++pass) {
    // We process sixteen columns (transposed rows in second pass) at a time.
    int column_start;
    for (column_start = 0; column_start < 32; column_start += 16) {
      __m256i step1[32];
      __m256i step2[32];
      __m256i step3[32];
      __m256i out[32];
      // Stage 1
      // Note: even though all the loads below are aligned, using the aligned
      //       intrinsic make the code slightly slower.
      if (0 == pass) {
        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.
        {
          const int16_t *ina =  in +  0 * str1;
          const int16_t *inb =  in + 31 * str1;
          __m256i *step1a = &step1[ 0];
          __m256i *step1b = &step1[31];
          const __m256i ina0  = _mm256_loadu_si256((const __m256i *)(ina));
          const __m256i ina1  = _mm256_loadu_si256((const __m256i *)(ina + str1));
          const __m256i ina2  = _mm256_loadu_si256((const __m256i *)(ina + str2));
          const __m256i ina3  = _mm256_loadu_si256((const __m256i *)(ina + str3));
          const __m256i inb3  = _mm256_loadu_si256((const __m256i *)(inb - str3));
          const __m256i inb2  = _mm256_loadu_si256((const __m256i *)(inb - str2));
          const __m256i inb1  = _mm256_loadu_si256((const __m256i *)(inb - str1));
          const __m256i inb0  = _mm256_loadu_si256((const __m256i *)(inb));
          step1a[ 0] = _mm256_add_epi16(ina0, inb0);
          step1a[ 1] = _mm256_add_epi16(ina1, inb1);
          step1a[ 2] = _mm256_add_epi16(ina2, inb2);
          step1a[ 3] = _mm256_add_epi16(ina3, inb3);
          step1b[-3] = _mm256_sub_epi16(ina3, inb3);
          step1b[-2] = _mm256_sub_epi16(ina2, inb2);
          step1b[-1] = _mm256_sub_epi16(ina1, inb1);
          step1b[-0] = _mm256_sub_epi16(ina0, inb0);
          step1a[ 0] = _mm256_slli_epi16(step1a[ 0], 2);
          step1a[ 1] = _mm256_slli_epi16(step1a[ 1], 2);
          step1a[ 2] = _mm256_slli_epi16(step1a[ 2], 2);
          step1a[ 3] = _mm256_slli_epi16(step1a[ 3], 2);
          step1b[-3] = _mm256_slli_epi16(step1b[-3], 2);
          step1b[-2] = _mm256_slli_epi16(step1b[-2], 2);
          step1b[-1] = _mm256_slli_epi16(step1b[-1], 2);
          step1b[-0] = _mm256_slli_epi16(step1b[-0], 2);
        }
        {
          const int16_t *ina =  in +  4 * str1;
          const int16_t *inb =  in + 27 * str1;
          __m256i *step1a = &step1[ 4];
          __m256i *step1b = &step1[27];
          const __m256i ina0  = _mm256_loadu_si256((const __m256i *)(ina));
          const __m256i ina1  = _mm256_loadu_si256((const __m256i *)(ina + str1));
          const __m256i ina2  = _mm256_loadu_si256((const __m256i *)(ina + str2));
          const __m256i ina3  = _mm256_loadu_si256((const __m256i *)(ina + str3));
          const __m256i inb3  = _mm256_loadu_si256((const __m256i *)(inb - str3));
          const __m256i inb2  = _mm256_loadu_si256((const __m256i *)(inb - str2));
          const __m256i inb1  = _mm256_loadu_si256((const __m256i *)(inb - str1));
          const __m256i inb0  = _mm256_loadu_si256((const __m256i *)(inb));
          step1a[ 0] = _mm256_add_epi16(ina0, inb0);
          step1a[ 1] = _mm256_add_epi16(ina1, inb1);
          step1a[ 2] = _mm256_add_epi16(ina2, inb2);
          step1a[ 3] = _mm256_add_epi16(ina3, inb3);
          step1b[-3] = _mm256_sub_epi16(ina3, inb3);
          step1b[-2] = _mm256_sub_epi16(ina2, inb2);
          step1b[-1] = _mm256_sub_epi16(ina1, inb1);
          step1b[-0] = _mm256_sub_epi16(ina0, inb0);
          step1a[ 0] = _mm256_slli_epi16(step1a[ 0], 2);
          step1a[ 1] = _mm256_slli_epi16(step1a[ 1], 2);
          step1a[ 2] = _mm256_slli_epi16(step1a[ 2], 2);
          step1a[ 3] = _mm256_slli_epi16(step1a[ 3], 2);
          step1b[-3] = _mm256_slli_epi16(step1b[-3], 2);
          step1b[-2] = _mm256_slli_epi16(step1b[-2], 2);
          step1b[-1] = _mm256_slli_epi16(step1b[-1], 2);
          step1b[-0] = _mm256_slli_epi16(step1b[-0], 2);
        }
        {
          const int16_t *ina =  in +  8 * str1;
          const int16_t *inb =  in + 23 * str1;
          __m256i *step1a = &step1[ 8];
          __m256i *step1b = &step1[23];
          const __m256i ina0  = _mm256_loadu_si256((const __m256i *)(ina));
          const __m256i ina1  = _mm256_loadu_si256((const __m256i *)(ina + str1));
          const __m256i ina2  = _mm256_loadu_si256((const __m256i *)(ina + str2));
          const __m256i ina3  = _mm256_loadu_si256((const __m256i *)(ina + str3));
          const __m256i inb3  = _mm256_loadu_si256((const __m256i *)(inb - str3));
          const __m256i inb2  = _mm256_loadu_si256((const __m256i *)(inb - str2));
          const __m256i inb1  = _mm256_loadu_si256((const __m256i *)(inb - str1));
          const __m256i inb0  = _mm256_loadu_si256((const __m256i *)(inb));
          step1a[ 0] = _mm256_add_epi16(ina0, inb0);
          step1a[ 1] = _mm256_add_epi16(ina1, inb1);
          step1a[ 2] = _mm256_add_epi16(ina2, inb2);
          step1a[ 3] = _mm256_add_epi16(ina3, inb3);
          step1b[-3] = _mm256_sub_epi16(ina3, inb3);
          step1b[-2] = _mm256_sub_epi16(ina2, inb2);
          step1b[-1] = _mm256_sub_epi16(ina1, inb1);
          step1b[-0] = _mm256_sub_epi16(ina0, inb0);
          step1a[ 0] = _mm256_slli_epi16(step1a[ 0], 2);
          step1a[ 1] = _mm256_slli_epi16(step1a[ 1], 2);
          step1a[ 2] = _mm256_slli_epi16(step1a[ 2], 2);
          step1a[ 3] = _mm256_slli_epi16(step1a[ 3], 2);
          step1b[-3] = _mm256_slli_epi16(step1b[-3], 2);
          step1b[-2] = _mm256_slli_epi16(step1b[-2], 2);
          step1b[-1] = _mm256_slli_epi16(step1b[-1], 2);
          step1b[-0] = _mm256_slli_epi16(step1b[-0], 2);
        }
        {
          const int16_t *ina =  in + 12 * str1;
          const int16_t *inb =  in + 19 * str1;
          __m256i *step1a = &step1[12];
          __m256i *step1b = &step1[19];
          const __m256i ina0  = _mm256_loadu_si256((const __m256i *)(ina));
          const __m256i ina1  = _mm256_loadu_si256((const __m256i *)(ina + str1));
          const __m256i ina2  = _mm256_loadu_si256((const __m256i *)(ina + str2));
          const __m256i ina3  = _mm256_loadu_si256((const __m256i *)(ina + str3));
          const __m256i inb3  = _mm256_loadu_si256((const __m256i *)(inb - str3));
          const __m256i inb2  = _mm256_loadu_si256((const __m256i *)(inb - str2));
          const __m256i inb1  = _mm256_loadu_si256((const __m256i *)(inb - str1));
          const __m256i inb0  = _mm256_loadu_si256((const __m256i *)(inb));
          step1a[ 0] = _mm256_add_epi16(ina0, inb0);
          step1a[ 1] = _mm256_add_epi16(ina1, inb1);
          step1a[ 2] = _mm256_add_epi16(ina2, inb2);
          step1a[ 3] = _mm256_add_epi16(ina3, inb3);
          step1b[-3] = _mm256_sub_epi16(ina3, inb3);
          step1b[-2] = _mm256_sub_epi16(ina2, inb2);
          step1b[-1] = _mm256_sub_epi16(ina1, inb1);
          step1b[-0] = _mm256_sub_epi16(ina0, inb0);
          step1a[ 0] = _mm256_slli_epi16(step1a[ 0], 2);
          step1a[ 1] = _mm256_slli_epi16(step1a[ 1], 2);
          step1a[ 2] = _mm256_slli_epi16(step1a[ 2], 2);
          step1a[ 3] = _mm256_slli_epi16(step1a[ 3], 2);
          step1b[-3] = _mm256_slli_epi16(step1b[-3], 2);
          step1b[-2] = _mm256_slli_epi16(step1b[-2], 2);
          step1b[-1] = _mm256_slli_epi16(step1b[-1], 2);
          step1b[-0] = _mm256_slli_epi16(step1b[-0], 2);
        }
      } else {
        int16_t *in = &intermediate[column_start];
        // step1[i] =  in[ 0 * 32] + in[(32 -  1) * 32];
        // Note: using the same approach as above to have common offset is
        //       counter-productive as all offsets can be calculated at compile
        //       time.
        // Note: the next four blocks could be in a loop. That would help the
        //       instruction cache but is actually slower.
        {
          __m256i in00  = _mm256_loadu_si256((const __m256i *)(in +  0 * 32));
          __m256i in01  = _mm256_loadu_si256((const __m256i *)(in +  1 * 32));
          __m256i in02  = _mm256_loadu_si256((const __m256i *)(in +  2 * 32));
          __m256i in03  = _mm256_loadu_si256((const __m256i *)(in +  3 * 32));
          __m256i in28  = _mm256_loadu_si256((const __m256i *)(in + 28 * 32));
          __m256i in29  = _mm256_loadu_si256((const __m256i *)(in + 29 * 32));
          __m256i in30  = _mm256_loadu_si256((const __m256i *)(in + 30 * 32));
          __m256i in31  = _mm256_loadu_si256((const __m256i *)(in + 31 * 32));
          step1[ 0] = _mm256_add_epi16(in00, in31);
          step1[ 1] = _mm256_add_epi16(in01, in30);
          step1[ 2] = _mm256_add_epi16(in02, in29);
          step1[ 3] = _mm256_add_epi16(in03, in28);
          step1[28] = _mm256_sub_epi16(in03, in28);
          step1[29] = _mm256_sub_epi16(in02, in29);
          step1[30] = _mm256_sub_epi16(in01, in30);
          step1[31] = _mm256_sub_epi16(in00, in31);
        }
        {
          __m256i in04  = _mm256_loadu_si256((const __m256i *)(in +  4 * 32));
          __m256i in05  = _mm256_loadu_si256((const __m256i *)(in +  5 * 32));
          __m256i in06  = _mm256_loadu_si256((const __m256i *)(in +  6 * 32));
          __m256i in07  = _mm256_loadu_si256((const __m256i *)(in +  7 * 32));
          __m256i in24  = _mm256_loadu_si256((const __m256i *)(in + 24 * 32));
          __m256i in25  = _mm256_loadu_si256((const __m256i *)(in + 25 * 32));
          __m256i in26  = _mm256_loadu_si256((const __m256i *)(in + 26 * 32));
          __m256i in27  = _mm256_loadu_si256((const __m256i *)(in + 27 * 32));
          step1[ 4] = _mm256_add_epi16(in04, in27);
          step1[ 5] = _mm256_add_epi16(in05, in26);
          step1[ 6] = _mm256_add_epi16(in06, in25);
          step1[ 7] = _mm256_add_epi16(in07, in24);
          step1[24] = _mm256_sub_epi16(in07, in24);
          step1[25] = _mm256_sub_epi16(in06, in25);
          step1[26] = _mm256_sub_epi16(in05, in26);
          step1[27] = _mm256_sub_epi16(in04, in27);
        }
        {
          __m256i in08  = _mm256_loadu_si256((const __m256i *)(in +  8 * 32));
          __m256i in09  = _mm256_loadu_si256((const __m256i *)(in +  9 * 32));
          __m256i in10  = _mm256_loadu_si256((const __m256i *)(in + 10 * 32));
          __m256i in11  = _mm256_loadu_si256((const __m256i *)(in + 11 * 32));
          __m256i in20  = _mm256_loadu_si256((const __m256i *)(in + 20 * 32));
          __m256i in21  = _mm256_loadu_si256((const __m256i *)(in + 21 * 32));
          __m256i in22  = _mm256_loadu_si256((const __m256i *)(in + 22 * 32));
          __m256i in23  = _mm256_loadu_si256((const __m256i *)(in + 23 * 32));
          step1[ 8] = _mm256_add_epi16(in08, in23);
          step1[ 9] = _mm256_add_epi16(in09, in22);
          step1[10] = _mm256_add_epi16(in10, in21);
          step1[11] = _mm256_add_epi16(in11, in20);
          step1[20] = _mm256_sub_epi16(in11, in20);
          step1[21] = _mm256_sub_epi16(in10, in21);
          step1[22] = _mm256_sub_epi16(in09, in22);
          step1[23] = _mm256_sub_epi16(in08, in23);
        }
        {
          __m256i in12  = _mm256_loadu_si256((const __m256i *)(in + 12 * 32));
          __m256i in13  = _mm256_loadu_si256((const __m256i *)(in + 13 * 32));
          __m256i in14  = _mm256_loadu_si256((const __m256i *)(in + 14 * 32));
          __m256i in15  = _mm256_loadu_si256((const __m256i *)(in + 15 * 32));
          __m256i in16  = _mm256_loadu_si256((const __m256i *)(in + 16 * 32));
          __m256i in17  = _mm256_loadu_si256((const __m256i *)(in + 17 * 32));
          __m256i in18  = _mm256_loadu_si256((const __m256i *)(in + 18 * 32));
          __m256i in19  = _mm256_loadu_si256((const __m256i *)(in + 19 * 32));
          step1[12] = _mm256_add_epi16(in12, in19);
          step1[13] = _mm256_add_epi16(in13, in18);
          step1[14] = _mm256_add_epi16(in14, in17);
          step1[15] = _mm256_add_epi16(in15, in16);
          step1[16] = _mm256_sub_epi16(in15, in16);
          step1[17] = _mm256_sub_epi16(in14, in17);
          step1[18] = _mm256_sub_epi16(in13, in18);
          step1[19] = _mm256_sub_epi16(in12, in19);
        }
      }
      // Stage 2
      {
        step2[ 0] = _mm256_add_epi16(step1[0], step1[15]);
        step2[ 1] = _mm256_add_epi16(step1[1], step1[14]);
        step2[ 2] = _mm256_add_epi16(step1[2], step1[13]);
        step2[ 3] = _mm256_add_epi16(step1[3], step1[12]);
        step2[ 4] = _mm256_add_epi16(step1[4], step1[11]);
        step2[ 5] = _mm256_add_epi16(step1[5], step1[10]);
        step2[ 6] = _mm256_add_epi16(step1[6], step1[ 9]);
        step2[ 7] = _mm256_add_epi16(step1[7], step1[ 8]);
        step2[ 8] = _mm256_sub_epi16(step1[7], step1[ 8]);
        step2[ 9] = _mm256_sub_epi16(step1[6], step1[ 9]);
        step2[10] = _mm256_sub_epi16(step1[5], step1[10]);
        step2[11] = _mm256_sub_epi16(step1[4], step1[11]);
        step2[12] = _mm256_sub_epi16(step1[3], step1[12]);
        step2[13] = _mm256_sub_epi16(step1[2], step1[13]);
        step2[14] = _mm256_sub_epi16(step1[1], step1[14]);
        step2[15] = _mm256_sub_epi16(step1[0], step1[15]);
      }
      {
        const __m256i s2_20_0 = _mm256_unpacklo_epi16(step1[27], step1[20]);
        const __m256i s2_20_1 = _mm256_unpackhi_epi16(step1[27], step1[20]);
        const __m256i s2_21_0 = _mm256_unpacklo_epi16(step1[26], step1[21]);
        const __m256i s2_21_1 = _mm256_unpackhi_epi16(step1[26], step1[21]);
        const __m256i s2_22_0 = _mm256_unpacklo_epi16(step1[25], step1[22]);
        const __m256i s2_22_1 = _mm256_unpackhi_epi16(step1[25], step1[22]);
        const __m256i s2_23_0 = _mm256_unpacklo_epi16(step1[24], step1[23]);
        const __m256i s2_23_1 = _mm256_unpackhi_epi16(step1[24], step1[23]);
        const __m256i s2_20_2 = _mm256_madd_epi16(s2_20_0, k__cospi_p16_m16);
        const __m256i s2_20_3 = _mm256_madd_epi16(s2_20_1, k__cospi_p16_m16);
        const __m256i s2_21_2 = _mm256_madd_epi16(s2_21_0, k__cospi_p16_m16);
        const __m256i s2_21_3 = _mm256_madd_epi16(s2_21_1, k__cospi_p16_m16);
        const __m256i s2_22_2 = _mm256_madd_epi16(s2_22_0, k__cospi_p16_m16);
        const __m256i s2_22_3 = _mm256_madd_epi16(s2_22_1, k__cospi_p16_m16);
        const __m256i s2_23_2 = _mm256_madd_epi16(s2_23_0, k__cospi_p16_m16);
        const __m256i s2_23_3 = _mm256_madd_epi16(s2_23_1, k__cospi_p16_m16);
        const __m256i s2_24_2 = _mm256_madd_epi16(s2_23_0, k__cospi_p16_p16);
        const __m256i s2_24_3 = _mm256_madd_epi16(s2_23_1, k__cospi_p16_p16);
        const __m256i s2_25_2 = _mm256_madd_epi16(s2_22_0, k__cospi_p16_p16);
        const __m256i s2_25_3 = _mm256_madd_epi16(s2_22_1, k__cospi_p16_p16);
        const __m256i s2_26_2 = _mm256_madd_epi16(s2_21_0, k__cospi_p16_p16);
        const __m256i s2_26_3 = _mm256_madd_epi16(s2_21_1, k__cospi_p16_p16);
        const __m256i s2_27_2 = _mm256_madd_epi16(s2_20_0, k__cospi_p16_p16);
        const __m256i s2_27_3 = _mm256_madd_epi16(s2_20_1, k__cospi_p16_p16);
        // dct_const_round_shift
        const __m256i s2_20_4 = _mm256_add_epi32(s2_20_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_20_5 = _mm256_add_epi32(s2_20_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_21_4 = _mm256_add_epi32(s2_21_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_21_5 = _mm256_add_epi32(s2_21_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_22_4 = _mm256_add_epi32(s2_22_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_22_5 = _mm256_add_epi32(s2_22_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_23_4 = _mm256_add_epi32(s2_23_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_23_5 = _mm256_add_epi32(s2_23_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_24_4 = _mm256_add_epi32(s2_24_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_24_5 = _mm256_add_epi32(s2_24_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_25_4 = _mm256_add_epi32(s2_25_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_25_5 = _mm256_add_epi32(s2_25_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_26_4 = _mm256_add_epi32(s2_26_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_26_5 = _mm256_add_epi32(s2_26_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_27_4 = _mm256_add_epi32(s2_27_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_27_5 = _mm256_add_epi32(s2_27_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_20_6 = _mm256_srai_epi32(s2_20_4, DCT_CONST_BITS);
        const __m256i s2_20_7 = _mm256_srai_epi32(s2_20_5, DCT_CONST_BITS);
        const __m256i s2_21_6 = _mm256_srai_epi32(s2_21_4, DCT_CONST_BITS);
        const __m256i s2_21_7 = _mm256_srai_epi32(s2_21_5, DCT_CONST_BITS);
        const __m256i s2_22_6 = _mm256_srai_epi32(s2_22_4, DCT_CONST_BITS);
        const __m256i s2_22_7 = _mm256_srai_epi32(s2_22_5, DCT_CONST_BITS);
        const __m256i s2_23_6 = _mm256_srai_epi32(s2_23_4, DCT_CONST_BITS);
        const __m256i s2_23_7 = _mm256_srai_epi32(s2_23_5, DCT_CONST_BITS);
        const __m256i s2_24_6 = _mm256_srai_epi32(s2_24_4, DCT_CONST_BITS);
        const __m256i s2_24_7 = _mm256_srai_epi32(s2_24_5, DCT_CONST_BITS);
        const __m256i s2_25_6 = _mm256_srai_epi32(s2_25_4, DCT_CONST_BITS);
        const __m256i s2_25_7 = _mm256_srai_epi32(s2_25_5, DCT_CONST_BITS);
        const __m256i s2_26_6 = _mm256_srai_epi32(s2_26_4, DCT_CONST_BITS);
        const __m256i s2_26_7 = _mm256_srai_epi32(s2_26_5, DCT_CONST_BITS);
        const __m256i s2_27_6 = _mm256_srai_epi32(s2_27_4, DCT_CONST_BITS);
        const __m256i s2_27_7 = _mm256_srai_epi32(s2_27_5, DCT_CONST_BITS);
        // Combine
        step2[20] = _mm256_packs_epi32(s2_20_6, s2_20_7);
        step2[21] = _mm256_packs_epi32(s2_21_6, s2_21_7);
        step2[22] = _mm256_packs_epi32(s2_22_6, s2_22_7);
        step2[23] = _mm256_packs_epi32(s2_23_6, s2_23_7);
        step2[24] = _mm256_packs_epi32(s2_24_6, s2_24_7);
        step2[25] = _mm256_packs_epi32(s2_25_6, s2_25_7);
        step2[26] = _mm256_packs_epi32(s2_26_6, s2_26_7);
        step2[27] = _mm256_packs_epi32(s2_27_6, s2_27_7);
      }

#if !FDCT32x32_HIGH_PRECISION
      // dump the magnitude by half, hence the intermediate values are within
      // the range of 16 bits.
      if (1 == pass) {
        __m256i s3_00_0 = _mm256_cmpgt_epi16(kZero,step2[ 0]);
        __m256i s3_01_0 = _mm256_cmpgt_epi16(kZero,step2[ 1]);
        __m256i s3_02_0 = _mm256_cmpgt_epi16(kZero,step2[ 2]);
        __m256i s3_03_0 = _mm256_cmpgt_epi16(kZero,step2[ 3]);
        __m256i s3_04_0 = _mm256_cmpgt_epi16(kZero,step2[ 4]);
        __m256i s3_05_0 = _mm256_cmpgt_epi16(kZero,step2[ 5]);
        __m256i s3_06_0 = _mm256_cmpgt_epi16(kZero,step2[ 6]);
        __m256i s3_07_0 = _mm256_cmpgt_epi16(kZero,step2[ 7]);
        __m256i s2_08_0 = _mm256_cmpgt_epi16(kZero,step2[ 8]);
        __m256i s2_09_0 = _mm256_cmpgt_epi16(kZero,step2[ 9]);
        __m256i s3_10_0 = _mm256_cmpgt_epi16(kZero,step2[10]);
        __m256i s3_11_0 = _mm256_cmpgt_epi16(kZero,step2[11]);
        __m256i s3_12_0 = _mm256_cmpgt_epi16(kZero,step2[12]);
        __m256i s3_13_0 = _mm256_cmpgt_epi16(kZero,step2[13]);
        __m256i s2_14_0 = _mm256_cmpgt_epi16(kZero,step2[14]);
        __m256i s2_15_0 = _mm256_cmpgt_epi16(kZero,step2[15]);
        __m256i s3_16_0 = _mm256_cmpgt_epi16(kZero,step1[16]);
        __m256i s3_17_0 = _mm256_cmpgt_epi16(kZero,step1[17]);
        __m256i s3_18_0 = _mm256_cmpgt_epi16(kZero,step1[18]);
        __m256i s3_19_0 = _mm256_cmpgt_epi16(kZero,step1[19]);
        __m256i s3_20_0 = _mm256_cmpgt_epi16(kZero,step2[20]);
        __m256i s3_21_0 = _mm256_cmpgt_epi16(kZero,step2[21]);
        __m256i s3_22_0 = _mm256_cmpgt_epi16(kZero,step2[22]);
        __m256i s3_23_0 = _mm256_cmpgt_epi16(kZero,step2[23]);
        __m256i s3_24_0 = _mm256_cmpgt_epi16(kZero,step2[24]);
        __m256i s3_25_0 = _mm256_cmpgt_epi16(kZero,step2[25]);
        __m256i s3_26_0 = _mm256_cmpgt_epi16(kZero,step2[26]);
        __m256i s3_27_0 = _mm256_cmpgt_epi16(kZero,step2[27]);
        __m256i s3_28_0 = _mm256_cmpgt_epi16(kZero,step1[28]);
        __m256i s3_29_0 = _mm256_cmpgt_epi16(kZero,step1[29]);
        __m256i s3_30_0 = _mm256_cmpgt_epi16(kZero,step1[30]);
        __m256i s3_31_0 = _mm256_cmpgt_epi16(kZero,step1[31]);

        step2[ 0] = _mm256_sub_epi16(step2[ 0], s3_00_0);
        step2[ 1] = _mm256_sub_epi16(step2[ 1], s3_01_0);
        step2[ 2] = _mm256_sub_epi16(step2[ 2], s3_02_0);
        step2[ 3] = _mm256_sub_epi16(step2[ 3], s3_03_0);
        step2[ 4] = _mm256_sub_epi16(step2[ 4], s3_04_0);
        step2[ 5] = _mm256_sub_epi16(step2[ 5], s3_05_0);
        step2[ 6] = _mm256_sub_epi16(step2[ 6], s3_06_0);
        step2[ 7] = _mm256_sub_epi16(step2[ 7], s3_07_0);
        step2[ 8] = _mm256_sub_epi16(step2[ 8], s2_08_0);
        step2[ 9] = _mm256_sub_epi16(step2[ 9], s2_09_0);
        step2[10] = _mm256_sub_epi16(step2[10], s3_10_0);
        step2[11] = _mm256_sub_epi16(step2[11], s3_11_0);
        step2[12] = _mm256_sub_epi16(step2[12], s3_12_0);
        step2[13] = _mm256_sub_epi16(step2[13], s3_13_0);
        step2[14] = _mm256_sub_epi16(step2[14], s2_14_0);
        step2[15] = _mm256_sub_epi16(step2[15], s2_15_0);
        step1[16] = _mm256_sub_epi16(step1[16], s3_16_0);
        step1[17] = _mm256_sub_epi16(step1[17], s3_17_0);
        step1[18] = _mm256_sub_epi16(step1[18], s3_18_0);
        step1[19] = _mm256_sub_epi16(step1[19], s3_19_0);
        step2[20] = _mm256_sub_epi16(step2[20], s3_20_0);
        step2[21] = _mm256_sub_epi16(step2[21], s3_21_0);
        step2[22] = _mm256_sub_epi16(step2[22], s3_22_0);
        step2[23] = _mm256_sub_epi16(step2[23], s3_23_0);
        step2[24] = _mm256_sub_epi16(step2[24], s3_24_0);
        step2[25] = _mm256_sub_epi16(step2[25], s3_25_0);
        step2[26] = _mm256_sub_epi16(step2[26], s3_26_0);
        step2[27] = _mm256_sub_epi16(step2[27], s3_27_0);
        step1[28] = _mm256_sub_epi16(step1[28], s3_28_0);
        step1[29] = _mm256_sub_epi16(step1[29], s3_29_0);
        step1[30] = _mm256_sub_epi16(step1[30], s3_30_0);
        step1[31] = _mm256_sub_epi16(step1[31], s3_31_0);

        step2[ 0] = _mm256_add_epi16(step2[ 0], kOne);
        step2[ 1] = _mm256_add_epi16(step2[ 1], kOne);
        step2[ 2] = _mm256_add_epi16(step2[ 2], kOne);
        step2[ 3] = _mm256_add_epi16(step2[ 3], kOne);
        step2[ 4] = _mm256_add_epi16(step2[ 4], kOne);
        step2[ 5] = _mm256_add_epi16(step2[ 5], kOne);
        step2[ 6] = _mm256_add_epi16(step2[ 6], kOne);
        step2[ 7] = _mm256_add_epi16(step2[ 7], kOne);
        step2[ 8] = _mm256_add_epi16(step2[ 8], kOne);
        step2[ 9] = _mm256_add_epi16(step2[ 9], kOne);
        step2[10] = _mm256_add_epi16(step2[10], kOne);
        step2[11] = _mm256_add_epi16(step2[11], kOne);
        step2[12] = _mm256_add_epi16(step2[12], kOne);
        step2[13] = _mm256_add_epi16(step2[13], kOne);
        step2[14] = _mm256_add_epi16(step2[14], kOne);
        step2[15] = _mm256_add_epi16(step2[15], kOne);
        step1[16] = _mm256_add_epi16(step1[16], kOne);
        step1[17] = _mm256_add_epi16(step1[17], kOne);
        step1[18] = _mm256_add_epi16(step1[18], kOne);
        step1[19] = _mm256_add_epi16(step1[19], kOne);
        step2[20] = _mm256_add_epi16(step2[20], kOne);
        step2[21] = _mm256_add_epi16(step2[21], kOne);
        step2[22] = _mm256_add_epi16(step2[22], kOne);
        step2[23] = _mm256_add_epi16(step2[23], kOne);
        step2[24] = _mm256_add_epi16(step2[24], kOne);
        step2[25] = _mm256_add_epi16(step2[25], kOne);
        step2[26] = _mm256_add_epi16(step2[26], kOne);
        step2[27] = _mm256_add_epi16(step2[27], kOne);
        step1[28] = _mm256_add_epi16(step1[28], kOne);
        step1[29] = _mm256_add_epi16(step1[29], kOne);
        step1[30] = _mm256_add_epi16(step1[30], kOne);
        step1[31] = _mm256_add_epi16(step1[31], kOne);

        step2[ 0] = _mm256_srai_epi16(step2[ 0], 2);
        step2[ 1] = _mm256_srai_epi16(step2[ 1], 2);
        step2[ 2] = _mm256_srai_epi16(step2[ 2], 2);
        step2[ 3] = _mm256_srai_epi16(step2[ 3], 2);
        step2[ 4] = _mm256_srai_epi16(step2[ 4], 2);
        step2[ 5] = _mm256_srai_epi16(step2[ 5], 2);
        step2[ 6] = _mm256_srai_epi16(step2[ 6], 2);
        step2[ 7] = _mm256_srai_epi16(step2[ 7], 2);
        step2[ 8] = _mm256_srai_epi16(step2[ 8], 2);
        step2[ 9] = _mm256_srai_epi16(step2[ 9], 2);
        step2[10] = _mm256_srai_epi16(step2[10], 2);
        step2[11] = _mm256_srai_epi16(step2[11], 2);
        step2[12] = _mm256_srai_epi16(step2[12], 2);
        step2[13] = _mm256_srai_epi16(step2[13], 2);
        step2[14] = _mm256_srai_epi16(step2[14], 2);
        step2[15] = _mm256_srai_epi16(step2[15], 2);
        step1[16] = _mm256_srai_epi16(step1[16], 2);
        step1[17] = _mm256_srai_epi16(step1[17], 2);
        step1[18] = _mm256_srai_epi16(step1[18], 2);
        step1[19] = _mm256_srai_epi16(step1[19], 2);
        step2[20] = _mm256_srai_epi16(step2[20], 2);
        step2[21] = _mm256_srai_epi16(step2[21], 2);
        step2[22] = _mm256_srai_epi16(step2[22], 2);
        step2[23] = _mm256_srai_epi16(step2[23], 2);
        step2[24] = _mm256_srai_epi16(step2[24], 2);
        step2[25] = _mm256_srai_epi16(step2[25], 2);
        step2[26] = _mm256_srai_epi16(step2[26], 2);
        step2[27] = _mm256_srai_epi16(step2[27], 2);
        step1[28] = _mm256_srai_epi16(step1[28], 2);
        step1[29] = _mm256_srai_epi16(step1[29], 2);
        step1[30] = _mm256_srai_epi16(step1[30], 2);
        step1[31] = _mm256_srai_epi16(step1[31], 2);
      }
#endif

#if FDCT32x32_HIGH_PRECISION
      if (pass == 0) {
#endif
      // Stage 3
      {
        step3[0] = _mm256_add_epi16(step2[(8 - 1)], step2[0]);
        step3[1] = _mm256_add_epi16(step2[(8 - 2)], step2[1]);
        step3[2] = _mm256_add_epi16(step2[(8 - 3)], step2[2]);
        step3[3] = _mm256_add_epi16(step2[(8 - 4)], step2[3]);
        step3[4] = _mm256_sub_epi16(step2[(8 - 5)], step2[4]);
        step3[5] = _mm256_sub_epi16(step2[(8 - 6)], step2[5]);
        step3[6] = _mm256_sub_epi16(step2[(8 - 7)], step2[6]);
        step3[7] = _mm256_sub_epi16(step2[(8 - 8)], step2[7]);
      }
      {
        const __m256i s3_10_0 = _mm256_unpacklo_epi16(step2[13], step2[10]);
        const __m256i s3_10_1 = _mm256_unpackhi_epi16(step2[13], step2[10]);
        const __m256i s3_11_0 = _mm256_unpacklo_epi16(step2[12], step2[11]);
        const __m256i s3_11_1 = _mm256_unpackhi_epi16(step2[12], step2[11]);
        const __m256i s3_10_2 = _mm256_madd_epi16(s3_10_0, k__cospi_p16_m16);
        const __m256i s3_10_3 = _mm256_madd_epi16(s3_10_1, k__cospi_p16_m16);
        const __m256i s3_11_2 = _mm256_madd_epi16(s3_11_0, k__cospi_p16_m16);
        const __m256i s3_11_3 = _mm256_madd_epi16(s3_11_1, k__cospi_p16_m16);
        const __m256i s3_12_2 = _mm256_madd_epi16(s3_11_0, k__cospi_p16_p16);
        const __m256i s3_12_3 = _mm256_madd_epi16(s3_11_1, k__cospi_p16_p16);
        const __m256i s3_13_2 = _mm256_madd_epi16(s3_10_0, k__cospi_p16_p16);
        const __m256i s3_13_3 = _mm256_madd_epi16(s3_10_1, k__cospi_p16_p16);
        // dct_const_round_shift
        const __m256i s3_10_4 = _mm256_add_epi32(s3_10_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_10_5 = _mm256_add_epi32(s3_10_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_11_4 = _mm256_add_epi32(s3_11_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_11_5 = _mm256_add_epi32(s3_11_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_12_4 = _mm256_add_epi32(s3_12_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_12_5 = _mm256_add_epi32(s3_12_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_13_4 = _mm256_add_epi32(s3_13_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_13_5 = _mm256_add_epi32(s3_13_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_10_6 = _mm256_srai_epi32(s3_10_4, DCT_CONST_BITS);
        const __m256i s3_10_7 = _mm256_srai_epi32(s3_10_5, DCT_CONST_BITS);
        const __m256i s3_11_6 = _mm256_srai_epi32(s3_11_4, DCT_CONST_BITS);
        const __m256i s3_11_7 = _mm256_srai_epi32(s3_11_5, DCT_CONST_BITS);
        const __m256i s3_12_6 = _mm256_srai_epi32(s3_12_4, DCT_CONST_BITS);
        const __m256i s3_12_7 = _mm256_srai_epi32(s3_12_5, DCT_CONST_BITS);
        const __m256i s3_13_6 = _mm256_srai_epi32(s3_13_4, DCT_CONST_BITS);
        const __m256i s3_13_7 = _mm256_srai_epi32(s3_13_5, DCT_CONST_BITS);
        // Combine
        step3[10] = _mm256_packs_epi32(s3_10_6, s3_10_7);
        step3[11] = _mm256_packs_epi32(s3_11_6, s3_11_7);
        step3[12] = _mm256_packs_epi32(s3_12_6, s3_12_7);
        step3[13] = _mm256_packs_epi32(s3_13_6, s3_13_7);
      }
      {
        step3[16] = _mm256_add_epi16(step2[23], step1[16]);
        step3[17] = _mm256_add_epi16(step2[22], step1[17]);
        step3[18] = _mm256_add_epi16(step2[21], step1[18]);
        step3[19] = _mm256_add_epi16(step2[20], step1[19]);
        step3[20] = _mm256_sub_epi16(step1[19], step2[20]);
        step3[21] = _mm256_sub_epi16(step1[18], step2[21]);
        step3[22] = _mm256_sub_epi16(step1[17], step2[22]);
        step3[23] = _mm256_sub_epi16(step1[16], step2[23]);
        step3[24] = _mm256_sub_epi16(step1[31], step2[24]);
        step3[25] = _mm256_sub_epi16(step1[30], step2[25]);
        step3[26] = _mm256_sub_epi16(step1[29], step2[26]);
        step3[27] = _mm256_sub_epi16(step1[28], step2[27]);
        step3[28] = _mm256_add_epi16(step2[27], step1[28]);
        step3[29] = _mm256_add_epi16(step2[26], step1[29]);
        step3[30] = _mm256_add_epi16(step2[25], step1[30]);
        step3[31] = _mm256_add_epi16(step2[24], step1[31]);
      }

      // Stage 4
      {
        step1[ 0] = _mm256_add_epi16(step3[ 3], step3[ 0]);
        step1[ 1] = _mm256_add_epi16(step3[ 2], step3[ 1]);
        step1[ 2] = _mm256_sub_epi16(step3[ 1], step3[ 2]);
        step1[ 3] = _mm256_sub_epi16(step3[ 0], step3[ 3]);
        step1[ 8] = _mm256_add_epi16(step3[11], step2[ 8]);
        step1[ 9] = _mm256_add_epi16(step3[10], step2[ 9]);
        step1[10] = _mm256_sub_epi16(step2[ 9], step3[10]);
        step1[11] = _mm256_sub_epi16(step2[ 8], step3[11]);
        step1[12] = _mm256_sub_epi16(step2[15], step3[12]);
        step1[13] = _mm256_sub_epi16(step2[14], step3[13]);
        step1[14] = _mm256_add_epi16(step3[13], step2[14]);
        step1[15] = _mm256_add_epi16(step3[12], step2[15]);
      }
      {
        const __m256i s1_05_0 = _mm256_unpacklo_epi16(step3[6], step3[5]);
        const __m256i s1_05_1 = _mm256_unpackhi_epi16(step3[6], step3[5]);
        const __m256i s1_05_2 = _mm256_madd_epi16(s1_05_0, k__cospi_p16_m16);
        const __m256i s1_05_3 = _mm256_madd_epi16(s1_05_1, k__cospi_p16_m16);
        const __m256i s1_06_2 = _mm256_madd_epi16(s1_05_0, k__cospi_p16_p16);
        const __m256i s1_06_3 = _mm256_madd_epi16(s1_05_1, k__cospi_p16_p16);
        // dct_const_round_shift
        const __m256i s1_05_4 = _mm256_add_epi32(s1_05_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_05_5 = _mm256_add_epi32(s1_05_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_06_4 = _mm256_add_epi32(s1_06_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_06_5 = _mm256_add_epi32(s1_06_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_05_6 = _mm256_srai_epi32(s1_05_4, DCT_CONST_BITS);
        const __m256i s1_05_7 = _mm256_srai_epi32(s1_05_5, DCT_CONST_BITS);
        const __m256i s1_06_6 = _mm256_srai_epi32(s1_06_4, DCT_CONST_BITS);
        const __m256i s1_06_7 = _mm256_srai_epi32(s1_06_5, DCT_CONST_BITS);
        // Combine
        step1[5] = _mm256_packs_epi32(s1_05_6, s1_05_7);
        step1[6] = _mm256_packs_epi32(s1_06_6, s1_06_7);
      }
      {
        const __m256i s1_18_0 = _mm256_unpacklo_epi16(step3[18], step3[29]);
        const __m256i s1_18_1 = _mm256_unpackhi_epi16(step3[18], step3[29]);
        const __m256i s1_19_0 = _mm256_unpacklo_epi16(step3[19], step3[28]);
        const __m256i s1_19_1 = _mm256_unpackhi_epi16(step3[19], step3[28]);
        const __m256i s1_20_0 = _mm256_unpacklo_epi16(step3[20], step3[27]);
        const __m256i s1_20_1 = _mm256_unpackhi_epi16(step3[20], step3[27]);
        const __m256i s1_21_0 = _mm256_unpacklo_epi16(step3[21], step3[26]);
        const __m256i s1_21_1 = _mm256_unpackhi_epi16(step3[21], step3[26]);
        const __m256i s1_18_2 = _mm256_madd_epi16(s1_18_0, k__cospi_m08_p24);
        const __m256i s1_18_3 = _mm256_madd_epi16(s1_18_1, k__cospi_m08_p24);
        const __m256i s1_19_2 = _mm256_madd_epi16(s1_19_0, k__cospi_m08_p24);
        const __m256i s1_19_3 = _mm256_madd_epi16(s1_19_1, k__cospi_m08_p24);
        const __m256i s1_20_2 = _mm256_madd_epi16(s1_20_0, k__cospi_m24_m08);
        const __m256i s1_20_3 = _mm256_madd_epi16(s1_20_1, k__cospi_m24_m08);
        const __m256i s1_21_2 = _mm256_madd_epi16(s1_21_0, k__cospi_m24_m08);
        const __m256i s1_21_3 = _mm256_madd_epi16(s1_21_1, k__cospi_m24_m08);
        const __m256i s1_26_2 = _mm256_madd_epi16(s1_21_0, k__cospi_m08_p24);
        const __m256i s1_26_3 = _mm256_madd_epi16(s1_21_1, k__cospi_m08_p24);
        const __m256i s1_27_2 = _mm256_madd_epi16(s1_20_0, k__cospi_m08_p24);
        const __m256i s1_27_3 = _mm256_madd_epi16(s1_20_1, k__cospi_m08_p24);
        const __m256i s1_28_2 = _mm256_madd_epi16(s1_19_0, k__cospi_p24_p08);
        const __m256i s1_28_3 = _mm256_madd_epi16(s1_19_1, k__cospi_p24_p08);
        const __m256i s1_29_2 = _mm256_madd_epi16(s1_18_0, k__cospi_p24_p08);
        const __m256i s1_29_3 = _mm256_madd_epi16(s1_18_1, k__cospi_p24_p08);
        // dct_const_round_shift
        const __m256i s1_18_4 = _mm256_add_epi32(s1_18_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_18_5 = _mm256_add_epi32(s1_18_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_19_4 = _mm256_add_epi32(s1_19_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_19_5 = _mm256_add_epi32(s1_19_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_20_4 = _mm256_add_epi32(s1_20_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_20_5 = _mm256_add_epi32(s1_20_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_21_4 = _mm256_add_epi32(s1_21_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_21_5 = _mm256_add_epi32(s1_21_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_26_4 = _mm256_add_epi32(s1_26_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_26_5 = _mm256_add_epi32(s1_26_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_27_4 = _mm256_add_epi32(s1_27_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_27_5 = _mm256_add_epi32(s1_27_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_28_4 = _mm256_add_epi32(s1_28_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_28_5 = _mm256_add_epi32(s1_28_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_29_4 = _mm256_add_epi32(s1_29_2, k__DCT_CONST_ROUNDING);
        const __m256i s1_29_5 = _mm256_add_epi32(s1_29_3, k__DCT_CONST_ROUNDING);
        const __m256i s1_18_6 = _mm256_srai_epi32(s1_18_4, DCT_CONST_BITS);
        const __m256i s1_18_7 = _mm256_srai_epi32(s1_18_5, DCT_CONST_BITS);
        const __m256i s1_19_6 = _mm256_srai_epi32(s1_19_4, DCT_CONST_BITS);
        const __m256i s1_19_7 = _mm256_srai_epi32(s1_19_5, DCT_CONST_BITS);
        const __m256i s1_20_6 = _mm256_srai_epi32(s1_20_4, DCT_CONST_BITS);
        const __m256i s1_20_7 = _mm256_srai_epi32(s1_20_5, DCT_CONST_BITS);
        const __m256i s1_21_6 = _mm256_srai_epi32(s1_21_4, DCT_CONST_BITS);
        const __m256i s1_21_7 = _mm256_srai_epi32(s1_21_5, DCT_CONST_BITS);
        const __m256i s1_26_6 = _mm256_srai_epi32(s1_26_4, DCT_CONST_BITS);
        const __m256i s1_26_7 = _mm256_srai_epi32(s1_26_5, DCT_CONST_BITS);
        const __m256i s1_27_6 = _mm256_srai_epi32(s1_27_4, DCT_CONST_BITS);
        const __m256i s1_27_7 = _mm256_srai_epi32(s1_27_5, DCT_CONST_BITS);
        const __m256i s1_28_6 = _mm256_srai_epi32(s1_28_4, DCT_CONST_BITS);
        const __m256i s1_28_7 = _mm256_srai_epi32(s1_28_5, DCT_CONST_BITS);
        const __m256i s1_29_6 = _mm256_srai_epi32(s1_29_4, DCT_CONST_BITS);
        const __m256i s1_29_7 = _mm256_srai_epi32(s1_29_5, DCT_CONST_BITS);
        // Combine
        step1[18] = _mm256_packs_epi32(s1_18_6, s1_18_7);
        step1[19] = _mm256_packs_epi32(s1_19_6, s1_19_7);
        step1[20] = _mm256_packs_epi32(s1_20_6, s1_20_7);
        step1[21] = _mm256_packs_epi32(s1_21_6, s1_21_7);
        step1[26] = _mm256_packs_epi32(s1_26_6, s1_26_7);
        step1[27] = _mm256_packs_epi32(s1_27_6, s1_27_7);
        step1[28] = _mm256_packs_epi32(s1_28_6, s1_28_7);
        step1[29] = _mm256_packs_epi32(s1_29_6, s1_29_7);
      }
      // Stage 5
      {
        step2[4] = _mm256_add_epi16(step1[5], step3[4]);
        step2[5] = _mm256_sub_epi16(step3[4], step1[5]);
        step2[6] = _mm256_sub_epi16(step3[7], step1[6]);
        step2[7] = _mm256_add_epi16(step1[6], step3[7]);
      }
      {
        const __m256i out_00_0 = _mm256_unpacklo_epi16(step1[0], step1[1]);
        const __m256i out_00_1 = _mm256_unpackhi_epi16(step1[0], step1[1]);
        const __m256i out_08_0 = _mm256_unpacklo_epi16(step1[2], step1[3]);
        const __m256i out_08_1 = _mm256_unpackhi_epi16(step1[2], step1[3]);
        const __m256i out_00_2 = _mm256_madd_epi16(out_00_0, k__cospi_p16_p16);
        const __m256i out_00_3 = _mm256_madd_epi16(out_00_1, k__cospi_p16_p16);
        const __m256i out_16_2 = _mm256_madd_epi16(out_00_0, k__cospi_p16_m16);
        const __m256i out_16_3 = _mm256_madd_epi16(out_00_1, k__cospi_p16_m16);
        const __m256i out_08_2 = _mm256_madd_epi16(out_08_0, k__cospi_p24_p08);
        const __m256i out_08_3 = _mm256_madd_epi16(out_08_1, k__cospi_p24_p08);
        const __m256i out_24_2 = _mm256_madd_epi16(out_08_0, k__cospi_m08_p24);
        const __m256i out_24_3 = _mm256_madd_epi16(out_08_1, k__cospi_m08_p24);
        // dct_const_round_shift
        const __m256i out_00_4 = _mm256_add_epi32(out_00_2, k__DCT_CONST_ROUNDING);
        const __m256i out_00_5 = _mm256_add_epi32(out_00_3, k__DCT_CONST_ROUNDING);
        const __m256i out_16_4 = _mm256_add_epi32(out_16_2, k__DCT_CONST_ROUNDING);
        const __m256i out_16_5 = _mm256_add_epi32(out_16_3, k__DCT_CONST_ROUNDING);
        const __m256i out_08_4 = _mm256_add_epi32(out_08_2, k__DCT_CONST_ROUNDING);
        const __m256i out_08_5 = _mm256_add_epi32(out_08_3, k__DCT_CONST_ROUNDING);
        const __m256i out_24_4 = _mm256_add_epi32(out_24_2, k__DCT_CONST_ROUNDING);
        const __m256i out_24_5 = _mm256_add_epi32(out_24_3, k__DCT_CONST_ROUNDING);
        const __m256i out_00_6 = _mm256_srai_epi32(out_00_4, DCT_CONST_BITS);
        const __m256i out_00_7 = _mm256_srai_epi32(out_00_5, DCT_CONST_BITS);
        const __m256i out_16_6 = _mm256_srai_epi32(out_16_4, DCT_CONST_BITS);
        const __m256i out_16_7 = _mm256_srai_epi32(out_16_5, DCT_CONST_BITS);
        const __m256i out_08_6 = _mm256_srai_epi32(out_08_4, DCT_CONST_BITS);
        const __m256i out_08_7 = _mm256_srai_epi32(out_08_5, DCT_CONST_BITS);
        const __m256i out_24_6 = _mm256_srai_epi32(out_24_4, DCT_CONST_BITS);
        const __m256i out_24_7 = _mm256_srai_epi32(out_24_5, DCT_CONST_BITS);
        // Combine
        out[ 0] = _mm256_packs_epi32(out_00_6, out_00_7);
        out[16] = _mm256_packs_epi32(out_16_6, out_16_7);
        out[ 8] = _mm256_packs_epi32(out_08_6, out_08_7);
        out[24] = _mm256_packs_epi32(out_24_6, out_24_7);
      }
      {
        const __m256i s2_09_0 = _mm256_unpacklo_epi16(step1[ 9], step1[14]);
        const __m256i s2_09_1 = _mm256_unpackhi_epi16(step1[ 9], step1[14]);
        const __m256i s2_10_0 = _mm256_unpacklo_epi16(step1[10], step1[13]);
        const __m256i s2_10_1 = _mm256_unpackhi_epi16(step1[10], step1[13]);
        const __m256i s2_09_2 = _mm256_madd_epi16(s2_09_0, k__cospi_m08_p24);
        const __m256i s2_09_3 = _mm256_madd_epi16(s2_09_1, k__cospi_m08_p24);
        const __m256i s2_10_2 = _mm256_madd_epi16(s2_10_0, k__cospi_m24_m08);
        const __m256i s2_10_3 = _mm256_madd_epi16(s2_10_1, k__cospi_m24_m08);
        const __m256i s2_13_2 = _mm256_madd_epi16(s2_10_0, k__cospi_m08_p24);
        const __m256i s2_13_3 = _mm256_madd_epi16(s2_10_1, k__cospi_m08_p24);
        const __m256i s2_14_2 = _mm256_madd_epi16(s2_09_0, k__cospi_p24_p08);
        const __m256i s2_14_3 = _mm256_madd_epi16(s2_09_1, k__cospi_p24_p08);
        // dct_const_round_shift
        const __m256i s2_09_4 = _mm256_add_epi32(s2_09_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_09_5 = _mm256_add_epi32(s2_09_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_10_4 = _mm256_add_epi32(s2_10_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_10_5 = _mm256_add_epi32(s2_10_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_13_4 = _mm256_add_epi32(s2_13_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_13_5 = _mm256_add_epi32(s2_13_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_14_4 = _mm256_add_epi32(s2_14_2, k__DCT_CONST_ROUNDING);
        const __m256i s2_14_5 = _mm256_add_epi32(s2_14_3, k__DCT_CONST_ROUNDING);
        const __m256i s2_09_6 = _mm256_srai_epi32(s2_09_4, DCT_CONST_BITS);
        const __m256i s2_09_7 = _mm256_srai_epi32(s2_09_5, DCT_CONST_BITS);
        const __m256i s2_10_6 = _mm256_srai_epi32(s2_10_4, DCT_CONST_BITS);
        const __m256i s2_10_7 = _mm256_srai_epi32(s2_10_5, DCT_CONST_BITS);
        const __m256i s2_13_6 = _mm256_srai_epi32(s2_13_4, DCT_CONST_BITS);
        const __m256i s2_13_7 = _mm256_srai_epi32(s2_13_5, DCT_CONST_BITS);
        const __m256i s2_14_6 = _mm256_srai_epi32(s2_14_4, DCT_CONST_BITS);
        const __m256i s2_14_7 = _mm256_srai_epi32(s2_14_5, DCT_CONST_BITS);
        // Combine
        step2[ 9] = _mm256_packs_epi32(s2_09_6, s2_09_7);
        step2[10] = _mm256_packs_epi32(s2_10_6, s2_10_7);
        step2[13] = _mm256_packs_epi32(s2_13_6, s2_13_7);
        step2[14] = _mm256_packs_epi32(s2_14_6, s2_14_7);
      }
      {
        step2[16] = _mm256_add_epi16(step1[19], step3[16]);
        step2[17] = _mm256_add_epi16(step1[18], step3[17]);
        step2[18] = _mm256_sub_epi16(step3[17], step1[18]);
        step2[19] = _mm256_sub_epi16(step3[16], step1[19]);
        step2[20] = _mm256_sub_epi16(step3[23], step1[20]);
        step2[21] = _mm256_sub_epi16(step3[22], step1[21]);
        step2[22] = _mm256_add_epi16(step1[21], step3[22]);
        step2[23] = _mm256_add_epi16(step1[20], step3[23]);
        step2[24] = _mm256_add_epi16(step1[27], step3[24]);
        step2[25] = _mm256_add_epi16(step1[26], step3[25]);
        step2[26] = _mm256_sub_epi16(step3[25], step1[26]);
        step2[27] = _mm256_sub_epi16(step3[24], step1[27]);
        step2[28] = _mm256_sub_epi16(step3[31], step1[28]);
        step2[29] = _mm256_sub_epi16(step3[30], step1[29]);
        step2[30] = _mm256_add_epi16(step1[29], step3[30]);
        step2[31] = _mm256_add_epi16(step1[28], step3[31]);
      }
      // Stage 6
      {
        const __m256i out_04_0 = _mm256_unpacklo_epi16(step2[4], step2[7]);
        const __m256i out_04_1 = _mm256_unpackhi_epi16(step2[4], step2[7]);
        const __m256i out_20_0 = _mm256_unpacklo_epi16(step2[5], step2[6]);
        const __m256i out_20_1 = _mm256_unpackhi_epi16(step2[5], step2[6]);
        const __m256i out_12_0 = _mm256_unpacklo_epi16(step2[5], step2[6]);
        const __m256i out_12_1 = _mm256_unpackhi_epi16(step2[5], step2[6]);
        const __m256i out_28_0 = _mm256_unpacklo_epi16(step2[4], step2[7]);
        const __m256i out_28_1 = _mm256_unpackhi_epi16(step2[4], step2[7]);
        const __m256i out_04_2 = _mm256_madd_epi16(out_04_0, k__cospi_p28_p04);
        const __m256i out_04_3 = _mm256_madd_epi16(out_04_1, k__cospi_p28_p04);
        const __m256i out_20_2 = _mm256_madd_epi16(out_20_0, k__cospi_p12_p20);
        const __m256i out_20_3 = _mm256_madd_epi16(out_20_1, k__cospi_p12_p20);
        const __m256i out_12_2 = _mm256_madd_epi16(out_12_0, k__cospi_m20_p12);
        const __m256i out_12_3 = _mm256_madd_epi16(out_12_1, k__cospi_m20_p12);
        const __m256i out_28_2 = _mm256_madd_epi16(out_28_0, k__cospi_m04_p28);
        const __m256i out_28_3 = _mm256_madd_epi16(out_28_1, k__cospi_m04_p28);
        // dct_const_round_shift
        const __m256i out_04_4 = _mm256_add_epi32(out_04_2, k__DCT_CONST_ROUNDING);
        const __m256i out_04_5 = _mm256_add_epi32(out_04_3, k__DCT_CONST_ROUNDING);
        const __m256i out_20_4 = _mm256_add_epi32(out_20_2, k__DCT_CONST_ROUNDING);
        const __m256i out_20_5 = _mm256_add_epi32(out_20_3, k__DCT_CONST_ROUNDING);
        const __m256i out_12_4 = _mm256_add_epi32(out_12_2, k__DCT_CONST_ROUNDING);
        const __m256i out_12_5 = _mm256_add_epi32(out_12_3, k__DCT_CONST_ROUNDING);
        const __m256i out_28_4 = _mm256_add_epi32(out_28_2, k__DCT_CONST_ROUNDING);
        const __m256i out_28_5 = _mm256_add_epi32(out_28_3, k__DCT_CONST_ROUNDING);
        const __m256i out_04_6 = _mm256_srai_epi32(out_04_4, DCT_CONST_BITS);
        const __m256i out_04_7 = _mm256_srai_epi32(out_04_5, DCT_CONST_BITS);
        const __m256i out_20_6 = _mm256_srai_epi32(out_20_4, DCT_CONST_BITS);
        const __m256i out_20_7 = _mm256_srai_epi32(out_20_5, DCT_CONST_BITS);
        const __m256i out_12_6 = _mm256_srai_epi32(out_12_4, DCT_CONST_BITS);
        const __m256i out_12_7 = _mm256_srai_epi32(out_12_5, DCT_CONST_BITS);
        const __m256i out_28_6 = _mm256_srai_epi32(out_28_4, DCT_CONST_BITS);
        const __m256i out_28_7 = _mm256_srai_epi32(out_28_5, DCT_CONST_BITS);
        // Combine
        out[ 4] = _mm256_packs_epi32(out_04_6, out_04_7);
        out[20] = _mm256_packs_epi32(out_20_6, out_20_7);
        out[12] = _mm256_packs_epi32(out_12_6, out_12_7);
        out[28] = _mm256_packs_epi32(out_28_6, out_28_7);
      }
      {
        step3[ 8] = _mm256_add_epi16(step2[ 9], step1[ 8]);
        step3[ 9] = _mm256_sub_epi16(step1[ 8], step2[ 9]);
        step3[10] = _mm256_sub_epi16(step1[11], step2[10]);
        step3[11] = _mm256_add_epi16(step2[10], step1[11]);
        step3[12] = _mm256_add_epi16(step2[13], step1[12]);
        step3[13] = _mm256_sub_epi16(step1[12], step2[13]);
        step3[14] = _mm256_sub_epi16(step1[15], step2[14]);
        step3[15] = _mm256_add_epi16(step2[14], step1[15]);
      }
      {
        const __m256i s3_17_0 = _mm256_unpacklo_epi16(step2[17], step2[30]);
        const __m256i s3_17_1 = _mm256_unpackhi_epi16(step2[17], step2[30]);
        const __m256i s3_18_0 = _mm256_unpacklo_epi16(step2[18], step2[29]);
        const __m256i s3_18_1 = _mm256_unpackhi_epi16(step2[18], step2[29]);
        const __m256i s3_21_0 = _mm256_unpacklo_epi16(step2[21], step2[26]);
        const __m256i s3_21_1 = _mm256_unpackhi_epi16(step2[21], step2[26]);
        const __m256i s3_22_0 = _mm256_unpacklo_epi16(step2[22], step2[25]);
        const __m256i s3_22_1 = _mm256_unpackhi_epi16(step2[22], step2[25]);
        const __m256i s3_17_2 = _mm256_madd_epi16(s3_17_0, k__cospi_m04_p28);
        const __m256i s3_17_3 = _mm256_madd_epi16(s3_17_1, k__cospi_m04_p28);
        const __m256i s3_18_2 = _mm256_madd_epi16(s3_18_0, k__cospi_m28_m04);
        const __m256i s3_18_3 = _mm256_madd_epi16(s3_18_1, k__cospi_m28_m04);
        const __m256i s3_21_2 = _mm256_madd_epi16(s3_21_0, k__cospi_m20_p12);
        const __m256i s3_21_3 = _mm256_madd_epi16(s3_21_1, k__cospi_m20_p12);
        const __m256i s3_22_2 = _mm256_madd_epi16(s3_22_0, k__cospi_m12_m20);
        const __m256i s3_22_3 = _mm256_madd_epi16(s3_22_1, k__cospi_m12_m20);
        const __m256i s3_25_2 = _mm256_madd_epi16(s3_22_0, k__cospi_m20_p12);
        const __m256i s3_25_3 = _mm256_madd_epi16(s3_22_1, k__cospi_m20_p12);
        const __m256i s3_26_2 = _mm256_madd_epi16(s3_21_0, k__cospi_p12_p20);
        const __m256i s3_26_3 = _mm256_madd_epi16(s3_21_1, k__cospi_p12_p20);
        const __m256i s3_29_2 = _mm256_madd_epi16(s3_18_0, k__cospi_m04_p28);
        const __m256i s3_29_3 = _mm256_madd_epi16(s3_18_1, k__cospi_m04_p28);
        const __m256i s3_30_2 = _mm256_madd_epi16(s3_17_0, k__cospi_p28_p04);
        const __m256i s3_30_3 = _mm256_madd_epi16(s3_17_1, k__cospi_p28_p04);
        // dct_const_round_shift
        const __m256i s3_17_4 = _mm256_add_epi32(s3_17_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_17_5 = _mm256_add_epi32(s3_17_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_18_4 = _mm256_add_epi32(s3_18_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_18_5 = _mm256_add_epi32(s3_18_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_21_4 = _mm256_add_epi32(s3_21_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_21_5 = _mm256_add_epi32(s3_21_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_22_4 = _mm256_add_epi32(s3_22_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_22_5 = _mm256_add_epi32(s3_22_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_17_6 = _mm256_srai_epi32(s3_17_4, DCT_CONST_BITS);
        const __m256i s3_17_7 = _mm256_srai_epi32(s3_17_5, DCT_CONST_BITS);
        const __m256i s3_18_6 = _mm256_srai_epi32(s3_18_4, DCT_CONST_BITS);
        const __m256i s3_18_7 = _mm256_srai_epi32(s3_18_5, DCT_CONST_BITS);
        const __m256i s3_21_6 = _mm256_srai_epi32(s3_21_4, DCT_CONST_BITS);
        const __m256i s3_21_7 = _mm256_srai_epi32(s3_21_5, DCT_CONST_BITS);
        const __m256i s3_22_6 = _mm256_srai_epi32(s3_22_4, DCT_CONST_BITS);
        const __m256i s3_22_7 = _mm256_srai_epi32(s3_22_5, DCT_CONST_BITS);
        const __m256i s3_25_4 = _mm256_add_epi32(s3_25_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_25_5 = _mm256_add_epi32(s3_25_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_26_4 = _mm256_add_epi32(s3_26_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_26_5 = _mm256_add_epi32(s3_26_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_29_4 = _mm256_add_epi32(s3_29_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_29_5 = _mm256_add_epi32(s3_29_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_30_4 = _mm256_add_epi32(s3_30_2, k__DCT_CONST_ROUNDING);
        const __m256i s3_30_5 = _mm256_add_epi32(s3_30_3, k__DCT_CONST_ROUNDING);
        const __m256i s3_25_6 = _mm256_srai_epi32(s3_25_4, DCT_CONST_BITS);
        const __m256i s3_25_7 = _mm256_srai_epi32(s3_25_5, DCT_CONST_BITS);
        const __m256i s3_26_6 = _mm256_srai_epi32(s3_26_4, DCT_CONST_BITS);
        const __m256i s3_26_7 = _mm256_srai_epi32(s3_26_5, DCT_CONST_BITS);
        const __m256i s3_29_6 = _mm256_srai_epi32(s3_29_4, DCT_CONST_BITS);
        const __m256i s3_29_7 = _mm256_srai_epi32(s3_29_5, DCT_CONST_BITS);
        const __m256i s3_30_6 = _mm256_srai_epi32(s3_30_4, DCT_CONST_BITS);
        const __m256i s3_30_7 = _mm256_srai_epi32(s3_30_5, DCT_CONST_BITS);
        // Combine
        step3[17] = _mm256_packs_epi32(s3_17_6, s3_17_7);
        step3[18] = _mm256_packs_epi32(s3_18_6, s3_18_7);
        step3[21] = _mm256_packs_epi32(s3_21_6, s3_21_7);
        step3[22] = _mm256_packs_epi32(s3_22_6, s3_22_7);
        // Combine
        step3[25] = _mm256_packs_epi32(s3_25_6, s3_25_7);
        step3[26] = _mm256_packs_epi32(s3_26_6, s3_26_7);
        step3[29] = _mm256_packs_epi32(s3_29_6, s3_29_7);
        step3[30] = _mm256_packs_epi32(s3_30_6, s3_30_7);
      }
      // Stage 7
      {
        const __m256i out_02_0 = _mm256_unpacklo_epi16(step3[ 8], step3[15]);
        const __m256i out_02_1 = _mm256_unpackhi_epi16(step3[ 8], step3[15]);
        const __m256i out_18_0 = _mm256_unpacklo_epi16(step3[ 9], step3[14]);
        const __m256i out_18_1 = _mm256_unpackhi_epi16(step3[ 9], step3[14]);
        const __m256i out_10_0 = _mm256_unpacklo_epi16(step3[10], step3[13]);
        const __m256i out_10_1 = _mm256_unpackhi_epi16(step3[10], step3[13]);
        const __m256i out_26_0 = _mm256_unpacklo_epi16(step3[11], step3[12]);
        const __m256i out_26_1 = _mm256_unpackhi_epi16(step3[11], step3[12]);
        const __m256i out_02_2 = _mm256_madd_epi16(out_02_0, k__cospi_p30_p02);
        const __m256i out_02_3 = _mm256_madd_epi16(out_02_1, k__cospi_p30_p02);
        const __m256i out_18_2 = _mm256_madd_epi16(out_18_0, k__cospi_p14_p18);
        const __m256i out_18_3 = _mm256_madd_epi16(out_18_1, k__cospi_p14_p18);
        const __m256i out_10_2 = _mm256_madd_epi16(out_10_0, k__cospi_p22_p10);
        const __m256i out_10_3 = _mm256_madd_epi16(out_10_1, k__cospi_p22_p10);
        const __m256i out_26_2 = _mm256_madd_epi16(out_26_0, k__cospi_p06_p26);
        const __m256i out_26_3 = _mm256_madd_epi16(out_26_1, k__cospi_p06_p26);
        const __m256i out_06_2 = _mm256_madd_epi16(out_26_0, k__cospi_m26_p06);
        const __m256i out_06_3 = _mm256_madd_epi16(out_26_1, k__cospi_m26_p06);
        const __m256i out_22_2 = _mm256_madd_epi16(out_10_0, k__cospi_m10_p22);
        const __m256i out_22_3 = _mm256_madd_epi16(out_10_1, k__cospi_m10_p22);
        const __m256i out_14_2 = _mm256_madd_epi16(out_18_0, k__cospi_m18_p14);
        const __m256i out_14_3 = _mm256_madd_epi16(out_18_1, k__cospi_m18_p14);
        const __m256i out_30_2 = _mm256_madd_epi16(out_02_0, k__cospi_m02_p30);
        const __m256i out_30_3 = _mm256_madd_epi16(out_02_1, k__cospi_m02_p30);
        // dct_const_round_shift
        const __m256i out_02_4 = _mm256_add_epi32(out_02_2, k__DCT_CONST_ROUNDING);
        const __m256i out_02_5 = _mm256_add_epi32(out_02_3, k__DCT_CONST_ROUNDING);
        const __m256i out_18_4 = _mm256_add_epi32(out_18_2, k__DCT_CONST_ROUNDING);
        const __m256i out_18_5 = _mm256_add_epi32(out_18_3, k__DCT_CONST_ROUNDING);
        const __m256i out_10_4 = _mm256_add_epi32(out_10_2, k__DCT_CONST_ROUNDING);
        const __m256i out_10_5 = _mm256_add_epi32(out_10_3, k__DCT_CONST_ROUNDING);
        const __m256i out_26_4 = _mm256_add_epi32(out_26_2, k__DCT_CONST_ROUNDING);
        const __m256i out_26_5 = _mm256_add_epi32(out_26_3, k__DCT_CONST_ROUNDING);
        const __m256i out_06_4 = _mm256_add_epi32(out_06_2, k__DCT_CONST_ROUNDING);
        const __m256i out_06_5 = _mm256_add_epi32(out_06_3, k__DCT_CONST_ROUNDING);
        const __m256i out_22_4 = _mm256_add_epi32(out_22_2, k__DCT_CONST_ROUNDING);
        const __m256i out_22_5 = _mm256_add_epi32(out_22_3, k__DCT_CONST_ROUNDING);
        const __m256i out_14_4 = _mm256_add_epi32(out_14_2, k__DCT_CONST_ROUNDING);
        const __m256i out_14_5 = _mm256_add_epi32(out_14_3, k__DCT_CONST_ROUNDING);
        const __m256i out_30_4 = _mm256_add_epi32(out_30_2, k__DCT_CONST_ROUNDING);
        const __m256i out_30_5 = _mm256_add_epi32(out_30_3, k__DCT_CONST_ROUNDING);
        const __m256i out_02_6 = _mm256_srai_epi32(out_02_4, DCT_CONST_BITS);
        const __m256i out_02_7 = _mm256_srai_epi32(out_02_5, DCT_CONST_BITS);
        const __m256i out_18_6 = _mm256_srai_epi32(out_18_4, DCT_CONST_BITS);
        const __m256i out_18_7 = _mm256_srai_epi32(out_18_5, DCT_CONST_BITS);
        const __m256i out_10_6 = _mm256_srai_epi32(out_10_4, DCT_CONST_BITS);
        const __m256i out_10_7 = _mm256_srai_epi32(out_10_5, DCT_CONST_BITS);
        const __m256i out_26_6 = _mm256_srai_epi32(out_26_4, DCT_CONST_BITS);
        const __m256i out_26_7 = _mm256_srai_epi32(out_26_5, DCT_CONST_BITS);
        const __m256i out_06_6 = _mm256_srai_epi32(out_06_4, DCT_CONST_BITS);
        const __m256i out_06_7 = _mm256_srai_epi32(out_06_5, DCT_CONST_BITS);
        const __m256i out_22_6 = _mm256_srai_epi32(out_22_4, DCT_CONST_BITS);
        const __m256i out_22_7 = _mm256_srai_epi32(out_22_5, DCT_CONST_BITS);
        const __m256i out_14_6 = _mm256_srai_epi32(out_14_4, DCT_CONST_BITS);
        const __m256i out_14_7 = _mm256_srai_epi32(out_14_5, DCT_CONST_BITS);
        const __m256i out_30_6 = _mm256_srai_epi32(out_30_4, DCT_CONST_BITS);
        const __m256i out_30_7 = _mm256_srai_epi32(out_30_5, DCT_CONST_BITS);
        // Combine
        out[ 2] = _mm256_packs_epi32(out_02_6, out_02_7);
        out[18] = _mm256_packs_epi32(out_18_6, out_18_7);
        out[10] = _mm256_packs_epi32(out_10_6, out_10_7);
        out[26] = _mm256_packs_epi32(out_26_6, out_26_7);
        out[ 6] = _mm256_packs_epi32(out_06_6, out_06_7);
        out[22] = _mm256_packs_epi32(out_22_6, out_22_7);
        out[14] = _mm256_packs_epi32(out_14_6, out_14_7);
        out[30] = _mm256_packs_epi32(out_30_6, out_30_7);
      }
      {
        step1[16] = _mm256_add_epi16(step3[17], step2[16]);
        step1[17] = _mm256_sub_epi16(step2[16], step3[17]);
        step1[18] = _mm256_sub_epi16(step2[19], step3[18]);
        step1[19] = _mm256_add_epi16(step3[18], step2[19]);
        step1[20] = _mm256_add_epi16(step3[21], step2[20]);
        step1[21] = _mm256_sub_epi16(step2[20], step3[21]);
        step1[22] = _mm256_sub_epi16(step2[23], step3[22]);
        step1[23] = _mm256_add_epi16(step3[22], step2[23]);
        step1[24] = _mm256_add_epi16(step3[25], step2[24]);
        step1[25] = _mm256_sub_epi16(step2[24], step3[25]);
        step1[26] = _mm256_sub_epi16(step2[27], step3[26]);
        step1[27] = _mm256_add_epi16(step3[26], step2[27]);
        step1[28] = _mm256_add_epi16(step3[29], step2[28]);
        step1[29] = _mm256_sub_epi16(step2[28], step3[29]);
        step1[30] = _mm256_sub_epi16(step2[31], step3[30]);
        step1[31] = _mm256_add_epi16(step3[30], step2[31]);
      }
      // Final stage --- outputs indices are bit-reversed.
      {
        const __m256i out_01_0 = _mm256_unpacklo_epi16(step1[16], step1[31]);
        const __m256i out_01_1 = _mm256_unpackhi_epi16(step1[16], step1[31]);
        const __m256i out_17_0 = _mm256_unpacklo_epi16(step1[17], step1[30]);
        const __m256i out_17_1 = _mm256_unpackhi_epi16(step1[17], step1[30]);
        const __m256i out_09_0 = _mm256_unpacklo_epi16(step1[18], step1[29]);
        const __m256i out_09_1 = _mm256_unpackhi_epi16(step1[18], step1[29]);
        const __m256i out_25_0 = _mm256_unpacklo_epi16(step1[19], step1[28]);
        const __m256i out_25_1 = _mm256_unpackhi_epi16(step1[19], step1[28]);
        const __m256i out_01_2 = _mm256_madd_epi16(out_01_0, k__cospi_p31_p01);
        const __m256i out_01_3 = _mm256_madd_epi16(out_01_1, k__cospi_p31_p01);
        const __m256i out_17_2 = _mm256_madd_epi16(out_17_0, k__cospi_p15_p17);
        const __m256i out_17_3 = _mm256_madd_epi16(out_17_1, k__cospi_p15_p17);
        const __m256i out_09_2 = _mm256_madd_epi16(out_09_0, k__cospi_p23_p09);
        const __m256i out_09_3 = _mm256_madd_epi16(out_09_1, k__cospi_p23_p09);
        const __m256i out_25_2 = _mm256_madd_epi16(out_25_0, k__cospi_p07_p25);
        const __m256i out_25_3 = _mm256_madd_epi16(out_25_1, k__cospi_p07_p25);
        const __m256i out_07_2 = _mm256_madd_epi16(out_25_0, k__cospi_m25_p07);
        const __m256i out_07_3 = _mm256_madd_epi16(out_25_1, k__cospi_m25_p07);
        const __m256i out_23_2 = _mm256_madd_epi16(out_09_0, k__cospi_m09_p23);
        const __m256i out_23_3 = _mm256_madd_epi16(out_09_1, k__cospi_m09_p23);
        const __m256i out_15_2 = _mm256_madd_epi16(out_17_0, k__cospi_m17_p15);
        const __m256i out_15_3 = _mm256_madd_epi16(out_17_1, k__cospi_m17_p15);
        const __m256i out_31_2 = _mm256_madd_epi16(out_01_0, k__cospi_m01_p31);
        const __m256i out_31_3 = _mm256_madd_epi16(out_01_1, k__cospi_m01_p31);
        // dct_const_round_shift
        const __m256i out_01_4 = _mm256_add_epi32(out_01_2, k__DCT_CONST_ROUNDING);
        const __m256i out_01_5 = _mm256_add_epi32(out_01_3, k__DCT_CONST_ROUNDING);
        const __m256i out_17_4 = _mm256_add_epi32(out_17_2, k__DCT_CONST_ROUNDING);
        const __m256i out_17_5 = _mm256_add_epi32(out_17_3, k__DCT_CONST_ROUNDING);
        const __m256i out_09_4 = _mm256_add_epi32(out_09_2, k__DCT_CONST_ROUNDING);
        const __m256i out_09_5 = _mm256_add_epi32(out_09_3, k__DCT_CONST_ROUNDING);
        const __m256i out_25_4 = _mm256_add_epi32(out_25_2, k__DCT_CONST_ROUNDING);
        const __m256i out_25_5 = _mm256_add_epi32(out_25_3, k__DCT_CONST_ROUNDING);
        const __m256i out_07_4 = _mm256_add_epi32(out_07_2, k__DCT_CONST_ROUNDING);
        const __m256i out_07_5 = _mm256_add_epi32(out_07_3, k__DCT_CONST_ROUNDING);
        const __m256i out_23_4 = _mm256_add_epi32(out_23_2, k__DCT_CONST_ROUNDING);
        const __m256i out_23_5 = _mm256_add_epi32(out_23_3, k__DCT_CONST_ROUNDING);
        const __m256i out_15_4 = _mm256_add_epi32(out_15_2, k__DCT_CONST_ROUNDING);
        const __m256i out_15_5 = _mm256_add_epi32(out_15_3, k__DCT_CONST_ROUNDING);
        const __m256i out_31_4 = _mm256_add_epi32(out_31_2, k__DCT_CONST_ROUNDING);
        const __m256i out_31_5 = _mm256_add_epi32(out_31_3, k__DCT_CONST_ROUNDING);
        const __m256i out_01_6 = _mm256_srai_epi32(out_01_4, DCT_CONST_BITS);
        const __m256i out_01_7 = _mm256_srai_epi32(out_01_5, DCT_CONST_BITS);
        const __m256i out_17_6 = _mm256_srai_epi32(out_17_4, DCT_CONST_BITS);
        const __m256i out_17_7 = _mm256_srai_epi32(out_17_5, DCT_CONST_BITS);
        const __m256i out_09_6 = _mm256_srai_epi32(out_09_4, DCT_CONST_BITS);
        const __m256i out_09_7 = _mm256_srai_epi32(out_09_5, DCT_CONST_BITS);
        const __m256i out_25_6 = _mm256_srai_epi32(out_25_4, DCT_CONST_BITS);
        const __m256i out_25_7 = _mm256_srai_epi32(out_25_5, DCT_CONST_BITS);
        const __m256i out_07_6 = _mm256_srai_epi32(out_07_4, DCT_CONST_BITS);
        const __m256i out_07_7 = _mm256_srai_epi32(out_07_5, DCT_CONST_BITS);
        const __m256i out_23_6 = _mm256_srai_epi32(out_23_4, DCT_CONST_BITS);
        const __m256i out_23_7 = _mm256_srai_epi32(out_23_5, DCT_CONST_BITS);
        const __m256i out_15_6 = _mm256_srai_epi32(out_15_4, DCT_CONST_BITS);
        const __m256i out_15_7 = _mm256_srai_epi32(out_15_5, DCT_CONST_BITS);
        const __m256i out_31_6 = _mm256_srai_epi32(out_31_4, DCT_CONST_BITS);
        const __m256i out_31_7 = _mm256_srai_epi32(out_31_5, DCT_CONST_BITS);
        // Combine
        out[ 1] = _mm256_packs_epi32(out_01_6, out_01_7);
        out[17] = _mm256_packs_epi32(out_17_6, out_17_7);
        out[ 9] = _mm256_packs_epi32(out_09_6, out_09_7);
        out[25] = _mm256_packs_epi32(out_25_6, out_25_7);
        out[ 7] = _mm256_packs_epi32(out_07_6, out_07_7);
        out[23] = _mm256_packs_epi32(out_23_6, out_23_7);
        out[15] = _mm256_packs_epi32(out_15_6, out_15_7);
        out[31] = _mm256_packs_epi32(out_31_6, out_31_7);
      }
      {
        const __m256i out_05_0 = _mm256_unpacklo_epi16(step1[20], step1[27]);
        const __m256i out_05_1 = _mm256_unpackhi_epi16(step1[20], step1[27]);
        const __m256i out_21_0 = _mm256_unpacklo_epi16(step1[21], step1[26]);
        const __m256i out_21_1 = _mm256_unpackhi_epi16(step1[21], step1[26]);
        const __m256i out_13_0 = _mm256_unpacklo_epi16(step1[22], step1[25]);
        const __m256i out_13_1 = _mm256_unpackhi_epi16(step1[22], step1[25]);
        const __m256i out_29_0 = _mm256_unpacklo_epi16(step1[23], step1[24]);
        const __m256i out_29_1 = _mm256_unpackhi_epi16(step1[23], step1[24]);
        const __m256i out_05_2 = _mm256_madd_epi16(out_05_0, k__cospi_p27_p05);
        const __m256i out_05_3 = _mm256_madd_epi16(out_05_1, k__cospi_p27_p05);
        const __m256i out_21_2 = _mm256_madd_epi16(out_21_0, k__cospi_p11_p21);
        const __m256i out_21_3 = _mm256_madd_epi16(out_21_1, k__cospi_p11_p21);
        const __m256i out_13_2 = _mm256_madd_epi16(out_13_0, k__cospi_p19_p13);
        const __m256i out_13_3 = _mm256_madd_epi16(out_13_1, k__cospi_p19_p13);
        const __m256i out_29_2 = _mm256_madd_epi16(out_29_0, k__cospi_p03_p29);
        const __m256i out_29_3 = _mm256_madd_epi16(out_29_1, k__cospi_p03_p29);
        const __m256i out_03_2 = _mm256_madd_epi16(out_29_0, k__cospi_m29_p03);
        const __m256i out_03_3 = _mm256_madd_epi16(out_29_1, k__cospi_m29_p03);
        const __m256i out_19_2 = _mm256_madd_epi16(out_13_0, k__cospi_m13_p19);
        const __m256i out_19_3 = _mm256_madd_epi16(out_13_1, k__cospi_m13_p19);
        const __m256i out_11_2 = _mm256_madd_epi16(out_21_0, k__cospi_m21_p11);
        const __m256i out_11_3 = _mm256_madd_epi16(out_21_1, k__cospi_m21_p11);
        const __m256i out_27_2 = _mm256_madd_epi16(out_05_0, k__cospi_m05_p27);
        const __m256i out_27_3 = _mm256_madd_epi16(out_05_1, k__cospi_m05_p27);
        // dct_const_round_shift
        const __m256i out_05_4 = _mm256_add_epi32(out_05_2, k__DCT_CONST_ROUNDING);
        const __m256i out_05_5 = _mm256_add_epi32(out_05_3, k__DCT_CONST_ROUNDING);
        const __m256i out_21_4 = _mm256_add_epi32(out_21_2, k__DCT_CONST_ROUNDING);
        const __m256i out_21_5 = _mm256_add_epi32(out_21_3, k__DCT_CONST_ROUNDING);
        const __m256i out_13_4 = _mm256_add_epi32(out_13_2, k__DCT_CONST_ROUNDING);
        const __m256i out_13_5 = _mm256_add_epi32(out_13_3, k__DCT_CONST_ROUNDING);
        const __m256i out_29_4 = _mm256_add_epi32(out_29_2, k__DCT_CONST_ROUNDING);
        const __m256i out_29_5 = _mm256_add_epi32(out_29_3, k__DCT_CONST_ROUNDING);
        const __m256i out_03_4 = _mm256_add_epi32(out_03_2, k__DCT_CONST_ROUNDING);
        const __m256i out_03_5 = _mm256_add_epi32(out_03_3, k__DCT_CONST_ROUNDING);
        const __m256i out_19_4 = _mm256_add_epi32(out_19_2, k__DCT_CONST_ROUNDING);
        const __m256i out_19_5 = _mm256_add_epi32(out_19_3, k__DCT_CONST_ROUNDING);
        const __m256i out_11_4 = _mm256_add_epi32(out_11_2, k__DCT_CONST_ROUNDING);
        const __m256i out_11_5 = _mm256_add_epi32(out_11_3, k__DCT_CONST_ROUNDING);
        const __m256i out_27_4 = _mm256_add_epi32(out_27_2, k__DCT_CONST_ROUNDING);
        const __m256i out_27_5 = _mm256_add_epi32(out_27_3, k__DCT_CONST_ROUNDING);
        const __m256i out_05_6 = _mm256_srai_epi32(out_05_4, DCT_CONST_BITS);
        const __m256i out_05_7 = _mm256_srai_epi32(out_05_5, DCT_CONST_BITS);
        const __m256i out_21_6 = _mm256_srai_epi32(out_21_4, DCT_CONST_BITS);
        const __m256i out_21_7 = _mm256_srai_epi32(out_21_5, DCT_CONST_BITS);
        const __m256i out_13_6 = _mm256_srai_epi32(out_13_4, DCT_CONST_BITS);
        const __m256i out_13_7 = _mm256_srai_epi32(out_13_5, DCT_CONST_BITS);
        const __m256i out_29_6 = _mm256_srai_epi32(out_29_4, DCT_CONST_BITS);
        const __m256i out_29_7 = _mm256_srai_epi32(out_29_5, DCT_CONST_BITS);
        const __m256i out_03_6 = _mm256_srai_epi32(out_03_4, DCT_CONST_BITS);
        const __m256i out_03_7 = _mm256_srai_epi32(out_03_5, DCT_CONST_BITS);
        const __m256i out_19_6 = _mm256_srai_epi32(out_19_4, DCT_CONST_BITS);
        const __m256i out_19_7 = _mm256_srai_epi32(out_19_5, DCT_CONST_BITS);
        const __m256i out_11_6 = _mm256_srai_epi32(out_11_4, DCT_CONST_BITS);
        const __m256i out_11_7 = _mm256_srai_epi32(out_11_5, DCT_CONST_BITS);
        const __m256i out_27_6 = _mm256_srai_epi32(out_27_4, DCT_CONST_BITS);
        const __m256i out_27_7 = _mm256_srai_epi32(out_27_5, DCT_CONST_BITS);
        // Combine
        out[ 5] = _mm256_packs_epi32(out_05_6, out_05_7);
        out[21] = _mm256_packs_epi32(out_21_6, out_21_7);
        out[13] = _mm256_packs_epi32(out_13_6, out_13_7);
        out[29] = _mm256_packs_epi32(out_29_6, out_29_7);
        out[ 3] = _mm256_packs_epi32(out_03_6, out_03_7);
        out[19] = _mm256_packs_epi32(out_19_6, out_19_7);
        out[11] = _mm256_packs_epi32(out_11_6, out_11_7);
        out[27] = _mm256_packs_epi32(out_27_6, out_27_7);
      }
#if FDCT32x32_HIGH_PRECISION
      } else {
        __m256i lstep1[64], lstep2[64], lstep3[64];
        __m256i u[32], v[32], sign[16];
        const __m256i K32One = _mm256_set_epi32(1, 1, 1, 1, 1, 1, 1, 1);
        // start using 32-bit operations
        // stage 3
        {
          // expanding to 32-bit length priori to addition operations
          lstep2[ 0] = _mm256_unpacklo_epi16(step2[ 0], kZero);
          lstep2[ 1] = _mm256_unpackhi_epi16(step2[ 0], kZero);
          lstep2[ 2] = _mm256_unpacklo_epi16(step2[ 1], kZero);
          lstep2[ 3] = _mm256_unpackhi_epi16(step2[ 1], kZero);
          lstep2[ 4] = _mm256_unpacklo_epi16(step2[ 2], kZero);
          lstep2[ 5] = _mm256_unpackhi_epi16(step2[ 2], kZero);
          lstep2[ 6] = _mm256_unpacklo_epi16(step2[ 3], kZero);
          lstep2[ 7] = _mm256_unpackhi_epi16(step2[ 3], kZero);
          lstep2[ 8] = _mm256_unpacklo_epi16(step2[ 4], kZero);
          lstep2[ 9] = _mm256_unpackhi_epi16(step2[ 4], kZero);
          lstep2[10] = _mm256_unpacklo_epi16(step2[ 5], kZero);
          lstep2[11] = _mm256_unpackhi_epi16(step2[ 5], kZero);
          lstep2[12] = _mm256_unpacklo_epi16(step2[ 6], kZero);
          lstep2[13] = _mm256_unpackhi_epi16(step2[ 6], kZero);
          lstep2[14] = _mm256_unpacklo_epi16(step2[ 7], kZero);
          lstep2[15] = _mm256_unpackhi_epi16(step2[ 7], kZero);
          lstep2[ 0] = _mm256_madd_epi16(lstep2[ 0], kOne);
          lstep2[ 1] = _mm256_madd_epi16(lstep2[ 1], kOne);
          lstep2[ 2] = _mm256_madd_epi16(lstep2[ 2], kOne);
          lstep2[ 3] = _mm256_madd_epi16(lstep2[ 3], kOne);
          lstep2[ 4] = _mm256_madd_epi16(lstep2[ 4], kOne);
          lstep2[ 5] = _mm256_madd_epi16(lstep2[ 5], kOne);
          lstep2[ 6] = _mm256_madd_epi16(lstep2[ 6], kOne);
          lstep2[ 7] = _mm256_madd_epi16(lstep2[ 7], kOne);
          lstep2[ 8] = _mm256_madd_epi16(lstep2[ 8], kOne);
          lstep2[ 9] = _mm256_madd_epi16(lstep2[ 9], kOne);
          lstep2[10] = _mm256_madd_epi16(lstep2[10], kOne);
          lstep2[11] = _mm256_madd_epi16(lstep2[11], kOne);
          lstep2[12] = _mm256_madd_epi16(lstep2[12], kOne);
          lstep2[13] = _mm256_madd_epi16(lstep2[13], kOne);
          lstep2[14] = _mm256_madd_epi16(lstep2[14], kOne);
          lstep2[15] = _mm256_madd_epi16(lstep2[15], kOne);

          lstep3[ 0] = _mm256_add_epi32(lstep2[14], lstep2[ 0]);
          lstep3[ 1] = _mm256_add_epi32(lstep2[15], lstep2[ 1]);
          lstep3[ 2] = _mm256_add_epi32(lstep2[12], lstep2[ 2]);
          lstep3[ 3] = _mm256_add_epi32(lstep2[13], lstep2[ 3]);
          lstep3[ 4] = _mm256_add_epi32(lstep2[10], lstep2[ 4]);
          lstep3[ 5] = _mm256_add_epi32(lstep2[11], lstep2[ 5]);
          lstep3[ 6] = _mm256_add_epi32(lstep2[ 8], lstep2[ 6]);
          lstep3[ 7] = _mm256_add_epi32(lstep2[ 9], lstep2[ 7]);
          lstep3[ 8] = _mm256_sub_epi32(lstep2[ 6], lstep2[ 8]);
          lstep3[ 9] = _mm256_sub_epi32(lstep2[ 7], lstep2[ 9]);
          lstep3[10] = _mm256_sub_epi32(lstep2[ 4], lstep2[10]);
          lstep3[11] = _mm256_sub_epi32(lstep2[ 5], lstep2[11]);
          lstep3[12] = _mm256_sub_epi32(lstep2[ 2], lstep2[12]);
          lstep3[13] = _mm256_sub_epi32(lstep2[ 3], lstep2[13]);
          lstep3[14] = _mm256_sub_epi32(lstep2[ 0], lstep2[14]);
          lstep3[15] = _mm256_sub_epi32(lstep2[ 1], lstep2[15]);
        }
        {
          const __m256i s3_10_0 = _mm256_unpacklo_epi16(step2[13], step2[10]);
          const __m256i s3_10_1 = _mm256_unpackhi_epi16(step2[13], step2[10]);
          const __m256i s3_11_0 = _mm256_unpacklo_epi16(step2[12], step2[11]);
          const __m256i s3_11_1 = _mm256_unpackhi_epi16(step2[12], step2[11]);
          const __m256i s3_10_2 = _mm256_madd_epi16(s3_10_0, k__cospi_p16_m16);
          const __m256i s3_10_3 = _mm256_madd_epi16(s3_10_1, k__cospi_p16_m16);
          const __m256i s3_11_2 = _mm256_madd_epi16(s3_11_0, k__cospi_p16_m16);
          const __m256i s3_11_3 = _mm256_madd_epi16(s3_11_1, k__cospi_p16_m16);
          const __m256i s3_12_2 = _mm256_madd_epi16(s3_11_0, k__cospi_p16_p16);
          const __m256i s3_12_3 = _mm256_madd_epi16(s3_11_1, k__cospi_p16_p16);
          const __m256i s3_13_2 = _mm256_madd_epi16(s3_10_0, k__cospi_p16_p16);
          const __m256i s3_13_3 = _mm256_madd_epi16(s3_10_1, k__cospi_p16_p16);
          // dct_const_round_shift
          const __m256i s3_10_4 = _mm256_add_epi32(s3_10_2, k__DCT_CONST_ROUNDING);
          const __m256i s3_10_5 = _mm256_add_epi32(s3_10_3, k__DCT_CONST_ROUNDING);
          const __m256i s3_11_4 = _mm256_add_epi32(s3_11_2, k__DCT_CONST_ROUNDING);
          const __m256i s3_11_5 = _mm256_add_epi32(s3_11_3, k__DCT_CONST_ROUNDING);
          const __m256i s3_12_4 = _mm256_add_epi32(s3_12_2, k__DCT_CONST_ROUNDING);
          const __m256i s3_12_5 = _mm256_add_epi32(s3_12_3, k__DCT_CONST_ROUNDING);
          const __m256i s3_13_4 = _mm256_add_epi32(s3_13_2, k__DCT_CONST_ROUNDING);
          const __m256i s3_13_5 = _mm256_add_epi32(s3_13_3, k__DCT_CONST_ROUNDING);
          lstep3[20] = _mm256_srai_epi32(s3_10_4, DCT_CONST_BITS);
          lstep3[21] = _mm256_srai_epi32(s3_10_5, DCT_CONST_BITS);
          lstep3[22] = _mm256_srai_epi32(s3_11_4, DCT_CONST_BITS);
          lstep3[23] = _mm256_srai_epi32(s3_11_5, DCT_CONST_BITS);
          lstep3[24] = _mm256_srai_epi32(s3_12_4, DCT_CONST_BITS);
          lstep3[25] = _mm256_srai_epi32(s3_12_5, DCT_CONST_BITS);
          lstep3[26] = _mm256_srai_epi32(s3_13_4, DCT_CONST_BITS);
          lstep3[27] = _mm256_srai_epi32(s3_13_5, DCT_CONST_BITS);
        }
        {
          lstep2[40] = _mm256_unpacklo_epi16(step2[20], kZero);
          lstep2[41] = _mm256_unpackhi_epi16(step2[20], kZero);
          lstep2[42] = _mm256_unpacklo_epi16(step2[21], kZero);
          lstep2[43] = _mm256_unpackhi_epi16(step2[21], kZero);
          lstep2[44] = _mm256_unpacklo_epi16(step2[22], kZero);
          lstep2[45] = _mm256_unpackhi_epi16(step2[22], kZero);
          lstep2[46] = _mm256_unpacklo_epi16(step2[23], kZero);
          lstep2[47] = _mm256_unpackhi_epi16(step2[23], kZero);
          lstep2[48] = _mm256_unpacklo_epi16(step2[24], kZero);
          lstep2[49] = _mm256_unpackhi_epi16(step2[24], kZero);
          lstep2[50] = _mm256_unpacklo_epi16(step2[25], kZero);
          lstep2[51] = _mm256_unpackhi_epi16(step2[25], kZero);
          lstep2[52] = _mm256_unpacklo_epi16(step2[26], kZero);
          lstep2[53] = _mm256_unpackhi_epi16(step2[26], kZero);
          lstep2[54] = _mm256_unpacklo_epi16(step2[27], kZero);
          lstep2[55] = _mm256_unpackhi_epi16(step2[27], kZero);
          lstep2[40] = _mm256_madd_epi16(lstep2[40], kOne);
          lstep2[41] = _mm256_madd_epi16(lstep2[41], kOne);
          lstep2[42] = _mm256_madd_epi16(lstep2[42], kOne);
          lstep2[43] = _mm256_madd_epi16(lstep2[43], kOne);
          lstep2[44] = _mm256_madd_epi16(lstep2[44], kOne);
          lstep2[45] = _mm256_madd_epi16(lstep2[45], kOne);
          lstep2[46] = _mm256_madd_epi16(lstep2[46], kOne);
          lstep2[47] = _mm256_madd_epi16(lstep2[47], kOne);
          lstep2[48] = _mm256_madd_epi16(lstep2[48], kOne);
          lstep2[49] = _mm256_madd_epi16(lstep2[49], kOne);
          lstep2[50] = _mm256_madd_epi16(lstep2[50], kOne);
          lstep2[51] = _mm256_madd_epi16(lstep2[51], kOne);
          lstep2[52] = _mm256_madd_epi16(lstep2[52], kOne);
          lstep2[53] = _mm256_madd_epi16(lstep2[53], kOne);
          lstep2[54] = _mm256_madd_epi16(lstep2[54], kOne);
          lstep2[55] = _mm256_madd_epi16(lstep2[55], kOne);

          lstep1[32] = _mm256_unpacklo_epi16(step1[16], kZero);
          lstep1[33] = _mm256_unpackhi_epi16(step1[16], kZero);
          lstep1[34] = _mm256_unpacklo_epi16(step1[17], kZero);
          lstep1[35] = _mm256_unpackhi_epi16(step1[17], kZero);
          lstep1[36] = _mm256_unpacklo_epi16(step1[18], kZero);
          lstep1[37] = _mm256_unpackhi_epi16(step1[18], kZero);
          lstep1[38] = _mm256_unpacklo_epi16(step1[19], kZero);
          lstep1[39] = _mm256_unpackhi_epi16(step1[19], kZero);
          lstep1[56] = _mm256_unpacklo_epi16(step1[28], kZero);
          lstep1[57] = _mm256_unpackhi_epi16(step1[28], kZero);
          lstep1[58] = _mm256_unpacklo_epi16(step1[29], kZero);
          lstep1[59] = _mm256_unpackhi_epi16(step1[29], kZero);
          lstep1[60] = _mm256_unpacklo_epi16(step1[30], kZero);
          lstep1[61] = _mm256_unpackhi_epi16(step1[30], kZero);
          lstep1[62] = _mm256_unpacklo_epi16(step1[31], kZero);
          lstep1[63] = _mm256_unpackhi_epi16(step1[31], kZero);
          lstep1[32] = _mm256_madd_epi16(lstep1[32], kOne);
          lstep1[33] = _mm256_madd_epi16(lstep1[33], kOne);
          lstep1[34] = _mm256_madd_epi16(lstep1[34], kOne);
          lstep1[35] = _mm256_madd_epi16(lstep1[35], kOne);
          lstep1[36] = _mm256_madd_epi16(lstep1[36], kOne);
          lstep1[37] = _mm256_madd_epi16(lstep1[37], kOne);
          lstep1[38] = _mm256_madd_epi16(lstep1[38], kOne);
          lstep1[39] = _mm256_madd_epi16(lstep1[39], kOne);
          lstep1[56] = _mm256_madd_epi16(lstep1[56], kOne);
          lstep1[57] = _mm256_madd_epi16(lstep1[57], kOne);
          lstep1[58] = _mm256_madd_epi16(lstep1[58], kOne);
          lstep1[59] = _mm256_madd_epi16(lstep1[59], kOne);
          lstep1[60] = _mm256_madd_epi16(lstep1[60], kOne);
          lstep1[61] = _mm256_madd_epi16(lstep1[61], kOne);
          lstep1[62] = _mm256_madd_epi16(lstep1[62], kOne);
          lstep1[63] = _mm256_madd_epi16(lstep1[63], kOne);

          lstep3[32] = _mm256_add_epi32(lstep2[46], lstep1[32]);
          lstep3[33] = _mm256_add_epi32(lstep2[47], lstep1[33]);

          lstep3[34] = _mm256_add_epi32(lstep2[44], lstep1[34]);
          lstep3[35] = _mm256_add_epi32(lstep2[45], lstep1[35]);
          lstep3[36] = _mm256_add_epi32(lstep2[42], lstep1[36]);
          lstep3[37] = _mm256_add_epi32(lstep2[43], lstep1[37]);
          lstep3[38] = _mm256_add_epi32(lstep2[40], lstep1[38]);
          lstep3[39] = _mm256_add_epi32(lstep2[41], lstep1[39]);
          lstep3[40] = _mm256_sub_epi32(lstep1[38], lstep2[40]);
          lstep3[41] = _mm256_sub_epi32(lstep1[39], lstep2[41]);
          lstep3[42] = _mm256_sub_epi32(lstep1[36], lstep2[42]);
          lstep3[43] = _mm256_sub_epi32(lstep1[37], lstep2[43]);
          lstep3[44] = _mm256_sub_epi32(lstep1[34], lstep2[44]);
          lstep3[45] = _mm256_sub_epi32(lstep1[35], lstep2[45]);
          lstep3[46] = _mm256_sub_epi32(lstep1[32], lstep2[46]);
          lstep3[47] = _mm256_sub_epi32(lstep1[33], lstep2[47]);
          lstep3[48] = _mm256_sub_epi32(lstep1[62], lstep2[48]);
          lstep3[49] = _mm256_sub_epi32(lstep1[63], lstep2[49]);
          lstep3[50] = _mm256_sub_epi32(lstep1[60], lstep2[50]);
          lstep3[51] = _mm256_sub_epi32(lstep1[61], lstep2[51]);
          lstep3[52] = _mm256_sub_epi32(lstep1[58], lstep2[52]);
          lstep3[53] = _mm256_sub_epi32(lstep1[59], lstep2[53]);
          lstep3[54] = _mm256_sub_epi32(lstep1[56], lstep2[54]);
          lstep3[55] = _mm256_sub_epi32(lstep1[57], lstep2[55]);
          lstep3[56] = _mm256_add_epi32(lstep2[54], lstep1[56]);
          lstep3[57] = _mm256_add_epi32(lstep2[55], lstep1[57]);
          lstep3[58] = _mm256_add_epi32(lstep2[52], lstep1[58]);
          lstep3[59] = _mm256_add_epi32(lstep2[53], lstep1[59]);
          lstep3[60] = _mm256_add_epi32(lstep2[50], lstep1[60]);
          lstep3[61] = _mm256_add_epi32(lstep2[51], lstep1[61]);
          lstep3[62] = _mm256_add_epi32(lstep2[48], lstep1[62]);
          lstep3[63] = _mm256_add_epi32(lstep2[49], lstep1[63]);
        }

        // stage 4
        {
          // expanding to 32-bit length priori to addition operations
          lstep2[16] = _mm256_unpacklo_epi16(step2[ 8], kZero);
          lstep2[17] = _mm256_unpackhi_epi16(step2[ 8], kZero);
          lstep2[18] = _mm256_unpacklo_epi16(step2[ 9], kZero);
          lstep2[19] = _mm256_unpackhi_epi16(step2[ 9], kZero);
          lstep2[28] = _mm256_unpacklo_epi16(step2[14], kZero);
          lstep2[29] = _mm256_unpackhi_epi16(step2[14], kZero);
          lstep2[30] = _mm256_unpacklo_epi16(step2[15], kZero);
          lstep2[31] = _mm256_unpackhi_epi16(step2[15], kZero);
          lstep2[16] = _mm256_madd_epi16(lstep2[16], kOne);
          lstep2[17] = _mm256_madd_epi16(lstep2[17], kOne);
          lstep2[18] = _mm256_madd_epi16(lstep2[18], kOne);
          lstep2[19] = _mm256_madd_epi16(lstep2[19], kOne);
          lstep2[28] = _mm256_madd_epi16(lstep2[28], kOne);
          lstep2[29] = _mm256_madd_epi16(lstep2[29], kOne);
          lstep2[30] = _mm256_madd_epi16(lstep2[30], kOne);
          lstep2[31] = _mm256_madd_epi16(lstep2[31], kOne);

          lstep1[ 0] = _mm256_add_epi32(lstep3[ 6], lstep3[ 0]);
          lstep1[ 1] = _mm256_add_epi32(lstep3[ 7], lstep3[ 1]);
          lstep1[ 2] = _mm256_add_epi32(lstep3[ 4], lstep3[ 2]);
          lstep1[ 3] = _mm256_add_epi32(lstep3[ 5], lstep3[ 3]);
          lstep1[ 4] = _mm256_sub_epi32(lstep3[ 2], lstep3[ 4]);
          lstep1[ 5] = _mm256_sub_epi32(lstep3[ 3], lstep3[ 5]);
          lstep1[ 6] = _mm256_sub_epi32(lstep3[ 0], lstep3[ 6]);
          lstep1[ 7] = _mm256_sub_epi32(lstep3[ 1], lstep3[ 7]);
          lstep1[16] = _mm256_add_epi32(lstep3[22], lstep2[16]);
          lstep1[17] = _mm256_add_epi32(lstep3[23], lstep2[17]);
          lstep1[18] = _mm256_add_epi32(lstep3[20], lstep2[18]);
          lstep1[19] = _mm256_add_epi32(lstep3[21], lstep2[19]);
          lstep1[20] = _mm256_sub_epi32(lstep2[18], lstep3[20]);
          lstep1[21] = _mm256_sub_epi32(lstep2[19], lstep3[21]);
          lstep1[22] = _mm256_sub_epi32(lstep2[16], lstep3[22]);
          lstep1[23] = _mm256_sub_epi32(lstep2[17], lstep3[23]);
          lstep1[24] = _mm256_sub_epi32(lstep2[30], lstep3[24]);
          lstep1[25] = _mm256_sub_epi32(lstep2[31], lstep3[25]);
          lstep1[26] = _mm256_sub_epi32(lstep2[28], lstep3[26]);
          lstep1[27] = _mm256_sub_epi32(lstep2[29], lstep3[27]);
          lstep1[28] = _mm256_add_epi32(lstep3[26], lstep2[28]);
          lstep1[29] = _mm256_add_epi32(lstep3[27], lstep2[29]);
          lstep1[30] = _mm256_add_epi32(lstep3[24], lstep2[30]);
          lstep1[31] = _mm256_add_epi32(lstep3[25], lstep2[31]);
        }
        {
        // to be continued...
        //
        const __m256i k32_p16_p16 = pair256_set_epi32(cospi_16_64, cospi_16_64);
        const __m256i k32_p16_m16 = pair256_set_epi32(cospi_16_64, -cospi_16_64);

        u[0] = _mm256_unpacklo_epi32(lstep3[12], lstep3[10]);
        u[1] = _mm256_unpackhi_epi32(lstep3[12], lstep3[10]);
        u[2] = _mm256_unpacklo_epi32(lstep3[13], lstep3[11]);
        u[3] = _mm256_unpackhi_epi32(lstep3[13], lstep3[11]);

        // TODO(jingning): manually inline k_madd_epi32_avx2_ to further hide
        // instruction latency.
        v[ 0] = k_madd_epi32_avx2(u[0], k32_p16_m16);
        v[ 1] = k_madd_epi32_avx2(u[1], k32_p16_m16);
        v[ 2] = k_madd_epi32_avx2(u[2], k32_p16_m16);
        v[ 3] = k_madd_epi32_avx2(u[3], k32_p16_m16);
        v[ 4] = k_madd_epi32_avx2(u[0], k32_p16_p16);
        v[ 5] = k_madd_epi32_avx2(u[1], k32_p16_p16);
        v[ 6] = k_madd_epi32_avx2(u[2], k32_p16_p16);
        v[ 7] = k_madd_epi32_avx2(u[3], k32_p16_p16);

        u[0] = k_packs_epi64_avx2(v[0], v[1]);
        u[1] = k_packs_epi64_avx2(v[2], v[3]);
        u[2] = k_packs_epi64_avx2(v[4], v[5]);
        u[3] = k_packs_epi64_avx2(v[6], v[7]);

        v[0] = _mm256_add_epi32(u[0], k__DCT_CONST_ROUNDING);
        v[1] = _mm256_add_epi32(u[1], k__DCT_CONST_ROUNDING);
        v[2] = _mm256_add_epi32(u[2], k__DCT_CONST_ROUNDING);
        v[3] = _mm256_add_epi32(u[3], k__DCT_CONST_ROUNDING);

        lstep1[10] = _mm256_srai_epi32(v[0], DCT_CONST_BITS);
        lstep1[11] = _mm256_srai_epi32(v[1], DCT_CONST_BITS);
        lstep1[12] = _mm256_srai_epi32(v[2], DCT_CONST_BITS);
        lstep1[13] = _mm256_srai_epi32(v[3], DCT_CONST_BITS);
        }
        {
          const __m256i k32_m08_p24 = pair256_set_epi32(-cospi_8_64, cospi_24_64);
          const __m256i k32_m24_m08 = pair256_set_epi32(-cospi_24_64, -cospi_8_64);
          const __m256i k32_p24_p08 = pair256_set_epi32(cospi_24_64, cospi_8_64);

          u[ 0] = _mm256_unpacklo_epi32(lstep3[36], lstep3[58]);
          u[ 1] = _mm256_unpackhi_epi32(lstep3[36], lstep3[58]);
          u[ 2] = _mm256_unpacklo_epi32(lstep3[37], lstep3[59]);
          u[ 3] = _mm256_unpackhi_epi32(lstep3[37], lstep3[59]);
          u[ 4] = _mm256_unpacklo_epi32(lstep3[38], lstep3[56]);
          u[ 5] = _mm256_unpackhi_epi32(lstep3[38], lstep3[56]);
          u[ 6] = _mm256_unpacklo_epi32(lstep3[39], lstep3[57]);
          u[ 7] = _mm256_unpackhi_epi32(lstep3[39], lstep3[57]);
          u[ 8] = _mm256_unpacklo_epi32(lstep3[40], lstep3[54]);
          u[ 9] = _mm256_unpackhi_epi32(lstep3[40], lstep3[54]);
          u[10] = _mm256_unpacklo_epi32(lstep3[41], lstep3[55]);
          u[11] = _mm256_unpackhi_epi32(lstep3[41], lstep3[55]);
          u[12] = _mm256_unpacklo_epi32(lstep3[42], lstep3[52]);
          u[13] = _mm256_unpackhi_epi32(lstep3[42], lstep3[52]);
          u[14] = _mm256_unpacklo_epi32(lstep3[43], lstep3[53]);
          u[15] = _mm256_unpackhi_epi32(lstep3[43], lstep3[53]);

          v[ 0] = k_madd_epi32_avx2(u[ 0], k32_m08_p24);
          v[ 1] = k_madd_epi32_avx2(u[ 1], k32_m08_p24);
          v[ 2] = k_madd_epi32_avx2(u[ 2], k32_m08_p24);
          v[ 3] = k_madd_epi32_avx2(u[ 3], k32_m08_p24);
          v[ 4] = k_madd_epi32_avx2(u[ 4], k32_m08_p24);
          v[ 5] = k_madd_epi32_avx2(u[ 5], k32_m08_p24);
          v[ 6] = k_madd_epi32_avx2(u[ 6], k32_m08_p24);
          v[ 7] = k_madd_epi32_avx2(u[ 7], k32_m08_p24);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_m24_m08);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_m24_m08);
          v[10] = k_madd_epi32_avx2(u[10], k32_m24_m08);
          v[11] = k_madd_epi32_avx2(u[11], k32_m24_m08);
          v[12] = k_madd_epi32_avx2(u[12], k32_m24_m08);
          v[13] = k_madd_epi32_avx2(u[13], k32_m24_m08);
          v[14] = k_madd_epi32_avx2(u[14], k32_m24_m08);
          v[15] = k_madd_epi32_avx2(u[15], k32_m24_m08);
          v[16] = k_madd_epi32_avx2(u[12], k32_m08_p24);
          v[17] = k_madd_epi32_avx2(u[13], k32_m08_p24);
          v[18] = k_madd_epi32_avx2(u[14], k32_m08_p24);
          v[19] = k_madd_epi32_avx2(u[15], k32_m08_p24);
          v[20] = k_madd_epi32_avx2(u[ 8], k32_m08_p24);
          v[21] = k_madd_epi32_avx2(u[ 9], k32_m08_p24);
          v[22] = k_madd_epi32_avx2(u[10], k32_m08_p24);
          v[23] = k_madd_epi32_avx2(u[11], k32_m08_p24);
          v[24] = k_madd_epi32_avx2(u[ 4], k32_p24_p08);
          v[25] = k_madd_epi32_avx2(u[ 5], k32_p24_p08);
          v[26] = k_madd_epi32_avx2(u[ 6], k32_p24_p08);
          v[27] = k_madd_epi32_avx2(u[ 7], k32_p24_p08);
          v[28] = k_madd_epi32_avx2(u[ 0], k32_p24_p08);
          v[29] = k_madd_epi32_avx2(u[ 1], k32_p24_p08);
          v[30] = k_madd_epi32_avx2(u[ 2], k32_p24_p08);
          v[31] = k_madd_epi32_avx2(u[ 3], k32_p24_p08);

          u[ 0] = k_packs_epi64_avx2(v[ 0], v[ 1]);
          u[ 1] = k_packs_epi64_avx2(v[ 2], v[ 3]);
          u[ 2] = k_packs_epi64_avx2(v[ 4], v[ 5]);
          u[ 3] = k_packs_epi64_avx2(v[ 6], v[ 7]);
          u[ 4] = k_packs_epi64_avx2(v[ 8], v[ 9]);
          u[ 5] = k_packs_epi64_avx2(v[10], v[11]);
          u[ 6] = k_packs_epi64_avx2(v[12], v[13]);
          u[ 7] = k_packs_epi64_avx2(v[14], v[15]);
          u[ 8] = k_packs_epi64_avx2(v[16], v[17]);
          u[ 9] = k_packs_epi64_avx2(v[18], v[19]);
          u[10] = k_packs_epi64_avx2(v[20], v[21]);
          u[11] = k_packs_epi64_avx2(v[22], v[23]);
          u[12] = k_packs_epi64_avx2(v[24], v[25]);
          u[13] = k_packs_epi64_avx2(v[26], v[27]);
          u[14] = k_packs_epi64_avx2(v[28], v[29]);
          u[15] = k_packs_epi64_avx2(v[30], v[31]);

          v[ 0] = _mm256_add_epi32(u[ 0], k__DCT_CONST_ROUNDING);
          v[ 1] = _mm256_add_epi32(u[ 1], k__DCT_CONST_ROUNDING);
          v[ 2] = _mm256_add_epi32(u[ 2], k__DCT_CONST_ROUNDING);
          v[ 3] = _mm256_add_epi32(u[ 3], k__DCT_CONST_ROUNDING);
          v[ 4] = _mm256_add_epi32(u[ 4], k__DCT_CONST_ROUNDING);
          v[ 5] = _mm256_add_epi32(u[ 5], k__DCT_CONST_ROUNDING);
          v[ 6] = _mm256_add_epi32(u[ 6], k__DCT_CONST_ROUNDING);
          v[ 7] = _mm256_add_epi32(u[ 7], k__DCT_CONST_ROUNDING);
          v[ 8] = _mm256_add_epi32(u[ 8], k__DCT_CONST_ROUNDING);
          v[ 9] = _mm256_add_epi32(u[ 9], k__DCT_CONST_ROUNDING);
          v[10] = _mm256_add_epi32(u[10], k__DCT_CONST_ROUNDING);
          v[11] = _mm256_add_epi32(u[11], k__DCT_CONST_ROUNDING);
          v[12] = _mm256_add_epi32(u[12], k__DCT_CONST_ROUNDING);
          v[13] = _mm256_add_epi32(u[13], k__DCT_CONST_ROUNDING);
          v[14] = _mm256_add_epi32(u[14], k__DCT_CONST_ROUNDING);
          v[15] = _mm256_add_epi32(u[15], k__DCT_CONST_ROUNDING);

          lstep1[36] = _mm256_srai_epi32(v[ 0], DCT_CONST_BITS);
          lstep1[37] = _mm256_srai_epi32(v[ 1], DCT_CONST_BITS);
          lstep1[38] = _mm256_srai_epi32(v[ 2], DCT_CONST_BITS);
          lstep1[39] = _mm256_srai_epi32(v[ 3], DCT_CONST_BITS);
          lstep1[40] = _mm256_srai_epi32(v[ 4], DCT_CONST_BITS);
          lstep1[41] = _mm256_srai_epi32(v[ 5], DCT_CONST_BITS);
          lstep1[42] = _mm256_srai_epi32(v[ 6], DCT_CONST_BITS);
          lstep1[43] = _mm256_srai_epi32(v[ 7], DCT_CONST_BITS);
          lstep1[52] = _mm256_srai_epi32(v[ 8], DCT_CONST_BITS);
          lstep1[53] = _mm256_srai_epi32(v[ 9], DCT_CONST_BITS);
          lstep1[54] = _mm256_srai_epi32(v[10], DCT_CONST_BITS);
          lstep1[55] = _mm256_srai_epi32(v[11], DCT_CONST_BITS);
          lstep1[56] = _mm256_srai_epi32(v[12], DCT_CONST_BITS);
          lstep1[57] = _mm256_srai_epi32(v[13], DCT_CONST_BITS);
          lstep1[58] = _mm256_srai_epi32(v[14], DCT_CONST_BITS);
          lstep1[59] = _mm256_srai_epi32(v[15], DCT_CONST_BITS);
        }
        // stage 5
        {
          lstep2[ 8] = _mm256_add_epi32(lstep1[10], lstep3[ 8]);
          lstep2[ 9] = _mm256_add_epi32(lstep1[11], lstep3[ 9]);
          lstep2[10] = _mm256_sub_epi32(lstep3[ 8], lstep1[10]);
          lstep2[11] = _mm256_sub_epi32(lstep3[ 9], lstep1[11]);
          lstep2[12] = _mm256_sub_epi32(lstep3[14], lstep1[12]);
          lstep2[13] = _mm256_sub_epi32(lstep3[15], lstep1[13]);
          lstep2[14] = _mm256_add_epi32(lstep1[12], lstep3[14]);
          lstep2[15] = _mm256_add_epi32(lstep1[13], lstep3[15]);
        }
        {
          const __m256i k32_p16_p16 = pair256_set_epi32(cospi_16_64, cospi_16_64);
          const __m256i k32_p16_m16 = pair256_set_epi32(cospi_16_64, -cospi_16_64);
          const __m256i k32_p24_p08 = pair256_set_epi32(cospi_24_64, cospi_8_64);
          const __m256i k32_m08_p24 = pair256_set_epi32(-cospi_8_64, cospi_24_64);

          u[0] = _mm256_unpacklo_epi32(lstep1[0], lstep1[2]);
          u[1] = _mm256_unpackhi_epi32(lstep1[0], lstep1[2]);
          u[2] = _mm256_unpacklo_epi32(lstep1[1], lstep1[3]);
          u[3] = _mm256_unpackhi_epi32(lstep1[1], lstep1[3]);
          u[4] = _mm256_unpacklo_epi32(lstep1[4], lstep1[6]);
          u[5] = _mm256_unpackhi_epi32(lstep1[4], lstep1[6]);
          u[6] = _mm256_unpacklo_epi32(lstep1[5], lstep1[7]);
          u[7] = _mm256_unpackhi_epi32(lstep1[5], lstep1[7]);

          // TODO(jingning): manually inline k_madd_epi32_avx2_ to further hide
          // instruction latency.
          v[ 0] = k_madd_epi32_avx2(u[0], k32_p16_p16);
          v[ 1] = k_madd_epi32_avx2(u[1], k32_p16_p16);
          v[ 2] = k_madd_epi32_avx2(u[2], k32_p16_p16);
          v[ 3] = k_madd_epi32_avx2(u[3], k32_p16_p16);
          v[ 4] = k_madd_epi32_avx2(u[0], k32_p16_m16);
          v[ 5] = k_madd_epi32_avx2(u[1], k32_p16_m16);
          v[ 6] = k_madd_epi32_avx2(u[2], k32_p16_m16);
          v[ 7] = k_madd_epi32_avx2(u[3], k32_p16_m16);
          v[ 8] = k_madd_epi32_avx2(u[4], k32_p24_p08);
          v[ 9] = k_madd_epi32_avx2(u[5], k32_p24_p08);
          v[10] = k_madd_epi32_avx2(u[6], k32_p24_p08);
          v[11] = k_madd_epi32_avx2(u[7], k32_p24_p08);
          v[12] = k_madd_epi32_avx2(u[4], k32_m08_p24);
          v[13] = k_madd_epi32_avx2(u[5], k32_m08_p24);
          v[14] = k_madd_epi32_avx2(u[6], k32_m08_p24);
          v[15] = k_madd_epi32_avx2(u[7], k32_m08_p24);

          u[0] = k_packs_epi64_avx2(v[0], v[1]);
          u[1] = k_packs_epi64_avx2(v[2], v[3]);
          u[2] = k_packs_epi64_avx2(v[4], v[5]);
          u[3] = k_packs_epi64_avx2(v[6], v[7]);
          u[4] = k_packs_epi64_avx2(v[8], v[9]);
          u[5] = k_packs_epi64_avx2(v[10], v[11]);
          u[6] = k_packs_epi64_avx2(v[12], v[13]);
          u[7] = k_packs_epi64_avx2(v[14], v[15]);

          v[0] = _mm256_add_epi32(u[0], k__DCT_CONST_ROUNDING);
          v[1] = _mm256_add_epi32(u[1], k__DCT_CONST_ROUNDING);
          v[2] = _mm256_add_epi32(u[2], k__DCT_CONST_ROUNDING);
          v[3] = _mm256_add_epi32(u[3], k__DCT_CONST_ROUNDING);
          v[4] = _mm256_add_epi32(u[4], k__DCT_CONST_ROUNDING);
          v[5] = _mm256_add_epi32(u[5], k__DCT_CONST_ROUNDING);
          v[6] = _mm256_add_epi32(u[6], k__DCT_CONST_ROUNDING);
          v[7] = _mm256_add_epi32(u[7], k__DCT_CONST_ROUNDING);

          u[0] = _mm256_srai_epi32(v[0], DCT_CONST_BITS);
          u[1] = _mm256_srai_epi32(v[1], DCT_CONST_BITS);
          u[2] = _mm256_srai_epi32(v[2], DCT_CONST_BITS);
          u[3] = _mm256_srai_epi32(v[3], DCT_CONST_BITS);
          u[4] = _mm256_srai_epi32(v[4], DCT_CONST_BITS);
          u[5] = _mm256_srai_epi32(v[5], DCT_CONST_BITS);
          u[6] = _mm256_srai_epi32(v[6], DCT_CONST_BITS);
          u[7] = _mm256_srai_epi32(v[7], DCT_CONST_BITS);

          sign[0] = _mm256_cmpgt_epi32(kZero,u[0]);
          sign[1] = _mm256_cmpgt_epi32(kZero,u[1]);
          sign[2] = _mm256_cmpgt_epi32(kZero,u[2]);
          sign[3] = _mm256_cmpgt_epi32(kZero,u[3]);
          sign[4] = _mm256_cmpgt_epi32(kZero,u[4]);
          sign[5] = _mm256_cmpgt_epi32(kZero,u[5]);
          sign[6] = _mm256_cmpgt_epi32(kZero,u[6]);
          sign[7] = _mm256_cmpgt_epi32(kZero,u[7]);

          u[0] = _mm256_sub_epi32(u[0], sign[0]);
          u[1] = _mm256_sub_epi32(u[1], sign[1]);
          u[2] = _mm256_sub_epi32(u[2], sign[2]);
          u[3] = _mm256_sub_epi32(u[3], sign[3]);
          u[4] = _mm256_sub_epi32(u[4], sign[4]);
          u[5] = _mm256_sub_epi32(u[5], sign[5]);
          u[6] = _mm256_sub_epi32(u[6], sign[6]);
          u[7] = _mm256_sub_epi32(u[7], sign[7]);

          u[0] = _mm256_add_epi32(u[0], K32One);
          u[1] = _mm256_add_epi32(u[1], K32One);
          u[2] = _mm256_add_epi32(u[2], K32One);
          u[3] = _mm256_add_epi32(u[3], K32One);
          u[4] = _mm256_add_epi32(u[4], K32One);
          u[5] = _mm256_add_epi32(u[5], K32One);
          u[6] = _mm256_add_epi32(u[6], K32One);
          u[7] = _mm256_add_epi32(u[7], K32One);

          u[0] = _mm256_srai_epi32(u[0], 2);
          u[1] = _mm256_srai_epi32(u[1], 2);
          u[2] = _mm256_srai_epi32(u[2], 2);
          u[3] = _mm256_srai_epi32(u[3], 2);
          u[4] = _mm256_srai_epi32(u[4], 2);
          u[5] = _mm256_srai_epi32(u[5], 2);
          u[6] = _mm256_srai_epi32(u[6], 2);
          u[7] = _mm256_srai_epi32(u[7], 2);

          // Combine
          out[ 0] = _mm256_packs_epi32(u[0], u[1]);
          out[16] = _mm256_packs_epi32(u[2], u[3]);
          out[ 8] = _mm256_packs_epi32(u[4], u[5]);
          out[24] = _mm256_packs_epi32(u[6], u[7]);
        }
        {
          const __m256i k32_m08_p24 = pair256_set_epi32(-cospi_8_64, cospi_24_64);
          const __m256i k32_m24_m08 = pair256_set_epi32(-cospi_24_64, -cospi_8_64);
          const __m256i k32_p24_p08 = pair256_set_epi32(cospi_24_64, cospi_8_64);

          u[0] = _mm256_unpacklo_epi32(lstep1[18], lstep1[28]);
          u[1] = _mm256_unpackhi_epi32(lstep1[18], lstep1[28]);
          u[2] = _mm256_unpacklo_epi32(lstep1[19], lstep1[29]);
          u[3] = _mm256_unpackhi_epi32(lstep1[19], lstep1[29]);
          u[4] = _mm256_unpacklo_epi32(lstep1[20], lstep1[26]);
          u[5] = _mm256_unpackhi_epi32(lstep1[20], lstep1[26]);
          u[6] = _mm256_unpacklo_epi32(lstep1[21], lstep1[27]);
          u[7] = _mm256_unpackhi_epi32(lstep1[21], lstep1[27]);

          v[0] = k_madd_epi32_avx2(u[0], k32_m08_p24);
          v[1] = k_madd_epi32_avx2(u[1], k32_m08_p24);
          v[2] = k_madd_epi32_avx2(u[2], k32_m08_p24);
          v[3] = k_madd_epi32_avx2(u[3], k32_m08_p24);
          v[4] = k_madd_epi32_avx2(u[4], k32_m24_m08);
          v[5] = k_madd_epi32_avx2(u[5], k32_m24_m08);
          v[6] = k_madd_epi32_avx2(u[6], k32_m24_m08);
          v[7] = k_madd_epi32_avx2(u[7], k32_m24_m08);
          v[ 8] = k_madd_epi32_avx2(u[4], k32_m08_p24);
          v[ 9] = k_madd_epi32_avx2(u[5], k32_m08_p24);
          v[10] = k_madd_epi32_avx2(u[6], k32_m08_p24);
          v[11] = k_madd_epi32_avx2(u[7], k32_m08_p24);
          v[12] = k_madd_epi32_avx2(u[0], k32_p24_p08);
          v[13] = k_madd_epi32_avx2(u[1], k32_p24_p08);
          v[14] = k_madd_epi32_avx2(u[2], k32_p24_p08);
          v[15] = k_madd_epi32_avx2(u[3], k32_p24_p08);

          u[0] = k_packs_epi64_avx2(v[0], v[1]);
          u[1] = k_packs_epi64_avx2(v[2], v[3]);
          u[2] = k_packs_epi64_avx2(v[4], v[5]);
          u[3] = k_packs_epi64_avx2(v[6], v[7]);
          u[4] = k_packs_epi64_avx2(v[8], v[9]);
          u[5] = k_packs_epi64_avx2(v[10], v[11]);
          u[6] = k_packs_epi64_avx2(v[12], v[13]);
          u[7] = k_packs_epi64_avx2(v[14], v[15]);

          u[0] = _mm256_add_epi32(u[0], k__DCT_CONST_ROUNDING);
          u[1] = _mm256_add_epi32(u[1], k__DCT_CONST_ROUNDING);
          u[2] = _mm256_add_epi32(u[2], k__DCT_CONST_ROUNDING);
          u[3] = _mm256_add_epi32(u[3], k__DCT_CONST_ROUNDING);
          u[4] = _mm256_add_epi32(u[4], k__DCT_CONST_ROUNDING);
          u[5] = _mm256_add_epi32(u[5], k__DCT_CONST_ROUNDING);
          u[6] = _mm256_add_epi32(u[6], k__DCT_CONST_ROUNDING);
          u[7] = _mm256_add_epi32(u[7], k__DCT_CONST_ROUNDING);

          lstep2[18] = _mm256_srai_epi32(u[0], DCT_CONST_BITS);
          lstep2[19] = _mm256_srai_epi32(u[1], DCT_CONST_BITS);
          lstep2[20] = _mm256_srai_epi32(u[2], DCT_CONST_BITS);
          lstep2[21] = _mm256_srai_epi32(u[3], DCT_CONST_BITS);
          lstep2[26] = _mm256_srai_epi32(u[4], DCT_CONST_BITS);
          lstep2[27] = _mm256_srai_epi32(u[5], DCT_CONST_BITS);
          lstep2[28] = _mm256_srai_epi32(u[6], DCT_CONST_BITS);
          lstep2[29] = _mm256_srai_epi32(u[7], DCT_CONST_BITS);
        }
        {
          lstep2[32] = _mm256_add_epi32(lstep1[38], lstep3[32]);
          lstep2[33] = _mm256_add_epi32(lstep1[39], lstep3[33]);
          lstep2[34] = _mm256_add_epi32(lstep1[36], lstep3[34]);
          lstep2[35] = _mm256_add_epi32(lstep1[37], lstep3[35]);
          lstep2[36] = _mm256_sub_epi32(lstep3[34], lstep1[36]);
          lstep2[37] = _mm256_sub_epi32(lstep3[35], lstep1[37]);
          lstep2[38] = _mm256_sub_epi32(lstep3[32], lstep1[38]);
          lstep2[39] = _mm256_sub_epi32(lstep3[33], lstep1[39]);
          lstep2[40] = _mm256_sub_epi32(lstep3[46], lstep1[40]);
          lstep2[41] = _mm256_sub_epi32(lstep3[47], lstep1[41]);
          lstep2[42] = _mm256_sub_epi32(lstep3[44], lstep1[42]);
          lstep2[43] = _mm256_sub_epi32(lstep3[45], lstep1[43]);
          lstep2[44] = _mm256_add_epi32(lstep1[42], lstep3[44]);
          lstep2[45] = _mm256_add_epi32(lstep1[43], lstep3[45]);
          lstep2[46] = _mm256_add_epi32(lstep1[40], lstep3[46]);
          lstep2[47] = _mm256_add_epi32(lstep1[41], lstep3[47]);
          lstep2[48] = _mm256_add_epi32(lstep1[54], lstep3[48]);
          lstep2[49] = _mm256_add_epi32(lstep1[55], lstep3[49]);
          lstep2[50] = _mm256_add_epi32(lstep1[52], lstep3[50]);
          lstep2[51] = _mm256_add_epi32(lstep1[53], lstep3[51]);
          lstep2[52] = _mm256_sub_epi32(lstep3[50], lstep1[52]);
          lstep2[53] = _mm256_sub_epi32(lstep3[51], lstep1[53]);
          lstep2[54] = _mm256_sub_epi32(lstep3[48], lstep1[54]);
          lstep2[55] = _mm256_sub_epi32(lstep3[49], lstep1[55]);
          lstep2[56] = _mm256_sub_epi32(lstep3[62], lstep1[56]);
          lstep2[57] = _mm256_sub_epi32(lstep3[63], lstep1[57]);
          lstep2[58] = _mm256_sub_epi32(lstep3[60], lstep1[58]);
          lstep2[59] = _mm256_sub_epi32(lstep3[61], lstep1[59]);
          lstep2[60] = _mm256_add_epi32(lstep1[58], lstep3[60]);
          lstep2[61] = _mm256_add_epi32(lstep1[59], lstep3[61]);
          lstep2[62] = _mm256_add_epi32(lstep1[56], lstep3[62]);
          lstep2[63] = _mm256_add_epi32(lstep1[57], lstep3[63]);
        }
        // stage 6
        {
          const __m256i k32_p28_p04 = pair256_set_epi32(cospi_28_64, cospi_4_64);
          const __m256i k32_p12_p20 = pair256_set_epi32(cospi_12_64, cospi_20_64);
          const __m256i k32_m20_p12 = pair256_set_epi32(-cospi_20_64, cospi_12_64);
          const __m256i k32_m04_p28 = pair256_set_epi32(-cospi_4_64, cospi_28_64);

          u[0] = _mm256_unpacklo_epi32(lstep2[ 8], lstep2[14]);
          u[1] = _mm256_unpackhi_epi32(lstep2[ 8], lstep2[14]);
          u[2] = _mm256_unpacklo_epi32(lstep2[ 9], lstep2[15]);
          u[3] = _mm256_unpackhi_epi32(lstep2[ 9], lstep2[15]);
          u[4] = _mm256_unpacklo_epi32(lstep2[10], lstep2[12]);
          u[5] = _mm256_unpackhi_epi32(lstep2[10], lstep2[12]);
          u[6] = _mm256_unpacklo_epi32(lstep2[11], lstep2[13]);
          u[7] = _mm256_unpackhi_epi32(lstep2[11], lstep2[13]);
          u[8] = _mm256_unpacklo_epi32(lstep2[10], lstep2[12]);
          u[9] = _mm256_unpackhi_epi32(lstep2[10], lstep2[12]);
          u[10] = _mm256_unpacklo_epi32(lstep2[11], lstep2[13]);
          u[11] = _mm256_unpackhi_epi32(lstep2[11], lstep2[13]);
          u[12] = _mm256_unpacklo_epi32(lstep2[ 8], lstep2[14]);
          u[13] = _mm256_unpackhi_epi32(lstep2[ 8], lstep2[14]);
          u[14] = _mm256_unpacklo_epi32(lstep2[ 9], lstep2[15]);
          u[15] = _mm256_unpackhi_epi32(lstep2[ 9], lstep2[15]);

          v[0] = k_madd_epi32_avx2(u[0], k32_p28_p04);
          v[1] = k_madd_epi32_avx2(u[1], k32_p28_p04);
          v[2] = k_madd_epi32_avx2(u[2], k32_p28_p04);
          v[3] = k_madd_epi32_avx2(u[3], k32_p28_p04);
          v[4] = k_madd_epi32_avx2(u[4], k32_p12_p20);
          v[5] = k_madd_epi32_avx2(u[5], k32_p12_p20);
          v[6] = k_madd_epi32_avx2(u[6], k32_p12_p20);
          v[7] = k_madd_epi32_avx2(u[7], k32_p12_p20);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_m20_p12);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_m20_p12);
          v[10] = k_madd_epi32_avx2(u[10], k32_m20_p12);
          v[11] = k_madd_epi32_avx2(u[11], k32_m20_p12);
          v[12] = k_madd_epi32_avx2(u[12], k32_m04_p28);
          v[13] = k_madd_epi32_avx2(u[13], k32_m04_p28);
          v[14] = k_madd_epi32_avx2(u[14], k32_m04_p28);
          v[15] = k_madd_epi32_avx2(u[15], k32_m04_p28);

          u[0] = k_packs_epi64_avx2(v[0], v[1]);
          u[1] = k_packs_epi64_avx2(v[2], v[3]);
          u[2] = k_packs_epi64_avx2(v[4], v[5]);
          u[3] = k_packs_epi64_avx2(v[6], v[7]);
          u[4] = k_packs_epi64_avx2(v[8], v[9]);
          u[5] = k_packs_epi64_avx2(v[10], v[11]);
          u[6] = k_packs_epi64_avx2(v[12], v[13]);
          u[7] = k_packs_epi64_avx2(v[14], v[15]);

          v[0] = _mm256_add_epi32(u[0], k__DCT_CONST_ROUNDING);
          v[1] = _mm256_add_epi32(u[1], k__DCT_CONST_ROUNDING);
          v[2] = _mm256_add_epi32(u[2], k__DCT_CONST_ROUNDING);
          v[3] = _mm256_add_epi32(u[3], k__DCT_CONST_ROUNDING);
          v[4] = _mm256_add_epi32(u[4], k__DCT_CONST_ROUNDING);
          v[5] = _mm256_add_epi32(u[5], k__DCT_CONST_ROUNDING);
          v[6] = _mm256_add_epi32(u[6], k__DCT_CONST_ROUNDING);
          v[7] = _mm256_add_epi32(u[7], k__DCT_CONST_ROUNDING);

          u[0] = _mm256_srai_epi32(v[0], DCT_CONST_BITS);
          u[1] = _mm256_srai_epi32(v[1], DCT_CONST_BITS);
          u[2] = _mm256_srai_epi32(v[2], DCT_CONST_BITS);
          u[3] = _mm256_srai_epi32(v[3], DCT_CONST_BITS);
          u[4] = _mm256_srai_epi32(v[4], DCT_CONST_BITS);
          u[5] = _mm256_srai_epi32(v[5], DCT_CONST_BITS);
          u[6] = _mm256_srai_epi32(v[6], DCT_CONST_BITS);
          u[7] = _mm256_srai_epi32(v[7], DCT_CONST_BITS);

          sign[0] = _mm256_cmpgt_epi32(kZero,u[0]);
          sign[1] = _mm256_cmpgt_epi32(kZero,u[1]);
          sign[2] = _mm256_cmpgt_epi32(kZero,u[2]);
          sign[3] = _mm256_cmpgt_epi32(kZero,u[3]);
          sign[4] = _mm256_cmpgt_epi32(kZero,u[4]);
          sign[5] = _mm256_cmpgt_epi32(kZero,u[5]);
          sign[6] = _mm256_cmpgt_epi32(kZero,u[6]);
          sign[7] = _mm256_cmpgt_epi32(kZero,u[7]);

          u[0] = _mm256_sub_epi32(u[0], sign[0]);
          u[1] = _mm256_sub_epi32(u[1], sign[1]);
          u[2] = _mm256_sub_epi32(u[2], sign[2]);
          u[3] = _mm256_sub_epi32(u[3], sign[3]);
          u[4] = _mm256_sub_epi32(u[4], sign[4]);
          u[5] = _mm256_sub_epi32(u[5], sign[5]);
          u[6] = _mm256_sub_epi32(u[6], sign[6]);
          u[7] = _mm256_sub_epi32(u[7], sign[7]);

          u[0] = _mm256_add_epi32(u[0], K32One);
          u[1] = _mm256_add_epi32(u[1], K32One);
          u[2] = _mm256_add_epi32(u[2], K32One);
          u[3] = _mm256_add_epi32(u[3], K32One);
          u[4] = _mm256_add_epi32(u[4], K32One);
          u[5] = _mm256_add_epi32(u[5], K32One);
          u[6] = _mm256_add_epi32(u[6], K32One);
          u[7] = _mm256_add_epi32(u[7], K32One);

          u[0] = _mm256_srai_epi32(u[0], 2);
          u[1] = _mm256_srai_epi32(u[1], 2);
          u[2] = _mm256_srai_epi32(u[2], 2);
          u[3] = _mm256_srai_epi32(u[3], 2);
          u[4] = _mm256_srai_epi32(u[4], 2);
          u[5] = _mm256_srai_epi32(u[5], 2);
          u[6] = _mm256_srai_epi32(u[6], 2);
          u[7] = _mm256_srai_epi32(u[7], 2);

          out[ 4] = _mm256_packs_epi32(u[0], u[1]);
          out[20] = _mm256_packs_epi32(u[2], u[3]);
          out[12] = _mm256_packs_epi32(u[4], u[5]);
          out[28] = _mm256_packs_epi32(u[6], u[7]);
        }
        {
          lstep3[16] = _mm256_add_epi32(lstep2[18], lstep1[16]);
          lstep3[17] = _mm256_add_epi32(lstep2[19], lstep1[17]);
          lstep3[18] = _mm256_sub_epi32(lstep1[16], lstep2[18]);
          lstep3[19] = _mm256_sub_epi32(lstep1[17], lstep2[19]);
          lstep3[20] = _mm256_sub_epi32(lstep1[22], lstep2[20]);
          lstep3[21] = _mm256_sub_epi32(lstep1[23], lstep2[21]);
          lstep3[22] = _mm256_add_epi32(lstep2[20], lstep1[22]);
          lstep3[23] = _mm256_add_epi32(lstep2[21], lstep1[23]);
          lstep3[24] = _mm256_add_epi32(lstep2[26], lstep1[24]);
          lstep3[25] = _mm256_add_epi32(lstep2[27], lstep1[25]);
          lstep3[26] = _mm256_sub_epi32(lstep1[24], lstep2[26]);
          lstep3[27] = _mm256_sub_epi32(lstep1[25], lstep2[27]);
          lstep3[28] = _mm256_sub_epi32(lstep1[30], lstep2[28]);
          lstep3[29] = _mm256_sub_epi32(lstep1[31], lstep2[29]);
          lstep3[30] = _mm256_add_epi32(lstep2[28], lstep1[30]);
          lstep3[31] = _mm256_add_epi32(lstep2[29], lstep1[31]);
        }
        {
          const __m256i k32_m04_p28 = pair256_set_epi32(-cospi_4_64, cospi_28_64);
          const __m256i k32_m28_m04 = pair256_set_epi32(-cospi_28_64, -cospi_4_64);
          const __m256i k32_m20_p12 = pair256_set_epi32(-cospi_20_64, cospi_12_64);
          const __m256i k32_m12_m20 = pair256_set_epi32(-cospi_12_64,
                                                     -cospi_20_64);
          const __m256i k32_p12_p20 = pair256_set_epi32(cospi_12_64, cospi_20_64);
          const __m256i k32_p28_p04 = pair256_set_epi32(cospi_28_64, cospi_4_64);

          u[ 0] = _mm256_unpacklo_epi32(lstep2[34], lstep2[60]);
          u[ 1] = _mm256_unpackhi_epi32(lstep2[34], lstep2[60]);
          u[ 2] = _mm256_unpacklo_epi32(lstep2[35], lstep2[61]);
          u[ 3] = _mm256_unpackhi_epi32(lstep2[35], lstep2[61]);
          u[ 4] = _mm256_unpacklo_epi32(lstep2[36], lstep2[58]);
          u[ 5] = _mm256_unpackhi_epi32(lstep2[36], lstep2[58]);
          u[ 6] = _mm256_unpacklo_epi32(lstep2[37], lstep2[59]);
          u[ 7] = _mm256_unpackhi_epi32(lstep2[37], lstep2[59]);
          u[ 8] = _mm256_unpacklo_epi32(lstep2[42], lstep2[52]);
          u[ 9] = _mm256_unpackhi_epi32(lstep2[42], lstep2[52]);
          u[10] = _mm256_unpacklo_epi32(lstep2[43], lstep2[53]);
          u[11] = _mm256_unpackhi_epi32(lstep2[43], lstep2[53]);
          u[12] = _mm256_unpacklo_epi32(lstep2[44], lstep2[50]);
          u[13] = _mm256_unpackhi_epi32(lstep2[44], lstep2[50]);
          u[14] = _mm256_unpacklo_epi32(lstep2[45], lstep2[51]);
          u[15] = _mm256_unpackhi_epi32(lstep2[45], lstep2[51]);

          v[ 0] = k_madd_epi32_avx2(u[ 0], k32_m04_p28);
          v[ 1] = k_madd_epi32_avx2(u[ 1], k32_m04_p28);
          v[ 2] = k_madd_epi32_avx2(u[ 2], k32_m04_p28);
          v[ 3] = k_madd_epi32_avx2(u[ 3], k32_m04_p28);
          v[ 4] = k_madd_epi32_avx2(u[ 4], k32_m28_m04);
          v[ 5] = k_madd_epi32_avx2(u[ 5], k32_m28_m04);
          v[ 6] = k_madd_epi32_avx2(u[ 6], k32_m28_m04);
          v[ 7] = k_madd_epi32_avx2(u[ 7], k32_m28_m04);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_m20_p12);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_m20_p12);
          v[10] = k_madd_epi32_avx2(u[10], k32_m20_p12);
          v[11] = k_madd_epi32_avx2(u[11], k32_m20_p12);
          v[12] = k_madd_epi32_avx2(u[12], k32_m12_m20);
          v[13] = k_madd_epi32_avx2(u[13], k32_m12_m20);
          v[14] = k_madd_epi32_avx2(u[14], k32_m12_m20);
          v[15] = k_madd_epi32_avx2(u[15], k32_m12_m20);
          v[16] = k_madd_epi32_avx2(u[12], k32_m20_p12);
          v[17] = k_madd_epi32_avx2(u[13], k32_m20_p12);
          v[18] = k_madd_epi32_avx2(u[14], k32_m20_p12);
          v[19] = k_madd_epi32_avx2(u[15], k32_m20_p12);
          v[20] = k_madd_epi32_avx2(u[ 8], k32_p12_p20);
          v[21] = k_madd_epi32_avx2(u[ 9], k32_p12_p20);
          v[22] = k_madd_epi32_avx2(u[10], k32_p12_p20);
          v[23] = k_madd_epi32_avx2(u[11], k32_p12_p20);
          v[24] = k_madd_epi32_avx2(u[ 4], k32_m04_p28);
          v[25] = k_madd_epi32_avx2(u[ 5], k32_m04_p28);
          v[26] = k_madd_epi32_avx2(u[ 6], k32_m04_p28);
          v[27] = k_madd_epi32_avx2(u[ 7], k32_m04_p28);
          v[28] = k_madd_epi32_avx2(u[ 0], k32_p28_p04);
          v[29] = k_madd_epi32_avx2(u[ 1], k32_p28_p04);
          v[30] = k_madd_epi32_avx2(u[ 2], k32_p28_p04);
          v[31] = k_madd_epi32_avx2(u[ 3], k32_p28_p04);

          u[ 0] = k_packs_epi64_avx2(v[ 0], v[ 1]);
          u[ 1] = k_packs_epi64_avx2(v[ 2], v[ 3]);
          u[ 2] = k_packs_epi64_avx2(v[ 4], v[ 5]);
          u[ 3] = k_packs_epi64_avx2(v[ 6], v[ 7]);
          u[ 4] = k_packs_epi64_avx2(v[ 8], v[ 9]);
          u[ 5] = k_packs_epi64_avx2(v[10], v[11]);
          u[ 6] = k_packs_epi64_avx2(v[12], v[13]);
          u[ 7] = k_packs_epi64_avx2(v[14], v[15]);
          u[ 8] = k_packs_epi64_avx2(v[16], v[17]);
          u[ 9] = k_packs_epi64_avx2(v[18], v[19]);
          u[10] = k_packs_epi64_avx2(v[20], v[21]);
          u[11] = k_packs_epi64_avx2(v[22], v[23]);
          u[12] = k_packs_epi64_avx2(v[24], v[25]);
          u[13] = k_packs_epi64_avx2(v[26], v[27]);
          u[14] = k_packs_epi64_avx2(v[28], v[29]);
          u[15] = k_packs_epi64_avx2(v[30], v[31]);

          v[ 0] = _mm256_add_epi32(u[ 0], k__DCT_CONST_ROUNDING);
          v[ 1] = _mm256_add_epi32(u[ 1], k__DCT_CONST_ROUNDING);
          v[ 2] = _mm256_add_epi32(u[ 2], k__DCT_CONST_ROUNDING);
          v[ 3] = _mm256_add_epi32(u[ 3], k__DCT_CONST_ROUNDING);
          v[ 4] = _mm256_add_epi32(u[ 4], k__DCT_CONST_ROUNDING);
          v[ 5] = _mm256_add_epi32(u[ 5], k__DCT_CONST_ROUNDING);
          v[ 6] = _mm256_add_epi32(u[ 6], k__DCT_CONST_ROUNDING);
          v[ 7] = _mm256_add_epi32(u[ 7], k__DCT_CONST_ROUNDING);
          v[ 8] = _mm256_add_epi32(u[ 8], k__DCT_CONST_ROUNDING);
          v[ 9] = _mm256_add_epi32(u[ 9], k__DCT_CONST_ROUNDING);
          v[10] = _mm256_add_epi32(u[10], k__DCT_CONST_ROUNDING);
          v[11] = _mm256_add_epi32(u[11], k__DCT_CONST_ROUNDING);
          v[12] = _mm256_add_epi32(u[12], k__DCT_CONST_ROUNDING);
          v[13] = _mm256_add_epi32(u[13], k__DCT_CONST_ROUNDING);
          v[14] = _mm256_add_epi32(u[14], k__DCT_CONST_ROUNDING);
          v[15] = _mm256_add_epi32(u[15], k__DCT_CONST_ROUNDING);

          lstep3[34] = _mm256_srai_epi32(v[ 0], DCT_CONST_BITS);
          lstep3[35] = _mm256_srai_epi32(v[ 1], DCT_CONST_BITS);
          lstep3[36] = _mm256_srai_epi32(v[ 2], DCT_CONST_BITS);
          lstep3[37] = _mm256_srai_epi32(v[ 3], DCT_CONST_BITS);
          lstep3[42] = _mm256_srai_epi32(v[ 4], DCT_CONST_BITS);
          lstep3[43] = _mm256_srai_epi32(v[ 5], DCT_CONST_BITS);
          lstep3[44] = _mm256_srai_epi32(v[ 6], DCT_CONST_BITS);
          lstep3[45] = _mm256_srai_epi32(v[ 7], DCT_CONST_BITS);
          lstep3[50] = _mm256_srai_epi32(v[ 8], DCT_CONST_BITS);
          lstep3[51] = _mm256_srai_epi32(v[ 9], DCT_CONST_BITS);
          lstep3[52] = _mm256_srai_epi32(v[10], DCT_CONST_BITS);
          lstep3[53] = _mm256_srai_epi32(v[11], DCT_CONST_BITS);
          lstep3[58] = _mm256_srai_epi32(v[12], DCT_CONST_BITS);
          lstep3[59] = _mm256_srai_epi32(v[13], DCT_CONST_BITS);
          lstep3[60] = _mm256_srai_epi32(v[14], DCT_CONST_BITS);
          lstep3[61] = _mm256_srai_epi32(v[15], DCT_CONST_BITS);
        }
        // stage 7
        {
          const __m256i k32_p30_p02 = pair256_set_epi32(cospi_30_64, cospi_2_64);
          const __m256i k32_p14_p18 = pair256_set_epi32(cospi_14_64, cospi_18_64);
          const __m256i k32_p22_p10 = pair256_set_epi32(cospi_22_64, cospi_10_64);
          const __m256i k32_p06_p26 = pair256_set_epi32(cospi_6_64,  cospi_26_64);
          const __m256i k32_m26_p06 = pair256_set_epi32(-cospi_26_64, cospi_6_64);
          const __m256i k32_m10_p22 = pair256_set_epi32(-cospi_10_64, cospi_22_64);
          const __m256i k32_m18_p14 = pair256_set_epi32(-cospi_18_64, cospi_14_64);
          const __m256i k32_m02_p30 = pair256_set_epi32(-cospi_2_64, cospi_30_64);

          u[ 0] = _mm256_unpacklo_epi32(lstep3[16], lstep3[30]);
          u[ 1] = _mm256_unpackhi_epi32(lstep3[16], lstep3[30]);
          u[ 2] = _mm256_unpacklo_epi32(lstep3[17], lstep3[31]);
          u[ 3] = _mm256_unpackhi_epi32(lstep3[17], lstep3[31]);
          u[ 4] = _mm256_unpacklo_epi32(lstep3[18], lstep3[28]);
          u[ 5] = _mm256_unpackhi_epi32(lstep3[18], lstep3[28]);
          u[ 6] = _mm256_unpacklo_epi32(lstep3[19], lstep3[29]);
          u[ 7] = _mm256_unpackhi_epi32(lstep3[19], lstep3[29]);
          u[ 8] = _mm256_unpacklo_epi32(lstep3[20], lstep3[26]);
          u[ 9] = _mm256_unpackhi_epi32(lstep3[20], lstep3[26]);
          u[10] = _mm256_unpacklo_epi32(lstep3[21], lstep3[27]);
          u[11] = _mm256_unpackhi_epi32(lstep3[21], lstep3[27]);
          u[12] = _mm256_unpacklo_epi32(lstep3[22], lstep3[24]);
          u[13] = _mm256_unpackhi_epi32(lstep3[22], lstep3[24]);
          u[14] = _mm256_unpacklo_epi32(lstep3[23], lstep3[25]);
          u[15] = _mm256_unpackhi_epi32(lstep3[23], lstep3[25]);

          v[ 0] = k_madd_epi32_avx2(u[ 0], k32_p30_p02);
          v[ 1] = k_madd_epi32_avx2(u[ 1], k32_p30_p02);
          v[ 2] = k_madd_epi32_avx2(u[ 2], k32_p30_p02);
          v[ 3] = k_madd_epi32_avx2(u[ 3], k32_p30_p02);
          v[ 4] = k_madd_epi32_avx2(u[ 4], k32_p14_p18);
          v[ 5] = k_madd_epi32_avx2(u[ 5], k32_p14_p18);
          v[ 6] = k_madd_epi32_avx2(u[ 6], k32_p14_p18);
          v[ 7] = k_madd_epi32_avx2(u[ 7], k32_p14_p18);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_p22_p10);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_p22_p10);
          v[10] = k_madd_epi32_avx2(u[10], k32_p22_p10);
          v[11] = k_madd_epi32_avx2(u[11], k32_p22_p10);
          v[12] = k_madd_epi32_avx2(u[12], k32_p06_p26);
          v[13] = k_madd_epi32_avx2(u[13], k32_p06_p26);
          v[14] = k_madd_epi32_avx2(u[14], k32_p06_p26);
          v[15] = k_madd_epi32_avx2(u[15], k32_p06_p26);
          v[16] = k_madd_epi32_avx2(u[12], k32_m26_p06);
          v[17] = k_madd_epi32_avx2(u[13], k32_m26_p06);
          v[18] = k_madd_epi32_avx2(u[14], k32_m26_p06);
          v[19] = k_madd_epi32_avx2(u[15], k32_m26_p06);
          v[20] = k_madd_epi32_avx2(u[ 8], k32_m10_p22);
          v[21] = k_madd_epi32_avx2(u[ 9], k32_m10_p22);
          v[22] = k_madd_epi32_avx2(u[10], k32_m10_p22);
          v[23] = k_madd_epi32_avx2(u[11], k32_m10_p22);
          v[24] = k_madd_epi32_avx2(u[ 4], k32_m18_p14);
          v[25] = k_madd_epi32_avx2(u[ 5], k32_m18_p14);
          v[26] = k_madd_epi32_avx2(u[ 6], k32_m18_p14);
          v[27] = k_madd_epi32_avx2(u[ 7], k32_m18_p14);
          v[28] = k_madd_epi32_avx2(u[ 0], k32_m02_p30);
          v[29] = k_madd_epi32_avx2(u[ 1], k32_m02_p30);
          v[30] = k_madd_epi32_avx2(u[ 2], k32_m02_p30);
          v[31] = k_madd_epi32_avx2(u[ 3], k32_m02_p30);

          u[ 0] = k_packs_epi64_avx2(v[ 0], v[ 1]);
          u[ 1] = k_packs_epi64_avx2(v[ 2], v[ 3]);
          u[ 2] = k_packs_epi64_avx2(v[ 4], v[ 5]);
          u[ 3] = k_packs_epi64_avx2(v[ 6], v[ 7]);
          u[ 4] = k_packs_epi64_avx2(v[ 8], v[ 9]);
          u[ 5] = k_packs_epi64_avx2(v[10], v[11]);
          u[ 6] = k_packs_epi64_avx2(v[12], v[13]);
          u[ 7] = k_packs_epi64_avx2(v[14], v[15]);
          u[ 8] = k_packs_epi64_avx2(v[16], v[17]);
          u[ 9] = k_packs_epi64_avx2(v[18], v[19]);
          u[10] = k_packs_epi64_avx2(v[20], v[21]);
          u[11] = k_packs_epi64_avx2(v[22], v[23]);
          u[12] = k_packs_epi64_avx2(v[24], v[25]);
          u[13] = k_packs_epi64_avx2(v[26], v[27]);
          u[14] = k_packs_epi64_avx2(v[28], v[29]);
          u[15] = k_packs_epi64_avx2(v[30], v[31]);

          v[ 0] = _mm256_add_epi32(u[ 0], k__DCT_CONST_ROUNDING);
          v[ 1] = _mm256_add_epi32(u[ 1], k__DCT_CONST_ROUNDING);
          v[ 2] = _mm256_add_epi32(u[ 2], k__DCT_CONST_ROUNDING);
          v[ 3] = _mm256_add_epi32(u[ 3], k__DCT_CONST_ROUNDING);
          v[ 4] = _mm256_add_epi32(u[ 4], k__DCT_CONST_ROUNDING);
          v[ 5] = _mm256_add_epi32(u[ 5], k__DCT_CONST_ROUNDING);
          v[ 6] = _mm256_add_epi32(u[ 6], k__DCT_CONST_ROUNDING);
          v[ 7] = _mm256_add_epi32(u[ 7], k__DCT_CONST_ROUNDING);
          v[ 8] = _mm256_add_epi32(u[ 8], k__DCT_CONST_ROUNDING);
          v[ 9] = _mm256_add_epi32(u[ 9], k__DCT_CONST_ROUNDING);
          v[10] = _mm256_add_epi32(u[10], k__DCT_CONST_ROUNDING);
          v[11] = _mm256_add_epi32(u[11], k__DCT_CONST_ROUNDING);
          v[12] = _mm256_add_epi32(u[12], k__DCT_CONST_ROUNDING);
          v[13] = _mm256_add_epi32(u[13], k__DCT_CONST_ROUNDING);
          v[14] = _mm256_add_epi32(u[14], k__DCT_CONST_ROUNDING);
          v[15] = _mm256_add_epi32(u[15], k__DCT_CONST_ROUNDING);

          u[ 0] = _mm256_srai_epi32(v[ 0], DCT_CONST_BITS);
          u[ 1] = _mm256_srai_epi32(v[ 1], DCT_CONST_BITS);
          u[ 2] = _mm256_srai_epi32(v[ 2], DCT_CONST_BITS);
          u[ 3] = _mm256_srai_epi32(v[ 3], DCT_CONST_BITS);
          u[ 4] = _mm256_srai_epi32(v[ 4], DCT_CONST_BITS);
          u[ 5] = _mm256_srai_epi32(v[ 5], DCT_CONST_BITS);
          u[ 6] = _mm256_srai_epi32(v[ 6], DCT_CONST_BITS);
          u[ 7] = _mm256_srai_epi32(v[ 7], DCT_CONST_BITS);
          u[ 8] = _mm256_srai_epi32(v[ 8], DCT_CONST_BITS);
          u[ 9] = _mm256_srai_epi32(v[ 9], DCT_CONST_BITS);
          u[10] = _mm256_srai_epi32(v[10], DCT_CONST_BITS);
          u[11] = _mm256_srai_epi32(v[11], DCT_CONST_BITS);
          u[12] = _mm256_srai_epi32(v[12], DCT_CONST_BITS);
          u[13] = _mm256_srai_epi32(v[13], DCT_CONST_BITS);
          u[14] = _mm256_srai_epi32(v[14], DCT_CONST_BITS);
          u[15] = _mm256_srai_epi32(v[15], DCT_CONST_BITS);

          v[ 0] = _mm256_cmpgt_epi32(kZero,u[ 0]);
          v[ 1] = _mm256_cmpgt_epi32(kZero,u[ 1]);
          v[ 2] = _mm256_cmpgt_epi32(kZero,u[ 2]);
          v[ 3] = _mm256_cmpgt_epi32(kZero,u[ 3]);
          v[ 4] = _mm256_cmpgt_epi32(kZero,u[ 4]);
          v[ 5] = _mm256_cmpgt_epi32(kZero,u[ 5]);
          v[ 6] = _mm256_cmpgt_epi32(kZero,u[ 6]);
          v[ 7] = _mm256_cmpgt_epi32(kZero,u[ 7]);
          v[ 8] = _mm256_cmpgt_epi32(kZero,u[ 8]);
          v[ 9] = _mm256_cmpgt_epi32(kZero,u[ 9]);
          v[10] = _mm256_cmpgt_epi32(kZero,u[10]);
          v[11] = _mm256_cmpgt_epi32(kZero,u[11]);
          v[12] = _mm256_cmpgt_epi32(kZero,u[12]);
          v[13] = _mm256_cmpgt_epi32(kZero,u[13]);
          v[14] = _mm256_cmpgt_epi32(kZero,u[14]);
          v[15] = _mm256_cmpgt_epi32(kZero,u[15]);

          u[ 0] = _mm256_sub_epi32(u[ 0], v[ 0]);
          u[ 1] = _mm256_sub_epi32(u[ 1], v[ 1]);
          u[ 2] = _mm256_sub_epi32(u[ 2], v[ 2]);
          u[ 3] = _mm256_sub_epi32(u[ 3], v[ 3]);
          u[ 4] = _mm256_sub_epi32(u[ 4], v[ 4]);
          u[ 5] = _mm256_sub_epi32(u[ 5], v[ 5]);
          u[ 6] = _mm256_sub_epi32(u[ 6], v[ 6]);
          u[ 7] = _mm256_sub_epi32(u[ 7], v[ 7]);
          u[ 8] = _mm256_sub_epi32(u[ 8], v[ 8]);
          u[ 9] = _mm256_sub_epi32(u[ 9], v[ 9]);
          u[10] = _mm256_sub_epi32(u[10], v[10]);
          u[11] = _mm256_sub_epi32(u[11], v[11]);
          u[12] = _mm256_sub_epi32(u[12], v[12]);
          u[13] = _mm256_sub_epi32(u[13], v[13]);
          u[14] = _mm256_sub_epi32(u[14], v[14]);
          u[15] = _mm256_sub_epi32(u[15], v[15]);

          v[ 0] = _mm256_add_epi32(u[ 0], K32One);
          v[ 1] = _mm256_add_epi32(u[ 1], K32One);
          v[ 2] = _mm256_add_epi32(u[ 2], K32One);
          v[ 3] = _mm256_add_epi32(u[ 3], K32One);
          v[ 4] = _mm256_add_epi32(u[ 4], K32One);
          v[ 5] = _mm256_add_epi32(u[ 5], K32One);
          v[ 6] = _mm256_add_epi32(u[ 6], K32One);
          v[ 7] = _mm256_add_epi32(u[ 7], K32One);
          v[ 8] = _mm256_add_epi32(u[ 8], K32One);
          v[ 9] = _mm256_add_epi32(u[ 9], K32One);
          v[10] = _mm256_add_epi32(u[10], K32One);
          v[11] = _mm256_add_epi32(u[11], K32One);
          v[12] = _mm256_add_epi32(u[12], K32One);
          v[13] = _mm256_add_epi32(u[13], K32One);
          v[14] = _mm256_add_epi32(u[14], K32One);
          v[15] = _mm256_add_epi32(u[15], K32One);

          u[ 0] = _mm256_srai_epi32(v[ 0], 2);
          u[ 1] = _mm256_srai_epi32(v[ 1], 2);
          u[ 2] = _mm256_srai_epi32(v[ 2], 2);
          u[ 3] = _mm256_srai_epi32(v[ 3], 2);
          u[ 4] = _mm256_srai_epi32(v[ 4], 2);
          u[ 5] = _mm256_srai_epi32(v[ 5], 2);
          u[ 6] = _mm256_srai_epi32(v[ 6], 2);
          u[ 7] = _mm256_srai_epi32(v[ 7], 2);
          u[ 8] = _mm256_srai_epi32(v[ 8], 2);
          u[ 9] = _mm256_srai_epi32(v[ 9], 2);
          u[10] = _mm256_srai_epi32(v[10], 2);
          u[11] = _mm256_srai_epi32(v[11], 2);
          u[12] = _mm256_srai_epi32(v[12], 2);
          u[13] = _mm256_srai_epi32(v[13], 2);
          u[14] = _mm256_srai_epi32(v[14], 2);
          u[15] = _mm256_srai_epi32(v[15], 2);

          out[ 2] = _mm256_packs_epi32(u[0], u[1]);
          out[18] = _mm256_packs_epi32(u[2], u[3]);
          out[10] = _mm256_packs_epi32(u[4], u[5]);
          out[26] = _mm256_packs_epi32(u[6], u[7]);
          out[ 6] = _mm256_packs_epi32(u[8], u[9]);
          out[22] = _mm256_packs_epi32(u[10], u[11]);
          out[14] = _mm256_packs_epi32(u[12], u[13]);
          out[30] = _mm256_packs_epi32(u[14], u[15]);
        }
        {
          lstep1[32] = _mm256_add_epi32(lstep3[34], lstep2[32]);
          lstep1[33] = _mm256_add_epi32(lstep3[35], lstep2[33]);
          lstep1[34] = _mm256_sub_epi32(lstep2[32], lstep3[34]);
          lstep1[35] = _mm256_sub_epi32(lstep2[33], lstep3[35]);
          lstep1[36] = _mm256_sub_epi32(lstep2[38], lstep3[36]);
          lstep1[37] = _mm256_sub_epi32(lstep2[39], lstep3[37]);
          lstep1[38] = _mm256_add_epi32(lstep3[36], lstep2[38]);
          lstep1[39] = _mm256_add_epi32(lstep3[37], lstep2[39]);
          lstep1[40] = _mm256_add_epi32(lstep3[42], lstep2[40]);
          lstep1[41] = _mm256_add_epi32(lstep3[43], lstep2[41]);
          lstep1[42] = _mm256_sub_epi32(lstep2[40], lstep3[42]);
          lstep1[43] = _mm256_sub_epi32(lstep2[41], lstep3[43]);
          lstep1[44] = _mm256_sub_epi32(lstep2[46], lstep3[44]);
          lstep1[45] = _mm256_sub_epi32(lstep2[47], lstep3[45]);
          lstep1[46] = _mm256_add_epi32(lstep3[44], lstep2[46]);
          lstep1[47] = _mm256_add_epi32(lstep3[45], lstep2[47]);
          lstep1[48] = _mm256_add_epi32(lstep3[50], lstep2[48]);
          lstep1[49] = _mm256_add_epi32(lstep3[51], lstep2[49]);
          lstep1[50] = _mm256_sub_epi32(lstep2[48], lstep3[50]);
          lstep1[51] = _mm256_sub_epi32(lstep2[49], lstep3[51]);
          lstep1[52] = _mm256_sub_epi32(lstep2[54], lstep3[52]);
          lstep1[53] = _mm256_sub_epi32(lstep2[55], lstep3[53]);
          lstep1[54] = _mm256_add_epi32(lstep3[52], lstep2[54]);
          lstep1[55] = _mm256_add_epi32(lstep3[53], lstep2[55]);
          lstep1[56] = _mm256_add_epi32(lstep3[58], lstep2[56]);
          lstep1[57] = _mm256_add_epi32(lstep3[59], lstep2[57]);
          lstep1[58] = _mm256_sub_epi32(lstep2[56], lstep3[58]);
          lstep1[59] = _mm256_sub_epi32(lstep2[57], lstep3[59]);
          lstep1[60] = _mm256_sub_epi32(lstep2[62], lstep3[60]);
          lstep1[61] = _mm256_sub_epi32(lstep2[63], lstep3[61]);
          lstep1[62] = _mm256_add_epi32(lstep3[60], lstep2[62]);
          lstep1[63] = _mm256_add_epi32(lstep3[61], lstep2[63]);
        }
        // stage 8
        {
          const __m256i k32_p31_p01 = pair256_set_epi32(cospi_31_64, cospi_1_64);
          const __m256i k32_p15_p17 = pair256_set_epi32(cospi_15_64, cospi_17_64);
          const __m256i k32_p23_p09 = pair256_set_epi32(cospi_23_64, cospi_9_64);
          const __m256i k32_p07_p25 = pair256_set_epi32(cospi_7_64, cospi_25_64);
          const __m256i k32_m25_p07 = pair256_set_epi32(-cospi_25_64, cospi_7_64);
          const __m256i k32_m09_p23 = pair256_set_epi32(-cospi_9_64, cospi_23_64);
          const __m256i k32_m17_p15 = pair256_set_epi32(-cospi_17_64, cospi_15_64);
          const __m256i k32_m01_p31 = pair256_set_epi32(-cospi_1_64, cospi_31_64);

          u[ 0] = _mm256_unpacklo_epi32(lstep1[32], lstep1[62]);
          u[ 1] = _mm256_unpackhi_epi32(lstep1[32], lstep1[62]);
          u[ 2] = _mm256_unpacklo_epi32(lstep1[33], lstep1[63]);
          u[ 3] = _mm256_unpackhi_epi32(lstep1[33], lstep1[63]);
          u[ 4] = _mm256_unpacklo_epi32(lstep1[34], lstep1[60]);
          u[ 5] = _mm256_unpackhi_epi32(lstep1[34], lstep1[60]);
          u[ 6] = _mm256_unpacklo_epi32(lstep1[35], lstep1[61]);
          u[ 7] = _mm256_unpackhi_epi32(lstep1[35], lstep1[61]);
          u[ 8] = _mm256_unpacklo_epi32(lstep1[36], lstep1[58]);
          u[ 9] = _mm256_unpackhi_epi32(lstep1[36], lstep1[58]);
          u[10] = _mm256_unpacklo_epi32(lstep1[37], lstep1[59]);
          u[11] = _mm256_unpackhi_epi32(lstep1[37], lstep1[59]);
          u[12] = _mm256_unpacklo_epi32(lstep1[38], lstep1[56]);
          u[13] = _mm256_unpackhi_epi32(lstep1[38], lstep1[56]);
          u[14] = _mm256_unpacklo_epi32(lstep1[39], lstep1[57]);
          u[15] = _mm256_unpackhi_epi32(lstep1[39], lstep1[57]);

          v[ 0] = k_madd_epi32_avx2(u[ 0], k32_p31_p01);
          v[ 1] = k_madd_epi32_avx2(u[ 1], k32_p31_p01);
          v[ 2] = k_madd_epi32_avx2(u[ 2], k32_p31_p01);
          v[ 3] = k_madd_epi32_avx2(u[ 3], k32_p31_p01);
          v[ 4] = k_madd_epi32_avx2(u[ 4], k32_p15_p17);
          v[ 5] = k_madd_epi32_avx2(u[ 5], k32_p15_p17);
          v[ 6] = k_madd_epi32_avx2(u[ 6], k32_p15_p17);
          v[ 7] = k_madd_epi32_avx2(u[ 7], k32_p15_p17);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_p23_p09);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_p23_p09);
          v[10] = k_madd_epi32_avx2(u[10], k32_p23_p09);
          v[11] = k_madd_epi32_avx2(u[11], k32_p23_p09);
          v[12] = k_madd_epi32_avx2(u[12], k32_p07_p25);
          v[13] = k_madd_epi32_avx2(u[13], k32_p07_p25);
          v[14] = k_madd_epi32_avx2(u[14], k32_p07_p25);
          v[15] = k_madd_epi32_avx2(u[15], k32_p07_p25);
          v[16] = k_madd_epi32_avx2(u[12], k32_m25_p07);
          v[17] = k_madd_epi32_avx2(u[13], k32_m25_p07);
          v[18] = k_madd_epi32_avx2(u[14], k32_m25_p07);
          v[19] = k_madd_epi32_avx2(u[15], k32_m25_p07);
          v[20] = k_madd_epi32_avx2(u[ 8], k32_m09_p23);
          v[21] = k_madd_epi32_avx2(u[ 9], k32_m09_p23);
          v[22] = k_madd_epi32_avx2(u[10], k32_m09_p23);
          v[23] = k_madd_epi32_avx2(u[11], k32_m09_p23);
          v[24] = k_madd_epi32_avx2(u[ 4], k32_m17_p15);
          v[25] = k_madd_epi32_avx2(u[ 5], k32_m17_p15);
          v[26] = k_madd_epi32_avx2(u[ 6], k32_m17_p15);
          v[27] = k_madd_epi32_avx2(u[ 7], k32_m17_p15);
          v[28] = k_madd_epi32_avx2(u[ 0], k32_m01_p31);
          v[29] = k_madd_epi32_avx2(u[ 1], k32_m01_p31);
          v[30] = k_madd_epi32_avx2(u[ 2], k32_m01_p31);
          v[31] = k_madd_epi32_avx2(u[ 3], k32_m01_p31);

          u[ 0] = k_packs_epi64_avx2(v[ 0], v[ 1]);
          u[ 1] = k_packs_epi64_avx2(v[ 2], v[ 3]);
          u[ 2] = k_packs_epi64_avx2(v[ 4], v[ 5]);
          u[ 3] = k_packs_epi64_avx2(v[ 6], v[ 7]);
          u[ 4] = k_packs_epi64_avx2(v[ 8], v[ 9]);
          u[ 5] = k_packs_epi64_avx2(v[10], v[11]);
          u[ 6] = k_packs_epi64_avx2(v[12], v[13]);
          u[ 7] = k_packs_epi64_avx2(v[14], v[15]);
          u[ 8] = k_packs_epi64_avx2(v[16], v[17]);
          u[ 9] = k_packs_epi64_avx2(v[18], v[19]);
          u[10] = k_packs_epi64_avx2(v[20], v[21]);
          u[11] = k_packs_epi64_avx2(v[22], v[23]);
          u[12] = k_packs_epi64_avx2(v[24], v[25]);
          u[13] = k_packs_epi64_avx2(v[26], v[27]);
          u[14] = k_packs_epi64_avx2(v[28], v[29]);
          u[15] = k_packs_epi64_avx2(v[30], v[31]);

          v[ 0] = _mm256_add_epi32(u[ 0], k__DCT_CONST_ROUNDING);
          v[ 1] = _mm256_add_epi32(u[ 1], k__DCT_CONST_ROUNDING);
          v[ 2] = _mm256_add_epi32(u[ 2], k__DCT_CONST_ROUNDING);
          v[ 3] = _mm256_add_epi32(u[ 3], k__DCT_CONST_ROUNDING);
          v[ 4] = _mm256_add_epi32(u[ 4], k__DCT_CONST_ROUNDING);
          v[ 5] = _mm256_add_epi32(u[ 5], k__DCT_CONST_ROUNDING);
          v[ 6] = _mm256_add_epi32(u[ 6], k__DCT_CONST_ROUNDING);
          v[ 7] = _mm256_add_epi32(u[ 7], k__DCT_CONST_ROUNDING);
          v[ 8] = _mm256_add_epi32(u[ 8], k__DCT_CONST_ROUNDING);
          v[ 9] = _mm256_add_epi32(u[ 9], k__DCT_CONST_ROUNDING);
          v[10] = _mm256_add_epi32(u[10], k__DCT_CONST_ROUNDING);
          v[11] = _mm256_add_epi32(u[11], k__DCT_CONST_ROUNDING);
          v[12] = _mm256_add_epi32(u[12], k__DCT_CONST_ROUNDING);
          v[13] = _mm256_add_epi32(u[13], k__DCT_CONST_ROUNDING);
          v[14] = _mm256_add_epi32(u[14], k__DCT_CONST_ROUNDING);
          v[15] = _mm256_add_epi32(u[15], k__DCT_CONST_ROUNDING);

          u[ 0] = _mm256_srai_epi32(v[ 0], DCT_CONST_BITS);
          u[ 1] = _mm256_srai_epi32(v[ 1], DCT_CONST_BITS);
          u[ 2] = _mm256_srai_epi32(v[ 2], DCT_CONST_BITS);
          u[ 3] = _mm256_srai_epi32(v[ 3], DCT_CONST_BITS);
          u[ 4] = _mm256_srai_epi32(v[ 4], DCT_CONST_BITS);
          u[ 5] = _mm256_srai_epi32(v[ 5], DCT_CONST_BITS);
          u[ 6] = _mm256_srai_epi32(v[ 6], DCT_CONST_BITS);
          u[ 7] = _mm256_srai_epi32(v[ 7], DCT_CONST_BITS);
          u[ 8] = _mm256_srai_epi32(v[ 8], DCT_CONST_BITS);
          u[ 9] = _mm256_srai_epi32(v[ 9], DCT_CONST_BITS);
          u[10] = _mm256_srai_epi32(v[10], DCT_CONST_BITS);
          u[11] = _mm256_srai_epi32(v[11], DCT_CONST_BITS);
          u[12] = _mm256_srai_epi32(v[12], DCT_CONST_BITS);
          u[13] = _mm256_srai_epi32(v[13], DCT_CONST_BITS);
          u[14] = _mm256_srai_epi32(v[14], DCT_CONST_BITS);
          u[15] = _mm256_srai_epi32(v[15], DCT_CONST_BITS);

          v[ 0] = _mm256_cmpgt_epi32(kZero,u[ 0]);
          v[ 1] = _mm256_cmpgt_epi32(kZero,u[ 1]);
          v[ 2] = _mm256_cmpgt_epi32(kZero,u[ 2]);
          v[ 3] = _mm256_cmpgt_epi32(kZero,u[ 3]);
          v[ 4] = _mm256_cmpgt_epi32(kZero,u[ 4]);
          v[ 5] = _mm256_cmpgt_epi32(kZero,u[ 5]);
          v[ 6] = _mm256_cmpgt_epi32(kZero,u[ 6]);
          v[ 7] = _mm256_cmpgt_epi32(kZero,u[ 7]);
          v[ 8] = _mm256_cmpgt_epi32(kZero,u[ 8]);
          v[ 9] = _mm256_cmpgt_epi32(kZero,u[ 9]);
          v[10] = _mm256_cmpgt_epi32(kZero,u[10]);
          v[11] = _mm256_cmpgt_epi32(kZero,u[11]);
          v[12] = _mm256_cmpgt_epi32(kZero,u[12]);
          v[13] = _mm256_cmpgt_epi32(kZero,u[13]);
          v[14] = _mm256_cmpgt_epi32(kZero,u[14]);
          v[15] = _mm256_cmpgt_epi32(kZero,u[15]);

          u[ 0] = _mm256_sub_epi32(u[ 0], v[ 0]);
          u[ 1] = _mm256_sub_epi32(u[ 1], v[ 1]);
          u[ 2] = _mm256_sub_epi32(u[ 2], v[ 2]);
          u[ 3] = _mm256_sub_epi32(u[ 3], v[ 3]);
          u[ 4] = _mm256_sub_epi32(u[ 4], v[ 4]);
          u[ 5] = _mm256_sub_epi32(u[ 5], v[ 5]);
          u[ 6] = _mm256_sub_epi32(u[ 6], v[ 6]);
          u[ 7] = _mm256_sub_epi32(u[ 7], v[ 7]);
          u[ 8] = _mm256_sub_epi32(u[ 8], v[ 8]);
          u[ 9] = _mm256_sub_epi32(u[ 9], v[ 9]);
          u[10] = _mm256_sub_epi32(u[10], v[10]);
          u[11] = _mm256_sub_epi32(u[11], v[11]);
          u[12] = _mm256_sub_epi32(u[12], v[12]);
          u[13] = _mm256_sub_epi32(u[13], v[13]);
          u[14] = _mm256_sub_epi32(u[14], v[14]);
          u[15] = _mm256_sub_epi32(u[15], v[15]);

          v[0] = _mm256_add_epi32(u[0], K32One);
          v[1] = _mm256_add_epi32(u[1], K32One);
          v[2] = _mm256_add_epi32(u[2], K32One);
          v[3] = _mm256_add_epi32(u[3], K32One);
          v[4] = _mm256_add_epi32(u[4], K32One);
          v[5] = _mm256_add_epi32(u[5], K32One);
          v[6] = _mm256_add_epi32(u[6], K32One);
          v[7] = _mm256_add_epi32(u[7], K32One);
          v[8] = _mm256_add_epi32(u[8], K32One);
          v[9] = _mm256_add_epi32(u[9], K32One);
          v[10] = _mm256_add_epi32(u[10], K32One);
          v[11] = _mm256_add_epi32(u[11], K32One);
          v[12] = _mm256_add_epi32(u[12], K32One);
          v[13] = _mm256_add_epi32(u[13], K32One);
          v[14] = _mm256_add_epi32(u[14], K32One);
          v[15] = _mm256_add_epi32(u[15], K32One);

          u[0] = _mm256_srai_epi32(v[0], 2);
          u[1] = _mm256_srai_epi32(v[1], 2);
          u[2] = _mm256_srai_epi32(v[2], 2);
          u[3] = _mm256_srai_epi32(v[3], 2);
          u[4] = _mm256_srai_epi32(v[4], 2);
          u[5] = _mm256_srai_epi32(v[5], 2);
          u[6] = _mm256_srai_epi32(v[6], 2);
          u[7] = _mm256_srai_epi32(v[7], 2);
          u[8] = _mm256_srai_epi32(v[8], 2);
          u[9] = _mm256_srai_epi32(v[9], 2);
          u[10] = _mm256_srai_epi32(v[10], 2);
          u[11] = _mm256_srai_epi32(v[11], 2);
          u[12] = _mm256_srai_epi32(v[12], 2);
          u[13] = _mm256_srai_epi32(v[13], 2);
          u[14] = _mm256_srai_epi32(v[14], 2);
          u[15] = _mm256_srai_epi32(v[15], 2);

          out[ 1] = _mm256_packs_epi32(u[0], u[1]);
          out[17] = _mm256_packs_epi32(u[2], u[3]);
          out[ 9] = _mm256_packs_epi32(u[4], u[5]);
          out[25] = _mm256_packs_epi32(u[6], u[7]);
          out[ 7] = _mm256_packs_epi32(u[8], u[9]);
          out[23] = _mm256_packs_epi32(u[10], u[11]);
          out[15] = _mm256_packs_epi32(u[12], u[13]);
          out[31] = _mm256_packs_epi32(u[14], u[15]);
        }
        {
          const __m256i k32_p27_p05 = pair256_set_epi32(cospi_27_64, cospi_5_64);
          const __m256i k32_p11_p21 = pair256_set_epi32(cospi_11_64, cospi_21_64);
          const __m256i k32_p19_p13 = pair256_set_epi32(cospi_19_64, cospi_13_64);
          const __m256i k32_p03_p29 = pair256_set_epi32(cospi_3_64, cospi_29_64);
          const __m256i k32_m29_p03 = pair256_set_epi32(-cospi_29_64, cospi_3_64);
          const __m256i k32_m13_p19 = pair256_set_epi32(-cospi_13_64, cospi_19_64);
          const __m256i k32_m21_p11 = pair256_set_epi32(-cospi_21_64, cospi_11_64);
          const __m256i k32_m05_p27 = pair256_set_epi32(-cospi_5_64, cospi_27_64);

          u[ 0] = _mm256_unpacklo_epi32(lstep1[40], lstep1[54]);
          u[ 1] = _mm256_unpackhi_epi32(lstep1[40], lstep1[54]);
          u[ 2] = _mm256_unpacklo_epi32(lstep1[41], lstep1[55]);
          u[ 3] = _mm256_unpackhi_epi32(lstep1[41], lstep1[55]);
          u[ 4] = _mm256_unpacklo_epi32(lstep1[42], lstep1[52]);
          u[ 5] = _mm256_unpackhi_epi32(lstep1[42], lstep1[52]);
          u[ 6] = _mm256_unpacklo_epi32(lstep1[43], lstep1[53]);
          u[ 7] = _mm256_unpackhi_epi32(lstep1[43], lstep1[53]);
          u[ 8] = _mm256_unpacklo_epi32(lstep1[44], lstep1[50]);
          u[ 9] = _mm256_unpackhi_epi32(lstep1[44], lstep1[50]);
          u[10] = _mm256_unpacklo_epi32(lstep1[45], lstep1[51]);
          u[11] = _mm256_unpackhi_epi32(lstep1[45], lstep1[51]);
          u[12] = _mm256_unpacklo_epi32(lstep1[46], lstep1[48]);
          u[13] = _mm256_unpackhi_epi32(lstep1[46], lstep1[48]);
          u[14] = _mm256_unpacklo_epi32(lstep1[47], lstep1[49]);
          u[15] = _mm256_unpackhi_epi32(lstep1[47], lstep1[49]);

          v[ 0] = k_madd_epi32_avx2(u[ 0], k32_p27_p05);
          v[ 1] = k_madd_epi32_avx2(u[ 1], k32_p27_p05);
          v[ 2] = k_madd_epi32_avx2(u[ 2], k32_p27_p05);
          v[ 3] = k_madd_epi32_avx2(u[ 3], k32_p27_p05);
          v[ 4] = k_madd_epi32_avx2(u[ 4], k32_p11_p21);
          v[ 5] = k_madd_epi32_avx2(u[ 5], k32_p11_p21);
          v[ 6] = k_madd_epi32_avx2(u[ 6], k32_p11_p21);
          v[ 7] = k_madd_epi32_avx2(u[ 7], k32_p11_p21);
          v[ 8] = k_madd_epi32_avx2(u[ 8], k32_p19_p13);
          v[ 9] = k_madd_epi32_avx2(u[ 9], k32_p19_p13);
          v[10] = k_madd_epi32_avx2(u[10], k32_p19_p13);
          v[11] = k_madd_epi32_avx2(u[11], k32_p19_p13);
          v[12] = k_madd_epi32_avx2(u[12], k32_p03_p29);
          v[13] = k_madd_epi32_avx2(u[13], k32_p03_p29);
          v[14] = k_madd_epi32_avx2(u[14], k32_p03_p29);
          v[15] = k_madd_epi32_avx2(u[15], k32_p03_p29);
          v[16] = k_madd_epi32_avx2(u[12], k32_m29_p03);
          v[17] = k_madd_epi32_avx2(u[13], k32_m29_p03);
          v[18] = k_madd_epi32_avx2(u[14], k32_m29_p03);
          v[19] = k_madd_epi32_avx2(u[15], k32_m29_p03);
          v[20] = k_madd_epi32_avx2(u[ 8], k32_m13_p19);
          v[21] = k_madd_epi32_avx2(u[ 9], k32_m13_p19);
          v[22] = k_madd_epi32_avx2(u[10], k32_m13_p19);
          v[23] = k_madd_epi32_avx2(u[11], k32_m13_p19);
          v[24] = k_madd_epi32_avx2(u[ 4], k32_m21_p11);
          v[25] = k_madd_epi32_avx2(u[ 5], k32_m21_p11);
          v[26] = k_madd_epi32_avx2(u[ 6], k32_m21_p11);
          v[27] = k_madd_epi32_avx2(u[ 7], k32_m21_p11);
          v[28] = k_madd_epi32_avx2(u[ 0], k32_m05_p27);
          v[29] = k_madd_epi32_avx2(u[ 1], k32_m05_p27);
          v[30] = k_madd_epi32_avx2(u[ 2], k32_m05_p27);
          v[31] = k_madd_epi32_avx2(u[ 3], k32_m05_p27);

          u[ 0] = k_packs_epi64_avx2(v[ 0], v[ 1]);
          u[ 1] = k_packs_epi64_avx2(v[ 2], v[ 3]);
          u[ 2] = k_packs_epi64_avx2(v[ 4], v[ 5]);
          u[ 3] = k_packs_epi64_avx2(v[ 6], v[ 7]);
          u[ 4] = k_packs_epi64_avx2(v[ 8], v[ 9]);
          u[ 5] = k_packs_epi64_avx2(v[10], v[11]);
          u[ 6] = k_packs_epi64_avx2(v[12], v[13]);
          u[ 7] = k_packs_epi64_avx2(v[14], v[15]);
          u[ 8] = k_packs_epi64_avx2(v[16], v[17]);
          u[ 9] = k_packs_epi64_avx2(v[18], v[19]);
          u[10] = k_packs_epi64_avx2(v[20], v[21]);
          u[11] = k_packs_epi64_avx2(v[22], v[23]);
          u[12] = k_packs_epi64_avx2(v[24], v[25]);
          u[13] = k_packs_epi64_avx2(v[26], v[27]);
          u[14] = k_packs_epi64_avx2(v[28], v[29]);
          u[15] = k_packs_epi64_avx2(v[30], v[31]);

          v[ 0] = _mm256_add_epi32(u[ 0], k__DCT_CONST_ROUNDING);
          v[ 1] = _mm256_add_epi32(u[ 1], k__DCT_CONST_ROUNDING);
          v[ 2] = _mm256_add_epi32(u[ 2], k__DCT_CONST_ROUNDING);
          v[ 3] = _mm256_add_epi32(u[ 3], k__DCT_CONST_ROUNDING);
          v[ 4] = _mm256_add_epi32(u[ 4], k__DCT_CONST_ROUNDING);
          v[ 5] = _mm256_add_epi32(u[ 5], k__DCT_CONST_ROUNDING);
          v[ 6] = _mm256_add_epi32(u[ 6], k__DCT_CONST_ROUNDING);
          v[ 7] = _mm256_add_epi32(u[ 7], k__DCT_CONST_ROUNDING);
          v[ 8] = _mm256_add_epi32(u[ 8], k__DCT_CONST_ROUNDING);
          v[ 9] = _mm256_add_epi32(u[ 9], k__DCT_CONST_ROUNDING);
          v[10] = _mm256_add_epi32(u[10], k__DCT_CONST_ROUNDING);
          v[11] = _mm256_add_epi32(u[11], k__DCT_CONST_ROUNDING);
          v[12] = _mm256_add_epi32(u[12], k__DCT_CONST_ROUNDING);
          v[13] = _mm256_add_epi32(u[13], k__DCT_CONST_ROUNDING);
          v[14] = _mm256_add_epi32(u[14], k__DCT_CONST_ROUNDING);
          v[15] = _mm256_add_epi32(u[15], k__DCT_CONST_ROUNDING);

          u[ 0] = _mm256_srai_epi32(v[ 0], DCT_CONST_BITS);
          u[ 1] = _mm256_srai_epi32(v[ 1], DCT_CONST_BITS);
          u[ 2] = _mm256_srai_epi32(v[ 2], DCT_CONST_BITS);
          u[ 3] = _mm256_srai_epi32(v[ 3], DCT_CONST_BITS);
          u[ 4] = _mm256_srai_epi32(v[ 4], DCT_CONST_BITS);
          u[ 5] = _mm256_srai_epi32(v[ 5], DCT_CONST_BITS);
          u[ 6] = _mm256_srai_epi32(v[ 6], DCT_CONST_BITS);
          u[ 7] = _mm256_srai_epi32(v[ 7], DCT_CONST_BITS);
          u[ 8] = _mm256_srai_epi32(v[ 8], DCT_CONST_BITS);
          u[ 9] = _mm256_srai_epi32(v[ 9], DCT_CONST_BITS);
          u[10] = _mm256_srai_epi32(v[10], DCT_CONST_BITS);
          u[11] = _mm256_srai_epi32(v[11], DCT_CONST_BITS);
          u[12] = _mm256_srai_epi32(v[12], DCT_CONST_BITS);
          u[13] = _mm256_srai_epi32(v[13], DCT_CONST_BITS);
          u[14] = _mm256_srai_epi32(v[14], DCT_CONST_BITS);
          u[15] = _mm256_srai_epi32(v[15], DCT_CONST_BITS);

          v[ 0] = _mm256_cmpgt_epi32(kZero,u[ 0]);
          v[ 1] = _mm256_cmpgt_epi32(kZero,u[ 1]);
          v[ 2] = _mm256_cmpgt_epi32(kZero,u[ 2]);
          v[ 3] = _mm256_cmpgt_epi32(kZero,u[ 3]);
          v[ 4] = _mm256_cmpgt_epi32(kZero,u[ 4]);
          v[ 5] = _mm256_cmpgt_epi32(kZero,u[ 5]);
          v[ 6] = _mm256_cmpgt_epi32(kZero,u[ 6]);
          v[ 7] = _mm256_cmpgt_epi32(kZero,u[ 7]);
          v[ 8] = _mm256_cmpgt_epi32(kZero,u[ 8]);
          v[ 9] = _mm256_cmpgt_epi32(kZero,u[ 9]);
          v[10] = _mm256_cmpgt_epi32(kZero,u[10]);
          v[11] = _mm256_cmpgt_epi32(kZero,u[11]);
          v[12] = _mm256_cmpgt_epi32(kZero,u[12]);
          v[13] = _mm256_cmpgt_epi32(kZero,u[13]);
          v[14] = _mm256_cmpgt_epi32(kZero,u[14]);
          v[15] = _mm256_cmpgt_epi32(kZero,u[15]);

          u[ 0] = _mm256_sub_epi32(u[ 0], v[ 0]);
          u[ 1] = _mm256_sub_epi32(u[ 1], v[ 1]);
          u[ 2] = _mm256_sub_epi32(u[ 2], v[ 2]);
          u[ 3] = _mm256_sub_epi32(u[ 3], v[ 3]);
          u[ 4] = _mm256_sub_epi32(u[ 4], v[ 4]);
          u[ 5] = _mm256_sub_epi32(u[ 5], v[ 5]);
          u[ 6] = _mm256_sub_epi32(u[ 6], v[ 6]);
          u[ 7] = _mm256_sub_epi32(u[ 7], v[ 7]);
          u[ 8] = _mm256_sub_epi32(u[ 8], v[ 8]);
          u[ 9] = _mm256_sub_epi32(u[ 9], v[ 9]);
          u[10] = _mm256_sub_epi32(u[10], v[10]);
          u[11] = _mm256_sub_epi32(u[11], v[11]);
          u[12] = _mm256_sub_epi32(u[12], v[12]);
          u[13] = _mm256_sub_epi32(u[13], v[13]);
          u[14] = _mm256_sub_epi32(u[14], v[14]);
          u[15] = _mm256_sub_epi32(u[15], v[15]);

          v[0] = _mm256_add_epi32(u[0], K32One);
          v[1] = _mm256_add_epi32(u[1], K32One);
          v[2] = _mm256_add_epi32(u[2], K32One);
          v[3] = _mm256_add_epi32(u[3], K32One);
          v[4] = _mm256_add_epi32(u[4], K32One);
          v[5] = _mm256_add_epi32(u[5], K32One);
          v[6] = _mm256_add_epi32(u[6], K32One);
          v[7] = _mm256_add_epi32(u[7], K32One);
          v[8] = _mm256_add_epi32(u[8], K32One);
          v[9] = _mm256_add_epi32(u[9], K32One);
          v[10] = _mm256_add_epi32(u[10], K32One);
          v[11] = _mm256_add_epi32(u[11], K32One);
          v[12] = _mm256_add_epi32(u[12], K32One);
          v[13] = _mm256_add_epi32(u[13], K32One);
          v[14] = _mm256_add_epi32(u[14], K32One);
          v[15] = _mm256_add_epi32(u[15], K32One);

          u[0] = _mm256_srai_epi32(v[0], 2);
          u[1] = _mm256_srai_epi32(v[1], 2);
          u[2] = _mm256_srai_epi32(v[2], 2);
          u[3] = _mm256_srai_epi32(v[3], 2);
          u[4] = _mm256_srai_epi32(v[4], 2);
          u[5] = _mm256_srai_epi32(v[5], 2);
          u[6] = _mm256_srai_epi32(v[6], 2);
          u[7] = _mm256_srai_epi32(v[7], 2);
          u[8] = _mm256_srai_epi32(v[8], 2);
          u[9] = _mm256_srai_epi32(v[9], 2);
          u[10] = _mm256_srai_epi32(v[10], 2);
          u[11] = _mm256_srai_epi32(v[11], 2);
          u[12] = _mm256_srai_epi32(v[12], 2);
          u[13] = _mm256_srai_epi32(v[13], 2);
          u[14] = _mm256_srai_epi32(v[14], 2);
          u[15] = _mm256_srai_epi32(v[15], 2);

          out[ 5] = _mm256_packs_epi32(u[0], u[1]);
          out[21] = _mm256_packs_epi32(u[2], u[3]);
          out[13] = _mm256_packs_epi32(u[4], u[5]);
          out[29] = _mm256_packs_epi32(u[6], u[7]);
          out[ 3] = _mm256_packs_epi32(u[8], u[9]);
          out[19] = _mm256_packs_epi32(u[10], u[11]);
          out[11] = _mm256_packs_epi32(u[12], u[13]);
          out[27] = _mm256_packs_epi32(u[14], u[15]);
        }
      }
#endif
      // Transpose the results, do it as four 8x8 transposes.
      {
        int transpose_block;
        int16_t *output_currStep,*output_nextStep;
        if (0 == pass){
                 output_currStep = &intermediate[column_start * 32];
                 output_nextStep = &intermediate[(column_start + 8) * 32];
        } else{
                 output_currStep = &output_org[column_start * 32];
                 output_nextStep = &output_org[(column_start + 8) * 32];
        }
        for (transpose_block = 0; transpose_block < 4; ++transpose_block) {
          __m256i *this_out = &out[8 * transpose_block];
          // 00  01  02  03  04  05  06  07  08  09  10  11  12  13  14  15
          // 20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35
          // 40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55
          // 60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75
          // 80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95
          // 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
          // 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
          // 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
          const __m256i tr0_0 = _mm256_unpacklo_epi16(this_out[0], this_out[1]);
          const __m256i tr0_1 = _mm256_unpacklo_epi16(this_out[2], this_out[3]);
          const __m256i tr0_2 = _mm256_unpackhi_epi16(this_out[0], this_out[1]);
          const __m256i tr0_3 = _mm256_unpackhi_epi16(this_out[2], this_out[3]);
          const __m256i tr0_4 = _mm256_unpacklo_epi16(this_out[4], this_out[5]);
          const __m256i tr0_5 = _mm256_unpacklo_epi16(this_out[6], this_out[7]);
          const __m256i tr0_6 = _mm256_unpackhi_epi16(this_out[4], this_out[5]);
          const __m256i tr0_7 = _mm256_unpackhi_epi16(this_out[6], this_out[7]);
          // 00  20  01  21  02  22  03  23  08  28  09  29  10  30  11  31
          // 40  60  41  61  42  62  43  63  48  68  49  69  50  70  51  71
          // 04  24  05  25  06  26  07  27  12  32  13  33  14  34  15  35
          // 44  64  45  65  46  66  47  67  52  72  53  73  54  74  55  75
          // 80  100 81  101 82  102 83  103 88  108 89  109 90  110 91  101
          // 120 140 121 141 122 142 123 143 128 148 129 149 130 150 131 151
          // 84  104 85  105 86  106 87  107 92  112 93  113 94  114 95  115
          // 124 144 125 145 126 146 127 147 132 152 133 153 134 154 135 155

          const __m256i tr1_0 = _mm256_unpacklo_epi32(tr0_0, tr0_1);
          const __m256i tr1_1 = _mm256_unpacklo_epi32(tr0_2, tr0_3);
          const __m256i tr1_2 = _mm256_unpackhi_epi32(tr0_0, tr0_1);
          const __m256i tr1_3 = _mm256_unpackhi_epi32(tr0_2, tr0_3);
          const __m256i tr1_4 = _mm256_unpacklo_epi32(tr0_4, tr0_5);
          const __m256i tr1_5 = _mm256_unpacklo_epi32(tr0_6, tr0_7);
          const __m256i tr1_6 = _mm256_unpackhi_epi32(tr0_4, tr0_5);
          const __m256i tr1_7 = _mm256_unpackhi_epi32(tr0_6, tr0_7);
          // 00 20  40  60  01 21  41  61  08 28  48  68  09 29  49  69
          // 04 24  44  64  05 25  45  65  12 32  52  72  13 33  53  73
          // 02 22  42  62  03 23  43  63  10 30  50  70  11 31  51  71
          // 06 26  46  66  07 27  47  67  14 34  54  74  15 35  55  75
          // 80 100 120 140 81 101 121 141 88 108 128 148 89 109 129 149
          // 84 104 124 144 85 105 125 145 92 112 132 152 93 113 133 153
          // 82 102 122 142 83 103 123 143 90 110 130 150 91 101 131 151
          // 86 106 126 146 87 107 127 147 94 114 134 154 95 115 135 155
          __m256i tr2_0 = _mm256_unpacklo_epi64(tr1_0, tr1_4);
          __m256i tr2_1 = _mm256_unpackhi_epi64(tr1_0, tr1_4);
          __m256i tr2_2 = _mm256_unpacklo_epi64(tr1_2, tr1_6);
          __m256i tr2_3 = _mm256_unpackhi_epi64(tr1_2, tr1_6);
          __m256i tr2_4 = _mm256_unpacklo_epi64(tr1_1, tr1_5);
          __m256i tr2_5 = _mm256_unpackhi_epi64(tr1_1, tr1_5);
          __m256i tr2_6 = _mm256_unpacklo_epi64(tr1_3, tr1_7);
          __m256i tr2_7 = _mm256_unpackhi_epi64(tr1_3, tr1_7);
          // 00 20 40 60 80 100 120 140 08 28 48 68 88 108 128 148
          // 01 21 41 61 81 101 121 141 09 29 49 69 89 109 129 149
          // 02 22 42 62 82 102 122 142 10 30 50 70 90 110 130 150
          // 03 23 43 63 83 103 123 143 11 31 51 71 91 101 131 151
          // 04 24 44 64 84 104 124 144 12 32 52 72 92 112 132 152
          // 05 25 45 65 85 105 125 145 13 33 53 73 93 113 133 153
          // 06 26 46 66 86 106 126 146 14 34 54 74 94 114 134 154
          // 07 27 47 67 87 107 127 147 15 35 55 75 95 115 135 155
          if (0 == pass) {
            // output[j] = (output[j] + 1 + (output[j] > 0)) >> 2;
            // TODO(cd): see quality impact of only doing
            //           output[j] = (output[j] + 1) >> 2;
            //           which would remove the code between here ...
            __m256i tr2_0_0 = _mm256_cmpgt_epi16(tr2_0, kZero);
            __m256i tr2_1_0 = _mm256_cmpgt_epi16(tr2_1, kZero);
            __m256i tr2_2_0 = _mm256_cmpgt_epi16(tr2_2, kZero);
            __m256i tr2_3_0 = _mm256_cmpgt_epi16(tr2_3, kZero);
            __m256i tr2_4_0 = _mm256_cmpgt_epi16(tr2_4, kZero);
            __m256i tr2_5_0 = _mm256_cmpgt_epi16(tr2_5, kZero);
            __m256i tr2_6_0 = _mm256_cmpgt_epi16(tr2_6, kZero);
            __m256i tr2_7_0 = _mm256_cmpgt_epi16(tr2_7, kZero);
            tr2_0 = _mm256_sub_epi16(tr2_0, tr2_0_0);
            tr2_1 = _mm256_sub_epi16(tr2_1, tr2_1_0);
            tr2_2 = _mm256_sub_epi16(tr2_2, tr2_2_0);
            tr2_3 = _mm256_sub_epi16(tr2_3, tr2_3_0);
            tr2_4 = _mm256_sub_epi16(tr2_4, tr2_4_0);
            tr2_5 = _mm256_sub_epi16(tr2_5, tr2_5_0);
            tr2_6 = _mm256_sub_epi16(tr2_6, tr2_6_0);
            tr2_7 = _mm256_sub_epi16(tr2_7, tr2_7_0);
            //           ... and here.
            //           PS: also change code in vp9/encoder/vp9_dct.c
            tr2_0 = _mm256_add_epi16(tr2_0, kOne);
            tr2_1 = _mm256_add_epi16(tr2_1, kOne);
            tr2_2 = _mm256_add_epi16(tr2_2, kOne);
            tr2_3 = _mm256_add_epi16(tr2_3, kOne);
            tr2_4 = _mm256_add_epi16(tr2_4, kOne);
            tr2_5 = _mm256_add_epi16(tr2_5, kOne);
            tr2_6 = _mm256_add_epi16(tr2_6, kOne);
            tr2_7 = _mm256_add_epi16(tr2_7, kOne);
            tr2_0 = _mm256_srai_epi16(tr2_0, 2);
            tr2_1 = _mm256_srai_epi16(tr2_1, 2);
            tr2_2 = _mm256_srai_epi16(tr2_2, 2);
            tr2_3 = _mm256_srai_epi16(tr2_3, 2);
            tr2_4 = _mm256_srai_epi16(tr2_4, 2);
            tr2_5 = _mm256_srai_epi16(tr2_5, 2);
            tr2_6 = _mm256_srai_epi16(tr2_6, 2);
            tr2_7 = _mm256_srai_epi16(tr2_7, 2);
          }
          // Note: even though all these stores are aligned, using the aligned
          //       intrinsic make the code slightly slower.
          _mm_storeu_si128((__m128i *)(output_currStep + 0 * 32), _mm256_castsi256_si128(tr2_0));
          _mm_storeu_si128((__m128i *)(output_currStep + 1 * 32), _mm256_castsi256_si128(tr2_1));
          _mm_storeu_si128((__m128i *)(output_currStep + 2 * 32), _mm256_castsi256_si128(tr2_2));
          _mm_storeu_si128((__m128i *)(output_currStep + 3 * 32), _mm256_castsi256_si128(tr2_3));
          _mm_storeu_si128((__m128i *)(output_currStep + 4 * 32), _mm256_castsi256_si128(tr2_4));
          _mm_storeu_si128((__m128i *)(output_currStep + 5 * 32), _mm256_castsi256_si128(tr2_5));
          _mm_storeu_si128((__m128i *)(output_currStep + 6 * 32), _mm256_castsi256_si128(tr2_6));
          _mm_storeu_si128((__m128i *)(output_currStep + 7 * 32), _mm256_castsi256_si128(tr2_7));

          _mm_storeu_si128((__m128i *)(output_nextStep + 0 * 32), _mm256_extractf128_si256(tr2_0,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 1 * 32), _mm256_extractf128_si256(tr2_1,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 2 * 32), _mm256_extractf128_si256(tr2_2,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 3 * 32), _mm256_extractf128_si256(tr2_3,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 4 * 32), _mm256_extractf128_si256(tr2_4,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 5 * 32), _mm256_extractf128_si256(tr2_5,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 6 * 32), _mm256_extractf128_si256(tr2_6,1));
          _mm_storeu_si128((__m128i *)(output_nextStep + 7 * 32), _mm256_extractf128_si256(tr2_7,1));
          // Process next 8x8
          output_currStep += 8;
          output_nextStep += 8;
        }
      }
    }
  }
}  // NOLINT
