/*
 *  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_rtcd.h"
#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
