/*
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
 *
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 */

#include <immintrin.h>  // AVX2

#include "aom_dsp/txfm_common.h"
#include "aom_dsp/x86/txfm_common_intrin.h"
#include "aom_dsp/x86/txfm_common_avx2.h"

#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

#ifndef STORE_COEFF_FUNC
#define STORE_COEFF_FUNC
static void store_coeff(const __m256i *coeff, tran_low_t *curr,
                        tran_low_t *next) {
  __m128i u = _mm256_castsi256_si128(*coeff);
  storeu_output(&u, curr);
  u = _mm256_extractf128_si256(*coeff, 1);
  storeu_output(&u, next);
}
#endif

void FDCT32x32_2D_AVX2(const int16_t *input, tran_low_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;
        tran_low_t *curr_out, *next_out;
        // Pass 0
        output_currStep = &intermediate[column_start * 32];
        output_nextStep = &intermediate[(column_start + 8) * 32];
        // Pass 1
        curr_out = &output_org[column_start * 32];
        next_out = &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 av1/encoder/av1_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);
          }
          if (0 == pass) {
            // 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;
          }
          if (1 == pass) {
            store_coeff(&tr2_0, curr_out + 0 * 32, next_out + 0 * 32);
            store_coeff(&tr2_1, curr_out + 1 * 32, next_out + 1 * 32);
            store_coeff(&tr2_2, curr_out + 2 * 32, next_out + 2 * 32);
            store_coeff(&tr2_3, curr_out + 3 * 32, next_out + 3 * 32);
            store_coeff(&tr2_4, curr_out + 4 * 32, next_out + 4 * 32);
            store_coeff(&tr2_5, curr_out + 5 * 32, next_out + 5 * 32);
            store_coeff(&tr2_6, curr_out + 6 * 32, next_out + 6 * 32);
            store_coeff(&tr2_7, curr_out + 7 * 32, next_out + 7 * 32);
            curr_out += 8;
            next_out += 8;
          }
        }
      }
    }
  }
  _mm256_zeroupper();
}  // NOLINT
