//   Copyright Naoki Shibata and contributors 2010 - 2021.
// Distributed under the Boost Software License, Version 1.0.
//    (See accompanying file LICENSE.txt or copy at
//          http://www.boost.org/LICENSE_1_0.txt)

ALIGNED(8192) void dft2f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

    store(out, (0 << shift), plus(load(in, (0 << shift)), load(in, (1 << shift))));
    store(out, (1 << shift), minus(load(in, (0 << shift)), load(in, (1 << shift))));
  }
}

ALIGNED(8192) void but2f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

    store(out, (0 << outShift), plus(load(in, (0 << inShift)), load(in, (1 << inShift))));
    real2 v4 = minus(load(in, (0 << inShift)), load(in, (1 << inShift)));
    store(out, (1 << outShift), ctimesminusplus(v4, tbl[0 + tbloffset], ctimes(reverse(v4), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void but2b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

    store(out, (0 << outShift), plus(load(in, (0 << inShift)), load(in, (1 << inShift))));
    real2 v4 = minus(load(in, (0 << inShift)), load(in, (1 << inShift)));
    store(out, (1 << outShift), ctimesminusplus(v4, tbl[0 + tbloffset], ctimes(reverse(v4), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void tbut2f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

    scatter(out, 0, 2, plus(load(in, (0 << inShift)), load(in, (1 << inShift))));
    real2 v4 = minus(load(in, (0 << inShift)), load(in, (1 << inShift)));
    scatter(out, 1, 2, timesminusplus(v4, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v4), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut2b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

    scatter(out, 0, 2, plus(load(in, (0 << inShift)), load(in, (1 << inShift))));
    real2 v4 = minus(load(in, (0 << inShift)), load(in, (1 << inShift)));
    scatter(out, 1, 2, timesminusplus(v4, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v4), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void dft4f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v3 = load(in, 1 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v7 = reverse(minus(v3, v5));
   real2 v13 = plus(v3, v5);
   real2 v4 = load(in, 2 << shift);
   real2 v2 = load(in, 0 << shift);
   real2 v8 = minus(v4, v2);
   real2 v12 = plus(v2, v4);
   store(out, 3 << shift, minus(uminusplus(v7), v8));
   store(out, 1 << shift, minus(uplusminus(v7), v8));
   store(out, 2 << shift, minus(v12, v13));
   store(out, 0 << shift, plus(v12, v13));
  }
}

ALIGNED(8192) void dft4b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v3 = load(in, 1 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v13 = plus(v3, v5);
   real2 v7 = reverse(minus(v5, v3));
   real2 v4 = load(in, 2 << shift);
   real2 v2 = load(in, 0 << shift);
   real2 v8 = minus(v4, v2);
   store(out, 3 << shift, minus(uminusplus(v7), v8));
   store(out, 1 << shift, minus(uplusminus(v7), v8));
   real2 v12 = plus(v2, v4);
   store(out, 2 << shift, minus(v12, v13));
   store(out, 0 << shift, plus(v12, v13));
  }
}

ALIGNED(8192) void but4f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v5 = load(in, 3 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v7 = reverse(minus(v3, v5));
   real2 v13 = plus(v3, v5);
   real2 v2 = load(in, 0 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v8 = minus(v4, v2);
   real2 v12 = plus(v2, v4);
   store(out, 0 << outShift, plus(v12, v13));
   real2 v26 = minus(v12, v13);
   store(out, 2 << outShift, ctimesminusplus(v26, tbl[0 + tbloffset], ctimes(reverse(v26), tbl[1 + tbloffset])));
   real2 v11 = minusplus(uminus(v7), v8);
   real2 v9 = minusplus(v7, v8);
   store(out, 1 << outShift, ctimesminusplus(reverse(v9), tbl[2 + tbloffset], ctimes(v9, tbl[3 + tbloffset])));
   store(out, 3 << outShift, ctimesminusplus(reverse(v11), tbl[4 + tbloffset], ctimes(v11, tbl[5 + tbloffset])));
  }
}

ALIGNED(8192) void but4b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v5 = load(in, 3 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v7 = reverse(minus(v5, v3));
   real2 v13 = plus(v3, v5);
   real2 v2 = load(in, 0 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v8 = minus(v4, v2);
   real2 v12 = plus(v2, v4);
   store(out, 0 << outShift, plus(v12, v13));
   real2 v26 = minus(v12, v13);
   store(out, 2 << outShift, ctimesminusplus(v26, tbl[0 + tbloffset], ctimes(reverse(v26), tbl[1 + tbloffset])));
   real2 v11 = minusplus(uminus(v7), v8);
   real2 v9 = minusplus(v7, v8);
   store(out, 1 << outShift, ctimesminusplus(reverse(v9), tbl[2 + tbloffset], ctimes(v9, tbl[3 + tbloffset])));
   store(out, 3 << outShift, ctimesminusplus(reverse(v11), tbl[4 + tbloffset], ctimes(v11, tbl[5 + tbloffset])));
  }
}

ALIGNED(8192) void tbut4f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v5 = load(in, 3 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v7 = reverse(minus(v3, v5));
   real2 v13 = plus(v3, v5);
   real2 v2 = load(in, 0 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v8 = minus(v4, v2);
   real2 v12 = plus(v2, v4);
   scatter(out, 0, 4, plus(v12, v13));
   real2 v26 = minus(v12, v13);
   scatter(out, 2, 4, timesminusplus(v26, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v26), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v11 = minusplus(uminus(v7), v8);
   real2 v9 = minusplus(v7, v8);
   scatter(out, 1, 4, timesminusplus(reverse(v9), load(tbl, 2 * VECWIDTH + tbloffset), times(v9, load(tbl, 3 * VECWIDTH + tbloffset))));
   scatter(out, 3, 4, timesminusplus(reverse(v11), load(tbl, 4 * VECWIDTH + tbloffset), times(v11, load(tbl, 5 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut4b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v5 = load(in, 3 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v7 = reverse(minus(v5, v3));
   real2 v13 = plus(v3, v5);
   real2 v2 = load(in, 0 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v8 = minus(v4, v2);
   real2 v12 = plus(v2, v4);
   scatter(out, 0, 4, plus(v12, v13));
   real2 v26 = minus(v12, v13);
   scatter(out, 2, 4, timesminusplus(v26, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v26), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v11 = minusplus(uminus(v7), v8);
   real2 v9 = minusplus(v7, v8);
   scatter(out, 1, 4, timesminusplus(reverse(v9), load(tbl, 2 * VECWIDTH + tbloffset), times(v9, load(tbl, 3 * VECWIDTH + tbloffset))));
   scatter(out, 3, 4, timesminusplus(reverse(v11), load(tbl, 4 * VECWIDTH + tbloffset), times(v11, load(tbl, 5 * VECWIDTH + tbloffset))));
  }
}

#if MAXBUTWIDTH >= 3
ALIGNED(8192) void dft8f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v9 = load(in, 7 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v33 = plus(v5, v9);
   real2 v27 = reverse(minus(v5, v9));
   real2 v3 = load(in, 1 << shift);
   real2 v7 = load(in, 5 << shift);
   real2 v32 = plus(v3, v7);
   real2 v28 = minus(v7, v3);
   real2 v45 = reverse(minus(v32, v33));
   real2 v51 = plus(v32, v33);
   real2 v29 = minusplus(v27, v28);
   real2 v31 = minusplus(uminus(v27), v28);
   real2 v43 = ctimesminusplus(reverse(v31), ctbl[1], ctimes(v31, ctbl[0]));
   real2 v6 = load(in, 4 << shift);
   real2 v2 = load(in, 0 << shift);
   real2 v12 = minus(v6, v2);
   real2 v16 = plus(v2, v6);
   real2 v8 = load(in, 6 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v4, v8));
   real2 v46 = minus(v17, v16);
   store(out, 2 << shift, minus(uplusminus(v45), v46));
   store(out, 6 << shift, minus(uminusplus(v45), v46));
   real2 v50 = plus(v16, v17);
   store(out, 4 << shift, minus(v50, v51));
   store(out, 0 << shift, plus(v50, v51));
   real2 v25 = minus(uminusplus(v11), v12);
   store(out, 3 << shift, plus(v25, v43));
   store(out, 7 << shift, minus(v25, v43));
   real2 v21 = minus(uplusminus(v11), v12);
   real2 v38 = ctimesminusplus(reverse(v29), ctbl[1], ctimes(v29, ctbl[1]));
   store(out, 1 << shift, plus(v21, v38));
   store(out, 5 << shift, minus(v21, v38));
  }
}

ALIGNED(8192) void dft8b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v8 = load(in, 6 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v8, v4));
   real2 v2 = load(in, 0 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v16 = plus(v2, v6);
   real2 v12 = minus(v6, v2);
   real2 v50 = plus(v16, v17);
   real2 v46 = minus(v17, v16);
   real2 v21 = minus(uplusminus(v11), v12);
   real2 v25 = minus(uminusplus(v11), v12);
   real2 v3 = load(in, 1 << shift);
   real2 v7 = load(in, 5 << shift);
   real2 v28 = minus(v7, v3);
   real2 v32 = plus(v3, v7);
   real2 v5 = load(in, 3 << shift);
   real2 v9 = load(in, 7 << shift);
   real2 v33 = plus(v5, v9);
   real2 v27 = reverse(minus(v9, v5));
   real2 v45 = reverse(minus(v33, v32));
   real2 v51 = plus(v32, v33);
   store(out, 0 << shift, plus(v50, v51));
   store(out, 4 << shift, minus(v50, v51));
   store(out, 2 << shift, minus(uplusminus(v45), v46));
   store(out, 6 << shift, minus(uminusplus(v45), v46));
   real2 v31 = minusplus(uminus(v27), v28);
   real2 v29 = minusplus(v27, v28);
   real2 v43 = ctimesminusplus(reverse(v31), ctbl[0], ctimes(v31, ctbl[0]));
   store(out, 7 << shift, minus(v25, v43));
   store(out, 3 << shift, plus(v25, v43));
   real2 v39 = ctimesminusplus(reverse(v29), ctbl[0], ctimes(v29, ctbl[1]));
   store(out, 1 << shift, plus(v21, v39));
   store(out, 5 << shift, minus(v21, v39));
  }
}

ALIGNED(8192) void but8f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v9 = load(in, 7 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v37 = plus(v5, v9);
   real2 v31 = reverse(minus(v5, v9));
   real2 v7 = load(in, 5 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v36 = plus(v3, v7);
   real2 v32 = minus(v7, v3);
   real2 v57 = plus(v36, v37);
   real2 v51 = reverse(minus(v36, v37));
   real2 v35 = minusplus(uminus(v31), v32);
   real2 v33 = minusplus(v31, v32);
   real2 v43 = ctimesminusplus(reverse(v33), tbl[6 + tbloffset], ctimes(v33, tbl[7 + tbloffset]));
   real2 v6 = load(in, 4 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v16 = plus(v2, v6);
   real2 v12 = minus(v6, v2);
   real2 v8 = load(in, 6 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v4, v8));
   real2 v52 = minus(v17, v16);
   real2 v56 = plus(v16, v17);
   store(out, 0 << outShift, plus(v56, v57));
   real2 v70 = minus(v56, v57);
   store(out, 4 << outShift, ctimesminusplus(v70, tbl[0 + tbloffset], ctimes(reverse(v70), tbl[1 + tbloffset])));
   real2 v53 = minusplus(v51, v52);
   store(out, 2 << outShift, ctimesminusplus(reverse(v53), tbl[10 + tbloffset], ctimes(v53, tbl[11 + tbloffset])));
   real2 v55 = minusplus(uminus(v51), v52);
   store(out, 6 << outShift, ctimesminusplus(reverse(v55), tbl[12 + tbloffset], ctimes(v55, tbl[13 + tbloffset])));
   real2 v15 = minusplus(uminus(v11), v12);
   real2 v13 = minusplus(v11, v12);
   real2 v23 = ctimesminusplus(reverse(v13), tbl[2 + tbloffset], ctimes(v13, tbl[3 + tbloffset]));
   store(out, 1 << outShift, plus(v23, v43));
   real2 v78 = minus(v23, v43);
   store(out, 5 << outShift, ctimesminusplus(v78, tbl[0 + tbloffset], ctimes(reverse(v78), tbl[1 + tbloffset])));
   real2 v49 = ctimesminusplus(reverse(v35), tbl[8 + tbloffset], ctimes(v35, tbl[9 + tbloffset]));
   real2 v29 = ctimesminusplus(reverse(v15), tbl[4 + tbloffset], ctimes(v15, tbl[5 + tbloffset]));
   store(out, 3 << outShift, plus(v29, v49));
   real2 v84 = minus(v29, v49);
   store(out, 7 << outShift, ctimesminusplus(v84, tbl[0 + tbloffset], ctimes(reverse(v84), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void but8b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v9 = load(in, 7 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v37 = plus(v5, v9);
   real2 v31 = reverse(minus(v9, v5));
   real2 v7 = load(in, 5 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v36 = plus(v3, v7);
   real2 v32 = minus(v7, v3);
   real2 v57 = plus(v36, v37);
   real2 v51 = reverse(minus(v37, v36));
   real2 v35 = minusplus(uminus(v31), v32);
   real2 v33 = minusplus(v31, v32);
   real2 v43 = ctimesminusplus(reverse(v33), tbl[6 + tbloffset], ctimes(v33, tbl[7 + tbloffset]));
   real2 v6 = load(in, 4 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v16 = plus(v2, v6);
   real2 v12 = minus(v6, v2);
   real2 v8 = load(in, 6 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v8, v4));
   real2 v52 = minus(v17, v16);
   real2 v56 = plus(v16, v17);
   store(out, 0 << outShift, plus(v56, v57));
   real2 v70 = minus(v56, v57);
   store(out, 4 << outShift, ctimesminusplus(v70, tbl[0 + tbloffset], ctimes(reverse(v70), tbl[1 + tbloffset])));
   real2 v53 = minusplus(v51, v52);
   store(out, 2 << outShift, ctimesminusplus(reverse(v53), tbl[10 + tbloffset], ctimes(v53, tbl[11 + tbloffset])));
   real2 v55 = minusplus(uminus(v51), v52);
   store(out, 6 << outShift, ctimesminusplus(reverse(v55), tbl[12 + tbloffset], ctimes(v55, tbl[13 + tbloffset])));
   real2 v15 = minusplus(uminus(v11), v12);
   real2 v13 = minusplus(v11, v12);
   real2 v23 = ctimesminusplus(reverse(v13), tbl[2 + tbloffset], ctimes(v13, tbl[3 + tbloffset]));
   store(out, 1 << outShift, plus(v23, v43));
   real2 v78 = minus(v23, v43);
   store(out, 5 << outShift, ctimesminusplus(v78, tbl[0 + tbloffset], ctimes(reverse(v78), tbl[1 + tbloffset])));
   real2 v49 = ctimesminusplus(reverse(v35), tbl[8 + tbloffset], ctimes(v35, tbl[9 + tbloffset]));
   real2 v29 = ctimesminusplus(reverse(v15), tbl[4 + tbloffset], ctimes(v15, tbl[5 + tbloffset]));
   store(out, 3 << outShift, plus(v29, v49));
   real2 v84 = minus(v29, v49);
   store(out, 7 << outShift, ctimesminusplus(v84, tbl[0 + tbloffset], ctimes(reverse(v84), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void tbut8f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v9 = load(in, 7 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v37 = plus(v5, v9);
   real2 v31 = reverse(minus(v5, v9));
   real2 v7 = load(in, 5 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v36 = plus(v3, v7);
   real2 v32 = minus(v7, v3);
   real2 v57 = plus(v36, v37);
   real2 v51 = reverse(minus(v36, v37));
   real2 v35 = minusplus(uminus(v31), v32);
   real2 v33 = minusplus(v31, v32);
   real2 v43 = timesminusplus(reverse(v33), load(tbl, 6 * VECWIDTH + tbloffset), times(v33, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v6 = load(in, 4 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v16 = plus(v2, v6);
   real2 v12 = minus(v6, v2);
   real2 v8 = load(in, 6 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v4, v8));
   real2 v52 = minus(v17, v16);
   real2 v56 = plus(v16, v17);
   scatter(out, 0, 8, plus(v56, v57));
   real2 v70 = minus(v56, v57);
   scatter(out, 4, 8, timesminusplus(v70, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v70), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v53 = minusplus(v51, v52);
   scatter(out, 2, 8, timesminusplus(reverse(v53), load(tbl, 10 * VECWIDTH + tbloffset), times(v53, load(tbl, 11 * VECWIDTH + tbloffset))));
   real2 v55 = minusplus(uminus(v51), v52);
   scatter(out, 6, 8, timesminusplus(reverse(v55), load(tbl, 12 * VECWIDTH + tbloffset), times(v55, load(tbl, 13 * VECWIDTH + tbloffset))));
   real2 v15 = minusplus(uminus(v11), v12);
   real2 v13 = minusplus(v11, v12);
   real2 v23 = timesminusplus(reverse(v13), load(tbl, 2 * VECWIDTH + tbloffset), times(v13, load(tbl, 3 * VECWIDTH + tbloffset)));
   scatter(out, 1, 8, plus(v23, v43));
   real2 v78 = minus(v23, v43);
   scatter(out, 5, 8, timesminusplus(v78, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v78), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v49 = timesminusplus(reverse(v35), load(tbl, 8 * VECWIDTH + tbloffset), times(v35, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v29 = timesminusplus(reverse(v15), load(tbl, 4 * VECWIDTH + tbloffset), times(v15, load(tbl, 5 * VECWIDTH + tbloffset)));
   scatter(out, 3, 8, plus(v29, v49));
   real2 v84 = minus(v29, v49);
   scatter(out, 7, 8, timesminusplus(v84, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v84), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut8b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v9 = load(in, 7 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v37 = plus(v5, v9);
   real2 v31 = reverse(minus(v9, v5));
   real2 v7 = load(in, 5 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v36 = plus(v3, v7);
   real2 v32 = minus(v7, v3);
   real2 v57 = plus(v36, v37);
   real2 v51 = reverse(minus(v37, v36));
   real2 v35 = minusplus(uminus(v31), v32);
   real2 v33 = minusplus(v31, v32);
   real2 v43 = timesminusplus(reverse(v33), load(tbl, 6 * VECWIDTH + tbloffset), times(v33, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v6 = load(in, 4 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v16 = plus(v2, v6);
   real2 v12 = minus(v6, v2);
   real2 v8 = load(in, 6 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v17 = plus(v4, v8);
   real2 v11 = reverse(minus(v8, v4));
   real2 v52 = minus(v17, v16);
   real2 v56 = plus(v16, v17);
   scatter(out, 0, 8, plus(v56, v57));
   real2 v70 = minus(v56, v57);
   scatter(out, 4, 8, timesminusplus(v70, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v70), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v53 = minusplus(v51, v52);
   scatter(out, 2, 8, timesminusplus(reverse(v53), load(tbl, 10 * VECWIDTH + tbloffset), times(v53, load(tbl, 11 * VECWIDTH + tbloffset))));
   real2 v55 = minusplus(uminus(v51), v52);
   scatter(out, 6, 8, timesminusplus(reverse(v55), load(tbl, 12 * VECWIDTH + tbloffset), times(v55, load(tbl, 13 * VECWIDTH + tbloffset))));
   real2 v15 = minusplus(uminus(v11), v12);
   real2 v13 = minusplus(v11, v12);
   real2 v23 = timesminusplus(reverse(v13), load(tbl, 2 * VECWIDTH + tbloffset), times(v13, load(tbl, 3 * VECWIDTH + tbloffset)));
   scatter(out, 1, 8, plus(v23, v43));
   real2 v78 = minus(v23, v43);
   scatter(out, 5, 8, timesminusplus(v78, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v78), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v49 = timesminusplus(reverse(v35), load(tbl, 8 * VECWIDTH + tbloffset), times(v35, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v29 = timesminusplus(reverse(v15), load(tbl, 4 * VECWIDTH + tbloffset), times(v15, load(tbl, 5 * VECWIDTH + tbloffset)));
   scatter(out, 3, 8, plus(v29, v49));
   real2 v84 = minus(v29, v49);
   scatter(out, 7, 8, timesminusplus(v84, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v84), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}
#endif

#if MAXBUTWIDTH >= 4
ALIGNED(8192) void dft16f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v11 = load(in, 9 << shift);
   real2 v3 = load(in, 1 << shift);
   real2 v40 = plus(v3, v11);
   real2 v36 = minus(v11, v3);
   real2 v15 = load(in, 13 << shift);
   real2 v7 = load(in, 5 << shift);
   real2 v35 = reverse(minus(v7, v15));
   real2 v41 = plus(v7, v15);
   real2 v106 = minus(v41, v40);
   real2 v110 = plus(v40, v41);
   real2 v37 = minusplus(v35, v36);
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v51 = ctimesminusplus(reverse(v39), ctbl[5], ctimes(v39, ctbl[3]));
   real2 v47 = ctimesminusplus(reverse(v37), ctbl[3], ctimes(v37, ctbl[5]));
   real2 v13 = load(in, 11 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v72 = minus(v13, v5);
   real2 v76 = plus(v5, v13);
   real2 v17 = load(in, 15 << shift);
   real2 v9 = load(in, 7 << shift);
   real2 v77 = plus(v9, v17);
   real2 v71 = reverse(minus(v9, v17));
   real2 v105 = reverse(minus(v76, v77));
   real2 v111 = plus(v76, v77);
   real2 v107 = minusplus(v105, v106);
   real2 v109 = minusplus(uminus(v105), v106);
   real2 v121 = reverse(minus(v110, v111));
   real2 v127 = plus(v110, v111);
   real2 v119 = ctimesminusplus(reverse(v109), ctbl[1], ctimes(v109, ctbl[0]));
   real2 v115 = ctimesminusplus(reverse(v107), ctbl[1], ctimes(v107, ctbl[1]));
   real2 v8 = load(in, 6 << shift);
   real2 v16 = load(in, 14 << shift);
   real2 v53 = reverse(minus(v8, v16));
   real2 v59 = plus(v8, v16);
   real2 v4 = load(in, 2 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v54 = minus(v12, v4);
   real2 v58 = plus(v4, v12);
   real2 v95 = plus(v58, v59);
   real2 v89 = reverse(minus(v58, v59));
   real2 v2 = load(in, 0 << shift);
   real2 v10 = load(in, 8 << shift);
   real2 v24 = plus(v2, v10);
   real2 v20 = minus(v10, v2);
   real2 v6 = load(in, 4 << shift);
   real2 v14 = load(in, 12 << shift);
   real2 v19 = reverse(minus(v6, v14));
   real2 v25 = plus(v6, v14);
   real2 v94 = plus(v24, v25);
   real2 v90 = minus(v25, v24);
   real2 v103 = minus(uminusplus(v89), v90);
   real2 v99 = minus(uplusminus(v89), v90);
   store(out, 2 << shift, plus(v99, v115));
   store(out, 10 << shift, minus(v99, v115));
   store(out, 6 << shift, plus(v103, v119));
   store(out, 14 << shift, minus(v103, v119));
   real2 v122 = minus(v95, v94);
   store(out, 12 << shift, minus(uminusplus(v121), v122));
   store(out, 4 << shift, minus(uplusminus(v121), v122));
   real2 v126 = plus(v94, v95);
   store(out, 8 << shift, minus(v126, v127));
   store(out, 0 << shift, plus(v126, v127));
   real2 v57 = minusplus(uminus(v53), v54);
   real2 v55 = minusplus(v53, v54);
   real2 v64 = ctimesminusplus(reverse(v55), ctbl[1], ctimes(v55, ctbl[1]));
   real2 v75 = minusplus(uminus(v71), v72);
   real2 v73 = minusplus(v71, v72);
   real2 v81 = ctimesminusplus(reverse(v73), ctbl[5], ctimes(v73, ctbl[3]));
   real2 v29 = minus(uplusminus(v19), v20);
   real2 v33 = minus(uminusplus(v19), v20);
   real2 v151 = plus(v29, v64);
   real2 v147 = minus(v64, v29);
   real2 v152 = plus(v47, v81);
   real2 v146 = reverse(minus(v47, v81));
   store(out, 13 << shift, minus(uminusplus(v146), v147));
   store(out, 5 << shift, minus(uplusminus(v146), v147));
   store(out, 9 << shift, minus(v151, v152));
   store(out, 1 << shift, plus(v151, v152));
   real2 v69 = ctimesminusplus(reverse(v57), ctbl[1], ctimes(v57, ctbl[0]));
   real2 v87 = ctimesminusplus(reverse(v75), ctbl[4], ctimes(v75, ctbl[2]));
   real2 v171 = plus(v51, v87);
   real2 v165 = reverse(minus(v51, v87));
   real2 v170 = plus(v33, v69);
   real2 v166 = minus(v69, v33);
   store(out, 7 << shift, minus(uplusminus(v165), v166));
   store(out, 15 << shift, minus(uminusplus(v165), v166));
   store(out, 11 << shift, minus(v170, v171));
   store(out, 3 << shift, plus(v170, v171));
  }
}

ALIGNED(8192) void dft16b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v9 = load(in, 7 << shift);
   real2 v17 = load(in, 15 << shift);
   real2 v79 = plus(v9, v17);
   real2 v73 = reverse(minus(v17, v9));
   real2 v13 = load(in, 11 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v78 = plus(v5, v13);
   real2 v74 = minus(v13, v5);
   real2 v105 = reverse(minus(v79, v78));
   real2 v111 = plus(v78, v79);
   real2 v75 = minusplus(v73, v74);
   real2 v77 = minusplus(uminus(v73), v74);
   real2 v83 = ctimesminusplus(reverse(v75), ctbl[2], ctimes(v75, ctbl[3]));
   real2 v7 = load(in, 5 << shift);
   real2 v15 = load(in, 13 << shift);
   real2 v41 = plus(v7, v15);
   real2 v35 = reverse(minus(v15, v7));
   real2 v11 = load(in, 9 << shift);
   real2 v3 = load(in, 1 << shift);
   real2 v40 = plus(v3, v11);
   real2 v36 = minus(v11, v3);
   real2 v110 = plus(v40, v41);
   real2 v106 = minus(v41, v40);
   real2 v121 = reverse(minus(v111, v110));
   real2 v127 = plus(v110, v111);
   real2 v109 = minusplus(uminus(v105), v106);
   real2 v107 = minusplus(v105, v106);
   real2 v119 = ctimesminusplus(reverse(v109), ctbl[0], ctimes(v109, ctbl[0]));
   real2 v115 = ctimesminusplus(reverse(v107), ctbl[0], ctimes(v107, ctbl[1]));
   real2 v16 = load(in, 14 << shift);
   real2 v8 = load(in, 6 << shift);
   real2 v55 = reverse(minus(v16, v8));
   real2 v61 = plus(v8, v16);
   real2 v12 = load(in, 10 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v56 = minus(v12, v4);
   real2 v60 = plus(v4, v12);
   real2 v89 = reverse(minus(v61, v60));
   real2 v95 = plus(v60, v61);
   real2 v14 = load(in, 12 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v19 = reverse(minus(v14, v6));
   real2 v25 = plus(v6, v14);
   real2 v2 = load(in, 0 << shift);
   real2 v10 = load(in, 8 << shift);
   real2 v24 = plus(v2, v10);
   real2 v20 = minus(v10, v2);
   real2 v90 = minus(v25, v24);
   real2 v94 = plus(v24, v25);
   real2 v103 = minus(uminusplus(v89), v90);
   store(out, 6 << shift, plus(v103, v119));
   store(out, 14 << shift, minus(v103, v119));
   real2 v99 = minus(uplusminus(v89), v90);
   store(out, 10 << shift, minus(v99, v115));
   store(out, 2 << shift, plus(v99, v115));
   real2 v126 = plus(v94, v95);
   store(out, 8 << shift, minus(v126, v127));
   store(out, 0 << shift, plus(v126, v127));
   real2 v122 = minus(v95, v94);
   store(out, 12 << shift, minus(uminusplus(v121), v122));
   store(out, 4 << shift, minus(uplusminus(v121), v122));
   real2 v33 = minus(uminusplus(v19), v20);
   real2 v29 = minus(uplusminus(v19), v20);
   real2 v59 = minusplus(uminus(v55), v56);
   real2 v57 = minusplus(v55, v56);
   real2 v67 = ctimesminusplus(reverse(v57), ctbl[0], ctimes(v57, ctbl[1]));
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v37 = minusplus(v35, v36);
   real2 v47 = ctimesminusplus(reverse(v37), ctbl[4], ctimes(v37, ctbl[5]));
   real2 v146 = reverse(minus(v83, v47));
   real2 v152 = plus(v47, v83);
   real2 v147 = minus(v67, v29);
   real2 v151 = plus(v29, v67);
   store(out, 9 << shift, minus(v151, v152));
   store(out, 1 << shift, plus(v151, v152));
   store(out, 5 << shift, minus(uplusminus(v146), v147));
   store(out, 13 << shift, minus(uminusplus(v146), v147));
   real2 v53 = ctimesminusplus(reverse(v39), ctbl[2], ctimes(v39, ctbl[3]));
   real2 v71 = ctimesminusplus(reverse(v59), ctbl[0], ctimes(v59, ctbl[0]));
   real2 v166 = minus(v71, v33);
   real2 v170 = plus(v33, v71);
   real2 v87 = ctimesminusplus(reverse(v77), ctbl[3], ctimes(v77, ctbl[2]));
   real2 v165 = reverse(minus(v87, v53));
   store(out, 15 << shift, minus(uminusplus(v165), v166));
   store(out, 7 << shift, minus(uplusminus(v165), v166));
   real2 v171 = plus(v53, v87);
   store(out, 3 << shift, plus(v170, v171));
   store(out, 11 << shift, minus(v170, v171));
  }
}

ALIGNED(8192) void but16f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v15 = load(in, 13 << inShift);
   real2 v7 = load(in, 5 << inShift);
   real2 v45 = plus(v7, v15);
   real2 v39 = reverse(minus(v7, v15));
   real2 v3 = load(in, 1 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v40 = minus(v11, v3);
   real2 v44 = plus(v3, v11);
   real2 v124 = plus(v44, v45);
   real2 v120 = minus(v45, v44);
   real2 v41 = minusplus(v39, v40);
   real2 v43 = minusplus(uminus(v39), v40);
   real2 v57 = ctimesminusplus(reverse(v43), tbl[8 + tbloffset], ctimes(v43, tbl[9 + tbloffset]));
   real2 v13 = load(in, 11 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v84 = plus(v5, v13);
   real2 v80 = minus(v13, v5);
   real2 v17 = load(in, 15 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v85 = plus(v9, v17);
   real2 v79 = reverse(minus(v9, v17));
   real2 v119 = reverse(minus(v84, v85));
   real2 v125 = plus(v84, v85);
   real2 v145 = plus(v124, v125);
   real2 v139 = reverse(minus(v124, v125));
   real2 v121 = minusplus(v119, v120);
   real2 v123 = minusplus(uminus(v119), v120);
   real2 v137 = ctimesminusplus(reverse(v123), tbl[24 + tbloffset], ctimes(v123, tbl[25 + tbloffset]));
   real2 v131 = ctimesminusplus(reverse(v121), tbl[22 + tbloffset], ctimes(v121, tbl[23 + tbloffset]));
   real2 v4 = load(in, 2 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v64 = plus(v4, v12);
   real2 v60 = minus(v12, v4);
   real2 v8 = load(in, 6 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v65 = plus(v8, v16);
   real2 v59 = reverse(minus(v8, v16));
   real2 v99 = reverse(minus(v64, v65));
   real2 v105 = plus(v64, v65);
   real2 v14 = load(in, 12 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v25 = plus(v6, v14);
   real2 v19 = reverse(minus(v6, v14));
   real2 v10 = load(in, 8 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v20 = minus(v10, v2);
   real2 v24 = plus(v2, v10);
   real2 v104 = plus(v24, v25);
   real2 v100 = minus(v25, v24);
   real2 v140 = minus(v105, v104);
   real2 v144 = plus(v104, v105);
   store(out, 0 << outShift, plus(v144, v145));
   real2 v158 = minus(v144, v145);
   store(out, 8 << outShift, ctimesminusplus(v158, tbl[0 + tbloffset], ctimes(reverse(v158), tbl[1 + tbloffset])));
   real2 v143 = minusplus(uminus(v139), v140);
   store(out, 12 << outShift, ctimesminusplus(reverse(v143), tbl[28 + tbloffset], ctimes(v143, tbl[29 + tbloffset])));
   real2 v141 = minusplus(v139, v140);
   store(out, 4 << outShift, ctimesminusplus(reverse(v141), tbl[26 + tbloffset], ctimes(v141, tbl[27 + tbloffset])));
   real2 v101 = minusplus(v99, v100);
   real2 v103 = minusplus(uminus(v99), v100);
   real2 v117 = ctimesminusplus(reverse(v103), tbl[20 + tbloffset], ctimes(v103, tbl[21 + tbloffset]));
   store(out, 6 << outShift, plus(v117, v137));
   real2 v172 = minus(v117, v137);
   store(out, 14 << outShift, ctimesminusplus(v172, tbl[0 + tbloffset], ctimes(reverse(v172), tbl[1 + tbloffset])));
   real2 v111 = ctimesminusplus(reverse(v101), tbl[18 + tbloffset], ctimes(v101, tbl[19 + tbloffset]));
   store(out, 2 << outShift, plus(v111, v131));
   real2 v166 = minus(v111, v131);
   store(out, 10 << outShift, ctimesminusplus(v166, tbl[0 + tbloffset], ctimes(reverse(v166), tbl[1 + tbloffset])));
   real2 v23 = minusplus(uminus(v19), v20);
   real2 v21 = minusplus(v19, v20);
   real2 v81 = minusplus(v79, v80);
   real2 v83 = minusplus(uminus(v79), v80);
   real2 v97 = ctimesminusplus(reverse(v83), tbl[16 + tbloffset], ctimes(v83, tbl[17 + tbloffset]));
   real2 v211 = plus(v57, v97);
   real2 v205 = reverse(minus(v57, v97));
   real2 v61 = minusplus(v59, v60);
   real2 v63 = minusplus(uminus(v59), v60);
   real2 v77 = ctimesminusplus(reverse(v63), tbl[12 + tbloffset], ctimes(v63, tbl[13 + tbloffset]));
   real2 v37 = ctimesminusplus(reverse(v23), tbl[4 + tbloffset], ctimes(v23, tbl[5 + tbloffset]));
   real2 v210 = plus(v37, v77);
   real2 v206 = minus(v77, v37);
   store(out, 3 << outShift, plus(v210, v211));
   real2 v224 = minus(v210, v211);
   store(out, 11 << outShift, ctimesminusplus(v224, tbl[0 + tbloffset], ctimes(reverse(v224), tbl[1 + tbloffset])));
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   store(out, 15 << outShift, ctimesminusplus(reverse(v209), tbl[36 + tbloffset], ctimes(v209, tbl[37 + tbloffset])));
   store(out, 7 << outShift, ctimesminusplus(reverse(v207), tbl[34 + tbloffset], ctimes(v207, tbl[35 + tbloffset])));
   real2 v71 = ctimesminusplus(reverse(v61), tbl[10 + tbloffset], ctimes(v61, tbl[11 + tbloffset]));
   real2 v51 = ctimesminusplus(reverse(v41), tbl[6 + tbloffset], ctimes(v41, tbl[7 + tbloffset]));
   real2 v91 = ctimesminusplus(reverse(v81), tbl[14 + tbloffset], ctimes(v81, tbl[15 + tbloffset]));
   real2 v185 = plus(v51, v91);
   real2 v179 = reverse(minus(v51, v91));
   real2 v31 = ctimesminusplus(reverse(v21), tbl[2 + tbloffset], ctimes(v21, tbl[3 + tbloffset]));
   real2 v184 = plus(v31, v71);
   real2 v180 = minus(v71, v31);
   store(out, 1 << outShift, plus(v184, v185));
   real2 v198 = minus(v184, v185);
   store(out, 9 << outShift, ctimesminusplus(v198, tbl[0 + tbloffset], ctimes(reverse(v198), tbl[1 + tbloffset])));
   real2 v181 = minusplus(v179, v180);
   store(out, 5 << outShift, ctimesminusplus(reverse(v181), tbl[30 + tbloffset], ctimes(v181, tbl[31 + tbloffset])));
   real2 v183 = minusplus(uminus(v179), v180);
   store(out, 13 << outShift, ctimesminusplus(reverse(v183), tbl[32 + tbloffset], ctimes(v183, tbl[33 + tbloffset])));
  }
}

ALIGNED(8192) void but16b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v15 = load(in, 13 << inShift);
   real2 v7 = load(in, 5 << inShift);
   real2 v45 = plus(v7, v15);
   real2 v39 = reverse(minus(v15, v7));
   real2 v3 = load(in, 1 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v40 = minus(v11, v3);
   real2 v44 = plus(v3, v11);
   real2 v124 = plus(v44, v45);
   real2 v120 = minus(v45, v44);
   real2 v41 = minusplus(v39, v40);
   real2 v43 = minusplus(uminus(v39), v40);
   real2 v57 = ctimesminusplus(reverse(v43), tbl[8 + tbloffset], ctimes(v43, tbl[9 + tbloffset]));
   real2 v13 = load(in, 11 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v84 = plus(v5, v13);
   real2 v80 = minus(v13, v5);
   real2 v17 = load(in, 15 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v85 = plus(v9, v17);
   real2 v79 = reverse(minus(v17, v9));
   real2 v119 = reverse(minus(v85, v84));
   real2 v125 = plus(v84, v85);
   real2 v145 = plus(v124, v125);
   real2 v139 = reverse(minus(v125, v124));
   real2 v121 = minusplus(v119, v120);
   real2 v123 = minusplus(uminus(v119), v120);
   real2 v137 = ctimesminusplus(reverse(v123), tbl[24 + tbloffset], ctimes(v123, tbl[25 + tbloffset]));
   real2 v131 = ctimesminusplus(reverse(v121), tbl[22 + tbloffset], ctimes(v121, tbl[23 + tbloffset]));
   real2 v4 = load(in, 2 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v64 = plus(v4, v12);
   real2 v60 = minus(v12, v4);
   real2 v8 = load(in, 6 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v65 = plus(v8, v16);
   real2 v59 = reverse(minus(v16, v8));
   real2 v99 = reverse(minus(v65, v64));
   real2 v105 = plus(v64, v65);
   real2 v14 = load(in, 12 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v25 = plus(v6, v14);
   real2 v19 = reverse(minus(v14, v6));
   real2 v10 = load(in, 8 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v20 = minus(v10, v2);
   real2 v24 = plus(v2, v10);
   real2 v104 = plus(v24, v25);
   real2 v100 = minus(v25, v24);
   real2 v140 = minus(v105, v104);
   real2 v144 = plus(v104, v105);
   store(out, 0 << outShift, plus(v144, v145));
   real2 v158 = minus(v144, v145);
   store(out, 8 << outShift, ctimesminusplus(v158, tbl[0 + tbloffset], ctimes(reverse(v158), tbl[1 + tbloffset])));
   real2 v143 = minusplus(uminus(v139), v140);
   store(out, 12 << outShift, ctimesminusplus(reverse(v143), tbl[28 + tbloffset], ctimes(v143, tbl[29 + tbloffset])));
   real2 v141 = minusplus(v139, v140);
   store(out, 4 << outShift, ctimesminusplus(reverse(v141), tbl[26 + tbloffset], ctimes(v141, tbl[27 + tbloffset])));
   real2 v101 = minusplus(v99, v100);
   real2 v103 = minusplus(uminus(v99), v100);
   real2 v117 = ctimesminusplus(reverse(v103), tbl[20 + tbloffset], ctimes(v103, tbl[21 + tbloffset]));
   store(out, 6 << outShift, plus(v117, v137));
   real2 v172 = minus(v117, v137);
   store(out, 14 << outShift, ctimesminusplus(v172, tbl[0 + tbloffset], ctimes(reverse(v172), tbl[1 + tbloffset])));
   real2 v111 = ctimesminusplus(reverse(v101), tbl[18 + tbloffset], ctimes(v101, tbl[19 + tbloffset]));
   store(out, 2 << outShift, plus(v111, v131));
   real2 v166 = minus(v111, v131);
   store(out, 10 << outShift, ctimesminusplus(v166, tbl[0 + tbloffset], ctimes(reverse(v166), tbl[1 + tbloffset])));
   real2 v23 = minusplus(uminus(v19), v20);
   real2 v21 = minusplus(v19, v20);
   real2 v81 = minusplus(v79, v80);
   real2 v83 = minusplus(uminus(v79), v80);
   real2 v97 = ctimesminusplus(reverse(v83), tbl[16 + tbloffset], ctimes(v83, tbl[17 + tbloffset]));
   real2 v211 = plus(v57, v97);
   real2 v205 = reverse(minus(v97, v57));
   real2 v61 = minusplus(v59, v60);
   real2 v63 = minusplus(uminus(v59), v60);
   real2 v77 = ctimesminusplus(reverse(v63), tbl[12 + tbloffset], ctimes(v63, tbl[13 + tbloffset]));
   real2 v37 = ctimesminusplus(reverse(v23), tbl[4 + tbloffset], ctimes(v23, tbl[5 + tbloffset]));
   real2 v210 = plus(v37, v77);
   real2 v206 = minus(v77, v37);
   store(out, 3 << outShift, plus(v210, v211));
   real2 v224 = minus(v210, v211);
   store(out, 11 << outShift, ctimesminusplus(v224, tbl[0 + tbloffset], ctimes(reverse(v224), tbl[1 + tbloffset])));
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   store(out, 15 << outShift, ctimesminusplus(reverse(v209), tbl[36 + tbloffset], ctimes(v209, tbl[37 + tbloffset])));
   store(out, 7 << outShift, ctimesminusplus(reverse(v207), tbl[34 + tbloffset], ctimes(v207, tbl[35 + tbloffset])));
   real2 v71 = ctimesminusplus(reverse(v61), tbl[10 + tbloffset], ctimes(v61, tbl[11 + tbloffset]));
   real2 v51 = ctimesminusplus(reverse(v41), tbl[6 + tbloffset], ctimes(v41, tbl[7 + tbloffset]));
   real2 v91 = ctimesminusplus(reverse(v81), tbl[14 + tbloffset], ctimes(v81, tbl[15 + tbloffset]));
   real2 v185 = plus(v51, v91);
   real2 v179 = reverse(minus(v91, v51));
   real2 v31 = ctimesminusplus(reverse(v21), tbl[2 + tbloffset], ctimes(v21, tbl[3 + tbloffset]));
   real2 v184 = plus(v31, v71);
   real2 v180 = minus(v71, v31);
   store(out, 1 << outShift, plus(v184, v185));
   real2 v198 = minus(v184, v185);
   store(out, 9 << outShift, ctimesminusplus(v198, tbl[0 + tbloffset], ctimes(reverse(v198), tbl[1 + tbloffset])));
   real2 v181 = minusplus(v179, v180);
   store(out, 5 << outShift, ctimesminusplus(reverse(v181), tbl[30 + tbloffset], ctimes(v181, tbl[31 + tbloffset])));
   real2 v183 = minusplus(uminus(v179), v180);
   store(out, 13 << outShift, ctimesminusplus(reverse(v183), tbl[32 + tbloffset], ctimes(v183, tbl[33 + tbloffset])));
  }
}

ALIGNED(8192) void tbut16f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v15 = load(in, 13 << inShift);
   real2 v7 = load(in, 5 << inShift);
   real2 v45 = plus(v7, v15);
   real2 v39 = reverse(minus(v7, v15));
   real2 v3 = load(in, 1 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v40 = minus(v11, v3);
   real2 v44 = plus(v3, v11);
   real2 v124 = plus(v44, v45);
   real2 v120 = minus(v45, v44);
   real2 v41 = minusplus(v39, v40);
   real2 v43 = minusplus(uminus(v39), v40);
   real2 v57 = timesminusplus(reverse(v43), load(tbl, 8 * VECWIDTH + tbloffset), times(v43, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v13 = load(in, 11 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v84 = plus(v5, v13);
   real2 v80 = minus(v13, v5);
   real2 v17 = load(in, 15 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v85 = plus(v9, v17);
   real2 v79 = reverse(minus(v9, v17));
   real2 v119 = reverse(minus(v84, v85));
   real2 v125 = plus(v84, v85);
   real2 v145 = plus(v124, v125);
   real2 v139 = reverse(minus(v124, v125));
   real2 v121 = minusplus(v119, v120);
   real2 v123 = minusplus(uminus(v119), v120);
   real2 v137 = timesminusplus(reverse(v123), load(tbl, 24 * VECWIDTH + tbloffset), times(v123, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v131 = timesminusplus(reverse(v121), load(tbl, 22 * VECWIDTH + tbloffset), times(v121, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v4 = load(in, 2 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v64 = plus(v4, v12);
   real2 v60 = minus(v12, v4);
   real2 v8 = load(in, 6 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v65 = plus(v8, v16);
   real2 v59 = reverse(minus(v8, v16));
   real2 v99 = reverse(minus(v64, v65));
   real2 v105 = plus(v64, v65);
   real2 v14 = load(in, 12 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v25 = plus(v6, v14);
   real2 v19 = reverse(minus(v6, v14));
   real2 v10 = load(in, 8 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v20 = minus(v10, v2);
   real2 v24 = plus(v2, v10);
   real2 v104 = plus(v24, v25);
   real2 v100 = minus(v25, v24);
   real2 v140 = minus(v105, v104);
   real2 v144 = plus(v104, v105);
   scatter(out, 0, 16, plus(v144, v145));
   real2 v158 = minus(v144, v145);
   scatter(out, 8, 16, timesminusplus(v158, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v158), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v143 = minusplus(uminus(v139), v140);
   scatter(out, 12, 16, timesminusplus(reverse(v143), load(tbl, 28 * VECWIDTH + tbloffset), times(v143, load(tbl, 29 * VECWIDTH + tbloffset))));
   real2 v141 = minusplus(v139, v140);
   scatter(out, 4, 16, timesminusplus(reverse(v141), load(tbl, 26 * VECWIDTH + tbloffset), times(v141, load(tbl, 27 * VECWIDTH + tbloffset))));
   real2 v101 = minusplus(v99, v100);
   real2 v103 = minusplus(uminus(v99), v100);
   real2 v117 = timesminusplus(reverse(v103), load(tbl, 20 * VECWIDTH + tbloffset), times(v103, load(tbl, 21 * VECWIDTH + tbloffset)));
   scatter(out, 6, 16, plus(v117, v137));
   real2 v172 = minus(v117, v137);
   scatter(out, 14, 16, timesminusplus(v172, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v172), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v111 = timesminusplus(reverse(v101), load(tbl, 18 * VECWIDTH + tbloffset), times(v101, load(tbl, 19 * VECWIDTH + tbloffset)));
   scatter(out, 2, 16, plus(v111, v131));
   real2 v166 = minus(v111, v131);
   scatter(out, 10, 16, timesminusplus(v166, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v166), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v23 = minusplus(uminus(v19), v20);
   real2 v21 = minusplus(v19, v20);
   real2 v81 = minusplus(v79, v80);
   real2 v83 = minusplus(uminus(v79), v80);
   real2 v97 = timesminusplus(reverse(v83), load(tbl, 16 * VECWIDTH + tbloffset), times(v83, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v211 = plus(v57, v97);
   real2 v205 = reverse(minus(v57, v97));
   real2 v61 = minusplus(v59, v60);
   real2 v63 = minusplus(uminus(v59), v60);
   real2 v77 = timesminusplus(reverse(v63), load(tbl, 12 * VECWIDTH + tbloffset), times(v63, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v37 = timesminusplus(reverse(v23), load(tbl, 4 * VECWIDTH + tbloffset), times(v23, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v210 = plus(v37, v77);
   real2 v206 = minus(v77, v37);
   scatter(out, 3, 16, plus(v210, v211));
   real2 v224 = minus(v210, v211);
   scatter(out, 11, 16, timesminusplus(v224, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v224), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   scatter(out, 15, 16, timesminusplus(reverse(v209), load(tbl, 36 * VECWIDTH + tbloffset), times(v209, load(tbl, 37 * VECWIDTH + tbloffset))));
   scatter(out, 7, 16, timesminusplus(reverse(v207), load(tbl, 34 * VECWIDTH + tbloffset), times(v207, load(tbl, 35 * VECWIDTH + tbloffset))));
   real2 v71 = timesminusplus(reverse(v61), load(tbl, 10 * VECWIDTH + tbloffset), times(v61, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v51 = timesminusplus(reverse(v41), load(tbl, 6 * VECWIDTH + tbloffset), times(v41, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v91 = timesminusplus(reverse(v81), load(tbl, 14 * VECWIDTH + tbloffset), times(v81, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v185 = plus(v51, v91);
   real2 v179 = reverse(minus(v51, v91));
   real2 v31 = timesminusplus(reverse(v21), load(tbl, 2 * VECWIDTH + tbloffset), times(v21, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v184 = plus(v31, v71);
   real2 v180 = minus(v71, v31);
   scatter(out, 1, 16, plus(v184, v185));
   real2 v198 = minus(v184, v185);
   scatter(out, 9, 16, timesminusplus(v198, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v198), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v181 = minusplus(v179, v180);
   scatter(out, 5, 16, timesminusplus(reverse(v181), load(tbl, 30 * VECWIDTH + tbloffset), times(v181, load(tbl, 31 * VECWIDTH + tbloffset))));
   real2 v183 = minusplus(uminus(v179), v180);
   scatter(out, 13, 16, timesminusplus(reverse(v183), load(tbl, 32 * VECWIDTH + tbloffset), times(v183, load(tbl, 33 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut16b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v15 = load(in, 13 << inShift);
   real2 v7 = load(in, 5 << inShift);
   real2 v45 = plus(v7, v15);
   real2 v39 = reverse(minus(v15, v7));
   real2 v3 = load(in, 1 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v40 = minus(v11, v3);
   real2 v44 = plus(v3, v11);
   real2 v124 = plus(v44, v45);
   real2 v120 = minus(v45, v44);
   real2 v41 = minusplus(v39, v40);
   real2 v43 = minusplus(uminus(v39), v40);
   real2 v57 = timesminusplus(reverse(v43), load(tbl, 8 * VECWIDTH + tbloffset), times(v43, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v13 = load(in, 11 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v84 = plus(v5, v13);
   real2 v80 = minus(v13, v5);
   real2 v17 = load(in, 15 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v85 = plus(v9, v17);
   real2 v79 = reverse(minus(v17, v9));
   real2 v119 = reverse(minus(v85, v84));
   real2 v125 = plus(v84, v85);
   real2 v145 = plus(v124, v125);
   real2 v139 = reverse(minus(v125, v124));
   real2 v121 = minusplus(v119, v120);
   real2 v123 = minusplus(uminus(v119), v120);
   real2 v137 = timesminusplus(reverse(v123), load(tbl, 24 * VECWIDTH + tbloffset), times(v123, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v131 = timesminusplus(reverse(v121), load(tbl, 22 * VECWIDTH + tbloffset), times(v121, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v4 = load(in, 2 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v64 = plus(v4, v12);
   real2 v60 = minus(v12, v4);
   real2 v8 = load(in, 6 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v65 = plus(v8, v16);
   real2 v59 = reverse(minus(v16, v8));
   real2 v99 = reverse(minus(v65, v64));
   real2 v105 = plus(v64, v65);
   real2 v14 = load(in, 12 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v25 = plus(v6, v14);
   real2 v19 = reverse(minus(v14, v6));
   real2 v10 = load(in, 8 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v20 = minus(v10, v2);
   real2 v24 = plus(v2, v10);
   real2 v104 = plus(v24, v25);
   real2 v100 = minus(v25, v24);
   real2 v140 = minus(v105, v104);
   real2 v144 = plus(v104, v105);
   scatter(out, 0, 16, plus(v144, v145));
   real2 v158 = minus(v144, v145);
   scatter(out, 8, 16, timesminusplus(v158, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v158), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v143 = minusplus(uminus(v139), v140);
   scatter(out, 12, 16, timesminusplus(reverse(v143), load(tbl, 28 * VECWIDTH + tbloffset), times(v143, load(tbl, 29 * VECWIDTH + tbloffset))));
   real2 v141 = minusplus(v139, v140);
   scatter(out, 4, 16, timesminusplus(reverse(v141), load(tbl, 26 * VECWIDTH + tbloffset), times(v141, load(tbl, 27 * VECWIDTH + tbloffset))));
   real2 v101 = minusplus(v99, v100);
   real2 v103 = minusplus(uminus(v99), v100);
   real2 v117 = timesminusplus(reverse(v103), load(tbl, 20 * VECWIDTH + tbloffset), times(v103, load(tbl, 21 * VECWIDTH + tbloffset)));
   scatter(out, 6, 16, plus(v117, v137));
   real2 v172 = minus(v117, v137);
   scatter(out, 14, 16, timesminusplus(v172, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v172), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v111 = timesminusplus(reverse(v101), load(tbl, 18 * VECWIDTH + tbloffset), times(v101, load(tbl, 19 * VECWIDTH + tbloffset)));
   scatter(out, 2, 16, plus(v111, v131));
   real2 v166 = minus(v111, v131);
   scatter(out, 10, 16, timesminusplus(v166, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v166), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v23 = minusplus(uminus(v19), v20);
   real2 v21 = minusplus(v19, v20);
   real2 v81 = minusplus(v79, v80);
   real2 v83 = minusplus(uminus(v79), v80);
   real2 v97 = timesminusplus(reverse(v83), load(tbl, 16 * VECWIDTH + tbloffset), times(v83, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v211 = plus(v57, v97);
   real2 v205 = reverse(minus(v97, v57));
   real2 v61 = minusplus(v59, v60);
   real2 v63 = minusplus(uminus(v59), v60);
   real2 v77 = timesminusplus(reverse(v63), load(tbl, 12 * VECWIDTH + tbloffset), times(v63, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v37 = timesminusplus(reverse(v23), load(tbl, 4 * VECWIDTH + tbloffset), times(v23, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v210 = plus(v37, v77);
   real2 v206 = minus(v77, v37);
   scatter(out, 3, 16, plus(v210, v211));
   real2 v224 = minus(v210, v211);
   scatter(out, 11, 16, timesminusplus(v224, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v224), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   scatter(out, 15, 16, timesminusplus(reverse(v209), load(tbl, 36 * VECWIDTH + tbloffset), times(v209, load(tbl, 37 * VECWIDTH + tbloffset))));
   scatter(out, 7, 16, timesminusplus(reverse(v207), load(tbl, 34 * VECWIDTH + tbloffset), times(v207, load(tbl, 35 * VECWIDTH + tbloffset))));
   real2 v71 = timesminusplus(reverse(v61), load(tbl, 10 * VECWIDTH + tbloffset), times(v61, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v51 = timesminusplus(reverse(v41), load(tbl, 6 * VECWIDTH + tbloffset), times(v41, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v91 = timesminusplus(reverse(v81), load(tbl, 14 * VECWIDTH + tbloffset), times(v81, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v185 = plus(v51, v91);
   real2 v179 = reverse(minus(v91, v51));
   real2 v31 = timesminusplus(reverse(v21), load(tbl, 2 * VECWIDTH + tbloffset), times(v21, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v184 = plus(v31, v71);
   real2 v180 = minus(v71, v31);
   scatter(out, 1, 16, plus(v184, v185));
   real2 v198 = minus(v184, v185);
   scatter(out, 9, 16, timesminusplus(v198, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v198), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v181 = minusplus(v179, v180);
   scatter(out, 5, 16, timesminusplus(reverse(v181), load(tbl, 30 * VECWIDTH + tbloffset), times(v181, load(tbl, 31 * VECWIDTH + tbloffset))));
   real2 v183 = minusplus(uminus(v179), v180);
   scatter(out, 13, 16, timesminusplus(reverse(v183), load(tbl, 32 * VECWIDTH + tbloffset), times(v183, load(tbl, 33 * VECWIDTH + tbloffset))));
  }
}
#endif

#if MAXBUTWIDTH >= 5
ALIGNED(8192) void dft32f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v15 = load(in, 13 << shift);
   real2 v31 = load(in, 29 << shift);
   real2 v124 = reverse(minus(v15, v31));
   real2 v130 = plus(v15, v31);
   real2 v23 = load(in, 21 << shift);
   real2 v7 = load(in, 5 << shift);
   real2 v129 = plus(v7, v23);
   real2 v125 = minus(v23, v7);
   real2 v193 = reverse(minus(v129, v130));
   real2 v199 = plus(v129, v130);
   real2 v126 = minusplus(v124, v125);
   real2 v128 = minusplus(uminus(v124), v125);
   real2 v139 = ctimesminusplus(reverse(v128), ctbl[7], ctimes(v128, ctbl[6]));
   real2 v134 = ctimesminusplus(reverse(v126), ctbl[9], ctimes(v126, ctbl[11]));
   real2 v19 = load(in, 17 << shift);
   real2 v3 = load(in, 1 << shift);
   real2 v52 = minus(v19, v3);
   real2 v56 = plus(v3, v19);
   real2 v27 = load(in, 25 << shift);
   real2 v11 = load(in, 9 << shift);
   real2 v51 = reverse(minus(v11, v27));
   real2 v57 = plus(v11, v27);
   real2 v194 = minus(v57, v56);
   real2 v198 = plus(v56, v57);
   real2 v53 = minusplus(v51, v52);
   real2 v55 = minusplus(uminus(v51), v52);
   real2 v69 = ctimesminusplus(reverse(v55), ctbl[11], ctimes(v55, ctbl[9]));
   real2 v262 = plus(v198, v199);
   real2 v258 = minus(v199, v198);
   real2 v195 = minusplus(v193, v194);
   real2 v197 = minusplus(uminus(v193), v194);
   real2 v207 = ctimesminusplus(reverse(v197), ctbl[5], ctimes(v197, ctbl[3]));
   real2 v414 = plus(v69, v139);
   real2 v410 = minus(v139, v69);
   real2 v203 = ctimesminusplus(reverse(v195), ctbl[3], ctimes(v195, ctbl[5]));
   real2 v17 = load(in, 15 << shift);
   real2 v33 = load(in, 31 << shift);
   real2 v159 = reverse(minus(v17, v33));
   real2 v165 = plus(v17, v33);
   real2 v25 = load(in, 23 << shift);
   real2 v9 = load(in, 7 << shift);
   real2 v164 = plus(v9, v25);
   real2 v160 = minus(v25, v9);
   real2 v231 = plus(v164, v165);
   real2 v225 = reverse(minus(v164, v165));
   real2 v161 = minusplus(v159, v160);
   real2 v163 = minusplus(uminus(v159), v160);
   real2 v175 = ctimesminusplus(reverse(v163), ctbl[10], ctimes(v163, ctbl[8]));
   real2 v13 = load(in, 11 << shift);
   real2 v29 = load(in, 27 << shift);
   real2 v95 = plus(v13, v29);
   real2 v89 = reverse(minus(v13, v29));
   real2 v21 = load(in, 19 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v90 = minus(v21, v5);
   real2 v94 = plus(v5, v21);
   real2 v226 = minus(v95, v94);
   real2 v230 = plus(v94, v95);
   real2 v229 = minusplus(uminus(v225), v226);
   real2 v227 = minusplus(v225, v226);
   real2 v239 = ctimesminusplus(reverse(v229), ctbl[4], ctimes(v229, ctbl[2]));
   real2 v257 = reverse(minus(v230, v231));
   real2 v263 = plus(v230, v231);
   real2 v235 = ctimesminusplus(reverse(v227), ctbl[5], ctimes(v227, ctbl[3]));
   real2 v261 = minusplus(uminus(v257), v258);
   real2 v259 = minusplus(v257, v258);
   real2 v267 = ctimesminusplus(reverse(v259), ctbl[1], ctimes(v259, ctbl[1]));
   real2 v298 = reverse(minus(v203, v235));
   real2 v304 = plus(v203, v235);
   real2 v271 = ctimesminusplus(reverse(v261), ctbl[1], ctimes(v261, ctbl[0]));
   real2 v279 = plus(v262, v263);
   real2 v273 = reverse(minus(v262, v263));
   real2 v317 = reverse(minus(v207, v239));
   real2 v323 = plus(v207, v239);
   real2 v8 = load(in, 6 << shift);
   real2 v24 = load(in, 22 << shift);
   real2 v146 = plus(v8, v24);
   real2 v142 = minus(v24, v8);
   real2 v28 = load(in, 26 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v77 = plus(v12, v28);
   real2 v71 = reverse(minus(v12, v28));
   real2 v16 = load(in, 14 << shift);
   real2 v32 = load(in, 30 << shift);
   real2 v147 = plus(v16, v32);
   real2 v141 = reverse(minus(v16, v32));
   real2 v209 = reverse(minus(v146, v147));
   real2 v215 = plus(v146, v147);
   real2 v20 = load(in, 18 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v72 = minus(v20, v4);
   real2 v76 = plus(v4, v20);
   real2 v214 = plus(v76, v77);
   real2 v210 = minus(v77, v76);
   real2 v247 = plus(v214, v215);
   real2 v241 = reverse(minus(v214, v215));
   real2 v213 = minusplus(uminus(v209), v210);
   real2 v211 = minusplus(v209, v210);
   real2 v223 = ctimesminusplus(reverse(v213), ctbl[1], ctimes(v213, ctbl[0]));
   real2 v219 = ctimesminusplus(reverse(v211), ctbl[1], ctimes(v211, ctbl[1]));
   real2 v26 = load(in, 24 << shift);
   real2 v10 = load(in, 8 << shift);
   real2 v35 = reverse(minus(v10, v26));
   real2 v41 = plus(v10, v26);
   real2 v2 = load(in, 0 << shift);
   real2 v18 = load(in, 16 << shift);
   real2 v40 = plus(v2, v18);
   real2 v36 = minus(v18, v2);
   real2 v178 = minus(v41, v40);
   real2 v182 = plus(v40, v41);
   real2 v6 = load(in, 4 << shift);
   real2 v22 = load(in, 20 << shift);
   real2 v107 = minus(v22, v6);
   real2 v111 = plus(v6, v22);
   real2 v14 = load(in, 12 << shift);
   real2 v30 = load(in, 28 << shift);
   real2 v112 = plus(v14, v30);
   real2 v106 = reverse(minus(v14, v30));
   real2 v177 = reverse(minus(v111, v112));
   real2 v183 = plus(v111, v112);
   real2 v191 = minus(uminusplus(v177), v178);
   real2 v187 = minus(uplusminus(v177), v178);
   real2 v322 = plus(v191, v223);
   real2 v318 = minus(v223, v191);
   store(out, 22 << shift, minus(v322, v323));
   store(out, 6 << shift, plus(v322, v323));
   store(out, 14 << shift, minus(uplusminus(v317), v318));
   store(out, 30 << shift, minus(uminusplus(v317), v318));
   real2 v246 = plus(v182, v183);
   real2 v242 = minus(v183, v182);
   real2 v274 = minus(v247, v246);
   store(out, 24 << shift, minus(uminusplus(v273), v274));
   store(out, 8 << shift, minus(uplusminus(v273), v274));
   real2 v278 = plus(v246, v247);
   store(out, 16 << shift, minus(v278, v279));
   store(out, 0 << shift, plus(v278, v279));
   real2 v303 = plus(v187, v219);
   store(out, 2 << shift, plus(v303, v304));
   store(out, 18 << shift, minus(v303, v304));
   real2 v299 = minus(v219, v187);
   store(out, 26 << shift, minus(uminusplus(v298), v299));
   store(out, 10 << shift, minus(uplusminus(v298), v299));
   real2 v255 = minus(uminusplus(v241), v242);
   real2 v251 = minus(uplusminus(v241), v242);
   store(out, 20 << shift, minus(v251, v267));
   store(out, 4 << shift, plus(v251, v267));
   store(out, 28 << shift, minus(v255, v271));
   store(out, 12 << shift, plus(v255, v271));
   real2 v75 = minusplus(uminus(v71), v72);
   real2 v73 = minusplus(v71, v72);
   real2 v143 = minusplus(v141, v142);
   real2 v145 = minusplus(uminus(v141), v142);
   real2 v157 = ctimesminusplus(reverse(v145), ctbl[4], ctimes(v145, ctbl[2]));
   real2 v87 = ctimesminusplus(reverse(v75), ctbl[5], ctimes(v75, ctbl[3]));
   real2 v91 = minusplus(v89, v90);
   real2 v93 = minusplus(uminus(v89), v90);
   real2 v104 = ctimesminusplus(reverse(v93), ctbl[13], ctimes(v93, ctbl[12]));
   real2 v399 = plus(v87, v157);
   real2 v393 = reverse(minus(v87, v157));
   real2 v110 = minusplus(uminus(v106), v107);
   real2 v108 = minusplus(v106, v107);
   real2 v415 = plus(v104, v175);
   real2 v409 = reverse(minus(v104, v175));
   real2 v411 = minusplus(v409, v410);
   real2 v413 = minusplus(uminus(v409), v410);
   real2 v49 = minus(uminusplus(v35), v36);
   real2 v45 = minus(uplusminus(v35), v36);
   real2 v122 = ctimesminusplus(reverse(v110), ctbl[1], ctimes(v110, ctbl[0]));
   real2 v423 = ctimesminusplus(reverse(v413), ctbl[1], ctimes(v413, ctbl[0]));
   real2 v398 = plus(v49, v122);
   real2 v394 = minus(v122, v49);
   real2 v407 = minus(uminusplus(v393), v394);
   store(out, 15 << shift, plus(v407, v423));
   store(out, 31 << shift, minus(v407, v423));
   real2 v403 = minus(uplusminus(v393), v394);
   real2 v419 = ctimesminusplus(reverse(v411), ctbl[1], ctimes(v411, ctbl[1]));
   store(out, 7 << shift, plus(v403, v419));
   store(out, 23 << shift, minus(v403, v419));
   real2 v431 = plus(v414, v415);
   real2 v425 = reverse(minus(v414, v415));
   real2 v430 = plus(v398, v399);
   store(out, 19 << shift, minus(v430, v431));
   store(out, 3 << shift, plus(v430, v431));
   real2 v426 = minus(v399, v398);
   store(out, 27 << shift, minus(uminusplus(v425), v426));
   store(out, 11 << shift, minus(uplusminus(v425), v426));
   real2 v63 = ctimesminusplus(reverse(v53), ctbl[7], ctimes(v53, ctbl[13]));
   real2 v151 = ctimesminusplus(reverse(v143), ctbl[5], ctimes(v143, ctbl[3]));
   real2 v99 = ctimesminusplus(reverse(v91), ctbl[11], ctimes(v91, ctbl[9]));
   real2 v169 = ctimesminusplus(reverse(v161), ctbl[13], ctimes(v161, ctbl[7]));
   real2 v352 = reverse(minus(v99, v169));
   real2 v358 = plus(v99, v169);
   real2 v357 = plus(v63, v134);
   real2 v353 = minus(v134, v63);
   real2 v117 = ctimesminusplus(reverse(v108), ctbl[1], ctimes(v108, ctbl[1]));
   real2 v374 = plus(v357, v358);
   real2 v368 = reverse(minus(v357, v358));
   real2 v83 = ctimesminusplus(reverse(v73), ctbl[3], ctimes(v73, ctbl[5]));
   real2 v336 = reverse(minus(v83, v151));
   real2 v342 = plus(v83, v151);
   real2 v341 = plus(v45, v117);
   real2 v337 = minus(v117, v45);
   real2 v373 = plus(v341, v342);
   real2 v369 = minus(v342, v341);
   store(out, 9 << shift, minus(uplusminus(v368), v369));
   store(out, 25 << shift, minus(uminusplus(v368), v369));
   store(out, 17 << shift, minus(v373, v374));
   store(out, 1 << shift, plus(v373, v374));
   real2 v354 = minusplus(v352, v353);
   real2 v356 = minusplus(uminus(v352), v353);
   real2 v362 = ctimesminusplus(reverse(v354), ctbl[1], ctimes(v354, ctbl[1]));
   real2 v346 = minus(uplusminus(v336), v337);
   store(out, 21 << shift, minus(v346, v362));
   store(out, 5 << shift, plus(v346, v362));
   real2 v350 = minus(uminusplus(v336), v337);
   real2 v366 = ctimesminusplus(reverse(v356), ctbl[1], ctimes(v356, ctbl[0]));
   store(out, 29 << shift, minus(v350, v366));
   store(out, 13 << shift, plus(v350, v366));
  }
}

ALIGNED(8192) void dft32b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

   real2 v6 = load(in, 4 << shift);
   real2 v22 = load(in, 20 << shift);
   real2 v109 = minus(v22, v6);
   real2 v113 = plus(v6, v22);
   real2 v14 = load(in, 12 << shift);
   real2 v30 = load(in, 28 << shift);
   real2 v108 = reverse(minus(v30, v14));
   real2 v114 = plus(v14, v30);
   real2 v183 = plus(v113, v114);
   real2 v177 = reverse(minus(v114, v113));
   real2 v110 = minusplus(v108, v109);
   real2 v112 = minusplus(uminus(v108), v109);
   real2 v120 = ctimesminusplus(reverse(v110), ctbl[0], ctimes(v110, ctbl[1]));
   real2 v124 = ctimesminusplus(reverse(v112), ctbl[0], ctimes(v112, ctbl[0]));
   real2 v10 = load(in, 8 << shift);
   real2 v26 = load(in, 24 << shift);
   real2 v35 = reverse(minus(v26, v10));
   real2 v41 = plus(v10, v26);
   real2 v18 = load(in, 16 << shift);
   real2 v2 = load(in, 0 << shift);
   real2 v36 = minus(v18, v2);
   real2 v40 = plus(v2, v18);
   real2 v178 = minus(v41, v40);
   real2 v182 = plus(v40, v41);
   real2 v45 = minus(uplusminus(v35), v36);
   real2 v49 = minus(uminusplus(v35), v36);
   real2 v398 = plus(v49, v124);
   real2 v394 = minus(v124, v49);
   real2 v242 = minus(v183, v182);
   real2 v246 = plus(v182, v183);
   real2 v341 = plus(v45, v120);
   real2 v337 = minus(v120, v45);
   real2 v187 = minus(uplusminus(v177), v178);
   real2 v191 = minus(uminusplus(v177), v178);
   real2 v7 = load(in, 5 << shift);
   real2 v23 = load(in, 21 << shift);
   real2 v131 = plus(v7, v23);
   real2 v127 = minus(v23, v7);
   real2 v15 = load(in, 13 << shift);
   real2 v31 = load(in, 29 << shift);
   real2 v126 = reverse(minus(v31, v15));
   real2 v132 = plus(v15, v31);
   real2 v199 = plus(v131, v132);
   real2 v193 = reverse(minus(v132, v131));
   real2 v128 = minusplus(v126, v127);
   real2 v130 = minusplus(uminus(v126), v127);
   real2 v138 = ctimesminusplus(reverse(v128), ctbl[10], ctimes(v128, ctbl[11]));
   real2 v21 = load(in, 19 << shift);
   real2 v5 = load(in, 3 << shift);
   real2 v92 = minus(v21, v5);
   real2 v96 = plus(v5, v21);
   real2 v29 = load(in, 27 << shift);
   real2 v13 = load(in, 11 << shift);
   real2 v97 = plus(v13, v29);
   real2 v91 = reverse(minus(v29, v13));
   real2 v95 = minusplus(uminus(v91), v92);
   real2 v93 = minusplus(v91, v92);
   real2 v230 = plus(v96, v97);
   real2 v226 = minus(v97, v96);
   real2 v17 = load(in, 15 << shift);
   real2 v33 = load(in, 31 << shift);
   real2 v166 = plus(v17, v33);
   real2 v160 = reverse(minus(v33, v17));
   real2 v9 = load(in, 7 << shift);
   real2 v25 = load(in, 23 << shift);
   real2 v161 = minus(v25, v9);
   real2 v165 = plus(v9, v25);
   real2 v231 = plus(v165, v166);
   real2 v225 = reverse(minus(v166, v165));
   real2 v263 = plus(v230, v231);
   real2 v257 = reverse(minus(v231, v230));
   real2 v229 = minusplus(uminus(v225), v226);
   real2 v227 = minusplus(v225, v226);
   real2 v235 = ctimesminusplus(reverse(v227), ctbl[2], ctimes(v227, ctbl[3]));
   real2 v3 = load(in, 1 << shift);
   real2 v19 = load(in, 17 << shift);
   real2 v52 = minus(v19, v3);
   real2 v56 = plus(v3, v19);
   real2 v27 = load(in, 25 << shift);
   real2 v11 = load(in, 9 << shift);
   real2 v51 = reverse(minus(v27, v11));
   real2 v57 = plus(v11, v27);
   real2 v198 = plus(v56, v57);
   real2 v194 = minus(v57, v56);
   real2 v258 = minus(v199, v198);
   real2 v262 = plus(v198, v199);
   real2 v273 = reverse(minus(v263, v262));
   real2 v279 = plus(v262, v263);
   real2 v259 = minusplus(v257, v258);
   real2 v261 = minusplus(uminus(v257), v258);
   real2 v271 = ctimesminusplus(reverse(v261), ctbl[0], ctimes(v261, ctbl[0]));
   real2 v197 = minusplus(uminus(v193), v194);
   real2 v195 = minusplus(v193, v194);
   real2 v203 = ctimesminusplus(reverse(v195), ctbl[4], ctimes(v195, ctbl[5]));
   real2 v298 = reverse(minus(v235, v203));
   real2 v304 = plus(v203, v235);
   real2 v267 = ctimesminusplus(reverse(v259), ctbl[0], ctimes(v259, ctbl[1]));
   real2 v4 = load(in, 2 << shift);
   real2 v20 = load(in, 18 << shift);
   real2 v72 = minus(v20, v4);
   real2 v76 = plus(v4, v20);
   real2 v28 = load(in, 26 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v71 = reverse(minus(v28, v12));
   real2 v77 = plus(v12, v28);
   real2 v210 = minus(v77, v76);
   real2 v214 = plus(v76, v77);
   real2 v32 = load(in, 30 << shift);
   real2 v16 = load(in, 14 << shift);
   real2 v150 = plus(v16, v32);
   real2 v144 = reverse(minus(v32, v16));
   real2 v8 = load(in, 6 << shift);
   real2 v24 = load(in, 22 << shift);
   real2 v149 = plus(v8, v24);
   real2 v145 = minus(v24, v8);
   real2 v215 = plus(v149, v150);
   real2 v209 = reverse(minus(v150, v149));
   real2 v241 = reverse(minus(v215, v214));
   real2 v247 = plus(v214, v215);
   real2 v251 = minus(uplusminus(v241), v242);
   real2 v255 = minus(uminusplus(v241), v242);
   store(out, 12 << shift, plus(v255, v271));
   store(out, 28 << shift, minus(v255, v271));
   store(out, 4 << shift, plus(v251, v267));
   store(out, 20 << shift, minus(v251, v267));
   real2 v278 = plus(v246, v247);
   real2 v274 = minus(v247, v246);
   store(out, 24 << shift, minus(uminusplus(v273), v274));
   store(out, 8 << shift, minus(uplusminus(v273), v274));
   store(out, 16 << shift, minus(v278, v279));
   store(out, 0 << shift, plus(v278, v279));
   real2 v211 = minusplus(v209, v210);
   real2 v213 = minusplus(uminus(v209), v210);
   real2 v219 = ctimesminusplus(reverse(v211), ctbl[0], ctimes(v211, ctbl[1]));
   real2 v299 = minus(v219, v187);
   real2 v303 = plus(v187, v219);
   store(out, 2 << shift, plus(v303, v304));
   store(out, 18 << shift, minus(v303, v304));
   store(out, 10 << shift, minus(uplusminus(v298), v299));
   store(out, 26 << shift, minus(uminusplus(v298), v299));
   real2 v223 = ctimesminusplus(reverse(v213), ctbl[0], ctimes(v213, ctbl[0]));
   real2 v322 = plus(v191, v223);
   real2 v318 = minus(v223, v191);
   real2 v239 = ctimesminusplus(reverse(v229), ctbl[3], ctimes(v229, ctbl[2]));
   real2 v207 = ctimesminusplus(reverse(v197), ctbl[2], ctimes(v197, ctbl[3]));
   real2 v317 = reverse(minus(v239, v207));
   store(out, 30 << shift, minus(uminusplus(v317), v318));
   store(out, 14 << shift, minus(uplusminus(v317), v318));
   real2 v323 = plus(v207, v239);
   store(out, 6 << shift, plus(v322, v323));
   store(out, 22 << shift, minus(v322, v323));
   real2 v101 = ctimesminusplus(reverse(v93), ctbl[8], ctimes(v93, ctbl[9]));
   real2 v75 = minusplus(uminus(v71), v72);
   real2 v73 = minusplus(v71, v72);
   real2 v83 = ctimesminusplus(reverse(v73), ctbl[4], ctimes(v73, ctbl[5]));
   real2 v162 = minusplus(v160, v161);
   real2 v164 = minusplus(uminus(v160), v161);
   real2 v55 = minusplus(uminus(v51), v52);
   real2 v53 = minusplus(v51, v52);
   real2 v171 = ctimesminusplus(reverse(v162), ctbl[6], ctimes(v162, ctbl[7]));
   real2 v352 = reverse(minus(v171, v101));
   real2 v358 = plus(v101, v171);
   real2 v63 = ctimesminusplus(reverse(v53), ctbl[12], ctimes(v53, ctbl[13]));
   real2 v146 = minusplus(v144, v145);
   real2 v148 = minusplus(uminus(v144), v145);
   real2 v154 = ctimesminusplus(reverse(v146), ctbl[2], ctimes(v146, ctbl[3]));
   real2 v342 = plus(v83, v154);
   real2 v336 = reverse(minus(v154, v83));
   real2 v373 = plus(v341, v342);
   real2 v369 = minus(v342, v341);
   real2 v353 = minus(v138, v63);
   real2 v357 = plus(v63, v138);
   real2 v374 = plus(v357, v358);
   store(out, 1 << shift, plus(v373, v374));
   store(out, 17 << shift, minus(v373, v374));
   real2 v368 = reverse(minus(v358, v357));
   store(out, 25 << shift, minus(uminusplus(v368), v369));
   store(out, 9 << shift, minus(uplusminus(v368), v369));
   real2 v346 = minus(uplusminus(v336), v337);
   real2 v350 = minus(uminusplus(v336), v337);
   real2 v356 = minusplus(uminus(v352), v353);
   real2 v354 = minusplus(v352, v353);
   real2 v362 = ctimesminusplus(reverse(v354), ctbl[0], ctimes(v354, ctbl[1]));
   store(out, 21 << shift, minus(v346, v362));
   store(out, 5 << shift, plus(v346, v362));
   real2 v366 = ctimesminusplus(reverse(v356), ctbl[0], ctimes(v356, ctbl[0]));
   store(out, 13 << shift, plus(v350, v366));
   store(out, 29 << shift, minus(v350, v366));
   real2 v89 = ctimesminusplus(reverse(v75), ctbl[2], ctimes(v75, ctbl[3]));
   real2 v106 = ctimesminusplus(reverse(v95), ctbl[6], ctimes(v95, ctbl[12]));
   real2 v142 = ctimesminusplus(reverse(v130), ctbl[12], ctimes(v130, ctbl[6]));
   real2 v158 = ctimesminusplus(reverse(v148), ctbl[3], ctimes(v148, ctbl[2]));
   real2 v393 = reverse(minus(v158, v89));
   real2 v399 = plus(v89, v158);
   real2 v403 = minus(uplusminus(v393), v394);
   real2 v407 = minus(uminusplus(v393), v394);
   real2 v175 = ctimesminusplus(reverse(v164), ctbl[9], ctimes(v164, ctbl[8]));
   real2 v415 = plus(v106, v175);
   real2 v409 = reverse(minus(v175, v106));
   real2 v69 = ctimesminusplus(reverse(v55), ctbl[8], ctimes(v55, ctbl[9]));
   real2 v414 = plus(v69, v142);
   real2 v410 = minus(v142, v69);
   real2 v411 = minusplus(v409, v410);
   real2 v413 = minusplus(uminus(v409), v410);
   real2 v419 = ctimesminusplus(reverse(v411), ctbl[0], ctimes(v411, ctbl[1]));
   store(out, 23 << shift, minus(v403, v419));
   store(out, 7 << shift, plus(v403, v419));
   real2 v423 = ctimesminusplus(reverse(v413), ctbl[0], ctimes(v413, ctbl[0]));
   store(out, 15 << shift, plus(v407, v423));
   store(out, 31 << shift, minus(v407, v423));
   real2 v431 = plus(v414, v415);
   real2 v425 = reverse(minus(v415, v414));
   real2 v430 = plus(v398, v399);
   real2 v426 = minus(v399, v398);
   store(out, 27 << shift, minus(uminusplus(v425), v426));
   store(out, 11 << shift, minus(uplusminus(v425), v426));
   store(out, 19 << shift, minus(v430, v431));
   store(out, 3 << shift, plus(v430, v431));
  }
}

ALIGNED(8192) void but32f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v14 = load(in, 12 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v115 = reverse(minus(v14, v30));
   real2 v121 = plus(v14, v30);
   real2 v6 = load(in, 4 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v120 = plus(v6, v22);
   real2 v116 = minus(v22, v6);
   real2 v201 = plus(v120, v121);
   real2 v195 = reverse(minus(v120, v121));
   real2 v119 = minusplus(uminus(v115), v116);
   real2 v117 = minusplus(v115, v116);
   real2 v133 = ctimesminusplus(reverse(v119), tbl[20 + tbloffset], ctimes(v119, tbl[21 + tbloffset]));
   real2 v127 = ctimesminusplus(reverse(v117), tbl[18 + tbloffset], ctimes(v117, tbl[19 + tbloffset]));
   real2 v18 = load(in, 16 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v40 = plus(v2, v18);
   real2 v36 = minus(v18, v2);
   real2 v10 = load(in, 8 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v41 = plus(v10, v26);
   real2 v35 = reverse(minus(v10, v26));
   real2 v200 = plus(v40, v41);
   real2 v196 = minus(v41, v40);
   real2 v37 = minusplus(v35, v36);
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v53 = ctimesminusplus(reverse(v39), tbl[4 + tbloffset], ctimes(v39, tbl[5 + tbloffset]));
   real2 v276 = minus(v201, v200);
   real2 v280 = plus(v200, v201);
   real2 v47 = ctimesminusplus(reverse(v37), tbl[2 + tbloffset], ctimes(v37, tbl[3 + tbloffset]));
   real2 v199 = minusplus(uminus(v195), v196);
   real2 v197 = minusplus(v195, v196);
   real2 v486 = minus(v133, v53);
   real2 v490 = plus(v53, v133);
   real2 v213 = ctimesminusplus(reverse(v199), tbl[36 + tbloffset], ctimes(v199, tbl[37 + tbloffset]));
   real2 v207 = ctimesminusplus(reverse(v197), tbl[34 + tbloffset], ctimes(v197, tbl[35 + tbloffset]));
   real2 v28 = load(in, 26 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v81 = plus(v12, v28);
   real2 v75 = reverse(minus(v12, v28));
   real2 v20 = load(in, 18 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v80 = plus(v4, v20);
   real2 v76 = minus(v20, v4);
   real2 v236 = minus(v81, v80);
   real2 v240 = plus(v80, v81);
   real2 v77 = minusplus(v75, v76);
   real2 v79 = minusplus(uminus(v75), v76);
   real2 v93 = ctimesminusplus(reverse(v79), tbl[12 + tbloffset], ctimes(v79, tbl[13 + tbloffset]));
   real2 v32 = load(in, 30 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v155 = reverse(minus(v16, v32));
   real2 v161 = plus(v16, v32);
   real2 v24 = load(in, 22 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v160 = plus(v8, v24);
   real2 v156 = minus(v24, v8);
   real2 v235 = reverse(minus(v160, v161));
   real2 v241 = plus(v160, v161);
   real2 v157 = minusplus(v155, v156);
   real2 v159 = minusplus(uminus(v155), v156);
   real2 v173 = ctimesminusplus(reverse(v159), tbl[28 + tbloffset], ctimes(v159, tbl[29 + tbloffset]));
   real2 v485 = reverse(minus(v93, v173));
   real2 v491 = plus(v93, v173);
   real2 v489 = minusplus(uminus(v485), v486);
   real2 v487 = minusplus(v485, v486);
   real2 v239 = minusplus(uminus(v235), v236);
   real2 v237 = minusplus(v235, v236);
   real2 v253 = ctimesminusplus(reverse(v239), tbl[44 + tbloffset], ctimes(v239, tbl[45 + tbloffset]));
   real2 v497 = ctimesminusplus(reverse(v487), tbl[82 + tbloffset], ctimes(v487, tbl[83 + tbloffset]));
   real2 v530 = plus(v490, v491);
   real2 v526 = minus(v491, v490);
   real2 v503 = ctimesminusplus(reverse(v489), tbl[84 + tbloffset], ctimes(v489, tbl[85 + tbloffset]));
   real2 v247 = ctimesminusplus(reverse(v237), tbl[42 + tbloffset], ctimes(v237, tbl[43 + tbloffset]));
   real2 v356 = minus(v247, v207);
   real2 v360 = plus(v207, v247);
   real2 v386 = plus(v213, v253);
   real2 v382 = minus(v253, v213);
   real2 v17 = load(in, 15 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v175 = reverse(minus(v17, v33));
   real2 v181 = plus(v17, v33);
   real2 v25 = load(in, 23 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v176 = minus(v25, v9);
   real2 v180 = plus(v9, v25);
   real2 v177 = minusplus(v175, v176);
   real2 v179 = minusplus(uminus(v175), v176);
   real2 v193 = ctimesminusplus(reverse(v179), tbl[32 + tbloffset], ctimes(v179, tbl[33 + tbloffset]));
   real2 v261 = plus(v180, v181);
   real2 v255 = reverse(minus(v180, v181));
   real2 v29 = load(in, 27 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v101 = plus(v13, v29);
   real2 v95 = reverse(minus(v13, v29));
   real2 v21 = load(in, 19 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v100 = plus(v5, v21);
   real2 v96 = minus(v21, v5);
   real2 v99 = minusplus(uminus(v95), v96);
   real2 v97 = minusplus(v95, v96);
   real2 v260 = plus(v100, v101);
   real2 v256 = minus(v101, v100);
   real2 v259 = minusplus(uminus(v255), v256);
   real2 v257 = minusplus(v255, v256);
   real2 v273 = ctimesminusplus(reverse(v259), tbl[48 + tbloffset], ctimes(v259, tbl[49 + tbloffset]));
   real2 v267 = ctimesminusplus(reverse(v257), tbl[46 + tbloffset], ctimes(v257, tbl[47 + tbloffset]));
   real2 v3 = load(in, 1 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v60 = plus(v3, v19);
   real2 v56 = minus(v19, v3);
   real2 v27 = load(in, 25 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v55 = reverse(minus(v11, v27));
   real2 v61 = plus(v11, v27);
   real2 v220 = plus(v60, v61);
   real2 v216 = minus(v61, v60);
   real2 v7 = load(in, 5 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v136 = minus(v23, v7);
   real2 v140 = plus(v7, v23);
   real2 v15 = load(in, 13 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v135 = reverse(minus(v15, v31));
   real2 v141 = plus(v15, v31);
   real2 v215 = reverse(minus(v140, v141));
   real2 v221 = plus(v140, v141);
   real2 v219 = minusplus(uminus(v215), v216);
   real2 v217 = minusplus(v215, v216);
   real2 v227 = ctimesminusplus(reverse(v217), tbl[38 + tbloffset], ctimes(v217, tbl[39 + tbloffset]));
   real2 v355 = reverse(minus(v227, v267));
   real2 v361 = plus(v227, v267);
   store(out, 2 << outShift, plus(v360, v361));
   real2 v374 = minus(v360, v361);
   store(out, 18 << outShift, ctimesminusplus(v374, tbl[0 + tbloffset], ctimes(reverse(v374), tbl[1 + tbloffset])));
   real2 v357 = minusplus(v355, v356);
   store(out, 10 << outShift, ctimesminusplus(reverse(v357), tbl[62 + tbloffset], ctimes(v357, tbl[63 + tbloffset])));
   real2 v359 = minusplus(uminus(v355), v356);
   store(out, 26 << outShift, ctimesminusplus(reverse(v359), tbl[64 + tbloffset], ctimes(v359, tbl[65 + tbloffset])));
   real2 v233 = ctimesminusplus(reverse(v219), tbl[40 + tbloffset], ctimes(v219, tbl[41 + tbloffset]));
   real2 v381 = reverse(minus(v233, v273));
   real2 v387 = plus(v233, v273);
   store(out, 6 << outShift, plus(v386, v387));
   real2 v400 = minus(v386, v387);
   store(out, 22 << outShift, ctimesminusplus(v400, tbl[0 + tbloffset], ctimes(reverse(v400), tbl[1 + tbloffset])));
   real2 v383 = minusplus(v381, v382);
   real2 v385 = minusplus(uminus(v381), v382);
   store(out, 30 << outShift, ctimesminusplus(reverse(v385), tbl[68 + tbloffset], ctimes(v385, tbl[69 + tbloffset])));
   store(out, 14 << outShift, ctimesminusplus(reverse(v383), tbl[66 + tbloffset], ctimes(v383, tbl[67 + tbloffset])));
   real2 v137 = minusplus(v135, v136);
   real2 v139 = minusplus(uminus(v135), v136);
   real2 v153 = ctimesminusplus(reverse(v139), tbl[24 + tbloffset], ctimes(v139, tbl[25 + tbloffset]));
   real2 v113 = ctimesminusplus(reverse(v99), tbl[16 + tbloffset], ctimes(v99, tbl[17 + tbloffset]));
   real2 v511 = plus(v113, v193);
   real2 v505 = reverse(minus(v113, v193));
   real2 v57 = minusplus(v55, v56);
   real2 v59 = minusplus(uminus(v55), v56);
   real2 v73 = ctimesminusplus(reverse(v59), tbl[8 + tbloffset], ctimes(v59, tbl[9 + tbloffset]));
   real2 v510 = plus(v73, v153);
   real2 v506 = minus(v153, v73);
   real2 v531 = plus(v510, v511);
   real2 v525 = reverse(minus(v510, v511));
   store(out, 3 << outShift, plus(v530, v531));
   real2 v544 = minus(v530, v531);
   store(out, 19 << outShift, ctimesminusplus(v544, tbl[0 + tbloffset], ctimes(reverse(v544), tbl[1 + tbloffset])));
   real2 v527 = minusplus(v525, v526);
   store(out, 11 << outShift, ctimesminusplus(reverse(v527), tbl[90 + tbloffset], ctimes(v527, tbl[91 + tbloffset])));
   real2 v529 = minusplus(uminus(v525), v526);
   store(out, 27 << outShift, ctimesminusplus(reverse(v529), tbl[92 + tbloffset], ctimes(v529, tbl[93 + tbloffset])));
   real2 v509 = minusplus(uminus(v505), v506);
   real2 v507 = minusplus(v505, v506);
   real2 v523 = ctimesminusplus(reverse(v509), tbl[88 + tbloffset], ctimes(v509, tbl[89 + tbloffset]));
   store(out, 15 << outShift, plus(v503, v523));
   real2 v556 = minus(v503, v523);
   store(out, 31 << outShift, ctimesminusplus(v556, tbl[0 + tbloffset], ctimes(reverse(v556), tbl[1 + tbloffset])));
   real2 v517 = ctimesminusplus(reverse(v507), tbl[86 + tbloffset], ctimes(v507, tbl[87 + tbloffset]));
   store(out, 7 << outShift, plus(v497, v517));
   real2 v550 = minus(v497, v517);
   store(out, 23 << outShift, ctimesminusplus(v550, tbl[0 + tbloffset], ctimes(reverse(v550), tbl[1 + tbloffset])));
   real2 v275 = reverse(minus(v240, v241));
   real2 v281 = plus(v240, v241);
   real2 v320 = plus(v280, v281);
   real2 v316 = minus(v281, v280);
   real2 v301 = plus(v260, v261);
   real2 v295 = reverse(minus(v260, v261));
   real2 v300 = plus(v220, v221);
   real2 v296 = minus(v221, v220);
   real2 v315 = reverse(minus(v300, v301));
   real2 v321 = plus(v300, v301);
   store(out, 0 << outShift, plus(v320, v321));
   real2 v334 = minus(v320, v321);
   store(out, 16 << outShift, ctimesminusplus(v334, tbl[0 + tbloffset], ctimes(reverse(v334), tbl[1 + tbloffset])));
   real2 v319 = minusplus(uminus(v315), v316);
   real2 v317 = minusplus(v315, v316);
   store(out, 8 << outShift, ctimesminusplus(reverse(v317), tbl[58 + tbloffset], ctimes(v317, tbl[59 + tbloffset])));
   store(out, 24 << outShift, ctimesminusplus(reverse(v319), tbl[60 + tbloffset], ctimes(v319, tbl[61 + tbloffset])));
   real2 v299 = minusplus(uminus(v295), v296);
   real2 v297 = minusplus(v295, v296);
   real2 v279 = minusplus(uminus(v275), v276);
   real2 v277 = minusplus(v275, v276);
   real2 v287 = ctimesminusplus(reverse(v277), tbl[50 + tbloffset], ctimes(v277, tbl[51 + tbloffset]));
   real2 v307 = ctimesminusplus(reverse(v297), tbl[54 + tbloffset], ctimes(v297, tbl[55 + tbloffset]));
   store(out, 4 << outShift, plus(v287, v307));
   real2 v342 = minus(v287, v307);
   store(out, 20 << outShift, ctimesminusplus(v342, tbl[0 + tbloffset], ctimes(reverse(v342), tbl[1 + tbloffset])));
   real2 v313 = ctimesminusplus(reverse(v299), tbl[56 + tbloffset], ctimes(v299, tbl[57 + tbloffset]));
   real2 v293 = ctimesminusplus(reverse(v279), tbl[52 + tbloffset], ctimes(v279, tbl[53 + tbloffset]));
   store(out, 12 << outShift, plus(v293, v313));
   real2 v348 = minus(v293, v313);
   store(out, 28 << outShift, ctimesminusplus(v348, tbl[0 + tbloffset], ctimes(reverse(v348), tbl[1 + tbloffset])));
   real2 v87 = ctimesminusplus(reverse(v77), tbl[10 + tbloffset], ctimes(v77, tbl[11 + tbloffset]));
   real2 v147 = ctimesminusplus(reverse(v137), tbl[22 + tbloffset], ctimes(v137, tbl[23 + tbloffset]));
   real2 v187 = ctimesminusplus(reverse(v177), tbl[30 + tbloffset], ctimes(v177, tbl[31 + tbloffset]));
   real2 v167 = ctimesminusplus(reverse(v157), tbl[26 + tbloffset], ctimes(v157, tbl[27 + tbloffset]));
   real2 v413 = plus(v87, v167);
   real2 v407 = reverse(minus(v87, v167));
   real2 v67 = ctimesminusplus(reverse(v57), tbl[6 + tbloffset], ctimes(v57, tbl[7 + tbloffset]));
   real2 v107 = ctimesminusplus(reverse(v97), tbl[14 + tbloffset], ctimes(v97, tbl[15 + tbloffset]));
   real2 v427 = reverse(minus(v107, v187));
   real2 v433 = plus(v107, v187);
   real2 v432 = plus(v67, v147);
   real2 v428 = minus(v147, v67);
   real2 v453 = plus(v432, v433);
   real2 v447 = reverse(minus(v432, v433));
   real2 v408 = minus(v127, v47);
   real2 v412 = plus(v47, v127);
   real2 v452 = plus(v412, v413);
   real2 v448 = minus(v413, v412);
   store(out, 1 << outShift, plus(v452, v453));
   real2 v466 = minus(v452, v453);
   store(out, 17 << outShift, ctimesminusplus(v466, tbl[0 + tbloffset], ctimes(reverse(v466), tbl[1 + tbloffset])));
   real2 v451 = minusplus(uminus(v447), v448);
   store(out, 25 << outShift, ctimesminusplus(reverse(v451), tbl[80 + tbloffset], ctimes(v451, tbl[81 + tbloffset])));
   real2 v449 = minusplus(v447, v448);
   store(out, 9 << outShift, ctimesminusplus(reverse(v449), tbl[78 + tbloffset], ctimes(v449, tbl[79 + tbloffset])));
   real2 v429 = minusplus(v427, v428);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v445 = ctimesminusplus(reverse(v431), tbl[76 + tbloffset], ctimes(v431, tbl[77 + tbloffset]));
   real2 v409 = minusplus(v407, v408);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v425 = ctimesminusplus(reverse(v411), tbl[72 + tbloffset], ctimes(v411, tbl[73 + tbloffset]));
   store(out, 13 << outShift, plus(v425, v445));
   real2 v478 = minus(v425, v445);
   store(out, 29 << outShift, ctimesminusplus(v478, tbl[0 + tbloffset], ctimes(reverse(v478), tbl[1 + tbloffset])));
   real2 v439 = ctimesminusplus(reverse(v429), tbl[74 + tbloffset], ctimes(v429, tbl[75 + tbloffset]));
   real2 v419 = ctimesminusplus(reverse(v409), tbl[70 + tbloffset], ctimes(v409, tbl[71 + tbloffset]));
   store(out, 5 << outShift, plus(v419, v439));
   real2 v472 = minus(v419, v439);
   store(out, 21 << outShift, ctimesminusplus(v472, tbl[0 + tbloffset], ctimes(reverse(v472), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void but32b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

   real2 v14 = load(in, 12 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v115 = reverse(minus(v30, v14));
   real2 v121 = plus(v14, v30);
   real2 v6 = load(in, 4 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v120 = plus(v6, v22);
   real2 v116 = minus(v22, v6);
   real2 v201 = plus(v120, v121);
   real2 v195 = reverse(minus(v121, v120));
   real2 v119 = minusplus(uminus(v115), v116);
   real2 v117 = minusplus(v115, v116);
   real2 v133 = ctimesminusplus(reverse(v119), tbl[20 + tbloffset], ctimes(v119, tbl[21 + tbloffset]));
   real2 v127 = ctimesminusplus(reverse(v117), tbl[18 + tbloffset], ctimes(v117, tbl[19 + tbloffset]));
   real2 v18 = load(in, 16 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v40 = plus(v2, v18);
   real2 v36 = minus(v18, v2);
   real2 v10 = load(in, 8 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v41 = plus(v10, v26);
   real2 v35 = reverse(minus(v26, v10));
   real2 v200 = plus(v40, v41);
   real2 v196 = minus(v41, v40);
   real2 v37 = minusplus(v35, v36);
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v53 = ctimesminusplus(reverse(v39), tbl[4 + tbloffset], ctimes(v39, tbl[5 + tbloffset]));
   real2 v276 = minus(v201, v200);
   real2 v280 = plus(v200, v201);
   real2 v47 = ctimesminusplus(reverse(v37), tbl[2 + tbloffset], ctimes(v37, tbl[3 + tbloffset]));
   real2 v199 = minusplus(uminus(v195), v196);
   real2 v197 = minusplus(v195, v196);
   real2 v486 = minus(v133, v53);
   real2 v490 = plus(v53, v133);
   real2 v213 = ctimesminusplus(reverse(v199), tbl[36 + tbloffset], ctimes(v199, tbl[37 + tbloffset]));
   real2 v207 = ctimesminusplus(reverse(v197), tbl[34 + tbloffset], ctimes(v197, tbl[35 + tbloffset]));
   real2 v28 = load(in, 26 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v81 = plus(v12, v28);
   real2 v75 = reverse(minus(v28, v12));
   real2 v20 = load(in, 18 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v80 = plus(v4, v20);
   real2 v76 = minus(v20, v4);
   real2 v236 = minus(v81, v80);
   real2 v240 = plus(v80, v81);
   real2 v77 = minusplus(v75, v76);
   real2 v79 = minusplus(uminus(v75), v76);
   real2 v93 = ctimesminusplus(reverse(v79), tbl[12 + tbloffset], ctimes(v79, tbl[13 + tbloffset]));
   real2 v32 = load(in, 30 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v155 = reverse(minus(v32, v16));
   real2 v161 = plus(v16, v32);
   real2 v24 = load(in, 22 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v160 = plus(v8, v24);
   real2 v156 = minus(v24, v8);
   real2 v235 = reverse(minus(v161, v160));
   real2 v241 = plus(v160, v161);
   real2 v157 = minusplus(v155, v156);
   real2 v159 = minusplus(uminus(v155), v156);
   real2 v173 = ctimesminusplus(reverse(v159), tbl[28 + tbloffset], ctimes(v159, tbl[29 + tbloffset]));
   real2 v485 = reverse(minus(v173, v93));
   real2 v491 = plus(v93, v173);
   real2 v489 = minusplus(uminus(v485), v486);
   real2 v487 = minusplus(v485, v486);
   real2 v239 = minusplus(uminus(v235), v236);
   real2 v237 = minusplus(v235, v236);
   real2 v253 = ctimesminusplus(reverse(v239), tbl[44 + tbloffset], ctimes(v239, tbl[45 + tbloffset]));
   real2 v497 = ctimesminusplus(reverse(v487), tbl[82 + tbloffset], ctimes(v487, tbl[83 + tbloffset]));
   real2 v530 = plus(v490, v491);
   real2 v526 = minus(v491, v490);
   real2 v503 = ctimesminusplus(reverse(v489), tbl[84 + tbloffset], ctimes(v489, tbl[85 + tbloffset]));
   real2 v247 = ctimesminusplus(reverse(v237), tbl[42 + tbloffset], ctimes(v237, tbl[43 + tbloffset]));
   real2 v356 = minus(v247, v207);
   real2 v360 = plus(v207, v247);
   real2 v386 = plus(v213, v253);
   real2 v382 = minus(v253, v213);
   real2 v17 = load(in, 15 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v175 = reverse(minus(v33, v17));
   real2 v181 = plus(v17, v33);
   real2 v25 = load(in, 23 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v176 = minus(v25, v9);
   real2 v180 = plus(v9, v25);
   real2 v177 = minusplus(v175, v176);
   real2 v179 = minusplus(uminus(v175), v176);
   real2 v193 = ctimesminusplus(reverse(v179), tbl[32 + tbloffset], ctimes(v179, tbl[33 + tbloffset]));
   real2 v261 = plus(v180, v181);
   real2 v255 = reverse(minus(v181, v180));
   real2 v29 = load(in, 27 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v101 = plus(v13, v29);
   real2 v95 = reverse(minus(v29, v13));
   real2 v21 = load(in, 19 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v100 = plus(v5, v21);
   real2 v96 = minus(v21, v5);
   real2 v99 = minusplus(uminus(v95), v96);
   real2 v97 = minusplus(v95, v96);
   real2 v260 = plus(v100, v101);
   real2 v256 = minus(v101, v100);
   real2 v259 = minusplus(uminus(v255), v256);
   real2 v257 = minusplus(v255, v256);
   real2 v273 = ctimesminusplus(reverse(v259), tbl[48 + tbloffset], ctimes(v259, tbl[49 + tbloffset]));
   real2 v267 = ctimesminusplus(reverse(v257), tbl[46 + tbloffset], ctimes(v257, tbl[47 + tbloffset]));
   real2 v3 = load(in, 1 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v60 = plus(v3, v19);
   real2 v56 = minus(v19, v3);
   real2 v27 = load(in, 25 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v55 = reverse(minus(v27, v11));
   real2 v61 = plus(v11, v27);
   real2 v220 = plus(v60, v61);
   real2 v216 = minus(v61, v60);
   real2 v7 = load(in, 5 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v136 = minus(v23, v7);
   real2 v140 = plus(v7, v23);
   real2 v15 = load(in, 13 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v135 = reverse(minus(v31, v15));
   real2 v141 = plus(v15, v31);
   real2 v215 = reverse(minus(v141, v140));
   real2 v221 = plus(v140, v141);
   real2 v219 = minusplus(uminus(v215), v216);
   real2 v217 = minusplus(v215, v216);
   real2 v227 = ctimesminusplus(reverse(v217), tbl[38 + tbloffset], ctimes(v217, tbl[39 + tbloffset]));
   real2 v355 = reverse(minus(v267, v227));
   real2 v361 = plus(v227, v267);
   store(out, 2 << outShift, plus(v360, v361));
   real2 v374 = minus(v360, v361);
   store(out, 18 << outShift, ctimesminusplus(v374, tbl[0 + tbloffset], ctimes(reverse(v374), tbl[1 + tbloffset])));
   real2 v357 = minusplus(v355, v356);
   store(out, 10 << outShift, ctimesminusplus(reverse(v357), tbl[62 + tbloffset], ctimes(v357, tbl[63 + tbloffset])));
   real2 v359 = minusplus(uminus(v355), v356);
   store(out, 26 << outShift, ctimesminusplus(reverse(v359), tbl[64 + tbloffset], ctimes(v359, tbl[65 + tbloffset])));
   real2 v233 = ctimesminusplus(reverse(v219), tbl[40 + tbloffset], ctimes(v219, tbl[41 + tbloffset]));
   real2 v381 = reverse(minus(v273, v233));
   real2 v387 = plus(v233, v273);
   store(out, 6 << outShift, plus(v386, v387));
   real2 v400 = minus(v386, v387);
   store(out, 22 << outShift, ctimesminusplus(v400, tbl[0 + tbloffset], ctimes(reverse(v400), tbl[1 + tbloffset])));
   real2 v383 = minusplus(v381, v382);
   real2 v385 = minusplus(uminus(v381), v382);
   store(out, 30 << outShift, ctimesminusplus(reverse(v385), tbl[68 + tbloffset], ctimes(v385, tbl[69 + tbloffset])));
   store(out, 14 << outShift, ctimesminusplus(reverse(v383), tbl[66 + tbloffset], ctimes(v383, tbl[67 + tbloffset])));
   real2 v137 = minusplus(v135, v136);
   real2 v139 = minusplus(uminus(v135), v136);
   real2 v153 = ctimesminusplus(reverse(v139), tbl[24 + tbloffset], ctimes(v139, tbl[25 + tbloffset]));
   real2 v113 = ctimesminusplus(reverse(v99), tbl[16 + tbloffset], ctimes(v99, tbl[17 + tbloffset]));
   real2 v511 = plus(v113, v193);
   real2 v505 = reverse(minus(v193, v113));
   real2 v57 = minusplus(v55, v56);
   real2 v59 = minusplus(uminus(v55), v56);
   real2 v73 = ctimesminusplus(reverse(v59), tbl[8 + tbloffset], ctimes(v59, tbl[9 + tbloffset]));
   real2 v510 = plus(v73, v153);
   real2 v506 = minus(v153, v73);
   real2 v531 = plus(v510, v511);
   real2 v525 = reverse(minus(v511, v510));
   store(out, 3 << outShift, plus(v530, v531));
   real2 v544 = minus(v530, v531);
   store(out, 19 << outShift, ctimesminusplus(v544, tbl[0 + tbloffset], ctimes(reverse(v544), tbl[1 + tbloffset])));
   real2 v527 = minusplus(v525, v526);
   store(out, 11 << outShift, ctimesminusplus(reverse(v527), tbl[90 + tbloffset], ctimes(v527, tbl[91 + tbloffset])));
   real2 v529 = minusplus(uminus(v525), v526);
   store(out, 27 << outShift, ctimesminusplus(reverse(v529), tbl[92 + tbloffset], ctimes(v529, tbl[93 + tbloffset])));
   real2 v509 = minusplus(uminus(v505), v506);
   real2 v507 = minusplus(v505, v506);
   real2 v523 = ctimesminusplus(reverse(v509), tbl[88 + tbloffset], ctimes(v509, tbl[89 + tbloffset]));
   store(out, 15 << outShift, plus(v503, v523));
   real2 v556 = minus(v503, v523);
   store(out, 31 << outShift, ctimesminusplus(v556, tbl[0 + tbloffset], ctimes(reverse(v556), tbl[1 + tbloffset])));
   real2 v517 = ctimesminusplus(reverse(v507), tbl[86 + tbloffset], ctimes(v507, tbl[87 + tbloffset]));
   store(out, 7 << outShift, plus(v497, v517));
   real2 v550 = minus(v497, v517);
   store(out, 23 << outShift, ctimesminusplus(v550, tbl[0 + tbloffset], ctimes(reverse(v550), tbl[1 + tbloffset])));
   real2 v275 = reverse(minus(v241, v240));
   real2 v281 = plus(v240, v241);
   real2 v320 = plus(v280, v281);
   real2 v316 = minus(v281, v280);
   real2 v301 = plus(v260, v261);
   real2 v295 = reverse(minus(v261, v260));
   real2 v300 = plus(v220, v221);
   real2 v296 = minus(v221, v220);
   real2 v315 = reverse(minus(v301, v300));
   real2 v321 = plus(v300, v301);
   store(out, 0 << outShift, plus(v320, v321));
   real2 v334 = minus(v320, v321);
   store(out, 16 << outShift, ctimesminusplus(v334, tbl[0 + tbloffset], ctimes(reverse(v334), tbl[1 + tbloffset])));
   real2 v319 = minusplus(uminus(v315), v316);
   real2 v317 = minusplus(v315, v316);
   store(out, 8 << outShift, ctimesminusplus(reverse(v317), tbl[58 + tbloffset], ctimes(v317, tbl[59 + tbloffset])));
   store(out, 24 << outShift, ctimesminusplus(reverse(v319), tbl[60 + tbloffset], ctimes(v319, tbl[61 + tbloffset])));
   real2 v299 = minusplus(uminus(v295), v296);
   real2 v297 = minusplus(v295, v296);
   real2 v279 = minusplus(uminus(v275), v276);
   real2 v277 = minusplus(v275, v276);
   real2 v287 = ctimesminusplus(reverse(v277), tbl[50 + tbloffset], ctimes(v277, tbl[51 + tbloffset]));
   real2 v307 = ctimesminusplus(reverse(v297), tbl[54 + tbloffset], ctimes(v297, tbl[55 + tbloffset]));
   store(out, 4 << outShift, plus(v287, v307));
   real2 v342 = minus(v287, v307);
   store(out, 20 << outShift, ctimesminusplus(v342, tbl[0 + tbloffset], ctimes(reverse(v342), tbl[1 + tbloffset])));
   real2 v313 = ctimesminusplus(reverse(v299), tbl[56 + tbloffset], ctimes(v299, tbl[57 + tbloffset]));
   real2 v293 = ctimesminusplus(reverse(v279), tbl[52 + tbloffset], ctimes(v279, tbl[53 + tbloffset]));
   store(out, 12 << outShift, plus(v293, v313));
   real2 v348 = minus(v293, v313);
   store(out, 28 << outShift, ctimesminusplus(v348, tbl[0 + tbloffset], ctimes(reverse(v348), tbl[1 + tbloffset])));
   real2 v87 = ctimesminusplus(reverse(v77), tbl[10 + tbloffset], ctimes(v77, tbl[11 + tbloffset]));
   real2 v147 = ctimesminusplus(reverse(v137), tbl[22 + tbloffset], ctimes(v137, tbl[23 + tbloffset]));
   real2 v187 = ctimesminusplus(reverse(v177), tbl[30 + tbloffset], ctimes(v177, tbl[31 + tbloffset]));
   real2 v167 = ctimesminusplus(reverse(v157), tbl[26 + tbloffset], ctimes(v157, tbl[27 + tbloffset]));
   real2 v413 = plus(v87, v167);
   real2 v407 = reverse(minus(v167, v87));
   real2 v67 = ctimesminusplus(reverse(v57), tbl[6 + tbloffset], ctimes(v57, tbl[7 + tbloffset]));
   real2 v107 = ctimesminusplus(reverse(v97), tbl[14 + tbloffset], ctimes(v97, tbl[15 + tbloffset]));
   real2 v427 = reverse(minus(v187, v107));
   real2 v433 = plus(v107, v187);
   real2 v432 = plus(v67, v147);
   real2 v428 = minus(v147, v67);
   real2 v453 = plus(v432, v433);
   real2 v447 = reverse(minus(v433, v432));
   real2 v408 = minus(v127, v47);
   real2 v412 = plus(v47, v127);
   real2 v452 = plus(v412, v413);
   real2 v448 = minus(v413, v412);
   store(out, 1 << outShift, plus(v452, v453));
   real2 v466 = minus(v452, v453);
   store(out, 17 << outShift, ctimesminusplus(v466, tbl[0 + tbloffset], ctimes(reverse(v466), tbl[1 + tbloffset])));
   real2 v451 = minusplus(uminus(v447), v448);
   store(out, 25 << outShift, ctimesminusplus(reverse(v451), tbl[80 + tbloffset], ctimes(v451, tbl[81 + tbloffset])));
   real2 v449 = minusplus(v447, v448);
   store(out, 9 << outShift, ctimesminusplus(reverse(v449), tbl[78 + tbloffset], ctimes(v449, tbl[79 + tbloffset])));
   real2 v429 = minusplus(v427, v428);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v445 = ctimesminusplus(reverse(v431), tbl[76 + tbloffset], ctimes(v431, tbl[77 + tbloffset]));
   real2 v409 = minusplus(v407, v408);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v425 = ctimesminusplus(reverse(v411), tbl[72 + tbloffset], ctimes(v411, tbl[73 + tbloffset]));
   store(out, 13 << outShift, plus(v425, v445));
   real2 v478 = minus(v425, v445);
   store(out, 29 << outShift, ctimesminusplus(v478, tbl[0 + tbloffset], ctimes(reverse(v478), tbl[1 + tbloffset])));
   real2 v439 = ctimesminusplus(reverse(v429), tbl[74 + tbloffset], ctimes(v429, tbl[75 + tbloffset]));
   real2 v419 = ctimesminusplus(reverse(v409), tbl[70 + tbloffset], ctimes(v409, tbl[71 + tbloffset]));
   store(out, 5 << outShift, plus(v419, v439));
   real2 v472 = minus(v419, v439);
   store(out, 21 << outShift, ctimesminusplus(v472, tbl[0 + tbloffset], ctimes(reverse(v472), tbl[1 + tbloffset])));
  }
}

ALIGNED(8192) void tbut32f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v14 = load(in, 12 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v115 = reverse(minus(v14, v30));
   real2 v121 = plus(v14, v30);
   real2 v6 = load(in, 4 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v120 = plus(v6, v22);
   real2 v116 = minus(v22, v6);
   real2 v201 = plus(v120, v121);
   real2 v195 = reverse(minus(v120, v121));
   real2 v119 = minusplus(uminus(v115), v116);
   real2 v117 = minusplus(v115, v116);
   real2 v133 = timesminusplus(reverse(v119), load(tbl, 20 * VECWIDTH + tbloffset), times(v119, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v127 = timesminusplus(reverse(v117), load(tbl, 18 * VECWIDTH + tbloffset), times(v117, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v18 = load(in, 16 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v40 = plus(v2, v18);
   real2 v36 = minus(v18, v2);
   real2 v10 = load(in, 8 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v41 = plus(v10, v26);
   real2 v35 = reverse(minus(v10, v26));
   real2 v200 = plus(v40, v41);
   real2 v196 = minus(v41, v40);
   real2 v37 = minusplus(v35, v36);
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v53 = timesminusplus(reverse(v39), load(tbl, 4 * VECWIDTH + tbloffset), times(v39, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v276 = minus(v201, v200);
   real2 v280 = plus(v200, v201);
   real2 v47 = timesminusplus(reverse(v37), load(tbl, 2 * VECWIDTH + tbloffset), times(v37, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v199 = minusplus(uminus(v195), v196);
   real2 v197 = minusplus(v195, v196);
   real2 v486 = minus(v133, v53);
   real2 v490 = plus(v53, v133);
   real2 v213 = timesminusplus(reverse(v199), load(tbl, 36 * VECWIDTH + tbloffset), times(v199, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v207 = timesminusplus(reverse(v197), load(tbl, 34 * VECWIDTH + tbloffset), times(v197, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v28 = load(in, 26 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v81 = plus(v12, v28);
   real2 v75 = reverse(minus(v12, v28));
   real2 v20 = load(in, 18 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v80 = plus(v4, v20);
   real2 v76 = minus(v20, v4);
   real2 v236 = minus(v81, v80);
   real2 v240 = plus(v80, v81);
   real2 v77 = minusplus(v75, v76);
   real2 v79 = minusplus(uminus(v75), v76);
   real2 v93 = timesminusplus(reverse(v79), load(tbl, 12 * VECWIDTH + tbloffset), times(v79, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v32 = load(in, 30 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v155 = reverse(minus(v16, v32));
   real2 v161 = plus(v16, v32);
   real2 v24 = load(in, 22 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v160 = plus(v8, v24);
   real2 v156 = minus(v24, v8);
   real2 v235 = reverse(minus(v160, v161));
   real2 v241 = plus(v160, v161);
   real2 v157 = minusplus(v155, v156);
   real2 v159 = minusplus(uminus(v155), v156);
   real2 v173 = timesminusplus(reverse(v159), load(tbl, 28 * VECWIDTH + tbloffset), times(v159, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v485 = reverse(minus(v93, v173));
   real2 v491 = plus(v93, v173);
   real2 v489 = minusplus(uminus(v485), v486);
   real2 v487 = minusplus(v485, v486);
   real2 v239 = minusplus(uminus(v235), v236);
   real2 v237 = minusplus(v235, v236);
   real2 v253 = timesminusplus(reverse(v239), load(tbl, 44 * VECWIDTH + tbloffset), times(v239, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v497 = timesminusplus(reverse(v487), load(tbl, 82 * VECWIDTH + tbloffset), times(v487, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v530 = plus(v490, v491);
   real2 v526 = minus(v491, v490);
   real2 v503 = timesminusplus(reverse(v489), load(tbl, 84 * VECWIDTH + tbloffset), times(v489, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v247 = timesminusplus(reverse(v237), load(tbl, 42 * VECWIDTH + tbloffset), times(v237, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v356 = minus(v247, v207);
   real2 v360 = plus(v207, v247);
   real2 v386 = plus(v213, v253);
   real2 v382 = minus(v253, v213);
   real2 v17 = load(in, 15 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v175 = reverse(minus(v17, v33));
   real2 v181 = plus(v17, v33);
   real2 v25 = load(in, 23 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v176 = minus(v25, v9);
   real2 v180 = plus(v9, v25);
   real2 v177 = minusplus(v175, v176);
   real2 v179 = minusplus(uminus(v175), v176);
   real2 v193 = timesminusplus(reverse(v179), load(tbl, 32 * VECWIDTH + tbloffset), times(v179, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v261 = plus(v180, v181);
   real2 v255 = reverse(minus(v180, v181));
   real2 v29 = load(in, 27 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v101 = plus(v13, v29);
   real2 v95 = reverse(minus(v13, v29));
   real2 v21 = load(in, 19 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v100 = plus(v5, v21);
   real2 v96 = minus(v21, v5);
   real2 v99 = minusplus(uminus(v95), v96);
   real2 v97 = minusplus(v95, v96);
   real2 v260 = plus(v100, v101);
   real2 v256 = minus(v101, v100);
   real2 v259 = minusplus(uminus(v255), v256);
   real2 v257 = minusplus(v255, v256);
   real2 v273 = timesminusplus(reverse(v259), load(tbl, 48 * VECWIDTH + tbloffset), times(v259, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v267 = timesminusplus(reverse(v257), load(tbl, 46 * VECWIDTH + tbloffset), times(v257, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v3 = load(in, 1 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v60 = plus(v3, v19);
   real2 v56 = minus(v19, v3);
   real2 v27 = load(in, 25 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v55 = reverse(minus(v11, v27));
   real2 v61 = plus(v11, v27);
   real2 v220 = plus(v60, v61);
   real2 v216 = minus(v61, v60);
   real2 v7 = load(in, 5 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v136 = minus(v23, v7);
   real2 v140 = plus(v7, v23);
   real2 v15 = load(in, 13 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v135 = reverse(minus(v15, v31));
   real2 v141 = plus(v15, v31);
   real2 v215 = reverse(minus(v140, v141));
   real2 v221 = plus(v140, v141);
   real2 v219 = minusplus(uminus(v215), v216);
   real2 v217 = minusplus(v215, v216);
   real2 v227 = timesminusplus(reverse(v217), load(tbl, 38 * VECWIDTH + tbloffset), times(v217, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v355 = reverse(minus(v227, v267));
   real2 v361 = plus(v227, v267);
   scatter(out, 2, 32, plus(v360, v361));
   real2 v374 = minus(v360, v361);
   scatter(out, 18, 32, timesminusplus(v374, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v374), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v357 = minusplus(v355, v356);
   scatter(out, 10, 32, timesminusplus(reverse(v357), load(tbl, 62 * VECWIDTH + tbloffset), times(v357, load(tbl, 63 * VECWIDTH + tbloffset))));
   real2 v359 = minusplus(uminus(v355), v356);
   scatter(out, 26, 32, timesminusplus(reverse(v359), load(tbl, 64 * VECWIDTH + tbloffset), times(v359, load(tbl, 65 * VECWIDTH + tbloffset))));
   real2 v233 = timesminusplus(reverse(v219), load(tbl, 40 * VECWIDTH + tbloffset), times(v219, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v381 = reverse(minus(v233, v273));
   real2 v387 = plus(v233, v273);
   scatter(out, 6, 32, plus(v386, v387));
   real2 v400 = minus(v386, v387);
   scatter(out, 22, 32, timesminusplus(v400, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v400), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v383 = minusplus(v381, v382);
   real2 v385 = minusplus(uminus(v381), v382);
   scatter(out, 30, 32, timesminusplus(reverse(v385), load(tbl, 68 * VECWIDTH + tbloffset), times(v385, load(tbl, 69 * VECWIDTH + tbloffset))));
   scatter(out, 14, 32, timesminusplus(reverse(v383), load(tbl, 66 * VECWIDTH + tbloffset), times(v383, load(tbl, 67 * VECWIDTH + tbloffset))));
   real2 v137 = minusplus(v135, v136);
   real2 v139 = minusplus(uminus(v135), v136);
   real2 v153 = timesminusplus(reverse(v139), load(tbl, 24 * VECWIDTH + tbloffset), times(v139, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v113 = timesminusplus(reverse(v99), load(tbl, 16 * VECWIDTH + tbloffset), times(v99, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v511 = plus(v113, v193);
   real2 v505 = reverse(minus(v113, v193));
   real2 v57 = minusplus(v55, v56);
   real2 v59 = minusplus(uminus(v55), v56);
   real2 v73 = timesminusplus(reverse(v59), load(tbl, 8 * VECWIDTH + tbloffset), times(v59, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v510 = plus(v73, v153);
   real2 v506 = minus(v153, v73);
   real2 v531 = plus(v510, v511);
   real2 v525 = reverse(minus(v510, v511));
   scatter(out, 3, 32, plus(v530, v531));
   real2 v544 = minus(v530, v531);
   scatter(out, 19, 32, timesminusplus(v544, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v544), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v527 = minusplus(v525, v526);
   scatter(out, 11, 32, timesminusplus(reverse(v527), load(tbl, 90 * VECWIDTH + tbloffset), times(v527, load(tbl, 91 * VECWIDTH + tbloffset))));
   real2 v529 = minusplus(uminus(v525), v526);
   scatter(out, 27, 32, timesminusplus(reverse(v529), load(tbl, 92 * VECWIDTH + tbloffset), times(v529, load(tbl, 93 * VECWIDTH + tbloffset))));
   real2 v509 = minusplus(uminus(v505), v506);
   real2 v507 = minusplus(v505, v506);
   real2 v523 = timesminusplus(reverse(v509), load(tbl, 88 * VECWIDTH + tbloffset), times(v509, load(tbl, 89 * VECWIDTH + tbloffset)));
   scatter(out, 15, 32, plus(v503, v523));
   real2 v556 = minus(v503, v523);
   scatter(out, 31, 32, timesminusplus(v556, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v556), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v517 = timesminusplus(reverse(v507), load(tbl, 86 * VECWIDTH + tbloffset), times(v507, load(tbl, 87 * VECWIDTH + tbloffset)));
   scatter(out, 7, 32, plus(v497, v517));
   real2 v550 = minus(v497, v517);
   scatter(out, 23, 32, timesminusplus(v550, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v550), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v275 = reverse(minus(v240, v241));
   real2 v281 = plus(v240, v241);
   real2 v320 = plus(v280, v281);
   real2 v316 = minus(v281, v280);
   real2 v301 = plus(v260, v261);
   real2 v295 = reverse(minus(v260, v261));
   real2 v300 = plus(v220, v221);
   real2 v296 = minus(v221, v220);
   real2 v315 = reverse(minus(v300, v301));
   real2 v321 = plus(v300, v301);
   scatter(out, 0, 32, plus(v320, v321));
   real2 v334 = minus(v320, v321);
   scatter(out, 16, 32, timesminusplus(v334, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v334), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v319 = minusplus(uminus(v315), v316);
   real2 v317 = minusplus(v315, v316);
   scatter(out, 8, 32, timesminusplus(reverse(v317), load(tbl, 58 * VECWIDTH + tbloffset), times(v317, load(tbl, 59 * VECWIDTH + tbloffset))));
   scatter(out, 24, 32, timesminusplus(reverse(v319), load(tbl, 60 * VECWIDTH + tbloffset), times(v319, load(tbl, 61 * VECWIDTH + tbloffset))));
   real2 v299 = minusplus(uminus(v295), v296);
   real2 v297 = minusplus(v295, v296);
   real2 v279 = minusplus(uminus(v275), v276);
   real2 v277 = minusplus(v275, v276);
   real2 v287 = timesminusplus(reverse(v277), load(tbl, 50 * VECWIDTH + tbloffset), times(v277, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v307 = timesminusplus(reverse(v297), load(tbl, 54 * VECWIDTH + tbloffset), times(v297, load(tbl, 55 * VECWIDTH + tbloffset)));
   scatter(out, 4, 32, plus(v287, v307));
   real2 v342 = minus(v287, v307);
   scatter(out, 20, 32, timesminusplus(v342, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v342), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v313 = timesminusplus(reverse(v299), load(tbl, 56 * VECWIDTH + tbloffset), times(v299, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v293 = timesminusplus(reverse(v279), load(tbl, 52 * VECWIDTH + tbloffset), times(v279, load(tbl, 53 * VECWIDTH + tbloffset)));
   scatter(out, 12, 32, plus(v293, v313));
   real2 v348 = minus(v293, v313);
   scatter(out, 28, 32, timesminusplus(v348, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v348), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v87 = timesminusplus(reverse(v77), load(tbl, 10 * VECWIDTH + tbloffset), times(v77, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v147 = timesminusplus(reverse(v137), load(tbl, 22 * VECWIDTH + tbloffset), times(v137, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v187 = timesminusplus(reverse(v177), load(tbl, 30 * VECWIDTH + tbloffset), times(v177, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v167 = timesminusplus(reverse(v157), load(tbl, 26 * VECWIDTH + tbloffset), times(v157, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v413 = plus(v87, v167);
   real2 v407 = reverse(minus(v87, v167));
   real2 v67 = timesminusplus(reverse(v57), load(tbl, 6 * VECWIDTH + tbloffset), times(v57, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v107 = timesminusplus(reverse(v97), load(tbl, 14 * VECWIDTH + tbloffset), times(v97, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v427 = reverse(minus(v107, v187));
   real2 v433 = plus(v107, v187);
   real2 v432 = plus(v67, v147);
   real2 v428 = minus(v147, v67);
   real2 v453 = plus(v432, v433);
   real2 v447 = reverse(minus(v432, v433));
   real2 v408 = minus(v127, v47);
   real2 v412 = plus(v47, v127);
   real2 v452 = plus(v412, v413);
   real2 v448 = minus(v413, v412);
   scatter(out, 1, 32, plus(v452, v453));
   real2 v466 = minus(v452, v453);
   scatter(out, 17, 32, timesminusplus(v466, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v466), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v451 = minusplus(uminus(v447), v448);
   scatter(out, 25, 32, timesminusplus(reverse(v451), load(tbl, 80 * VECWIDTH + tbloffset), times(v451, load(tbl, 81 * VECWIDTH + tbloffset))));
   real2 v449 = minusplus(v447, v448);
   scatter(out, 9, 32, timesminusplus(reverse(v449), load(tbl, 78 * VECWIDTH + tbloffset), times(v449, load(tbl, 79 * VECWIDTH + tbloffset))));
   real2 v429 = minusplus(v427, v428);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v445 = timesminusplus(reverse(v431), load(tbl, 76 * VECWIDTH + tbloffset), times(v431, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v409 = minusplus(v407, v408);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v425 = timesminusplus(reverse(v411), load(tbl, 72 * VECWIDTH + tbloffset), times(v411, load(tbl, 73 * VECWIDTH + tbloffset)));
   scatter(out, 13, 32, plus(v425, v445));
   real2 v478 = minus(v425, v445);
   scatter(out, 29, 32, timesminusplus(v478, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v478), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v439 = timesminusplus(reverse(v429), load(tbl, 74 * VECWIDTH + tbloffset), times(v429, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v419 = timesminusplus(reverse(v409), load(tbl, 70 * VECWIDTH + tbloffset), times(v409, load(tbl, 71 * VECWIDTH + tbloffset)));
   scatter(out, 5, 32, plus(v419, v439));
   real2 v472 = minus(v419, v439);
   scatter(out, 21, 32, timesminusplus(v472, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v472), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut32b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

   real2 v14 = load(in, 12 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v115 = reverse(minus(v30, v14));
   real2 v121 = plus(v14, v30);
   real2 v6 = load(in, 4 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v120 = plus(v6, v22);
   real2 v116 = minus(v22, v6);
   real2 v201 = plus(v120, v121);
   real2 v195 = reverse(minus(v121, v120));
   real2 v119 = minusplus(uminus(v115), v116);
   real2 v117 = minusplus(v115, v116);
   real2 v133 = timesminusplus(reverse(v119), load(tbl, 20 * VECWIDTH + tbloffset), times(v119, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v127 = timesminusplus(reverse(v117), load(tbl, 18 * VECWIDTH + tbloffset), times(v117, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v18 = load(in, 16 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v40 = plus(v2, v18);
   real2 v36 = minus(v18, v2);
   real2 v10 = load(in, 8 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v41 = plus(v10, v26);
   real2 v35 = reverse(minus(v26, v10));
   real2 v200 = plus(v40, v41);
   real2 v196 = minus(v41, v40);
   real2 v37 = minusplus(v35, v36);
   real2 v39 = minusplus(uminus(v35), v36);
   real2 v53 = timesminusplus(reverse(v39), load(tbl, 4 * VECWIDTH + tbloffset), times(v39, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v276 = minus(v201, v200);
   real2 v280 = plus(v200, v201);
   real2 v47 = timesminusplus(reverse(v37), load(tbl, 2 * VECWIDTH + tbloffset), times(v37, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v199 = minusplus(uminus(v195), v196);
   real2 v197 = minusplus(v195, v196);
   real2 v486 = minus(v133, v53);
   real2 v490 = plus(v53, v133);
   real2 v213 = timesminusplus(reverse(v199), load(tbl, 36 * VECWIDTH + tbloffset), times(v199, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v207 = timesminusplus(reverse(v197), load(tbl, 34 * VECWIDTH + tbloffset), times(v197, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v28 = load(in, 26 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v81 = plus(v12, v28);
   real2 v75 = reverse(minus(v28, v12));
   real2 v20 = load(in, 18 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v80 = plus(v4, v20);
   real2 v76 = minus(v20, v4);
   real2 v236 = minus(v81, v80);
   real2 v240 = plus(v80, v81);
   real2 v77 = minusplus(v75, v76);
   real2 v79 = minusplus(uminus(v75), v76);
   real2 v93 = timesminusplus(reverse(v79), load(tbl, 12 * VECWIDTH + tbloffset), times(v79, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v32 = load(in, 30 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v155 = reverse(minus(v32, v16));
   real2 v161 = plus(v16, v32);
   real2 v24 = load(in, 22 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v160 = plus(v8, v24);
   real2 v156 = minus(v24, v8);
   real2 v235 = reverse(minus(v161, v160));
   real2 v241 = plus(v160, v161);
   real2 v157 = minusplus(v155, v156);
   real2 v159 = minusplus(uminus(v155), v156);
   real2 v173 = timesminusplus(reverse(v159), load(tbl, 28 * VECWIDTH + tbloffset), times(v159, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v485 = reverse(minus(v173, v93));
   real2 v491 = plus(v93, v173);
   real2 v489 = minusplus(uminus(v485), v486);
   real2 v487 = minusplus(v485, v486);
   real2 v239 = minusplus(uminus(v235), v236);
   real2 v237 = minusplus(v235, v236);
   real2 v253 = timesminusplus(reverse(v239), load(tbl, 44 * VECWIDTH + tbloffset), times(v239, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v497 = timesminusplus(reverse(v487), load(tbl, 82 * VECWIDTH + tbloffset), times(v487, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v530 = plus(v490, v491);
   real2 v526 = minus(v491, v490);
   real2 v503 = timesminusplus(reverse(v489), load(tbl, 84 * VECWIDTH + tbloffset), times(v489, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v247 = timesminusplus(reverse(v237), load(tbl, 42 * VECWIDTH + tbloffset), times(v237, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v356 = minus(v247, v207);
   real2 v360 = plus(v207, v247);
   real2 v386 = plus(v213, v253);
   real2 v382 = minus(v253, v213);
   real2 v17 = load(in, 15 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v175 = reverse(minus(v33, v17));
   real2 v181 = plus(v17, v33);
   real2 v25 = load(in, 23 << inShift);
   real2 v9 = load(in, 7 << inShift);
   real2 v176 = minus(v25, v9);
   real2 v180 = plus(v9, v25);
   real2 v177 = minusplus(v175, v176);
   real2 v179 = minusplus(uminus(v175), v176);
   real2 v193 = timesminusplus(reverse(v179), load(tbl, 32 * VECWIDTH + tbloffset), times(v179, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v261 = plus(v180, v181);
   real2 v255 = reverse(minus(v181, v180));
   real2 v29 = load(in, 27 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v101 = plus(v13, v29);
   real2 v95 = reverse(minus(v29, v13));
   real2 v21 = load(in, 19 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v100 = plus(v5, v21);
   real2 v96 = minus(v21, v5);
   real2 v99 = minusplus(uminus(v95), v96);
   real2 v97 = minusplus(v95, v96);
   real2 v260 = plus(v100, v101);
   real2 v256 = minus(v101, v100);
   real2 v259 = minusplus(uminus(v255), v256);
   real2 v257 = minusplus(v255, v256);
   real2 v273 = timesminusplus(reverse(v259), load(tbl, 48 * VECWIDTH + tbloffset), times(v259, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v267 = timesminusplus(reverse(v257), load(tbl, 46 * VECWIDTH + tbloffset), times(v257, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v3 = load(in, 1 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v60 = plus(v3, v19);
   real2 v56 = minus(v19, v3);
   real2 v27 = load(in, 25 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v55 = reverse(minus(v27, v11));
   real2 v61 = plus(v11, v27);
   real2 v220 = plus(v60, v61);
   real2 v216 = minus(v61, v60);
   real2 v7 = load(in, 5 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v136 = minus(v23, v7);
   real2 v140 = plus(v7, v23);
   real2 v15 = load(in, 13 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v135 = reverse(minus(v31, v15));
   real2 v141 = plus(v15, v31);
   real2 v215 = reverse(minus(v141, v140));
   real2 v221 = plus(v140, v141);
   real2 v219 = minusplus(uminus(v215), v216);
   real2 v217 = minusplus(v215, v216);
   real2 v227 = timesminusplus(reverse(v217), load(tbl, 38 * VECWIDTH + tbloffset), times(v217, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v355 = reverse(minus(v267, v227));
   real2 v361 = plus(v227, v267);
   scatter(out, 2, 32, plus(v360, v361));
   real2 v374 = minus(v360, v361);
   scatter(out, 18, 32, timesminusplus(v374, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v374), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v357 = minusplus(v355, v356);
   scatter(out, 10, 32, timesminusplus(reverse(v357), load(tbl, 62 * VECWIDTH + tbloffset), times(v357, load(tbl, 63 * VECWIDTH + tbloffset))));
   real2 v359 = minusplus(uminus(v355), v356);
   scatter(out, 26, 32, timesminusplus(reverse(v359), load(tbl, 64 * VECWIDTH + tbloffset), times(v359, load(tbl, 65 * VECWIDTH + tbloffset))));
   real2 v233 = timesminusplus(reverse(v219), load(tbl, 40 * VECWIDTH + tbloffset), times(v219, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v381 = reverse(minus(v273, v233));
   real2 v387 = plus(v233, v273);
   scatter(out, 6, 32, plus(v386, v387));
   real2 v400 = minus(v386, v387);
   scatter(out, 22, 32, timesminusplus(v400, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v400), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v383 = minusplus(v381, v382);
   real2 v385 = minusplus(uminus(v381), v382);
   scatter(out, 30, 32, timesminusplus(reverse(v385), load(tbl, 68 * VECWIDTH + tbloffset), times(v385, load(tbl, 69 * VECWIDTH + tbloffset))));
   scatter(out, 14, 32, timesminusplus(reverse(v383), load(tbl, 66 * VECWIDTH + tbloffset), times(v383, load(tbl, 67 * VECWIDTH + tbloffset))));
   real2 v137 = minusplus(v135, v136);
   real2 v139 = minusplus(uminus(v135), v136);
   real2 v153 = timesminusplus(reverse(v139), load(tbl, 24 * VECWIDTH + tbloffset), times(v139, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v113 = timesminusplus(reverse(v99), load(tbl, 16 * VECWIDTH + tbloffset), times(v99, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v511 = plus(v113, v193);
   real2 v505 = reverse(minus(v193, v113));
   real2 v57 = minusplus(v55, v56);
   real2 v59 = minusplus(uminus(v55), v56);
   real2 v73 = timesminusplus(reverse(v59), load(tbl, 8 * VECWIDTH + tbloffset), times(v59, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v510 = plus(v73, v153);
   real2 v506 = minus(v153, v73);
   real2 v531 = plus(v510, v511);
   real2 v525 = reverse(minus(v511, v510));
   scatter(out, 3, 32, plus(v530, v531));
   real2 v544 = minus(v530, v531);
   scatter(out, 19, 32, timesminusplus(v544, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v544), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v527 = minusplus(v525, v526);
   scatter(out, 11, 32, timesminusplus(reverse(v527), load(tbl, 90 * VECWIDTH + tbloffset), times(v527, load(tbl, 91 * VECWIDTH + tbloffset))));
   real2 v529 = minusplus(uminus(v525), v526);
   scatter(out, 27, 32, timesminusplus(reverse(v529), load(tbl, 92 * VECWIDTH + tbloffset), times(v529, load(tbl, 93 * VECWIDTH + tbloffset))));
   real2 v509 = minusplus(uminus(v505), v506);
   real2 v507 = minusplus(v505, v506);
   real2 v523 = timesminusplus(reverse(v509), load(tbl, 88 * VECWIDTH + tbloffset), times(v509, load(tbl, 89 * VECWIDTH + tbloffset)));
   scatter(out, 15, 32, plus(v503, v523));
   real2 v556 = minus(v503, v523);
   scatter(out, 31, 32, timesminusplus(v556, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v556), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v517 = timesminusplus(reverse(v507), load(tbl, 86 * VECWIDTH + tbloffset), times(v507, load(tbl, 87 * VECWIDTH + tbloffset)));
   scatter(out, 7, 32, plus(v497, v517));
   real2 v550 = minus(v497, v517);
   scatter(out, 23, 32, timesminusplus(v550, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v550), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v275 = reverse(minus(v241, v240));
   real2 v281 = plus(v240, v241);
   real2 v320 = plus(v280, v281);
   real2 v316 = minus(v281, v280);
   real2 v301 = plus(v260, v261);
   real2 v295 = reverse(minus(v261, v260));
   real2 v300 = plus(v220, v221);
   real2 v296 = minus(v221, v220);
   real2 v315 = reverse(minus(v301, v300));
   real2 v321 = plus(v300, v301);
   scatter(out, 0, 32, plus(v320, v321));
   real2 v334 = minus(v320, v321);
   scatter(out, 16, 32, timesminusplus(v334, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v334), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v319 = minusplus(uminus(v315), v316);
   real2 v317 = minusplus(v315, v316);
   scatter(out, 8, 32, timesminusplus(reverse(v317), load(tbl, 58 * VECWIDTH + tbloffset), times(v317, load(tbl, 59 * VECWIDTH + tbloffset))));
   scatter(out, 24, 32, timesminusplus(reverse(v319), load(tbl, 60 * VECWIDTH + tbloffset), times(v319, load(tbl, 61 * VECWIDTH + tbloffset))));
   real2 v299 = minusplus(uminus(v295), v296);
   real2 v297 = minusplus(v295, v296);
   real2 v279 = minusplus(uminus(v275), v276);
   real2 v277 = minusplus(v275, v276);
   real2 v287 = timesminusplus(reverse(v277), load(tbl, 50 * VECWIDTH + tbloffset), times(v277, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v307 = timesminusplus(reverse(v297), load(tbl, 54 * VECWIDTH + tbloffset), times(v297, load(tbl, 55 * VECWIDTH + tbloffset)));
   scatter(out, 4, 32, plus(v287, v307));
   real2 v342 = minus(v287, v307);
   scatter(out, 20, 32, timesminusplus(v342, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v342), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v313 = timesminusplus(reverse(v299), load(tbl, 56 * VECWIDTH + tbloffset), times(v299, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v293 = timesminusplus(reverse(v279), load(tbl, 52 * VECWIDTH + tbloffset), times(v279, load(tbl, 53 * VECWIDTH + tbloffset)));
   scatter(out, 12, 32, plus(v293, v313));
   real2 v348 = minus(v293, v313);
   scatter(out, 28, 32, timesminusplus(v348, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v348), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v87 = timesminusplus(reverse(v77), load(tbl, 10 * VECWIDTH + tbloffset), times(v77, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v147 = timesminusplus(reverse(v137), load(tbl, 22 * VECWIDTH + tbloffset), times(v137, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v187 = timesminusplus(reverse(v177), load(tbl, 30 * VECWIDTH + tbloffset), times(v177, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v167 = timesminusplus(reverse(v157), load(tbl, 26 * VECWIDTH + tbloffset), times(v157, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v413 = plus(v87, v167);
   real2 v407 = reverse(minus(v167, v87));
   real2 v67 = timesminusplus(reverse(v57), load(tbl, 6 * VECWIDTH + tbloffset), times(v57, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v107 = timesminusplus(reverse(v97), load(tbl, 14 * VECWIDTH + tbloffset), times(v97, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v427 = reverse(minus(v187, v107));
   real2 v433 = plus(v107, v187);
   real2 v432 = plus(v67, v147);
   real2 v428 = minus(v147, v67);
   real2 v453 = plus(v432, v433);
   real2 v447 = reverse(minus(v433, v432));
   real2 v408 = minus(v127, v47);
   real2 v412 = plus(v47, v127);
   real2 v452 = plus(v412, v413);
   real2 v448 = minus(v413, v412);
   scatter(out, 1, 32, plus(v452, v453));
   real2 v466 = minus(v452, v453);
   scatter(out, 17, 32, timesminusplus(v466, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v466), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v451 = minusplus(uminus(v447), v448);
   scatter(out, 25, 32, timesminusplus(reverse(v451), load(tbl, 80 * VECWIDTH + tbloffset), times(v451, load(tbl, 81 * VECWIDTH + tbloffset))));
   real2 v449 = minusplus(v447, v448);
   scatter(out, 9, 32, timesminusplus(reverse(v449), load(tbl, 78 * VECWIDTH + tbloffset), times(v449, load(tbl, 79 * VECWIDTH + tbloffset))));
   real2 v429 = minusplus(v427, v428);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v445 = timesminusplus(reverse(v431), load(tbl, 76 * VECWIDTH + tbloffset), times(v431, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v409 = minusplus(v407, v408);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v425 = timesminusplus(reverse(v411), load(tbl, 72 * VECWIDTH + tbloffset), times(v411, load(tbl, 73 * VECWIDTH + tbloffset)));
   scatter(out, 13, 32, plus(v425, v445));
   real2 v478 = minus(v425, v445);
   scatter(out, 29, 32, timesminusplus(v478, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v478), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v439 = timesminusplus(reverse(v429), load(tbl, 74 * VECWIDTH + tbloffset), times(v429, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v419 = timesminusplus(reverse(v409), load(tbl, 70 * VECWIDTH + tbloffset), times(v409, load(tbl, 71 * VECWIDTH + tbloffset)));
   scatter(out, 5, 32, plus(v419, v439));
   real2 v472 = minus(v419, v439);
   scatter(out, 21, 32, timesminusplus(v472, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v472), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}
#endif

#if MAXBUTWIDTH >= 6
ALIGNED(8192) void dft64f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

// Pres : 27834
   real2 v13 = load(in, 11 << shift);
   real2 v45 = load(in, 43 << shift);
   real2 v268 = plus(v13, v45);
   real2 v264 = minus(v45, v13);
   real2 v61 = load(in, 59 << shift);
   real2 v29 = load(in, 27 << shift);
   real2 v269 = plus(v29, v61);
   real2 v263 = reverse(minus(v29, v61));
   real2 v401 = reverse(minus(v268, v269));
   real2 v407 = plus(v268, v269);
   real2 v267 = minusplus(uminus(v263), v264);
   real2 v265 = minusplus(v263, v264);
   real2 v279 = ctimesminusplus(reverse(v267), ctbl[28], ctimes(v267, ctbl[14]));
   real2 v273 = ctimesminusplus(reverse(v265), ctbl[25], ctimes(v265, ctbl[19]));
   real2 v5 = load(in, 3 << shift);
   real2 v37 = load(in, 35 << shift);
   real2 v124 = minus(v37, v5);
   real2 v128 = plus(v5, v37);
   real2 v21 = load(in, 19 << shift);
   real2 v53 = load(in, 51 << shift);
   real2 v129 = plus(v21, v53);
   real2 v123 = reverse(minus(v21, v53));
   real2 v402 = minus(v129, v128);
   real2 v406 = plus(v128, v129);
   real2 v405 = minusplus(uminus(v401), v402);
   real2 v403 = minusplus(v401, v402);
   real2 v415 = ctimesminusplus(reverse(v405), ctbl[13], ctimes(v405, ctbl[12]));
   real2 v411 = ctimesminusplus(reverse(v403), ctbl[11], ctimes(v403, ctbl[9]));
   real2 v125 = minusplus(v123, v124);
   real2 v127 = minusplus(uminus(v123), v124);
   real2 v139 = ctimesminusplus(reverse(v127), ctbl[17], ctimes(v127, ctbl[27]));
   real2 v534 = plus(v406, v407);
   real2 v530 = minus(v407, v406);
   real2 v962 = minus(v279, v139);
   real2 v966 = plus(v139, v279);
   real2 v133 = ctimesminusplus(reverse(v125), ctbl[23], ctimes(v125, ctbl[21]));
   real2 v807 = plus(v133, v273);
   real2 v803 = minus(v273, v133);
   real2 v65 = load(in, 63 << shift);
   real2 v33 = load(in, 31 << shift);
   real2 v335 = reverse(minus(v33, v65));
   real2 v341 = plus(v33, v65);
   real2 v49 = load(in, 47 << shift);
   real2 v17 = load(in, 15 << shift);
   real2 v340 = plus(v17, v49);
   real2 v336 = minus(v49, v17);
   real2 v471 = plus(v340, v341);
   real2 v465 = reverse(minus(v340, v341));
   real2 v339 = minusplus(uminus(v335), v336);
   real2 v337 = minusplus(v335, v336);
   real2 v351 = ctimesminusplus(reverse(v339), ctbl[22], ctimes(v339, ctbl[20]));
   real2 v345 = ctimesminusplus(reverse(v337), ctbl[29], ctimes(v337, ctbl[15]));
   real2 v9 = load(in, 7 << shift);
   real2 v41 = load(in, 39 << shift);
   real2 v199 = plus(v9, v41);
   real2 v195 = minus(v41, v9);
   real2 v57 = load(in, 55 << shift);
   real2 v25 = load(in, 23 << shift);
   real2 v200 = plus(v25, v57);
   real2 v194 = reverse(minus(v25, v57));
   real2 v466 = minus(v200, v199);
   real2 v470 = plus(v199, v200);
   real2 v535 = plus(v470, v471);
   real2 v529 = reverse(minus(v470, v471));
   real2 v469 = minusplus(uminus(v465), v466);
   real2 v467 = minusplus(v465, v466);
   real2 v531 = minusplus(v529, v530);
   real2 v533 = minusplus(uminus(v529), v530);
   real2 v543 = ctimesminusplus(reverse(v533), ctbl[4], ctimes(v533, ctbl[2]));
   real2 v539 = ctimesminusplus(reverse(v531), ctbl[5], ctimes(v531, ctbl[3]));
   real2 v561 = reverse(minus(v534, v535));
   real2 v567 = plus(v534, v535);
   real2 v479 = ctimesminusplus(reverse(v469), ctbl[10], ctimes(v469, ctbl[8]));
   real2 v719 = plus(v415, v479);
   real2 v713 = reverse(minus(v415, v479));
   real2 v475 = ctimesminusplus(reverse(v467), ctbl[13], ctimes(v467, ctbl[7]));
   real2 v662 = plus(v411, v475);
   real2 v656 = reverse(minus(v411, v475));
   real2 v196 = minusplus(v194, v195);
   real2 v198 = minusplus(uminus(v194), v195);
   real2 v209 = ctimesminusplus(reverse(v198), ctbl[25], ctimes(v198, ctbl[24]));
   real2 v961 = reverse(minus(v209, v351));
   real2 v967 = plus(v209, v351);
   real2 v963 = minusplus(v961, v962);
   real2 v965 = minusplus(uminus(v961), v962);
   real2 v975 = ctimesminusplus(reverse(v965), ctbl[4], ctimes(v965, ctbl[2]));
   real2 v971 = ctimesminusplus(reverse(v963), ctbl[5], ctimes(v963, ctbl[3]));
   real2 v999 = plus(v966, v967);
   real2 v993 = reverse(minus(v966, v967));
   real2 v31 = load(in, 29 << shift);
   real2 v63 = load(in, 61 << shift);
   real2 v305 = plus(v31, v63);
   real2 v299 = reverse(minus(v31, v63));
   real2 v47 = load(in, 45 << shift);
   real2 v15 = load(in, 13 << shift);
   real2 v300 = minus(v47, v15);
   real2 v304 = plus(v15, v47);
   real2 v439 = plus(v304, v305);
   real2 v433 = reverse(minus(v304, v305));
   real2 v301 = minusplus(v299, v300);
   real2 v303 = minusplus(uminus(v299), v300);
   real2 v315 = ctimesminusplus(reverse(v303), ctbl[16], ctimes(v303, ctbl[26]));
   real2 v7 = load(in, 5 << shift);
   real2 v39 = load(in, 37 << shift);
   real2 v164 = plus(v7, v39);
   real2 v160 = minus(v39, v7);
   real2 v23 = load(in, 21 << shift);
   real2 v55 = load(in, 53 << shift);
   real2 v159 = reverse(minus(v23, v55));
   real2 v165 = plus(v23, v55);
   real2 v438 = plus(v164, v165);
   real2 v434 = minus(v165, v164);
   real2 v163 = minusplus(uminus(v159), v160);
   real2 v161 = minusplus(v159, v160);
   real2 v175 = ctimesminusplus(reverse(v163), ctbl[29], ctimes(v163, ctbl[15]));
   real2 v929 = reverse(minus(v175, v315));
   real2 v935 = plus(v175, v315);
   real2 v435 = minusplus(v433, v434);
   real2 v437 = minusplus(uminus(v433), v434);
   real2 v443 = ctimesminusplus(reverse(v435), ctbl[9], ctimes(v435, ctbl[11]));
   real2 v497 = reverse(minus(v438, v439));
   real2 v503 = plus(v438, v439);
   real2 v447 = ctimesminusplus(reverse(v437), ctbl[7], ctimes(v437, ctbl[6]));
   real2 v11 = load(in, 9 << shift);
   real2 v43 = load(in, 41 << shift);
   real2 v234 = plus(v11, v43);
   real2 v230 = minus(v43, v11);
   real2 v27 = load(in, 25 << shift);
   real2 v59 = load(in, 57 << shift);
   real2 v235 = plus(v27, v59);
   real2 v229 = reverse(minus(v27, v59));
   real2 v375 = plus(v234, v235);
   real2 v369 = reverse(minus(v234, v235));
   real2 v233 = minusplus(uminus(v229), v230);
   real2 v231 = minusplus(v229, v230);
   real2 v244 = ctimesminusplus(reverse(v233), ctbl[19], ctimes(v233, ctbl[18]));
   real2 v19 = load(in, 17 << shift);
   real2 v51 = load(in, 49 << shift);
   real2 v89 = plus(v19, v51);
   real2 v83 = reverse(minus(v19, v51));
   real2 v3 = load(in, 1 << shift);
   real2 v35 = load(in, 33 << shift);
   real2 v88 = plus(v3, v35);
   real2 v84 = minus(v35, v3);
   real2 v370 = minus(v89, v88);
   real2 v374 = plus(v88, v89);
   real2 v371 = minusplus(v369, v370);
   real2 v373 = minusplus(uminus(v369), v370);
   real2 v383 = ctimesminusplus(reverse(v373), ctbl[11], ctimes(v373, ctbl[9]));
   real2 v714 = minus(v447, v383);
   real2 v718 = plus(v383, v447);
   real2 v502 = plus(v374, v375);
   real2 v498 = minus(v375, v374);
   real2 v379 = ctimesminusplus(reverse(v371), ctbl[7], ctimes(v371, ctbl[13]));
   real2 v657 = minus(v443, v379);
   real2 v661 = plus(v379, v443);
   real2 v715 = minusplus(v713, v714);
   real2 v717 = minusplus(uminus(v713), v714);
   real2 v566 = plus(v502, v503);
   real2 v562 = minus(v503, v502);
   real2 v499 = minusplus(v497, v498);
   real2 v501 = minusplus(uminus(v497), v498);
   real2 v511 = ctimesminusplus(reverse(v501), ctbl[5], ctimes(v501, ctbl[3]));
   real2 v621 = reverse(minus(v511, v543));
   real2 v627 = plus(v511, v543);
   real2 v583 = plus(v566, v567);
   real2 v577 = reverse(minus(v566, v567));
   real2 v727 = ctimesminusplus(reverse(v717), ctbl[1], ctimes(v717, ctbl[0]));
   real2 v723 = ctimesminusplus(reverse(v715), ctbl[1], ctimes(v715, ctbl[1]));
   real2 v507 = ctimesminusplus(reverse(v499), ctbl[3], ctimes(v499, ctbl[5]));
   real2 v735 = plus(v718, v719);
   real2 v729 = reverse(minus(v718, v719));
   real2 v565 = minusplus(uminus(v561), v562);
   real2 v563 = minusplus(v561, v562);
   real2 v571 = ctimesminusplus(reverse(v563), ctbl[1], ctimes(v563, ctbl[1]));
   real2 v602 = reverse(minus(v507, v539));
   real2 v608 = plus(v507, v539);
   real2 v660 = minusplus(uminus(v656), v657);
   real2 v658 = minusplus(v656, v657);
   real2 v670 = ctimesminusplus(reverse(v660), ctbl[1], ctimes(v660, ctbl[0]));
   real2 v666 = ctimesminusplus(reverse(v658), ctbl[1], ctimes(v658, ctbl[1]));
   real2 v678 = plus(v661, v662);
   real2 v672 = reverse(minus(v661, v662));
   real2 v575 = ctimesminusplus(reverse(v565), ctbl[1], ctimes(v565, ctbl[0]));
   real2 v28 = load(in, 26 << shift);
   real2 v60 = load(in, 58 << shift);
   real2 v252 = plus(v28, v60);
   real2 v246 = reverse(minus(v28, v60));
   real2 v44 = load(in, 42 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v251 = plus(v12, v44);
   real2 v247 = minus(v44, v12);
   real2 v391 = plus(v251, v252);
   real2 v385 = reverse(minus(v251, v252));
   real2 v20 = load(in, 18 << shift);
   real2 v52 = load(in, 50 << shift);
   real2 v109 = plus(v20, v52);
   real2 v103 = reverse(minus(v20, v52));
   real2 v36 = load(in, 34 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v108 = plus(v4, v36);
   real2 v104 = minus(v36, v4);
   real2 v386 = minus(v109, v108);
   real2 v390 = plus(v108, v109);
   real2 v514 = minus(v391, v390);
   real2 v518 = plus(v390, v391);
   real2 v389 = minusplus(uminus(v385), v386);
   real2 v387 = minusplus(v385, v386);
   real2 v399 = ctimesminusplus(reverse(v389), ctbl[5], ctimes(v389, ctbl[3]));
   real2 v8 = load(in, 6 << shift);
   real2 v40 = load(in, 38 << shift);
   real2 v178 = minus(v40, v8);
   real2 v182 = plus(v8, v40);
   real2 v24 = load(in, 22 << shift);
   real2 v56 = load(in, 54 << shift);
   real2 v183 = plus(v24, v56);
   real2 v177 = reverse(minus(v24, v56));
   real2 v450 = minus(v183, v182);
   real2 v454 = plus(v182, v183);
   real2 v16 = load(in, 14 << shift);
   real2 v48 = load(in, 46 << shift);
   real2 v322 = plus(v16, v48);
   real2 v318 = minus(v48, v16);
   real2 v32 = load(in, 30 << shift);
   real2 v64 = load(in, 62 << shift);
   real2 v323 = plus(v32, v64);
   real2 v317 = reverse(minus(v32, v64));
   real2 v449 = reverse(minus(v322, v323));
   real2 v455 = plus(v322, v323);
   real2 v519 = plus(v454, v455);
   real2 v513 = reverse(minus(v454, v455));
   real2 v545 = reverse(minus(v518, v519));
   real2 v551 = plus(v518, v519);
   real2 v515 = minusplus(v513, v514);
   real2 v517 = minusplus(uminus(v513), v514);
   real2 v527 = ctimesminusplus(reverse(v517), ctbl[1], ctimes(v517, ctbl[0]));
   real2 v523 = ctimesminusplus(reverse(v515), ctbl[1], ctimes(v515, ctbl[1]));
   real2 v14 = load(in, 12 << shift);
   real2 v46 = load(in, 44 << shift);
   real2 v286 = plus(v14, v46);
   real2 v282 = minus(v46, v14);
   real2 v62 = load(in, 60 << shift);
   real2 v30 = load(in, 28 << shift);
   real2 v281 = reverse(minus(v30, v62));
   real2 v287 = plus(v30, v62);
   real2 v423 = plus(v286, v287);
   real2 v417 = reverse(minus(v286, v287));
   real2 v22 = load(in, 20 << shift);
   real2 v54 = load(in, 52 << shift);
   real2 v147 = plus(v22, v54);
   real2 v141 = reverse(minus(v22, v54));
   real2 v38 = load(in, 36 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v146 = plus(v6, v38);
   real2 v142 = minus(v38, v6);
   real2 v422 = plus(v146, v147);
   real2 v418 = minus(v147, v146);
   real2 v487 = plus(v422, v423);
   real2 v481 = reverse(minus(v422, v423));
   real2 v42 = load(in, 40 << shift);
   real2 v10 = load(in, 8 << shift);
   real2 v212 = minus(v42, v10);
   real2 v216 = plus(v10, v42);
   real2 v58 = load(in, 56 << shift);
   real2 v26 = load(in, 24 << shift);
   real2 v217 = plus(v26, v58);
   real2 v211 = reverse(minus(v26, v58));
   real2 v353 = reverse(minus(v216, v217));
   real2 v359 = plus(v216, v217);
   real2 v18 = load(in, 16 << shift);
   real2 v50 = load(in, 48 << shift);
   real2 v73 = plus(v18, v50);
   real2 v67 = reverse(minus(v18, v50));
   real2 v2 = load(in, 0 << shift);
   real2 v34 = load(in, 32 << shift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v358 = plus(v72, v73);
   real2 v354 = minus(v73, v72);
   real2 v486 = plus(v358, v359);
   real2 v482 = minus(v359, v358);
   real2 v491 = minus(uplusminus(v481), v482);
   real2 v495 = minus(uminusplus(v481), v482);
   real2 v603 = minus(v523, v491);
   real2 v607 = plus(v491, v523);
   store(out, 4 << shift, plus(v607, v608));
   store(out, 36 << shift, minus(v607, v608));
   store(out, 52 << shift, minus(uminusplus(v602), v603));
   store(out, 20 << shift, minus(uplusminus(v602), v603));
   real2 v622 = minus(v527, v495);
   real2 v626 = plus(v495, v527);
   store(out, 60 << shift, minus(uminusplus(v621), v622));
   store(out, 28 << shift, minus(uplusminus(v621), v622));
   store(out, 12 << shift, plus(v626, v627));
   store(out, 44 << shift, minus(v626, v627));
   real2 v550 = plus(v486, v487);
   real2 v546 = minus(v487, v486);
   real2 v559 = minus(uminusplus(v545), v546);
   real2 v555 = minus(uplusminus(v545), v546);
   store(out, 8 << shift, plus(v555, v571));
   store(out, 40 << shift, minus(v555, v571));
   store(out, 24 << shift, plus(v559, v575));
   store(out, 56 << shift, minus(v559, v575));
   real2 v578 = minus(v551, v550);
   store(out, 48 << shift, minus(uminusplus(v577), v578));
   store(out, 16 << shift, minus(uplusminus(v577), v578));
   real2 v582 = plus(v550, v551);
   store(out, 0 << shift, plus(v582, v583));
   store(out, 32 << shift, minus(v582, v583));
   real2 v453 = minusplus(uminus(v449), v450);
   real2 v451 = minusplus(v449, v450);
   real2 v419 = minusplus(v417, v418);
   real2 v421 = minusplus(uminus(v417), v418);
   real2 v431 = ctimesminusplus(reverse(v421), ctbl[1], ctimes(v421, ctbl[0]));
   real2 v463 = ctimesminusplus(reverse(v453), ctbl[4], ctimes(v453, ctbl[2]));
   real2 v703 = plus(v399, v463);
   real2 v697 = reverse(minus(v399, v463));
   real2 v367 = minus(uminusplus(v353), v354);
   real2 v363 = minus(uplusminus(v353), v354);
   real2 v702 = plus(v367, v431);
   real2 v698 = minus(v431, v367);
   real2 v730 = minus(v703, v702);
   store(out, 54 << shift, minus(uminusplus(v729), v730));
   store(out, 22 << shift, minus(uplusminus(v729), v730));
   real2 v734 = plus(v702, v703);
   store(out, 6 << shift, plus(v734, v735));
   store(out, 38 << shift, minus(v734, v735));
   real2 v707 = minus(uplusminus(v697), v698);
   real2 v711 = minus(uminusplus(v697), v698);
   store(out, 30 << shift, plus(v711, v727));
   store(out, 62 << shift, minus(v711, v727));
   store(out, 14 << shift, plus(v707, v723));
   store(out, 46 << shift, minus(v707, v723));
   real2 v395 = ctimesminusplus(reverse(v387), ctbl[3], ctimes(v387, ctbl[5]));
   real2 v459 = ctimesminusplus(reverse(v451), ctbl[5], ctimes(v451, ctbl[3]));
   real2 v640 = reverse(minus(v395, v459));
   real2 v646 = plus(v395, v459);
   real2 v427 = ctimesminusplus(reverse(v419), ctbl[1], ctimes(v419, ctbl[1]));
   real2 v641 = minus(v427, v363);
   real2 v645 = plus(v363, v427);
   real2 v654 = minus(uminusplus(v640), v641);
   real2 v650 = minus(uplusminus(v640), v641);
   store(out, 10 << shift, plus(v650, v666));
   store(out, 42 << shift, minus(v650, v666));
   store(out, 58 << shift, minus(v654, v670));
   store(out, 26 << shift, plus(v654, v670));
   real2 v673 = minus(v646, v645);
   store(out, 50 << shift, minus(uminusplus(v672), v673));
   store(out, 18 << shift, minus(uplusminus(v672), v673));
   real2 v677 = plus(v645, v646);
   store(out, 2 << shift, plus(v677, v678));
   store(out, 34 << shift, minus(v677, v678));
   real2 v250 = minusplus(uminus(v246), v247);
   real2 v248 = minusplus(v246, v247);
   real2 v261 = ctimesminusplus(reverse(v250), ctbl[7], ctimes(v250, ctbl[6]));
   real2 v145 = minusplus(uminus(v141), v142);
   real2 v143 = minusplus(v141, v142);
   real2 v283 = minusplus(v281, v282);
   real2 v285 = minusplus(uminus(v281), v282);
   real2 v297 = ctimesminusplus(reverse(v285), ctbl[4], ctimes(v285, ctbl[2]));
   real2 v157 = ctimesminusplus(reverse(v145), ctbl[5], ctimes(v145, ctbl[3]));
   real2 v919 = plus(v157, v297);
   real2 v913 = reverse(minus(v157, v297));
   real2 v213 = minusplus(v211, v212);
   real2 v215 = minusplus(uminus(v211), v212);
   real2 v227 = ctimesminusplus(reverse(v215), ctbl[1], ctimes(v215, ctbl[0]));
   real2 v81 = minus(uminusplus(v67), v68);
   real2 v77 = minus(uplusminus(v67), v68);
   real2 v85 = minusplus(v83, v84);
   real2 v87 = minusplus(uminus(v83), v84);
   real2 v101 = ctimesminusplus(reverse(v87), ctbl[23], ctimes(v87, ctbl[21]));
   real2 v934 = plus(v101, v244);
   real2 v930 = minus(v244, v101);
   real2 v179 = minusplus(v177, v178);
   real2 v181 = minusplus(uminus(v177), v178);
   real2 v192 = ctimesminusplus(reverse(v181), ctbl[13], ctimes(v181, ctbl[12]));
   real2 v918 = plus(v81, v227);
   real2 v914 = minus(v227, v81);
   real2 v105 = minusplus(v103, v104);
   real2 v107 = minusplus(uminus(v103), v104);
   real2 v121 = ctimesminusplus(reverse(v107), ctbl[11], ctimes(v107, ctbl[9]));
   real2 v946 = minus(v261, v121);
   real2 v950 = plus(v121, v261);
   real2 v994 = minus(v935, v934);
   real2 v998 = plus(v934, v935);
   real2 v1009 = reverse(minus(v998, v999));
   real2 v1015 = plus(v998, v999);
   real2 v982 = plus(v918, v919);
   real2 v978 = minus(v919, v918);
   real2 v321 = minusplus(uminus(v317), v318);
   real2 v319 = minusplus(v317, v318);
   real2 v333 = ctimesminusplus(reverse(v321), ctbl[10], ctimes(v321, ctbl[8]));
   real2 v951 = plus(v192, v333);
   real2 v945 = reverse(minus(v192, v333));
   real2 v983 = plus(v950, v951);
   real2 v977 = reverse(minus(v950, v951));
   real2 v1014 = plus(v982, v983);
   real2 v1010 = minus(v983, v982);
   store(out, 3 << shift, plus(v1014, v1015));
   store(out, 35 << shift, minus(v1014, v1015));
   store(out, 51 << shift, minus(uminusplus(v1009), v1010));
   store(out, 19 << shift, minus(uplusminus(v1009), v1010));
   real2 v997 = minusplus(uminus(v993), v994);
   real2 v995 = minusplus(v993, v994);
   real2 v1003 = ctimesminusplus(reverse(v995), ctbl[1], ctimes(v995, ctbl[1]));
   real2 v987 = minus(uplusminus(v977), v978);
   store(out, 43 << shift, minus(v987, v1003));
   store(out, 11 << shift, plus(v987, v1003));
   real2 v991 = minus(uminusplus(v977), v978);
   real2 v1007 = ctimesminusplus(reverse(v997), ctbl[1], ctimes(v997, ctbl[0]));
   store(out, 27 << shift, plus(v991, v1007));
   store(out, 59 << shift, minus(v991, v1007));
   real2 v947 = minusplus(v945, v946);
   real2 v949 = minusplus(uminus(v945), v946);
   real2 v931 = minusplus(v929, v930);
   real2 v933 = minusplus(uminus(v929), v930);
   real2 v939 = ctimesminusplus(reverse(v931), ctbl[3], ctimes(v931, ctbl[5]));
   real2 v1034 = reverse(minus(v939, v971));
   real2 v1040 = plus(v939, v971);
   real2 v927 = minus(uminusplus(v913), v914);
   real2 v923 = minus(uplusminus(v913), v914);
   real2 v955 = ctimesminusplus(reverse(v947), ctbl[1], ctimes(v947, ctbl[1]));
   real2 v1035 = minus(v955, v923);
   real2 v1039 = plus(v923, v955);
   store(out, 39 << shift, minus(v1039, v1040));
   store(out, 7 << shift, plus(v1039, v1040));
   store(out, 23 << shift, minus(uplusminus(v1034), v1035));
   store(out, 55 << shift, minus(uminusplus(v1034), v1035));
   real2 v959 = ctimesminusplus(reverse(v949), ctbl[1], ctimes(v949, ctbl[0]));
   real2 v943 = ctimesminusplus(reverse(v933), ctbl[5], ctimes(v933, ctbl[3]));
   real2 v1053 = reverse(minus(v943, v975));
   real2 v1059 = plus(v943, v975);
   real2 v1058 = plus(v927, v959);
   real2 v1054 = minus(v959, v927);
   store(out, 63 << shift, minus(uminusplus(v1053), v1054));
   store(out, 31 << shift, minus(uplusminus(v1053), v1054));
   store(out, 47 << shift, minus(v1058, v1059));
   store(out, 15 << shift, plus(v1058, v1059));
   real2 v309 = ctimesminusplus(reverse(v301), ctbl[21], ctimes(v301, ctbl[23]));
   real2 v171 = ctimesminusplus(reverse(v161), ctbl[19], ctimes(v161, ctbl[25]));
   real2 v776 = plus(v171, v309);
   real2 v770 = reverse(minus(v171, v309));
   real2 v256 = ctimesminusplus(reverse(v248), ctbl[9], ctimes(v248, ctbl[11]));
   real2 v222 = ctimesminusplus(reverse(v213), ctbl[1], ctimes(v213, ctbl[1]));
   real2 v239 = ctimesminusplus(reverse(v231), ctbl[17], ctimes(v231, ctbl[27]));
   real2 v204 = ctimesminusplus(reverse(v196), ctbl[27], ctimes(v196, ctbl[17]));
   real2 v291 = ctimesminusplus(reverse(v283), ctbl[5], ctimes(v283, ctbl[3]));
   real2 v153 = ctimesminusplus(reverse(v143), ctbl[3], ctimes(v143, ctbl[5]));
   real2 v760 = plus(v153, v291);
   real2 v754 = reverse(minus(v153, v291));
   real2 v187 = ctimesminusplus(reverse(v179), ctbl[11], ctimes(v179, ctbl[9]));
   real2 v95 = ctimesminusplus(reverse(v85), ctbl[15], ctimes(v85, ctbl[29]));
   real2 v771 = minus(v239, v95);
   real2 v775 = plus(v95, v239);
   real2 v839 = plus(v775, v776);
   real2 v835 = minus(v776, v775);
   real2 v115 = ctimesminusplus(reverse(v105), ctbl[7], ctimes(v105, ctbl[13]));
   real2 v791 = plus(v115, v256);
   real2 v787 = minus(v256, v115);
   real2 v327 = ctimesminusplus(reverse(v319), ctbl[13], ctimes(v319, ctbl[7]));
   real2 v792 = plus(v187, v327);
   real2 v786 = reverse(minus(v187, v327));
   real2 v824 = plus(v791, v792);
   real2 v818 = reverse(minus(v791, v792));
   real2 v808 = plus(v204, v345);
   real2 v802 = reverse(minus(v204, v345));
   real2 v840 = plus(v807, v808);
   real2 v834 = reverse(minus(v807, v808));
   real2 v850 = reverse(minus(v839, v840));
   real2 v856 = plus(v839, v840);
   real2 v759 = plus(v77, v222);
   real2 v755 = minus(v222, v77);
   real2 v823 = plus(v759, v760);
   real2 v819 = minus(v760, v759);
   real2 v855 = plus(v823, v824);
   store(out, 33 << shift, minus(v855, v856));
   store(out, 1 << shift, plus(v855, v856));
   real2 v851 = minus(v824, v823);
   store(out, 49 << shift, minus(uminusplus(v850), v851));
   store(out, 17 << shift, minus(uplusminus(v850), v851));
   real2 v836 = minusplus(v834, v835);
   real2 v838 = minusplus(uminus(v834), v835);
   real2 v844 = ctimesminusplus(reverse(v836), ctbl[1], ctimes(v836, ctbl[1]));
   real2 v828 = minus(uplusminus(v818), v819);
   store(out, 41 << shift, minus(v828, v844));
   store(out, 9 << shift, plus(v828, v844));
   real2 v832 = minus(uminusplus(v818), v819);
   real2 v848 = ctimesminusplus(reverse(v838), ctbl[1], ctimes(v838, ctbl[0]));
   store(out, 25 << shift, plus(v832, v848));
   store(out, 57 << shift, minus(v832, v848));
   real2 v774 = minusplus(uminus(v770), v771);
   real2 v772 = minusplus(v770, v771);
   real2 v790 = minusplus(uminus(v786), v787);
   real2 v788 = minusplus(v786, v787);
   real2 v796 = ctimesminusplus(reverse(v788), ctbl[1], ctimes(v788, ctbl[1]));
   real2 v780 = ctimesminusplus(reverse(v772), ctbl[3], ctimes(v772, ctbl[5]));
   real2 v764 = minus(uplusminus(v754), v755);
   real2 v768 = minus(uminusplus(v754), v755);
   real2 v876 = minus(v796, v764);
   real2 v880 = plus(v764, v796);
   real2 v806 = minusplus(uminus(v802), v803);
   real2 v804 = minusplus(v802, v803);
   real2 v812 = ctimesminusplus(reverse(v804), ctbl[5], ctimes(v804, ctbl[3]));
   real2 v881 = plus(v780, v812);
   real2 v875 = reverse(minus(v780, v812));
   store(out, 21 << shift, minus(uplusminus(v875), v876));
   store(out, 53 << shift, minus(uminusplus(v875), v876));
   store(out, 5 << shift, plus(v880, v881));
   store(out, 37 << shift, minus(v880, v881));
   real2 v800 = ctimesminusplus(reverse(v790), ctbl[1], ctimes(v790, ctbl[0]));
   real2 v784 = ctimesminusplus(reverse(v774), ctbl[5], ctimes(v774, ctbl[3]));
   real2 v816 = ctimesminusplus(reverse(v806), ctbl[4], ctimes(v806, ctbl[2]));
   real2 v900 = plus(v784, v816);
   real2 v894 = reverse(minus(v784, v816));
   real2 v899 = plus(v768, v800);
   store(out, 45 << shift, minus(v899, v900));
   store(out, 13 << shift, plus(v899, v900));
   real2 v895 = minus(v800, v768);
   store(out, 61 << shift, minus(uminusplus(v894), v895));
   store(out, 29 << shift, minus(uplusminus(v894), v895));
// Pres : 15312
  }
}

ALIGNED(8192) void dft64b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

// Pres : 27598
   real2 v27 = load(in, 25 << shift);
   real2 v59 = load(in, 57 << shift);
   real2 v241 = plus(v27, v59);
   real2 v235 = reverse(minus(v59, v27));
   real2 v43 = load(in, 41 << shift);
   real2 v11 = load(in, 9 << shift);
   real2 v236 = minus(v43, v11);
   real2 v240 = plus(v11, v43);
   real2 v375 = plus(v240, v241);
   real2 v369 = reverse(minus(v241, v240));
   real2 v237 = minusplus(v235, v236);
   real2 v239 = minusplus(uminus(v235), v236);
   real2 v249 = ctimesminusplus(reverse(v239), ctbl[24], ctimes(v239, ctbl[18]));
   real2 v245 = ctimesminusplus(reverse(v237), ctbl[26], ctimes(v237, ctbl[27]));
   real2 v3 = load(in, 1 << shift);
   real2 v35 = load(in, 33 << shift);
   real2 v84 = minus(v35, v3);
   real2 v88 = plus(v3, v35);
   real2 v51 = load(in, 49 << shift);
   real2 v19 = load(in, 17 << shift);
   real2 v83 = reverse(minus(v51, v19));
   real2 v89 = plus(v19, v51);
   real2 v370 = minus(v89, v88);
   real2 v374 = plus(v88, v89);
   real2 v85 = minusplus(v83, v84);
   real2 v87 = minusplus(uminus(v83), v84);
   real2 v101 = ctimesminusplus(reverse(v87), ctbl[20], ctimes(v87, ctbl[21]));
   real2 v498 = minus(v375, v374);
   real2 v502 = plus(v374, v375);
   real2 v934 = plus(v101, v249);
   real2 v930 = minus(v249, v101);
   real2 v373 = minusplus(uminus(v369), v370);
   real2 v371 = minusplus(v369, v370);
   real2 v379 = ctimesminusplus(reverse(v371), ctbl[12], ctimes(v371, ctbl[13]));
   real2 v383 = ctimesminusplus(reverse(v373), ctbl[8], ctimes(v373, ctbl[9]));
   real2 v95 = ctimesminusplus(reverse(v85), ctbl[28], ctimes(v85, ctbl[29]));
   real2 v771 = minus(v245, v95);
   real2 v775 = plus(v95, v245);
   real2 v7 = load(in, 5 << shift);
   real2 v39 = load(in, 37 << shift);
   real2 v166 = plus(v7, v39);
   real2 v162 = minus(v39, v7);
   real2 v23 = load(in, 21 << shift);
   real2 v55 = load(in, 53 << shift);
   real2 v161 = reverse(minus(v55, v23));
   real2 v167 = plus(v23, v55);
   real2 v163 = minusplus(v161, v162);
   real2 v165 = minusplus(uminus(v161), v162);
   real2 v434 = minus(v167, v166);
   real2 v438 = plus(v166, v167);
   real2 v179 = ctimesminusplus(reverse(v165), ctbl[14], ctimes(v165, ctbl[15]));
   real2 v173 = ctimesminusplus(reverse(v163), ctbl[24], ctimes(v163, ctbl[25]));
   real2 v15 = load(in, 13 << shift);
   real2 v47 = load(in, 45 << shift);
   real2 v307 = plus(v15, v47);
   real2 v303 = minus(v47, v15);
   real2 v63 = load(in, 61 << shift);
   real2 v31 = load(in, 29 << shift);
   real2 v308 = plus(v31, v63);
   real2 v302 = reverse(minus(v63, v31));
   real2 v439 = plus(v307, v308);
   real2 v433 = reverse(minus(v308, v307));
   real2 v437 = minusplus(uminus(v433), v434);
   real2 v435 = minusplus(v433, v434);
   real2 v443 = ctimesminusplus(reverse(v435), ctbl[10], ctimes(v435, ctbl[11]));
   real2 v497 = reverse(minus(v439, v438));
   real2 v503 = plus(v438, v439);
   real2 v562 = minus(v503, v502);
   real2 v566 = plus(v502, v503);
   real2 v499 = minusplus(v497, v498);
   real2 v501 = minusplus(uminus(v497), v498);
   real2 v511 = ctimesminusplus(reverse(v501), ctbl[2], ctimes(v501, ctbl[3]));
   real2 v447 = ctimesminusplus(reverse(v437), ctbl[12], ctimes(v437, ctbl[6]));
   real2 v507 = ctimesminusplus(reverse(v499), ctbl[4], ctimes(v499, ctbl[5]));
   real2 v718 = plus(v383, v447);
   real2 v714 = minus(v447, v383);
   real2 v306 = minusplus(uminus(v302), v303);
   real2 v304 = minusplus(v302, v303);
   real2 v318 = ctimesminusplus(reverse(v306), ctbl[27], ctimes(v306, ctbl[26]));
   real2 v929 = reverse(minus(v318, v179));
   real2 v935 = plus(v179, v318);
   real2 v931 = minusplus(v929, v930);
   real2 v933 = minusplus(uminus(v929), v930);
   real2 v998 = plus(v934, v935);
   real2 v994 = minus(v935, v934);
   real2 v661 = plus(v379, v443);
   real2 v657 = minus(v443, v379);
   real2 v939 = ctimesminusplus(reverse(v931), ctbl[4], ctimes(v931, ctbl[5]));
   real2 v943 = ctimesminusplus(reverse(v933), ctbl[2], ctimes(v933, ctbl[3]));
   real2 v45 = load(in, 43 << shift);
   real2 v13 = load(in, 11 << shift);
   real2 v274 = plus(v13, v45);
   real2 v270 = minus(v45, v13);
   real2 v29 = load(in, 27 << shift);
   real2 v61 = load(in, 59 << shift);
   real2 v269 = reverse(minus(v61, v29));
   real2 v275 = plus(v29, v61);
   real2 v273 = minusplus(uminus(v269), v270);
   real2 v271 = minusplus(v269, v270);
   real2 v407 = plus(v274, v275);
   real2 v401 = reverse(minus(v275, v274));
   real2 v284 = ctimesminusplus(reverse(v273), ctbl[15], ctimes(v273, ctbl[14]));
   real2 v5 = load(in, 3 << shift);
   real2 v37 = load(in, 35 << shift);
   real2 v128 = plus(v5, v37);
   real2 v124 = minus(v37, v5);
   real2 v53 = load(in, 51 << shift);
   real2 v21 = load(in, 19 << shift);
   real2 v129 = plus(v21, v53);
   real2 v123 = reverse(minus(v53, v21));
   real2 v406 = plus(v128, v129);
   real2 v402 = minus(v129, v128);
   real2 v405 = minusplus(uminus(v401), v402);
   real2 v403 = minusplus(v401, v402);
   real2 v415 = ctimesminusplus(reverse(v405), ctbl[6], ctimes(v405, ctbl[12]));
   real2 v411 = ctimesminusplus(reverse(v403), ctbl[8], ctimes(v403, ctbl[9]));
   real2 v127 = minusplus(uminus(v123), v124);
   real2 v125 = minusplus(v123, v124);
   real2 v530 = minus(v407, v406);
   real2 v534 = plus(v406, v407);
   real2 v139 = ctimesminusplus(reverse(v127), ctbl[26], ctimes(v127, ctbl[27]));
   real2 v962 = minus(v284, v139);
   real2 v966 = plus(v139, v284);
   real2 v57 = load(in, 55 << shift);
   real2 v25 = load(in, 23 << shift);
   real2 v204 = plus(v25, v57);
   real2 v198 = reverse(minus(v57, v25));
   real2 v9 = load(in, 7 << shift);
   real2 v41 = load(in, 39 << shift);
   real2 v199 = minus(v41, v9);
   real2 v203 = plus(v9, v41);
   real2 v202 = minusplus(uminus(v198), v199);
   real2 v200 = minusplus(v198, v199);
   real2 v470 = plus(v203, v204);
   real2 v466 = minus(v204, v203);
   real2 v215 = ctimesminusplus(reverse(v202), ctbl[18], ctimes(v202, ctbl[24]));
   real2 v17 = load(in, 15 << shift);
   real2 v49 = load(in, 47 << shift);
   real2 v338 = minus(v49, v17);
   real2 v342 = plus(v17, v49);
   real2 v33 = load(in, 31 << shift);
   real2 v65 = load(in, 63 << shift);
   real2 v337 = reverse(minus(v65, v33));
   real2 v343 = plus(v33, v65);
   real2 v341 = minusplus(uminus(v337), v338);
   real2 v339 = minusplus(v337, v338);
   real2 v351 = ctimesminusplus(reverse(v341), ctbl[21], ctimes(v341, ctbl[20]));
   real2 v961 = reverse(minus(v351, v215));
   real2 v967 = plus(v215, v351);
   real2 v465 = reverse(minus(v343, v342));
   real2 v471 = plus(v342, v343);
   real2 v467 = minusplus(v465, v466);
   real2 v469 = minusplus(uminus(v465), v466);
   real2 v475 = ctimesminusplus(reverse(v467), ctbl[6], ctimes(v467, ctbl[7]));
   real2 v662 = plus(v411, v475);
   real2 v656 = reverse(minus(v475, v411));
   real2 v529 = reverse(minus(v471, v470));
   real2 v535 = plus(v470, v471);
   real2 v531 = minusplus(v529, v530);
   real2 v533 = minusplus(uminus(v529), v530);
   real2 v543 = ctimesminusplus(reverse(v533), ctbl[3], ctimes(v533, ctbl[2]));
   real2 v561 = reverse(minus(v535, v534));
   real2 v567 = plus(v534, v535);
   real2 v565 = minusplus(uminus(v561), v562);
   real2 v563 = minusplus(v561, v562);
   real2 v571 = ctimesminusplus(reverse(v563), ctbl[0], ctimes(v563, ctbl[1]));
   real2 v583 = plus(v566, v567);
   real2 v577 = reverse(minus(v567, v566));
   real2 v539 = ctimesminusplus(reverse(v531), ctbl[2], ctimes(v531, ctbl[3]));
   real2 v602 = reverse(minus(v539, v507));
   real2 v608 = plus(v507, v539);
   real2 v993 = reverse(minus(v967, v966));
   real2 v999 = plus(v966, v967);
   real2 v575 = ctimesminusplus(reverse(v565), ctbl[0], ctimes(v565, ctbl[0]));
   real2 v1009 = reverse(minus(v999, v998));
   real2 v1015 = plus(v998, v999);
   real2 v479 = ctimesminusplus(reverse(v469), ctbl[9], ctimes(v469, ctbl[8]));
   real2 v713 = reverse(minus(v479, v415));
   real2 v719 = plus(v415, v479);
   real2 v660 = minusplus(uminus(v656), v657);
   real2 v658 = minusplus(v656, v657);
   real2 v717 = minusplus(uminus(v713), v714);
   real2 v715 = minusplus(v713, v714);
   real2 v723 = ctimesminusplus(reverse(v715), ctbl[0], ctimes(v715, ctbl[1]));
   real2 v666 = ctimesminusplus(reverse(v658), ctbl[0], ctimes(v658, ctbl[1]));
   real2 v670 = ctimesminusplus(reverse(v660), ctbl[0], ctimes(v660, ctbl[0]));
   real2 v727 = ctimesminusplus(reverse(v717), ctbl[0], ctimes(v717, ctbl[0]));
   real2 v735 = plus(v718, v719);
   real2 v729 = reverse(minus(v719, v718));
   real2 v621 = reverse(minus(v543, v511));
   real2 v627 = plus(v511, v543);
   real2 v672 = reverse(minus(v662, v661));
   real2 v678 = plus(v661, v662);
   real2 v28 = load(in, 26 << shift);
   real2 v60 = load(in, 58 << shift);
   real2 v251 = reverse(minus(v60, v28));
   real2 v257 = plus(v28, v60);
   real2 v44 = load(in, 42 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v256 = plus(v12, v44);
   real2 v252 = minus(v44, v12);
   real2 v391 = plus(v256, v257);
   real2 v385 = reverse(minus(v257, v256));
   real2 v36 = load(in, 34 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v104 = minus(v36, v4);
   real2 v108 = plus(v4, v36);
   real2 v20 = load(in, 18 << shift);
   real2 v52 = load(in, 50 << shift);
   real2 v109 = plus(v20, v52);
   real2 v103 = reverse(minus(v52, v20));
   real2 v390 = plus(v108, v109);
   real2 v386 = minus(v109, v108);
   real2 v514 = minus(v391, v390);
   real2 v518 = plus(v390, v391);
   real2 v387 = minusplus(v385, v386);
   real2 v389 = minusplus(uminus(v385), v386);
   real2 v399 = ctimesminusplus(reverse(v389), ctbl[2], ctimes(v389, ctbl[3]));
   real2 v395 = ctimesminusplus(reverse(v387), ctbl[4], ctimes(v387, ctbl[5]));
   real2 v40 = load(in, 38 << shift);
   real2 v8 = load(in, 6 << shift);
   real2 v182 = minus(v40, v8);
   real2 v186 = plus(v8, v40);
   real2 v56 = load(in, 54 << shift);
   real2 v24 = load(in, 22 << shift);
   real2 v187 = plus(v24, v56);
   real2 v181 = reverse(minus(v56, v24));
   real2 v454 = plus(v186, v187);
   real2 v450 = minus(v187, v186);
   real2 v48 = load(in, 46 << shift);
   real2 v16 = load(in, 14 << shift);
   real2 v325 = plus(v16, v48);
   real2 v321 = minus(v48, v16);
   real2 v32 = load(in, 30 << shift);
   real2 v64 = load(in, 62 << shift);
   real2 v326 = plus(v32, v64);
   real2 v320 = reverse(minus(v64, v32));
   real2 v455 = plus(v325, v326);
   real2 v449 = reverse(minus(v326, v325));
   real2 v513 = reverse(minus(v455, v454));
   real2 v519 = plus(v454, v455);
   real2 v515 = minusplus(v513, v514);
   real2 v517 = minusplus(uminus(v513), v514);
   real2 v551 = plus(v518, v519);
   real2 v545 = reverse(minus(v519, v518));
   real2 v523 = ctimesminusplus(reverse(v515), ctbl[0], ctimes(v515, ctbl[1]));
   real2 v527 = ctimesminusplus(reverse(v517), ctbl[0], ctimes(v517, ctbl[0]));
   real2 v58 = load(in, 56 << shift);
   real2 v26 = load(in, 24 << shift);
   real2 v217 = reverse(minus(v58, v26));
   real2 v223 = plus(v26, v58);
   real2 v50 = load(in, 48 << shift);
   real2 v18 = load(in, 16 << shift);
   real2 v67 = reverse(minus(v50, v18));
   real2 v73 = plus(v18, v50);
   real2 v2 = load(in, 0 << shift);
   real2 v34 = load(in, 32 << shift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v354 = minus(v73, v72);
   real2 v358 = plus(v72, v73);
   real2 v10 = load(in, 8 << shift);
   real2 v42 = load(in, 40 << shift);
   real2 v222 = plus(v10, v42);
   real2 v218 = minus(v42, v10);
   real2 v359 = plus(v222, v223);
   real2 v353 = reverse(minus(v223, v222));
   real2 v482 = minus(v359, v358);
   real2 v486 = plus(v358, v359);
   real2 v46 = load(in, 44 << shift);
   real2 v14 = load(in, 12 << shift);
   real2 v287 = minus(v46, v14);
   real2 v291 = plus(v14, v46);
   real2 v54 = load(in, 52 << shift);
   real2 v22 = load(in, 20 << shift);
   real2 v147 = plus(v22, v54);
   real2 v141 = reverse(minus(v54, v22));
   real2 v38 = load(in, 36 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v142 = minus(v38, v6);
   real2 v146 = plus(v6, v38);
   real2 v418 = minus(v147, v146);
   real2 v422 = plus(v146, v147);
   real2 v62 = load(in, 60 << shift);
   real2 v30 = load(in, 28 << shift);
   real2 v286 = reverse(minus(v62, v30));
   real2 v292 = plus(v30, v62);
   real2 v423 = plus(v291, v292);
   real2 v417 = reverse(minus(v292, v291));
   real2 v481 = reverse(minus(v423, v422));
   real2 v487 = plus(v422, v423);
   real2 v550 = plus(v486, v487);
   real2 v546 = minus(v487, v486);
   real2 v578 = minus(v551, v550);
   store(out, 16 << shift, minus(uplusminus(v577), v578));
   store(out, 48 << shift, minus(uminusplus(v577), v578));
   real2 v582 = plus(v550, v551);
   store(out, 0 << shift, plus(v582, v583));
   store(out, 32 << shift, minus(v582, v583));
   real2 v559 = minus(uminusplus(v545), v546);
   real2 v555 = minus(uplusminus(v545), v546);
   store(out, 40 << shift, minus(v555, v571));
   store(out, 8 << shift, plus(v555, v571));
   store(out, 56 << shift, minus(v559, v575));
   store(out, 24 << shift, plus(v559, v575));
   real2 v495 = minus(uminusplus(v481), v482);
   real2 v491 = minus(uplusminus(v481), v482);
   real2 v626 = plus(v495, v527);
   store(out, 12 << shift, plus(v626, v627));
   store(out, 44 << shift, minus(v626, v627));
   real2 v622 = minus(v527, v495);
   store(out, 60 << shift, minus(uminusplus(v621), v622));
   store(out, 28 << shift, minus(uplusminus(v621), v622));
   real2 v607 = plus(v491, v523);
   real2 v603 = minus(v523, v491);
   store(out, 4 << shift, plus(v607, v608));
   store(out, 36 << shift, minus(v607, v608));
   store(out, 20 << shift, minus(uplusminus(v602), v603));
   store(out, 52 << shift, minus(uminusplus(v602), v603));
   real2 v367 = minus(uminusplus(v353), v354);
   real2 v363 = minus(uplusminus(v353), v354);
   real2 v421 = minusplus(uminus(v417), v418);
   real2 v419 = minusplus(v417, v418);
   real2 v431 = ctimesminusplus(reverse(v421), ctbl[0], ctimes(v421, ctbl[0]));
   real2 v451 = minusplus(v449, v450);
   real2 v453 = minusplus(uminus(v449), v450);
   real2 v463 = ctimesminusplus(reverse(v453), ctbl[3], ctimes(v453, ctbl[2]));
   real2 v697 = reverse(minus(v463, v399));
   real2 v703 = plus(v399, v463);
   real2 v698 = minus(v431, v367);
   real2 v702 = plus(v367, v431);
   real2 v711 = minus(uminusplus(v697), v698);
   store(out, 30 << shift, plus(v711, v727));
   store(out, 62 << shift, minus(v711, v727));
   real2 v707 = minus(uplusminus(v697), v698);
   store(out, 46 << shift, minus(v707, v723));
   store(out, 14 << shift, plus(v707, v723));
   real2 v734 = plus(v702, v703);
   store(out, 6 << shift, plus(v734, v735));
   store(out, 38 << shift, minus(v734, v735));
   real2 v730 = minus(v703, v702);
   store(out, 54 << shift, minus(uminusplus(v729), v730));
   store(out, 22 << shift, minus(uplusminus(v729), v730));
   real2 v459 = ctimesminusplus(reverse(v451), ctbl[2], ctimes(v451, ctbl[3]));
   real2 v640 = reverse(minus(v459, v395));
   real2 v646 = plus(v395, v459);
   real2 v427 = ctimesminusplus(reverse(v419), ctbl[0], ctimes(v419, ctbl[1]));
   real2 v641 = minus(v427, v363);
   real2 v645 = plus(v363, v427);
   real2 v654 = minus(uminusplus(v640), v641);
   real2 v650 = minus(uplusminus(v640), v641);
   store(out, 10 << shift, plus(v650, v666));
   store(out, 42 << shift, minus(v650, v666));
   store(out, 26 << shift, plus(v654, v670));
   store(out, 58 << shift, minus(v654, v670));
   real2 v673 = minus(v646, v645);
   store(out, 18 << shift, minus(uplusminus(v672), v673));
   store(out, 50 << shift, minus(uminusplus(v672), v673));
   real2 v677 = plus(v645, v646);
   store(out, 2 << shift, plus(v677, v678));
   store(out, 34 << shift, minus(v677, v678));
   real2 v105 = minusplus(v103, v104);
   real2 v107 = minusplus(uminus(v103), v104);
   real2 v253 = minusplus(v251, v252);
   real2 v255 = minusplus(uminus(v251), v252);
   real2 v267 = ctimesminusplus(reverse(v255), ctbl[12], ctimes(v255, ctbl[6]));
   real2 v121 = ctimesminusplus(reverse(v107), ctbl[8], ctimes(v107, ctbl[9]));
   real2 v950 = plus(v121, v267);
   real2 v946 = minus(v267, v121);
   real2 v290 = minusplus(uminus(v286), v287);
   real2 v288 = minusplus(v286, v287);
   real2 v143 = minusplus(v141, v142);
   real2 v145 = minusplus(uminus(v141), v142);
   real2 v159 = ctimesminusplus(reverse(v145), ctbl[2], ctimes(v145, ctbl[3]));
   real2 v300 = ctimesminusplus(reverse(v290), ctbl[3], ctimes(v290, ctbl[2]));
   real2 v919 = plus(v159, v300);
   real2 v913 = reverse(minus(v300, v159));
   real2 v219 = minusplus(v217, v218);
   real2 v221 = minusplus(uminus(v217), v218);
   real2 v185 = minusplus(uminus(v181), v182);
   real2 v183 = minusplus(v181, v182);
   real2 v196 = ctimesminusplus(reverse(v185), ctbl[6], ctimes(v185, ctbl[12]));
   real2 v233 = ctimesminusplus(reverse(v221), ctbl[0], ctimes(v221, ctbl[0]));
   real2 v324 = minusplus(uminus(v320), v321);
   real2 v322 = minusplus(v320, v321);
   real2 v335 = ctimesminusplus(reverse(v324), ctbl[9], ctimes(v324, ctbl[8]));
   real2 v945 = reverse(minus(v335, v196));
   real2 v951 = plus(v196, v335);
   real2 v977 = reverse(minus(v951, v950));
   real2 v983 = plus(v950, v951);
   real2 v77 = minus(uplusminus(v67), v68);
   real2 v81 = minus(uminusplus(v67), v68);
   real2 v914 = minus(v233, v81);
   real2 v918 = plus(v81, v233);
   real2 v982 = plus(v918, v919);
   real2 v978 = minus(v919, v918);
   real2 v1014 = plus(v982, v983);
   store(out, 3 << shift, plus(v1014, v1015));
   store(out, 35 << shift, minus(v1014, v1015));
   real2 v1010 = minus(v983, v982);
   store(out, 19 << shift, minus(uplusminus(v1009), v1010));
   store(out, 51 << shift, minus(uminusplus(v1009), v1010));
   real2 v995 = minusplus(v993, v994);
   real2 v997 = minusplus(uminus(v993), v994);
   real2 v1007 = ctimesminusplus(reverse(v997), ctbl[0], ctimes(v997, ctbl[0]));
   real2 v987 = minus(uplusminus(v977), v978);
   real2 v991 = minus(uminusplus(v977), v978);
   store(out, 27 << shift, plus(v991, v1007));
   store(out, 59 << shift, minus(v991, v1007));
   real2 v1003 = ctimesminusplus(reverse(v995), ctbl[0], ctimes(v995, ctbl[1]));
   store(out, 43 << shift, minus(v987, v1003));
   store(out, 11 << shift, plus(v987, v1003));
   real2 v965 = minusplus(uminus(v961), v962);
   real2 v963 = minusplus(v961, v962);
   real2 v975 = ctimesminusplus(reverse(v965), ctbl[3], ctimes(v965, ctbl[2]));
   real2 v1059 = plus(v943, v975);
   real2 v1053 = reverse(minus(v975, v943));
   real2 v947 = minusplus(v945, v946);
   real2 v949 = minusplus(uminus(v945), v946);
   real2 v959 = ctimesminusplus(reverse(v949), ctbl[0], ctimes(v949, ctbl[0]));
   real2 v927 = minus(uminusplus(v913), v914);
   real2 v923 = minus(uplusminus(v913), v914);
   real2 v1058 = plus(v927, v959);
   store(out, 15 << shift, plus(v1058, v1059));
   store(out, 47 << shift, minus(v1058, v1059));
   real2 v1054 = minus(v959, v927);
   store(out, 63 << shift, minus(uminusplus(v1053), v1054));
   store(out, 31 << shift, minus(uplusminus(v1053), v1054));
   real2 v955 = ctimesminusplus(reverse(v947), ctbl[0], ctimes(v947, ctbl[1]));
   real2 v971 = ctimesminusplus(reverse(v963), ctbl[2], ctimes(v963, ctbl[3]));
   real2 v1034 = reverse(minus(v971, v939));
   real2 v1040 = plus(v939, v971);
   real2 v1035 = minus(v955, v923);
   store(out, 55 << shift, minus(uminusplus(v1034), v1035));
   store(out, 23 << shift, minus(uplusminus(v1034), v1035));
   real2 v1039 = plus(v923, v955);
   store(out, 39 << shift, minus(v1039, v1040));
   store(out, 7 << shift, plus(v1039, v1040));
   real2 v263 = ctimesminusplus(reverse(v253), ctbl[10], ctimes(v253, ctbl[11]));
   real2 v191 = ctimesminusplus(reverse(v183), ctbl[8], ctimes(v183, ctbl[9]));
   real2 v115 = ctimesminusplus(reverse(v105), ctbl[12], ctimes(v105, ctbl[13]));
   real2 v787 = minus(v263, v115);
   real2 v791 = plus(v115, v263);
   real2 v331 = ctimesminusplus(reverse(v322), ctbl[6], ctimes(v322, ctbl[7]));
   real2 v786 = reverse(minus(v331, v191));
   real2 v792 = plus(v191, v331);
   real2 v280 = ctimesminusplus(reverse(v271), ctbl[18], ctimes(v271, ctbl[19]));
   real2 v133 = ctimesminusplus(reverse(v125), ctbl[20], ctimes(v125, ctbl[21]));
   real2 v807 = plus(v133, v280);
   real2 v803 = minus(v280, v133);
   real2 v210 = ctimesminusplus(reverse(v200), ctbl[16], ctimes(v200, ctbl[17]));
   real2 v153 = ctimesminusplus(reverse(v143), ctbl[4], ctimes(v143, ctbl[5]));
   real2 v347 = ctimesminusplus(reverse(v339), ctbl[14], ctimes(v339, ctbl[15]));
   real2 v808 = plus(v210, v347);
   real2 v802 = reverse(minus(v347, v210));
   real2 v314 = ctimesminusplus(reverse(v304), ctbl[22], ctimes(v304, ctbl[23]));
   real2 v770 = reverse(minus(v314, v173));
   real2 v776 = plus(v173, v314);
   real2 v839 = plus(v775, v776);
   real2 v835 = minus(v776, v775);
   real2 v818 = reverse(minus(v792, v791));
   real2 v824 = plus(v791, v792);
   real2 v840 = plus(v807, v808);
   real2 v834 = reverse(minus(v808, v807));
   real2 v856 = plus(v839, v840);
   real2 v850 = reverse(minus(v840, v839));
   real2 v229 = ctimesminusplus(reverse(v219), ctbl[0], ctimes(v219, ctbl[1]));
   real2 v296 = ctimesminusplus(reverse(v288), ctbl[2], ctimes(v288, ctbl[3]));
   real2 v760 = plus(v153, v296);
   real2 v754 = reverse(minus(v296, v153));
   real2 v759 = plus(v77, v229);
   real2 v755 = minus(v229, v77);
   real2 v823 = plus(v759, v760);
   real2 v819 = minus(v760, v759);
   real2 v855 = plus(v823, v824);
   store(out, 33 << shift, minus(v855, v856));
   store(out, 1 << shift, plus(v855, v856));
   real2 v851 = minus(v824, v823);
   store(out, 17 << shift, minus(uplusminus(v850), v851));
   store(out, 49 << shift, minus(uminusplus(v850), v851));
   real2 v838 = minusplus(uminus(v834), v835);
   real2 v836 = minusplus(v834, v835);
   real2 v844 = ctimesminusplus(reverse(v836), ctbl[0], ctimes(v836, ctbl[1]));
   real2 v832 = minus(uminusplus(v818), v819);
   real2 v828 = minus(uplusminus(v818), v819);
   store(out, 41 << shift, minus(v828, v844));
   store(out, 9 << shift, plus(v828, v844));
   real2 v848 = ctimesminusplus(reverse(v838), ctbl[0], ctimes(v838, ctbl[0]));
   store(out, 25 << shift, plus(v832, v848));
   store(out, 57 << shift, minus(v832, v848));
   real2 v790 = minusplus(uminus(v786), v787);
   real2 v788 = minusplus(v786, v787);
   real2 v772 = minusplus(v770, v771);
   real2 v774 = minusplus(uminus(v770), v771);
   real2 v780 = ctimesminusplus(reverse(v772), ctbl[4], ctimes(v772, ctbl[5]));
   real2 v806 = minusplus(uminus(v802), v803);
   real2 v804 = minusplus(v802, v803);
   real2 v812 = ctimesminusplus(reverse(v804), ctbl[2], ctimes(v804, ctbl[3]));
   real2 v875 = reverse(minus(v812, v780));
   real2 v881 = plus(v780, v812);
   real2 v796 = ctimesminusplus(reverse(v788), ctbl[0], ctimes(v788, ctbl[1]));
   real2 v764 = minus(uplusminus(v754), v755);
   real2 v768 = minus(uminusplus(v754), v755);
   real2 v880 = plus(v764, v796);
   real2 v876 = minus(v796, v764);
   store(out, 21 << shift, minus(uplusminus(v875), v876));
   store(out, 53 << shift, minus(uminusplus(v875), v876));
   store(out, 37 << shift, minus(v880, v881));
   store(out, 5 << shift, plus(v880, v881));
   real2 v800 = ctimesminusplus(reverse(v790), ctbl[0], ctimes(v790, ctbl[0]));
   real2 v784 = ctimesminusplus(reverse(v774), ctbl[2], ctimes(v774, ctbl[3]));
   real2 v816 = ctimesminusplus(reverse(v806), ctbl[3], ctimes(v806, ctbl[2]));
   real2 v900 = plus(v784, v816);
   real2 v894 = reverse(minus(v816, v784));
   real2 v895 = minus(v800, v768);
   real2 v899 = plus(v768, v800);
   store(out, 45 << shift, minus(v899, v900));
   store(out, 13 << shift, plus(v899, v900));
   store(out, 61 << shift, minus(uminusplus(v894), v895));
   store(out, 29 << shift, minus(uplusminus(v894), v895));
// Pres : 15320
  }
}

ALIGNED(8192) void but64f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

// Pres : 30254
   real2 v37 = load(in, 35 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v132 = plus(v5, v37);
   real2 v128 = minus(v37, v5);
   real2 v21 = load(in, 19 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v133 = plus(v21, v53);
   real2 v127 = reverse(minus(v21, v53));
   real2 v131 = minusplus(uminus(v127), v128);
   real2 v129 = minusplus(v127, v128);
   real2 v139 = ctimesminusplus(reverse(v129), tbl[14 + tbloffset], ctimes(v129, tbl[15 + tbloffset]));
   real2 v145 = ctimesminusplus(reverse(v131), tbl[16 + tbloffset], ctimes(v131, tbl[17 + tbloffset]));
   real2 v448 = minus(v133, v132);
   real2 v452 = plus(v132, v133);
   real2 v45 = load(in, 43 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v292 = plus(v13, v45);
   real2 v288 = minus(v45, v13);
   real2 v29 = load(in, 27 << inShift);
   real2 v61 = load(in, 59 << inShift);
   real2 v293 = plus(v29, v61);
   real2 v287 = reverse(minus(v29, v61));
   real2 v291 = minusplus(uminus(v287), v288);
   real2 v289 = minusplus(v287, v288);
   real2 v299 = ctimesminusplus(reverse(v289), tbl[46 + tbloffset], ctimes(v289, tbl[47 + tbloffset]));
   real2 v453 = plus(v292, v293);
   real2 v447 = reverse(minus(v292, v293));
   real2 v608 = minus(v453, v452);
   real2 v612 = plus(v452, v453);
   real2 v980 = plus(v139, v299);
   real2 v976 = minus(v299, v139);
   real2 v449 = minusplus(v447, v448);
   real2 v451 = minusplus(uminus(v447), v448);
   real2 v465 = ctimesminusplus(reverse(v451), tbl[80 + tbloffset], ctimes(v451, tbl[81 + tbloffset]));
   real2 v305 = ctimesminusplus(reverse(v291), tbl[48 + tbloffset], ctimes(v291, tbl[49 + tbloffset]));
   real2 v1186 = minus(v305, v145);
   real2 v1190 = plus(v145, v305);
   real2 v459 = ctimesminusplus(reverse(v449), tbl[78 + tbloffset], ctimes(v449, tbl[79 + tbloffset]));
   real2 v25 = load(in, 23 << inShift);
   real2 v57 = load(in, 55 << inShift);
   real2 v207 = reverse(minus(v25, v57));
   real2 v213 = plus(v25, v57);
   real2 v9 = load(in, 7 << inShift);
   real2 v41 = load(in, 39 << inShift);
   real2 v212 = plus(v9, v41);
   real2 v208 = minus(v41, v9);
   real2 v528 = minus(v213, v212);
   real2 v532 = plus(v212, v213);
   real2 v209 = minusplus(v207, v208);
   real2 v211 = minusplus(uminus(v207), v208);
   real2 v225 = ctimesminusplus(reverse(v211), tbl[32 + tbloffset], ctimes(v211, tbl[33 + tbloffset]));
   real2 v219 = ctimesminusplus(reverse(v209), tbl[30 + tbloffset], ctimes(v209, tbl[31 + tbloffset]));
   real2 v17 = load(in, 15 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v368 = minus(v49, v17);
   real2 v372 = plus(v17, v49);
   real2 v33 = load(in, 31 << inShift);
   real2 v65 = load(in, 63 << inShift);
   real2 v367 = reverse(minus(v33, v65));
   real2 v373 = plus(v33, v65);
   real2 v369 = minusplus(v367, v368);
   real2 v371 = minusplus(uminus(v367), v368);
   real2 v533 = plus(v372, v373);
   real2 v527 = reverse(minus(v372, v373));
   real2 v607 = reverse(minus(v532, v533));
   real2 v613 = plus(v532, v533);
   real2 v529 = minusplus(v527, v528);
   real2 v531 = minusplus(uminus(v527), v528);
   real2 v545 = ctimesminusplus(reverse(v531), tbl[96 + tbloffset], ctimes(v531, tbl[97 + tbloffset]));
   real2 v653 = plus(v612, v613);
   real2 v647 = reverse(minus(v612, v613));
   real2 v609 = minusplus(v607, v608);
   real2 v611 = minusplus(uminus(v607), v608);
   real2 v863 = plus(v465, v545);
   real2 v857 = reverse(minus(v465, v545));
   real2 v539 = ctimesminusplus(reverse(v529), tbl[94 + tbloffset], ctimes(v529, tbl[95 + tbloffset]));
   real2 v385 = ctimesminusplus(reverse(v371), tbl[64 + tbloffset], ctimes(v371, tbl[65 + tbloffset]));
   real2 v619 = ctimesminusplus(reverse(v609), tbl[110 + tbloffset], ctimes(v609, tbl[111 + tbloffset]));
   real2 v1191 = plus(v225, v385);
   real2 v1185 = reverse(minus(v225, v385));
   real2 v779 = reverse(minus(v459, v539));
   real2 v785 = plus(v459, v539);
   real2 v625 = ctimesminusplus(reverse(v611), tbl[112 + tbloffset], ctimes(v611, tbl[113 + tbloffset]));
   real2 v379 = ctimesminusplus(reverse(v369), tbl[62 + tbloffset], ctimes(v369, tbl[63 + tbloffset]));
   real2 v975 = reverse(minus(v219, v379));
   real2 v981 = plus(v219, v379);
   real2 v977 = minusplus(v975, v976);
   real2 v979 = minusplus(uminus(v975), v976);
   real2 v987 = ctimesminusplus(reverse(v977), tbl[170 + tbloffset], ctimes(v977, tbl[171 + tbloffset]));
   real2 v993 = ctimesminusplus(reverse(v979), tbl[172 + tbloffset], ctimes(v979, tbl[173 + tbloffset]));
   real2 v1015 = reverse(minus(v980, v981));
   real2 v1021 = plus(v980, v981);
   real2 v11 = load(in, 9 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v248 = minus(v43, v11);
   real2 v252 = plus(v11, v43);
   real2 v59 = load(in, 57 << inShift);
   real2 v27 = load(in, 25 << inShift);
   real2 v253 = plus(v27, v59);
   real2 v247 = reverse(minus(v27, v59));
   real2 v413 = plus(v252, v253);
   real2 v407 = reverse(minus(v252, v253));
   real2 v249 = minusplus(v247, v248);
   real2 v251 = minusplus(uminus(v247), v248);
   real2 v259 = ctimesminusplus(reverse(v249), tbl[38 + tbloffset], ctimes(v249, tbl[39 + tbloffset]));
   real2 v35 = load(in, 33 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v92 = plus(v3, v35);
   real2 v88 = minus(v35, v3);
   real2 v51 = load(in, 49 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v87 = reverse(minus(v19, v51));
   real2 v93 = plus(v19, v51);
   real2 v412 = plus(v92, v93);
   real2 v408 = minus(v93, v92);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v409 = minusplus(v407, v408);
   real2 v91 = minusplus(uminus(v87), v88);
   real2 v89 = minusplus(v87, v88);
   real2 v99 = ctimesminusplus(reverse(v89), tbl[6 + tbloffset], ctimes(v89, tbl[7 + tbloffset]));
   real2 v425 = ctimesminusplus(reverse(v411), tbl[72 + tbloffset], ctimes(v411, tbl[73 + tbloffset]));
   real2 v568 = minus(v413, v412);
   real2 v572 = plus(v412, v413);
   real2 v940 = plus(v99, v259);
   real2 v936 = minus(v259, v99);
   real2 v419 = ctimesminusplus(reverse(v409), tbl[70 + tbloffset], ctimes(v409, tbl[71 + tbloffset]));
   real2 v47 = load(in, 45 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v332 = plus(v15, v47);
   real2 v328 = minus(v47, v15);
   real2 v63 = load(in, 61 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v327 = reverse(minus(v31, v63));
   real2 v333 = plus(v31, v63);
   real2 v329 = minusplus(v327, v328);
   real2 v331 = minusplus(uminus(v327), v328);
   real2 v339 = ctimesminusplus(reverse(v329), tbl[54 + tbloffset], ctimes(v329, tbl[55 + tbloffset]));
   real2 v487 = reverse(minus(v332, v333));
   real2 v493 = plus(v332, v333);
   real2 v7 = load(in, 5 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v172 = plus(v7, v39);
   real2 v168 = minus(v39, v7);
   real2 v55 = load(in, 53 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v173 = plus(v23, v55);
   real2 v167 = reverse(minus(v23, v55));
   real2 v488 = minus(v173, v172);
   real2 v492 = plus(v172, v173);
   real2 v491 = minusplus(uminus(v487), v488);
   real2 v489 = minusplus(v487, v488);
   real2 v499 = ctimesminusplus(reverse(v489), tbl[86 + tbloffset], ctimes(v489, tbl[87 + tbloffset]));
   real2 v505 = ctimesminusplus(reverse(v491), tbl[88 + tbloffset], ctimes(v491, tbl[89 + tbloffset]));
   real2 v567 = reverse(minus(v492, v493));
   real2 v573 = plus(v492, v493);
   real2 v571 = minusplus(uminus(v567), v568);
   real2 v569 = minusplus(v567, v568);
   real2 v579 = ctimesminusplus(reverse(v569), tbl[102 + tbloffset], ctimes(v569, tbl[103 + tbloffset]));
   real2 v585 = ctimesminusplus(reverse(v571), tbl[104 + tbloffset], ctimes(v571, tbl[105 + tbloffset]));
   real2 v739 = plus(v585, v625);
   real2 v733 = reverse(minus(v585, v625));
   real2 v707 = reverse(minus(v579, v619));
   real2 v713 = plus(v579, v619);
   real2 v648 = minus(v573, v572);
   real2 v652 = plus(v572, v573);
   real2 v673 = plus(v652, v653);
   real2 v667 = reverse(minus(v652, v653));
   real2 v651 = minusplus(uminus(v647), v648);
   real2 v649 = minusplus(v647, v648);
   real2 v659 = ctimesminusplus(reverse(v649), tbl[118 + tbloffset], ctimes(v649, tbl[119 + tbloffset]));
   real2 v665 = ctimesminusplus(reverse(v651), tbl[120 + tbloffset], ctimes(v651, tbl[121 + tbloffset]));
   real2 v780 = minus(v499, v419);
   real2 v784 = plus(v419, v499);
   real2 v781 = minusplus(v779, v780);
   real2 v783 = minusplus(uminus(v779), v780);
   real2 v805 = plus(v784, v785);
   real2 v799 = reverse(minus(v784, v785));
   real2 v862 = plus(v425, v505);
   real2 v858 = minus(v505, v425);
   real2 v859 = minusplus(v857, v858);
   real2 v861 = minusplus(uminus(v857), v858);
   real2 v875 = ctimesminusplus(reverse(v861), tbl[152 + tbloffset], ctimes(v861, tbl[153 + tbloffset]));
   real2 v791 = ctimesminusplus(reverse(v781), tbl[138 + tbloffset], ctimes(v781, tbl[139 + tbloffset]));
   real2 v797 = ctimesminusplus(reverse(v783), tbl[140 + tbloffset], ctimes(v783, tbl[141 + tbloffset]));
   real2 v883 = plus(v862, v863);
   real2 v877 = reverse(minus(v862, v863));
   real2 v869 = ctimesminusplus(reverse(v859), tbl[150 + tbloffset], ctimes(v859, tbl[151 + tbloffset]));
   real2 v36 = load(in, 34 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v108 = minus(v36, v4);
   real2 v112 = plus(v4, v36);
   real2 v52 = load(in, 50 << inShift);
   real2 v20 = load(in, 18 << inShift);
   real2 v113 = plus(v20, v52);
   real2 v107 = reverse(minus(v20, v52));
   real2 v428 = minus(v113, v112);
   real2 v432 = plus(v112, v113);
   real2 v12 = load(in, 10 << inShift);
   real2 v44 = load(in, 42 << inShift);
   real2 v268 = minus(v44, v12);
   real2 v272 = plus(v12, v44);
   real2 v28 = load(in, 26 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v267 = reverse(minus(v28, v60));
   real2 v273 = plus(v28, v60);
   real2 v427 = reverse(minus(v272, v273));
   real2 v433 = plus(v272, v273);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v429 = minusplus(v427, v428);
   real2 v439 = ctimesminusplus(reverse(v429), tbl[74 + tbloffset], ctimes(v429, tbl[75 + tbloffset]));
   real2 v588 = minus(v433, v432);
   real2 v592 = plus(v432, v433);
   real2 v40 = load(in, 38 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v188 = minus(v40, v8);
   real2 v192 = plus(v8, v40);
   real2 v24 = load(in, 22 << inShift);
   real2 v56 = load(in, 54 << inShift);
   real2 v187 = reverse(minus(v24, v56));
   real2 v193 = plus(v24, v56);
   real2 v512 = plus(v192, v193);
   real2 v508 = minus(v193, v192);
   real2 v32 = load(in, 30 << inShift);
   real2 v64 = load(in, 62 << inShift);
   real2 v347 = reverse(minus(v32, v64));
   real2 v353 = plus(v32, v64);
   real2 v48 = load(in, 46 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v348 = minus(v48, v16);
   real2 v352 = plus(v16, v48);
   real2 v513 = plus(v352, v353);
   real2 v507 = reverse(minus(v352, v353));
   real2 v587 = reverse(minus(v512, v513));
   real2 v593 = plus(v512, v513);
   real2 v633 = plus(v592, v593);
   real2 v627 = reverse(minus(v592, v593));
   real2 v591 = minusplus(uminus(v587), v588);
   real2 v589 = minusplus(v587, v588);
   real2 v605 = ctimesminusplus(reverse(v591), tbl[108 + tbloffset], ctimes(v591, tbl[109 + tbloffset]));
   real2 v599 = ctimesminusplus(reverse(v589), tbl[106 + tbloffset], ctimes(v589, tbl[107 + tbloffset]));
   real2 v46 = load(in, 44 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v312 = plus(v14, v46);
   real2 v308 = minus(v46, v14);
   real2 v62 = load(in, 60 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v313 = plus(v30, v62);
   real2 v307 = reverse(minus(v30, v62));
   real2 v467 = reverse(minus(v312, v313));
   real2 v473 = plus(v312, v313);
   real2 v22 = load(in, 20 << inShift);
   real2 v54 = load(in, 52 << inShift);
   real2 v147 = reverse(minus(v22, v54));
   real2 v153 = plus(v22, v54);
   real2 v6 = load(in, 4 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v148 = minus(v38, v6);
   real2 v152 = plus(v6, v38);
   real2 v472 = plus(v152, v153);
   real2 v468 = minus(v153, v152);
   real2 v547 = reverse(minus(v472, v473));
   real2 v553 = plus(v472, v473);
   real2 v10 = load(in, 8 << inShift);
   real2 v42 = load(in, 40 << inShift);
   real2 v232 = plus(v10, v42);
   real2 v228 = minus(v42, v10);
   real2 v58 = load(in, 56 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v233 = plus(v26, v58);
   real2 v227 = reverse(minus(v26, v58));
   real2 v393 = plus(v232, v233);
   real2 v387 = reverse(minus(v232, v233));
   real2 v2 = load(in, 0 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v18 = load(in, 16 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v73 = plus(v18, v50);
   real2 v67 = reverse(minus(v18, v50));
   real2 v388 = minus(v73, v72);
   real2 v392 = plus(v72, v73);
   real2 v548 = minus(v393, v392);
   real2 v552 = plus(v392, v393);
   real2 v628 = minus(v553, v552);
   real2 v632 = plus(v552, v553);
   real2 v672 = plus(v632, v633);
   real2 v668 = minus(v633, v632);
   store(out, 0 << outShift, plus(v672, v673));
   real2 v686 = minus(v672, v673);
   store(out, 32 << outShift, ctimesminusplus(v686, tbl[0 + tbloffset], ctimes(reverse(v686), tbl[1 + tbloffset])));
   real2 v669 = minusplus(v667, v668);
   real2 v671 = minusplus(uminus(v667), v668);
   store(out, 48 << outShift, ctimesminusplus(reverse(v671), tbl[124 + tbloffset], ctimes(v671, tbl[125 + tbloffset])));
   store(out, 16 << outShift, ctimesminusplus(reverse(v669), tbl[122 + tbloffset], ctimes(v669, tbl[123 + tbloffset])));
   real2 v631 = minusplus(uminus(v627), v628);
   real2 v629 = minusplus(v627, v628);
   real2 v639 = ctimesminusplus(reverse(v629), tbl[114 + tbloffset], ctimes(v629, tbl[115 + tbloffset]));
   store(out, 8 << outShift, plus(v639, v659));
   real2 v694 = minus(v639, v659);
   store(out, 40 << outShift, ctimesminusplus(v694, tbl[0 + tbloffset], ctimes(reverse(v694), tbl[1 + tbloffset])));
   real2 v645 = ctimesminusplus(reverse(v631), tbl[116 + tbloffset], ctimes(v631, tbl[117 + tbloffset]));
   store(out, 24 << outShift, plus(v645, v665));
   real2 v700 = minus(v645, v665);
   store(out, 56 << outShift, ctimesminusplus(v700, tbl[0 + tbloffset], ctimes(reverse(v700), tbl[1 + tbloffset])));
   real2 v549 = minusplus(v547, v548);
   real2 v551 = minusplus(uminus(v547), v548);
   real2 v559 = ctimesminusplus(reverse(v549), tbl[98 + tbloffset], ctimes(v549, tbl[99 + tbloffset]));
   real2 v708 = minus(v599, v559);
   real2 v712 = plus(v559, v599);
   store(out, 4 << outShift, plus(v712, v713));
   real2 v726 = minus(v712, v713);
   store(out, 36 << outShift, ctimesminusplus(v726, tbl[0 + tbloffset], ctimes(reverse(v726), tbl[1 + tbloffset])));
   real2 v711 = minusplus(uminus(v707), v708);
   real2 v709 = minusplus(v707, v708);
   store(out, 20 << outShift, ctimesminusplus(reverse(v709), tbl[126 + tbloffset], ctimes(v709, tbl[127 + tbloffset])));
   store(out, 52 << outShift, ctimesminusplus(reverse(v711), tbl[128 + tbloffset], ctimes(v711, tbl[129 + tbloffset])));
   real2 v565 = ctimesminusplus(reverse(v551), tbl[100 + tbloffset], ctimes(v551, tbl[101 + tbloffset]));
   real2 v738 = plus(v565, v605);
   real2 v734 = minus(v605, v565);
   store(out, 12 << outShift, plus(v738, v739));
   real2 v752 = minus(v738, v739);
   store(out, 44 << outShift, ctimesminusplus(v752, tbl[0 + tbloffset], ctimes(reverse(v752), tbl[1 + tbloffset])));
   real2 v737 = minusplus(uminus(v733), v734);
   store(out, 60 << outShift, ctimesminusplus(reverse(v737), tbl[132 + tbloffset], ctimes(v737, tbl[133 + tbloffset])));
   real2 v735 = minusplus(v733, v734);
   store(out, 28 << outShift, ctimesminusplus(reverse(v735), tbl[130 + tbloffset], ctimes(v735, tbl[131 + tbloffset])));
   real2 v471 = minusplus(uminus(v467), v468);
   real2 v469 = minusplus(v467, v468);
   real2 v479 = ctimesminusplus(reverse(v469), tbl[82 + tbloffset], ctimes(v469, tbl[83 + tbloffset]));
   real2 v511 = minusplus(uminus(v507), v508);
   real2 v509 = minusplus(v507, v508);
   real2 v519 = ctimesminusplus(reverse(v509), tbl[90 + tbloffset], ctimes(v509, tbl[91 + tbloffset]));
   real2 v765 = plus(v439, v519);
   real2 v759 = reverse(minus(v439, v519));
   real2 v389 = minusplus(v387, v388);
   real2 v391 = minusplus(uminus(v387), v388);
   real2 v399 = ctimesminusplus(reverse(v389), tbl[66 + tbloffset], ctimes(v389, tbl[67 + tbloffset]));
   real2 v764 = plus(v399, v479);
   real2 v760 = minus(v479, v399);
   real2 v804 = plus(v764, v765);
   real2 v800 = minus(v765, v764);
   store(out, 2 << outShift, plus(v804, v805));
   real2 v818 = minus(v804, v805);
   store(out, 34 << outShift, ctimesminusplus(v818, tbl[0 + tbloffset], ctimes(reverse(v818), tbl[1 + tbloffset])));
   real2 v803 = minusplus(uminus(v799), v800);
   store(out, 50 << outShift, ctimesminusplus(reverse(v803), tbl[144 + tbloffset], ctimes(v803, tbl[145 + tbloffset])));
   real2 v801 = minusplus(v799, v800);
   store(out, 18 << outShift, ctimesminusplus(reverse(v801), tbl[142 + tbloffset], ctimes(v801, tbl[143 + tbloffset])));
   real2 v763 = minusplus(uminus(v759), v760);
   real2 v761 = minusplus(v759, v760);
   real2 v777 = ctimesminusplus(reverse(v763), tbl[136 + tbloffset], ctimes(v763, tbl[137 + tbloffset]));
   store(out, 26 << outShift, plus(v777, v797));
   real2 v830 = minus(v777, v797);
   store(out, 58 << outShift, ctimesminusplus(v830, tbl[0 + tbloffset], ctimes(reverse(v830), tbl[1 + tbloffset])));
   real2 v771 = ctimesminusplus(reverse(v761), tbl[134 + tbloffset], ctimes(v761, tbl[135 + tbloffset]));
   store(out, 10 << outShift, plus(v771, v791));
   real2 v824 = minus(v771, v791);
   store(out, 42 << outShift, ctimesminusplus(v824, tbl[0 + tbloffset], ctimes(reverse(v824), tbl[1 + tbloffset])));
   real2 v445 = ctimesminusplus(reverse(v431), tbl[76 + tbloffset], ctimes(v431, tbl[77 + tbloffset]));
   real2 v525 = ctimesminusplus(reverse(v511), tbl[92 + tbloffset], ctimes(v511, tbl[93 + tbloffset]));
   real2 v837 = reverse(minus(v445, v525));
   real2 v843 = plus(v445, v525);
   real2 v485 = ctimesminusplus(reverse(v471), tbl[84 + tbloffset], ctimes(v471, tbl[85 + tbloffset]));
   real2 v405 = ctimesminusplus(reverse(v391), tbl[68 + tbloffset], ctimes(v391, tbl[69 + tbloffset]));
   real2 v838 = minus(v485, v405);
   real2 v842 = plus(v405, v485);
   real2 v878 = minus(v843, v842);
   real2 v882 = plus(v842, v843);
   store(out, 6 << outShift, plus(v882, v883));
   real2 v896 = minus(v882, v883);
   store(out, 38 << outShift, ctimesminusplus(v896, tbl[0 + tbloffset], ctimes(reverse(v896), tbl[1 + tbloffset])));
   real2 v881 = minusplus(uminus(v877), v878);
   store(out, 54 << outShift, ctimesminusplus(reverse(v881), tbl[156 + tbloffset], ctimes(v881, tbl[157 + tbloffset])));
   real2 v879 = minusplus(v877, v878);
   store(out, 22 << outShift, ctimesminusplus(reverse(v879), tbl[154 + tbloffset], ctimes(v879, tbl[155 + tbloffset])));
   real2 v841 = minusplus(uminus(v837), v838);
   real2 v839 = minusplus(v837, v838);
   real2 v855 = ctimesminusplus(reverse(v841), tbl[148 + tbloffset], ctimes(v841, tbl[149 + tbloffset]));
   store(out, 30 << outShift, plus(v855, v875));
   real2 v908 = minus(v855, v875);
   store(out, 62 << outShift, ctimesminusplus(v908, tbl[0 + tbloffset], ctimes(reverse(v908), tbl[1 + tbloffset])));
   real2 v849 = ctimesminusplus(reverse(v839), tbl[146 + tbloffset], ctimes(v839, tbl[147 + tbloffset]));
   store(out, 14 << outShift, plus(v849, v869));
   real2 v902 = minus(v849, v869);
   store(out, 46 << outShift, ctimesminusplus(v902, tbl[0 + tbloffset], ctimes(reverse(v902), tbl[1 + tbloffset])));
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v149 = minusplus(v147, v148);
   real2 v311 = minusplus(uminus(v307), v308);
   real2 v309 = minusplus(v307, v308);
   real2 v109 = minusplus(v107, v108);
   real2 v111 = minusplus(uminus(v107), v108);
   real2 v119 = ctimesminusplus(reverse(v109), tbl[10 + tbloffset], ctimes(v109, tbl[11 + tbloffset]));
   real2 v269 = minusplus(v267, v268);
   real2 v271 = minusplus(uminus(v267), v268);
   real2 v279 = ctimesminusplus(reverse(v269), tbl[42 + tbloffset], ctimes(v269, tbl[43 + tbloffset]));
   real2 v960 = plus(v119, v279);
   real2 v956 = minus(v279, v119);
   real2 v169 = minusplus(v167, v168);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v159 = ctimesminusplus(reverse(v149), tbl[18 + tbloffset], ctimes(v149, tbl[19 + tbloffset]));
   real2 v319 = ctimesminusplus(reverse(v309), tbl[50 + tbloffset], ctimes(v309, tbl[51 + tbloffset]));
   real2 v921 = plus(v159, v319);
   real2 v915 = reverse(minus(v159, v319));
   real2 v351 = minusplus(uminus(v347), v348);
   real2 v349 = minusplus(v347, v348);
   real2 v359 = ctimesminusplus(reverse(v349), tbl[58 + tbloffset], ctimes(v349, tbl[59 + tbloffset]));
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v189 = minusplus(v187, v188);
   real2 v199 = ctimesminusplus(reverse(v189), tbl[26 + tbloffset], ctimes(v189, tbl[27 + tbloffset]));
   real2 v961 = plus(v199, v359);
   real2 v955 = reverse(minus(v199, v359));
   real2 v995 = reverse(minus(v960, v961));
   real2 v1001 = plus(v960, v961);
   real2 v179 = ctimesminusplus(reverse(v169), tbl[22 + tbloffset], ctimes(v169, tbl[23 + tbloffset]));
   real2 v941 = plus(v179, v339);
   real2 v935 = reverse(minus(v179, v339));
   real2 v1016 = minus(v941, v940);
   real2 v1020 = plus(v940, v941);
   real2 v71 = minusplus(uminus(v67), v68);
   real2 v69 = minusplus(v67, v68);
   real2 v79 = ctimesminusplus(reverse(v69), tbl[2 + tbloffset], ctimes(v69, tbl[3 + tbloffset]));
   real2 v1041 = plus(v1020, v1021);
   real2 v1035 = reverse(minus(v1020, v1021));
   real2 v229 = minusplus(v227, v228);
   real2 v231 = minusplus(uminus(v227), v228);
   real2 v239 = ctimesminusplus(reverse(v229), tbl[34 + tbloffset], ctimes(v229, tbl[35 + tbloffset]));
   real2 v920 = plus(v79, v239);
   real2 v916 = minus(v239, v79);
   real2 v996 = minus(v921, v920);
   real2 v1000 = plus(v920, v921);
   real2 v1040 = plus(v1000, v1001);
   real2 v1036 = minus(v1001, v1000);
   store(out, 1 << outShift, plus(v1040, v1041));
   real2 v1054 = minus(v1040, v1041);
   store(out, 33 << outShift, ctimesminusplus(v1054, tbl[0 + tbloffset], ctimes(reverse(v1054), tbl[1 + tbloffset])));
   real2 v1037 = minusplus(v1035, v1036);
   real2 v1039 = minusplus(uminus(v1035), v1036);
   store(out, 49 << outShift, ctimesminusplus(reverse(v1039), tbl[184 + tbloffset], ctimes(v1039, tbl[185 + tbloffset])));
   store(out, 17 << outShift, ctimesminusplus(reverse(v1037), tbl[182 + tbloffset], ctimes(v1037, tbl[183 + tbloffset])));
   real2 v1017 = minusplus(v1015, v1016);
   real2 v1019 = minusplus(uminus(v1015), v1016);
   real2 v1033 = ctimesminusplus(reverse(v1019), tbl[180 + tbloffset], ctimes(v1019, tbl[181 + tbloffset]));
   real2 v997 = minusplus(v995, v996);
   real2 v999 = minusplus(uminus(v995), v996);
   real2 v1013 = ctimesminusplus(reverse(v999), tbl[176 + tbloffset], ctimes(v999, tbl[177 + tbloffset]));
   store(out, 25 << outShift, plus(v1013, v1033));
   real2 v1066 = minus(v1013, v1033);
   store(out, 57 << outShift, ctimesminusplus(v1066, tbl[0 + tbloffset], ctimes(reverse(v1066), tbl[1 + tbloffset])));
   real2 v1027 = ctimesminusplus(reverse(v1017), tbl[178 + tbloffset], ctimes(v1017, tbl[179 + tbloffset]));
   real2 v1007 = ctimesminusplus(reverse(v997), tbl[174 + tbloffset], ctimes(v997, tbl[175 + tbloffset]));
   store(out, 9 << outShift, plus(v1007, v1027));
   real2 v1060 = minus(v1007, v1027);
   store(out, 41 << outShift, ctimesminusplus(v1060, tbl[0 + tbloffset], ctimes(reverse(v1060), tbl[1 + tbloffset])));
   real2 v937 = minusplus(v935, v936);
   real2 v939 = minusplus(uminus(v935), v936);
   real2 v959 = minusplus(uminus(v955), v956);
   real2 v957 = minusplus(v955, v956);
   real2 v967 = ctimesminusplus(reverse(v957), tbl[166 + tbloffset], ctimes(v957, tbl[167 + tbloffset]));
   real2 v947 = ctimesminusplus(reverse(v937), tbl[162 + tbloffset], ctimes(v937, tbl[163 + tbloffset]));
   real2 v919 = minusplus(uminus(v915), v916);
   real2 v917 = minusplus(v915, v916);
   real2 v1079 = plus(v947, v987);
   real2 v1073 = reverse(minus(v947, v987));
   real2 v927 = ctimesminusplus(reverse(v917), tbl[158 + tbloffset], ctimes(v917, tbl[159 + tbloffset]));
   real2 v1074 = minus(v967, v927);
   real2 v1078 = plus(v927, v967);
   store(out, 5 << outShift, plus(v1078, v1079));
   real2 v1092 = minus(v1078, v1079);
   store(out, 37 << outShift, ctimesminusplus(v1092, tbl[0 + tbloffset], ctimes(reverse(v1092), tbl[1 + tbloffset])));
   real2 v1075 = minusplus(v1073, v1074);
   store(out, 21 << outShift, ctimesminusplus(reverse(v1075), tbl[186 + tbloffset], ctimes(v1075, tbl[187 + tbloffset])));
   real2 v1077 = minusplus(uminus(v1073), v1074);
   store(out, 53 << outShift, ctimesminusplus(reverse(v1077), tbl[188 + tbloffset], ctimes(v1077, tbl[189 + tbloffset])));
   real2 v953 = ctimesminusplus(reverse(v939), tbl[164 + tbloffset], ctimes(v939, tbl[165 + tbloffset]));
   real2 v1099 = reverse(minus(v953, v993));
   real2 v1105 = plus(v953, v993);
   real2 v973 = ctimesminusplus(reverse(v959), tbl[168 + tbloffset], ctimes(v959, tbl[169 + tbloffset]));
   real2 v933 = ctimesminusplus(reverse(v919), tbl[160 + tbloffset], ctimes(v919, tbl[161 + tbloffset]));
   real2 v1104 = plus(v933, v973);
   real2 v1100 = minus(v973, v933);
   store(out, 13 << outShift, plus(v1104, v1105));
   real2 v1118 = minus(v1104, v1105);
   store(out, 45 << outShift, ctimesminusplus(v1118, tbl[0 + tbloffset], ctimes(reverse(v1118), tbl[1 + tbloffset])));
   real2 v1101 = minusplus(v1099, v1100);
   store(out, 29 << outShift, ctimesminusplus(reverse(v1101), tbl[190 + tbloffset], ctimes(v1101, tbl[191 + tbloffset])));
   real2 v1103 = minusplus(uminus(v1099), v1100);
   store(out, 61 << outShift, ctimesminusplus(reverse(v1103), tbl[192 + tbloffset], ctimes(v1103, tbl[193 + tbloffset])));
   real2 v345 = ctimesminusplus(reverse(v331), tbl[56 + tbloffset], ctimes(v331, tbl[57 + tbloffset]));
   real2 v325 = ctimesminusplus(reverse(v311), tbl[52 + tbloffset], ctimes(v311, tbl[53 + tbloffset]));
   real2 v265 = ctimesminusplus(reverse(v251), tbl[40 + tbloffset], ctimes(v251, tbl[41 + tbloffset]));
   real2 v185 = ctimesminusplus(reverse(v171), tbl[24 + tbloffset], ctimes(v171, tbl[25 + tbloffset]));
   real2 v165 = ctimesminusplus(reverse(v151), tbl[20 + tbloffset], ctimes(v151, tbl[21 + tbloffset]));
   real2 v1131 = plus(v165, v325);
   real2 v1125 = reverse(minus(v165, v325));
   real2 v1151 = plus(v185, v345);
   real2 v1145 = reverse(minus(v185, v345));
   real2 v105 = ctimesminusplus(reverse(v91), tbl[8 + tbloffset], ctimes(v91, tbl[9 + tbloffset]));
   real2 v1150 = plus(v105, v265);
   real2 v1146 = minus(v265, v105);
   real2 v1226 = minus(v1151, v1150);
   real2 v1230 = plus(v1150, v1151);
   real2 v1231 = plus(v1190, v1191);
   real2 v1225 = reverse(minus(v1190, v1191));
   real2 v1245 = reverse(minus(v1230, v1231));
   real2 v1251 = plus(v1230, v1231);
   real2 v365 = ctimesminusplus(reverse(v351), tbl[60 + tbloffset], ctimes(v351, tbl[61 + tbloffset]));
   real2 v285 = ctimesminusplus(reverse(v271), tbl[44 + tbloffset], ctimes(v271, tbl[45 + tbloffset]));
   real2 v205 = ctimesminusplus(reverse(v191), tbl[28 + tbloffset], ctimes(v191, tbl[29 + tbloffset]));
   real2 v1171 = plus(v205, v365);
   real2 v1165 = reverse(minus(v205, v365));
   real2 v125 = ctimesminusplus(reverse(v111), tbl[12 + tbloffset], ctimes(v111, tbl[13 + tbloffset]));
   real2 v85 = ctimesminusplus(reverse(v71), tbl[4 + tbloffset], ctimes(v71, tbl[5 + tbloffset]));
   real2 v245 = ctimesminusplus(reverse(v231), tbl[36 + tbloffset], ctimes(v231, tbl[37 + tbloffset]));
   real2 v1126 = minus(v245, v85);
   real2 v1130 = plus(v85, v245);
   real2 v1210 = plus(v1130, v1131);
   real2 v1206 = minus(v1131, v1130);
   real2 v1166 = minus(v285, v125);
   real2 v1170 = plus(v125, v285);
   real2 v1211 = plus(v1170, v1171);
   real2 v1205 = reverse(minus(v1170, v1171));
   real2 v1246 = minus(v1211, v1210);
   real2 v1250 = plus(v1210, v1211);
   store(out, 3 << outShift, plus(v1250, v1251));
   real2 v1264 = minus(v1250, v1251);
   store(out, 35 << outShift, ctimesminusplus(v1264, tbl[0 + tbloffset], ctimes(reverse(v1264), tbl[1 + tbloffset])));
   real2 v1247 = minusplus(v1245, v1246);
   real2 v1249 = minusplus(uminus(v1245), v1246);
   store(out, 19 << outShift, ctimesminusplus(reverse(v1247), tbl[218 + tbloffset], ctimes(v1247, tbl[219 + tbloffset])));
   store(out, 51 << outShift, ctimesminusplus(reverse(v1249), tbl[220 + tbloffset], ctimes(v1249, tbl[221 + tbloffset])));
   real2 v1229 = minusplus(uminus(v1225), v1226);
   real2 v1227 = minusplus(v1225, v1226);
   real2 v1207 = minusplus(v1205, v1206);
   real2 v1209 = minusplus(uminus(v1205), v1206);
   real2 v1237 = ctimesminusplus(reverse(v1227), tbl[214 + tbloffset], ctimes(v1227, tbl[215 + tbloffset]));
   real2 v1217 = ctimesminusplus(reverse(v1207), tbl[210 + tbloffset], ctimes(v1207, tbl[211 + tbloffset]));
   store(out, 11 << outShift, plus(v1217, v1237));
   real2 v1270 = minus(v1217, v1237);
   store(out, 43 << outShift, ctimesminusplus(v1270, tbl[0 + tbloffset], ctimes(reverse(v1270), tbl[1 + tbloffset])));
   real2 v1223 = ctimesminusplus(reverse(v1209), tbl[212 + tbloffset], ctimes(v1209, tbl[213 + tbloffset]));
   real2 v1243 = ctimesminusplus(reverse(v1229), tbl[216 + tbloffset], ctimes(v1229, tbl[217 + tbloffset]));
   store(out, 27 << outShift, plus(v1223, v1243));
   real2 v1276 = minus(v1223, v1243);
   store(out, 59 << outShift, ctimesminusplus(v1276, tbl[0 + tbloffset], ctimes(reverse(v1276), tbl[1 + tbloffset])));
   real2 v1189 = minusplus(uminus(v1185), v1186);
   real2 v1187 = minusplus(v1185, v1186);
   real2 v1129 = minusplus(uminus(v1125), v1126);
   real2 v1127 = minusplus(v1125, v1126);
   real2 v1147 = minusplus(v1145, v1146);
   real2 v1149 = minusplus(uminus(v1145), v1146);
   real2 v1167 = minusplus(v1165, v1166);
   real2 v1169 = minusplus(uminus(v1165), v1166);
   real2 v1143 = ctimesminusplus(reverse(v1129), tbl[196 + tbloffset], ctimes(v1129, tbl[197 + tbloffset]));
   real2 v1163 = ctimesminusplus(reverse(v1149), tbl[200 + tbloffset], ctimes(v1149, tbl[201 + tbloffset]));
   real2 v1203 = ctimesminusplus(reverse(v1189), tbl[208 + tbloffset], ctimes(v1189, tbl[209 + tbloffset]));
   real2 v1315 = plus(v1163, v1203);
   real2 v1309 = reverse(minus(v1163, v1203));
   real2 v1183 = ctimesminusplus(reverse(v1169), tbl[204 + tbloffset], ctimes(v1169, tbl[205 + tbloffset]));
   real2 v1314 = plus(v1143, v1183);
   real2 v1310 = minus(v1183, v1143);
   store(out, 15 << outShift, plus(v1314, v1315));
   real2 v1328 = minus(v1314, v1315);
   store(out, 47 << outShift, ctimesminusplus(v1328, tbl[0 + tbloffset], ctimes(reverse(v1328), tbl[1 + tbloffset])));
   real2 v1311 = minusplus(v1309, v1310);
   store(out, 31 << outShift, ctimesminusplus(reverse(v1311), tbl[226 + tbloffset], ctimes(v1311, tbl[227 + tbloffset])));
   real2 v1313 = minusplus(uminus(v1309), v1310);
   store(out, 63 << outShift, ctimesminusplus(reverse(v1313), tbl[228 + tbloffset], ctimes(v1313, tbl[229 + tbloffset])));
   real2 v1177 = ctimesminusplus(reverse(v1167), tbl[202 + tbloffset], ctimes(v1167, tbl[203 + tbloffset]));
   real2 v1137 = ctimesminusplus(reverse(v1127), tbl[194 + tbloffset], ctimes(v1127, tbl[195 + tbloffset]));
   real2 v1197 = ctimesminusplus(reverse(v1187), tbl[206 + tbloffset], ctimes(v1187, tbl[207 + tbloffset]));
   real2 v1157 = ctimesminusplus(reverse(v1147), tbl[198 + tbloffset], ctimes(v1147, tbl[199 + tbloffset]));
   real2 v1283 = reverse(minus(v1157, v1197));
   real2 v1289 = plus(v1157, v1197);
   real2 v1288 = plus(v1137, v1177);
   real2 v1284 = minus(v1177, v1137);
   store(out, 7 << outShift, plus(v1288, v1289));
   real2 v1302 = minus(v1288, v1289);
   store(out, 39 << outShift, ctimesminusplus(v1302, tbl[0 + tbloffset], ctimes(reverse(v1302), tbl[1 + tbloffset])));
   real2 v1285 = minusplus(v1283, v1284);
   real2 v1287 = minusplus(uminus(v1283), v1284);
   store(out, 55 << outShift, ctimesminusplus(reverse(v1287), tbl[224 + tbloffset], ctimes(v1287, tbl[225 + tbloffset])));
   store(out, 23 << outShift, ctimesminusplus(reverse(v1285), tbl[222 + tbloffset], ctimes(v1285, tbl[223 + tbloffset])));
// Pres : 17339
  }
}

ALIGNED(8192) void but64b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

// Pres : 30254
   real2 v37 = load(in, 35 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v132 = plus(v5, v37);
   real2 v128 = minus(v37, v5);
   real2 v21 = load(in, 19 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v133 = plus(v21, v53);
   real2 v127 = reverse(minus(v53, v21));
   real2 v131 = minusplus(uminus(v127), v128);
   real2 v129 = minusplus(v127, v128);
   real2 v139 = ctimesminusplus(reverse(v129), tbl[14 + tbloffset], ctimes(v129, tbl[15 + tbloffset]));
   real2 v145 = ctimesminusplus(reverse(v131), tbl[16 + tbloffset], ctimes(v131, tbl[17 + tbloffset]));
   real2 v448 = minus(v133, v132);
   real2 v452 = plus(v132, v133);
   real2 v45 = load(in, 43 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v292 = plus(v13, v45);
   real2 v288 = minus(v45, v13);
   real2 v29 = load(in, 27 << inShift);
   real2 v61 = load(in, 59 << inShift);
   real2 v293 = plus(v29, v61);
   real2 v287 = reverse(minus(v61, v29));
   real2 v291 = minusplus(uminus(v287), v288);
   real2 v289 = minusplus(v287, v288);
   real2 v299 = ctimesminusplus(reverse(v289), tbl[46 + tbloffset], ctimes(v289, tbl[47 + tbloffset]));
   real2 v453 = plus(v292, v293);
   real2 v447 = reverse(minus(v293, v292));
   real2 v608 = minus(v453, v452);
   real2 v612 = plus(v452, v453);
   real2 v980 = plus(v139, v299);
   real2 v976 = minus(v299, v139);
   real2 v449 = minusplus(v447, v448);
   real2 v451 = minusplus(uminus(v447), v448);
   real2 v465 = ctimesminusplus(reverse(v451), tbl[80 + tbloffset], ctimes(v451, tbl[81 + tbloffset]));
   real2 v305 = ctimesminusplus(reverse(v291), tbl[48 + tbloffset], ctimes(v291, tbl[49 + tbloffset]));
   real2 v1186 = minus(v305, v145);
   real2 v1190 = plus(v145, v305);
   real2 v459 = ctimesminusplus(reverse(v449), tbl[78 + tbloffset], ctimes(v449, tbl[79 + tbloffset]));
   real2 v25 = load(in, 23 << inShift);
   real2 v57 = load(in, 55 << inShift);
   real2 v207 = reverse(minus(v57, v25));
   real2 v213 = plus(v25, v57);
   real2 v9 = load(in, 7 << inShift);
   real2 v41 = load(in, 39 << inShift);
   real2 v212 = plus(v9, v41);
   real2 v208 = minus(v41, v9);
   real2 v528 = minus(v213, v212);
   real2 v532 = plus(v212, v213);
   real2 v209 = minusplus(v207, v208);
   real2 v211 = minusplus(uminus(v207), v208);
   real2 v225 = ctimesminusplus(reverse(v211), tbl[32 + tbloffset], ctimes(v211, tbl[33 + tbloffset]));
   real2 v219 = ctimesminusplus(reverse(v209), tbl[30 + tbloffset], ctimes(v209, tbl[31 + tbloffset]));
   real2 v17 = load(in, 15 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v368 = minus(v49, v17);
   real2 v372 = plus(v17, v49);
   real2 v33 = load(in, 31 << inShift);
   real2 v65 = load(in, 63 << inShift);
   real2 v367 = reverse(minus(v65, v33));
   real2 v373 = plus(v33, v65);
   real2 v369 = minusplus(v367, v368);
   real2 v371 = minusplus(uminus(v367), v368);
   real2 v533 = plus(v372, v373);
   real2 v527 = reverse(minus(v373, v372));
   real2 v607 = reverse(minus(v533, v532));
   real2 v613 = plus(v532, v533);
   real2 v529 = minusplus(v527, v528);
   real2 v531 = minusplus(uminus(v527), v528);
   real2 v545 = ctimesminusplus(reverse(v531), tbl[96 + tbloffset], ctimes(v531, tbl[97 + tbloffset]));
   real2 v653 = plus(v612, v613);
   real2 v647 = reverse(minus(v613, v612));
   real2 v609 = minusplus(v607, v608);
   real2 v611 = minusplus(uminus(v607), v608);
   real2 v863 = plus(v465, v545);
   real2 v857 = reverse(minus(v545, v465));
   real2 v539 = ctimesminusplus(reverse(v529), tbl[94 + tbloffset], ctimes(v529, tbl[95 + tbloffset]));
   real2 v385 = ctimesminusplus(reverse(v371), tbl[64 + tbloffset], ctimes(v371, tbl[65 + tbloffset]));
   real2 v619 = ctimesminusplus(reverse(v609), tbl[110 + tbloffset], ctimes(v609, tbl[111 + tbloffset]));
   real2 v1191 = plus(v225, v385);
   real2 v1185 = reverse(minus(v385, v225));
   real2 v779 = reverse(minus(v539, v459));
   real2 v785 = plus(v459, v539);
   real2 v625 = ctimesminusplus(reverse(v611), tbl[112 + tbloffset], ctimes(v611, tbl[113 + tbloffset]));
   real2 v379 = ctimesminusplus(reverse(v369), tbl[62 + tbloffset], ctimes(v369, tbl[63 + tbloffset]));
   real2 v975 = reverse(minus(v379, v219));
   real2 v981 = plus(v219, v379);
   real2 v977 = minusplus(v975, v976);
   real2 v979 = minusplus(uminus(v975), v976);
   real2 v987 = ctimesminusplus(reverse(v977), tbl[170 + tbloffset], ctimes(v977, tbl[171 + tbloffset]));
   real2 v993 = ctimesminusplus(reverse(v979), tbl[172 + tbloffset], ctimes(v979, tbl[173 + tbloffset]));
   real2 v1015 = reverse(minus(v981, v980));
   real2 v1021 = plus(v980, v981);
   real2 v11 = load(in, 9 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v248 = minus(v43, v11);
   real2 v252 = plus(v11, v43);
   real2 v59 = load(in, 57 << inShift);
   real2 v27 = load(in, 25 << inShift);
   real2 v253 = plus(v27, v59);
   real2 v247 = reverse(minus(v59, v27));
   real2 v413 = plus(v252, v253);
   real2 v407 = reverse(minus(v253, v252));
   real2 v249 = minusplus(v247, v248);
   real2 v251 = minusplus(uminus(v247), v248);
   real2 v259 = ctimesminusplus(reverse(v249), tbl[38 + tbloffset], ctimes(v249, tbl[39 + tbloffset]));
   real2 v35 = load(in, 33 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v92 = plus(v3, v35);
   real2 v88 = minus(v35, v3);
   real2 v51 = load(in, 49 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v87 = reverse(minus(v51, v19));
   real2 v93 = plus(v19, v51);
   real2 v412 = plus(v92, v93);
   real2 v408 = minus(v93, v92);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v409 = minusplus(v407, v408);
   real2 v91 = minusplus(uminus(v87), v88);
   real2 v89 = minusplus(v87, v88);
   real2 v99 = ctimesminusplus(reverse(v89), tbl[6 + tbloffset], ctimes(v89, tbl[7 + tbloffset]));
   real2 v425 = ctimesminusplus(reverse(v411), tbl[72 + tbloffset], ctimes(v411, tbl[73 + tbloffset]));
   real2 v568 = minus(v413, v412);
   real2 v572 = plus(v412, v413);
   real2 v940 = plus(v99, v259);
   real2 v936 = minus(v259, v99);
   real2 v419 = ctimesminusplus(reverse(v409), tbl[70 + tbloffset], ctimes(v409, tbl[71 + tbloffset]));
   real2 v47 = load(in, 45 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v332 = plus(v15, v47);
   real2 v328 = minus(v47, v15);
   real2 v63 = load(in, 61 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v327 = reverse(minus(v63, v31));
   real2 v333 = plus(v31, v63);
   real2 v329 = minusplus(v327, v328);
   real2 v331 = minusplus(uminus(v327), v328);
   real2 v339 = ctimesminusplus(reverse(v329), tbl[54 + tbloffset], ctimes(v329, tbl[55 + tbloffset]));
   real2 v487 = reverse(minus(v333, v332));
   real2 v493 = plus(v332, v333);
   real2 v7 = load(in, 5 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v172 = plus(v7, v39);
   real2 v168 = minus(v39, v7);
   real2 v55 = load(in, 53 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v173 = plus(v23, v55);
   real2 v167 = reverse(minus(v55, v23));
   real2 v488 = minus(v173, v172);
   real2 v492 = plus(v172, v173);
   real2 v491 = minusplus(uminus(v487), v488);
   real2 v489 = minusplus(v487, v488);
   real2 v499 = ctimesminusplus(reverse(v489), tbl[86 + tbloffset], ctimes(v489, tbl[87 + tbloffset]));
   real2 v505 = ctimesminusplus(reverse(v491), tbl[88 + tbloffset], ctimes(v491, tbl[89 + tbloffset]));
   real2 v567 = reverse(minus(v493, v492));
   real2 v573 = plus(v492, v493);
   real2 v571 = minusplus(uminus(v567), v568);
   real2 v569 = minusplus(v567, v568);
   real2 v579 = ctimesminusplus(reverse(v569), tbl[102 + tbloffset], ctimes(v569, tbl[103 + tbloffset]));
   real2 v585 = ctimesminusplus(reverse(v571), tbl[104 + tbloffset], ctimes(v571, tbl[105 + tbloffset]));
   real2 v739 = plus(v585, v625);
   real2 v733 = reverse(minus(v625, v585));
   real2 v707 = reverse(minus(v619, v579));
   real2 v713 = plus(v579, v619);
   real2 v648 = minus(v573, v572);
   real2 v652 = plus(v572, v573);
   real2 v673 = plus(v652, v653);
   real2 v667 = reverse(minus(v653, v652));
   real2 v651 = minusplus(uminus(v647), v648);
   real2 v649 = minusplus(v647, v648);
   real2 v659 = ctimesminusplus(reverse(v649), tbl[118 + tbloffset], ctimes(v649, tbl[119 + tbloffset]));
   real2 v665 = ctimesminusplus(reverse(v651), tbl[120 + tbloffset], ctimes(v651, tbl[121 + tbloffset]));
   real2 v780 = minus(v499, v419);
   real2 v784 = plus(v419, v499);
   real2 v781 = minusplus(v779, v780);
   real2 v783 = minusplus(uminus(v779), v780);
   real2 v805 = plus(v784, v785);
   real2 v799 = reverse(minus(v785, v784));
   real2 v862 = plus(v425, v505);
   real2 v858 = minus(v505, v425);
   real2 v859 = minusplus(v857, v858);
   real2 v861 = minusplus(uminus(v857), v858);
   real2 v875 = ctimesminusplus(reverse(v861), tbl[152 + tbloffset], ctimes(v861, tbl[153 + tbloffset]));
   real2 v791 = ctimesminusplus(reverse(v781), tbl[138 + tbloffset], ctimes(v781, tbl[139 + tbloffset]));
   real2 v797 = ctimesminusplus(reverse(v783), tbl[140 + tbloffset], ctimes(v783, tbl[141 + tbloffset]));
   real2 v883 = plus(v862, v863);
   real2 v877 = reverse(minus(v863, v862));
   real2 v869 = ctimesminusplus(reverse(v859), tbl[150 + tbloffset], ctimes(v859, tbl[151 + tbloffset]));
   real2 v36 = load(in, 34 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v108 = minus(v36, v4);
   real2 v112 = plus(v4, v36);
   real2 v52 = load(in, 50 << inShift);
   real2 v20 = load(in, 18 << inShift);
   real2 v113 = plus(v20, v52);
   real2 v107 = reverse(minus(v52, v20));
   real2 v428 = minus(v113, v112);
   real2 v432 = plus(v112, v113);
   real2 v12 = load(in, 10 << inShift);
   real2 v44 = load(in, 42 << inShift);
   real2 v268 = minus(v44, v12);
   real2 v272 = plus(v12, v44);
   real2 v28 = load(in, 26 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v267 = reverse(minus(v60, v28));
   real2 v273 = plus(v28, v60);
   real2 v427 = reverse(minus(v273, v272));
   real2 v433 = plus(v272, v273);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v429 = minusplus(v427, v428);
   real2 v439 = ctimesminusplus(reverse(v429), tbl[74 + tbloffset], ctimes(v429, tbl[75 + tbloffset]));
   real2 v588 = minus(v433, v432);
   real2 v592 = plus(v432, v433);
   real2 v40 = load(in, 38 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v188 = minus(v40, v8);
   real2 v192 = plus(v8, v40);
   real2 v24 = load(in, 22 << inShift);
   real2 v56 = load(in, 54 << inShift);
   real2 v187 = reverse(minus(v56, v24));
   real2 v193 = plus(v24, v56);
   real2 v512 = plus(v192, v193);
   real2 v508 = minus(v193, v192);
   real2 v32 = load(in, 30 << inShift);
   real2 v64 = load(in, 62 << inShift);
   real2 v347 = reverse(minus(v64, v32));
   real2 v353 = plus(v32, v64);
   real2 v48 = load(in, 46 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v348 = minus(v48, v16);
   real2 v352 = plus(v16, v48);
   real2 v513 = plus(v352, v353);
   real2 v507 = reverse(minus(v353, v352));
   real2 v587 = reverse(minus(v513, v512));
   real2 v593 = plus(v512, v513);
   real2 v633 = plus(v592, v593);
   real2 v627 = reverse(minus(v593, v592));
   real2 v591 = minusplus(uminus(v587), v588);
   real2 v589 = minusplus(v587, v588);
   real2 v605 = ctimesminusplus(reverse(v591), tbl[108 + tbloffset], ctimes(v591, tbl[109 + tbloffset]));
   real2 v599 = ctimesminusplus(reverse(v589), tbl[106 + tbloffset], ctimes(v589, tbl[107 + tbloffset]));
   real2 v46 = load(in, 44 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v312 = plus(v14, v46);
   real2 v308 = minus(v46, v14);
   real2 v62 = load(in, 60 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v313 = plus(v30, v62);
   real2 v307 = reverse(minus(v62, v30));
   real2 v467 = reverse(minus(v313, v312));
   real2 v473 = plus(v312, v313);
   real2 v22 = load(in, 20 << inShift);
   real2 v54 = load(in, 52 << inShift);
   real2 v147 = reverse(minus(v54, v22));
   real2 v153 = plus(v22, v54);
   real2 v6 = load(in, 4 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v148 = minus(v38, v6);
   real2 v152 = plus(v6, v38);
   real2 v472 = plus(v152, v153);
   real2 v468 = minus(v153, v152);
   real2 v547 = reverse(minus(v473, v472));
   real2 v553 = plus(v472, v473);
   real2 v10 = load(in, 8 << inShift);
   real2 v42 = load(in, 40 << inShift);
   real2 v232 = plus(v10, v42);
   real2 v228 = minus(v42, v10);
   real2 v58 = load(in, 56 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v233 = plus(v26, v58);
   real2 v227 = reverse(minus(v58, v26));
   real2 v393 = plus(v232, v233);
   real2 v387 = reverse(minus(v233, v232));
   real2 v2 = load(in, 0 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v18 = load(in, 16 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v73 = plus(v18, v50);
   real2 v67 = reverse(minus(v50, v18));
   real2 v388 = minus(v73, v72);
   real2 v392 = plus(v72, v73);
   real2 v548 = minus(v393, v392);
   real2 v552 = plus(v392, v393);
   real2 v628 = minus(v553, v552);
   real2 v632 = plus(v552, v553);
   real2 v672 = plus(v632, v633);
   real2 v668 = minus(v633, v632);
   store(out, 0 << outShift, plus(v672, v673));
   real2 v686 = minus(v672, v673);
   store(out, 32 << outShift, ctimesminusplus(v686, tbl[0 + tbloffset], ctimes(reverse(v686), tbl[1 + tbloffset])));
   real2 v669 = minusplus(v667, v668);
   real2 v671 = minusplus(uminus(v667), v668);
   store(out, 48 << outShift, ctimesminusplus(reverse(v671), tbl[124 + tbloffset], ctimes(v671, tbl[125 + tbloffset])));
   store(out, 16 << outShift, ctimesminusplus(reverse(v669), tbl[122 + tbloffset], ctimes(v669, tbl[123 + tbloffset])));
   real2 v631 = minusplus(uminus(v627), v628);
   real2 v629 = minusplus(v627, v628);
   real2 v639 = ctimesminusplus(reverse(v629), tbl[114 + tbloffset], ctimes(v629, tbl[115 + tbloffset]));
   store(out, 8 << outShift, plus(v639, v659));
   real2 v694 = minus(v639, v659);
   store(out, 40 << outShift, ctimesminusplus(v694, tbl[0 + tbloffset], ctimes(reverse(v694), tbl[1 + tbloffset])));
   real2 v645 = ctimesminusplus(reverse(v631), tbl[116 + tbloffset], ctimes(v631, tbl[117 + tbloffset]));
   store(out, 24 << outShift, plus(v645, v665));
   real2 v700 = minus(v645, v665);
   store(out, 56 << outShift, ctimesminusplus(v700, tbl[0 + tbloffset], ctimes(reverse(v700), tbl[1 + tbloffset])));
   real2 v549 = minusplus(v547, v548);
   real2 v551 = minusplus(uminus(v547), v548);
   real2 v559 = ctimesminusplus(reverse(v549), tbl[98 + tbloffset], ctimes(v549, tbl[99 + tbloffset]));
   real2 v708 = minus(v599, v559);
   real2 v712 = plus(v559, v599);
   store(out, 4 << outShift, plus(v712, v713));
   real2 v726 = minus(v712, v713);
   store(out, 36 << outShift, ctimesminusplus(v726, tbl[0 + tbloffset], ctimes(reverse(v726), tbl[1 + tbloffset])));
   real2 v711 = minusplus(uminus(v707), v708);
   real2 v709 = minusplus(v707, v708);
   store(out, 20 << outShift, ctimesminusplus(reverse(v709), tbl[126 + tbloffset], ctimes(v709, tbl[127 + tbloffset])));
   store(out, 52 << outShift, ctimesminusplus(reverse(v711), tbl[128 + tbloffset], ctimes(v711, tbl[129 + tbloffset])));
   real2 v565 = ctimesminusplus(reverse(v551), tbl[100 + tbloffset], ctimes(v551, tbl[101 + tbloffset]));
   real2 v738 = plus(v565, v605);
   real2 v734 = minus(v605, v565);
   store(out, 12 << outShift, plus(v738, v739));
   real2 v752 = minus(v738, v739);
   store(out, 44 << outShift, ctimesminusplus(v752, tbl[0 + tbloffset], ctimes(reverse(v752), tbl[1 + tbloffset])));
   real2 v737 = minusplus(uminus(v733), v734);
   store(out, 60 << outShift, ctimesminusplus(reverse(v737), tbl[132 + tbloffset], ctimes(v737, tbl[133 + tbloffset])));
   real2 v735 = minusplus(v733, v734);
   store(out, 28 << outShift, ctimesminusplus(reverse(v735), tbl[130 + tbloffset], ctimes(v735, tbl[131 + tbloffset])));
   real2 v471 = minusplus(uminus(v467), v468);
   real2 v469 = minusplus(v467, v468);
   real2 v479 = ctimesminusplus(reverse(v469), tbl[82 + tbloffset], ctimes(v469, tbl[83 + tbloffset]));
   real2 v511 = minusplus(uminus(v507), v508);
   real2 v509 = minusplus(v507, v508);
   real2 v519 = ctimesminusplus(reverse(v509), tbl[90 + tbloffset], ctimes(v509, tbl[91 + tbloffset]));
   real2 v765 = plus(v439, v519);
   real2 v759 = reverse(minus(v519, v439));
   real2 v389 = minusplus(v387, v388);
   real2 v391 = minusplus(uminus(v387), v388);
   real2 v399 = ctimesminusplus(reverse(v389), tbl[66 + tbloffset], ctimes(v389, tbl[67 + tbloffset]));
   real2 v764 = plus(v399, v479);
   real2 v760 = minus(v479, v399);
   real2 v804 = plus(v764, v765);
   real2 v800 = minus(v765, v764);
   store(out, 2 << outShift, plus(v804, v805));
   real2 v818 = minus(v804, v805);
   store(out, 34 << outShift, ctimesminusplus(v818, tbl[0 + tbloffset], ctimes(reverse(v818), tbl[1 + tbloffset])));
   real2 v803 = minusplus(uminus(v799), v800);
   store(out, 50 << outShift, ctimesminusplus(reverse(v803), tbl[144 + tbloffset], ctimes(v803, tbl[145 + tbloffset])));
   real2 v801 = minusplus(v799, v800);
   store(out, 18 << outShift, ctimesminusplus(reverse(v801), tbl[142 + tbloffset], ctimes(v801, tbl[143 + tbloffset])));
   real2 v763 = minusplus(uminus(v759), v760);
   real2 v761 = minusplus(v759, v760);
   real2 v777 = ctimesminusplus(reverse(v763), tbl[136 + tbloffset], ctimes(v763, tbl[137 + tbloffset]));
   store(out, 26 << outShift, plus(v777, v797));
   real2 v830 = minus(v777, v797);
   store(out, 58 << outShift, ctimesminusplus(v830, tbl[0 + tbloffset], ctimes(reverse(v830), tbl[1 + tbloffset])));
   real2 v771 = ctimesminusplus(reverse(v761), tbl[134 + tbloffset], ctimes(v761, tbl[135 + tbloffset]));
   store(out, 10 << outShift, plus(v771, v791));
   real2 v824 = minus(v771, v791);
   store(out, 42 << outShift, ctimesminusplus(v824, tbl[0 + tbloffset], ctimes(reverse(v824), tbl[1 + tbloffset])));
   real2 v445 = ctimesminusplus(reverse(v431), tbl[76 + tbloffset], ctimes(v431, tbl[77 + tbloffset]));
   real2 v525 = ctimesminusplus(reverse(v511), tbl[92 + tbloffset], ctimes(v511, tbl[93 + tbloffset]));
   real2 v837 = reverse(minus(v525, v445));
   real2 v843 = plus(v445, v525);
   real2 v485 = ctimesminusplus(reverse(v471), tbl[84 + tbloffset], ctimes(v471, tbl[85 + tbloffset]));
   real2 v405 = ctimesminusplus(reverse(v391), tbl[68 + tbloffset], ctimes(v391, tbl[69 + tbloffset]));
   real2 v838 = minus(v485, v405);
   real2 v842 = plus(v405, v485);
   real2 v878 = minus(v843, v842);
   real2 v882 = plus(v842, v843);
   store(out, 6 << outShift, plus(v882, v883));
   real2 v896 = minus(v882, v883);
   store(out, 38 << outShift, ctimesminusplus(v896, tbl[0 + tbloffset], ctimes(reverse(v896), tbl[1 + tbloffset])));
   real2 v881 = minusplus(uminus(v877), v878);
   store(out, 54 << outShift, ctimesminusplus(reverse(v881), tbl[156 + tbloffset], ctimes(v881, tbl[157 + tbloffset])));
   real2 v879 = minusplus(v877, v878);
   store(out, 22 << outShift, ctimesminusplus(reverse(v879), tbl[154 + tbloffset], ctimes(v879, tbl[155 + tbloffset])));
   real2 v841 = minusplus(uminus(v837), v838);
   real2 v839 = minusplus(v837, v838);
   real2 v855 = ctimesminusplus(reverse(v841), tbl[148 + tbloffset], ctimes(v841, tbl[149 + tbloffset]));
   store(out, 30 << outShift, plus(v855, v875));
   real2 v908 = minus(v855, v875);
   store(out, 62 << outShift, ctimesminusplus(v908, tbl[0 + tbloffset], ctimes(reverse(v908), tbl[1 + tbloffset])));
   real2 v849 = ctimesminusplus(reverse(v839), tbl[146 + tbloffset], ctimes(v839, tbl[147 + tbloffset]));
   store(out, 14 << outShift, plus(v849, v869));
   real2 v902 = minus(v849, v869);
   store(out, 46 << outShift, ctimesminusplus(v902, tbl[0 + tbloffset], ctimes(reverse(v902), tbl[1 + tbloffset])));
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v149 = minusplus(v147, v148);
   real2 v311 = minusplus(uminus(v307), v308);
   real2 v309 = minusplus(v307, v308);
   real2 v109 = minusplus(v107, v108);
   real2 v111 = minusplus(uminus(v107), v108);
   real2 v119 = ctimesminusplus(reverse(v109), tbl[10 + tbloffset], ctimes(v109, tbl[11 + tbloffset]));
   real2 v269 = minusplus(v267, v268);
   real2 v271 = minusplus(uminus(v267), v268);
   real2 v279 = ctimesminusplus(reverse(v269), tbl[42 + tbloffset], ctimes(v269, tbl[43 + tbloffset]));
   real2 v960 = plus(v119, v279);
   real2 v956 = minus(v279, v119);
   real2 v169 = minusplus(v167, v168);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v159 = ctimesminusplus(reverse(v149), tbl[18 + tbloffset], ctimes(v149, tbl[19 + tbloffset]));
   real2 v319 = ctimesminusplus(reverse(v309), tbl[50 + tbloffset], ctimes(v309, tbl[51 + tbloffset]));
   real2 v921 = plus(v159, v319);
   real2 v915 = reverse(minus(v319, v159));
   real2 v351 = minusplus(uminus(v347), v348);
   real2 v349 = minusplus(v347, v348);
   real2 v359 = ctimesminusplus(reverse(v349), tbl[58 + tbloffset], ctimes(v349, tbl[59 + tbloffset]));
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v189 = minusplus(v187, v188);
   real2 v199 = ctimesminusplus(reverse(v189), tbl[26 + tbloffset], ctimes(v189, tbl[27 + tbloffset]));
   real2 v961 = plus(v199, v359);
   real2 v955 = reverse(minus(v359, v199));
   real2 v995 = reverse(minus(v961, v960));
   real2 v1001 = plus(v960, v961);
   real2 v179 = ctimesminusplus(reverse(v169), tbl[22 + tbloffset], ctimes(v169, tbl[23 + tbloffset]));
   real2 v941 = plus(v179, v339);
   real2 v935 = reverse(minus(v339, v179));
   real2 v1016 = minus(v941, v940);
   real2 v1020 = plus(v940, v941);
   real2 v71 = minusplus(uminus(v67), v68);
   real2 v69 = minusplus(v67, v68);
   real2 v79 = ctimesminusplus(reverse(v69), tbl[2 + tbloffset], ctimes(v69, tbl[3 + tbloffset]));
   real2 v1041 = plus(v1020, v1021);
   real2 v1035 = reverse(minus(v1021, v1020));
   real2 v229 = minusplus(v227, v228);
   real2 v231 = minusplus(uminus(v227), v228);
   real2 v239 = ctimesminusplus(reverse(v229), tbl[34 + tbloffset], ctimes(v229, tbl[35 + tbloffset]));
   real2 v920 = plus(v79, v239);
   real2 v916 = minus(v239, v79);
   real2 v996 = minus(v921, v920);
   real2 v1000 = plus(v920, v921);
   real2 v1040 = plus(v1000, v1001);
   real2 v1036 = minus(v1001, v1000);
   store(out, 1 << outShift, plus(v1040, v1041));
   real2 v1054 = minus(v1040, v1041);
   store(out, 33 << outShift, ctimesminusplus(v1054, tbl[0 + tbloffset], ctimes(reverse(v1054), tbl[1 + tbloffset])));
   real2 v1037 = minusplus(v1035, v1036);
   real2 v1039 = minusplus(uminus(v1035), v1036);
   store(out, 49 << outShift, ctimesminusplus(reverse(v1039), tbl[184 + tbloffset], ctimes(v1039, tbl[185 + tbloffset])));
   store(out, 17 << outShift, ctimesminusplus(reverse(v1037), tbl[182 + tbloffset], ctimes(v1037, tbl[183 + tbloffset])));
   real2 v1017 = minusplus(v1015, v1016);
   real2 v1019 = minusplus(uminus(v1015), v1016);
   real2 v1033 = ctimesminusplus(reverse(v1019), tbl[180 + tbloffset], ctimes(v1019, tbl[181 + tbloffset]));
   real2 v997 = minusplus(v995, v996);
   real2 v999 = minusplus(uminus(v995), v996);
   real2 v1013 = ctimesminusplus(reverse(v999), tbl[176 + tbloffset], ctimes(v999, tbl[177 + tbloffset]));
   store(out, 25 << outShift, plus(v1013, v1033));
   real2 v1066 = minus(v1013, v1033);
   store(out, 57 << outShift, ctimesminusplus(v1066, tbl[0 + tbloffset], ctimes(reverse(v1066), tbl[1 + tbloffset])));
   real2 v1027 = ctimesminusplus(reverse(v1017), tbl[178 + tbloffset], ctimes(v1017, tbl[179 + tbloffset]));
   real2 v1007 = ctimesminusplus(reverse(v997), tbl[174 + tbloffset], ctimes(v997, tbl[175 + tbloffset]));
   store(out, 9 << outShift, plus(v1007, v1027));
   real2 v1060 = minus(v1007, v1027);
   store(out, 41 << outShift, ctimesminusplus(v1060, tbl[0 + tbloffset], ctimes(reverse(v1060), tbl[1 + tbloffset])));
   real2 v937 = minusplus(v935, v936);
   real2 v939 = minusplus(uminus(v935), v936);
   real2 v959 = minusplus(uminus(v955), v956);
   real2 v957 = minusplus(v955, v956);
   real2 v967 = ctimesminusplus(reverse(v957), tbl[166 + tbloffset], ctimes(v957, tbl[167 + tbloffset]));
   real2 v947 = ctimesminusplus(reverse(v937), tbl[162 + tbloffset], ctimes(v937, tbl[163 + tbloffset]));
   real2 v919 = minusplus(uminus(v915), v916);
   real2 v917 = minusplus(v915, v916);
   real2 v1079 = plus(v947, v987);
   real2 v1073 = reverse(minus(v987, v947));
   real2 v927 = ctimesminusplus(reverse(v917), tbl[158 + tbloffset], ctimes(v917, tbl[159 + tbloffset]));
   real2 v1074 = minus(v967, v927);
   real2 v1078 = plus(v927, v967);
   store(out, 5 << outShift, plus(v1078, v1079));
   real2 v1092 = minus(v1078, v1079);
   store(out, 37 << outShift, ctimesminusplus(v1092, tbl[0 + tbloffset], ctimes(reverse(v1092), tbl[1 + tbloffset])));
   real2 v1075 = minusplus(v1073, v1074);
   store(out, 21 << outShift, ctimesminusplus(reverse(v1075), tbl[186 + tbloffset], ctimes(v1075, tbl[187 + tbloffset])));
   real2 v1077 = minusplus(uminus(v1073), v1074);
   store(out, 53 << outShift, ctimesminusplus(reverse(v1077), tbl[188 + tbloffset], ctimes(v1077, tbl[189 + tbloffset])));
   real2 v953 = ctimesminusplus(reverse(v939), tbl[164 + tbloffset], ctimes(v939, tbl[165 + tbloffset]));
   real2 v1099 = reverse(minus(v993, v953));
   real2 v1105 = plus(v953, v993);
   real2 v973 = ctimesminusplus(reverse(v959), tbl[168 + tbloffset], ctimes(v959, tbl[169 + tbloffset]));
   real2 v933 = ctimesminusplus(reverse(v919), tbl[160 + tbloffset], ctimes(v919, tbl[161 + tbloffset]));
   real2 v1104 = plus(v933, v973);
   real2 v1100 = minus(v973, v933);
   store(out, 13 << outShift, plus(v1104, v1105));
   real2 v1118 = minus(v1104, v1105);
   store(out, 45 << outShift, ctimesminusplus(v1118, tbl[0 + tbloffset], ctimes(reverse(v1118), tbl[1 + tbloffset])));
   real2 v1101 = minusplus(v1099, v1100);
   store(out, 29 << outShift, ctimesminusplus(reverse(v1101), tbl[190 + tbloffset], ctimes(v1101, tbl[191 + tbloffset])));
   real2 v1103 = minusplus(uminus(v1099), v1100);
   store(out, 61 << outShift, ctimesminusplus(reverse(v1103), tbl[192 + tbloffset], ctimes(v1103, tbl[193 + tbloffset])));
   real2 v345 = ctimesminusplus(reverse(v331), tbl[56 + tbloffset], ctimes(v331, tbl[57 + tbloffset]));
   real2 v325 = ctimesminusplus(reverse(v311), tbl[52 + tbloffset], ctimes(v311, tbl[53 + tbloffset]));
   real2 v265 = ctimesminusplus(reverse(v251), tbl[40 + tbloffset], ctimes(v251, tbl[41 + tbloffset]));
   real2 v185 = ctimesminusplus(reverse(v171), tbl[24 + tbloffset], ctimes(v171, tbl[25 + tbloffset]));
   real2 v165 = ctimesminusplus(reverse(v151), tbl[20 + tbloffset], ctimes(v151, tbl[21 + tbloffset]));
   real2 v1131 = plus(v165, v325);
   real2 v1125 = reverse(minus(v325, v165));
   real2 v1151 = plus(v185, v345);
   real2 v1145 = reverse(minus(v345, v185));
   real2 v105 = ctimesminusplus(reverse(v91), tbl[8 + tbloffset], ctimes(v91, tbl[9 + tbloffset]));
   real2 v1150 = plus(v105, v265);
   real2 v1146 = minus(v265, v105);
   real2 v1226 = minus(v1151, v1150);
   real2 v1230 = plus(v1150, v1151);
   real2 v1231 = plus(v1190, v1191);
   real2 v1225 = reverse(minus(v1191, v1190));
   real2 v1245 = reverse(minus(v1231, v1230));
   real2 v1251 = plus(v1230, v1231);
   real2 v365 = ctimesminusplus(reverse(v351), tbl[60 + tbloffset], ctimes(v351, tbl[61 + tbloffset]));
   real2 v285 = ctimesminusplus(reverse(v271), tbl[44 + tbloffset], ctimes(v271, tbl[45 + tbloffset]));
   real2 v205 = ctimesminusplus(reverse(v191), tbl[28 + tbloffset], ctimes(v191, tbl[29 + tbloffset]));
   real2 v1171 = plus(v205, v365);
   real2 v1165 = reverse(minus(v365, v205));
   real2 v125 = ctimesminusplus(reverse(v111), tbl[12 + tbloffset], ctimes(v111, tbl[13 + tbloffset]));
   real2 v85 = ctimesminusplus(reverse(v71), tbl[4 + tbloffset], ctimes(v71, tbl[5 + tbloffset]));
   real2 v245 = ctimesminusplus(reverse(v231), tbl[36 + tbloffset], ctimes(v231, tbl[37 + tbloffset]));
   real2 v1126 = minus(v245, v85);
   real2 v1130 = plus(v85, v245);
   real2 v1210 = plus(v1130, v1131);
   real2 v1206 = minus(v1131, v1130);
   real2 v1166 = minus(v285, v125);
   real2 v1170 = plus(v125, v285);
   real2 v1211 = plus(v1170, v1171);
   real2 v1205 = reverse(minus(v1171, v1170));
   real2 v1246 = minus(v1211, v1210);
   real2 v1250 = plus(v1210, v1211);
   store(out, 3 << outShift, plus(v1250, v1251));
   real2 v1264 = minus(v1250, v1251);
   store(out, 35 << outShift, ctimesminusplus(v1264, tbl[0 + tbloffset], ctimes(reverse(v1264), tbl[1 + tbloffset])));
   real2 v1247 = minusplus(v1245, v1246);
   real2 v1249 = minusplus(uminus(v1245), v1246);
   store(out, 19 << outShift, ctimesminusplus(reverse(v1247), tbl[218 + tbloffset], ctimes(v1247, tbl[219 + tbloffset])));
   store(out, 51 << outShift, ctimesminusplus(reverse(v1249), tbl[220 + tbloffset], ctimes(v1249, tbl[221 + tbloffset])));
   real2 v1229 = minusplus(uminus(v1225), v1226);
   real2 v1227 = minusplus(v1225, v1226);
   real2 v1207 = minusplus(v1205, v1206);
   real2 v1209 = minusplus(uminus(v1205), v1206);
   real2 v1237 = ctimesminusplus(reverse(v1227), tbl[214 + tbloffset], ctimes(v1227, tbl[215 + tbloffset]));
   real2 v1217 = ctimesminusplus(reverse(v1207), tbl[210 + tbloffset], ctimes(v1207, tbl[211 + tbloffset]));
   store(out, 11 << outShift, plus(v1217, v1237));
   real2 v1270 = minus(v1217, v1237);
   store(out, 43 << outShift, ctimesminusplus(v1270, tbl[0 + tbloffset], ctimes(reverse(v1270), tbl[1 + tbloffset])));
   real2 v1223 = ctimesminusplus(reverse(v1209), tbl[212 + tbloffset], ctimes(v1209, tbl[213 + tbloffset]));
   real2 v1243 = ctimesminusplus(reverse(v1229), tbl[216 + tbloffset], ctimes(v1229, tbl[217 + tbloffset]));
   store(out, 27 << outShift, plus(v1223, v1243));
   real2 v1276 = minus(v1223, v1243);
   store(out, 59 << outShift, ctimesminusplus(v1276, tbl[0 + tbloffset], ctimes(reverse(v1276), tbl[1 + tbloffset])));
   real2 v1189 = minusplus(uminus(v1185), v1186);
   real2 v1187 = minusplus(v1185, v1186);
   real2 v1129 = minusplus(uminus(v1125), v1126);
   real2 v1127 = minusplus(v1125, v1126);
   real2 v1147 = minusplus(v1145, v1146);
   real2 v1149 = minusplus(uminus(v1145), v1146);
   real2 v1167 = minusplus(v1165, v1166);
   real2 v1169 = minusplus(uminus(v1165), v1166);
   real2 v1143 = ctimesminusplus(reverse(v1129), tbl[196 + tbloffset], ctimes(v1129, tbl[197 + tbloffset]));
   real2 v1163 = ctimesminusplus(reverse(v1149), tbl[200 + tbloffset], ctimes(v1149, tbl[201 + tbloffset]));
   real2 v1203 = ctimesminusplus(reverse(v1189), tbl[208 + tbloffset], ctimes(v1189, tbl[209 + tbloffset]));
   real2 v1315 = plus(v1163, v1203);
   real2 v1309 = reverse(minus(v1203, v1163));
   real2 v1183 = ctimesminusplus(reverse(v1169), tbl[204 + tbloffset], ctimes(v1169, tbl[205 + tbloffset]));
   real2 v1314 = plus(v1143, v1183);
   real2 v1310 = minus(v1183, v1143);
   store(out, 15 << outShift, plus(v1314, v1315));
   real2 v1328 = minus(v1314, v1315);
   store(out, 47 << outShift, ctimesminusplus(v1328, tbl[0 + tbloffset], ctimes(reverse(v1328), tbl[1 + tbloffset])));
   real2 v1311 = minusplus(v1309, v1310);
   store(out, 31 << outShift, ctimesminusplus(reverse(v1311), tbl[226 + tbloffset], ctimes(v1311, tbl[227 + tbloffset])));
   real2 v1313 = minusplus(uminus(v1309), v1310);
   store(out, 63 << outShift, ctimesminusplus(reverse(v1313), tbl[228 + tbloffset], ctimes(v1313, tbl[229 + tbloffset])));
   real2 v1177 = ctimesminusplus(reverse(v1167), tbl[202 + tbloffset], ctimes(v1167, tbl[203 + tbloffset]));
   real2 v1137 = ctimesminusplus(reverse(v1127), tbl[194 + tbloffset], ctimes(v1127, tbl[195 + tbloffset]));
   real2 v1197 = ctimesminusplus(reverse(v1187), tbl[206 + tbloffset], ctimes(v1187, tbl[207 + tbloffset]));
   real2 v1157 = ctimesminusplus(reverse(v1147), tbl[198 + tbloffset], ctimes(v1147, tbl[199 + tbloffset]));
   real2 v1283 = reverse(minus(v1197, v1157));
   real2 v1289 = plus(v1157, v1197);
   real2 v1288 = plus(v1137, v1177);
   real2 v1284 = minus(v1177, v1137);
   store(out, 7 << outShift, plus(v1288, v1289));
   real2 v1302 = minus(v1288, v1289);
   store(out, 39 << outShift, ctimesminusplus(v1302, tbl[0 + tbloffset], ctimes(reverse(v1302), tbl[1 + tbloffset])));
   real2 v1285 = minusplus(v1283, v1284);
   real2 v1287 = minusplus(uminus(v1283), v1284);
   store(out, 55 << outShift, ctimesminusplus(reverse(v1287), tbl[224 + tbloffset], ctimes(v1287, tbl[225 + tbloffset])));
   store(out, 23 << outShift, ctimesminusplus(reverse(v1285), tbl[222 + tbloffset], ctimes(v1285, tbl[223 + tbloffset])));
// Pres : 17339
  }
}

ALIGNED(8192) void tbut64f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

// Pres : 30254
   real2 v37 = load(in, 35 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v132 = plus(v5, v37);
   real2 v128 = minus(v37, v5);
   real2 v21 = load(in, 19 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v133 = plus(v21, v53);
   real2 v127 = reverse(minus(v21, v53));
   real2 v131 = minusplus(uminus(v127), v128);
   real2 v129 = minusplus(v127, v128);
   real2 v139 = timesminusplus(reverse(v129), load(tbl, 14 * VECWIDTH + tbloffset), times(v129, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v145 = timesminusplus(reverse(v131), load(tbl, 16 * VECWIDTH + tbloffset), times(v131, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v448 = minus(v133, v132);
   real2 v452 = plus(v132, v133);
   real2 v45 = load(in, 43 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v292 = plus(v13, v45);
   real2 v288 = minus(v45, v13);
   real2 v29 = load(in, 27 << inShift);
   real2 v61 = load(in, 59 << inShift);
   real2 v293 = plus(v29, v61);
   real2 v287 = reverse(minus(v29, v61));
   real2 v291 = minusplus(uminus(v287), v288);
   real2 v289 = minusplus(v287, v288);
   real2 v299 = timesminusplus(reverse(v289), load(tbl, 46 * VECWIDTH + tbloffset), times(v289, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v453 = plus(v292, v293);
   real2 v447 = reverse(minus(v292, v293));
   real2 v608 = minus(v453, v452);
   real2 v612 = plus(v452, v453);
   real2 v980 = plus(v139, v299);
   real2 v976 = minus(v299, v139);
   real2 v449 = minusplus(v447, v448);
   real2 v451 = minusplus(uminus(v447), v448);
   real2 v465 = timesminusplus(reverse(v451), load(tbl, 80 * VECWIDTH + tbloffset), times(v451, load(tbl, 81 * VECWIDTH + tbloffset)));
   real2 v305 = timesminusplus(reverse(v291), load(tbl, 48 * VECWIDTH + tbloffset), times(v291, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v1186 = minus(v305, v145);
   real2 v1190 = plus(v145, v305);
   real2 v459 = timesminusplus(reverse(v449), load(tbl, 78 * VECWIDTH + tbloffset), times(v449, load(tbl, 79 * VECWIDTH + tbloffset)));
   real2 v25 = load(in, 23 << inShift);
   real2 v57 = load(in, 55 << inShift);
   real2 v207 = reverse(minus(v25, v57));
   real2 v213 = plus(v25, v57);
   real2 v9 = load(in, 7 << inShift);
   real2 v41 = load(in, 39 << inShift);
   real2 v212 = plus(v9, v41);
   real2 v208 = minus(v41, v9);
   real2 v528 = minus(v213, v212);
   real2 v532 = plus(v212, v213);
   real2 v209 = minusplus(v207, v208);
   real2 v211 = minusplus(uminus(v207), v208);
   real2 v225 = timesminusplus(reverse(v211), load(tbl, 32 * VECWIDTH + tbloffset), times(v211, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v219 = timesminusplus(reverse(v209), load(tbl, 30 * VECWIDTH + tbloffset), times(v209, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v17 = load(in, 15 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v368 = minus(v49, v17);
   real2 v372 = plus(v17, v49);
   real2 v33 = load(in, 31 << inShift);
   real2 v65 = load(in, 63 << inShift);
   real2 v367 = reverse(minus(v33, v65));
   real2 v373 = plus(v33, v65);
   real2 v369 = minusplus(v367, v368);
   real2 v371 = minusplus(uminus(v367), v368);
   real2 v533 = plus(v372, v373);
   real2 v527 = reverse(minus(v372, v373));
   real2 v607 = reverse(minus(v532, v533));
   real2 v613 = plus(v532, v533);
   real2 v529 = minusplus(v527, v528);
   real2 v531 = minusplus(uminus(v527), v528);
   real2 v545 = timesminusplus(reverse(v531), load(tbl, 96 * VECWIDTH + tbloffset), times(v531, load(tbl, 97 * VECWIDTH + tbloffset)));
   real2 v653 = plus(v612, v613);
   real2 v647 = reverse(minus(v612, v613));
   real2 v609 = minusplus(v607, v608);
   real2 v611 = minusplus(uminus(v607), v608);
   real2 v863 = plus(v465, v545);
   real2 v857 = reverse(minus(v465, v545));
   real2 v539 = timesminusplus(reverse(v529), load(tbl, 94 * VECWIDTH + tbloffset), times(v529, load(tbl, 95 * VECWIDTH + tbloffset)));
   real2 v385 = timesminusplus(reverse(v371), load(tbl, 64 * VECWIDTH + tbloffset), times(v371, load(tbl, 65 * VECWIDTH + tbloffset)));
   real2 v619 = timesminusplus(reverse(v609), load(tbl, 110 * VECWIDTH + tbloffset), times(v609, load(tbl, 111 * VECWIDTH + tbloffset)));
   real2 v1191 = plus(v225, v385);
   real2 v1185 = reverse(minus(v225, v385));
   real2 v779 = reverse(minus(v459, v539));
   real2 v785 = plus(v459, v539);
   real2 v625 = timesminusplus(reverse(v611), load(tbl, 112 * VECWIDTH + tbloffset), times(v611, load(tbl, 113 * VECWIDTH + tbloffset)));
   real2 v379 = timesminusplus(reverse(v369), load(tbl, 62 * VECWIDTH + tbloffset), times(v369, load(tbl, 63 * VECWIDTH + tbloffset)));
   real2 v975 = reverse(minus(v219, v379));
   real2 v981 = plus(v219, v379);
   real2 v977 = minusplus(v975, v976);
   real2 v979 = minusplus(uminus(v975), v976);
   real2 v987 = timesminusplus(reverse(v977), load(tbl, 170 * VECWIDTH + tbloffset), times(v977, load(tbl, 171 * VECWIDTH + tbloffset)));
   real2 v993 = timesminusplus(reverse(v979), load(tbl, 172 * VECWIDTH + tbloffset), times(v979, load(tbl, 173 * VECWIDTH + tbloffset)));
   real2 v1015 = reverse(minus(v980, v981));
   real2 v1021 = plus(v980, v981);
   real2 v11 = load(in, 9 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v248 = minus(v43, v11);
   real2 v252 = plus(v11, v43);
   real2 v59 = load(in, 57 << inShift);
   real2 v27 = load(in, 25 << inShift);
   real2 v253 = plus(v27, v59);
   real2 v247 = reverse(minus(v27, v59));
   real2 v413 = plus(v252, v253);
   real2 v407 = reverse(minus(v252, v253));
   real2 v249 = minusplus(v247, v248);
   real2 v251 = minusplus(uminus(v247), v248);
   real2 v259 = timesminusplus(reverse(v249), load(tbl, 38 * VECWIDTH + tbloffset), times(v249, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v35 = load(in, 33 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v92 = plus(v3, v35);
   real2 v88 = minus(v35, v3);
   real2 v51 = load(in, 49 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v87 = reverse(minus(v19, v51));
   real2 v93 = plus(v19, v51);
   real2 v412 = plus(v92, v93);
   real2 v408 = minus(v93, v92);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v409 = minusplus(v407, v408);
   real2 v91 = minusplus(uminus(v87), v88);
   real2 v89 = minusplus(v87, v88);
   real2 v99 = timesminusplus(reverse(v89), load(tbl, 6 * VECWIDTH + tbloffset), times(v89, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v425 = timesminusplus(reverse(v411), load(tbl, 72 * VECWIDTH + tbloffset), times(v411, load(tbl, 73 * VECWIDTH + tbloffset)));
   real2 v568 = minus(v413, v412);
   real2 v572 = plus(v412, v413);
   real2 v940 = plus(v99, v259);
   real2 v936 = minus(v259, v99);
   real2 v419 = timesminusplus(reverse(v409), load(tbl, 70 * VECWIDTH + tbloffset), times(v409, load(tbl, 71 * VECWIDTH + tbloffset)));
   real2 v47 = load(in, 45 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v332 = plus(v15, v47);
   real2 v328 = minus(v47, v15);
   real2 v63 = load(in, 61 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v327 = reverse(minus(v31, v63));
   real2 v333 = plus(v31, v63);
   real2 v329 = minusplus(v327, v328);
   real2 v331 = minusplus(uminus(v327), v328);
   real2 v339 = timesminusplus(reverse(v329), load(tbl, 54 * VECWIDTH + tbloffset), times(v329, load(tbl, 55 * VECWIDTH + tbloffset)));
   real2 v487 = reverse(minus(v332, v333));
   real2 v493 = plus(v332, v333);
   real2 v7 = load(in, 5 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v172 = plus(v7, v39);
   real2 v168 = minus(v39, v7);
   real2 v55 = load(in, 53 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v173 = plus(v23, v55);
   real2 v167 = reverse(minus(v23, v55));
   real2 v488 = minus(v173, v172);
   real2 v492 = plus(v172, v173);
   real2 v491 = minusplus(uminus(v487), v488);
   real2 v489 = minusplus(v487, v488);
   real2 v499 = timesminusplus(reverse(v489), load(tbl, 86 * VECWIDTH + tbloffset), times(v489, load(tbl, 87 * VECWIDTH + tbloffset)));
   real2 v505 = timesminusplus(reverse(v491), load(tbl, 88 * VECWIDTH + tbloffset), times(v491, load(tbl, 89 * VECWIDTH + tbloffset)));
   real2 v567 = reverse(minus(v492, v493));
   real2 v573 = plus(v492, v493);
   real2 v571 = minusplus(uminus(v567), v568);
   real2 v569 = minusplus(v567, v568);
   real2 v579 = timesminusplus(reverse(v569), load(tbl, 102 * VECWIDTH + tbloffset), times(v569, load(tbl, 103 * VECWIDTH + tbloffset)));
   real2 v585 = timesminusplus(reverse(v571), load(tbl, 104 * VECWIDTH + tbloffset), times(v571, load(tbl, 105 * VECWIDTH + tbloffset)));
   real2 v739 = plus(v585, v625);
   real2 v733 = reverse(minus(v585, v625));
   real2 v707 = reverse(minus(v579, v619));
   real2 v713 = plus(v579, v619);
   real2 v648 = minus(v573, v572);
   real2 v652 = plus(v572, v573);
   real2 v673 = plus(v652, v653);
   real2 v667 = reverse(minus(v652, v653));
   real2 v651 = minusplus(uminus(v647), v648);
   real2 v649 = minusplus(v647, v648);
   real2 v659 = timesminusplus(reverse(v649), load(tbl, 118 * VECWIDTH + tbloffset), times(v649, load(tbl, 119 * VECWIDTH + tbloffset)));
   real2 v665 = timesminusplus(reverse(v651), load(tbl, 120 * VECWIDTH + tbloffset), times(v651, load(tbl, 121 * VECWIDTH + tbloffset)));
   real2 v780 = minus(v499, v419);
   real2 v784 = plus(v419, v499);
   real2 v781 = minusplus(v779, v780);
   real2 v783 = minusplus(uminus(v779), v780);
   real2 v805 = plus(v784, v785);
   real2 v799 = reverse(minus(v784, v785));
   real2 v862 = plus(v425, v505);
   real2 v858 = minus(v505, v425);
   real2 v859 = minusplus(v857, v858);
   real2 v861 = minusplus(uminus(v857), v858);
   real2 v875 = timesminusplus(reverse(v861), load(tbl, 152 * VECWIDTH + tbloffset), times(v861, load(tbl, 153 * VECWIDTH + tbloffset)));
   real2 v791 = timesminusplus(reverse(v781), load(tbl, 138 * VECWIDTH + tbloffset), times(v781, load(tbl, 139 * VECWIDTH + tbloffset)));
   real2 v797 = timesminusplus(reverse(v783), load(tbl, 140 * VECWIDTH + tbloffset), times(v783, load(tbl, 141 * VECWIDTH + tbloffset)));
   real2 v883 = plus(v862, v863);
   real2 v877 = reverse(minus(v862, v863));
   real2 v869 = timesminusplus(reverse(v859), load(tbl, 150 * VECWIDTH + tbloffset), times(v859, load(tbl, 151 * VECWIDTH + tbloffset)));
   real2 v36 = load(in, 34 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v108 = minus(v36, v4);
   real2 v112 = plus(v4, v36);
   real2 v52 = load(in, 50 << inShift);
   real2 v20 = load(in, 18 << inShift);
   real2 v113 = plus(v20, v52);
   real2 v107 = reverse(minus(v20, v52));
   real2 v428 = minus(v113, v112);
   real2 v432 = plus(v112, v113);
   real2 v12 = load(in, 10 << inShift);
   real2 v44 = load(in, 42 << inShift);
   real2 v268 = minus(v44, v12);
   real2 v272 = plus(v12, v44);
   real2 v28 = load(in, 26 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v267 = reverse(minus(v28, v60));
   real2 v273 = plus(v28, v60);
   real2 v427 = reverse(minus(v272, v273));
   real2 v433 = plus(v272, v273);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v429 = minusplus(v427, v428);
   real2 v439 = timesminusplus(reverse(v429), load(tbl, 74 * VECWIDTH + tbloffset), times(v429, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v588 = minus(v433, v432);
   real2 v592 = plus(v432, v433);
   real2 v40 = load(in, 38 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v188 = minus(v40, v8);
   real2 v192 = plus(v8, v40);
   real2 v24 = load(in, 22 << inShift);
   real2 v56 = load(in, 54 << inShift);
   real2 v187 = reverse(minus(v24, v56));
   real2 v193 = plus(v24, v56);
   real2 v512 = plus(v192, v193);
   real2 v508 = minus(v193, v192);
   real2 v32 = load(in, 30 << inShift);
   real2 v64 = load(in, 62 << inShift);
   real2 v347 = reverse(minus(v32, v64));
   real2 v353 = plus(v32, v64);
   real2 v48 = load(in, 46 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v348 = minus(v48, v16);
   real2 v352 = plus(v16, v48);
   real2 v513 = plus(v352, v353);
   real2 v507 = reverse(minus(v352, v353));
   real2 v587 = reverse(minus(v512, v513));
   real2 v593 = plus(v512, v513);
   real2 v633 = plus(v592, v593);
   real2 v627 = reverse(minus(v592, v593));
   real2 v591 = minusplus(uminus(v587), v588);
   real2 v589 = minusplus(v587, v588);
   real2 v605 = timesminusplus(reverse(v591), load(tbl, 108 * VECWIDTH + tbloffset), times(v591, load(tbl, 109 * VECWIDTH + tbloffset)));
   real2 v599 = timesminusplus(reverse(v589), load(tbl, 106 * VECWIDTH + tbloffset), times(v589, load(tbl, 107 * VECWIDTH + tbloffset)));
   real2 v46 = load(in, 44 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v312 = plus(v14, v46);
   real2 v308 = minus(v46, v14);
   real2 v62 = load(in, 60 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v313 = plus(v30, v62);
   real2 v307 = reverse(minus(v30, v62));
   real2 v467 = reverse(minus(v312, v313));
   real2 v473 = plus(v312, v313);
   real2 v22 = load(in, 20 << inShift);
   real2 v54 = load(in, 52 << inShift);
   real2 v147 = reverse(minus(v22, v54));
   real2 v153 = plus(v22, v54);
   real2 v6 = load(in, 4 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v148 = minus(v38, v6);
   real2 v152 = plus(v6, v38);
   real2 v472 = plus(v152, v153);
   real2 v468 = minus(v153, v152);
   real2 v547 = reverse(minus(v472, v473));
   real2 v553 = plus(v472, v473);
   real2 v10 = load(in, 8 << inShift);
   real2 v42 = load(in, 40 << inShift);
   real2 v232 = plus(v10, v42);
   real2 v228 = minus(v42, v10);
   real2 v58 = load(in, 56 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v233 = plus(v26, v58);
   real2 v227 = reverse(minus(v26, v58));
   real2 v393 = plus(v232, v233);
   real2 v387 = reverse(minus(v232, v233));
   real2 v2 = load(in, 0 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v18 = load(in, 16 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v73 = plus(v18, v50);
   real2 v67 = reverse(minus(v18, v50));
   real2 v388 = minus(v73, v72);
   real2 v392 = plus(v72, v73);
   real2 v548 = minus(v393, v392);
   real2 v552 = plus(v392, v393);
   real2 v628 = minus(v553, v552);
   real2 v632 = plus(v552, v553);
   real2 v672 = plus(v632, v633);
   real2 v668 = minus(v633, v632);
   scatter(out, 0, 64, plus(v672, v673));
   real2 v686 = minus(v672, v673);
   scatter(out, 32, 64, timesminusplus(v686, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v686), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v669 = minusplus(v667, v668);
   real2 v671 = minusplus(uminus(v667), v668);
   scatter(out, 48, 64, timesminusplus(reverse(v671), load(tbl, 124 * VECWIDTH + tbloffset), times(v671, load(tbl, 125 * VECWIDTH + tbloffset))));
   scatter(out, 16, 64, timesminusplus(reverse(v669), load(tbl, 122 * VECWIDTH + tbloffset), times(v669, load(tbl, 123 * VECWIDTH + tbloffset))));
   real2 v631 = minusplus(uminus(v627), v628);
   real2 v629 = minusplus(v627, v628);
   real2 v639 = timesminusplus(reverse(v629), load(tbl, 114 * VECWIDTH + tbloffset), times(v629, load(tbl, 115 * VECWIDTH + tbloffset)));
   scatter(out, 8, 64, plus(v639, v659));
   real2 v694 = minus(v639, v659);
   scatter(out, 40, 64, timesminusplus(v694, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v694), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v645 = timesminusplus(reverse(v631), load(tbl, 116 * VECWIDTH + tbloffset), times(v631, load(tbl, 117 * VECWIDTH + tbloffset)));
   scatter(out, 24, 64, plus(v645, v665));
   real2 v700 = minus(v645, v665);
   scatter(out, 56, 64, timesminusplus(v700, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v700), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v549 = minusplus(v547, v548);
   real2 v551 = minusplus(uminus(v547), v548);
   real2 v559 = timesminusplus(reverse(v549), load(tbl, 98 * VECWIDTH + tbloffset), times(v549, load(tbl, 99 * VECWIDTH + tbloffset)));
   real2 v708 = minus(v599, v559);
   real2 v712 = plus(v559, v599);
   scatter(out, 4, 64, plus(v712, v713));
   real2 v726 = minus(v712, v713);
   scatter(out, 36, 64, timesminusplus(v726, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v726), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v711 = minusplus(uminus(v707), v708);
   real2 v709 = minusplus(v707, v708);
   scatter(out, 20, 64, timesminusplus(reverse(v709), load(tbl, 126 * VECWIDTH + tbloffset), times(v709, load(tbl, 127 * VECWIDTH + tbloffset))));
   scatter(out, 52, 64, timesminusplus(reverse(v711), load(tbl, 128 * VECWIDTH + tbloffset), times(v711, load(tbl, 129 * VECWIDTH + tbloffset))));
   real2 v565 = timesminusplus(reverse(v551), load(tbl, 100 * VECWIDTH + tbloffset), times(v551, load(tbl, 101 * VECWIDTH + tbloffset)));
   real2 v738 = plus(v565, v605);
   real2 v734 = minus(v605, v565);
   scatter(out, 12, 64, plus(v738, v739));
   real2 v752 = minus(v738, v739);
   scatter(out, 44, 64, timesminusplus(v752, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v752), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v737 = minusplus(uminus(v733), v734);
   scatter(out, 60, 64, timesminusplus(reverse(v737), load(tbl, 132 * VECWIDTH + tbloffset), times(v737, load(tbl, 133 * VECWIDTH + tbloffset))));
   real2 v735 = minusplus(v733, v734);
   scatter(out, 28, 64, timesminusplus(reverse(v735), load(tbl, 130 * VECWIDTH + tbloffset), times(v735, load(tbl, 131 * VECWIDTH + tbloffset))));
   real2 v471 = minusplus(uminus(v467), v468);
   real2 v469 = minusplus(v467, v468);
   real2 v479 = timesminusplus(reverse(v469), load(tbl, 82 * VECWIDTH + tbloffset), times(v469, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v511 = minusplus(uminus(v507), v508);
   real2 v509 = minusplus(v507, v508);
   real2 v519 = timesminusplus(reverse(v509), load(tbl, 90 * VECWIDTH + tbloffset), times(v509, load(tbl, 91 * VECWIDTH + tbloffset)));
   real2 v765 = plus(v439, v519);
   real2 v759 = reverse(minus(v439, v519));
   real2 v389 = minusplus(v387, v388);
   real2 v391 = minusplus(uminus(v387), v388);
   real2 v399 = timesminusplus(reverse(v389), load(tbl, 66 * VECWIDTH + tbloffset), times(v389, load(tbl, 67 * VECWIDTH + tbloffset)));
   real2 v764 = plus(v399, v479);
   real2 v760 = minus(v479, v399);
   real2 v804 = plus(v764, v765);
   real2 v800 = minus(v765, v764);
   scatter(out, 2, 64, plus(v804, v805));
   real2 v818 = minus(v804, v805);
   scatter(out, 34, 64, timesminusplus(v818, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v818), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v803 = minusplus(uminus(v799), v800);
   scatter(out, 50, 64, timesminusplus(reverse(v803), load(tbl, 144 * VECWIDTH + tbloffset), times(v803, load(tbl, 145 * VECWIDTH + tbloffset))));
   real2 v801 = minusplus(v799, v800);
   scatter(out, 18, 64, timesminusplus(reverse(v801), load(tbl, 142 * VECWIDTH + tbloffset), times(v801, load(tbl, 143 * VECWIDTH + tbloffset))));
   real2 v763 = minusplus(uminus(v759), v760);
   real2 v761 = minusplus(v759, v760);
   real2 v777 = timesminusplus(reverse(v763), load(tbl, 136 * VECWIDTH + tbloffset), times(v763, load(tbl, 137 * VECWIDTH + tbloffset)));
   scatter(out, 26, 64, plus(v777, v797));
   real2 v830 = minus(v777, v797);
   scatter(out, 58, 64, timesminusplus(v830, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v830), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v771 = timesminusplus(reverse(v761), load(tbl, 134 * VECWIDTH + tbloffset), times(v761, load(tbl, 135 * VECWIDTH + tbloffset)));
   scatter(out, 10, 64, plus(v771, v791));
   real2 v824 = minus(v771, v791);
   scatter(out, 42, 64, timesminusplus(v824, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v824), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v445 = timesminusplus(reverse(v431), load(tbl, 76 * VECWIDTH + tbloffset), times(v431, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v525 = timesminusplus(reverse(v511), load(tbl, 92 * VECWIDTH + tbloffset), times(v511, load(tbl, 93 * VECWIDTH + tbloffset)));
   real2 v837 = reverse(minus(v445, v525));
   real2 v843 = plus(v445, v525);
   real2 v485 = timesminusplus(reverse(v471), load(tbl, 84 * VECWIDTH + tbloffset), times(v471, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v405 = timesminusplus(reverse(v391), load(tbl, 68 * VECWIDTH + tbloffset), times(v391, load(tbl, 69 * VECWIDTH + tbloffset)));
   real2 v838 = minus(v485, v405);
   real2 v842 = plus(v405, v485);
   real2 v878 = minus(v843, v842);
   real2 v882 = plus(v842, v843);
   scatter(out, 6, 64, plus(v882, v883));
   real2 v896 = minus(v882, v883);
   scatter(out, 38, 64, timesminusplus(v896, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v896), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v881 = minusplus(uminus(v877), v878);
   scatter(out, 54, 64, timesminusplus(reverse(v881), load(tbl, 156 * VECWIDTH + tbloffset), times(v881, load(tbl, 157 * VECWIDTH + tbloffset))));
   real2 v879 = minusplus(v877, v878);
   scatter(out, 22, 64, timesminusplus(reverse(v879), load(tbl, 154 * VECWIDTH + tbloffset), times(v879, load(tbl, 155 * VECWIDTH + tbloffset))));
   real2 v841 = minusplus(uminus(v837), v838);
   real2 v839 = minusplus(v837, v838);
   real2 v855 = timesminusplus(reverse(v841), load(tbl, 148 * VECWIDTH + tbloffset), times(v841, load(tbl, 149 * VECWIDTH + tbloffset)));
   scatter(out, 30, 64, plus(v855, v875));
   real2 v908 = minus(v855, v875);
   scatter(out, 62, 64, timesminusplus(v908, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v908), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v849 = timesminusplus(reverse(v839), load(tbl, 146 * VECWIDTH + tbloffset), times(v839, load(tbl, 147 * VECWIDTH + tbloffset)));
   scatter(out, 14, 64, plus(v849, v869));
   real2 v902 = minus(v849, v869);
   scatter(out, 46, 64, timesminusplus(v902, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v902), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v149 = minusplus(v147, v148);
   real2 v311 = minusplus(uminus(v307), v308);
   real2 v309 = minusplus(v307, v308);
   real2 v109 = minusplus(v107, v108);
   real2 v111 = minusplus(uminus(v107), v108);
   real2 v119 = timesminusplus(reverse(v109), load(tbl, 10 * VECWIDTH + tbloffset), times(v109, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v269 = minusplus(v267, v268);
   real2 v271 = minusplus(uminus(v267), v268);
   real2 v279 = timesminusplus(reverse(v269), load(tbl, 42 * VECWIDTH + tbloffset), times(v269, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v960 = plus(v119, v279);
   real2 v956 = minus(v279, v119);
   real2 v169 = minusplus(v167, v168);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v159 = timesminusplus(reverse(v149), load(tbl, 18 * VECWIDTH + tbloffset), times(v149, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v319 = timesminusplus(reverse(v309), load(tbl, 50 * VECWIDTH + tbloffset), times(v309, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v921 = plus(v159, v319);
   real2 v915 = reverse(minus(v159, v319));
   real2 v351 = minusplus(uminus(v347), v348);
   real2 v349 = minusplus(v347, v348);
   real2 v359 = timesminusplus(reverse(v349), load(tbl, 58 * VECWIDTH + tbloffset), times(v349, load(tbl, 59 * VECWIDTH + tbloffset)));
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v189 = minusplus(v187, v188);
   real2 v199 = timesminusplus(reverse(v189), load(tbl, 26 * VECWIDTH + tbloffset), times(v189, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v961 = plus(v199, v359);
   real2 v955 = reverse(minus(v199, v359));
   real2 v995 = reverse(minus(v960, v961));
   real2 v1001 = plus(v960, v961);
   real2 v179 = timesminusplus(reverse(v169), load(tbl, 22 * VECWIDTH + tbloffset), times(v169, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v941 = plus(v179, v339);
   real2 v935 = reverse(minus(v179, v339));
   real2 v1016 = minus(v941, v940);
   real2 v1020 = plus(v940, v941);
   real2 v71 = minusplus(uminus(v67), v68);
   real2 v69 = minusplus(v67, v68);
   real2 v79 = timesminusplus(reverse(v69), load(tbl, 2 * VECWIDTH + tbloffset), times(v69, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v1041 = plus(v1020, v1021);
   real2 v1035 = reverse(minus(v1020, v1021));
   real2 v229 = minusplus(v227, v228);
   real2 v231 = minusplus(uminus(v227), v228);
   real2 v239 = timesminusplus(reverse(v229), load(tbl, 34 * VECWIDTH + tbloffset), times(v229, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v920 = plus(v79, v239);
   real2 v916 = minus(v239, v79);
   real2 v996 = minus(v921, v920);
   real2 v1000 = plus(v920, v921);
   real2 v1040 = plus(v1000, v1001);
   real2 v1036 = minus(v1001, v1000);
   scatter(out, 1, 64, plus(v1040, v1041));
   real2 v1054 = minus(v1040, v1041);
   scatter(out, 33, 64, timesminusplus(v1054, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1054), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1037 = minusplus(v1035, v1036);
   real2 v1039 = minusplus(uminus(v1035), v1036);
   scatter(out, 49, 64, timesminusplus(reverse(v1039), load(tbl, 184 * VECWIDTH + tbloffset), times(v1039, load(tbl, 185 * VECWIDTH + tbloffset))));
   scatter(out, 17, 64, timesminusplus(reverse(v1037), load(tbl, 182 * VECWIDTH + tbloffset), times(v1037, load(tbl, 183 * VECWIDTH + tbloffset))));
   real2 v1017 = minusplus(v1015, v1016);
   real2 v1019 = minusplus(uminus(v1015), v1016);
   real2 v1033 = timesminusplus(reverse(v1019), load(tbl, 180 * VECWIDTH + tbloffset), times(v1019, load(tbl, 181 * VECWIDTH + tbloffset)));
   real2 v997 = minusplus(v995, v996);
   real2 v999 = minusplus(uminus(v995), v996);
   real2 v1013 = timesminusplus(reverse(v999), load(tbl, 176 * VECWIDTH + tbloffset), times(v999, load(tbl, 177 * VECWIDTH + tbloffset)));
   scatter(out, 25, 64, plus(v1013, v1033));
   real2 v1066 = minus(v1013, v1033);
   scatter(out, 57, 64, timesminusplus(v1066, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1066), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1027 = timesminusplus(reverse(v1017), load(tbl, 178 * VECWIDTH + tbloffset), times(v1017, load(tbl, 179 * VECWIDTH + tbloffset)));
   real2 v1007 = timesminusplus(reverse(v997), load(tbl, 174 * VECWIDTH + tbloffset), times(v997, load(tbl, 175 * VECWIDTH + tbloffset)));
   scatter(out, 9, 64, plus(v1007, v1027));
   real2 v1060 = minus(v1007, v1027);
   scatter(out, 41, 64, timesminusplus(v1060, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1060), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v937 = minusplus(v935, v936);
   real2 v939 = minusplus(uminus(v935), v936);
   real2 v959 = minusplus(uminus(v955), v956);
   real2 v957 = minusplus(v955, v956);
   real2 v967 = timesminusplus(reverse(v957), load(tbl, 166 * VECWIDTH + tbloffset), times(v957, load(tbl, 167 * VECWIDTH + tbloffset)));
   real2 v947 = timesminusplus(reverse(v937), load(tbl, 162 * VECWIDTH + tbloffset), times(v937, load(tbl, 163 * VECWIDTH + tbloffset)));
   real2 v919 = minusplus(uminus(v915), v916);
   real2 v917 = minusplus(v915, v916);
   real2 v1079 = plus(v947, v987);
   real2 v1073 = reverse(minus(v947, v987));
   real2 v927 = timesminusplus(reverse(v917), load(tbl, 158 * VECWIDTH + tbloffset), times(v917, load(tbl, 159 * VECWIDTH + tbloffset)));
   real2 v1074 = minus(v967, v927);
   real2 v1078 = plus(v927, v967);
   scatter(out, 5, 64, plus(v1078, v1079));
   real2 v1092 = minus(v1078, v1079);
   scatter(out, 37, 64, timesminusplus(v1092, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1092), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1075 = minusplus(v1073, v1074);
   scatter(out, 21, 64, timesminusplus(reverse(v1075), load(tbl, 186 * VECWIDTH + tbloffset), times(v1075, load(tbl, 187 * VECWIDTH + tbloffset))));
   real2 v1077 = minusplus(uminus(v1073), v1074);
   scatter(out, 53, 64, timesminusplus(reverse(v1077), load(tbl, 188 * VECWIDTH + tbloffset), times(v1077, load(tbl, 189 * VECWIDTH + tbloffset))));
   real2 v953 = timesminusplus(reverse(v939), load(tbl, 164 * VECWIDTH + tbloffset), times(v939, load(tbl, 165 * VECWIDTH + tbloffset)));
   real2 v1099 = reverse(minus(v953, v993));
   real2 v1105 = plus(v953, v993);
   real2 v973 = timesminusplus(reverse(v959), load(tbl, 168 * VECWIDTH + tbloffset), times(v959, load(tbl, 169 * VECWIDTH + tbloffset)));
   real2 v933 = timesminusplus(reverse(v919), load(tbl, 160 * VECWIDTH + tbloffset), times(v919, load(tbl, 161 * VECWIDTH + tbloffset)));
   real2 v1104 = plus(v933, v973);
   real2 v1100 = minus(v973, v933);
   scatter(out, 13, 64, plus(v1104, v1105));
   real2 v1118 = minus(v1104, v1105);
   scatter(out, 45, 64, timesminusplus(v1118, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1118), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1101 = minusplus(v1099, v1100);
   scatter(out, 29, 64, timesminusplus(reverse(v1101), load(tbl, 190 * VECWIDTH + tbloffset), times(v1101, load(tbl, 191 * VECWIDTH + tbloffset))));
   real2 v1103 = minusplus(uminus(v1099), v1100);
   scatter(out, 61, 64, timesminusplus(reverse(v1103), load(tbl, 192 * VECWIDTH + tbloffset), times(v1103, load(tbl, 193 * VECWIDTH + tbloffset))));
   real2 v345 = timesminusplus(reverse(v331), load(tbl, 56 * VECWIDTH + tbloffset), times(v331, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v325 = timesminusplus(reverse(v311), load(tbl, 52 * VECWIDTH + tbloffset), times(v311, load(tbl, 53 * VECWIDTH + tbloffset)));
   real2 v265 = timesminusplus(reverse(v251), load(tbl, 40 * VECWIDTH + tbloffset), times(v251, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v185 = timesminusplus(reverse(v171), load(tbl, 24 * VECWIDTH + tbloffset), times(v171, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v165 = timesminusplus(reverse(v151), load(tbl, 20 * VECWIDTH + tbloffset), times(v151, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v1131 = plus(v165, v325);
   real2 v1125 = reverse(minus(v165, v325));
   real2 v1151 = plus(v185, v345);
   real2 v1145 = reverse(minus(v185, v345));
   real2 v105 = timesminusplus(reverse(v91), load(tbl, 8 * VECWIDTH + tbloffset), times(v91, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v1150 = plus(v105, v265);
   real2 v1146 = minus(v265, v105);
   real2 v1226 = minus(v1151, v1150);
   real2 v1230 = plus(v1150, v1151);
   real2 v1231 = plus(v1190, v1191);
   real2 v1225 = reverse(minus(v1190, v1191));
   real2 v1245 = reverse(minus(v1230, v1231));
   real2 v1251 = plus(v1230, v1231);
   real2 v365 = timesminusplus(reverse(v351), load(tbl, 60 * VECWIDTH + tbloffset), times(v351, load(tbl, 61 * VECWIDTH + tbloffset)));
   real2 v285 = timesminusplus(reverse(v271), load(tbl, 44 * VECWIDTH + tbloffset), times(v271, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v205 = timesminusplus(reverse(v191), load(tbl, 28 * VECWIDTH + tbloffset), times(v191, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v1171 = plus(v205, v365);
   real2 v1165 = reverse(minus(v205, v365));
   real2 v125 = timesminusplus(reverse(v111), load(tbl, 12 * VECWIDTH + tbloffset), times(v111, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v85 = timesminusplus(reverse(v71), load(tbl, 4 * VECWIDTH + tbloffset), times(v71, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v245 = timesminusplus(reverse(v231), load(tbl, 36 * VECWIDTH + tbloffset), times(v231, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v1126 = minus(v245, v85);
   real2 v1130 = plus(v85, v245);
   real2 v1210 = plus(v1130, v1131);
   real2 v1206 = minus(v1131, v1130);
   real2 v1166 = minus(v285, v125);
   real2 v1170 = plus(v125, v285);
   real2 v1211 = plus(v1170, v1171);
   real2 v1205 = reverse(minus(v1170, v1171));
   real2 v1246 = minus(v1211, v1210);
   real2 v1250 = plus(v1210, v1211);
   scatter(out, 3, 64, plus(v1250, v1251));
   real2 v1264 = minus(v1250, v1251);
   scatter(out, 35, 64, timesminusplus(v1264, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1264), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1247 = minusplus(v1245, v1246);
   real2 v1249 = minusplus(uminus(v1245), v1246);
   scatter(out, 19, 64, timesminusplus(reverse(v1247), load(tbl, 218 * VECWIDTH + tbloffset), times(v1247, load(tbl, 219 * VECWIDTH + tbloffset))));
   scatter(out, 51, 64, timesminusplus(reverse(v1249), load(tbl, 220 * VECWIDTH + tbloffset), times(v1249, load(tbl, 221 * VECWIDTH + tbloffset))));
   real2 v1229 = minusplus(uminus(v1225), v1226);
   real2 v1227 = minusplus(v1225, v1226);
   real2 v1207 = minusplus(v1205, v1206);
   real2 v1209 = minusplus(uminus(v1205), v1206);
   real2 v1237 = timesminusplus(reverse(v1227), load(tbl, 214 * VECWIDTH + tbloffset), times(v1227, load(tbl, 215 * VECWIDTH + tbloffset)));
   real2 v1217 = timesminusplus(reverse(v1207), load(tbl, 210 * VECWIDTH + tbloffset), times(v1207, load(tbl, 211 * VECWIDTH + tbloffset)));
   scatter(out, 11, 64, plus(v1217, v1237));
   real2 v1270 = minus(v1217, v1237);
   scatter(out, 43, 64, timesminusplus(v1270, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1270), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1223 = timesminusplus(reverse(v1209), load(tbl, 212 * VECWIDTH + tbloffset), times(v1209, load(tbl, 213 * VECWIDTH + tbloffset)));
   real2 v1243 = timesminusplus(reverse(v1229), load(tbl, 216 * VECWIDTH + tbloffset), times(v1229, load(tbl, 217 * VECWIDTH + tbloffset)));
   scatter(out, 27, 64, plus(v1223, v1243));
   real2 v1276 = minus(v1223, v1243);
   scatter(out, 59, 64, timesminusplus(v1276, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1276), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1189 = minusplus(uminus(v1185), v1186);
   real2 v1187 = minusplus(v1185, v1186);
   real2 v1129 = minusplus(uminus(v1125), v1126);
   real2 v1127 = minusplus(v1125, v1126);
   real2 v1147 = minusplus(v1145, v1146);
   real2 v1149 = minusplus(uminus(v1145), v1146);
   real2 v1167 = minusplus(v1165, v1166);
   real2 v1169 = minusplus(uminus(v1165), v1166);
   real2 v1143 = timesminusplus(reverse(v1129), load(tbl, 196 * VECWIDTH + tbloffset), times(v1129, load(tbl, 197 * VECWIDTH + tbloffset)));
   real2 v1163 = timesminusplus(reverse(v1149), load(tbl, 200 * VECWIDTH + tbloffset), times(v1149, load(tbl, 201 * VECWIDTH + tbloffset)));
   real2 v1203 = timesminusplus(reverse(v1189), load(tbl, 208 * VECWIDTH + tbloffset), times(v1189, load(tbl, 209 * VECWIDTH + tbloffset)));
   real2 v1315 = plus(v1163, v1203);
   real2 v1309 = reverse(minus(v1163, v1203));
   real2 v1183 = timesminusplus(reverse(v1169), load(tbl, 204 * VECWIDTH + tbloffset), times(v1169, load(tbl, 205 * VECWIDTH + tbloffset)));
   real2 v1314 = plus(v1143, v1183);
   real2 v1310 = minus(v1183, v1143);
   scatter(out, 15, 64, plus(v1314, v1315));
   real2 v1328 = minus(v1314, v1315);
   scatter(out, 47, 64, timesminusplus(v1328, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1328), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1311 = minusplus(v1309, v1310);
   scatter(out, 31, 64, timesminusplus(reverse(v1311), load(tbl, 226 * VECWIDTH + tbloffset), times(v1311, load(tbl, 227 * VECWIDTH + tbloffset))));
   real2 v1313 = minusplus(uminus(v1309), v1310);
   scatter(out, 63, 64, timesminusplus(reverse(v1313), load(tbl, 228 * VECWIDTH + tbloffset), times(v1313, load(tbl, 229 * VECWIDTH + tbloffset))));
   real2 v1177 = timesminusplus(reverse(v1167), load(tbl, 202 * VECWIDTH + tbloffset), times(v1167, load(tbl, 203 * VECWIDTH + tbloffset)));
   real2 v1137 = timesminusplus(reverse(v1127), load(tbl, 194 * VECWIDTH + tbloffset), times(v1127, load(tbl, 195 * VECWIDTH + tbloffset)));
   real2 v1197 = timesminusplus(reverse(v1187), load(tbl, 206 * VECWIDTH + tbloffset), times(v1187, load(tbl, 207 * VECWIDTH + tbloffset)));
   real2 v1157 = timesminusplus(reverse(v1147), load(tbl, 198 * VECWIDTH + tbloffset), times(v1147, load(tbl, 199 * VECWIDTH + tbloffset)));
   real2 v1283 = reverse(minus(v1157, v1197));
   real2 v1289 = plus(v1157, v1197);
   real2 v1288 = plus(v1137, v1177);
   real2 v1284 = minus(v1177, v1137);
   scatter(out, 7, 64, plus(v1288, v1289));
   real2 v1302 = minus(v1288, v1289);
   scatter(out, 39, 64, timesminusplus(v1302, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1302), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1285 = minusplus(v1283, v1284);
   real2 v1287 = minusplus(uminus(v1283), v1284);
   scatter(out, 55, 64, timesminusplus(reverse(v1287), load(tbl, 224 * VECWIDTH + tbloffset), times(v1287, load(tbl, 225 * VECWIDTH + tbloffset))));
   scatter(out, 23, 64, timesminusplus(reverse(v1285), load(tbl, 222 * VECWIDTH + tbloffset), times(v1285, load(tbl, 223 * VECWIDTH + tbloffset))));
// Pres : 17339
  }
}

ALIGNED(8192) void tbut64b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

// Pres : 30254
   real2 v37 = load(in, 35 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v132 = plus(v5, v37);
   real2 v128 = minus(v37, v5);
   real2 v21 = load(in, 19 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v133 = plus(v21, v53);
   real2 v127 = reverse(minus(v53, v21));
   real2 v131 = minusplus(uminus(v127), v128);
   real2 v129 = minusplus(v127, v128);
   real2 v139 = timesminusplus(reverse(v129), load(tbl, 14 * VECWIDTH + tbloffset), times(v129, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v145 = timesminusplus(reverse(v131), load(tbl, 16 * VECWIDTH + tbloffset), times(v131, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v448 = minus(v133, v132);
   real2 v452 = plus(v132, v133);
   real2 v45 = load(in, 43 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v292 = plus(v13, v45);
   real2 v288 = minus(v45, v13);
   real2 v29 = load(in, 27 << inShift);
   real2 v61 = load(in, 59 << inShift);
   real2 v293 = plus(v29, v61);
   real2 v287 = reverse(minus(v61, v29));
   real2 v291 = minusplus(uminus(v287), v288);
   real2 v289 = minusplus(v287, v288);
   real2 v299 = timesminusplus(reverse(v289), load(tbl, 46 * VECWIDTH + tbloffset), times(v289, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v453 = plus(v292, v293);
   real2 v447 = reverse(minus(v293, v292));
   real2 v608 = minus(v453, v452);
   real2 v612 = plus(v452, v453);
   real2 v980 = plus(v139, v299);
   real2 v976 = minus(v299, v139);
   real2 v449 = minusplus(v447, v448);
   real2 v451 = minusplus(uminus(v447), v448);
   real2 v465 = timesminusplus(reverse(v451), load(tbl, 80 * VECWIDTH + tbloffset), times(v451, load(tbl, 81 * VECWIDTH + tbloffset)));
   real2 v305 = timesminusplus(reverse(v291), load(tbl, 48 * VECWIDTH + tbloffset), times(v291, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v1186 = minus(v305, v145);
   real2 v1190 = plus(v145, v305);
   real2 v459 = timesminusplus(reverse(v449), load(tbl, 78 * VECWIDTH + tbloffset), times(v449, load(tbl, 79 * VECWIDTH + tbloffset)));
   real2 v25 = load(in, 23 << inShift);
   real2 v57 = load(in, 55 << inShift);
   real2 v207 = reverse(minus(v57, v25));
   real2 v213 = plus(v25, v57);
   real2 v9 = load(in, 7 << inShift);
   real2 v41 = load(in, 39 << inShift);
   real2 v212 = plus(v9, v41);
   real2 v208 = minus(v41, v9);
   real2 v528 = minus(v213, v212);
   real2 v532 = plus(v212, v213);
   real2 v209 = minusplus(v207, v208);
   real2 v211 = minusplus(uminus(v207), v208);
   real2 v225 = timesminusplus(reverse(v211), load(tbl, 32 * VECWIDTH + tbloffset), times(v211, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v219 = timesminusplus(reverse(v209), load(tbl, 30 * VECWIDTH + tbloffset), times(v209, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v17 = load(in, 15 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v368 = minus(v49, v17);
   real2 v372 = plus(v17, v49);
   real2 v33 = load(in, 31 << inShift);
   real2 v65 = load(in, 63 << inShift);
   real2 v367 = reverse(minus(v65, v33));
   real2 v373 = plus(v33, v65);
   real2 v369 = minusplus(v367, v368);
   real2 v371 = minusplus(uminus(v367), v368);
   real2 v533 = plus(v372, v373);
   real2 v527 = reverse(minus(v373, v372));
   real2 v607 = reverse(minus(v533, v532));
   real2 v613 = plus(v532, v533);
   real2 v529 = minusplus(v527, v528);
   real2 v531 = minusplus(uminus(v527), v528);
   real2 v545 = timesminusplus(reverse(v531), load(tbl, 96 * VECWIDTH + tbloffset), times(v531, load(tbl, 97 * VECWIDTH + tbloffset)));
   real2 v653 = plus(v612, v613);
   real2 v647 = reverse(minus(v613, v612));
   real2 v609 = minusplus(v607, v608);
   real2 v611 = minusplus(uminus(v607), v608);
   real2 v863 = plus(v465, v545);
   real2 v857 = reverse(minus(v545, v465));
   real2 v539 = timesminusplus(reverse(v529), load(tbl, 94 * VECWIDTH + tbloffset), times(v529, load(tbl, 95 * VECWIDTH + tbloffset)));
   real2 v385 = timesminusplus(reverse(v371), load(tbl, 64 * VECWIDTH + tbloffset), times(v371, load(tbl, 65 * VECWIDTH + tbloffset)));
   real2 v619 = timesminusplus(reverse(v609), load(tbl, 110 * VECWIDTH + tbloffset), times(v609, load(tbl, 111 * VECWIDTH + tbloffset)));
   real2 v1191 = plus(v225, v385);
   real2 v1185 = reverse(minus(v385, v225));
   real2 v779 = reverse(minus(v539, v459));
   real2 v785 = plus(v459, v539);
   real2 v625 = timesminusplus(reverse(v611), load(tbl, 112 * VECWIDTH + tbloffset), times(v611, load(tbl, 113 * VECWIDTH + tbloffset)));
   real2 v379 = timesminusplus(reverse(v369), load(tbl, 62 * VECWIDTH + tbloffset), times(v369, load(tbl, 63 * VECWIDTH + tbloffset)));
   real2 v975 = reverse(minus(v379, v219));
   real2 v981 = plus(v219, v379);
   real2 v977 = minusplus(v975, v976);
   real2 v979 = minusplus(uminus(v975), v976);
   real2 v987 = timesminusplus(reverse(v977), load(tbl, 170 * VECWIDTH + tbloffset), times(v977, load(tbl, 171 * VECWIDTH + tbloffset)));
   real2 v993 = timesminusplus(reverse(v979), load(tbl, 172 * VECWIDTH + tbloffset), times(v979, load(tbl, 173 * VECWIDTH + tbloffset)));
   real2 v1015 = reverse(minus(v981, v980));
   real2 v1021 = plus(v980, v981);
   real2 v11 = load(in, 9 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v248 = minus(v43, v11);
   real2 v252 = plus(v11, v43);
   real2 v59 = load(in, 57 << inShift);
   real2 v27 = load(in, 25 << inShift);
   real2 v253 = plus(v27, v59);
   real2 v247 = reverse(minus(v59, v27));
   real2 v413 = plus(v252, v253);
   real2 v407 = reverse(minus(v253, v252));
   real2 v249 = minusplus(v247, v248);
   real2 v251 = minusplus(uminus(v247), v248);
   real2 v259 = timesminusplus(reverse(v249), load(tbl, 38 * VECWIDTH + tbloffset), times(v249, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v35 = load(in, 33 << inShift);
   real2 v3 = load(in, 1 << inShift);
   real2 v92 = plus(v3, v35);
   real2 v88 = minus(v35, v3);
   real2 v51 = load(in, 49 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v87 = reverse(minus(v51, v19));
   real2 v93 = plus(v19, v51);
   real2 v412 = plus(v92, v93);
   real2 v408 = minus(v93, v92);
   real2 v411 = minusplus(uminus(v407), v408);
   real2 v409 = minusplus(v407, v408);
   real2 v91 = minusplus(uminus(v87), v88);
   real2 v89 = minusplus(v87, v88);
   real2 v99 = timesminusplus(reverse(v89), load(tbl, 6 * VECWIDTH + tbloffset), times(v89, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v425 = timesminusplus(reverse(v411), load(tbl, 72 * VECWIDTH + tbloffset), times(v411, load(tbl, 73 * VECWIDTH + tbloffset)));
   real2 v568 = minus(v413, v412);
   real2 v572 = plus(v412, v413);
   real2 v940 = plus(v99, v259);
   real2 v936 = minus(v259, v99);
   real2 v419 = timesminusplus(reverse(v409), load(tbl, 70 * VECWIDTH + tbloffset), times(v409, load(tbl, 71 * VECWIDTH + tbloffset)));
   real2 v47 = load(in, 45 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v332 = plus(v15, v47);
   real2 v328 = minus(v47, v15);
   real2 v63 = load(in, 61 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v327 = reverse(minus(v63, v31));
   real2 v333 = plus(v31, v63);
   real2 v329 = minusplus(v327, v328);
   real2 v331 = minusplus(uminus(v327), v328);
   real2 v339 = timesminusplus(reverse(v329), load(tbl, 54 * VECWIDTH + tbloffset), times(v329, load(tbl, 55 * VECWIDTH + tbloffset)));
   real2 v487 = reverse(minus(v333, v332));
   real2 v493 = plus(v332, v333);
   real2 v7 = load(in, 5 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v172 = plus(v7, v39);
   real2 v168 = minus(v39, v7);
   real2 v55 = load(in, 53 << inShift);
   real2 v23 = load(in, 21 << inShift);
   real2 v173 = plus(v23, v55);
   real2 v167 = reverse(minus(v55, v23));
   real2 v488 = minus(v173, v172);
   real2 v492 = plus(v172, v173);
   real2 v491 = minusplus(uminus(v487), v488);
   real2 v489 = minusplus(v487, v488);
   real2 v499 = timesminusplus(reverse(v489), load(tbl, 86 * VECWIDTH + tbloffset), times(v489, load(tbl, 87 * VECWIDTH + tbloffset)));
   real2 v505 = timesminusplus(reverse(v491), load(tbl, 88 * VECWIDTH + tbloffset), times(v491, load(tbl, 89 * VECWIDTH + tbloffset)));
   real2 v567 = reverse(minus(v493, v492));
   real2 v573 = plus(v492, v493);
   real2 v571 = minusplus(uminus(v567), v568);
   real2 v569 = minusplus(v567, v568);
   real2 v579 = timesminusplus(reverse(v569), load(tbl, 102 * VECWIDTH + tbloffset), times(v569, load(tbl, 103 * VECWIDTH + tbloffset)));
   real2 v585 = timesminusplus(reverse(v571), load(tbl, 104 * VECWIDTH + tbloffset), times(v571, load(tbl, 105 * VECWIDTH + tbloffset)));
   real2 v739 = plus(v585, v625);
   real2 v733 = reverse(minus(v625, v585));
   real2 v707 = reverse(minus(v619, v579));
   real2 v713 = plus(v579, v619);
   real2 v648 = minus(v573, v572);
   real2 v652 = plus(v572, v573);
   real2 v673 = plus(v652, v653);
   real2 v667 = reverse(minus(v653, v652));
   real2 v651 = minusplus(uminus(v647), v648);
   real2 v649 = minusplus(v647, v648);
   real2 v659 = timesminusplus(reverse(v649), load(tbl, 118 * VECWIDTH + tbloffset), times(v649, load(tbl, 119 * VECWIDTH + tbloffset)));
   real2 v665 = timesminusplus(reverse(v651), load(tbl, 120 * VECWIDTH + tbloffset), times(v651, load(tbl, 121 * VECWIDTH + tbloffset)));
   real2 v780 = minus(v499, v419);
   real2 v784 = plus(v419, v499);
   real2 v781 = minusplus(v779, v780);
   real2 v783 = minusplus(uminus(v779), v780);
   real2 v805 = plus(v784, v785);
   real2 v799 = reverse(minus(v785, v784));
   real2 v862 = plus(v425, v505);
   real2 v858 = minus(v505, v425);
   real2 v859 = minusplus(v857, v858);
   real2 v861 = minusplus(uminus(v857), v858);
   real2 v875 = timesminusplus(reverse(v861), load(tbl, 152 * VECWIDTH + tbloffset), times(v861, load(tbl, 153 * VECWIDTH + tbloffset)));
   real2 v791 = timesminusplus(reverse(v781), load(tbl, 138 * VECWIDTH + tbloffset), times(v781, load(tbl, 139 * VECWIDTH + tbloffset)));
   real2 v797 = timesminusplus(reverse(v783), load(tbl, 140 * VECWIDTH + tbloffset), times(v783, load(tbl, 141 * VECWIDTH + tbloffset)));
   real2 v883 = plus(v862, v863);
   real2 v877 = reverse(minus(v863, v862));
   real2 v869 = timesminusplus(reverse(v859), load(tbl, 150 * VECWIDTH + tbloffset), times(v859, load(tbl, 151 * VECWIDTH + tbloffset)));
   real2 v36 = load(in, 34 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v108 = minus(v36, v4);
   real2 v112 = plus(v4, v36);
   real2 v52 = load(in, 50 << inShift);
   real2 v20 = load(in, 18 << inShift);
   real2 v113 = plus(v20, v52);
   real2 v107 = reverse(minus(v52, v20));
   real2 v428 = minus(v113, v112);
   real2 v432 = plus(v112, v113);
   real2 v12 = load(in, 10 << inShift);
   real2 v44 = load(in, 42 << inShift);
   real2 v268 = minus(v44, v12);
   real2 v272 = plus(v12, v44);
   real2 v28 = load(in, 26 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v267 = reverse(minus(v60, v28));
   real2 v273 = plus(v28, v60);
   real2 v427 = reverse(minus(v273, v272));
   real2 v433 = plus(v272, v273);
   real2 v431 = minusplus(uminus(v427), v428);
   real2 v429 = minusplus(v427, v428);
   real2 v439 = timesminusplus(reverse(v429), load(tbl, 74 * VECWIDTH + tbloffset), times(v429, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v588 = minus(v433, v432);
   real2 v592 = plus(v432, v433);
   real2 v40 = load(in, 38 << inShift);
   real2 v8 = load(in, 6 << inShift);
   real2 v188 = minus(v40, v8);
   real2 v192 = plus(v8, v40);
   real2 v24 = load(in, 22 << inShift);
   real2 v56 = load(in, 54 << inShift);
   real2 v187 = reverse(minus(v56, v24));
   real2 v193 = plus(v24, v56);
   real2 v512 = plus(v192, v193);
   real2 v508 = minus(v193, v192);
   real2 v32 = load(in, 30 << inShift);
   real2 v64 = load(in, 62 << inShift);
   real2 v347 = reverse(minus(v64, v32));
   real2 v353 = plus(v32, v64);
   real2 v48 = load(in, 46 << inShift);
   real2 v16 = load(in, 14 << inShift);
   real2 v348 = minus(v48, v16);
   real2 v352 = plus(v16, v48);
   real2 v513 = plus(v352, v353);
   real2 v507 = reverse(minus(v353, v352));
   real2 v587 = reverse(minus(v513, v512));
   real2 v593 = plus(v512, v513);
   real2 v633 = plus(v592, v593);
   real2 v627 = reverse(minus(v593, v592));
   real2 v591 = minusplus(uminus(v587), v588);
   real2 v589 = minusplus(v587, v588);
   real2 v605 = timesminusplus(reverse(v591), load(tbl, 108 * VECWIDTH + tbloffset), times(v591, load(tbl, 109 * VECWIDTH + tbloffset)));
   real2 v599 = timesminusplus(reverse(v589), load(tbl, 106 * VECWIDTH + tbloffset), times(v589, load(tbl, 107 * VECWIDTH + tbloffset)));
   real2 v46 = load(in, 44 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v312 = plus(v14, v46);
   real2 v308 = minus(v46, v14);
   real2 v62 = load(in, 60 << inShift);
   real2 v30 = load(in, 28 << inShift);
   real2 v313 = plus(v30, v62);
   real2 v307 = reverse(minus(v62, v30));
   real2 v467 = reverse(minus(v313, v312));
   real2 v473 = plus(v312, v313);
   real2 v22 = load(in, 20 << inShift);
   real2 v54 = load(in, 52 << inShift);
   real2 v147 = reverse(minus(v54, v22));
   real2 v153 = plus(v22, v54);
   real2 v6 = load(in, 4 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v148 = minus(v38, v6);
   real2 v152 = plus(v6, v38);
   real2 v472 = plus(v152, v153);
   real2 v468 = minus(v153, v152);
   real2 v547 = reverse(minus(v473, v472));
   real2 v553 = plus(v472, v473);
   real2 v10 = load(in, 8 << inShift);
   real2 v42 = load(in, 40 << inShift);
   real2 v232 = plus(v10, v42);
   real2 v228 = minus(v42, v10);
   real2 v58 = load(in, 56 << inShift);
   real2 v26 = load(in, 24 << inShift);
   real2 v233 = plus(v26, v58);
   real2 v227 = reverse(minus(v58, v26));
   real2 v393 = plus(v232, v233);
   real2 v387 = reverse(minus(v233, v232));
   real2 v2 = load(in, 0 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v72 = plus(v2, v34);
   real2 v68 = minus(v34, v2);
   real2 v18 = load(in, 16 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v73 = plus(v18, v50);
   real2 v67 = reverse(minus(v50, v18));
   real2 v388 = minus(v73, v72);
   real2 v392 = plus(v72, v73);
   real2 v548 = minus(v393, v392);
   real2 v552 = plus(v392, v393);
   real2 v628 = minus(v553, v552);
   real2 v632 = plus(v552, v553);
   real2 v672 = plus(v632, v633);
   real2 v668 = minus(v633, v632);
   scatter(out, 0, 64, plus(v672, v673));
   real2 v686 = minus(v672, v673);
   scatter(out, 32, 64, timesminusplus(v686, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v686), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v669 = minusplus(v667, v668);
   real2 v671 = minusplus(uminus(v667), v668);
   scatter(out, 48, 64, timesminusplus(reverse(v671), load(tbl, 124 * VECWIDTH + tbloffset), times(v671, load(tbl, 125 * VECWIDTH + tbloffset))));
   scatter(out, 16, 64, timesminusplus(reverse(v669), load(tbl, 122 * VECWIDTH + tbloffset), times(v669, load(tbl, 123 * VECWIDTH + tbloffset))));
   real2 v631 = minusplus(uminus(v627), v628);
   real2 v629 = minusplus(v627, v628);
   real2 v639 = timesminusplus(reverse(v629), load(tbl, 114 * VECWIDTH + tbloffset), times(v629, load(tbl, 115 * VECWIDTH + tbloffset)));
   scatter(out, 8, 64, plus(v639, v659));
   real2 v694 = minus(v639, v659);
   scatter(out, 40, 64, timesminusplus(v694, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v694), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v645 = timesminusplus(reverse(v631), load(tbl, 116 * VECWIDTH + tbloffset), times(v631, load(tbl, 117 * VECWIDTH + tbloffset)));
   scatter(out, 24, 64, plus(v645, v665));
   real2 v700 = minus(v645, v665);
   scatter(out, 56, 64, timesminusplus(v700, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v700), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v549 = minusplus(v547, v548);
   real2 v551 = minusplus(uminus(v547), v548);
   real2 v559 = timesminusplus(reverse(v549), load(tbl, 98 * VECWIDTH + tbloffset), times(v549, load(tbl, 99 * VECWIDTH + tbloffset)));
   real2 v708 = minus(v599, v559);
   real2 v712 = plus(v559, v599);
   scatter(out, 4, 64, plus(v712, v713));
   real2 v726 = minus(v712, v713);
   scatter(out, 36, 64, timesminusplus(v726, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v726), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v711 = minusplus(uminus(v707), v708);
   real2 v709 = minusplus(v707, v708);
   scatter(out, 20, 64, timesminusplus(reverse(v709), load(tbl, 126 * VECWIDTH + tbloffset), times(v709, load(tbl, 127 * VECWIDTH + tbloffset))));
   scatter(out, 52, 64, timesminusplus(reverse(v711), load(tbl, 128 * VECWIDTH + tbloffset), times(v711, load(tbl, 129 * VECWIDTH + tbloffset))));
   real2 v565 = timesminusplus(reverse(v551), load(tbl, 100 * VECWIDTH + tbloffset), times(v551, load(tbl, 101 * VECWIDTH + tbloffset)));
   real2 v738 = plus(v565, v605);
   real2 v734 = minus(v605, v565);
   scatter(out, 12, 64, plus(v738, v739));
   real2 v752 = minus(v738, v739);
   scatter(out, 44, 64, timesminusplus(v752, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v752), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v737 = minusplus(uminus(v733), v734);
   scatter(out, 60, 64, timesminusplus(reverse(v737), load(tbl, 132 * VECWIDTH + tbloffset), times(v737, load(tbl, 133 * VECWIDTH + tbloffset))));
   real2 v735 = minusplus(v733, v734);
   scatter(out, 28, 64, timesminusplus(reverse(v735), load(tbl, 130 * VECWIDTH + tbloffset), times(v735, load(tbl, 131 * VECWIDTH + tbloffset))));
   real2 v471 = minusplus(uminus(v467), v468);
   real2 v469 = minusplus(v467, v468);
   real2 v479 = timesminusplus(reverse(v469), load(tbl, 82 * VECWIDTH + tbloffset), times(v469, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v511 = minusplus(uminus(v507), v508);
   real2 v509 = minusplus(v507, v508);
   real2 v519 = timesminusplus(reverse(v509), load(tbl, 90 * VECWIDTH + tbloffset), times(v509, load(tbl, 91 * VECWIDTH + tbloffset)));
   real2 v765 = plus(v439, v519);
   real2 v759 = reverse(minus(v519, v439));
   real2 v389 = minusplus(v387, v388);
   real2 v391 = minusplus(uminus(v387), v388);
   real2 v399 = timesminusplus(reverse(v389), load(tbl, 66 * VECWIDTH + tbloffset), times(v389, load(tbl, 67 * VECWIDTH + tbloffset)));
   real2 v764 = plus(v399, v479);
   real2 v760 = minus(v479, v399);
   real2 v804 = plus(v764, v765);
   real2 v800 = minus(v765, v764);
   scatter(out, 2, 64, plus(v804, v805));
   real2 v818 = minus(v804, v805);
   scatter(out, 34, 64, timesminusplus(v818, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v818), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v803 = minusplus(uminus(v799), v800);
   scatter(out, 50, 64, timesminusplus(reverse(v803), load(tbl, 144 * VECWIDTH + tbloffset), times(v803, load(tbl, 145 * VECWIDTH + tbloffset))));
   real2 v801 = minusplus(v799, v800);
   scatter(out, 18, 64, timesminusplus(reverse(v801), load(tbl, 142 * VECWIDTH + tbloffset), times(v801, load(tbl, 143 * VECWIDTH + tbloffset))));
   real2 v763 = minusplus(uminus(v759), v760);
   real2 v761 = minusplus(v759, v760);
   real2 v777 = timesminusplus(reverse(v763), load(tbl, 136 * VECWIDTH + tbloffset), times(v763, load(tbl, 137 * VECWIDTH + tbloffset)));
   scatter(out, 26, 64, plus(v777, v797));
   real2 v830 = minus(v777, v797);
   scatter(out, 58, 64, timesminusplus(v830, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v830), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v771 = timesminusplus(reverse(v761), load(tbl, 134 * VECWIDTH + tbloffset), times(v761, load(tbl, 135 * VECWIDTH + tbloffset)));
   scatter(out, 10, 64, plus(v771, v791));
   real2 v824 = minus(v771, v791);
   scatter(out, 42, 64, timesminusplus(v824, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v824), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v445 = timesminusplus(reverse(v431), load(tbl, 76 * VECWIDTH + tbloffset), times(v431, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v525 = timesminusplus(reverse(v511), load(tbl, 92 * VECWIDTH + tbloffset), times(v511, load(tbl, 93 * VECWIDTH + tbloffset)));
   real2 v837 = reverse(minus(v525, v445));
   real2 v843 = plus(v445, v525);
   real2 v485 = timesminusplus(reverse(v471), load(tbl, 84 * VECWIDTH + tbloffset), times(v471, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v405 = timesminusplus(reverse(v391), load(tbl, 68 * VECWIDTH + tbloffset), times(v391, load(tbl, 69 * VECWIDTH + tbloffset)));
   real2 v838 = minus(v485, v405);
   real2 v842 = plus(v405, v485);
   real2 v878 = minus(v843, v842);
   real2 v882 = plus(v842, v843);
   scatter(out, 6, 64, plus(v882, v883));
   real2 v896 = minus(v882, v883);
   scatter(out, 38, 64, timesminusplus(v896, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v896), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v881 = minusplus(uminus(v877), v878);
   scatter(out, 54, 64, timesminusplus(reverse(v881), load(tbl, 156 * VECWIDTH + tbloffset), times(v881, load(tbl, 157 * VECWIDTH + tbloffset))));
   real2 v879 = minusplus(v877, v878);
   scatter(out, 22, 64, timesminusplus(reverse(v879), load(tbl, 154 * VECWIDTH + tbloffset), times(v879, load(tbl, 155 * VECWIDTH + tbloffset))));
   real2 v841 = minusplus(uminus(v837), v838);
   real2 v839 = minusplus(v837, v838);
   real2 v855 = timesminusplus(reverse(v841), load(tbl, 148 * VECWIDTH + tbloffset), times(v841, load(tbl, 149 * VECWIDTH + tbloffset)));
   scatter(out, 30, 64, plus(v855, v875));
   real2 v908 = minus(v855, v875);
   scatter(out, 62, 64, timesminusplus(v908, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v908), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v849 = timesminusplus(reverse(v839), load(tbl, 146 * VECWIDTH + tbloffset), times(v839, load(tbl, 147 * VECWIDTH + tbloffset)));
   scatter(out, 14, 64, plus(v849, v869));
   real2 v902 = minus(v849, v869);
   scatter(out, 46, 64, timesminusplus(v902, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v902), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v149 = minusplus(v147, v148);
   real2 v311 = minusplus(uminus(v307), v308);
   real2 v309 = minusplus(v307, v308);
   real2 v109 = minusplus(v107, v108);
   real2 v111 = minusplus(uminus(v107), v108);
   real2 v119 = timesminusplus(reverse(v109), load(tbl, 10 * VECWIDTH + tbloffset), times(v109, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v269 = minusplus(v267, v268);
   real2 v271 = minusplus(uminus(v267), v268);
   real2 v279 = timesminusplus(reverse(v269), load(tbl, 42 * VECWIDTH + tbloffset), times(v269, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v960 = plus(v119, v279);
   real2 v956 = minus(v279, v119);
   real2 v169 = minusplus(v167, v168);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v159 = timesminusplus(reverse(v149), load(tbl, 18 * VECWIDTH + tbloffset), times(v149, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v319 = timesminusplus(reverse(v309), load(tbl, 50 * VECWIDTH + tbloffset), times(v309, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v921 = plus(v159, v319);
   real2 v915 = reverse(minus(v319, v159));
   real2 v351 = minusplus(uminus(v347), v348);
   real2 v349 = minusplus(v347, v348);
   real2 v359 = timesminusplus(reverse(v349), load(tbl, 58 * VECWIDTH + tbloffset), times(v349, load(tbl, 59 * VECWIDTH + tbloffset)));
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v189 = minusplus(v187, v188);
   real2 v199 = timesminusplus(reverse(v189), load(tbl, 26 * VECWIDTH + tbloffset), times(v189, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v961 = plus(v199, v359);
   real2 v955 = reverse(minus(v359, v199));
   real2 v995 = reverse(minus(v961, v960));
   real2 v1001 = plus(v960, v961);
   real2 v179 = timesminusplus(reverse(v169), load(tbl, 22 * VECWIDTH + tbloffset), times(v169, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v941 = plus(v179, v339);
   real2 v935 = reverse(minus(v339, v179));
   real2 v1016 = minus(v941, v940);
   real2 v1020 = plus(v940, v941);
   real2 v71 = minusplus(uminus(v67), v68);
   real2 v69 = minusplus(v67, v68);
   real2 v79 = timesminusplus(reverse(v69), load(tbl, 2 * VECWIDTH + tbloffset), times(v69, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v1041 = plus(v1020, v1021);
   real2 v1035 = reverse(minus(v1021, v1020));
   real2 v229 = minusplus(v227, v228);
   real2 v231 = minusplus(uminus(v227), v228);
   real2 v239 = timesminusplus(reverse(v229), load(tbl, 34 * VECWIDTH + tbloffset), times(v229, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v920 = plus(v79, v239);
   real2 v916 = minus(v239, v79);
   real2 v996 = minus(v921, v920);
   real2 v1000 = plus(v920, v921);
   real2 v1040 = plus(v1000, v1001);
   real2 v1036 = minus(v1001, v1000);
   scatter(out, 1, 64, plus(v1040, v1041));
   real2 v1054 = minus(v1040, v1041);
   scatter(out, 33, 64, timesminusplus(v1054, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1054), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1037 = minusplus(v1035, v1036);
   real2 v1039 = minusplus(uminus(v1035), v1036);
   scatter(out, 49, 64, timesminusplus(reverse(v1039), load(tbl, 184 * VECWIDTH + tbloffset), times(v1039, load(tbl, 185 * VECWIDTH + tbloffset))));
   scatter(out, 17, 64, timesminusplus(reverse(v1037), load(tbl, 182 * VECWIDTH + tbloffset), times(v1037, load(tbl, 183 * VECWIDTH + tbloffset))));
   real2 v1017 = minusplus(v1015, v1016);
   real2 v1019 = minusplus(uminus(v1015), v1016);
   real2 v1033 = timesminusplus(reverse(v1019), load(tbl, 180 * VECWIDTH + tbloffset), times(v1019, load(tbl, 181 * VECWIDTH + tbloffset)));
   real2 v997 = minusplus(v995, v996);
   real2 v999 = minusplus(uminus(v995), v996);
   real2 v1013 = timesminusplus(reverse(v999), load(tbl, 176 * VECWIDTH + tbloffset), times(v999, load(tbl, 177 * VECWIDTH + tbloffset)));
   scatter(out, 25, 64, plus(v1013, v1033));
   real2 v1066 = minus(v1013, v1033);
   scatter(out, 57, 64, timesminusplus(v1066, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1066), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1027 = timesminusplus(reverse(v1017), load(tbl, 178 * VECWIDTH + tbloffset), times(v1017, load(tbl, 179 * VECWIDTH + tbloffset)));
   real2 v1007 = timesminusplus(reverse(v997), load(tbl, 174 * VECWIDTH + tbloffset), times(v997, load(tbl, 175 * VECWIDTH + tbloffset)));
   scatter(out, 9, 64, plus(v1007, v1027));
   real2 v1060 = minus(v1007, v1027);
   scatter(out, 41, 64, timesminusplus(v1060, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1060), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v937 = minusplus(v935, v936);
   real2 v939 = minusplus(uminus(v935), v936);
   real2 v959 = minusplus(uminus(v955), v956);
   real2 v957 = minusplus(v955, v956);
   real2 v967 = timesminusplus(reverse(v957), load(tbl, 166 * VECWIDTH + tbloffset), times(v957, load(tbl, 167 * VECWIDTH + tbloffset)));
   real2 v947 = timesminusplus(reverse(v937), load(tbl, 162 * VECWIDTH + tbloffset), times(v937, load(tbl, 163 * VECWIDTH + tbloffset)));
   real2 v919 = minusplus(uminus(v915), v916);
   real2 v917 = minusplus(v915, v916);
   real2 v1079 = plus(v947, v987);
   real2 v1073 = reverse(minus(v987, v947));
   real2 v927 = timesminusplus(reverse(v917), load(tbl, 158 * VECWIDTH + tbloffset), times(v917, load(tbl, 159 * VECWIDTH + tbloffset)));
   real2 v1074 = minus(v967, v927);
   real2 v1078 = plus(v927, v967);
   scatter(out, 5, 64, plus(v1078, v1079));
   real2 v1092 = minus(v1078, v1079);
   scatter(out, 37, 64, timesminusplus(v1092, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1092), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1075 = minusplus(v1073, v1074);
   scatter(out, 21, 64, timesminusplus(reverse(v1075), load(tbl, 186 * VECWIDTH + tbloffset), times(v1075, load(tbl, 187 * VECWIDTH + tbloffset))));
   real2 v1077 = minusplus(uminus(v1073), v1074);
   scatter(out, 53, 64, timesminusplus(reverse(v1077), load(tbl, 188 * VECWIDTH + tbloffset), times(v1077, load(tbl, 189 * VECWIDTH + tbloffset))));
   real2 v953 = timesminusplus(reverse(v939), load(tbl, 164 * VECWIDTH + tbloffset), times(v939, load(tbl, 165 * VECWIDTH + tbloffset)));
   real2 v1099 = reverse(minus(v993, v953));
   real2 v1105 = plus(v953, v993);
   real2 v973 = timesminusplus(reverse(v959), load(tbl, 168 * VECWIDTH + tbloffset), times(v959, load(tbl, 169 * VECWIDTH + tbloffset)));
   real2 v933 = timesminusplus(reverse(v919), load(tbl, 160 * VECWIDTH + tbloffset), times(v919, load(tbl, 161 * VECWIDTH + tbloffset)));
   real2 v1104 = plus(v933, v973);
   real2 v1100 = minus(v973, v933);
   scatter(out, 13, 64, plus(v1104, v1105));
   real2 v1118 = minus(v1104, v1105);
   scatter(out, 45, 64, timesminusplus(v1118, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1118), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1101 = minusplus(v1099, v1100);
   scatter(out, 29, 64, timesminusplus(reverse(v1101), load(tbl, 190 * VECWIDTH + tbloffset), times(v1101, load(tbl, 191 * VECWIDTH + tbloffset))));
   real2 v1103 = minusplus(uminus(v1099), v1100);
   scatter(out, 61, 64, timesminusplus(reverse(v1103), load(tbl, 192 * VECWIDTH + tbloffset), times(v1103, load(tbl, 193 * VECWIDTH + tbloffset))));
   real2 v345 = timesminusplus(reverse(v331), load(tbl, 56 * VECWIDTH + tbloffset), times(v331, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v325 = timesminusplus(reverse(v311), load(tbl, 52 * VECWIDTH + tbloffset), times(v311, load(tbl, 53 * VECWIDTH + tbloffset)));
   real2 v265 = timesminusplus(reverse(v251), load(tbl, 40 * VECWIDTH + tbloffset), times(v251, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v185 = timesminusplus(reverse(v171), load(tbl, 24 * VECWIDTH + tbloffset), times(v171, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v165 = timesminusplus(reverse(v151), load(tbl, 20 * VECWIDTH + tbloffset), times(v151, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v1131 = plus(v165, v325);
   real2 v1125 = reverse(minus(v325, v165));
   real2 v1151 = plus(v185, v345);
   real2 v1145 = reverse(minus(v345, v185));
   real2 v105 = timesminusplus(reverse(v91), load(tbl, 8 * VECWIDTH + tbloffset), times(v91, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v1150 = plus(v105, v265);
   real2 v1146 = minus(v265, v105);
   real2 v1226 = minus(v1151, v1150);
   real2 v1230 = plus(v1150, v1151);
   real2 v1231 = plus(v1190, v1191);
   real2 v1225 = reverse(minus(v1191, v1190));
   real2 v1245 = reverse(minus(v1231, v1230));
   real2 v1251 = plus(v1230, v1231);
   real2 v365 = timesminusplus(reverse(v351), load(tbl, 60 * VECWIDTH + tbloffset), times(v351, load(tbl, 61 * VECWIDTH + tbloffset)));
   real2 v285 = timesminusplus(reverse(v271), load(tbl, 44 * VECWIDTH + tbloffset), times(v271, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v205 = timesminusplus(reverse(v191), load(tbl, 28 * VECWIDTH + tbloffset), times(v191, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v1171 = plus(v205, v365);
   real2 v1165 = reverse(minus(v365, v205));
   real2 v125 = timesminusplus(reverse(v111), load(tbl, 12 * VECWIDTH + tbloffset), times(v111, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v85 = timesminusplus(reverse(v71), load(tbl, 4 * VECWIDTH + tbloffset), times(v71, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v245 = timesminusplus(reverse(v231), load(tbl, 36 * VECWIDTH + tbloffset), times(v231, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v1126 = minus(v245, v85);
   real2 v1130 = plus(v85, v245);
   real2 v1210 = plus(v1130, v1131);
   real2 v1206 = minus(v1131, v1130);
   real2 v1166 = minus(v285, v125);
   real2 v1170 = plus(v125, v285);
   real2 v1211 = plus(v1170, v1171);
   real2 v1205 = reverse(minus(v1171, v1170));
   real2 v1246 = minus(v1211, v1210);
   real2 v1250 = plus(v1210, v1211);
   scatter(out, 3, 64, plus(v1250, v1251));
   real2 v1264 = minus(v1250, v1251);
   scatter(out, 35, 64, timesminusplus(v1264, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1264), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1247 = minusplus(v1245, v1246);
   real2 v1249 = minusplus(uminus(v1245), v1246);
   scatter(out, 19, 64, timesminusplus(reverse(v1247), load(tbl, 218 * VECWIDTH + tbloffset), times(v1247, load(tbl, 219 * VECWIDTH + tbloffset))));
   scatter(out, 51, 64, timesminusplus(reverse(v1249), load(tbl, 220 * VECWIDTH + tbloffset), times(v1249, load(tbl, 221 * VECWIDTH + tbloffset))));
   real2 v1229 = minusplus(uminus(v1225), v1226);
   real2 v1227 = minusplus(v1225, v1226);
   real2 v1207 = minusplus(v1205, v1206);
   real2 v1209 = minusplus(uminus(v1205), v1206);
   real2 v1237 = timesminusplus(reverse(v1227), load(tbl, 214 * VECWIDTH + tbloffset), times(v1227, load(tbl, 215 * VECWIDTH + tbloffset)));
   real2 v1217 = timesminusplus(reverse(v1207), load(tbl, 210 * VECWIDTH + tbloffset), times(v1207, load(tbl, 211 * VECWIDTH + tbloffset)));
   scatter(out, 11, 64, plus(v1217, v1237));
   real2 v1270 = minus(v1217, v1237);
   scatter(out, 43, 64, timesminusplus(v1270, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1270), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1223 = timesminusplus(reverse(v1209), load(tbl, 212 * VECWIDTH + tbloffset), times(v1209, load(tbl, 213 * VECWIDTH + tbloffset)));
   real2 v1243 = timesminusplus(reverse(v1229), load(tbl, 216 * VECWIDTH + tbloffset), times(v1229, load(tbl, 217 * VECWIDTH + tbloffset)));
   scatter(out, 27, 64, plus(v1223, v1243));
   real2 v1276 = minus(v1223, v1243);
   scatter(out, 59, 64, timesminusplus(v1276, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1276), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1189 = minusplus(uminus(v1185), v1186);
   real2 v1187 = minusplus(v1185, v1186);
   real2 v1129 = minusplus(uminus(v1125), v1126);
   real2 v1127 = minusplus(v1125, v1126);
   real2 v1147 = minusplus(v1145, v1146);
   real2 v1149 = minusplus(uminus(v1145), v1146);
   real2 v1167 = minusplus(v1165, v1166);
   real2 v1169 = minusplus(uminus(v1165), v1166);
   real2 v1143 = timesminusplus(reverse(v1129), load(tbl, 196 * VECWIDTH + tbloffset), times(v1129, load(tbl, 197 * VECWIDTH + tbloffset)));
   real2 v1163 = timesminusplus(reverse(v1149), load(tbl, 200 * VECWIDTH + tbloffset), times(v1149, load(tbl, 201 * VECWIDTH + tbloffset)));
   real2 v1203 = timesminusplus(reverse(v1189), load(tbl, 208 * VECWIDTH + tbloffset), times(v1189, load(tbl, 209 * VECWIDTH + tbloffset)));
   real2 v1315 = plus(v1163, v1203);
   real2 v1309 = reverse(minus(v1203, v1163));
   real2 v1183 = timesminusplus(reverse(v1169), load(tbl, 204 * VECWIDTH + tbloffset), times(v1169, load(tbl, 205 * VECWIDTH + tbloffset)));
   real2 v1314 = plus(v1143, v1183);
   real2 v1310 = minus(v1183, v1143);
   scatter(out, 15, 64, plus(v1314, v1315));
   real2 v1328 = minus(v1314, v1315);
   scatter(out, 47, 64, timesminusplus(v1328, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1328), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1311 = minusplus(v1309, v1310);
   scatter(out, 31, 64, timesminusplus(reverse(v1311), load(tbl, 226 * VECWIDTH + tbloffset), times(v1311, load(tbl, 227 * VECWIDTH + tbloffset))));
   real2 v1313 = minusplus(uminus(v1309), v1310);
   scatter(out, 63, 64, timesminusplus(reverse(v1313), load(tbl, 228 * VECWIDTH + tbloffset), times(v1313, load(tbl, 229 * VECWIDTH + tbloffset))));
   real2 v1177 = timesminusplus(reverse(v1167), load(tbl, 202 * VECWIDTH + tbloffset), times(v1167, load(tbl, 203 * VECWIDTH + tbloffset)));
   real2 v1137 = timesminusplus(reverse(v1127), load(tbl, 194 * VECWIDTH + tbloffset), times(v1127, load(tbl, 195 * VECWIDTH + tbloffset)));
   real2 v1197 = timesminusplus(reverse(v1187), load(tbl, 206 * VECWIDTH + tbloffset), times(v1187, load(tbl, 207 * VECWIDTH + tbloffset)));
   real2 v1157 = timesminusplus(reverse(v1147), load(tbl, 198 * VECWIDTH + tbloffset), times(v1147, load(tbl, 199 * VECWIDTH + tbloffset)));
   real2 v1283 = reverse(minus(v1197, v1157));
   real2 v1289 = plus(v1157, v1197);
   real2 v1288 = plus(v1137, v1177);
   real2 v1284 = minus(v1177, v1137);
   scatter(out, 7, 64, plus(v1288, v1289));
   real2 v1302 = minus(v1288, v1289);
   scatter(out, 39, 64, timesminusplus(v1302, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1302), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1285 = minusplus(v1283, v1284);
   real2 v1287 = minusplus(uminus(v1283), v1284);
   scatter(out, 55, 64, timesminusplus(reverse(v1287), load(tbl, 224 * VECWIDTH + tbloffset), times(v1287, load(tbl, 225 * VECWIDTH + tbloffset))));
   scatter(out, 23, 64, timesminusplus(reverse(v1285), load(tbl, 222 * VECWIDTH + tbloffset), times(v1285, load(tbl, 223 * VECWIDTH + tbloffset))));
// Pres : 17339
  }
}
#endif

//

#if MAXBUTWIDTH >= 7
ALIGNED(8192) void dft128f_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

// Pres : 129041
   real2 v109 = load(in, 107 << shift);
   real2 v45 = load(in, 43 << shift);
   real2 v341 = plus(v45, v109);
   real2 v335 = reverse(minus(v45, v109));
   real2 v77 = load(in, 75 << shift);
   real2 v13 = load(in, 11 << shift);
   real2 v340 = plus(v13, v77);
   real2 v336 = minus(v77, v13);
   real2 v337 = minusplus(v335, v336);
   real2 v339 = minusplus(uminus(v335), v336);
   real2 v350 = ctimesminusplus(reverse(v339), ctbl[61], ctimes(v339, ctbl[60]));
   real2 v886 = plus(v340, v341);
   real2 v882 = minus(v341, v340);
   real2 v345 = ctimesminusplus(reverse(v337), ctbl[51], ctimes(v337, ctbl[41]));
   real2 v125 = load(in, 123 << shift);
   real2 v61 = load(in, 59 << shift);
   real2 v621 = plus(v61, v125);
   real2 v615 = reverse(minus(v61, v125));
   real2 v29 = load(in, 27 << shift);
   real2 v93 = load(in, 91 << shift);
   real2 v616 = minus(v93, v29);
   real2 v620 = plus(v29, v93);
   real2 v887 = plus(v620, v621);
   real2 v881 = reverse(minus(v620, v621));
   real2 v1009 = reverse(minus(v886, v887));
   real2 v1015 = plus(v886, v887);
   real2 v883 = minusplus(v881, v882);
   real2 v885 = minusplus(uminus(v881), v882);
   real2 v895 = ctimesminusplus(reverse(v885), ctbl[28], ctimes(v885, ctbl[14]));
   real2 v619 = minusplus(uminus(v615), v616);
   real2 v617 = minusplus(v615, v616);
   real2 v625 = ctimesminusplus(reverse(v617), ctbl[53], ctimes(v617, ctbl[39]));
   real2 v891 = ctimesminusplus(reverse(v883), ctbl[25], ctimes(v883, ctbl[19]));
   real2 v631 = ctimesminusplus(reverse(v619), ctbl[58], ctimes(v619, ctbl[32]));
   real2 v2129 = reverse(minus(v350, v631));
   real2 v2135 = plus(v350, v631);
   real2 v1728 = reverse(minus(v345, v625));
   real2 v1734 = plus(v345, v625);
   real2 v5 = load(in, 3 << shift);
   real2 v69 = load(in, 67 << shift);
   real2 v192 = plus(v5, v69);
   real2 v188 = minus(v69, v5);
   real2 v37 = load(in, 35 << shift);
   real2 v101 = load(in, 99 << shift);
   real2 v193 = plus(v37, v101);
   real2 v187 = reverse(minus(v37, v101));
   real2 v758 = plus(v192, v193);
   real2 v754 = minus(v193, v192);
   real2 v189 = minusplus(v187, v188);
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v203 = ctimesminusplus(reverse(v191), ctbl[35], ctimes(v191, ctbl[57]));
   real2 v197 = ctimesminusplus(reverse(v189), ctbl[47], ctimes(v189, ctbl[45]));
   real2 v53 = load(in, 51 << shift);
   real2 v117 = load(in, 115 << shift);
   real2 v474 = reverse(minus(v53, v117));
   real2 v480 = plus(v53, v117);
   real2 v85 = load(in, 83 << shift);
   real2 v21 = load(in, 19 << shift);
   real2 v475 = minus(v85, v21);
   real2 v479 = plus(v21, v85);
   real2 v753 = reverse(minus(v479, v480));
   real2 v759 = plus(v479, v480);
   real2 v755 = minusplus(v753, v754);
   real2 v757 = minusplus(uminus(v753), v754);
   real2 v767 = ctimesminusplus(reverse(v757), ctbl[17], ctimes(v757, ctbl[27]));
   real2 v763 = ctimesminusplus(reverse(v755), ctbl[23], ctimes(v755, ctbl[21]));
   real2 v1411 = minus(v891, v763);
   real2 v1415 = plus(v763, v891);
   real2 v1014 = plus(v758, v759);
   real2 v1010 = minus(v759, v758);
   real2 v1011 = minusplus(v1009, v1010);
   real2 v1013 = minusplus(uminus(v1009), v1010);
   real2 v1023 = ctimesminusplus(reverse(v1013), ctbl[13], ctimes(v1013, ctbl[12]));
   real2 v1570 = minus(v895, v767);
   real2 v1574 = plus(v767, v895);
   real2 v1142 = plus(v1014, v1015);
   real2 v1138 = minus(v1015, v1014);
   real2 v478 = minusplus(uminus(v474), v475);
   real2 v476 = minusplus(v474, v475);
   real2 v484 = ctimesminusplus(reverse(v476), ctbl[49], ctimes(v476, ctbl[43]));
   real2 v1733 = plus(v197, v484);
   real2 v1729 = minus(v484, v197);
   real2 v1861 = plus(v1733, v1734);
   real2 v1857 = minus(v1734, v1733);
   real2 v1730 = minusplus(v1728, v1729);
   real2 v1732 = minusplus(uminus(v1728), v1729);
   real2 v1738 = ctimesminusplus(reverse(v1730), ctbl[11], ctimes(v1730, ctbl[9]));
   real2 v489 = ctimesminusplus(reverse(v478), ctbl[55], ctimes(v478, ctbl[54]));
   real2 v1742 = ctimesminusplus(reverse(v1732), ctbl[13], ctimes(v1732, ctbl[12]));
   real2 v1019 = ctimesminusplus(reverse(v1011), ctbl[11], ctimes(v1011, ctbl[9]));
   real2 v2134 = plus(v203, v489);
   real2 v2130 = minus(v489, v203);
   real2 v2262 = plus(v2134, v2135);
   real2 v2258 = minus(v2135, v2134);
   real2 v105 = load(in, 103 << shift);
   real2 v41 = load(in, 39 << shift);
   real2 v269 = plus(v41, v105);
   real2 v263 = reverse(minus(v41, v105));
   real2 v9 = load(in, 7 << shift);
   real2 v73 = load(in, 71 << shift);
   real2 v264 = minus(v73, v9);
   real2 v268 = plus(v9, v73);
   real2 v822 = plus(v268, v269);
   real2 v818 = minus(v269, v268);
   real2 v265 = minusplus(v263, v264);
   real2 v267 = minusplus(uminus(v263), v264);
   real2 v275 = ctimesminusplus(reverse(v265), ctbl[55], ctimes(v265, ctbl[37]));
   real2 v281 = ctimesminusplus(reverse(v267), ctbl[41], ctimes(v267, ctbl[51]));
   real2 v121 = load(in, 119 << shift);
   real2 v57 = load(in, 55 << shift);
   real2 v549 = plus(v57, v121);
   real2 v543 = reverse(minus(v57, v121));
   real2 v25 = load(in, 23 << shift);
   real2 v89 = load(in, 87 << shift);
   real2 v544 = minus(v89, v25);
   real2 v548 = plus(v25, v89);
   real2 v817 = reverse(minus(v548, v549));
   real2 v823 = plus(v548, v549);
   real2 v819 = minusplus(v817, v818);
   real2 v821 = minusplus(uminus(v817), v818);
   real2 v547 = minusplus(uminus(v543), v544);
   real2 v545 = minusplus(v543, v544);
   real2 v553 = ctimesminusplus(reverse(v545), ctbl[57], ctimes(v545, ctbl[35]));
   real2 v827 = ctimesminusplus(reverse(v819), ctbl[27], ctimes(v819, ctbl[17]));
   real2 v831 = ctimesminusplus(reverse(v821), ctbl[25], ctimes(v821, ctbl[24]));
   real2 v559 = ctimesminusplus(reverse(v547), ctbl[52], ctimes(v547, ctbl[38]));
   real2 v2198 = plus(v281, v559);
   real2 v2194 = minus(v559, v281);
   real2 v1793 = minus(v553, v275);
   real2 v1797 = plus(v275, v553);
   real2 v1078 = plus(v822, v823);
   real2 v1074 = minus(v823, v822);
   real2 v129 = load(in, 127 << shift);
   real2 v65 = load(in, 63 << shift);
   real2 v693 = plus(v65, v129);
   real2 v687 = reverse(minus(v65, v129));
   real2 v33 = load(in, 31 << shift);
   real2 v97 = load(in, 95 << shift);
   real2 v692 = plus(v33, v97);
   real2 v688 = minus(v97, v33);
   real2 v691 = minusplus(uminus(v687), v688);
   real2 v689 = minusplus(v687, v688);
   real2 v945 = reverse(minus(v692, v693));
   real2 v951 = plus(v692, v693);
   real2 v697 = ctimesminusplus(reverse(v689), ctbl[61], ctimes(v689, ctbl[31]));
   real2 v703 = ctimesminusplus(reverse(v691), ctbl[46], ctimes(v691, ctbl[44]));
   real2 v81 = load(in, 79 << shift);
   real2 v17 = load(in, 15 << shift);
   real2 v406 = minus(v81, v17);
   real2 v410 = plus(v17, v81);
   real2 v49 = load(in, 47 << shift);
   real2 v113 = load(in, 111 << shift);
   real2 v405 = reverse(minus(v49, v113));
   real2 v411 = plus(v49, v113);
   real2 v407 = minusplus(v405, v406);
   real2 v409 = minusplus(uminus(v405), v406);
   real2 v415 = ctimesminusplus(reverse(v407), ctbl[59], ctimes(v407, ctbl[33]));
   real2 v1798 = plus(v415, v697);
   real2 v1792 = reverse(minus(v415, v697));
   real2 v950 = plus(v410, v411);
   real2 v946 = minus(v411, v410);
   real2 v949 = minusplus(uminus(v945), v946);
   real2 v947 = minusplus(v945, v946);
   real2 v1073 = reverse(minus(v950, v951));
   real2 v1079 = plus(v950, v951);
   real2 v955 = ctimesminusplus(reverse(v947), ctbl[29], ctimes(v947, ctbl[15]));
   real2 v1410 = reverse(minus(v827, v955));
   real2 v1416 = plus(v827, v955);
   real2 v1448 = plus(v1415, v1416);
   real2 v1442 = reverse(minus(v1415, v1416));
   real2 v1412 = minusplus(v1410, v1411);
   real2 v1414 = minusplus(uminus(v1410), v1411);
   real2 v1424 = ctimesminusplus(reverse(v1414), ctbl[4], ctimes(v1414, ctbl[2]));
   real2 v1077 = minusplus(uminus(v1073), v1074);
   real2 v1075 = minusplus(v1073, v1074);
   real2 v1087 = ctimesminusplus(reverse(v1077), ctbl[10], ctimes(v1077, ctbl[8]));
   real2 v1327 = plus(v1023, v1087);
   real2 v1321 = reverse(minus(v1023, v1087));
   real2 v1137 = reverse(minus(v1078, v1079));
   real2 v1143 = plus(v1078, v1079);
   real2 v1169 = reverse(minus(v1142, v1143));
   real2 v1175 = plus(v1142, v1143);
   real2 v1083 = ctimesminusplus(reverse(v1075), ctbl[13], ctimes(v1075, ctbl[7]));
   real2 v1796 = minusplus(uminus(v1792), v1793);
   real2 v1794 = minusplus(v1792, v1793);
   real2 v1806 = ctimesminusplus(reverse(v1796), ctbl[10], ctimes(v1796, ctbl[8]));
   real2 v2046 = plus(v1742, v1806);
   real2 v2040 = reverse(minus(v1742, v1806));
   real2 v1270 = plus(v1019, v1083);
   real2 v1264 = reverse(minus(v1019, v1083));
   real2 v959 = ctimesminusplus(reverse(v949), ctbl[22], ctimes(v949, ctbl[20]));
   real2 v1139 = minusplus(v1137, v1138);
   real2 v1141 = minusplus(uminus(v1137), v1138);
   real2 v1151 = ctimesminusplus(reverse(v1141), ctbl[4], ctimes(v1141, ctbl[2]));
   real2 v1420 = ctimesminusplus(reverse(v1412), ctbl[5], ctimes(v1412, ctbl[3]));
   real2 v1569 = reverse(minus(v831, v959));
   real2 v1575 = plus(v831, v959);
   real2 v1607 = plus(v1574, v1575);
   real2 v1601 = reverse(minus(v1574, v1575));
   real2 v1856 = reverse(minus(v1797, v1798));
   real2 v1862 = plus(v1797, v1798);
   real2 v1888 = reverse(minus(v1861, v1862));
   real2 v1894 = plus(v1861, v1862);
   real2 v1147 = ctimesminusplus(reverse(v1139), ctbl[5], ctimes(v1139, ctbl[3]));
   real2 v1571 = minusplus(v1569, v1570);
   real2 v1573 = minusplus(uminus(v1569), v1570);
   real2 v1583 = ctimesminusplus(reverse(v1573), ctbl[4], ctimes(v1573, ctbl[2]));
   real2 v1858 = minusplus(v1856, v1857);
   real2 v1860 = minusplus(uminus(v1856), v1857);
   real2 v1870 = ctimesminusplus(reverse(v1860), ctbl[4], ctimes(v1860, ctbl[2]));
   real2 v1579 = ctimesminusplus(reverse(v1571), ctbl[5], ctimes(v1571, ctbl[3]));
   real2 v1802 = ctimesminusplus(reverse(v1794), ctbl[13], ctimes(v1794, ctbl[7]));
   real2 v1989 = plus(v1738, v1802);
   real2 v1983 = reverse(minus(v1738, v1802));
   real2 v1866 = ctimesminusplus(reverse(v1858), ctbl[5], ctimes(v1858, ctbl[3]));
   real2 v23 = load(in, 21 << shift);
   real2 v87 = load(in, 85 << shift);
   real2 v513 = plus(v23, v87);
   real2 v509 = minus(v87, v23);
   real2 v55 = load(in, 53 << shift);
   real2 v119 = load(in, 117 << shift);
   real2 v514 = plus(v55, v119);
   real2 v508 = reverse(minus(v55, v119));
   real2 v791 = plus(v513, v514);
   real2 v785 = reverse(minus(v513, v514));
   real2 v512 = minusplus(uminus(v508), v509);
   real2 v510 = minusplus(v508, v509);
   real2 v518 = ctimesminusplus(reverse(v510), ctbl[41], ctimes(v510, ctbl[51]));
   real2 v71 = load(in, 69 << shift);
   real2 v7 = load(in, 5 << shift);
   real2 v230 = plus(v7, v71);
   real2 v226 = minus(v71, v7);
   real2 v103 = load(in, 101 << shift);
   real2 v39 = load(in, 37 << shift);
   real2 v225 = reverse(minus(v39, v103));
   real2 v231 = plus(v39, v103);
   real2 v790 = plus(v230, v231);
   real2 v786 = minus(v231, v230);
   real2 v1042 = minus(v791, v790);
   real2 v1046 = plus(v790, v791);
   real2 v787 = minusplus(v785, v786);
   real2 v789 = minusplus(uminus(v785), v786);
   real2 v229 = minusplus(uminus(v225), v226);
   real2 v227 = minusplus(v225, v226);
   real2 v237 = ctimesminusplus(reverse(v227), ctbl[39], ctimes(v227, ctbl[53]));
   real2 v1761 = minus(v518, v237);
   real2 v1765 = plus(v237, v518);
   real2 v795 = ctimesminusplus(reverse(v787), ctbl[19], ctimes(v787, ctbl[25]));
   real2 v799 = ctimesminusplus(reverse(v789), ctbl[29], ctimes(v789, ctbl[15]));
   real2 v127 = load(in, 125 << shift);
   real2 v63 = load(in, 61 << shift);
   real2 v657 = plus(v63, v127);
   real2 v651 = reverse(minus(v63, v127));
   real2 v31 = load(in, 29 << shift);
   real2 v95 = load(in, 93 << shift);
   real2 v652 = minus(v95, v31);
   real2 v656 = plus(v31, v95);
   real2 v913 = reverse(minus(v656, v657));
   real2 v919 = plus(v656, v657);
   real2 v655 = minusplus(uminus(v651), v652);
   real2 v653 = minusplus(v651, v652);
   real2 v661 = ctimesminusplus(reverse(v653), ctbl[45], ctimes(v653, ctbl[47]));
   real2 v111 = load(in, 109 << shift);
   real2 v47 = load(in, 45 << shift);
   real2 v375 = plus(v47, v111);
   real2 v369 = reverse(minus(v47, v111));
   real2 v79 = load(in, 77 << shift);
   real2 v15 = load(in, 13 << shift);
   real2 v370 = minus(v79, v15);
   real2 v374 = plus(v15, v79);
   real2 v914 = minus(v375, v374);
   real2 v918 = plus(v374, v375);
   real2 v371 = minusplus(v369, v370);
   real2 v373 = minusplus(uminus(v369), v370);
   real2 v915 = minusplus(v913, v914);
   real2 v917 = minusplus(uminus(v913), v914);
   real2 v927 = ctimesminusplus(reverse(v917), ctbl[16], ctimes(v917, ctbl[26]));
   real2 v381 = ctimesminusplus(reverse(v371), ctbl[43], ctimes(v371, ctbl[49]));
   real2 v1041 = reverse(minus(v918, v919));
   real2 v1047 = plus(v918, v919);
   real2 v1766 = plus(v381, v661);
   real2 v1760 = reverse(minus(v381, v661));
   real2 v1762 = minusplus(v1760, v1761);
   real2 v1764 = minusplus(uminus(v1760), v1761);
   real2 v1824 = reverse(minus(v1765, v1766));
   real2 v1830 = plus(v1765, v1766);
   real2 v923 = ctimesminusplus(reverse(v915), ctbl[21], ctimes(v915, ctbl[23]));
   real2 v1378 = reverse(minus(v795, v923));
   real2 v1384 = plus(v795, v923);
   real2 v1045 = minusplus(uminus(v1041), v1042);
   real2 v1043 = minusplus(v1041, v1042);
   real2 v1051 = ctimesminusplus(reverse(v1043), ctbl[9], ctimes(v1043, ctbl[11]));
   real2 v1537 = reverse(minus(v799, v927));
   real2 v1543 = plus(v799, v927);
   real2 v1055 = ctimesminusplus(reverse(v1045), ctbl[7], ctimes(v1045, ctbl[6]));
   real2 v1111 = plus(v1046, v1047);
   real2 v1105 = reverse(minus(v1046, v1047));
   real2 v115 = load(in, 113 << shift);
   real2 v51 = load(in, 49 << shift);
   real2 v440 = reverse(minus(v51, v115));
   real2 v446 = plus(v51, v115);
   real2 v19 = load(in, 17 << shift);
   real2 v83 = load(in, 81 << shift);
   real2 v441 = minus(v83, v19);
   real2 v445 = plus(v19, v83);
   real2 v727 = plus(v445, v446);
   real2 v721 = reverse(minus(v445, v446));
   real2 v442 = minusplus(v440, v441);
   real2 v444 = minusplus(uminus(v440), v441);
   real2 v450 = ctimesminusplus(reverse(v442), ctbl[33], ctimes(v442, ctbl[59]));
   real2 v67 = load(in, 65 << shift);
   real2 v3 = load(in, 1 << shift);
   real2 v148 = minus(v67, v3);
   real2 v152 = plus(v3, v67);
   real2 v99 = load(in, 97 << shift);
   real2 v35 = load(in, 33 << shift);
   real2 v147 = reverse(minus(v35, v99));
   real2 v153 = plus(v35, v99);
   real2 v726 = plus(v152, v153);
   real2 v722 = minus(v153, v152);
   real2 v723 = minusplus(v721, v722);
   real2 v725 = minusplus(uminus(v721), v722);
   real2 v731 = ctimesminusplus(reverse(v723), ctbl[15], ctimes(v723, ctbl[29]));
   real2 v735 = ctimesminusplus(reverse(v725), ctbl[23], ctimes(v725, ctbl[21]));
   real2 v149 = minusplus(v147, v148);
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v978 = minus(v727, v726);
   real2 v982 = plus(v726, v727);
   real2 v159 = ctimesminusplus(reverse(v149), ctbl[31], ctimes(v149, ctbl[61]));
   real2 v1701 = plus(v159, v450);
   real2 v1697 = minus(v450, v159);
   real2 v91 = load(in, 89 << shift);
   real2 v27 = load(in, 25 << shift);
   real2 v584 = plus(v27, v91);
   real2 v580 = minus(v91, v27);
   real2 v59 = load(in, 57 << shift);
   real2 v123 = load(in, 121 << shift);
   real2 v579 = reverse(minus(v59, v123));
   real2 v585 = plus(v59, v123);
   real2 v583 = minusplus(uminus(v579), v580);
   real2 v581 = minusplus(v579, v580);
   real2 v589 = ctimesminusplus(reverse(v581), ctbl[37], ctimes(v581, ctbl[55]));
   real2 v855 = plus(v584, v585);
   real2 v849 = reverse(minus(v584, v585));
   real2 v11 = load(in, 9 << shift);
   real2 v75 = load(in, 73 << shift);
   real2 v302 = minus(v75, v11);
   real2 v306 = plus(v11, v75);
   real2 v107 = load(in, 105 << shift);
   real2 v43 = load(in, 41 << shift);
   real2 v307 = plus(v43, v107);
   real2 v301 = reverse(minus(v43, v107));
   real2 v854 = plus(v306, v307);
   real2 v850 = minus(v307, v306);
   real2 v851 = minusplus(v849, v850);
   real2 v853 = minusplus(uminus(v849), v850);
   real2 v863 = ctimesminusplus(reverse(v853), ctbl[19], ctimes(v853, ctbl[18]));
   real2 v305 = minusplus(uminus(v301), v302);
   real2 v303 = minusplus(v301, v302);
   real2 v1538 = minus(v863, v735);
   real2 v1542 = plus(v735, v863);
   real2 v859 = ctimesminusplus(reverse(v851), ctbl[17], ctimes(v851, ctbl[27]));
   real2 v1379 = minus(v859, v731);
   real2 v1383 = plus(v731, v859);
   real2 v1443 = minus(v1384, v1383);
   real2 v1447 = plus(v1383, v1384);
   real2 v1446 = minusplus(uminus(v1442), v1443);
   real2 v1444 = minusplus(v1442, v1443);
   real2 v983 = plus(v854, v855);
   real2 v977 = reverse(minus(v854, v855));
   real2 v979 = minusplus(v977, v978);
   real2 v981 = minusplus(uminus(v977), v978);
   real2 v1456 = ctimesminusplus(reverse(v1446), ctbl[1], ctimes(v1446, ctbl[0]));
   real2 v311 = ctimesminusplus(reverse(v303), ctbl[35], ctimes(v303, ctbl[57]));
   real2 v1696 = reverse(minus(v311, v589));
   real2 v1702 = plus(v311, v589);
   real2 v1452 = ctimesminusplus(reverse(v1444), ctbl[1], ctimes(v1444, ctbl[1]));
   real2 v987 = ctimesminusplus(reverse(v979), ctbl[7], ctimes(v979, ctbl[13]));
   real2 v1265 = minus(v1051, v987);
   real2 v1269 = plus(v987, v1051);
   real2 v1266 = minusplus(v1264, v1265);
   real2 v1268 = minusplus(uminus(v1264), v1265);
   real2 v1278 = ctimesminusplus(reverse(v1268), ctbl[1], ctimes(v1268, ctbl[0]));
   real2 v1286 = plus(v1269, v1270);
   real2 v1280 = reverse(minus(v1269, v1270));
   real2 v1110 = plus(v982, v983);
   real2 v1106 = minus(v983, v982);
   real2 v1174 = plus(v1110, v1111);
   real2 v1170 = minus(v1111, v1110);
   real2 v1185 = reverse(minus(v1174, v1175));
   real2 v1191 = plus(v1174, v1175);
   real2 v1171 = minusplus(v1169, v1170);
   real2 v1173 = minusplus(uminus(v1169), v1170);
   real2 v1179 = ctimesminusplus(reverse(v1171), ctbl[1], ctimes(v1171, ctbl[1]));
   real2 v1183 = ctimesminusplus(reverse(v1173), ctbl[1], ctimes(v1173, ctbl[0]));
   real2 v991 = ctimesminusplus(reverse(v981), ctbl[11], ctimes(v981, ctbl[9]));
   real2 v1322 = minus(v1055, v991);
   real2 v1326 = plus(v991, v1055);
   real2 v1337 = reverse(minus(v1326, v1327));
   real2 v1343 = plus(v1326, v1327);
   real2 v1323 = minusplus(v1321, v1322);
   real2 v1325 = minusplus(uminus(v1321), v1322);
   real2 v1335 = ctimesminusplus(reverse(v1325), ctbl[1], ctimes(v1325, ctbl[0]));
   real2 v1109 = minusplus(uminus(v1105), v1106);
   real2 v1107 = minusplus(v1105, v1106);
   real2 v1115 = ctimesminusplus(reverse(v1107), ctbl[3], ctimes(v1107, ctbl[5]));
   real2 v1274 = ctimesminusplus(reverse(v1266), ctbl[1], ctimes(v1266, ctbl[1]));
   real2 v1606 = plus(v1542, v1543);
   real2 v1602 = minus(v1543, v1542);
   real2 v1216 = plus(v1115, v1147);
   real2 v1210 = reverse(minus(v1115, v1147));
   real2 v1331 = ctimesminusplus(reverse(v1323), ctbl[1], ctimes(v1323, ctbl[1]));
   real2 v1119 = ctimesminusplus(reverse(v1109), ctbl[5], ctimes(v1109, ctbl[3]));
   real2 v1464 = plus(v1447, v1448);
   real2 v1458 = reverse(minus(v1447, v1448));
   real2 v1382 = minusplus(uminus(v1378), v1379);
   real2 v1380 = minusplus(v1378, v1379);
   real2 v1388 = ctimesminusplus(reverse(v1380), ctbl[3], ctimes(v1380, ctbl[5]));
   real2 v1392 = ctimesminusplus(reverse(v1382), ctbl[5], ctimes(v1382, ctbl[3]));
   real2 v1508 = plus(v1392, v1424);
   real2 v1502 = reverse(minus(v1392, v1424));
   real2 v1489 = plus(v1388, v1420);
   real2 v1483 = reverse(minus(v1388, v1420));
   real2 v1603 = minusplus(v1601, v1602);
   real2 v1605 = minusplus(uminus(v1601), v1602);
   real2 v1615 = ctimesminusplus(reverse(v1605), ctbl[1], ctimes(v1605, ctbl[0]));
   real2 v1611 = ctimesminusplus(reverse(v1603), ctbl[1], ctimes(v1603, ctbl[1]));
   real2 v1617 = reverse(minus(v1606, v1607));
   real2 v1623 = plus(v1606, v1607);
   real2 v1541 = minusplus(uminus(v1537), v1538);
   real2 v1539 = minusplus(v1537, v1538);
   real2 v1547 = ctimesminusplus(reverse(v1539), ctbl[3], ctimes(v1539, ctbl[5]));
   real2 v1551 = ctimesminusplus(reverse(v1541), ctbl[5], ctimes(v1541, ctbl[3]));
   real2 v1667 = plus(v1551, v1583);
   real2 v1661 = reverse(minus(v1551, v1583));
   real2 v1648 = plus(v1547, v1579);
   real2 v1642 = reverse(minus(v1547, v1579));
   real2 v1229 = reverse(minus(v1119, v1151));
   real2 v1235 = plus(v1119, v1151);
   real2 v76 = load(in, 74 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v322 = plus(v12, v76);
   real2 v318 = minus(v76, v12);
   real2 v44 = load(in, 42 << shift);
   real2 v108 = load(in, 106 << shift);
   real2 v323 = plus(v44, v108);
   real2 v317 = reverse(minus(v44, v108));
   real2 v866 = minus(v323, v322);
   real2 v870 = plus(v322, v323);
   real2 v92 = load(in, 90 << shift);
   real2 v28 = load(in, 26 << shift);
   real2 v602 = plus(v28, v92);
   real2 v598 = minus(v92, v28);
   real2 v60 = load(in, 58 << shift);
   real2 v124 = load(in, 122 << shift);
   real2 v603 = plus(v60, v124);
   real2 v597 = reverse(minus(v60, v124));
   real2 v865 = reverse(minus(v602, v603));
   real2 v871 = plus(v602, v603);
   real2 v869 = minusplus(uminus(v865), v866);
   real2 v867 = minusplus(v865, v866);
   real2 v879 = ctimesminusplus(reverse(v869), ctbl[7], ctimes(v869, ctbl[6]));
   real2 v993 = reverse(minus(v870, v871));
   real2 v999 = plus(v870, v871);
   real2 v875 = ctimesminusplus(reverse(v867), ctbl[9], ctimes(v867, ctbl[11]));
   real2 v100 = load(in, 98 << shift);
   real2 v36 = load(in, 34 << shift);
   real2 v167 = reverse(minus(v36, v100));
   real2 v173 = plus(v36, v100);
   real2 v4 = load(in, 2 << shift);
   real2 v68 = load(in, 66 << shift);
   real2 v168 = minus(v68, v4);
   real2 v172 = plus(v4, v68);
   real2 v742 = plus(v172, v173);
   real2 v738 = minus(v173, v172);
   real2 v84 = load(in, 82 << shift);
   real2 v20 = load(in, 18 << shift);
   real2 v462 = plus(v20, v84);
   real2 v458 = minus(v84, v20);
   real2 v116 = load(in, 114 << shift);
   real2 v52 = load(in, 50 << shift);
   real2 v463 = plus(v52, v116);
   real2 v457 = reverse(minus(v52, v116));
   real2 v737 = reverse(minus(v462, v463));
   real2 v743 = plus(v462, v463);
   real2 v998 = plus(v742, v743);
   real2 v994 = minus(v743, v742);
   real2 v739 = minusplus(v737, v738);
   real2 v741 = minusplus(uminus(v737), v738);
   real2 v995 = minusplus(v993, v994);
   real2 v997 = minusplus(uminus(v993), v994);
   real2 v1007 = ctimesminusplus(reverse(v997), ctbl[5], ctimes(v997, ctbl[3]));
   real2 v747 = ctimesminusplus(reverse(v739), ctbl[7], ctimes(v739, ctbl[13]));
   real2 v1395 = minus(v875, v747);
   real2 v1399 = plus(v747, v875);
   real2 v1003 = ctimesminusplus(reverse(v995), ctbl[3], ctimes(v995, ctbl[5]));
   real2 v1122 = minus(v999, v998);
   real2 v1126 = plus(v998, v999);
   real2 v72 = load(in, 70 << shift);
   real2 v8 = load(in, 6 << shift);
   real2 v246 = minus(v72, v8);
   real2 v250 = plus(v8, v72);
   real2 v104 = load(in, 102 << shift);
   real2 v40 = load(in, 38 << shift);
   real2 v245 = reverse(minus(v40, v104));
   real2 v251 = plus(v40, v104);
   real2 v802 = minus(v251, v250);
   real2 v806 = plus(v250, v251);
   real2 v24 = load(in, 22 << shift);
   real2 v88 = load(in, 86 << shift);
   real2 v530 = plus(v24, v88);
   real2 v526 = minus(v88, v24);
   real2 v120 = load(in, 118 << shift);
   real2 v56 = load(in, 54 << shift);
   real2 v531 = plus(v56, v120);
   real2 v525 = reverse(minus(v56, v120));
   real2 v801 = reverse(minus(v530, v531));
   real2 v807 = plus(v530, v531);
   real2 v1058 = minus(v807, v806);
   real2 v1062 = plus(v806, v807);
   real2 v803 = minusplus(v801, v802);
   real2 v805 = minusplus(uminus(v801), v802);
   real2 v811 = ctimesminusplus(reverse(v803), ctbl[11], ctimes(v803, ctbl[9]));
   real2 v128 = load(in, 126 << shift);
   real2 v64 = load(in, 62 << shift);
   real2 v669 = reverse(minus(v64, v128));
   real2 v675 = plus(v64, v128);
   real2 v32 = load(in, 30 << shift);
   real2 v96 = load(in, 94 << shift);
   real2 v674 = plus(v32, v96);
   real2 v670 = minus(v96, v32);
   real2 v935 = plus(v674, v675);
   real2 v929 = reverse(minus(v674, v675));
   real2 v80 = load(in, 78 << shift);
   real2 v16 = load(in, 14 << shift);
   real2 v389 = minus(v80, v16);
   real2 v393 = plus(v16, v80);
   real2 v112 = load(in, 110 << shift);
   real2 v48 = load(in, 46 << shift);
   real2 v394 = plus(v48, v112);
   real2 v388 = reverse(minus(v48, v112));
   real2 v930 = minus(v394, v393);
   real2 v934 = plus(v393, v394);
   real2 v1063 = plus(v934, v935);
   real2 v1057 = reverse(minus(v934, v935));
   real2 v1059 = minusplus(v1057, v1058);
   real2 v1061 = minusplus(uminus(v1057), v1058);
   real2 v1127 = plus(v1062, v1063);
   real2 v1121 = reverse(minus(v1062, v1063));
   real2 v1123 = minusplus(v1121, v1122);
   real2 v1125 = minusplus(uminus(v1121), v1122);
   real2 v1135 = ctimesminusplus(reverse(v1125), ctbl[1], ctimes(v1125, ctbl[0]));
   real2 v1071 = ctimesminusplus(reverse(v1061), ctbl[4], ctimes(v1061, ctbl[2]));
   real2 v1311 = plus(v1007, v1071);
   real2 v1305 = reverse(minus(v1007, v1071));
   real2 v1131 = ctimesminusplus(reverse(v1123), ctbl[1], ctimes(v1123, ctbl[1]));
   real2 v1153 = reverse(minus(v1126, v1127));
   real2 v1159 = plus(v1126, v1127);
   real2 v1067 = ctimesminusplus(reverse(v1059), ctbl[5], ctimes(v1059, ctbl[3]));
   real2 v1248 = reverse(minus(v1003, v1067));
   real2 v1254 = plus(v1003, v1067);
   real2 v94 = load(in, 92 << shift);
   real2 v30 = load(in, 28 << shift);
   real2 v634 = minus(v94, v30);
   real2 v638 = plus(v30, v94);
   real2 v126 = load(in, 124 << shift);
   real2 v62 = load(in, 60 << shift);
   real2 v633 = reverse(minus(v62, v126));
   real2 v639 = plus(v62, v126);
   real2 v897 = reverse(minus(v638, v639));
   real2 v903 = plus(v638, v639);
   real2 v42 = load(in, 40 << shift);
   real2 v106 = load(in, 104 << shift);
   real2 v283 = reverse(minus(v42, v106));
   real2 v289 = plus(v42, v106);
   real2 v10 = load(in, 8 << shift);
   real2 v74 = load(in, 72 << shift);
   real2 v284 = minus(v74, v10);
   real2 v288 = plus(v10, v74);
   real2 v838 = plus(v288, v289);
   real2 v834 = minus(v289, v288);
   real2 v26 = load(in, 24 << shift);
   real2 v90 = load(in, 88 << shift);
   real2 v562 = minus(v90, v26);
   real2 v566 = plus(v26, v90);
   real2 v122 = load(in, 120 << shift);
   real2 v58 = load(in, 56 << shift);
   real2 v567 = plus(v58, v122);
   real2 v561 = reverse(minus(v58, v122));
   real2 v833 = reverse(minus(v566, v567));
   real2 v839 = plus(v566, v567);
   real2 v967 = plus(v838, v839);
   real2 v961 = reverse(minus(v838, v839));
   real2 v14 = load(in, 12 << shift);
   real2 v78 = load(in, 76 << shift);
   real2 v353 = minus(v78, v14);
   real2 v357 = plus(v14, v78);
   real2 v46 = load(in, 44 << shift);
   real2 v110 = load(in, 108 << shift);
   real2 v358 = plus(v46, v110);
   real2 v352 = reverse(minus(v46, v110));
   real2 v898 = minus(v358, v357);
   real2 v902 = plus(v357, v358);
   real2 v1025 = reverse(minus(v902, v903));
   real2 v1031 = plus(v902, v903);
   real2 v114 = load(in, 112 << shift);
   real2 v50 = load(in, 48 << shift);
   real2 v422 = reverse(minus(v50, v114));
   real2 v428 = plus(v50, v114);
   real2 v2 = load(in, 0 << shift);
   real2 v66 = load(in, 64 << shift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << shift);
   real2 v34 = load(in, 32 << shift);
   real2 v137 = plus(v34, v98);
   real2 v131 = reverse(minus(v34, v98));
   real2 v706 = minus(v137, v136);
   real2 v710 = plus(v136, v137);
   real2 v18 = load(in, 16 << shift);
   real2 v82 = load(in, 80 << shift);
   real2 v427 = plus(v18, v82);
   real2 v423 = minus(v82, v18);
   real2 v705 = reverse(minus(v427, v428));
   real2 v711 = plus(v427, v428);
   real2 v966 = plus(v710, v711);
   real2 v962 = minus(v711, v710);
   real2 v1090 = minus(v967, v966);
   real2 v1094 = plus(v966, v967);
   real2 v70 = load(in, 68 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v210 = plus(v6, v70);
   real2 v206 = minus(v70, v6);
   real2 v38 = load(in, 36 << shift);
   real2 v102 = load(in, 100 << shift);
   real2 v211 = plus(v38, v102);
   real2 v205 = reverse(minus(v38, v102));
   real2 v774 = plus(v210, v211);
   real2 v770 = minus(v211, v210);
   real2 v22 = load(in, 20 << shift);
   real2 v86 = load(in, 84 << shift);
   real2 v492 = minus(v86, v22);
   real2 v496 = plus(v22, v86);
   real2 v118 = load(in, 116 << shift);
   real2 v54 = load(in, 52 << shift);
   real2 v497 = plus(v54, v118);
   real2 v491 = reverse(minus(v54, v118));
   real2 v775 = plus(v496, v497);
   real2 v769 = reverse(minus(v496, v497));
   real2 v1030 = plus(v774, v775);
   real2 v1026 = minus(v775, v774);
   real2 v1095 = plus(v1030, v1031);
   real2 v1089 = reverse(minus(v1030, v1031));
   real2 v1103 = minus(uminusplus(v1089), v1090);
   real2 v1099 = minus(uplusminus(v1089), v1090);
   real2 v1230 = minus(v1135, v1103);
   store(out, 56 << shift, minus(uplusminus(v1229), v1230));
   store(out, 120 << shift, minus(uminusplus(v1229), v1230));
   real2 v1234 = plus(v1103, v1135);
   store(out, 24 << shift, plus(v1234, v1235));
   store(out, 88 << shift, minus(v1234, v1235));
   real2 v1211 = minus(v1131, v1099);
   real2 v1215 = plus(v1099, v1131);
   store(out, 8 << shift, plus(v1215, v1216));
   store(out, 72 << shift, minus(v1215, v1216));
   store(out, 40 << shift, minus(uplusminus(v1210), v1211));
   store(out, 104 << shift, minus(uminusplus(v1210), v1211));
   real2 v1158 = plus(v1094, v1095);
   real2 v1154 = minus(v1095, v1094);
   real2 v1186 = minus(v1159, v1158);
   store(out, 32 << shift, minus(uplusminus(v1185), v1186));
   store(out, 96 << shift, minus(uminusplus(v1185), v1186));
   real2 v1190 = plus(v1158, v1159);
   store(out, 64 << shift, minus(v1190, v1191));
   store(out, 0 << shift, plus(v1190, v1191));
   real2 v1163 = minus(uplusminus(v1153), v1154);
   store(out, 16 << shift, plus(v1163, v1179));
   store(out, 80 << shift, minus(v1163, v1179));
   real2 v1167 = minus(uminusplus(v1153), v1154);
   store(out, 112 << shift, minus(v1167, v1183));
   store(out, 48 << shift, plus(v1167, v1183));
   real2 v971 = minus(uplusminus(v961), v962);
   real2 v975 = minus(uminusplus(v961), v962);
   real2 v1027 = minusplus(v1025, v1026);
   real2 v1029 = minusplus(uminus(v1025), v1026);
   real2 v1039 = ctimesminusplus(reverse(v1029), ctbl[1], ctimes(v1029, ctbl[0]));
   real2 v1306 = minus(v1039, v975);
   real2 v1310 = plus(v975, v1039);
   real2 v1319 = minus(uminusplus(v1305), v1306);
   real2 v1315 = minus(uplusminus(v1305), v1306);
   store(out, 124 << shift, minus(v1319, v1335));
   store(out, 60 << shift, plus(v1319, v1335));
   store(out, 28 << shift, plus(v1315, v1331));
   store(out, 92 << shift, minus(v1315, v1331));
   real2 v1342 = plus(v1310, v1311);
   store(out, 76 << shift, minus(v1342, v1343));
   store(out, 12 << shift, plus(v1342, v1343));
   real2 v1338 = minus(v1311, v1310);
   store(out, 44 << shift, minus(uplusminus(v1337), v1338));
   store(out, 108 << shift, minus(uminusplus(v1337), v1338));
   real2 v1035 = ctimesminusplus(reverse(v1027), ctbl[1], ctimes(v1027, ctbl[1]));
   real2 v1249 = minus(v1035, v971);
   real2 v1253 = plus(v971, v1035);
   real2 v1262 = minus(uminusplus(v1248), v1249);
   real2 v1258 = minus(uplusminus(v1248), v1249);
   store(out, 84 << shift, minus(v1258, v1274));
   store(out, 20 << shift, plus(v1258, v1274));
   store(out, 52 << shift, plus(v1262, v1278));
   store(out, 116 << shift, minus(v1262, v1278));
   real2 v1281 = minus(v1254, v1253);
   real2 v1285 = plus(v1253, v1254);
   store(out, 68 << shift, minus(v1285, v1286));
   store(out, 4 << shift, plus(v1285, v1286));
   store(out, 100 << shift, minus(uminusplus(v1280), v1281));
   store(out, 36 << shift, minus(uplusminus(v1280), v1281));
   real2 v835 = minusplus(v833, v834);
   real2 v837 = minusplus(uminus(v833), v834);
   real2 v843 = ctimesminusplus(reverse(v835), ctbl[1], ctimes(v835, ctbl[1]));
   real2 v773 = minusplus(uminus(v769), v770);
   real2 v771 = minusplus(v769, v770);
   real2 v779 = ctimesminusplus(reverse(v771), ctbl[3], ctimes(v771, ctbl[5]));
   real2 v901 = minusplus(uminus(v897), v898);
   real2 v899 = minusplus(v897, v898);
   real2 v907 = ctimesminusplus(reverse(v899), ctbl[5], ctimes(v899, ctbl[3]));
   real2 v719 = minus(uminusplus(v705), v706);
   real2 v715 = minus(uplusminus(v705), v706);
   real2 v933 = minusplus(uminus(v929), v930);
   real2 v931 = minusplus(v929, v930);
   real2 v939 = ctimesminusplus(reverse(v931), ctbl[13], ctimes(v931, ctbl[7]));
   real2 v1394 = reverse(minus(v811, v939));
   real2 v1400 = plus(v811, v939);
   real2 v1426 = reverse(minus(v1399, v1400));
   real2 v1432 = plus(v1399, v1400);
   real2 v1367 = plus(v715, v843);
   real2 v1363 = minus(v843, v715);
   real2 v1368 = plus(v779, v907);
   real2 v1362 = reverse(minus(v779, v907));
   real2 v1427 = minus(v1368, v1367);
   real2 v1431 = plus(v1367, v1368);
   real2 v1440 = minus(uminusplus(v1426), v1427);
   real2 v1436 = minus(uplusminus(v1426), v1427);
   store(out, 18 << shift, plus(v1436, v1452));
   store(out, 82 << shift, minus(v1436, v1452));
   store(out, 114 << shift, minus(v1440, v1456));
   store(out, 50 << shift, plus(v1440, v1456));
   real2 v1459 = minus(v1432, v1431);
   store(out, 98 << shift, minus(uminusplus(v1458), v1459));
   store(out, 34 << shift, minus(uplusminus(v1458), v1459));
   real2 v1463 = plus(v1431, v1432);
   store(out, 2 << shift, plus(v1463, v1464));
   store(out, 66 << shift, minus(v1463, v1464));
   real2 v1372 = minus(uplusminus(v1362), v1363);
   real2 v1376 = minus(uminusplus(v1362), v1363);
   real2 v1398 = minusplus(uminus(v1394), v1395);
   real2 v1396 = minusplus(v1394, v1395);
   real2 v1404 = ctimesminusplus(reverse(v1396), ctbl[1], ctimes(v1396, ctbl[1]));
   real2 v1484 = minus(v1404, v1372);
   store(out, 106 << shift, minus(uminusplus(v1483), v1484));
   store(out, 42 << shift, minus(uplusminus(v1483), v1484));
   real2 v1488 = plus(v1372, v1404);
   store(out, 10 << shift, plus(v1488, v1489));
   store(out, 74 << shift, minus(v1488, v1489));
   real2 v1408 = ctimesminusplus(reverse(v1398), ctbl[1], ctimes(v1398, ctbl[0]));
   real2 v1503 = minus(v1408, v1376);
   store(out, 122 << shift, minus(uminusplus(v1502), v1503));
   store(out, 58 << shift, minus(uplusminus(v1502), v1503));
   real2 v1507 = plus(v1376, v1408);
   store(out, 90 << shift, minus(v1507, v1508));
   store(out, 26 << shift, plus(v1507, v1508));
   real2 v847 = ctimesminusplus(reverse(v837), ctbl[1], ctimes(v837, ctbl[0]));
   real2 v911 = ctimesminusplus(reverse(v901), ctbl[4], ctimes(v901, ctbl[2]));
   real2 v815 = ctimesminusplus(reverse(v805), ctbl[13], ctimes(v805, ctbl[12]));
   real2 v1522 = minus(v847, v719);
   real2 v1526 = plus(v719, v847);
   real2 v751 = ctimesminusplus(reverse(v741), ctbl[11], ctimes(v741, ctbl[9]));
   real2 v1554 = minus(v879, v751);
   real2 v1558 = plus(v751, v879);
   real2 v943 = ctimesminusplus(reverse(v933), ctbl[10], ctimes(v933, ctbl[8]));
   real2 v1553 = reverse(minus(v815, v943));
   real2 v1559 = plus(v815, v943);
   real2 v1591 = plus(v1558, v1559);
   real2 v1585 = reverse(minus(v1558, v1559));
   real2 v783 = ctimesminusplus(reverse(v773), ctbl[5], ctimes(v773, ctbl[3]));
   real2 v1521 = reverse(minus(v783, v911));
   real2 v1527 = plus(v783, v911);
   real2 v1586 = minus(v1527, v1526);
   real2 v1590 = plus(v1526, v1527);
   real2 v1595 = minus(uplusminus(v1585), v1586);
   store(out, 22 << shift, plus(v1595, v1611));
   store(out, 86 << shift, minus(v1595, v1611));
   real2 v1599 = minus(uminusplus(v1585), v1586);
   store(out, 118 << shift, minus(v1599, v1615));
   store(out, 54 << shift, plus(v1599, v1615));
   real2 v1622 = plus(v1590, v1591);
   store(out, 70 << shift, minus(v1622, v1623));
   store(out, 6 << shift, plus(v1622, v1623));
   real2 v1618 = minus(v1591, v1590);
   store(out, 102 << shift, minus(uminusplus(v1617), v1618));
   store(out, 38 << shift, minus(uplusminus(v1617), v1618));
   real2 v1557 = minusplus(uminus(v1553), v1554);
   real2 v1555 = minusplus(v1553, v1554);
   real2 v1563 = ctimesminusplus(reverse(v1555), ctbl[1], ctimes(v1555, ctbl[1]));
   real2 v1531 = minus(uplusminus(v1521), v1522);
   real2 v1535 = minus(uminusplus(v1521), v1522);
   real2 v1643 = minus(v1563, v1531);
   store(out, 46 << shift, minus(uplusminus(v1642), v1643));
   store(out, 110 << shift, minus(uminusplus(v1642), v1643));
   real2 v1647 = plus(v1531, v1563);
   store(out, 78 << shift, minus(v1647, v1648));
   store(out, 14 << shift, plus(v1647, v1648));
   real2 v1567 = ctimesminusplus(reverse(v1557), ctbl[1], ctimes(v1557, ctbl[0]));
   real2 v1666 = plus(v1535, v1567);
   real2 v1662 = minus(v1567, v1535);
   store(out, 94 << shift, minus(v1666, v1667));
   store(out, 30 << shift, plus(v1666, v1667));
   store(out, 126 << shift, minus(uminusplus(v1661), v1662));
   store(out, 62 << shift, minus(uplusminus(v1661), v1662));
   real2 v426 = minusplus(uminus(v422), v423);
   real2 v424 = minusplus(v422, v423);
   real2 v433 = ctimesminusplus(reverse(v424), ctbl[1], ctimes(v424, ctbl[1]));
   real2 v141 = minus(uplusminus(v131), v132);
   real2 v145 = minus(uminusplus(v131), v132);
   real2 v1685 = plus(v141, v433);
   real2 v1681 = minus(v433, v141);
   real2 v247 = minusplus(v245, v246);
   real2 v249 = minusplus(uminus(v245), v246);
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   real2 v217 = ctimesminusplus(reverse(v207), ctbl[7], ctimes(v207, ctbl[13]));
   real2 v321 = minusplus(uminus(v317), v318);
   real2 v319 = minusplus(v317, v318);
   real2 v565 = minusplus(uminus(v561), v562);
   real2 v563 = minusplus(v561, v562);
   real2 v285 = minusplus(v283, v284);
   real2 v287 = minusplus(uminus(v283), v284);
   real2 v295 = ctimesminusplus(reverse(v285), ctbl[3], ctimes(v285, ctbl[5]));
   real2 v329 = ctimesminusplus(reverse(v319), ctbl[19], ctimes(v319, ctbl[25]));
   real2 v571 = ctimesminusplus(reverse(v563), ctbl[5], ctimes(v563, ctbl[3]));
   real2 v1680 = reverse(minus(v295, v571));
   real2 v1686 = plus(v295, v571);
   real2 v601 = minusplus(uminus(v597), v598);
   real2 v599 = minusplus(v597, v598);
   real2 v607 = ctimesminusplus(reverse(v599), ctbl[21], ctimes(v599, ctbl[23]));
   real2 v1718 = plus(v329, v607);
   real2 v1712 = reverse(minus(v329, v607));
   real2 v527 = minusplus(v525, v526);
   real2 v529 = minusplus(uminus(v525), v526);
   real2 v461 = minusplus(uminus(v457), v458);
   real2 v459 = minusplus(v457, v458);
   real2 v467 = ctimesminusplus(reverse(v459), ctbl[17], ctimes(v459, ctbl[27]));
   real2 v255 = ctimesminusplus(reverse(v247), ctbl[23], ctimes(v247, ctbl[21]));
   real2 v637 = minusplus(uminus(v633), v634);
   real2 v635 = minusplus(v633, v634);
   real2 v643 = ctimesminusplus(reverse(v635), ctbl[13], ctimes(v635, ctbl[7]));
   real2 v1813 = plus(v1685, v1686);
   real2 v1809 = minus(v1686, v1685);
   real2 v493 = minusplus(v491, v492);
   real2 v495 = minusplus(uminus(v491), v492);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v169 = minusplus(v167, v168);
   real2 v354 = minusplus(v352, v353);
   real2 v356 = minusplus(uminus(v352), v353);
   real2 v362 = ctimesminusplus(reverse(v354), ctbl[11], ctimes(v354, ctbl[9]));
   real2 v179 = ctimesminusplus(reverse(v169), ctbl[15], ctimes(v169, ctbl[29]));
   real2 v1717 = plus(v179, v467);
   real2 v1713 = minus(v467, v179);
   real2 v1841 = minus(v1718, v1717);
   real2 v1845 = plus(v1717, v1718);
   real2 v501 = ctimesminusplus(reverse(v493), ctbl[9], ctimes(v493, ctbl[11]));
   real2 v1745 = minus(v501, v217);
   real2 v1749 = plus(v217, v501);
   real2 v671 = minusplus(v669, v670);
   real2 v673 = minusplus(uminus(v669), v670);
   real2 v679 = ctimesminusplus(reverse(v671), ctbl[29], ctimes(v671, ctbl[15]));
   real2 v535 = ctimesminusplus(reverse(v527), ctbl[25], ctimes(v527, ctbl[19]));
   real2 v1781 = plus(v255, v535);
   real2 v1777 = minus(v535, v255);
   real2 v1825 = minus(v1702, v1701);
   real2 v1829 = plus(v1701, v1702);
   real2 v1889 = minus(v1830, v1829);
   real2 v1893 = plus(v1829, v1830);
   real2 v1910 = plus(v1893, v1894);
   real2 v1904 = reverse(minus(v1893, v1894));
   real2 v392 = minusplus(uminus(v388), v389);
   real2 v390 = minusplus(v388, v389);
   real2 v398 = ctimesminusplus(reverse(v390), ctbl[27], ctimes(v390, ctbl[17]));
   real2 v1776 = reverse(minus(v398, v679));
   real2 v1782 = plus(v398, v679);
   real2 v1744 = reverse(minus(v362, v643));
   real2 v1750 = plus(v362, v643);
   real2 v1808 = reverse(minus(v1749, v1750));
   real2 v1814 = plus(v1749, v1750);
   real2 v1873 = minus(v1814, v1813);
   real2 v1877 = plus(v1813, v1814);
   real2 v1846 = plus(v1781, v1782);
   real2 v1840 = reverse(minus(v1781, v1782));
   real2 v1872 = reverse(minus(v1845, v1846));
   real2 v1878 = plus(v1845, v1846);
   real2 v1909 = plus(v1877, v1878);
   store(out, 1 << shift, plus(v1909, v1910));
   store(out, 65 << shift, minus(v1909, v1910));
   real2 v1905 = minus(v1878, v1877);
   store(out, 33 << shift, minus(uplusminus(v1904), v1905));
   store(out, 97 << shift, minus(uminusplus(v1904), v1905));
   real2 v1822 = minus(uminusplus(v1808), v1809);
   real2 v1818 = minus(uplusminus(v1808), v1809);
   real2 v1826 = minusplus(v1824, v1825);
   real2 v1828 = minusplus(uminus(v1824), v1825);
   real2 v1838 = ctimesminusplus(reverse(v1828), ctbl[5], ctimes(v1828, ctbl[3]));
   real2 v1948 = reverse(minus(v1838, v1870));
   real2 v1954 = plus(v1838, v1870);
   real2 v1844 = minusplus(uminus(v1840), v1841);
   real2 v1842 = minusplus(v1840, v1841);
   real2 v1854 = ctimesminusplus(reverse(v1844), ctbl[1], ctimes(v1844, ctbl[0]));
   real2 v1953 = plus(v1822, v1854);
   real2 v1949 = minus(v1854, v1822);
   store(out, 89 << shift, minus(v1953, v1954));
   store(out, 25 << shift, plus(v1953, v1954));
   store(out, 121 << shift, minus(uminusplus(v1948), v1949));
   store(out, 57 << shift, minus(uplusminus(v1948), v1949));
   real2 v1834 = ctimesminusplus(reverse(v1826), ctbl[3], ctimes(v1826, ctbl[5]));
   real2 v1850 = ctimesminusplus(reverse(v1842), ctbl[1], ctimes(v1842, ctbl[1]));
   real2 v1929 = reverse(minus(v1834, v1866));
   real2 v1935 = plus(v1834, v1866);
   real2 v1934 = plus(v1818, v1850);
   real2 v1930 = minus(v1850, v1818);
   store(out, 105 << shift, minus(uminusplus(v1929), v1930));
   store(out, 41 << shift, minus(uplusminus(v1929), v1930));
   store(out, 73 << shift, minus(v1934, v1935));
   store(out, 9 << shift, plus(v1934, v1935));
   real2 v1890 = minusplus(v1888, v1889);
   real2 v1892 = minusplus(uminus(v1888), v1889);
   real2 v1902 = ctimesminusplus(reverse(v1892), ctbl[1], ctimes(v1892, ctbl[0]));
   real2 v1886 = minus(uminusplus(v1872), v1873);
   store(out, 113 << shift, minus(v1886, v1902));
   store(out, 49 << shift, plus(v1886, v1902));
   real2 v1882 = minus(uplusminus(v1872), v1873);
   real2 v1898 = ctimesminusplus(reverse(v1890), ctbl[1], ctimes(v1890, ctbl[1]));
   store(out, 17 << shift, plus(v1882, v1898));
   store(out, 81 << shift, minus(v1882, v1898));
   real2 v1700 = minusplus(uminus(v1696), v1697);
   real2 v1698 = minusplus(v1696, v1697);
   real2 v1690 = minus(uplusminus(v1680), v1681);
   real2 v1694 = minus(uminusplus(v1680), v1681);
   real2 v1778 = minusplus(v1776, v1777);
   real2 v1780 = minusplus(uminus(v1776), v1777);
   real2 v1774 = ctimesminusplus(reverse(v1764), ctbl[7], ctimes(v1764, ctbl[6]));
   real2 v1710 = ctimesminusplus(reverse(v1700), ctbl[11], ctimes(v1700, ctbl[9]));
   real2 v2041 = minus(v1774, v1710);
   real2 v2045 = plus(v1710, v1774);
   real2 v1714 = minusplus(v1712, v1713);
   real2 v1716 = minusplus(uminus(v1712), v1713);
   real2 v2042 = minusplus(v2040, v2041);
   real2 v2044 = minusplus(uminus(v2040), v2041);
   real2 v2054 = ctimesminusplus(reverse(v2044), ctbl[1], ctimes(v2044, ctbl[0]));
   real2 v1726 = ctimesminusplus(reverse(v1716), ctbl[5], ctimes(v1716, ctbl[3]));
   real2 v1748 = minusplus(uminus(v1744), v1745);
   real2 v1746 = minusplus(v1744, v1745);
   real2 v1758 = ctimesminusplus(reverse(v1748), ctbl[1], ctimes(v1748, ctbl[0]));
   real2 v2029 = plus(v1694, v1758);
   real2 v2025 = minus(v1758, v1694);
   real2 v1790 = ctimesminusplus(reverse(v1780), ctbl[4], ctimes(v1780, ctbl[2]));
   real2 v2024 = reverse(minus(v1726, v1790));
   real2 v2030 = plus(v1726, v1790);
   real2 v2038 = minus(uminusplus(v2024), v2025);
   store(out, 61 << shift, plus(v2038, v2054));
   store(out, 125 << shift, minus(v2038, v2054));
   real2 v2034 = minus(uplusminus(v2024), v2025);
   real2 v2050 = ctimesminusplus(reverse(v2042), ctbl[1], ctimes(v2042, ctbl[1]));
   store(out, 93 << shift, minus(v2034, v2050));
   store(out, 29 << shift, plus(v2034, v2050));
   real2 v2056 = reverse(minus(v2045, v2046));
   real2 v2062 = plus(v2045, v2046);
   real2 v2061 = plus(v2029, v2030);
   store(out, 13 << shift, plus(v2061, v2062));
   store(out, 77 << shift, minus(v2061, v2062));
   real2 v2057 = minus(v2030, v2029);
   store(out, 45 << shift, minus(uplusminus(v2056), v2057));
   store(out, 109 << shift, minus(uminusplus(v2056), v2057));
   real2 v1754 = ctimesminusplus(reverse(v1746), ctbl[1], ctimes(v1746, ctbl[1]));
   real2 v1722 = ctimesminusplus(reverse(v1714), ctbl[3], ctimes(v1714, ctbl[5]));
   real2 v1770 = ctimesminusplus(reverse(v1762), ctbl[9], ctimes(v1762, ctbl[11]));
   real2 v1706 = ctimesminusplus(reverse(v1698), ctbl[7], ctimes(v1698, ctbl[13]));
   real2 v1988 = plus(v1706, v1770);
   real2 v1984 = minus(v1770, v1706);
   real2 v1968 = minus(v1754, v1690);
   real2 v1972 = plus(v1690, v1754);
   real2 v1985 = minusplus(v1983, v1984);
   real2 v1987 = minusplus(uminus(v1983), v1984);
   real2 v1993 = ctimesminusplus(reverse(v1985), ctbl[1], ctimes(v1985, ctbl[1]));
   real2 v1786 = ctimesminusplus(reverse(v1778), ctbl[5], ctimes(v1778, ctbl[3]));
   real2 v1967 = reverse(minus(v1722, v1786));
   real2 v1973 = plus(v1722, v1786);
   real2 v1977 = minus(uplusminus(v1967), v1968);
   real2 v1981 = minus(uminusplus(v1967), v1968);
   store(out, 85 << shift, minus(v1977, v1993));
   store(out, 21 << shift, plus(v1977, v1993));
   real2 v1997 = ctimesminusplus(reverse(v1987), ctbl[1], ctimes(v1987, ctbl[0]));
   store(out, 117 << shift, minus(v1981, v1997));
   store(out, 53 << shift, plus(v1981, v1997));
   real2 v2004 = plus(v1972, v1973);
   real2 v2000 = minus(v1973, v1972);
   real2 v1999 = reverse(minus(v1988, v1989));
   real2 v2005 = plus(v1988, v1989);
   store(out, 5 << shift, plus(v2004, v2005));
   store(out, 69 << shift, minus(v2004, v2005));
   store(out, 37 << shift, minus(uplusminus(v1999), v2000));
   store(out, 101 << shift, minus(uminusplus(v1999), v2000));
   real2 v333 = ctimesminusplus(reverse(v321), ctbl[29], ctimes(v321, ctbl[15]));
   real2 v613 = ctimesminusplus(reverse(v601), ctbl[16], ctimes(v601, ctbl[26]));
   real2 v2113 = reverse(minus(v333, v613));
   real2 v2119 = plus(v333, v613);
   real2 v595 = ctimesminusplus(reverse(v583), ctbl[40], ctimes(v583, ctbl[50]));
   real2 v455 = ctimesminusplus(reverse(v444), ctbl[43], ctimes(v444, ctbl[42]));
   real2 v165 = ctimesminusplus(reverse(v151), ctbl[47], ctimes(v151, ctbl[45]));
   real2 v2102 = plus(v165, v455);
   real2 v2098 = minus(v455, v165);
   real2 v315 = ctimesminusplus(reverse(v305), ctbl[53], ctimes(v305, ctbl[39]));
   real2 v2097 = reverse(minus(v315, v595));
   real2 v2103 = plus(v315, v595);
   real2 v261 = ctimesminusplus(reverse(v249), ctbl[17], ctimes(v249, ctbl[27]));
   real2 v299 = ctimesminusplus(reverse(v287), ctbl[5], ctimes(v287, ctbl[3]));
   real2 v523 = ctimesminusplus(reverse(v512), ctbl[31], ctimes(v512, ctbl[30]));
   real2 v541 = ctimesminusplus(reverse(v529), ctbl[28], ctimes(v529, ctbl[14]));
   real2 v2182 = plus(v261, v541);
   real2 v2178 = minus(v541, v261);
   real2 v243 = ctimesminusplus(reverse(v229), ctbl[59], ctimes(v229, ctbl[33]));
   real2 v667 = ctimesminusplus(reverse(v655), ctbl[34], ctimes(v655, ctbl[56]));
   real2 v2166 = plus(v243, v523);
   real2 v2162 = minus(v523, v243);
   real2 v386 = ctimesminusplus(reverse(v373), ctbl[37], ctimes(v373, ctbl[36]));
   real2 v2161 = reverse(minus(v386, v667));
   real2 v2167 = plus(v386, v667);
   real2 v472 = ctimesminusplus(reverse(v461), ctbl[19], ctimes(v461, ctbl[18]));
   real2 v185 = ctimesminusplus(reverse(v171), ctbl[23], ctimes(v171, ctbl[21]));
   real2 v2114 = minus(v472, v185);
   real2 v2118 = plus(v185, v472);
   real2 v420 = ctimesminusplus(reverse(v409), ctbl[49], ctimes(v409, ctbl[48]));
   real2 v506 = ctimesminusplus(reverse(v495), ctbl[7], ctimes(v495, ctbl[6]));
   real2 v2199 = plus(v420, v703);
   real2 v2193 = reverse(minus(v420, v703));
   real2 v649 = ctimesminusplus(reverse(v637), ctbl[10], ctimes(v637, ctbl[8]));
   real2 v223 = ctimesminusplus(reverse(v209), ctbl[11], ctimes(v209, ctbl[9]));
   real2 v2146 = minus(v506, v223);
   real2 v2150 = plus(v223, v506);
   real2 v2231 = plus(v2166, v2167);
   real2 v2225 = reverse(minus(v2166, v2167));
   real2 v685 = ctimesminusplus(reverse(v673), ctbl[22], ctimes(v673, ctbl[20]));
   real2 v2257 = reverse(minus(v2198, v2199));
   real2 v2263 = plus(v2198, v2199);
   real2 v2226 = minus(v2103, v2102);
   real2 v2230 = plus(v2102, v2103);
   real2 v2294 = plus(v2230, v2231);
   real2 v2290 = minus(v2231, v2230);
   real2 v2246 = plus(v2118, v2119);
   real2 v2242 = minus(v2119, v2118);
   real2 v577 = ctimesminusplus(reverse(v565), ctbl[4], ctimes(v565, ctbl[2]));
   real2 v2081 = reverse(minus(v299, v577));
   real2 v2087 = plus(v299, v577);
   real2 v403 = ctimesminusplus(reverse(v392), ctbl[25], ctimes(v392, ctbl[24]));
   real2 v2177 = reverse(minus(v403, v685));
   real2 v2183 = plus(v403, v685);
   real2 v438 = ctimesminusplus(reverse(v426), ctbl[1], ctimes(v426, ctbl[0]));
   real2 v2086 = plus(v145, v438);
   real2 v2082 = minus(v438, v145);
   real2 v2210 = minus(v2087, v2086);
   real2 v2214 = plus(v2086, v2087);
   real2 v2247 = plus(v2182, v2183);
   real2 v2241 = reverse(minus(v2182, v2183));
   real2 v2279 = plus(v2246, v2247);
   real2 v2273 = reverse(minus(v2246, v2247));
   real2 v367 = ctimesminusplus(reverse(v356), ctbl[13], ctimes(v356, ctbl[12]));
   real2 v2151 = plus(v367, v649);
   real2 v2145 = reverse(minus(v367, v649));
   real2 v2209 = reverse(minus(v2150, v2151));
   real2 v2215 = plus(v2150, v2151);
   real2 v2274 = minus(v2215, v2214);
   real2 v2278 = plus(v2214, v2215);
   real2 v2310 = plus(v2278, v2279);
   real2 v2306 = minus(v2279, v2278);
   real2 v2295 = plus(v2262, v2263);
   real2 v2289 = reverse(minus(v2262, v2263));
   real2 v2311 = plus(v2294, v2295);
   store(out, 3 << shift, plus(v2310, v2311));
   store(out, 67 << shift, minus(v2310, v2311));
   real2 v2305 = reverse(minus(v2294, v2295));
   store(out, 35 << shift, minus(uplusminus(v2305), v2306));
   store(out, 99 << shift, minus(uminusplus(v2305), v2306));
   real2 v2287 = minus(uminusplus(v2273), v2274);
   real2 v2283 = minus(uplusminus(v2273), v2274);
   real2 v2291 = minusplus(v2289, v2290);
   real2 v2293 = minusplus(uminus(v2289), v2290);
   real2 v2299 = ctimesminusplus(reverse(v2291), ctbl[1], ctimes(v2291, ctbl[1]));
   store(out, 19 << shift, plus(v2283, v2299));
   store(out, 83 << shift, minus(v2283, v2299));
   real2 v2303 = ctimesminusplus(reverse(v2293), ctbl[1], ctimes(v2293, ctbl[0]));
   store(out, 51 << shift, plus(v2287, v2303));
   store(out, 115 << shift, minus(v2287, v2303));
   real2 v2229 = minusplus(uminus(v2225), v2226);
   real2 v2227 = minusplus(v2225, v2226);
   real2 v2235 = ctimesminusplus(reverse(v2227), ctbl[3], ctimes(v2227, ctbl[5]));
   real2 v2219 = minus(uplusminus(v2209), v2210);
   real2 v2223 = minus(uminusplus(v2209), v2210);
   real2 v2243 = minusplus(v2241, v2242);
   real2 v2245 = minusplus(uminus(v2241), v2242);
   real2 v2251 = ctimesminusplus(reverse(v2243), ctbl[1], ctimes(v2243, ctbl[1]));
   real2 v2331 = minus(v2251, v2219);
   real2 v2335 = plus(v2219, v2251);
   real2 v2259 = minusplus(v2257, v2258);
   real2 v2261 = minusplus(uminus(v2257), v2258);
   real2 v2267 = ctimesminusplus(reverse(v2259), ctbl[5], ctimes(v2259, ctbl[3]));
   real2 v2336 = plus(v2235, v2267);
   store(out, 75 << shift, minus(v2335, v2336));
   store(out, 11 << shift, plus(v2335, v2336));
   real2 v2330 = reverse(minus(v2235, v2267));
   store(out, 107 << shift, minus(uminusplus(v2330), v2331));
   store(out, 43 << shift, minus(uplusminus(v2330), v2331));
   real2 v2239 = ctimesminusplus(reverse(v2229), ctbl[5], ctimes(v2229, ctbl[3]));
   real2 v2271 = ctimesminusplus(reverse(v2261), ctbl[4], ctimes(v2261, ctbl[2]));
   real2 v2255 = ctimesminusplus(reverse(v2245), ctbl[1], ctimes(v2245, ctbl[0]));
   real2 v2350 = minus(v2255, v2223);
   real2 v2354 = plus(v2223, v2255);
   real2 v2355 = plus(v2239, v2271);
   store(out, 91 << shift, minus(v2354, v2355));
   store(out, 27 << shift, plus(v2354, v2355));
   real2 v2349 = reverse(minus(v2239, v2271));
   store(out, 59 << shift, minus(uplusminus(v2349), v2350));
   store(out, 123 << shift, minus(uminusplus(v2349), v2350));
   real2 v2091 = minus(uplusminus(v2081), v2082);
   real2 v2095 = minus(uminusplus(v2081), v2082);
   real2 v2181 = minusplus(uminus(v2177), v2178);
   real2 v2179 = minusplus(v2177, v2178);
   real2 v2101 = minusplus(uminus(v2097), v2098);
   real2 v2099 = minusplus(v2097, v2098);
   real2 v2165 = minusplus(uminus(v2161), v2162);
   real2 v2163 = minusplus(v2161, v2162);
   real2 v2147 = minusplus(v2145, v2146);
   real2 v2149 = minusplus(uminus(v2145), v2146);
   real2 v2155 = ctimesminusplus(reverse(v2147), ctbl[1], ctimes(v2147, ctbl[1]));
   real2 v2197 = minusplus(uminus(v2193), v2194);
   real2 v2195 = minusplus(v2193, v2194);
   real2 v2117 = minusplus(uminus(v2113), v2114);
   real2 v2115 = minusplus(v2113, v2114);
   real2 v2123 = ctimesminusplus(reverse(v2115), ctbl[3], ctimes(v2115, ctbl[5]));
   real2 v2171 = ctimesminusplus(reverse(v2163), ctbl[9], ctimes(v2163, ctbl[11]));
   real2 v2107 = ctimesminusplus(reverse(v2099), ctbl[7], ctimes(v2099, ctbl[13]));
   real2 v2389 = plus(v2107, v2171);
   real2 v2385 = minus(v2171, v2107);
   real2 v2187 = ctimesminusplus(reverse(v2179), ctbl[5], ctimes(v2179, ctbl[3]));
   real2 v2374 = plus(v2123, v2187);
   real2 v2368 = reverse(minus(v2123, v2187));
   real2 v2369 = minus(v2155, v2091);
   real2 v2373 = plus(v2091, v2155);
   real2 v2405 = plus(v2373, v2374);
   real2 v2401 = minus(v2374, v2373);
   real2 v2203 = ctimesminusplus(reverse(v2195), ctbl[13], ctimes(v2195, ctbl[7]));
   real2 v2131 = minusplus(v2129, v2130);
   real2 v2133 = minusplus(uminus(v2129), v2130);
   real2 v2139 = ctimesminusplus(reverse(v2131), ctbl[11], ctimes(v2131, ctbl[9]));
   real2 v2390 = plus(v2139, v2203);
   real2 v2384 = reverse(minus(v2139, v2203));
   real2 v2400 = reverse(minus(v2389, v2390));
   store(out, 103 << shift, minus(uminusplus(v2400), v2401));
   store(out, 39 << shift, minus(uplusminus(v2400), v2401));
   real2 v2406 = plus(v2389, v2390);
   store(out, 71 << shift, minus(v2405, v2406));
   store(out, 7 << shift, plus(v2405, v2406));
   real2 v2382 = minus(uminusplus(v2368), v2369);
   real2 v2378 = minus(uplusminus(v2368), v2369);
   real2 v2388 = minusplus(uminus(v2384), v2385);
   real2 v2386 = minusplus(v2384, v2385);
   real2 v2398 = ctimesminusplus(reverse(v2388), ctbl[1], ctimes(v2388, ctbl[0]));
   store(out, 119 << shift, minus(v2382, v2398));
   store(out, 55 << shift, plus(v2382, v2398));
   real2 v2394 = ctimesminusplus(reverse(v2386), ctbl[1], ctimes(v2386, ctbl[1]));
   store(out, 87 << shift, minus(v2378, v2394));
   store(out, 23 << shift, plus(v2378, v2394));
   real2 v2127 = ctimesminusplus(reverse(v2117), ctbl[5], ctimes(v2117, ctbl[3]));
   real2 v2175 = ctimesminusplus(reverse(v2165), ctbl[7], ctimes(v2165, ctbl[6]));
   real2 v2111 = ctimesminusplus(reverse(v2101), ctbl[11], ctimes(v2101, ctbl[9]));
   real2 v2442 = minus(v2175, v2111);
   real2 v2446 = plus(v2111, v2175);
   real2 v2207 = ctimesminusplus(reverse(v2197), ctbl[10], ctimes(v2197, ctbl[8]));
   real2 v2159 = ctimesminusplus(reverse(v2149), ctbl[1], ctimes(v2149, ctbl[0]));
   real2 v2430 = plus(v2095, v2159);
   real2 v2426 = minus(v2159, v2095);
   real2 v2191 = ctimesminusplus(reverse(v2181), ctbl[4], ctimes(v2181, ctbl[2]));
   real2 v2143 = ctimesminusplus(reverse(v2133), ctbl[13], ctimes(v2133, ctbl[12]));
   real2 v2447 = plus(v2143, v2207);
   real2 v2441 = reverse(minus(v2143, v2207));
   real2 v2425 = reverse(minus(v2127, v2191));
   real2 v2431 = plus(v2127, v2191);
   real2 v2458 = minus(v2431, v2430);
   real2 v2462 = plus(v2430, v2431);
   real2 v2457 = reverse(minus(v2446, v2447));
   store(out, 47 << shift, minus(uplusminus(v2457), v2458));
   store(out, 111 << shift, minus(uminusplus(v2457), v2458));
   real2 v2463 = plus(v2446, v2447);
   store(out, 79 << shift, minus(v2462, v2463));
   store(out, 15 << shift, plus(v2462, v2463));
   real2 v2435 = minus(uplusminus(v2425), v2426);
   real2 v2439 = minus(uminusplus(v2425), v2426);
   real2 v2445 = minusplus(uminus(v2441), v2442);
   real2 v2443 = minusplus(v2441, v2442);
   real2 v2451 = ctimesminusplus(reverse(v2443), ctbl[1], ctimes(v2443, ctbl[1]));
   store(out, 31 << shift, plus(v2435, v2451));
   store(out, 95 << shift, minus(v2435, v2451));
   real2 v2455 = ctimesminusplus(reverse(v2445), ctbl[1], ctimes(v2445, ctbl[0]));
   store(out, 127 << shift, minus(v2439, v2455));
   store(out, 63 << shift, plus(v2439, v2455));
// Pres : 68124
  }
}

ALIGNED(8192) void dft128b_%CONFIG%_%ISA%(real *RESTRICT out0, const real *RESTRICT in0, const int shift) {
  const int k = 1 << (shift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + i0*2;
    const real *in = in0 + i0*2;

// Pres : 135650
   real2 v51 = load(in, 49 << shift);
   real2 v115 = load(in, 113 << shift);
   real2 v456 = plus(v51, v115);
   real2 v450 = reverse(minus(v115, v51));
   real2 v83 = load(in, 81 << shift);
   real2 v19 = load(in, 17 << shift);
   real2 v455 = plus(v19, v83);
   real2 v451 = minus(v83, v19);
   real2 v721 = reverse(minus(v456, v455));
   real2 v727 = plus(v455, v456);
   real2 v452 = minusplus(v450, v451);
   real2 v454 = minusplus(uminus(v450), v451);
   real2 v462 = ctimesminusplus(reverse(v452), ctbl[58], ctimes(v452, ctbl[59]));
   real2 v466 = ctimesminusplus(reverse(v454), ctbl[48], ctimes(v454, ctbl[42]));
   real2 v35 = load(in, 33 << shift);
   real2 v99 = load(in, 97 << shift);
   real2 v147 = reverse(minus(v99, v35));
   real2 v153 = plus(v35, v99);
   real2 v3 = load(in, 1 << shift);
   real2 v67 = load(in, 65 << shift);
   real2 v152 = plus(v3, v67);
   real2 v148 = minus(v67, v3);
   real2 v722 = minus(v153, v152);
   real2 v726 = plus(v152, v153);
   real2 v982 = plus(v726, v727);
   real2 v978 = minus(v727, v726);
   real2 v149 = minusplus(v147, v148);
   real2 v151 = minusplus(uminus(v147), v148);
   real2 v165 = ctimesminusplus(reverse(v151), ctbl[44], ctimes(v151, ctbl[45]));
   real2 v159 = ctimesminusplus(reverse(v149), ctbl[60], ctimes(v149, ctbl[61]));
   real2 v723 = minusplus(v721, v722);
   real2 v725 = minusplus(uminus(v721), v722);
   real2 v2102 = plus(v165, v466);
   real2 v2098 = minus(v466, v165);
   real2 v731 = ctimesminusplus(reverse(v723), ctbl[28], ctimes(v723, ctbl[29]));
   real2 v1697 = minus(v462, v159);
   real2 v1701 = plus(v159, v462);
   real2 v735 = ctimesminusplus(reverse(v725), ctbl[20], ctimes(v725, ctbl[21]));
   real2 v75 = load(in, 73 << shift);
   real2 v11 = load(in, 9 << shift);
   real2 v304 = minus(v75, v11);
   real2 v308 = plus(v11, v75);
   real2 v107 = load(in, 105 << shift);
   real2 v43 = load(in, 41 << shift);
   real2 v309 = plus(v43, v107);
   real2 v303 = reverse(minus(v107, v43));
   real2 v854 = plus(v308, v309);
   real2 v850 = minus(v309, v308);
   real2 v307 = minusplus(uminus(v303), v304);
   real2 v305 = minusplus(v303, v304);
   real2 v313 = ctimesminusplus(reverse(v305), ctbl[56], ctimes(v305, ctbl[57]));
   real2 v319 = ctimesminusplus(reverse(v307), ctbl[38], ctimes(v307, ctbl[39]));
   real2 v27 = load(in, 25 << shift);
   real2 v91 = load(in, 89 << shift);
   real2 v591 = plus(v27, v91);
   real2 v587 = minus(v91, v27);
   real2 v59 = load(in, 57 << shift);
   real2 v123 = load(in, 121 << shift);
   real2 v592 = plus(v59, v123);
   real2 v586 = reverse(minus(v123, v59));
   real2 v849 = reverse(minus(v592, v591));
   real2 v855 = plus(v591, v592);
   real2 v983 = plus(v854, v855);
   real2 v977 = reverse(minus(v855, v854));
   real2 v590 = minusplus(uminus(v586), v587);
   real2 v588 = minusplus(v586, v587);
   real2 v597 = ctimesminusplus(reverse(v588), ctbl[54], ctimes(v588, ctbl[55]));
   real2 v1110 = plus(v982, v983);
   real2 v1106 = minus(v983, v982);
   real2 v853 = minusplus(uminus(v849), v850);
   real2 v851 = minusplus(v849, v850);
   real2 v859 = ctimesminusplus(reverse(v851), ctbl[26], ctimes(v851, ctbl[27]));
   real2 v1702 = plus(v313, v597);
   real2 v1696 = reverse(minus(v597, v313));
   real2 v1825 = minus(v1702, v1701);
   real2 v1829 = plus(v1701, v1702);
   real2 v1700 = minusplus(uminus(v1696), v1697);
   real2 v1698 = minusplus(v1696, v1697);
   real2 v1710 = ctimesminusplus(reverse(v1700), ctbl[8], ctimes(v1700, ctbl[9]));
   real2 v1706 = ctimesminusplus(reverse(v1698), ctbl[12], ctimes(v1698, ctbl[13]));
   real2 v1379 = minus(v859, v731);
   real2 v1383 = plus(v731, v859);
   real2 v863 = ctimesminusplus(reverse(v853), ctbl[24], ctimes(v853, ctbl[18]));
   real2 v1538 = minus(v863, v735);
   real2 v1542 = plus(v735, v863);
   real2 v981 = minusplus(uminus(v977), v978);
   real2 v979 = minusplus(v977, v978);
   real2 v987 = ctimesminusplus(reverse(v979), ctbl[12], ctimes(v979, ctbl[13]));
   real2 v601 = ctimesminusplus(reverse(v590), ctbl[51], ctimes(v590, ctbl[50]));
   real2 v991 = ctimesminusplus(reverse(v981), ctbl[8], ctimes(v981, ctbl[9]));
   real2 v2103 = plus(v319, v601);
   real2 v2097 = reverse(minus(v601, v319));
   real2 v2226 = minus(v2103, v2102);
   real2 v2230 = plus(v2102, v2103);
   real2 v2101 = minusplus(uminus(v2097), v2098);
   real2 v2099 = minusplus(v2097, v2098);
   real2 v2107 = ctimesminusplus(reverse(v2099), ctbl[12], ctimes(v2099, ctbl[13]));
   real2 v127 = load(in, 125 << shift);
   real2 v63 = load(in, 61 << shift);
   real2 v660 = plus(v63, v127);
   real2 v654 = reverse(minus(v127, v63));
   real2 v31 = load(in, 29 << shift);
   real2 v95 = load(in, 93 << shift);
   real2 v659 = plus(v31, v95);
   real2 v655 = minus(v95, v31);
   real2 v913 = reverse(minus(v660, v659));
   real2 v919 = plus(v659, v660);
   real2 v658 = minusplus(uminus(v654), v655);
   real2 v656 = minusplus(v654, v655);
   real2 v666 = ctimesminusplus(reverse(v656), ctbl[46], ctimes(v656, ctbl[47]));
   real2 v670 = ctimesminusplus(reverse(v658), ctbl[57], ctimes(v658, ctbl[56]));
   real2 v47 = load(in, 45 << shift);
   real2 v111 = load(in, 109 << shift);
   real2 v377 = reverse(minus(v111, v47));
   real2 v383 = plus(v47, v111);
   real2 v15 = load(in, 13 << shift);
   real2 v79 = load(in, 77 << shift);
   real2 v378 = minus(v79, v15);
   real2 v382 = plus(v15, v79);
   real2 v379 = minusplus(v377, v378);
   real2 v381 = minusplus(uminus(v377), v378);
   real2 v394 = ctimesminusplus(reverse(v381), ctbl[54], ctimes(v381, ctbl[36]));
   real2 v2167 = plus(v394, v670);
   real2 v2161 = reverse(minus(v670, v394));
   real2 v914 = minus(v383, v382);
   real2 v918 = plus(v382, v383);
   real2 v1047 = plus(v918, v919);
   real2 v1041 = reverse(minus(v919, v918));
   real2 v917 = minusplus(uminus(v913), v914);
   real2 v915 = minusplus(v913, v914);
   real2 v923 = ctimesminusplus(reverse(v915), ctbl[22], ctimes(v915, ctbl[23]));
   real2 v389 = ctimesminusplus(reverse(v379), ctbl[48], ctimes(v379, ctbl[49]));
   real2 v1760 = reverse(minus(v666, v389));
   real2 v1766 = plus(v389, v666);
   real2 v927 = ctimesminusplus(reverse(v917), ctbl[27], ctimes(v917, ctbl[26]));
   real2 v87 = load(in, 85 << shift);
   real2 v23 = load(in, 21 << shift);
   real2 v520 = minus(v87, v23);
   real2 v524 = plus(v23, v87);
   real2 v55 = load(in, 53 << shift);
   real2 v119 = load(in, 117 << shift);
   real2 v519 = reverse(minus(v119, v55));
   real2 v525 = plus(v55, v119);
   real2 v523 = minusplus(uminus(v519), v520);
   real2 v521 = minusplus(v519, v520);
   real2 v529 = ctimesminusplus(reverse(v521), ctbl[50], ctimes(v521, ctbl[51]));
   real2 v533 = ctimesminusplus(reverse(v523), ctbl[60], ctimes(v523, ctbl[30]));
   real2 v791 = plus(v524, v525);
   real2 v785 = reverse(minus(v525, v524));
   real2 v39 = load(in, 37 << shift);
   real2 v103 = load(in, 101 << shift);
   real2 v231 = plus(v39, v103);
   real2 v225 = reverse(minus(v103, v39));
   real2 v7 = load(in, 5 << shift);
   real2 v71 = load(in, 69 << shift);
   real2 v226 = minus(v71, v7);
   real2 v230 = plus(v7, v71);
   real2 v227 = minusplus(v225, v226);
   real2 v229 = minusplus(uminus(v225), v226);
   real2 v243 = ctimesminusplus(reverse(v229), ctbl[32], ctimes(v229, ctbl[33]));
   real2 v2162 = minus(v533, v243);
   real2 v2166 = plus(v243, v533);
   real2 v2231 = plus(v2166, v2167);
   real2 v2225 = reverse(minus(v2167, v2166));
   real2 v237 = ctimesminusplus(reverse(v227), ctbl[52], ctimes(v227, ctbl[53]));
   real2 v1761 = minus(v529, v237);
   real2 v1765 = plus(v237, v529);
   real2 v1824 = reverse(minus(v1766, v1765));
   real2 v1830 = plus(v1765, v1766);
   real2 v790 = plus(v230, v231);
   real2 v786 = minus(v231, v230);
   real2 v1826 = minusplus(v1824, v1825);
   real2 v1828 = minusplus(uminus(v1824), v1825);
   real2 v1764 = minusplus(uminus(v1760), v1761);
   real2 v1762 = minusplus(v1760, v1761);
   real2 v1889 = minus(v1830, v1829);
   real2 v1893 = plus(v1829, v1830);
   real2 v1838 = ctimesminusplus(reverse(v1828), ctbl[2], ctimes(v1828, ctbl[3]));
   real2 v1774 = ctimesminusplus(reverse(v1764), ctbl[12], ctimes(v1764, ctbl[6]));
   real2 v2041 = minus(v1774, v1710);
   real2 v2045 = plus(v1710, v1774);
   real2 v1770 = ctimesminusplus(reverse(v1762), ctbl[10], ctimes(v1762, ctbl[11]));
   real2 v1988 = plus(v1706, v1770);
   real2 v1984 = minus(v1770, v1706);
   real2 v1834 = ctimesminusplus(reverse(v1826), ctbl[4], ctimes(v1826, ctbl[5]));
   real2 v787 = minusplus(v785, v786);
   real2 v789 = minusplus(uminus(v785), v786);
   real2 v799 = ctimesminusplus(reverse(v789), ctbl[14], ctimes(v789, ctbl[15]));
   real2 v1046 = plus(v790, v791);
   real2 v1042 = minus(v791, v790);
   real2 v1043 = minusplus(v1041, v1042);
   real2 v1045 = minusplus(uminus(v1041), v1042);
   real2 v1537 = reverse(minus(v927, v799));
   real2 v1543 = plus(v799, v927);
   real2 v1606 = plus(v1542, v1543);
   real2 v1602 = minus(v1543, v1542);
   real2 v795 = ctimesminusplus(reverse(v787), ctbl[24], ctimes(v787, ctbl[25]));
   real2 v1105 = reverse(minus(v1047, v1046));
   real2 v1111 = plus(v1046, v1047);
   real2 v1384 = plus(v795, v923);
   real2 v1378 = reverse(minus(v923, v795));
   real2 v1107 = minusplus(v1105, v1106);
   real2 v1109 = minusplus(uminus(v1105), v1106);
   real2 v1119 = ctimesminusplus(reverse(v1109), ctbl[2], ctimes(v1109, ctbl[3]));
   real2 v1382 = minusplus(uminus(v1378), v1379);
   real2 v1380 = minusplus(v1378, v1379);
   real2 v1388 = ctimesminusplus(reverse(v1380), ctbl[4], ctimes(v1380, ctbl[5]));
   real2 v1115 = ctimesminusplus(reverse(v1107), ctbl[4], ctimes(v1107, ctbl[5]));
   real2 v1392 = ctimesminusplus(reverse(v1382), ctbl[2], ctimes(v1382, ctbl[3]));
   real2 v1443 = minus(v1384, v1383);
   real2 v1447 = plus(v1383, v1384);
   real2 v1539 = minusplus(v1537, v1538);
   real2 v1541 = minusplus(uminus(v1537), v1538);
   real2 v1551 = ctimesminusplus(reverse(v1541), ctbl[2], ctimes(v1541, ctbl[3]));
   real2 v1547 = ctimesminusplus(reverse(v1539), ctbl[4], ctimes(v1539, ctbl[5]));
   real2 v1051 = ctimesminusplus(reverse(v1043), ctbl[10], ctimes(v1043, ctbl[11]));
   real2 v2290 = minus(v2231, v2230);
   real2 v2294 = plus(v2230, v2231);
   real2 v1174 = plus(v1110, v1111);
   real2 v1170 = minus(v1111, v1110);
   real2 v1265 = minus(v1051, v987);
   real2 v1269 = plus(v987, v1051);
   real2 v1055 = ctimesminusplus(reverse(v1045), ctbl[12], ctimes(v1045, ctbl[6]));
   real2 v1322 = minus(v1055, v991);
   real2 v1326 = plus(v991, v1055);
   real2 v129 = load(in, 127 << shift);
   real2 v65 = load(in, 63 << shift);
   real2 v688 = reverse(minus(v129, v65));
   real2 v694 = plus(v65, v129);
   real2 v33 = load(in, 31 << shift);
   real2 v97 = load(in, 95 << shift);
   real2 v689 = minus(v97, v33);
   real2 v693 = plus(v33, v97);
   real2 v951 = plus(v693, v694);
   real2 v945 = reverse(minus(v694, v693));
   real2 v692 = minusplus(uminus(v688), v689);
   real2 v690 = minusplus(v688, v689);
   real2 v699 = ctimesminusplus(reverse(v690), ctbl[30], ctimes(v690, ctbl[31]));
   real2 v17 = load(in, 15 << shift);
   real2 v81 = load(in, 79 << shift);
   real2 v420 = plus(v17, v81);
   real2 v416 = minus(v81, v17);
   real2 v113 = load(in, 111 << shift);
   real2 v49 = load(in, 47 << shift);
   real2 v415 = reverse(minus(v113, v49));
   real2 v421 = plus(v49, v113);
   real2 v419 = minusplus(uminus(v415), v416);
   real2 v417 = minusplus(v415, v416);
   real2 v425 = ctimesminusplus(reverse(v417), ctbl[32], ctimes(v417, ctbl[33]));
   real2 v1792 = reverse(minus(v699, v425));
   real2 v1798 = plus(v425, v699);
   real2 v950 = plus(v420, v421);
   real2 v946 = minus(v421, v420);
   real2 v947 = minusplus(v945, v946);
   real2 v949 = minusplus(uminus(v945), v946);
   real2 v959 = ctimesminusplus(reverse(v949), ctbl[21], ctimes(v949, ctbl[20]));
   real2 v955 = ctimesminusplus(reverse(v947), ctbl[14], ctimes(v947, ctbl[15]));
   real2 v1079 = plus(v950, v951);
   real2 v1073 = reverse(minus(v951, v950));
   real2 v73 = load(in, 71 << shift);
   real2 v9 = load(in, 7 << shift);
   real2 v268 = plus(v9, v73);
   real2 v264 = minus(v73, v9);
   real2 v105 = load(in, 103 << shift);
   real2 v41 = load(in, 39 << shift);
   real2 v269 = plus(v41, v105);
   real2 v263 = reverse(minus(v105, v41));
   real2 v818 = minus(v269, v268);
   real2 v822 = plus(v268, v269);
   real2 v267 = minusplus(uminus(v263), v264);
   real2 v265 = minusplus(v263, v264);
   real2 v275 = ctimesminusplus(reverse(v265), ctbl[36], ctimes(v265, ctbl[37]));
   real2 v89 = load(in, 87 << shift);
   real2 v25 = load(in, 23 << shift);
   real2 v557 = plus(v25, v89);
   real2 v553 = minus(v89, v25);
   real2 v121 = load(in, 119 << shift);
   real2 v57 = load(in, 55 << shift);
   real2 v558 = plus(v57, v121);
   real2 v552 = reverse(minus(v121, v57));
   real2 v823 = plus(v557, v558);
   real2 v817 = reverse(minus(v558, v557));
   real2 v1078 = plus(v822, v823);
   real2 v1074 = minus(v823, v822);
   real2 v819 = minusplus(v817, v818);
   real2 v821 = minusplus(uminus(v817), v818);
   real2 v1077 = minusplus(uminus(v1073), v1074);
   real2 v1075 = minusplus(v1073, v1074);
   real2 v1083 = ctimesminusplus(reverse(v1075), ctbl[6], ctimes(v1075, ctbl[7]));
   real2 v1087 = ctimesminusplus(reverse(v1077), ctbl[9], ctimes(v1077, ctbl[8]));
   real2 v556 = minusplus(uminus(v552), v553);
   real2 v554 = minusplus(v552, v553);
   real2 v564 = ctimesminusplus(reverse(v554), ctbl[34], ctimes(v554, ctbl[35]));
   real2 v1793 = minus(v564, v275);
   real2 v1797 = plus(v275, v564);
   real2 v1862 = plus(v1797, v1798);
   real2 v1856 = reverse(minus(v1798, v1797));
   real2 v1794 = minusplus(v1792, v1793);
   real2 v1796 = minusplus(uminus(v1792), v1793);
   real2 v827 = ctimesminusplus(reverse(v819), ctbl[16], ctimes(v819, ctbl[17]));
   real2 v1410 = reverse(minus(v955, v827));
   real2 v1416 = plus(v827, v955);
   real2 v1143 = plus(v1078, v1079);
   real2 v1137 = reverse(minus(v1079, v1078));
   real2 v831 = ctimesminusplus(reverse(v821), ctbl[18], ctimes(v821, ctbl[24]));
   real2 v1575 = plus(v831, v959);
   real2 v1569 = reverse(minus(v959, v831));
   real2 v5 = load(in, 3 << shift);
   real2 v69 = load(in, 67 << shift);
   real2 v188 = minus(v69, v5);
   real2 v192 = plus(v5, v69);
   real2 v101 = load(in, 99 << shift);
   real2 v37 = load(in, 35 << shift);
   real2 v193 = plus(v37, v101);
   real2 v187 = reverse(minus(v101, v37));
   real2 v754 = minus(v193, v192);
   real2 v758 = plus(v192, v193);
   real2 v189 = minusplus(v187, v188);
   real2 v191 = minusplus(uminus(v187), v188);
   real2 v197 = ctimesminusplus(reverse(v189), ctbl[44], ctimes(v189, ctbl[45]));
   real2 v21 = load(in, 19 << shift);
   real2 v85 = load(in, 83 << shift);
   real2 v485 = minus(v85, v21);
   real2 v489 = plus(v21, v85);
   real2 v53 = load(in, 51 << shift);
   real2 v117 = load(in, 115 << shift);
   real2 v484 = reverse(minus(v117, v53));
   real2 v490 = plus(v53, v117);
   real2 v753 = reverse(minus(v490, v489));
   real2 v759 = plus(v489, v490);
   real2 v757 = minusplus(uminus(v753), v754);
   real2 v755 = minusplus(v753, v754);
   real2 v767 = ctimesminusplus(reverse(v757), ctbl[26], ctimes(v757, ctbl[27]));
   real2 v763 = ctimesminusplus(reverse(v755), ctbl[20], ctimes(v755, ctbl[21]));
   real2 v486 = minusplus(v484, v485);
   real2 v488 = minusplus(uminus(v484), v485);
   real2 v495 = ctimesminusplus(reverse(v486), ctbl[42], ctimes(v486, ctbl[43]));
   real2 v1729 = minus(v495, v197);
   real2 v1733 = plus(v197, v495);
   real2 v1014 = plus(v758, v759);
   real2 v1010 = minus(v759, v758);
   real2 v13 = load(in, 11 << shift);
   real2 v77 = load(in, 75 << shift);
   real2 v342 = minus(v77, v13);
   real2 v346 = plus(v13, v77);
   real2 v45 = load(in, 43 << shift);
   real2 v109 = load(in, 107 << shift);
   real2 v347 = plus(v45, v109);
   real2 v341 = reverse(minus(v109, v45));
   real2 v345 = minusplus(uminus(v341), v342);
   real2 v343 = minusplus(v341, v342);
   real2 v882 = minus(v347, v346);
   real2 v886 = plus(v346, v347);
   real2 v353 = ctimesminusplus(reverse(v343), ctbl[40], ctimes(v343, ctbl[41]));
   real2 v125 = load(in, 123 << shift);
   real2 v61 = load(in, 59 << shift);
   real2 v621 = reverse(minus(v125, v61));
   real2 v627 = plus(v61, v125);
   real2 v93 = load(in, 91 << shift);
   real2 v29 = load(in, 27 << shift);
   real2 v622 = minus(v93, v29);
   real2 v626 = plus(v29, v93);
   real2 v887 = plus(v626, v627);
   real2 v881 = reverse(minus(v627, v626));
   real2 v885 = minusplus(uminus(v881), v882);
   real2 v883 = minusplus(v881, v882);
   real2 v891 = ctimesminusplus(reverse(v883), ctbl[18], ctimes(v883, ctbl[19]));
   real2 v1009 = reverse(minus(v887, v886));
   real2 v1015 = plus(v886, v887);
   real2 v1415 = plus(v763, v891);
   real2 v1411 = minus(v891, v763);
   real2 v895 = ctimesminusplus(reverse(v885), ctbl[15], ctimes(v885, ctbl[14]));
   real2 v1570 = minus(v895, v767);
   real2 v1574 = plus(v767, v895);
   real2 v1142 = plus(v1014, v1015);
   real2 v1138 = minus(v1015, v1014);
   real2 v1011 = minusplus(v1009, v1010);
   real2 v1013 = minusplus(uminus(v1009), v1010);
   real2 v1023 = ctimesminusplus(reverse(v1013), ctbl[6], ctimes(v1013, ctbl[12]));
   real2 v1019 = ctimesminusplus(reverse(v1011), ctbl[8], ctimes(v1011, ctbl[9]));
   real2 v1321 = reverse(minus(v1087, v1023));
   real2 v1327 = plus(v1023, v1087);
   real2 v1414 = minusplus(uminus(v1410), v1411);
   real2 v1412 = minusplus(v1410, v1411);
   real2 v1424 = ctimesminusplus(reverse(v1414), ctbl[3], ctimes(v1414, ctbl[2]));
   real2 v1508 = plus(v1392, v1424);
   real2 v1502 = reverse(minus(v1424, v1392));
   real2 v1264 = reverse(minus(v1083, v1019));
   real2 v1270 = plus(v1019, v1083);
   real2 v1286 = plus(v1269, v1270);
   real2 v1280 = reverse(minus(v1270, v1269));
   real2 v1268 = minusplus(uminus(v1264), v1265);
   real2 v1266 = minusplus(v1264, v1265);
   real2 v1141 = minusplus(uminus(v1137), v1138);
   real2 v1139 = minusplus(v1137, v1138);
   real2 v1147 = ctimesminusplus(reverse(v1139), ctbl[2], ctimes(v1139, ctbl[3]));
   real2 v1278 = ctimesminusplus(reverse(v1268), ctbl[0], ctimes(v1268, ctbl[0]));
   real2 v1151 = ctimesminusplus(reverse(v1141), ctbl[3], ctimes(v1141, ctbl[2]));
   real2 v1235 = plus(v1119, v1151);
   real2 v1229 = reverse(minus(v1151, v1119));
   real2 v1420 = ctimesminusplus(reverse(v1412), ctbl[2], ctimes(v1412, ctbl[3]));
   real2 v1483 = reverse(minus(v1420, v1388));
   real2 v1489 = plus(v1388, v1420);
   real2 v1274 = ctimesminusplus(reverse(v1266), ctbl[0], ctimes(v1266, ctbl[1]));
   real2 v1607 = plus(v1574, v1575);
   real2 v1601 = reverse(minus(v1575, v1574));
   real2 v1605 = minusplus(uminus(v1601), v1602);
   real2 v1603 = minusplus(v1601, v1602);
   real2 v1175 = plus(v1142, v1143);
   real2 v1169 = reverse(minus(v1143, v1142));
   real2 v1171 = minusplus(v1169, v1170);
   real2 v1173 = minusplus(uminus(v1169), v1170);
   real2 v1179 = ctimesminusplus(reverse(v1171), ctbl[0], ctimes(v1171, ctbl[1]));
   real2 v1191 = plus(v1174, v1175);
   real2 v1185 = reverse(minus(v1175, v1174));
   real2 v1325 = minusplus(uminus(v1321), v1322);
   real2 v1323 = minusplus(v1321, v1322);
   real2 v1331 = ctimesminusplus(reverse(v1323), ctbl[0], ctimes(v1323, ctbl[1]));
   real2 v1448 = plus(v1415, v1416);
   real2 v1442 = reverse(minus(v1416, v1415));
   real2 v1446 = minusplus(uminus(v1442), v1443);
   real2 v1444 = minusplus(v1442, v1443);
   real2 v1452 = ctimesminusplus(reverse(v1444), ctbl[0], ctimes(v1444, ctbl[1]));
   real2 v1464 = plus(v1447, v1448);
   real2 v1458 = reverse(minus(v1448, v1447));
   real2 v1335 = ctimesminusplus(reverse(v1325), ctbl[0], ctimes(v1325, ctbl[0]));
   real2 v1337 = reverse(minus(v1327, v1326));
   real2 v1343 = plus(v1326, v1327);
   real2 v1183 = ctimesminusplus(reverse(v1173), ctbl[0], ctimes(v1173, ctbl[0]));
   real2 v1456 = ctimesminusplus(reverse(v1446), ctbl[0], ctimes(v1446, ctbl[0]));
   real2 v1210 = reverse(minus(v1147, v1115));
   real2 v1216 = plus(v1115, v1147);
   real2 v1623 = plus(v1606, v1607);
   real2 v1617 = reverse(minus(v1607, v1606));
   real2 v1571 = minusplus(v1569, v1570);
   real2 v1573 = minusplus(uminus(v1569), v1570);
   real2 v1583 = ctimesminusplus(reverse(v1573), ctbl[3], ctimes(v1573, ctbl[2]));
   real2 v1661 = reverse(minus(v1583, v1551));
   real2 v1667 = plus(v1551, v1583);
   real2 v1611 = ctimesminusplus(reverse(v1603), ctbl[0], ctimes(v1603, ctbl[1]));
   real2 v1615 = ctimesminusplus(reverse(v1605), ctbl[0], ctimes(v1605, ctbl[0]));
   real2 v1579 = ctimesminusplus(reverse(v1571), ctbl[2], ctimes(v1571, ctbl[3]));
   real2 v1648 = plus(v1547, v1579);
   real2 v1642 = reverse(minus(v1579, v1547));
   real2 v92 = load(in, 90 << shift);
   real2 v28 = load(in, 26 << shift);
   real2 v604 = minus(v92, v28);
   real2 v608 = plus(v28, v92);
   real2 v60 = load(in, 58 << shift);
   real2 v124 = load(in, 122 << shift);
   real2 v603 = reverse(minus(v124, v60));
   real2 v609 = plus(v60, v124);
   real2 v871 = plus(v608, v609);
   real2 v865 = reverse(minus(v609, v608));
   real2 v76 = load(in, 74 << shift);
   real2 v12 = load(in, 10 << shift);
   real2 v322 = minus(v76, v12);
   real2 v326 = plus(v12, v76);
   real2 v108 = load(in, 106 << shift);
   real2 v44 = load(in, 42 << shift);
   real2 v321 = reverse(minus(v108, v44));
   real2 v327 = plus(v44, v108);
   real2 v870 = plus(v326, v327);
   real2 v866 = minus(v327, v326);
   real2 v993 = reverse(minus(v871, v870));
   real2 v999 = plus(v870, v871);
   real2 v869 = minusplus(uminus(v865), v866);
   real2 v867 = minusplus(v865, v866);
   real2 v875 = ctimesminusplus(reverse(v867), ctbl[10], ctimes(v867, ctbl[11]));
   real2 v879 = ctimesminusplus(reverse(v869), ctbl[12], ctimes(v869, ctbl[6]));
   real2 v36 = load(in, 34 << shift);
   real2 v100 = load(in, 98 << shift);
   real2 v167 = reverse(minus(v100, v36));
   real2 v173 = plus(v36, v100);
   real2 v68 = load(in, 66 << shift);
   real2 v4 = load(in, 2 << shift);
   real2 v168 = minus(v68, v4);
   real2 v172 = plus(v4, v68);
   real2 v742 = plus(v172, v173);
   real2 v738 = minus(v173, v172);
   real2 v52 = load(in, 50 << shift);
   real2 v116 = load(in, 114 << shift);
   real2 v468 = reverse(minus(v116, v52));
   real2 v474 = plus(v52, v116);
   real2 v84 = load(in, 82 << shift);
   real2 v20 = load(in, 18 << shift);
   real2 v469 = minus(v84, v20);
   real2 v473 = plus(v20, v84);
   real2 v743 = plus(v473, v474);
   real2 v737 = reverse(minus(v474, v473));
   real2 v739 = minusplus(v737, v738);
   real2 v741 = minusplus(uminus(v737), v738);
   real2 v747 = ctimesminusplus(reverse(v739), ctbl[12], ctimes(v739, ctbl[13]));
   real2 v998 = plus(v742, v743);
   real2 v994 = minus(v743, v742);
   real2 v1399 = plus(v747, v875);
   real2 v1395 = minus(v875, v747);
   real2 v1122 = minus(v999, v998);
   real2 v1126 = plus(v998, v999);
   real2 v997 = minusplus(uminus(v993), v994);
   real2 v995 = minusplus(v993, v994);
   real2 v1003 = ctimesminusplus(reverse(v995), ctbl[4], ctimes(v995, ctbl[5]));
   real2 v1007 = ctimesminusplus(reverse(v997), ctbl[2], ctimes(v997, ctbl[3]));
   real2 v80 = load(in, 78 << shift);
   real2 v16 = load(in, 14 << shift);
   real2 v397 = minus(v80, v16);
   real2 v401 = plus(v16, v80);
   real2 v48 = load(in, 46 << shift);
   real2 v112 = load(in, 110 << shift);
   real2 v402 = plus(v48, v112);
   real2 v396 = reverse(minus(v112, v48));
   real2 v934 = plus(v401, v402);
   real2 v930 = minus(v402, v401);
   real2 v96 = load(in, 94 << shift);
   real2 v32 = load(in, 30 << shift);
   real2 v673 = minus(v96, v32);
   real2 v677 = plus(v32, v96);
   real2 v64 = load(in, 62 << shift);
   real2 v128 = load(in, 126 << shift);
   real2 v678 = plus(v64, v128);
   real2 v672 = reverse(minus(v128, v64));
   real2 v929 = reverse(minus(v678, v677));
   real2 v935 = plus(v677, v678);
   real2 v933 = minusplus(uminus(v929), v930);
   real2 v931 = minusplus(v929, v930);
   real2 v1057 = reverse(minus(v935, v934));
   real2 v1063 = plus(v934, v935);
   real2 v939 = ctimesminusplus(reverse(v931), ctbl[6], ctimes(v931, ctbl[7]));
   real2 v104 = load(in, 102 << shift);
   real2 v40 = load(in, 38 << shift);
   real2 v251 = plus(v40, v104);
   real2 v245 = reverse(minus(v104, v40));
   real2 v72 = load(in, 70 << shift);
   real2 v8 = load(in, 6 << shift);
   real2 v246 = minus(v72, v8);
   real2 v250 = plus(v8, v72);
   real2 v802 = minus(v251, v250);
   real2 v806 = plus(v250, v251);
   real2 v88 = load(in, 86 << shift);
   real2 v24 = load(in, 22 << shift);
   real2 v540 = plus(v24, v88);
   real2 v536 = minus(v88, v24);
   real2 v120 = load(in, 118 << shift);
   real2 v56 = load(in, 54 << shift);
   real2 v541 = plus(v56, v120);
   real2 v535 = reverse(minus(v120, v56));
   real2 v807 = plus(v540, v541);
   real2 v801 = reverse(minus(v541, v540));
   real2 v1062 = plus(v806, v807);
   real2 v1058 = minus(v807, v806);
   real2 v1059 = minusplus(v1057, v1058);
   real2 v1061 = minusplus(uminus(v1057), v1058);
   real2 v1127 = plus(v1062, v1063);
   real2 v1121 = reverse(minus(v1063, v1062));
   real2 v1071 = ctimesminusplus(reverse(v1061), ctbl[3], ctimes(v1061, ctbl[2]));
   real2 v1067 = ctimesminusplus(reverse(v1059), ctbl[2], ctimes(v1059, ctbl[3]));
   real2 v1153 = reverse(minus(v1127, v1126));
   real2 v1159 = plus(v1126, v1127);
   real2 v1123 = minusplus(v1121, v1122);
   real2 v1125 = minusplus(uminus(v1121), v1122);
   real2 v1254 = plus(v1003, v1067);
   real2 v1248 = reverse(minus(v1067, v1003));
   real2 v1131 = ctimesminusplus(reverse(v1123), ctbl[0], ctimes(v1123, ctbl[1]));
   real2 v1305 = reverse(minus(v1071, v1007));
   real2 v1311 = plus(v1007, v1071);
   real2 v1135 = ctimesminusplus(reverse(v1125), ctbl[0], ctimes(v1125, ctbl[0]));
   real2 v42 = load(in, 40 << shift);
   real2 v106 = load(in, 104 << shift);
   real2 v283 = reverse(minus(v106, v42));
   real2 v289 = plus(v42, v106);
   real2 v10 = load(in, 8 << shift);
   real2 v74 = load(in, 72 << shift);
   real2 v284 = minus(v74, v10);
   real2 v288 = plus(v10, v74);
   real2 v838 = plus(v288, v289);
   real2 v834 = minus(v289, v288);
   real2 v66 = load(in, 64 << shift);
   real2 v2 = load(in, 0 << shift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << shift);
   real2 v34 = load(in, 32 << shift);
   real2 v131 = reverse(minus(v98, v34));
   real2 v137 = plus(v34, v98);
   real2 v706 = minus(v137, v136);
   real2 v710 = plus(v136, v137);
   real2 v122 = load(in, 120 << shift);
   real2 v58 = load(in, 56 << shift);
   real2 v570 = reverse(minus(v122, v58));
   real2 v576 = plus(v58, v122);
   real2 v90 = load(in, 88 << shift);
   real2 v26 = load(in, 24 << shift);
   real2 v575 = plus(v26, v90);
   real2 v571 = minus(v90, v26);
   real2 v839 = plus(v575, v576);
   real2 v833 = reverse(minus(v576, v575));
   real2 v961 = reverse(minus(v839, v838));
   real2 v967 = plus(v838, v839);
   real2 v50 = load(in, 48 << shift);
   real2 v114 = load(in, 112 << shift);
   real2 v438 = plus(v50, v114);
   real2 v432 = reverse(minus(v114, v50));
   real2 v82 = load(in, 80 << shift);
   real2 v18 = load(in, 16 << shift);
   real2 v433 = minus(v82, v18);
   real2 v437 = plus(v18, v82);
   real2 v705 = reverse(minus(v438, v437));
   real2 v711 = plus(v437, v438);
   real2 v962 = minus(v711, v710);
   real2 v966 = plus(v710, v711);
   real2 v1094 = plus(v966, v967);
   real2 v1090 = minus(v967, v966);
   real2 v126 = load(in, 124 << shift);
   real2 v62 = load(in, 60 << shift);
   real2 v643 = plus(v62, v126);
   real2 v637 = reverse(minus(v126, v62));
   real2 v30 = load(in, 28 << shift);
   real2 v94 = load(in, 92 << shift);
   real2 v638 = minus(v94, v30);
   real2 v642 = plus(v30, v94);
   real2 v903 = plus(v642, v643);
   real2 v897 = reverse(minus(v643, v642));
   real2 v14 = load(in, 12 << shift);
   real2 v78 = load(in, 76 << shift);
   real2 v361 = minus(v78, v14);
   real2 v365 = plus(v14, v78);
   real2 v46 = load(in, 44 << shift);
   real2 v110 = load(in, 108 << shift);
   real2 v360 = reverse(minus(v110, v46));
   real2 v366 = plus(v46, v110);
   real2 v898 = minus(v366, v365);
   real2 v902 = plus(v365, v366);
   real2 v1031 = plus(v902, v903);
   real2 v1025 = reverse(minus(v903, v902));
   real2 v102 = load(in, 100 << shift);
   real2 v38 = load(in, 36 << shift);
   real2 v205 = reverse(minus(v102, v38));
   real2 v211 = plus(v38, v102);
   real2 v70 = load(in, 68 << shift);
   real2 v6 = load(in, 4 << shift);
   real2 v210 = plus(v6, v70);
   real2 v206 = minus(v70, v6);
   real2 v770 = minus(v211, v210);
   real2 v774 = plus(v210, v211);
   real2 v86 = load(in, 84 << shift);
   real2 v22 = load(in, 20 << shift);
   real2 v502 = minus(v86, v22);
   real2 v506 = plus(v22, v86);
   real2 v118 = load(in, 116 << shift);
   real2 v54 = load(in, 52 << shift);
   real2 v501 = reverse(minus(v118, v54));
   real2 v507 = plus(v54, v118);
   real2 v769 = reverse(minus(v507, v506));
   real2 v775 = plus(v506, v507);
   real2 v1030 = plus(v774, v775);
   real2 v1026 = minus(v775, v774);
   real2 v1089 = reverse(minus(v1031, v1030));
   real2 v1095 = plus(v1030, v1031);
   real2 v1099 = minus(uplusminus(v1089), v1090);
   real2 v1103 = minus(uminusplus(v1089), v1090);
   real2 v1215 = plus(v1099, v1131);
   store(out, 72 << shift, minus(v1215, v1216));
   store(out, 8 << shift, plus(v1215, v1216));
   real2 v1211 = minus(v1131, v1099);
   store(out, 40 << shift, minus(uplusminus(v1210), v1211));
   store(out, 104 << shift, minus(uminusplus(v1210), v1211));
   real2 v1234 = plus(v1103, v1135);
   real2 v1230 = minus(v1135, v1103);
   store(out, 120 << shift, minus(uminusplus(v1229), v1230));
   store(out, 56 << shift, minus(uplusminus(v1229), v1230));
   store(out, 24 << shift, plus(v1234, v1235));
   store(out, 88 << shift, minus(v1234, v1235));
   real2 v1154 = minus(v1095, v1094);
   real2 v1158 = plus(v1094, v1095);
   real2 v1167 = minus(uminusplus(v1153), v1154);
   real2 v1163 = minus(uplusminus(v1153), v1154);
   store(out, 16 << shift, plus(v1163, v1179));
   store(out, 80 << shift, minus(v1163, v1179));
   store(out, 48 << shift, plus(v1167, v1183));
   store(out, 112 << shift, minus(v1167, v1183));
   real2 v1186 = minus(v1159, v1158);
   real2 v1190 = plus(v1158, v1159);
   store(out, 0 << shift, plus(v1190, v1191));
   store(out, 64 << shift, minus(v1190, v1191));
   store(out, 32 << shift, minus(uplusminus(v1185), v1186));
   store(out, 96 << shift, minus(uminusplus(v1185), v1186));
   real2 v1027 = minusplus(v1025, v1026);
   real2 v1029 = minusplus(uminus(v1025), v1026);
   real2 v971 = minus(uplusminus(v961), v962);
   real2 v975 = minus(uminusplus(v961), v962);
   real2 v1039 = ctimesminusplus(reverse(v1029), ctbl[0], ctimes(v1029, ctbl[0]));
   real2 v1310 = plus(v975, v1039);
   real2 v1306 = minus(v1039, v975);
   real2 v1342 = plus(v1310, v1311);
   real2 v1338 = minus(v1311, v1310);
   store(out, 12 << shift, plus(v1342, v1343));
   store(out, 76 << shift, minus(v1342, v1343));
   store(out, 108 << shift, minus(uminusplus(v1337), v1338));
   store(out, 44 << shift, minus(uplusminus(v1337), v1338));
   real2 v1315 = minus(uplusminus(v1305), v1306);
   store(out, 28 << shift, plus(v1315, v1331));
   store(out, 92 << shift, minus(v1315, v1331));
   real2 v1319 = minus(uminusplus(v1305), v1306);
   store(out, 60 << shift, plus(v1319, v1335));
   store(out, 124 << shift, minus(v1319, v1335));
   real2 v1035 = ctimesminusplus(reverse(v1027), ctbl[0], ctimes(v1027, ctbl[1]));
   real2 v1253 = plus(v971, v1035);
   real2 v1249 = minus(v1035, v971);
   real2 v1281 = minus(v1254, v1253);
   store(out, 36 << shift, minus(uplusminus(v1280), v1281));
   store(out, 100 << shift, minus(uminusplus(v1280), v1281));
   real2 v1285 = plus(v1253, v1254);
   store(out, 68 << shift, minus(v1285, v1286));
   store(out, 4 << shift, plus(v1285, v1286));
   real2 v1262 = minus(uminusplus(v1248), v1249);
   store(out, 116 << shift, minus(v1262, v1278));
   store(out, 52 << shift, plus(v1262, v1278));
   real2 v1258 = minus(uplusminus(v1248), v1249);
   store(out, 20 << shift, plus(v1258, v1274));
   store(out, 84 << shift, minus(v1258, v1274));
   real2 v901 = minusplus(uminus(v897), v898);
   real2 v899 = minusplus(v897, v898);
   real2 v805 = minusplus(uminus(v801), v802);
   real2 v803 = minusplus(v801, v802);
   real2 v811 = ctimesminusplus(reverse(v803), ctbl[8], ctimes(v803, ctbl[9]));
   real2 v1400 = plus(v811, v939);
   real2 v1394 = reverse(minus(v939, v811));
   real2 v837 = minusplus(uminus(v833), v834);
   real2 v835 = minusplus(v833, v834);
   real2 v843 = ctimesminusplus(reverse(v835), ctbl[0], ctimes(v835, ctbl[1]));
   real2 v773 = minusplus(uminus(v769), v770);
   real2 v771 = minusplus(v769, v770);
   real2 v1398 = minusplus(uminus(v1394), v1395);
   real2 v1396 = minusplus(v1394, v1395);
   real2 v907 = ctimesminusplus(reverse(v899), ctbl[2], ctimes(v899, ctbl[3]));
   real2 v715 = minus(uplusminus(v705), v706);
   real2 v719 = minus(uminusplus(v705), v706);
   real2 v1363 = minus(v843, v715);
   real2 v1367 = plus(v715, v843);
   real2 v1408 = ctimesminusplus(reverse(v1398), ctbl[0], ctimes(v1398, ctbl[0]));
   real2 v779 = ctimesminusplus(reverse(v771), ctbl[4], ctimes(v771, ctbl[5]));
   real2 v1362 = reverse(minus(v907, v779));
   real2 v1368 = plus(v779, v907);
   real2 v1376 = minus(uminusplus(v1362), v1363);
   real2 v1372 = minus(uplusminus(v1362), v1363);
   real2 v1507 = plus(v1376, v1408);
   real2 v1503 = minus(v1408, v1376);
   store(out, 122 << shift, minus(uminusplus(v1502), v1503));
   store(out, 58 << shift, minus(uplusminus(v1502), v1503));
   store(out, 90 << shift, minus(v1507, v1508));
   store(out, 26 << shift, plus(v1507, v1508));
   real2 v1404 = ctimesminusplus(reverse(v1396), ctbl[0], ctimes(v1396, ctbl[1]));
   real2 v1484 = minus(v1404, v1372);
   real2 v1488 = plus(v1372, v1404);
   store(out, 10 << shift, plus(v1488, v1489));
   store(out, 74 << shift, minus(v1488, v1489));
   store(out, 106 << shift, minus(uminusplus(v1483), v1484));
   store(out, 42 << shift, minus(uplusminus(v1483), v1484));
   real2 v1426 = reverse(minus(v1400, v1399));
   real2 v1432 = plus(v1399, v1400);
   real2 v1431 = plus(v1367, v1368);
   real2 v1427 = minus(v1368, v1367);
   real2 v1463 = plus(v1431, v1432);
   store(out, 66 << shift, minus(v1463, v1464));
   store(out, 2 << shift, plus(v1463, v1464));
   real2 v1459 = minus(v1432, v1431);
   store(out, 98 << shift, minus(uminusplus(v1458), v1459));
   store(out, 34 << shift, minus(uplusminus(v1458), v1459));
   real2 v1436 = minus(uplusminus(v1426), v1427);
   store(out, 82 << shift, minus(v1436, v1452));
   store(out, 18 << shift, plus(v1436, v1452));
   real2 v1440 = minus(uminusplus(v1426), v1427);
   store(out, 50 << shift, plus(v1440, v1456));
   store(out, 114 << shift, minus(v1440, v1456));
   real2 v911 = ctimesminusplus(reverse(v901), ctbl[3], ctimes(v901, ctbl[2]));
   real2 v783 = ctimesminusplus(reverse(v773), ctbl[2], ctimes(v773, ctbl[3]));
   real2 v1527 = plus(v783, v911);
   real2 v1521 = reverse(minus(v911, v783));
   real2 v943 = ctimesminusplus(reverse(v933), ctbl[9], ctimes(v933, ctbl[8]));
   real2 v847 = ctimesminusplus(reverse(v837), ctbl[0], ctimes(v837, ctbl[0]));
   real2 v1522 = minus(v847, v719);
   real2 v1526 = plus(v719, v847);
   real2 v1590 = plus(v1526, v1527);
   real2 v1586 = minus(v1527, v1526);
   real2 v815 = ctimesminusplus(reverse(v805), ctbl[6], ctimes(v805, ctbl[12]));
   real2 v1559 = plus(v815, v943);
   real2 v1553 = reverse(minus(v943, v815));
   real2 v751 = ctimesminusplus(reverse(v741), ctbl[8], ctimes(v741, ctbl[9]));
   real2 v1558 = plus(v751, v879);
   real2 v1554 = minus(v879, v751);
   real2 v1585 = reverse(minus(v1559, v1558));
   real2 v1591 = plus(v1558, v1559);
   real2 v1618 = minus(v1591, v1590);
   real2 v1622 = plus(v1590, v1591);
   store(out, 70 << shift, minus(v1622, v1623));
   store(out, 6 << shift, plus(v1622, v1623));
   store(out, 102 << shift, minus(uminusplus(v1617), v1618));
   store(out, 38 << shift, minus(uplusminus(v1617), v1618));
   real2 v1599 = minus(uminusplus(v1585), v1586);
   real2 v1595 = minus(uplusminus(v1585), v1586);
   store(out, 22 << shift, plus(v1595, v1611));
   store(out, 86 << shift, minus(v1595, v1611));
   store(out, 54 << shift, plus(v1599, v1615));
   store(out, 118 << shift, minus(v1599, v1615));
   real2 v1555 = minusplus(v1553, v1554);
   real2 v1557 = minusplus(uminus(v1553), v1554);
   real2 v1531 = minus(uplusminus(v1521), v1522);
   real2 v1535 = minus(uminusplus(v1521), v1522);
   real2 v1567 = ctimesminusplus(reverse(v1557), ctbl[0], ctimes(v1557, ctbl[0]));
   real2 v1666 = plus(v1535, v1567);
   store(out, 94 << shift, minus(v1666, v1667));
   store(out, 30 << shift, plus(v1666, v1667));
   real2 v1662 = minus(v1567, v1535);
   store(out, 126 << shift, minus(uminusplus(v1661), v1662));
   store(out, 62 << shift, minus(uplusminus(v1661), v1662));
   real2 v1563 = ctimesminusplus(reverse(v1555), ctbl[0], ctimes(v1555, ctbl[1]));
   real2 v1643 = minus(v1563, v1531);
   store(out, 46 << shift, minus(uplusminus(v1642), v1643));
   store(out, 110 << shift, minus(uminusplus(v1642), v1643));
   real2 v1647 = plus(v1531, v1563);
   store(out, 78 << shift, minus(v1647, v1648));
   store(out, 14 << shift, plus(v1647, v1648));
   real2 v436 = minusplus(uminus(v432), v433);
   real2 v434 = minusplus(v432, v433);
   real2 v145 = minus(uminusplus(v131), v132);
   real2 v141 = minus(uplusminus(v131), v132);
   real2 v607 = minusplus(uminus(v603), v604);
   real2 v605 = minusplus(v603, v604);
   real2 v615 = ctimesminusplus(reverse(v605), ctbl[22], ctimes(v605, ctbl[23]));
   real2 v325 = minusplus(uminus(v321), v322);
   real2 v323 = minusplus(v321, v322);
   real2 v171 = minusplus(uminus(v167), v168);
   real2 v169 = minusplus(v167, v168);
   real2 v179 = ctimesminusplus(reverse(v169), ctbl[28], ctimes(v169, ctbl[29]));
   real2 v333 = ctimesminusplus(reverse(v323), ctbl[24], ctimes(v323, ctbl[25]));
   real2 v1718 = plus(v333, v615);
   real2 v1712 = reverse(minus(v615, v333));
   real2 v470 = minusplus(v468, v469);
   real2 v472 = minusplus(uminus(v468), v469);
   real2 v478 = ctimesminusplus(reverse(v470), ctbl[26], ctimes(v470, ctbl[27]));
   real2 v1717 = plus(v179, v478);
   real2 v1713 = minus(v478, v179);
   real2 v1841 = minus(v1718, v1717);
   real2 v1845 = plus(v1717, v1718);
   real2 v674 = minusplus(v672, v673);
   real2 v676 = minusplus(uminus(v672), v673);
   real2 v249 = minusplus(uminus(v245), v246);
   real2 v247 = minusplus(v245, v246);
   real2 v255 = ctimesminusplus(reverse(v247), ctbl[20], ctimes(v247, ctbl[21]));
   real2 v398 = minusplus(v396, v397);
   real2 v400 = minusplus(uminus(v396), v397);
   real2 v408 = ctimesminusplus(reverse(v398), ctbl[16], ctimes(v398, ctbl[17]));
   real2 v572 = minusplus(v570, v571);
   real2 v574 = minusplus(uminus(v570), v571);
   real2 v625 = minusplus(uminus(v621), v622);
   real2 v623 = minusplus(v621, v622);
   real2 v631 = ctimesminusplus(reverse(v623), ctbl[38], ctimes(v623, ctbl[39]));
   real2 v1728 = reverse(minus(v631, v353));
   real2 v1734 = plus(v353, v631);
   real2 v1857 = minus(v1734, v1733);
   real2 v1861 = plus(v1733, v1734);
   real2 v580 = ctimesminusplus(reverse(v572), ctbl[2], ctimes(v572, ctbl[3]));
   real2 v537 = minusplus(v535, v536);
   real2 v539 = minusplus(uminus(v535), v536);
   real2 v546 = ctimesminusplus(reverse(v537), ctbl[18], ctimes(v537, ctbl[19]));
   real2 v682 = ctimesminusplus(reverse(v674), ctbl[14], ctimes(v674, ctbl[15]));
   real2 v1776 = reverse(minus(v682, v408));
   real2 v1782 = plus(v408, v682);
   real2 v641 = minusplus(uminus(v637), v638);
   real2 v639 = minusplus(v637, v638);
   real2 v287 = minusplus(uminus(v283), v284);
   real2 v285 = minusplus(v283, v284);
   real2 v295 = ctimesminusplus(reverse(v285), ctbl[4], ctimes(v285, ctbl[5]));
   real2 v1680 = reverse(minus(v580, v295));
   real2 v1686 = plus(v295, v580);
   real2 v505 = minusplus(uminus(v501), v502);
   real2 v503 = minusplus(v501, v502);
   real2 v513 = ctimesminusplus(reverse(v503), ctbl[10], ctimes(v503, ctbl[11]));
   real2 v444 = ctimesminusplus(reverse(v434), ctbl[0], ctimes(v434, ctbl[1]));
   real2 v648 = ctimesminusplus(reverse(v639), ctbl[6], ctimes(v639, ctbl[7]));
   real2 v1685 = plus(v141, v444);
   real2 v1681 = minus(v444, v141);
   real2 v1888 = reverse(minus(v1862, v1861));
   real2 v1894 = plus(v1861, v1862);
   real2 v1910 = plus(v1893, v1894);
   real2 v1904 = reverse(minus(v1894, v1893));
   real2 v1813 = plus(v1685, v1686);
   real2 v1809 = minus(v1686, v1685);
   real2 v1777 = minus(v546, v255);
   real2 v1781 = plus(v255, v546);
   real2 v207 = minusplus(v205, v206);
   real2 v209 = minusplus(uminus(v205), v206);
   real2 v1840 = reverse(minus(v1782, v1781));
   real2 v1846 = plus(v1781, v1782);
   real2 v1878 = plus(v1845, v1846);
   real2 v1872 = reverse(minus(v1846, v1845));
   real2 v364 = minusplus(uminus(v360), v361);
   real2 v362 = minusplus(v360, v361);
   real2 v370 = ctimesminusplus(reverse(v362), ctbl[8], ctimes(v362, ctbl[9]));
   real2 v1744 = reverse(minus(v648, v370));
   real2 v1750 = plus(v370, v648);
   real2 v217 = ctimesminusplus(reverse(v207), ctbl[12], ctimes(v207, ctbl[13]));
   real2 v1749 = plus(v217, v513);
   real2 v1745 = minus(v513, v217);
   real2 v1814 = plus(v1749, v1750);
   real2 v1808 = reverse(minus(v1750, v1749));
   real2 v1877 = plus(v1813, v1814);
   real2 v1873 = minus(v1814, v1813);
   real2 v1905 = minus(v1878, v1877);
   real2 v1909 = plus(v1877, v1878);
   store(out, 33 << shift, minus(uplusminus(v1904), v1905));
   store(out, 97 << shift, minus(uminusplus(v1904), v1905));
   store(out, 65 << shift, minus(v1909, v1910));
   store(out, 1 << shift, plus(v1909, v1910));
   real2 v1890 = minusplus(v1888, v1889);
   real2 v1892 = minusplus(uminus(v1888), v1889);
   real2 v1902 = ctimesminusplus(reverse(v1892), ctbl[0], ctimes(v1892, ctbl[0]));
   real2 v1886 = minus(uminusplus(v1872), v1873);
   store(out, 49 << shift, plus(v1886, v1902));
   store(out, 113 << shift, minus(v1886, v1902));
   real2 v1882 = minus(uplusminus(v1872), v1873);
   real2 v1898 = ctimesminusplus(reverse(v1890), ctbl[0], ctimes(v1890, ctbl[1]));
   store(out, 81 << shift, minus(v1882, v1898));
   store(out, 17 << shift, plus(v1882, v1898));
   real2 v1858 = minusplus(v1856, v1857);
   real2 v1860 = minusplus(uminus(v1856), v1857);
   real2 v1870 = ctimesminusplus(reverse(v1860), ctbl[3], ctimes(v1860, ctbl[2]));
   real2 v1948 = reverse(minus(v1870, v1838));
   real2 v1954 = plus(v1838, v1870);
   real2 v1822 = minus(uminusplus(v1808), v1809);
   real2 v1818 = minus(uplusminus(v1808), v1809);
   real2 v1842 = minusplus(v1840, v1841);
   real2 v1844 = minusplus(uminus(v1840), v1841);
   real2 v1854 = ctimesminusplus(reverse(v1844), ctbl[0], ctimes(v1844, ctbl[0]));
   real2 v1949 = minus(v1854, v1822);
   store(out, 121 << shift, minus(uminusplus(v1948), v1949));
   store(out, 57 << shift, minus(uplusminus(v1948), v1949));
   real2 v1953 = plus(v1822, v1854);
   store(out, 89 << shift, minus(v1953, v1954));
   store(out, 25 << shift, plus(v1953, v1954));
   real2 v1850 = ctimesminusplus(reverse(v1842), ctbl[0], ctimes(v1842, ctbl[1]));
   real2 v1866 = ctimesminusplus(reverse(v1858), ctbl[2], ctimes(v1858, ctbl[3]));
   real2 v1929 = reverse(minus(v1866, v1834));
   real2 v1935 = plus(v1834, v1866);
   real2 v1930 = minus(v1850, v1818);
   store(out, 105 << shift, minus(uminusplus(v1929), v1930));
   store(out, 41 << shift, minus(uplusminus(v1929), v1930));
   real2 v1934 = plus(v1818, v1850);
   store(out, 73 << shift, minus(v1934, v1935));
   store(out, 9 << shift, plus(v1934, v1935));
   real2 v1690 = minus(uplusminus(v1680), v1681);
   real2 v1694 = minus(uminusplus(v1680), v1681);
   real2 v1716 = minusplus(uminus(v1712), v1713);
   real2 v1714 = minusplus(v1712, v1713);
   real2 v1730 = minusplus(v1728, v1729);
   real2 v1732 = minusplus(uminus(v1728), v1729);
   real2 v1742 = ctimesminusplus(reverse(v1732), ctbl[6], ctimes(v1732, ctbl[12]));
   real2 v1726 = ctimesminusplus(reverse(v1716), ctbl[2], ctimes(v1716, ctbl[3]));
   real2 v1780 = minusplus(uminus(v1776), v1777);
   real2 v1778 = minusplus(v1776, v1777);
   real2 v1790 = ctimesminusplus(reverse(v1780), ctbl[3], ctimes(v1780, ctbl[2]));
   real2 v2030 = plus(v1726, v1790);
   real2 v2024 = reverse(minus(v1790, v1726));
   real2 v1806 = ctimesminusplus(reverse(v1796), ctbl[9], ctimes(v1796, ctbl[8]));
   real2 v1746 = minusplus(v1744, v1745);
   real2 v1748 = minusplus(uminus(v1744), v1745);
   real2 v2040 = reverse(minus(v1806, v1742));
   real2 v2046 = plus(v1742, v1806);
   real2 v2062 = plus(v2045, v2046);
   real2 v2056 = reverse(minus(v2046, v2045));
   real2 v1758 = ctimesminusplus(reverse(v1748), ctbl[0], ctimes(v1748, ctbl[0]));
   real2 v2025 = minus(v1758, v1694);
   real2 v2029 = plus(v1694, v1758);
   real2 v2057 = minus(v2030, v2029);
   store(out, 109 << shift, minus(uminusplus(v2056), v2057));
   store(out, 45 << shift, minus(uplusminus(v2056), v2057));
   real2 v2061 = plus(v2029, v2030);
   store(out, 13 << shift, plus(v2061, v2062));
   store(out, 77 << shift, minus(v2061, v2062));
   real2 v2044 = minusplus(uminus(v2040), v2041);
   real2 v2042 = minusplus(v2040, v2041);
   real2 v2054 = ctimesminusplus(reverse(v2044), ctbl[0], ctimes(v2044, ctbl[0]));
   real2 v2038 = minus(uminusplus(v2024), v2025);
   real2 v2034 = minus(uplusminus(v2024), v2025);
   store(out, 125 << shift, minus(v2038, v2054));
   store(out, 61 << shift, plus(v2038, v2054));
   real2 v2050 = ctimesminusplus(reverse(v2042), ctbl[0], ctimes(v2042, ctbl[1]));
   store(out, 29 << shift, plus(v2034, v2050));
   store(out, 93 << shift, minus(v2034, v2050));
   real2 v1738 = ctimesminusplus(reverse(v1730), ctbl[8], ctimes(v1730, ctbl[9]));
   real2 v1802 = ctimesminusplus(reverse(v1794), ctbl[6], ctimes(v1794, ctbl[7]));
   real2 v1989 = plus(v1738, v1802);
   real2 v1983 = reverse(minus(v1802, v1738));
   real2 v1999 = reverse(minus(v1989, v1988));
   real2 v2005 = plus(v1988, v1989);
   real2 v1722 = ctimesminusplus(reverse(v1714), ctbl[4], ctimes(v1714, ctbl[5]));
   real2 v1786 = ctimesminusplus(reverse(v1778), ctbl[2], ctimes(v1778, ctbl[3]));
   real2 v1973 = plus(v1722, v1786);
   real2 v1967 = reverse(minus(v1786, v1722));
   real2 v1754 = ctimesminusplus(reverse(v1746), ctbl[0], ctimes(v1746, ctbl[1]));
   real2 v1972 = plus(v1690, v1754);
   real2 v1968 = minus(v1754, v1690);
   real2 v2004 = plus(v1972, v1973);
   store(out, 5 << shift, plus(v2004, v2005));
   store(out, 69 << shift, minus(v2004, v2005));
   real2 v2000 = minus(v1973, v1972);
   store(out, 37 << shift, minus(uplusminus(v1999), v2000));
   store(out, 101 << shift, minus(uminusplus(v1999), v2000));
   real2 v1985 = minusplus(v1983, v1984);
   real2 v1987 = minusplus(uminus(v1983), v1984);
   real2 v1993 = ctimesminusplus(reverse(v1985), ctbl[0], ctimes(v1985, ctbl[1]));
   real2 v1977 = minus(uplusminus(v1967), v1968);
   store(out, 21 << shift, plus(v1977, v1993));
   store(out, 85 << shift, minus(v1977, v1993));
   real2 v1981 = minus(uminusplus(v1967), v1968);
   real2 v1997 = ctimesminusplus(reverse(v1987), ctbl[0], ctimes(v1987, ctbl[0]));
   store(out, 117 << shift, minus(v1981, v1997));
   store(out, 53 << shift, plus(v1981, v1997));
   real2 v703 = ctimesminusplus(reverse(v692), ctbl[45], ctimes(v692, ctbl[44]));
   real2 v261 = ctimesminusplus(reverse(v249), ctbl[26], ctimes(v249, ctbl[27]));
   real2 v550 = ctimesminusplus(reverse(v539), ctbl[15], ctimes(v539, ctbl[14]));
   real2 v413 = ctimesminusplus(reverse(v400), ctbl[18], ctimes(v400, ctbl[24]));
   real2 v2178 = minus(v550, v261);
   real2 v2182 = plus(v261, v550);
   real2 v686 = ctimesminusplus(reverse(v676), ctbl[21], ctimes(v676, ctbl[20]));
   real2 v2183 = plus(v413, v686);
   real2 v2177 = reverse(minus(v686, v413));
   real2 v203 = ctimesminusplus(reverse(v191), ctbl[56], ctimes(v191, ctbl[57]));
   real2 v281 = ctimesminusplus(reverse(v267), ctbl[50], ctimes(v267, ctbl[51]));
   real2 v2247 = plus(v2182, v2183);
   real2 v2241 = reverse(minus(v2183, v2182));
   real2 v619 = ctimesminusplus(reverse(v607), ctbl[27], ctimes(v607, ctbl[26]));
   real2 v358 = ctimesminusplus(reverse(v345), ctbl[30], ctimes(v345, ctbl[60]));
   real2 v499 = ctimesminusplus(reverse(v488), ctbl[36], ctimes(v488, ctbl[54]));
   real2 v2130 = minus(v499, v203);
   real2 v2134 = plus(v203, v499);
   real2 v185 = ctimesminusplus(reverse(v171), ctbl[20], ctimes(v171, ctbl[21]));
   real2 v339 = ctimesminusplus(reverse(v325), ctbl[14], ctimes(v325, ctbl[15]));
   real2 v2119 = plus(v339, v619);
   real2 v2113 = reverse(minus(v619, v339));
   real2 v482 = ctimesminusplus(reverse(v472), ctbl[24], ctimes(v472, ctbl[18]));
   real2 v2114 = minus(v482, v185);
   real2 v2118 = plus(v185, v482);
   real2 v2246 = plus(v2118, v2119);
   real2 v2242 = minus(v2119, v2118);
   real2 v584 = ctimesminusplus(reverse(v574), ctbl[3], ctimes(v574, ctbl[2]));
   real2 v652 = ctimesminusplus(reverse(v641), ctbl[9], ctimes(v641, ctbl[8]));
   real2 v568 = ctimesminusplus(reverse(v556), ctbl[39], ctimes(v556, ctbl[38]));
   real2 v2194 = minus(v568, v281);
   real2 v2198 = plus(v281, v568);
   real2 v517 = ctimesminusplus(reverse(v505), ctbl[12], ctimes(v505, ctbl[6]));
   real2 v430 = ctimesminusplus(reverse(v419), ctbl[42], ctimes(v419, ctbl[48]));
   real2 v2193 = reverse(minus(v703, v430));
   real2 v2199 = plus(v430, v703);
   real2 v2273 = reverse(minus(v2247, v2246));
   real2 v2279 = plus(v2246, v2247);
   real2 v375 = ctimesminusplus(reverse(v364), ctbl[6], ctimes(v364, ctbl[12]));
   real2 v2145 = reverse(minus(v652, v375));
   real2 v2151 = plus(v375, v652);
   real2 v2263 = plus(v2198, v2199);
   real2 v2257 = reverse(minus(v2199, v2198));
   real2 v448 = ctimesminusplus(reverse(v436), ctbl[0], ctimes(v436, ctbl[0]));
   real2 v635 = ctimesminusplus(reverse(v625), ctbl[33], ctimes(v625, ctbl[32]));
   real2 v2129 = reverse(minus(v635, v358));
   real2 v2135 = plus(v358, v635);
   real2 v2258 = minus(v2135, v2134);
   real2 v2262 = plus(v2134, v2135);
   real2 v2086 = plus(v145, v448);
   real2 v2082 = minus(v448, v145);
   real2 v301 = ctimesminusplus(reverse(v287), ctbl[2], ctimes(v287, ctbl[3]));
   real2 v223 = ctimesminusplus(reverse(v209), ctbl[8], ctimes(v209, ctbl[9]));
   real2 v2150 = plus(v223, v517);
   real2 v2146 = minus(v517, v223);
   real2 v2081 = reverse(minus(v584, v301));
   real2 v2087 = plus(v301, v584);
   real2 v2210 = minus(v2087, v2086);
   real2 v2214 = plus(v2086, v2087);
   real2 v2215 = plus(v2150, v2151);
   real2 v2209 = reverse(minus(v2151, v2150));
   real2 v2289 = reverse(minus(v2263, v2262));
   real2 v2295 = plus(v2262, v2263);
   real2 v2311 = plus(v2294, v2295);
   real2 v2305 = reverse(minus(v2295, v2294));
   real2 v2274 = minus(v2215, v2214);
   real2 v2278 = plus(v2214, v2215);
   real2 v2306 = minus(v2279, v2278);
   real2 v2310 = plus(v2278, v2279);
   store(out, 35 << shift, minus(uplusminus(v2305), v2306));
   store(out, 99 << shift, minus(uminusplus(v2305), v2306));
   store(out, 3 << shift, plus(v2310, v2311));
   store(out, 67 << shift, minus(v2310, v2311));
   real2 v2293 = minusplus(uminus(v2289), v2290);
   real2 v2291 = minusplus(v2289, v2290);
   real2 v2303 = ctimesminusplus(reverse(v2293), ctbl[0], ctimes(v2293, ctbl[0]));
   real2 v2287 = minus(uminusplus(v2273), v2274);
   store(out, 51 << shift, plus(v2287, v2303));
   store(out, 115 << shift, minus(v2287, v2303));
   real2 v2283 = minus(uplusminus(v2273), v2274);
   real2 v2299 = ctimesminusplus(reverse(v2291), ctbl[0], ctimes(v2291, ctbl[1]));
   store(out, 19 << shift, plus(v2283, v2299));
   store(out, 83 << shift, minus(v2283, v2299));
   real2 v2261 = minusplus(uminus(v2257), v2258);
   real2 v2259 = minusplus(v2257, v2258);
   real2 v2243 = minusplus(v2241, v2242);
   real2 v2245 = minusplus(uminus(v2241), v2242);
   real2 v2251 = ctimesminusplus(reverse(v2243), ctbl[0], ctimes(v2243, ctbl[1]));
   real2 v2267 = ctimesminusplus(reverse(v2259), ctbl[2], ctimes(v2259, ctbl[3]));
   real2 v2229 = minusplus(uminus(v2225), v2226);
   real2 v2227 = minusplus(v2225, v2226);
   real2 v2235 = ctimesminusplus(reverse(v2227), ctbl[4], ctimes(v2227, ctbl[5]));
   real2 v2330 = reverse(minus(v2267, v2235));
   real2 v2336 = plus(v2235, v2267);
   real2 v2219 = minus(uplusminus(v2209), v2210);
   real2 v2223 = minus(uminusplus(v2209), v2210);
   real2 v2335 = plus(v2219, v2251);
   real2 v2331 = minus(v2251, v2219);
   store(out, 43 << shift, minus(uplusminus(v2330), v2331));
   store(out, 107 << shift, minus(uminusplus(v2330), v2331));
   store(out, 75 << shift, minus(v2335, v2336));
   store(out, 11 << shift, plus(v2335, v2336));
   real2 v2239 = ctimesminusplus(reverse(v2229), ctbl[2], ctimes(v2229, ctbl[3]));
   real2 v2271 = ctimesminusplus(reverse(v2261), ctbl[3], ctimes(v2261, ctbl[2]));
   real2 v2349 = reverse(minus(v2271, v2239));
   real2 v2355 = plus(v2239, v2271);
   real2 v2255 = ctimesminusplus(reverse(v2245), ctbl[0], ctimes(v2245, ctbl[0]));
   real2 v2350 = minus(v2255, v2223);
   store(out, 59 << shift, minus(uplusminus(v2349), v2350));
   store(out, 123 << shift, minus(uminusplus(v2349), v2350));
   real2 v2354 = plus(v2223, v2255);
   store(out, 91 << shift, minus(v2354, v2355));
   store(out, 27 << shift, plus(v2354, v2355));
   real2 v2165 = minusplus(uminus(v2161), v2162);
   real2 v2163 = minusplus(v2161, v2162);
   real2 v2133 = minusplus(uminus(v2129), v2130);
   real2 v2131 = minusplus(v2129, v2130);
   real2 v2195 = minusplus(v2193, v2194);
   real2 v2197 = minusplus(uminus(v2193), v2194);
   real2 v2203 = ctimesminusplus(reverse(v2195), ctbl[6], ctimes(v2195, ctbl[7]));
   real2 v2171 = ctimesminusplus(reverse(v2163), ctbl[10], ctimes(v2163, ctbl[11]));
   real2 v2385 = minus(v2171, v2107);
   real2 v2389 = plus(v2107, v2171);
   real2 v2139 = ctimesminusplus(reverse(v2131), ctbl[8], ctimes(v2131, ctbl[9]));
   real2 v2390 = plus(v2139, v2203);
   real2 v2384 = reverse(minus(v2203, v2139));
   real2 v2406 = plus(v2389, v2390);
   real2 v2400 = reverse(minus(v2390, v2389));
   real2 v2181 = minusplus(uminus(v2177), v2178);
   real2 v2179 = minusplus(v2177, v2178);
   real2 v2091 = minus(uplusminus(v2081), v2082);
   real2 v2095 = minus(uminusplus(v2081), v2082);
   real2 v2117 = minusplus(uminus(v2113), v2114);
   real2 v2115 = minusplus(v2113, v2114);
   real2 v2123 = ctimesminusplus(reverse(v2115), ctbl[4], ctimes(v2115, ctbl[5]));
   real2 v2187 = ctimesminusplus(reverse(v2179), ctbl[2], ctimes(v2179, ctbl[3]));
   real2 v2374 = plus(v2123, v2187);
   real2 v2368 = reverse(minus(v2187, v2123));
   real2 v2149 = minusplus(uminus(v2145), v2146);
   real2 v2147 = minusplus(v2145, v2146);
   real2 v2155 = ctimesminusplus(reverse(v2147), ctbl[0], ctimes(v2147, ctbl[1]));
   real2 v2373 = plus(v2091, v2155);
   real2 v2369 = minus(v2155, v2091);
   real2 v2401 = minus(v2374, v2373);
   real2 v2405 = plus(v2373, v2374);
   store(out, 71 << shift, minus(v2405, v2406));
   store(out, 7 << shift, plus(v2405, v2406));
   store(out, 103 << shift, minus(uminusplus(v2400), v2401));
   store(out, 39 << shift, minus(uplusminus(v2400), v2401));
   real2 v2388 = minusplus(uminus(v2384), v2385);
   real2 v2386 = minusplus(v2384, v2385);
   real2 v2398 = ctimesminusplus(reverse(v2388), ctbl[0], ctimes(v2388, ctbl[0]));
   real2 v2378 = minus(uplusminus(v2368), v2369);
   real2 v2382 = minus(uminusplus(v2368), v2369);
   store(out, 55 << shift, plus(v2382, v2398));
   store(out, 119 << shift, minus(v2382, v2398));
   real2 v2394 = ctimesminusplus(reverse(v2386), ctbl[0], ctimes(v2386, ctbl[1]));
   store(out, 23 << shift, plus(v2378, v2394));
   store(out, 87 << shift, minus(v2378, v2394));
   real2 v2207 = ctimesminusplus(reverse(v2197), ctbl[9], ctimes(v2197, ctbl[8]));
   real2 v2111 = ctimesminusplus(reverse(v2101), ctbl[8], ctimes(v2101, ctbl[9]));
   real2 v2175 = ctimesminusplus(reverse(v2165), ctbl[12], ctimes(v2165, ctbl[6]));
   real2 v2446 = plus(v2111, v2175);
   real2 v2442 = minus(v2175, v2111);
   real2 v2143 = ctimesminusplus(reverse(v2133), ctbl[6], ctimes(v2133, ctbl[12]));
   real2 v2441 = reverse(minus(v2207, v2143));
   real2 v2447 = plus(v2143, v2207);
   real2 v2443 = minusplus(v2441, v2442);
   real2 v2445 = minusplus(uminus(v2441), v2442);
   real2 v2159 = ctimesminusplus(reverse(v2149), ctbl[0], ctimes(v2149, ctbl[0]));
   real2 v2455 = ctimesminusplus(reverse(v2445), ctbl[0], ctimes(v2445, ctbl[0]));
   real2 v2127 = ctimesminusplus(reverse(v2117), ctbl[2], ctimes(v2117, ctbl[3]));
   real2 v2191 = ctimesminusplus(reverse(v2181), ctbl[3], ctimes(v2181, ctbl[2]));
   real2 v2431 = plus(v2127, v2191);
   real2 v2425 = reverse(minus(v2191, v2127));
   real2 v2426 = minus(v2159, v2095);
   real2 v2430 = plus(v2095, v2159);
   real2 v2439 = minus(uminusplus(v2425), v2426);
   store(out, 127 << shift, minus(v2439, v2455));
   store(out, 63 << shift, plus(v2439, v2455));
   real2 v2435 = minus(uplusminus(v2425), v2426);
   real2 v2451 = ctimesminusplus(reverse(v2443), ctbl[0], ctimes(v2443, ctbl[1]));
   store(out, 95 << shift, minus(v2435, v2451));
   store(out, 31 << shift, plus(v2435, v2451));
   real2 v2463 = plus(v2446, v2447);
   real2 v2457 = reverse(minus(v2447, v2446));
   real2 v2458 = minus(v2431, v2430);
   store(out, 47 << shift, minus(uplusminus(v2457), v2458));
   store(out, 111 << shift, minus(uminusplus(v2457), v2458));
   real2 v2462 = plus(v2430, v2431);
   store(out, 79 << shift, minus(v2462, v2463));
   store(out, 15 << shift, plus(v2462, v2463));
// Pres : 68088
  }
}

ALIGNED(8192) void but128f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

// Pres : 148586
   real2 v56 = load(in, 54 << inShift);
   real2 v120 = load(in, 118 << inShift);
   real2 v571 = reverse(minus(v56, v120));
   real2 v577 = plus(v56, v120);
   real2 v24 = load(in, 22 << inShift);
   real2 v88 = load(in, 86 << inShift);
   real2 v576 = plus(v24, v88);
   real2 v572 = minus(v88, v24);
   real2 v573 = minusplus(v571, v572);
   real2 v575 = minusplus(uminus(v571), v572);
   real2 v589 = ctimesminusplus(reverse(v575), tbl[92 + tbloffset], ctimes(v575, tbl[93 + tbloffset]));
   real2 v583 = ctimesminusplus(reverse(v573), tbl[90 + tbloffset], ctimes(v573, tbl[91 + tbloffset]));
   real2 v897 = plus(v576, v577);
   real2 v891 = reverse(minus(v576, v577));
   real2 v8 = load(in, 6 << inShift);
   real2 v72 = load(in, 70 << inShift);
   real2 v252 = minus(v72, v8);
   real2 v256 = plus(v8, v72);
   real2 v104 = load(in, 102 << inShift);
   real2 v40 = load(in, 38 << inShift);
   real2 v251 = reverse(minus(v40, v104));
   real2 v257 = plus(v40, v104);
   real2 v255 = minusplus(uminus(v251), v252);
   real2 v253 = minusplus(v251, v252);
   real2 v263 = ctimesminusplus(reverse(v253), tbl[26 + tbloffset], ctimes(v253, tbl[27 + tbloffset]));
   real2 v896 = plus(v256, v257);
   real2 v892 = minus(v257, v256);
   real2 v895 = minusplus(uminus(v891), v892);
   real2 v893 = minusplus(v891, v892);
   real2 v909 = ctimesminusplus(reverse(v895), tbl[156 + tbloffset], ctimes(v895, tbl[157 + tbloffset]));
   real2 v903 = ctimesminusplus(reverse(v893), tbl[154 + tbloffset], ctimes(v893, tbl[155 + tbloffset]));
   real2 v269 = ctimesminusplus(reverse(v255), tbl[28 + tbloffset], ctimes(v255, tbl[29 + tbloffset]));
   real2 v1216 = plus(v896, v897);
   real2 v1212 = minus(v897, v896);
   real2 v2160 = minus(v583, v263);
   real2 v2164 = plus(v263, v583);
   real2 v2686 = minus(v589, v269);
   real2 v2690 = plus(v269, v589);
   real2 v96 = load(in, 94 << inShift);
   real2 v32 = load(in, 30 << inShift);
   real2 v736 = plus(v32, v96);
   real2 v732 = minus(v96, v32);
   real2 v64 = load(in, 62 << inShift);
   real2 v128 = load(in, 126 << inShift);
   real2 v737 = plus(v64, v128);
   real2 v731 = reverse(minus(v64, v128));
   real2 v1057 = plus(v736, v737);
   real2 v1051 = reverse(minus(v736, v737));
   real2 v733 = minusplus(v731, v732);
   real2 v735 = minusplus(uminus(v731), v732);
   real2 v749 = ctimesminusplus(reverse(v735), tbl[124 + tbloffset], ctimes(v735, tbl[125 + tbloffset]));
   real2 v743 = ctimesminusplus(reverse(v733), tbl[122 + tbloffset], ctimes(v733, tbl[123 + tbloffset]));
   real2 v16 = load(in, 14 << inShift);
   real2 v80 = load(in, 78 << inShift);
   real2 v412 = minus(v80, v16);
   real2 v416 = plus(v16, v80);
   real2 v112 = load(in, 110 << inShift);
   real2 v48 = load(in, 46 << inShift);
   real2 v417 = plus(v48, v112);
   real2 v411 = reverse(minus(v48, v112));
   real2 v1056 = plus(v416, v417);
   real2 v1052 = minus(v417, v416);
   real2 v1055 = minusplus(uminus(v1051), v1052);
   real2 v1053 = minusplus(v1051, v1052);
   real2 v1063 = ctimesminusplus(reverse(v1053), tbl[186 + tbloffset], ctimes(v1053, tbl[187 + tbloffset]));
   real2 v1665 = plus(v903, v1063);
   real2 v1659 = reverse(minus(v903, v1063));
   real2 v1069 = ctimesminusplus(reverse(v1055), tbl[188 + tbloffset], ctimes(v1055, tbl[189 + tbloffset]));
   real2 v1869 = reverse(minus(v909, v1069));
   real2 v1875 = plus(v909, v1069);
   real2 v413 = minusplus(v411, v412);
   real2 v415 = minusplus(uminus(v411), v412);
   real2 v429 = ctimesminusplus(reverse(v415), tbl[60 + tbloffset], ctimes(v415, tbl[61 + tbloffset]));
   real2 v1217 = plus(v1056, v1057);
   real2 v1211 = reverse(minus(v1056, v1057));
   real2 v1297 = plus(v1216, v1217);
   real2 v1291 = reverse(minus(v1216, v1217));
   real2 v2691 = plus(v429, v749);
   real2 v2685 = reverse(minus(v429, v749));
   real2 v2765 = reverse(minus(v2690, v2691));
   real2 v2771 = plus(v2690, v2691);
   real2 v2689 = minusplus(uminus(v2685), v2686);
   real2 v2687 = minusplus(v2685, v2686);
   real2 v2703 = ctimesminusplus(reverse(v2689), tbl[476 + tbloffset], ctimes(v2689, tbl[477 + tbloffset]));
   real2 v2697 = ctimesminusplus(reverse(v2687), tbl[474 + tbloffset], ctimes(v2687, tbl[475 + tbloffset]));
   real2 v1215 = minusplus(uminus(v1211), v1212);
   real2 v1213 = minusplus(v1211, v1212);
   real2 v1223 = ctimesminusplus(reverse(v1213), tbl[218 + tbloffset], ctimes(v1213, tbl[219 + tbloffset]));
   real2 v1229 = ctimesminusplus(reverse(v1215), tbl[220 + tbloffset], ctimes(v1215, tbl[221 + tbloffset]));
   real2 v423 = ctimesminusplus(reverse(v413), tbl[58 + tbloffset], ctimes(v413, tbl[59 + tbloffset]));
   real2 v2165 = plus(v423, v743);
   real2 v2159 = reverse(minus(v423, v743));
   real2 v2245 = plus(v2164, v2165);
   real2 v2239 = reverse(minus(v2164, v2165));
   real2 v44 = load(in, 42 << inShift);
   real2 v108 = load(in, 106 << inShift);
   real2 v331 = reverse(minus(v44, v108));
   real2 v337 = plus(v44, v108);
   real2 v76 = load(in, 74 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v336 = plus(v12, v76);
   real2 v332 = minus(v76, v12);
   real2 v976 = plus(v336, v337);
   real2 v972 = minus(v337, v336);
   real2 v335 = minusplus(uminus(v331), v332);
   real2 v333 = minusplus(v331, v332);
   real2 v343 = ctimesminusplus(reverse(v333), tbl[42 + tbloffset], ctimes(v333, tbl[43 + tbloffset]));
   real2 v349 = ctimesminusplus(reverse(v335), tbl[44 + tbloffset], ctimes(v335, tbl[45 + tbloffset]));
   real2 v124 = load(in, 122 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v651 = reverse(minus(v60, v124));
   real2 v657 = plus(v60, v124);
   real2 v28 = load(in, 26 << inShift);
   real2 v92 = load(in, 90 << inShift);
   real2 v652 = minus(v92, v28);
   real2 v656 = plus(v28, v92);
   real2 v977 = plus(v656, v657);
   real2 v971 = reverse(minus(v656, v657));
   real2 v973 = minusplus(v971, v972);
   real2 v975 = minusplus(uminus(v971), v972);
   real2 v983 = ctimesminusplus(reverse(v973), tbl[170 + tbloffset], ctimes(v973, tbl[171 + tbloffset]));
   real2 v1131 = reverse(minus(v976, v977));
   real2 v1137 = plus(v976, v977);
   real2 v655 = minusplus(uminus(v651), v652);
   real2 v653 = minusplus(v651, v652);
   real2 v669 = ctimesminusplus(reverse(v655), tbl[108 + tbloffset], ctimes(v655, tbl[109 + tbloffset]));
   real2 v663 = ctimesminusplus(reverse(v653), tbl[106 + tbloffset], ctimes(v653, tbl[107 + tbloffset]));
   real2 v2079 = reverse(minus(v343, v663));
   real2 v2085 = plus(v343, v663);
   real2 v2605 = reverse(minus(v349, v669));
   real2 v2611 = plus(v349, v669);
   real2 v989 = ctimesminusplus(reverse(v975), tbl[172 + tbloffset], ctimes(v975, tbl[173 + tbloffset]));
   real2 v20 = load(in, 18 << inShift);
   real2 v84 = load(in, 82 << inShift);
   real2 v496 = plus(v20, v84);
   real2 v492 = minus(v84, v20);
   real2 v52 = load(in, 50 << inShift);
   real2 v116 = load(in, 114 << inShift);
   real2 v491 = reverse(minus(v52, v116));
   real2 v497 = plus(v52, v116);
   real2 v817 = plus(v496, v497);
   real2 v811 = reverse(minus(v496, v497));
   real2 v493 = minusplus(v491, v492);
   real2 v495 = minusplus(uminus(v491), v492);
   real2 v509 = ctimesminusplus(reverse(v495), tbl[76 + tbloffset], ctimes(v495, tbl[77 + tbloffset]));
   real2 v503 = ctimesminusplus(reverse(v493), tbl[74 + tbloffset], ctimes(v493, tbl[75 + tbloffset]));
   real2 v36 = load(in, 34 << inShift);
   real2 v100 = load(in, 98 << inShift);
   real2 v171 = reverse(minus(v36, v100));
   real2 v177 = plus(v36, v100);
   real2 v68 = load(in, 66 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v176 = plus(v4, v68);
   real2 v172 = minus(v68, v4);
   real2 v816 = plus(v176, v177);
   real2 v812 = minus(v177, v176);
   real2 v1136 = plus(v816, v817);
   real2 v1132 = minus(v817, v816);
   real2 v1133 = minusplus(v1131, v1132);
   real2 v1135 = minusplus(uminus(v1131), v1132);
   real2 v1149 = ctimesminusplus(reverse(v1135), tbl[204 + tbloffset], ctimes(v1135, tbl[205 + tbloffset]));
   real2 v1296 = plus(v1136, v1137);
   real2 v1292 = minus(v1137, v1136);
   real2 v1295 = minusplus(uminus(v1291), v1292);
   real2 v1293 = minusplus(v1291, v1292);
   real2 v1303 = ctimesminusplus(reverse(v1293), tbl[234 + tbloffset], ctimes(v1293, tbl[235 + tbloffset]));
   real2 v1331 = reverse(minus(v1296, v1297));
   real2 v1337 = plus(v1296, v1297);
   real2 v173 = minusplus(v171, v172);
   real2 v175 = minusplus(uminus(v171), v172);
   real2 v189 = ctimesminusplus(reverse(v175), tbl[12 + tbloffset], ctimes(v175, tbl[13 + tbloffset]));
   real2 v1309 = ctimesminusplus(reverse(v1295), tbl[236 + tbloffset], ctimes(v1295, tbl[237 + tbloffset]));
   real2 v815 = minusplus(uminus(v811), v812);
   real2 v813 = minusplus(v811, v812);
   real2 v1143 = ctimesminusplus(reverse(v1133), tbl[202 + tbloffset], ctimes(v1133, tbl[203 + tbloffset]));
   real2 v1541 = reverse(minus(v1149, v1229));
   real2 v1547 = plus(v1149, v1229);
   real2 v2610 = plus(v189, v509);
   real2 v2606 = minus(v509, v189);
   real2 v2770 = plus(v2610, v2611);
   real2 v2766 = minus(v2611, v2610);
   real2 v823 = ctimesminusplus(reverse(v813), tbl[138 + tbloffset], ctimes(v813, tbl[139 + tbloffset]));
   real2 v829 = ctimesminusplus(reverse(v815), tbl[140 + tbloffset], ctimes(v815, tbl[141 + tbloffset]));
   real2 v2811 = plus(v2770, v2771);
   real2 v2805 = reverse(minus(v2770, v2771));
   real2 v2767 = minusplus(v2765, v2766);
   real2 v2769 = minusplus(uminus(v2765), v2766);
   real2 v2607 = minusplus(v2605, v2606);
   real2 v2609 = minusplus(uminus(v2605), v2606);
   real2 v2617 = ctimesminusplus(reverse(v2607), tbl[458 + tbloffset], ctimes(v2607, tbl[459 + tbloffset]));
   real2 v2623 = ctimesminusplus(reverse(v2609), tbl[460 + tbloffset], ctimes(v2609, tbl[461 + tbloffset]));
   real2 v3013 = reverse(minus(v2623, v2703));
   real2 v3019 = plus(v2623, v2703);
   real2 v2783 = ctimesminusplus(reverse(v2769), tbl[492 + tbloffset], ctimes(v2769, tbl[493 + tbloffset]));
   real2 v2941 = plus(v2617, v2697);
   real2 v2935 = reverse(minus(v2617, v2697));
   real2 v2777 = ctimesminusplus(reverse(v2767), tbl[490 + tbloffset], ctimes(v2767, tbl[491 + tbloffset]));
   real2 v1660 = minus(v983, v823);
   real2 v1664 = plus(v823, v983);
   real2 v1874 = plus(v829, v989);
   real2 v1870 = minus(v989, v829);
   real2 v1909 = reverse(minus(v1874, v1875));
   real2 v1915 = plus(v1874, v1875);
   real2 v1663 = minusplus(uminus(v1659), v1660);
   real2 v1661 = minusplus(v1659, v1660);
   real2 v1677 = ctimesminusplus(reverse(v1663), tbl[296 + tbloffset], ctimes(v1663, tbl[297 + tbloffset]));
   real2 v1873 = minusplus(uminus(v1869), v1870);
   real2 v1871 = minusplus(v1869, v1870);
   real2 v1887 = ctimesminusplus(reverse(v1873), tbl[332 + tbloffset], ctimes(v1873, tbl[333 + tbloffset]));
   real2 v1705 = plus(v1664, v1665);
   real2 v1699 = reverse(minus(v1664, v1665));
   real2 v1671 = ctimesminusplus(reverse(v1661), tbl[294 + tbloffset], ctimes(v1661, tbl[295 + tbloffset]));
   real2 v1881 = ctimesminusplus(reverse(v1871), tbl[330 + tbloffset], ctimes(v1871, tbl[331 + tbloffset]));
   real2 v1469 = plus(v1143, v1223);
   real2 v1463 = reverse(minus(v1143, v1223));
   real2 v54 = load(in, 52 << inShift);
   real2 v118 = load(in, 116 << inShift);
   real2 v537 = plus(v54, v118);
   real2 v531 = reverse(minus(v54, v118));
   real2 v86 = load(in, 84 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v536 = plus(v22, v86);
   real2 v532 = minus(v86, v22);
   real2 v851 = reverse(minus(v536, v537));
   real2 v857 = plus(v536, v537);
   real2 v533 = minusplus(v531, v532);
   real2 v535 = minusplus(uminus(v531), v532);
   real2 v549 = ctimesminusplus(reverse(v535), tbl[84 + tbloffset], ctimes(v535, tbl[85 + tbloffset]));
   real2 v102 = load(in, 100 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v217 = plus(v38, v102);
   real2 v211 = reverse(minus(v38, v102));
   real2 v70 = load(in, 68 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v216 = plus(v6, v70);
   real2 v212 = minus(v70, v6);
   real2 v213 = minusplus(v211, v212);
   real2 v215 = minusplus(uminus(v211), v212);
   real2 v229 = ctimesminusplus(reverse(v215), tbl[20 + tbloffset], ctimes(v215, tbl[21 + tbloffset]));
   real2 v2646 = minus(v549, v229);
   real2 v2650 = plus(v229, v549);
   real2 v856 = plus(v216, v217);
   real2 v852 = minus(v217, v216);
   real2 v853 = minusplus(v851, v852);
   real2 v855 = minusplus(uminus(v851), v852);
   real2 v863 = ctimesminusplus(reverse(v853), tbl[146 + tbloffset], ctimes(v853, tbl[147 + tbloffset]));
   real2 v869 = ctimesminusplus(reverse(v855), tbl[148 + tbloffset], ctimes(v855, tbl[149 + tbloffset]));
   real2 v1176 = plus(v856, v857);
   real2 v1172 = minus(v857, v856);
   real2 v110 = load(in, 108 << inShift);
   real2 v46 = load(in, 44 << inShift);
   real2 v377 = plus(v46, v110);
   real2 v371 = reverse(minus(v46, v110));
   real2 v78 = load(in, 76 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v372 = minus(v78, v14);
   real2 v376 = plus(v14, v78);
   real2 v1012 = minus(v377, v376);
   real2 v1016 = plus(v376, v377);
   real2 v373 = minusplus(v371, v372);
   real2 v375 = minusplus(uminus(v371), v372);
   real2 v389 = ctimesminusplus(reverse(v375), tbl[52 + tbloffset], ctimes(v375, tbl[53 + tbloffset]));
   real2 v30 = load(in, 28 << inShift);
   real2 v94 = load(in, 92 << inShift);
   real2 v696 = plus(v30, v94);
   real2 v692 = minus(v94, v30);
   real2 v62 = load(in, 60 << inShift);
   real2 v126 = load(in, 124 << inShift);
   real2 v697 = plus(v62, v126);
   real2 v691 = reverse(minus(v62, v126));
   real2 v1017 = plus(v696, v697);
   real2 v1011 = reverse(minus(v696, v697));
   real2 v1171 = reverse(minus(v1016, v1017));
   real2 v1177 = plus(v1016, v1017);
   real2 v1013 = minusplus(v1011, v1012);
   real2 v1015 = minusplus(uminus(v1011), v1012);
   real2 v1175 = minusplus(uminus(v1171), v1172);
   real2 v1173 = minusplus(v1171, v1172);
   real2 v1183 = ctimesminusplus(reverse(v1173), tbl[210 + tbloffset], ctimes(v1173, tbl[211 + tbloffset]));
   real2 v1189 = ctimesminusplus(reverse(v1175), tbl[212 + tbloffset], ctimes(v1175, tbl[213 + tbloffset]));
   real2 v1029 = ctimesminusplus(reverse(v1015), tbl[180 + tbloffset], ctimes(v1015, tbl[181 + tbloffset]));
   real2 v1023 = ctimesminusplus(reverse(v1013), tbl[178 + tbloffset], ctimes(v1013, tbl[179 + tbloffset]));
   real2 v1625 = plus(v863, v1023);
   real2 v1619 = reverse(minus(v863, v1023));
   real2 v1835 = plus(v869, v1029);
   real2 v1829 = reverse(minus(v869, v1029));
   real2 v693 = minusplus(v691, v692);
   real2 v695 = minusplus(uminus(v691), v692);
   real2 v709 = ctimesminusplus(reverse(v695), tbl[116 + tbloffset], ctimes(v695, tbl[117 + tbloffset]));
   real2 v2645 = reverse(minus(v389, v709));
   real2 v2651 = plus(v389, v709);
   real2 v1257 = plus(v1176, v1177);
   real2 v1251 = reverse(minus(v1176, v1177));
   real2 v2731 = plus(v2650, v2651);
   real2 v2725 = reverse(minus(v2650, v2651));
   real2 v114 = load(in, 112 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v457 = plus(v50, v114);
   real2 v451 = reverse(minus(v50, v114));
   real2 v18 = load(in, 16 << inShift);
   real2 v82 = load(in, 80 << inShift);
   real2 v456 = plus(v18, v82);
   real2 v452 = minus(v82, v18);
   real2 v771 = reverse(minus(v456, v457));
   real2 v777 = plus(v456, v457);
   real2 v453 = minusplus(v451, v452);
   real2 v455 = minusplus(uminus(v451), v452);
   real2 v469 = ctimesminusplus(reverse(v455), tbl[68 + tbloffset], ctimes(v455, tbl[69 + tbloffset]));
   real2 v66 = load(in, 64 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v131 = reverse(minus(v34, v98));
   real2 v137 = plus(v34, v98);
   real2 v133 = minusplus(v131, v132);
   real2 v135 = minusplus(uminus(v131), v132);
   real2 v149 = ctimesminusplus(reverse(v135), tbl[4 + tbloffset], ctimes(v135, tbl[5 + tbloffset]));
   real2 v2566 = minus(v469, v149);
   real2 v2570 = plus(v149, v469);
   real2 v772 = minus(v137, v136);
   real2 v776 = plus(v136, v137);
   real2 v1092 = minus(v777, v776);
   real2 v1096 = plus(v776, v777);
   real2 v773 = minusplus(v771, v772);
   real2 v775 = minusplus(uminus(v771), v772);
   real2 v783 = ctimesminusplus(reverse(v773), tbl[130 + tbloffset], ctimes(v773, tbl[131 + tbloffset]));
   real2 v789 = ctimesminusplus(reverse(v775), tbl[132 + tbloffset], ctimes(v775, tbl[133 + tbloffset]));
   real2 v74 = load(in, 72 << inShift);
   real2 v10 = load(in, 8 << inShift);
   real2 v296 = plus(v10, v74);
   real2 v292 = minus(v74, v10);
   real2 v42 = load(in, 40 << inShift);
   real2 v106 = load(in, 104 << inShift);
   real2 v291 = reverse(minus(v42, v106));
   real2 v297 = plus(v42, v106);
   real2 v293 = minusplus(v291, v292);
   real2 v295 = minusplus(uminus(v291), v292);
   real2 v309 = ctimesminusplus(reverse(v295), tbl[36 + tbloffset], ctimes(v295, tbl[37 + tbloffset]));
   real2 v932 = minus(v297, v296);
   real2 v936 = plus(v296, v297);
   real2 v122 = load(in, 120 << inShift);
   real2 v58 = load(in, 56 << inShift);
   real2 v617 = plus(v58, v122);
   real2 v611 = reverse(minus(v58, v122));
   real2 v26 = load(in, 24 << inShift);
   real2 v90 = load(in, 88 << inShift);
   real2 v612 = minus(v90, v26);
   real2 v616 = plus(v26, v90);
   real2 v937 = plus(v616, v617);
   real2 v931 = reverse(minus(v616, v617));
   real2 v1091 = reverse(minus(v936, v937));
   real2 v1097 = plus(v936, v937);
   real2 v933 = minusplus(v931, v932);
   real2 v935 = minusplus(uminus(v931), v932);
   real2 v1093 = minusplus(v1091, v1092);
   real2 v1095 = minusplus(uminus(v1091), v1092);
   real2 v1103 = ctimesminusplus(reverse(v1093), tbl[194 + tbloffset], ctimes(v1093, tbl[195 + tbloffset]));
   real2 v1468 = plus(v1103, v1183);
   real2 v1464 = minus(v1183, v1103);
   real2 v1508 = plus(v1468, v1469);
   real2 v1504 = minus(v1469, v1468);
   real2 v1252 = minus(v1097, v1096);
   real2 v1256 = plus(v1096, v1097);
   real2 v1336 = plus(v1256, v1257);
   real2 v1332 = minus(v1257, v1256);
   real2 v1335 = minusplus(uminus(v1331), v1332);
   real2 v1333 = minusplus(v1331, v1332);
   real2 v1343 = ctimesminusplus(reverse(v1333), tbl[242 + tbloffset], ctimes(v1333, tbl[243 + tbloffset]));
   real2 v1349 = ctimesminusplus(reverse(v1335), tbl[244 + tbloffset], ctimes(v1335, tbl[245 + tbloffset]));
   real2 v1376 = plus(v1336, v1337);
   real2 v1372 = minus(v1337, v1336);
   real2 v1465 = minusplus(v1463, v1464);
   real2 v1467 = minusplus(uminus(v1463), v1464);
   real2 v1255 = minusplus(uminus(v1251), v1252);
   real2 v1253 = minusplus(v1251, v1252);
   real2 v1481 = ctimesminusplus(reverse(v1467), tbl[264 + tbloffset], ctimes(v1467, tbl[265 + tbloffset]));
   real2 v1475 = ctimesminusplus(reverse(v1465), tbl[262 + tbloffset], ctimes(v1465, tbl[263 + tbloffset]));
   real2 v1109 = ctimesminusplus(reverse(v1095), tbl[196 + tbloffset], ctimes(v1095, tbl[197 + tbloffset]));
   real2 v1542 = minus(v1189, v1109);
   real2 v1546 = plus(v1109, v1189);
   real2 v1545 = minusplus(uminus(v1541), v1542);
   real2 v1543 = minusplus(v1541, v1542);
   real2 v1553 = ctimesminusplus(reverse(v1543), tbl[274 + tbloffset], ctimes(v1543, tbl[275 + tbloffset]));
   real2 v1559 = ctimesminusplus(reverse(v1545), tbl[276 + tbloffset], ctimes(v1545, tbl[277 + tbloffset]));
   real2 v1582 = minus(v1547, v1546);
   real2 v1586 = plus(v1546, v1547);
   real2 v1269 = ctimesminusplus(reverse(v1255), tbl[228 + tbloffset], ctimes(v1255, tbl[229 + tbloffset]));
   real2 v1438 = minus(v1309, v1269);
   real2 v1442 = plus(v1269, v1309);
   real2 v1263 = ctimesminusplus(reverse(v1253), tbl[226 + tbloffset], ctimes(v1253, tbl[227 + tbloffset]));
   real2 v943 = ctimesminusplus(reverse(v933), tbl[162 + tbloffset], ctimes(v933, tbl[163 + tbloffset]));
   real2 v1624 = plus(v783, v943);
   real2 v1620 = minus(v943, v783);
   real2 v1623 = minusplus(uminus(v1619), v1620);
   real2 v1621 = minusplus(v1619, v1620);
   real2 v1700 = minus(v1625, v1624);
   real2 v1704 = plus(v1624, v1625);
   real2 v1631 = ctimesminusplus(reverse(v1621), tbl[286 + tbloffset], ctimes(v1621, tbl[287 + tbloffset]));
   real2 v949 = ctimesminusplus(reverse(v935), tbl[164 + tbloffset], ctimes(v935, tbl[165 + tbloffset]));
   real2 v1830 = minus(v949, v789);
   real2 v1834 = plus(v789, v949);
   real2 v1782 = plus(v1631, v1671);
   real2 v1778 = minus(v1671, v1631);
   real2 v1910 = minus(v1835, v1834);
   real2 v1914 = plus(v1834, v1835);
   real2 v1950 = minus(v1915, v1914);
   real2 v1954 = plus(v1914, v1915);
   real2 v1913 = minusplus(uminus(v1909), v1910);
   real2 v1911 = minusplus(v1909, v1910);
   real2 v613 = minusplus(v611, v612);
   real2 v615 = minusplus(uminus(v611), v612);
   real2 v629 = ctimesminusplus(reverse(v615), tbl[100 + tbloffset], ctimes(v615, tbl[101 + tbloffset]));
   real2 v1744 = plus(v1704, v1705);
   real2 v1740 = minus(v1705, v1704);
   real2 v1637 = ctimesminusplus(reverse(v1623), tbl[288 + tbloffset], ctimes(v1623, tbl[289 + tbloffset]));
   real2 v1927 = ctimesminusplus(reverse(v1913), tbl[340 + tbloffset], ctimes(v1913, tbl[341 + tbloffset]));
   real2 v2571 = plus(v309, v629);
   real2 v2565 = reverse(minus(v309, v629));
   real2 v1833 = minusplus(uminus(v1829), v1830);
   real2 v1831 = minusplus(v1829, v1830);
   real2 v1921 = ctimesminusplus(reverse(v1911), tbl[338 + tbloffset], ctimes(v1911, tbl[339 + tbloffset]));
   real2 v1804 = minus(v1677, v1637);
   real2 v1808 = plus(v1637, v1677);
   real2 v1847 = ctimesminusplus(reverse(v1833), tbl[324 + tbloffset], ctimes(v1833, tbl[325 + tbloffset]));
   real2 v2014 = minus(v1887, v1847);
   real2 v2018 = plus(v1847, v1887);
   real2 v1841 = ctimesminusplus(reverse(v1831), tbl[322 + tbloffset], ctimes(v1831, tbl[323 + tbloffset]));
   real2 v1988 = minus(v1881, v1841);
   real2 v1992 = plus(v1841, v1881);
   real2 v1703 = minusplus(uminus(v1699), v1700);
   real2 v1701 = minusplus(v1699, v1700);
   real2 v1717 = ctimesminusplus(reverse(v1703), tbl[304 + tbloffset], ctimes(v1703, tbl[305 + tbloffset]));
   real2 v1711 = ctimesminusplus(reverse(v1701), tbl[302 + tbloffset], ctimes(v1701, tbl[303 + tbloffset]));
   real2 v2730 = plus(v2570, v2571);
   real2 v2726 = minus(v2571, v2570);
   real2 v1412 = minus(v1303, v1263);
   real2 v1416 = plus(v1263, v1303);
   real2 v63 = load(in, 61 << inShift);
   real2 v127 = load(in, 125 << inShift);
   real2 v717 = plus(v63, v127);
   real2 v711 = reverse(minus(v63, v127));
   real2 v95 = load(in, 93 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v712 = minus(v95, v31);
   real2 v716 = plus(v31, v95);
   real2 v1037 = plus(v716, v717);
   real2 v1031 = reverse(minus(v716, v717));
   real2 v79 = load(in, 77 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v396 = plus(v15, v79);
   real2 v392 = minus(v79, v15);
   real2 v111 = load(in, 109 << inShift);
   real2 v47 = load(in, 45 << inShift);
   real2 v397 = plus(v47, v111);
   real2 v391 = reverse(minus(v47, v111));
   real2 v1032 = minus(v397, v396);
   real2 v1036 = plus(v396, v397);
   real2 v1033 = minusplus(v1031, v1032);
   real2 v1035 = minusplus(uminus(v1031), v1032);
   real2 v1049 = ctimesminusplus(reverse(v1035), tbl[184 + tbloffset], ctimes(v1035, tbl[185 + tbloffset]));
   real2 v1043 = ctimesminusplus(reverse(v1033), tbl[182 + tbloffset], ctimes(v1033, tbl[183 + tbloffset]));
   real2 v1197 = plus(v1036, v1037);
   real2 v1191 = reverse(minus(v1036, v1037));
   real2 v23 = load(in, 21 << inShift);
   real2 v87 = load(in, 85 << inShift);
   real2 v556 = plus(v23, v87);
   real2 v552 = minus(v87, v23);
   real2 v119 = load(in, 117 << inShift);
   real2 v55 = load(in, 53 << inShift);
   real2 v557 = plus(v55, v119);
   real2 v551 = reverse(minus(v55, v119));
   real2 v877 = plus(v556, v557);
   real2 v871 = reverse(minus(v556, v557));
   real2 v7 = load(in, 5 << inShift);
   real2 v71 = load(in, 69 << inShift);
   real2 v232 = minus(v71, v7);
   real2 v236 = plus(v7, v71);
   real2 v103 = load(in, 101 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v237 = plus(v39, v103);
   real2 v231 = reverse(minus(v39, v103));
   real2 v876 = plus(v236, v237);
   real2 v872 = minus(v237, v236);
   real2 v1192 = minus(v877, v876);
   real2 v1196 = plus(v876, v877);
   real2 v1271 = reverse(minus(v1196, v1197));
   real2 v1277 = plus(v1196, v1197);
   real2 v875 = minusplus(uminus(v871), v872);
   real2 v873 = minusplus(v871, v872);
   real2 v883 = ctimesminusplus(reverse(v873), tbl[150 + tbloffset], ctimes(v873, tbl[151 + tbloffset]));
   real2 v1639 = reverse(minus(v883, v1043));
   real2 v1645 = plus(v883, v1043);
   real2 v1195 = minusplus(uminus(v1191), v1192);
   real2 v1193 = minusplus(v1191, v1192);
   real2 v1209 = ctimesminusplus(reverse(v1195), tbl[216 + tbloffset], ctimes(v1195, tbl[217 + tbloffset]));
   real2 v1203 = ctimesminusplus(reverse(v1193), tbl[214 + tbloffset], ctimes(v1193, tbl[215 + tbloffset]));
   real2 v83 = load(in, 81 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v476 = plus(v19, v83);
   real2 v472 = minus(v83, v19);
   real2 v51 = load(in, 49 << inShift);
   real2 v115 = load(in, 113 << inShift);
   real2 v477 = plus(v51, v115);
   real2 v471 = reverse(minus(v51, v115));
   real2 v797 = plus(v476, v477);
   real2 v791 = reverse(minus(v476, v477));
   real2 v3 = load(in, 1 << inShift);
   real2 v67 = load(in, 65 << inShift);
   real2 v156 = plus(v3, v67);
   real2 v152 = minus(v67, v3);
   real2 v35 = load(in, 33 << inShift);
   real2 v99 = load(in, 97 << inShift);
   real2 v157 = plus(v35, v99);
   real2 v151 = reverse(minus(v35, v99));
   real2 v792 = minus(v157, v156);
   real2 v796 = plus(v156, v157);
   real2 v793 = minusplus(v791, v792);
   real2 v795 = minusplus(uminus(v791), v792);
   real2 v803 = ctimesminusplus(reverse(v793), tbl[134 + tbloffset], ctimes(v793, tbl[135 + tbloffset]));
   real2 v1112 = minus(v797, v796);
   real2 v1116 = plus(v796, v797);
   real2 v107 = load(in, 105 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v317 = plus(v43, v107);
   real2 v311 = reverse(minus(v43, v107));
   real2 v75 = load(in, 73 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v316 = plus(v11, v75);
   real2 v312 = minus(v75, v11);
   real2 v956 = plus(v316, v317);
   real2 v952 = minus(v317, v316);
   real2 v59 = load(in, 57 << inShift);
   real2 v123 = load(in, 121 << inShift);
   real2 v631 = reverse(minus(v59, v123));
   real2 v637 = plus(v59, v123);
   real2 v27 = load(in, 25 << inShift);
   real2 v91 = load(in, 89 << inShift);
   real2 v636 = plus(v27, v91);
   real2 v632 = minus(v91, v27);
   real2 v957 = plus(v636, v637);
   real2 v951 = reverse(minus(v636, v637));
   real2 v1111 = reverse(minus(v956, v957));
   real2 v1117 = plus(v956, v957);
   real2 v1276 = plus(v1116, v1117);
   real2 v1272 = minus(v1117, v1116);
   real2 v1275 = minusplus(uminus(v1271), v1272);
   real2 v1273 = minusplus(v1271, v1272);
   real2 v1283 = ctimesminusplus(reverse(v1273), tbl[230 + tbloffset], ctimes(v1273, tbl[231 + tbloffset]));
   real2 v1352 = minus(v1277, v1276);
   real2 v1356 = plus(v1276, v1277);
   real2 v1289 = ctimesminusplus(reverse(v1275), tbl[232 + tbloffset], ctimes(v1275, tbl[233 + tbloffset]));
   real2 v1115 = minusplus(uminus(v1111), v1112);
   real2 v1113 = minusplus(v1111, v1112);
   real2 v1123 = ctimesminusplus(reverse(v1113), tbl[198 + tbloffset], ctimes(v1113, tbl[199 + tbloffset]));
   real2 v1129 = ctimesminusplus(reverse(v1115), tbl[200 + tbloffset], ctimes(v1115, tbl[201 + tbloffset]));
   real2 v1488 = plus(v1123, v1203);
   real2 v1484 = minus(v1203, v1123);
   real2 v1566 = plus(v1129, v1209);
   real2 v1562 = minus(v1209, v1129);
   real2 v85 = load(in, 83 << inShift);
   real2 v21 = load(in, 19 << inShift);
   real2 v512 = minus(v85, v21);
   real2 v516 = plus(v21, v85);
   real2 v117 = load(in, 115 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v517 = plus(v53, v117);
   real2 v511 = reverse(minus(v53, v117));
   real2 v831 = reverse(minus(v516, v517));
   real2 v837 = plus(v516, v517);
   real2 v69 = load(in, 67 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v192 = minus(v69, v5);
   real2 v196 = plus(v5, v69);
   real2 v37 = load(in, 35 << inShift);
   real2 v101 = load(in, 99 << inShift);
   real2 v197 = plus(v37, v101);
   real2 v191 = reverse(minus(v37, v101));
   real2 v832 = minus(v197, v196);
   real2 v836 = plus(v196, v197);
   real2 v1152 = minus(v837, v836);
   real2 v1156 = plus(v836, v837);
   real2 v61 = load(in, 59 << inShift);
   real2 v125 = load(in, 123 << inShift);
   real2 v677 = plus(v61, v125);
   real2 v671 = reverse(minus(v61, v125));
   real2 v29 = load(in, 27 << inShift);
   real2 v93 = load(in, 91 << inShift);
   real2 v672 = minus(v93, v29);
   real2 v676 = plus(v29, v93);
   real2 v997 = plus(v676, v677);
   real2 v991 = reverse(minus(v676, v677));
   real2 v109 = load(in, 107 << inShift);
   real2 v45 = load(in, 43 << inShift);
   real2 v357 = plus(v45, v109);
   real2 v351 = reverse(minus(v45, v109));
   real2 v77 = load(in, 75 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v352 = minus(v77, v13);
   real2 v356 = plus(v13, v77);
   real2 v992 = minus(v357, v356);
   real2 v996 = plus(v356, v357);
   real2 v1157 = plus(v996, v997);
   real2 v1151 = reverse(minus(v996, v997));
   real2 v1155 = minusplus(uminus(v1151), v1152);
   real2 v1153 = minusplus(v1151, v1152);
   real2 v1163 = ctimesminusplus(reverse(v1153), tbl[206 + tbloffset], ctimes(v1153, tbl[207 + tbloffset]));
   real2 v1316 = plus(v1156, v1157);
   real2 v1312 = minus(v1157, v1156);
   real2 v41 = load(in, 39 << inShift);
   real2 v105 = load(in, 103 << inShift);
   real2 v277 = plus(v41, v105);
   real2 v271 = reverse(minus(v41, v105));
   real2 v9 = load(in, 7 << inShift);
   real2 v73 = load(in, 71 << inShift);
   real2 v276 = plus(v9, v73);
   real2 v272 = minus(v73, v9);
   real2 v916 = plus(v276, v277);
   real2 v912 = minus(v277, v276);
   real2 v89 = load(in, 87 << inShift);
   real2 v25 = load(in, 23 << inShift);
   real2 v592 = minus(v89, v25);
   real2 v596 = plus(v25, v89);
   real2 v57 = load(in, 55 << inShift);
   real2 v121 = load(in, 119 << inShift);
   real2 v591 = reverse(minus(v57, v121));
   real2 v597 = plus(v57, v121);
   real2 v911 = reverse(minus(v596, v597));
   real2 v917 = plus(v596, v597);
   real2 v1236 = plus(v916, v917);
   real2 v1232 = minus(v917, v916);
   real2 v81 = load(in, 79 << inShift);
   real2 v17 = load(in, 15 << inShift);
   real2 v432 = minus(v81, v17);
   real2 v436 = plus(v17, v81);
   real2 v113 = load(in, 111 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v437 = plus(v49, v113);
   real2 v431 = reverse(minus(v49, v113));
   real2 v1072 = minus(v437, v436);
   real2 v1076 = plus(v436, v437);
   real2 v65 = load(in, 63 << inShift);
   real2 v129 = load(in, 127 << inShift);
   real2 v757 = plus(v65, v129);
   real2 v751 = reverse(minus(v65, v129));
   real2 v97 = load(in, 95 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v752 = minus(v97, v33);
   real2 v756 = plus(v33, v97);
   real2 v1077 = plus(v756, v757);
   real2 v1071 = reverse(minus(v756, v757));
   real2 v1231 = reverse(minus(v1076, v1077));
   real2 v1237 = plus(v1076, v1077);
   real2 v1317 = plus(v1236, v1237);
   real2 v1311 = reverse(minus(v1236, v1237));
   real2 v1351 = reverse(minus(v1316, v1317));
   real2 v1357 = plus(v1316, v1317);
   real2 v1371 = reverse(minus(v1356, v1357));
   real2 v1377 = plus(v1356, v1357);
   store(out, 0 << outShift, plus(v1376, v1377));
   real2 v1390 = minus(v1376, v1377);
   store(out, 64 << outShift, ctimesminusplus(v1390, tbl[0 + tbloffset], ctimes(reverse(v1390), tbl[1 + tbloffset])));
   real2 v1353 = minusplus(v1351, v1352);
   real2 v1355 = minusplus(uminus(v1351), v1352);
   real2 v1369 = ctimesminusplus(reverse(v1355), tbl[248 + tbloffset], ctimes(v1355, tbl[249 + tbloffset]));
   store(out, 48 << outShift, plus(v1349, v1369));
   real2 v1404 = minus(v1349, v1369);
   store(out, 112 << outShift, ctimesminusplus(v1404, tbl[0 + tbloffset], ctimes(reverse(v1404), tbl[1 + tbloffset])));
   real2 v1363 = ctimesminusplus(reverse(v1353), tbl[246 + tbloffset], ctimes(v1353, tbl[247 + tbloffset]));
   store(out, 16 << outShift, plus(v1343, v1363));
   real2 v1398 = minus(v1343, v1363);
   store(out, 80 << outShift, ctimesminusplus(v1398, tbl[0 + tbloffset], ctimes(reverse(v1398), tbl[1 + tbloffset])));
   real2 v1373 = minusplus(v1371, v1372);
   real2 v1375 = minusplus(uminus(v1371), v1372);
   store(out, 96 << outShift, ctimesminusplus(reverse(v1375), tbl[252 + tbloffset], ctimes(v1375, tbl[253 + tbloffset])));
   store(out, 32 << outShift, ctimesminusplus(reverse(v1373), tbl[250 + tbloffset], ctimes(v1373, tbl[251 + tbloffset])));
   real2 v1313 = minusplus(v1311, v1312);
   real2 v1315 = minusplus(uminus(v1311), v1312);
   real2 v1323 = ctimesminusplus(reverse(v1313), tbl[238 + tbloffset], ctimes(v1313, tbl[239 + tbloffset]));
   real2 v1417 = plus(v1283, v1323);
   real2 v1411 = reverse(minus(v1283, v1323));
   store(out, 8 << outShift, plus(v1416, v1417));
   real2 v1430 = minus(v1416, v1417);
   store(out, 72 << outShift, ctimesminusplus(v1430, tbl[0 + tbloffset], ctimes(reverse(v1430), tbl[1 + tbloffset])));
   real2 v1413 = minusplus(v1411, v1412);
   real2 v1415 = minusplus(uminus(v1411), v1412);
   store(out, 104 << outShift, ctimesminusplus(reverse(v1415), tbl[256 + tbloffset], ctimes(v1415, tbl[257 + tbloffset])));
   store(out, 40 << outShift, ctimesminusplus(reverse(v1413), tbl[254 + tbloffset], ctimes(v1413, tbl[255 + tbloffset])));
   real2 v1329 = ctimesminusplus(reverse(v1315), tbl[240 + tbloffset], ctimes(v1315, tbl[241 + tbloffset]));
   real2 v1443 = plus(v1289, v1329);
   real2 v1437 = reverse(minus(v1289, v1329));
   store(out, 24 << outShift, plus(v1442, v1443));
   real2 v1456 = minus(v1442, v1443);
   store(out, 88 << outShift, ctimesminusplus(v1456, tbl[0 + tbloffset], ctimes(reverse(v1456), tbl[1 + tbloffset])));
   real2 v1441 = minusplus(uminus(v1437), v1438);
   real2 v1439 = minusplus(v1437, v1438);
   store(out, 120 << outShift, ctimesminusplus(reverse(v1441), tbl[260 + tbloffset], ctimes(v1441, tbl[261 + tbloffset])));
   store(out, 56 << outShift, ctimesminusplus(reverse(v1439), tbl[258 + tbloffset], ctimes(v1439, tbl[259 + tbloffset])));
   real2 v1235 = minusplus(uminus(v1231), v1232);
   real2 v1233 = minusplus(v1231, v1232);
   real2 v1243 = ctimesminusplus(reverse(v1233), tbl[222 + tbloffset], ctimes(v1233, tbl[223 + tbloffset]));
   real2 v1489 = plus(v1163, v1243);
   real2 v1483 = reverse(minus(v1163, v1243));
   real2 v1509 = plus(v1488, v1489);
   real2 v1503 = reverse(minus(v1488, v1489));
   store(out, 4 << outShift, plus(v1508, v1509));
   real2 v1522 = minus(v1508, v1509);
   store(out, 68 << outShift, ctimesminusplus(v1522, tbl[0 + tbloffset], ctimes(reverse(v1522), tbl[1 + tbloffset])));
   real2 v1507 = minusplus(uminus(v1503), v1504);
   real2 v1505 = minusplus(v1503, v1504);
   store(out, 36 << outShift, ctimesminusplus(reverse(v1505), tbl[270 + tbloffset], ctimes(v1505, tbl[271 + tbloffset])));
   store(out, 100 << outShift, ctimesminusplus(reverse(v1507), tbl[272 + tbloffset], ctimes(v1507, tbl[273 + tbloffset])));
   real2 v1485 = minusplus(v1483, v1484);
   real2 v1487 = minusplus(uminus(v1483), v1484);
   real2 v1501 = ctimesminusplus(reverse(v1487), tbl[268 + tbloffset], ctimes(v1487, tbl[269 + tbloffset]));
   store(out, 52 << outShift, plus(v1481, v1501));
   real2 v1534 = minus(v1481, v1501);
   store(out, 116 << outShift, ctimesminusplus(v1534, tbl[0 + tbloffset], ctimes(reverse(v1534), tbl[1 + tbloffset])));
   real2 v1495 = ctimesminusplus(reverse(v1485), tbl[266 + tbloffset], ctimes(v1485, tbl[267 + tbloffset]));
   store(out, 20 << outShift, plus(v1475, v1495));
   real2 v1528 = minus(v1475, v1495);
   store(out, 84 << outShift, ctimesminusplus(v1528, tbl[0 + tbloffset], ctimes(reverse(v1528), tbl[1 + tbloffset])));
   real2 v1249 = ctimesminusplus(reverse(v1235), tbl[224 + tbloffset], ctimes(v1235, tbl[225 + tbloffset]));
   real2 v1169 = ctimesminusplus(reverse(v1155), tbl[208 + tbloffset], ctimes(v1155, tbl[209 + tbloffset]));
   real2 v1567 = plus(v1169, v1249);
   real2 v1561 = reverse(minus(v1169, v1249));
   real2 v1581 = reverse(minus(v1566, v1567));
   real2 v1587 = plus(v1566, v1567);
   store(out, 12 << outShift, plus(v1586, v1587));
   real2 v1600 = minus(v1586, v1587);
   store(out, 76 << outShift, ctimesminusplus(v1600, tbl[0 + tbloffset], ctimes(reverse(v1600), tbl[1 + tbloffset])));
   real2 v1583 = minusplus(v1581, v1582);
   store(out, 44 << outShift, ctimesminusplus(reverse(v1583), tbl[282 + tbloffset], ctimes(v1583, tbl[283 + tbloffset])));
   real2 v1585 = minusplus(uminus(v1581), v1582);
   store(out, 108 << outShift, ctimesminusplus(reverse(v1585), tbl[284 + tbloffset], ctimes(v1585, tbl[285 + tbloffset])));
   real2 v1565 = minusplus(uminus(v1561), v1562);
   real2 v1563 = minusplus(v1561, v1562);
   real2 v1579 = ctimesminusplus(reverse(v1565), tbl[280 + tbloffset], ctimes(v1565, tbl[281 + tbloffset]));
   store(out, 60 << outShift, plus(v1559, v1579));
   real2 v1612 = minus(v1559, v1579);
   store(out, 124 << outShift, ctimesminusplus(v1612, tbl[0 + tbloffset], ctimes(reverse(v1612), tbl[1 + tbloffset])));
   real2 v1573 = ctimesminusplus(reverse(v1563), tbl[278 + tbloffset], ctimes(v1563, tbl[279 + tbloffset]));
   store(out, 28 << outShift, plus(v1553, v1573));
   real2 v1606 = minus(v1553, v1573);
   store(out, 92 << outShift, ctimesminusplus(v1606, tbl[0 + tbloffset], ctimes(reverse(v1606), tbl[1 + tbloffset])));
   real2 v833 = minusplus(v831, v832);
   real2 v835 = minusplus(uminus(v831), v832);
   real2 v955 = minusplus(uminus(v951), v952);
   real2 v953 = minusplus(v951, v952);
   real2 v963 = ctimesminusplus(reverse(v953), tbl[166 + tbloffset], ctimes(v953, tbl[167 + tbloffset]));
   real2 v995 = minusplus(uminus(v991), v992);
   real2 v993 = minusplus(v991, v992);
   real2 v1003 = ctimesminusplus(reverse(v993), tbl[174 + tbloffset], ctimes(v993, tbl[175 + tbloffset]));
   real2 v843 = ctimesminusplus(reverse(v833), tbl[142 + tbloffset], ctimes(v833, tbl[143 + tbloffset]));
   real2 v1640 = minus(v963, v803);
   real2 v1644 = plus(v803, v963);
   real2 v1680 = minus(v1003, v843);
   real2 v1684 = plus(v843, v1003);
   real2 v1641 = minusplus(v1639, v1640);
   real2 v1643 = minusplus(uminus(v1639), v1640);
   real2 v1657 = ctimesminusplus(reverse(v1643), tbl[292 + tbloffset], ctimes(v1643, tbl[293 + tbloffset]));
   real2 v913 = minusplus(v911, v912);
   real2 v915 = minusplus(uminus(v911), v912);
   real2 v1073 = minusplus(v1071, v1072);
   real2 v1075 = minusplus(uminus(v1071), v1072);
   real2 v923 = ctimesminusplus(reverse(v913), tbl[158 + tbloffset], ctimes(v913, tbl[159 + tbloffset]));
   real2 v1083 = ctimesminusplus(reverse(v1073), tbl[190 + tbloffset], ctimes(v1073, tbl[191 + tbloffset]));
   real2 v1685 = plus(v923, v1083);
   real2 v1679 = reverse(minus(v923, v1083));
   real2 v1681 = minusplus(v1679, v1680);
   real2 v1683 = minusplus(uminus(v1679), v1680);
   real2 v1697 = ctimesminusplus(reverse(v1683), tbl[300 + tbloffset], ctimes(v1683, tbl[301 + tbloffset]));
   real2 v1809 = plus(v1657, v1697);
   real2 v1803 = reverse(minus(v1657, v1697));
   store(out, 26 << outShift, plus(v1808, v1809));
   real2 v1822 = minus(v1808, v1809);
   store(out, 90 << outShift, ctimesminusplus(v1822, tbl[0 + tbloffset], ctimes(reverse(v1822), tbl[1 + tbloffset])));
   real2 v1807 = minusplus(uminus(v1803), v1804);
   real2 v1805 = minusplus(v1803, v1804);
   store(out, 58 << outShift, ctimesminusplus(reverse(v1805), tbl[318 + tbloffset], ctimes(v1805, tbl[319 + tbloffset])));
   store(out, 122 << outShift, ctimesminusplus(reverse(v1807), tbl[320 + tbloffset], ctimes(v1807, tbl[321 + tbloffset])));
   real2 v1651 = ctimesminusplus(reverse(v1641), tbl[290 + tbloffset], ctimes(v1641, tbl[291 + tbloffset]));
   real2 v1691 = ctimesminusplus(reverse(v1681), tbl[298 + tbloffset], ctimes(v1681, tbl[299 + tbloffset]));
   real2 v1783 = plus(v1651, v1691);
   real2 v1777 = reverse(minus(v1651, v1691));
   real2 v1779 = minusplus(v1777, v1778);
   real2 v1781 = minusplus(uminus(v1777), v1778);
   store(out, 106 << outShift, ctimesminusplus(reverse(v1781), tbl[316 + tbloffset], ctimes(v1781, tbl[317 + tbloffset])));
   store(out, 42 << outShift, ctimesminusplus(reverse(v1779), tbl[314 + tbloffset], ctimes(v1779, tbl[315 + tbloffset])));
   store(out, 10 << outShift, plus(v1782, v1783));
   real2 v1796 = minus(v1782, v1783);
   store(out, 74 << outShift, ctimesminusplus(v1796, tbl[0 + tbloffset], ctimes(reverse(v1796), tbl[1 + tbloffset])));
   real2 v1720 = minus(v1645, v1644);
   real2 v1724 = plus(v1644, v1645);
   real2 v1719 = reverse(minus(v1684, v1685));
   real2 v1725 = plus(v1684, v1685);
   real2 v1745 = plus(v1724, v1725);
   real2 v1739 = reverse(minus(v1724, v1725));
   store(out, 2 << outShift, plus(v1744, v1745));
   real2 v1758 = minus(v1744, v1745);
   store(out, 66 << outShift, ctimesminusplus(v1758, tbl[0 + tbloffset], ctimes(reverse(v1758), tbl[1 + tbloffset])));
   real2 v1741 = minusplus(v1739, v1740);
   real2 v1743 = minusplus(uminus(v1739), v1740);
   store(out, 98 << outShift, ctimesminusplus(reverse(v1743), tbl[312 + tbloffset], ctimes(v1743, tbl[313 + tbloffset])));
   store(out, 34 << outShift, ctimesminusplus(reverse(v1741), tbl[310 + tbloffset], ctimes(v1741, tbl[311 + tbloffset])));
   real2 v1723 = minusplus(uminus(v1719), v1720);
   real2 v1721 = minusplus(v1719, v1720);
   real2 v1737 = ctimesminusplus(reverse(v1723), tbl[308 + tbloffset], ctimes(v1723, tbl[309 + tbloffset]));
   store(out, 50 << outShift, plus(v1717, v1737));
   real2 v1770 = minus(v1717, v1737);
   store(out, 114 << outShift, ctimesminusplus(v1770, tbl[0 + tbloffset], ctimes(reverse(v1770), tbl[1 + tbloffset])));
   real2 v1731 = ctimesminusplus(reverse(v1721), tbl[306 + tbloffset], ctimes(v1721, tbl[307 + tbloffset]));
   store(out, 18 << outShift, plus(v1711, v1731));
   real2 v1764 = minus(v1711, v1731);
   store(out, 82 << outShift, ctimesminusplus(v1764, tbl[0 + tbloffset], ctimes(reverse(v1764), tbl[1 + tbloffset])));
   real2 v809 = ctimesminusplus(reverse(v795), tbl[136 + tbloffset], ctimes(v795, tbl[137 + tbloffset]));
   real2 v969 = ctimesminusplus(reverse(v955), tbl[168 + tbloffset], ctimes(v955, tbl[169 + tbloffset]));
   real2 v1850 = minus(v969, v809);
   real2 v1854 = plus(v809, v969);
   real2 v849 = ctimesminusplus(reverse(v835), tbl[144 + tbloffset], ctimes(v835, tbl[145 + tbloffset]));
   real2 v929 = ctimesminusplus(reverse(v915), tbl[160 + tbloffset], ctimes(v915, tbl[161 + tbloffset]));
   real2 v889 = ctimesminusplus(reverse(v875), tbl[152 + tbloffset], ctimes(v875, tbl[153 + tbloffset]));
   real2 v1089 = ctimesminusplus(reverse(v1075), tbl[192 + tbloffset], ctimes(v1075, tbl[193 + tbloffset]));
   real2 v1009 = ctimesminusplus(reverse(v995), tbl[176 + tbloffset], ctimes(v995, tbl[177 + tbloffset]));
   real2 v1890 = minus(v1009, v849);
   real2 v1894 = plus(v849, v1009);
   real2 v1849 = reverse(minus(v889, v1049));
   real2 v1855 = plus(v889, v1049);
   real2 v1930 = minus(v1855, v1854);
   real2 v1934 = plus(v1854, v1855);
   real2 v1895 = plus(v929, v1089);
   real2 v1889 = reverse(minus(v929, v1089));
   real2 v1929 = reverse(minus(v1894, v1895));
   real2 v1935 = plus(v1894, v1895);
   real2 v1955 = plus(v1934, v1935);
   real2 v1949 = reverse(minus(v1934, v1935));
   store(out, 6 << outShift, plus(v1954, v1955));
   real2 v1968 = minus(v1954, v1955);
   store(out, 70 << outShift, ctimesminusplus(v1968, tbl[0 + tbloffset], ctimes(reverse(v1968), tbl[1 + tbloffset])));
   real2 v1951 = minusplus(v1949, v1950);
   store(out, 38 << outShift, ctimesminusplus(reverse(v1951), tbl[346 + tbloffset], ctimes(v1951, tbl[347 + tbloffset])));
   real2 v1953 = minusplus(uminus(v1949), v1950);
   store(out, 102 << outShift, ctimesminusplus(reverse(v1953), tbl[348 + tbloffset], ctimes(v1953, tbl[349 + tbloffset])));
   real2 v1931 = minusplus(v1929, v1930);
   real2 v1933 = minusplus(uminus(v1929), v1930);
   real2 v1947 = ctimesminusplus(reverse(v1933), tbl[344 + tbloffset], ctimes(v1933, tbl[345 + tbloffset]));
   store(out, 54 << outShift, plus(v1927, v1947));
   real2 v1980 = minus(v1927, v1947);
   store(out, 118 << outShift, ctimesminusplus(v1980, tbl[0 + tbloffset], ctimes(reverse(v1980), tbl[1 + tbloffset])));
   real2 v1941 = ctimesminusplus(reverse(v1931), tbl[342 + tbloffset], ctimes(v1931, tbl[343 + tbloffset]));
   store(out, 22 << outShift, plus(v1921, v1941));
   real2 v1974 = minus(v1921, v1941);
   store(out, 86 << outShift, ctimesminusplus(v1974, tbl[0 + tbloffset], ctimes(reverse(v1974), tbl[1 + tbloffset])));
   real2 v1851 = minusplus(v1849, v1850);
   real2 v1853 = minusplus(uminus(v1849), v1850);
   real2 v1867 = ctimesminusplus(reverse(v1853), tbl[328 + tbloffset], ctimes(v1853, tbl[329 + tbloffset]));
   real2 v1891 = minusplus(v1889, v1890);
   real2 v1893 = minusplus(uminus(v1889), v1890);
   real2 v1907 = ctimesminusplus(reverse(v1893), tbl[336 + tbloffset], ctimes(v1893, tbl[337 + tbloffset]));
   real2 v2019 = plus(v1867, v1907);
   real2 v2013 = reverse(minus(v1867, v1907));
   store(out, 30 << outShift, plus(v2018, v2019));
   real2 v2032 = minus(v2018, v2019);
   store(out, 94 << outShift, ctimesminusplus(v2032, tbl[0 + tbloffset], ctimes(reverse(v2032), tbl[1 + tbloffset])));
   real2 v2017 = minusplus(uminus(v2013), v2014);
   store(out, 126 << outShift, ctimesminusplus(reverse(v2017), tbl[356 + tbloffset], ctimes(v2017, tbl[357 + tbloffset])));
   real2 v2015 = minusplus(v2013, v2014);
   store(out, 62 << outShift, ctimesminusplus(reverse(v2015), tbl[354 + tbloffset], ctimes(v2015, tbl[355 + tbloffset])));
   real2 v1861 = ctimesminusplus(reverse(v1851), tbl[326 + tbloffset], ctimes(v1851, tbl[327 + tbloffset]));
   real2 v1901 = ctimesminusplus(reverse(v1891), tbl[334 + tbloffset], ctimes(v1891, tbl[335 + tbloffset]));
   real2 v1993 = plus(v1861, v1901);
   real2 v1987 = reverse(minus(v1861, v1901));
   store(out, 14 << outShift, plus(v1992, v1993));
   real2 v2006 = minus(v1992, v1993);
   store(out, 78 << outShift, ctimesminusplus(v2006, tbl[0 + tbloffset], ctimes(reverse(v2006), tbl[1 + tbloffset])));
   real2 v1991 = minusplus(uminus(v1987), v1988);
   store(out, 110 << outShift, ctimesminusplus(reverse(v1991), tbl[352 + tbloffset], ctimes(v1991, tbl[353 + tbloffset])));
   real2 v1989 = minusplus(v1987, v1988);
   store(out, 46 << outShift, ctimesminusplus(reverse(v1989), tbl[350 + tbloffset], ctimes(v1989, tbl[351 + tbloffset])));
   real2 v593 = minusplus(v591, v592);
   real2 v595 = minusplus(uminus(v591), v592);
   real2 v473 = minusplus(v471, v472);
   real2 v475 = minusplus(uminus(v471), v472);
   real2 v555 = minusplus(uminus(v551), v552);
   real2 v553 = minusplus(v551, v552);
   real2 v609 = ctimesminusplus(reverse(v595), tbl[96 + tbloffset], ctimes(v595, tbl[97 + tbloffset]));
   real2 v195 = minusplus(uminus(v191), v192);
   real2 v193 = minusplus(v191, v192);
   real2 v275 = minusplus(uminus(v271), v272);
   real2 v273 = minusplus(v271, v272);
   real2 v673 = minusplus(v671, v672);
   real2 v675 = minusplus(uminus(v671), v672);
   real2 v689 = ctimesminusplus(reverse(v675), tbl[112 + tbloffset], ctimes(v675, tbl[113 + tbloffset]));
   real2 v209 = ctimesminusplus(reverse(v195), tbl[16 + tbloffset], ctimes(v195, tbl[17 + tbloffset]));
   real2 v289 = ctimesminusplus(reverse(v275), tbl[32 + tbloffset], ctimes(v275, tbl[33 + tbloffset]));
   real2 v755 = minusplus(uminus(v751), v752);
   real2 v753 = minusplus(v751, v752);
   real2 v435 = minusplus(uminus(v431), v432);
   real2 v433 = minusplus(v431, v432);
   real2 v513 = minusplus(v511, v512);
   real2 v515 = minusplus(uminus(v511), v512);
   real2 v529 = ctimesminusplus(reverse(v515), tbl[80 + tbloffset], ctimes(v515, tbl[81 + tbloffset]));
   real2 v353 = minusplus(v351, v352);
   real2 v355 = minusplus(uminus(v351), v352);
   real2 v369 = ctimesminusplus(reverse(v355), tbl[48 + tbloffset], ctimes(v355, tbl[49 + tbloffset]));
   real2 v2631 = plus(v369, v689);
   real2 v2625 = reverse(minus(v369, v689));
   real2 v449 = ctimesminusplus(reverse(v435), tbl[64 + tbloffset], ctimes(v435, tbl[65 + tbloffset]));
   real2 v2710 = plus(v289, v609);
   real2 v2706 = minus(v609, v289);
   real2 v2630 = plus(v209, v529);
   real2 v2626 = minus(v529, v209);
   real2 v2790 = plus(v2630, v2631);
   real2 v2786 = minus(v2631, v2630);
   real2 v713 = minusplus(v711, v712);
   real2 v715 = minusplus(uminus(v711), v712);
   real2 v769 = ctimesminusplus(reverse(v755), tbl[128 + tbloffset], ctimes(v755, tbl[129 + tbloffset]));
   real2 v2705 = reverse(minus(v449, v769));
   real2 v2711 = plus(v449, v769);
   real2 v313 = minusplus(v311, v312);
   real2 v315 = minusplus(uminus(v311), v312);
   real2 v393 = minusplus(v391, v392);
   real2 v395 = minusplus(uminus(v391), v392);
   real2 v409 = ctimesminusplus(reverse(v395), tbl[56 + tbloffset], ctimes(v395, tbl[57 + tbloffset]));
   real2 v729 = ctimesminusplus(reverse(v715), tbl[120 + tbloffset], ctimes(v715, tbl[121 + tbloffset]));
   real2 v329 = ctimesminusplus(reverse(v315), tbl[40 + tbloffset], ctimes(v315, tbl[41 + tbloffset]));
   real2 v489 = ctimesminusplus(reverse(v475), tbl[72 + tbloffset], ctimes(v475, tbl[73 + tbloffset]));
   real2 v153 = minusplus(v151, v152);
   real2 v155 = minusplus(uminus(v151), v152);
   real2 v169 = ctimesminusplus(reverse(v155), tbl[8 + tbloffset], ctimes(v155, tbl[9 + tbloffset]));
   real2 v2586 = minus(v489, v169);
   real2 v2590 = plus(v169, v489);
   real2 v233 = minusplus(v231, v232);
   real2 v235 = minusplus(uminus(v231), v232);
   real2 v633 = minusplus(v631, v632);
   real2 v635 = minusplus(uminus(v631), v632);
   real2 v649 = ctimesminusplus(reverse(v635), tbl[104 + tbloffset], ctimes(v635, tbl[105 + tbloffset]));
   real2 v249 = ctimesminusplus(reverse(v235), tbl[24 + tbloffset], ctimes(v235, tbl[25 + tbloffset]));
   real2 v569 = ctimesminusplus(reverse(v555), tbl[88 + tbloffset], ctimes(v555, tbl[89 + tbloffset]));
   real2 v2670 = plus(v249, v569);
   real2 v2666 = minus(v569, v249);
   real2 v2785 = reverse(minus(v2710, v2711));
   real2 v2791 = plus(v2710, v2711);
   real2 v2825 = reverse(minus(v2790, v2791));
   real2 v2831 = plus(v2790, v2791);
   real2 v2671 = plus(v409, v729);
   real2 v2665 = reverse(minus(v409, v729));
   real2 v2745 = reverse(minus(v2670, v2671));
   real2 v2751 = plus(v2670, v2671);
   real2 v2806 = minus(v2731, v2730);
   real2 v2810 = plus(v2730, v2731);
   real2 v2846 = minus(v2811, v2810);
   real2 v2850 = plus(v2810, v2811);
   real2 v2591 = plus(v329, v649);
   real2 v2585 = reverse(minus(v329, v649));
   real2 v2750 = plus(v2590, v2591);
   real2 v2746 = minus(v2591, v2590);
   real2 v2830 = plus(v2750, v2751);
   real2 v2826 = minus(v2751, v2750);
   real2 v2845 = reverse(minus(v2830, v2831));
   real2 v2851 = plus(v2830, v2831);
   store(out, 3 << outShift, plus(v2850, v2851));
   real2 v2864 = minus(v2850, v2851);
   store(out, 67 << outShift, ctimesminusplus(v2864, tbl[0 + tbloffset], ctimes(reverse(v2864), tbl[1 + tbloffset])));
   real2 v2849 = minusplus(uminus(v2845), v2846);
   real2 v2847 = minusplus(v2845, v2846);
   store(out, 35 << outShift, ctimesminusplus(reverse(v2847), tbl[506 + tbloffset], ctimes(v2847, tbl[507 + tbloffset])));
   store(out, 99 << outShift, ctimesminusplus(reverse(v2849), tbl[508 + tbloffset], ctimes(v2849, tbl[509 + tbloffset])));
   real2 v2827 = minusplus(v2825, v2826);
   real2 v2829 = minusplus(uminus(v2825), v2826);
   real2 v2837 = ctimesminusplus(reverse(v2827), tbl[502 + tbloffset], ctimes(v2827, tbl[503 + tbloffset]));
   real2 v2809 = minusplus(uminus(v2805), v2806);
   real2 v2807 = minusplus(v2805, v2806);
   real2 v2817 = ctimesminusplus(reverse(v2807), tbl[498 + tbloffset], ctimes(v2807, tbl[499 + tbloffset]));
   store(out, 19 << outShift, plus(v2817, v2837));
   real2 v2870 = minus(v2817, v2837);
   store(out, 83 << outShift, ctimesminusplus(v2870, tbl[0 + tbloffset], ctimes(reverse(v2870), tbl[1 + tbloffset])));
   real2 v2823 = ctimesminusplus(reverse(v2809), tbl[500 + tbloffset], ctimes(v2809, tbl[501 + tbloffset]));
   real2 v2843 = ctimesminusplus(reverse(v2829), tbl[504 + tbloffset], ctimes(v2829, tbl[505 + tbloffset]));
   store(out, 51 << outShift, plus(v2823, v2843));
   real2 v2876 = minus(v2823, v2843);
   store(out, 115 << outShift, ctimesminusplus(v2876, tbl[0 + tbloffset], ctimes(reverse(v2876), tbl[1 + tbloffset])));
   real2 v2787 = minusplus(v2785, v2786);
   real2 v2789 = minusplus(uminus(v2785), v2786);
   real2 v2803 = ctimesminusplus(reverse(v2789), tbl[496 + tbloffset], ctimes(v2789, tbl[497 + tbloffset]));
   real2 v2727 = minusplus(v2725, v2726);
   real2 v2729 = minusplus(uminus(v2725), v2726);
   real2 v2743 = ctimesminusplus(reverse(v2729), tbl[484 + tbloffset], ctimes(v2729, tbl[485 + tbloffset]));
   real2 v2914 = plus(v2743, v2783);
   real2 v2910 = minus(v2783, v2743);
   real2 v2749 = minusplus(uminus(v2745), v2746);
   real2 v2747 = minusplus(v2745, v2746);
   real2 v2763 = ctimesminusplus(reverse(v2749), tbl[488 + tbloffset], ctimes(v2749, tbl[489 + tbloffset]));
   real2 v2909 = reverse(minus(v2763, v2803));
   real2 v2915 = plus(v2763, v2803);
   store(out, 27 << outShift, plus(v2914, v2915));
   real2 v2928 = minus(v2914, v2915);
   store(out, 91 << outShift, ctimesminusplus(v2928, tbl[0 + tbloffset], ctimes(reverse(v2928), tbl[1 + tbloffset])));
   real2 v2913 = minusplus(uminus(v2909), v2910);
   store(out, 123 << outShift, ctimesminusplus(reverse(v2913), tbl[516 + tbloffset], ctimes(v2913, tbl[517 + tbloffset])));
   real2 v2911 = minusplus(v2909, v2910);
   store(out, 59 << outShift, ctimesminusplus(reverse(v2911), tbl[514 + tbloffset], ctimes(v2911, tbl[515 + tbloffset])));
   real2 v2737 = ctimesminusplus(reverse(v2727), tbl[482 + tbloffset], ctimes(v2727, tbl[483 + tbloffset]));
   real2 v2888 = plus(v2737, v2777);
   real2 v2884 = minus(v2777, v2737);
   real2 v2797 = ctimesminusplus(reverse(v2787), tbl[494 + tbloffset], ctimes(v2787, tbl[495 + tbloffset]));
   real2 v2757 = ctimesminusplus(reverse(v2747), tbl[486 + tbloffset], ctimes(v2747, tbl[487 + tbloffset]));
   real2 v2889 = plus(v2757, v2797);
   real2 v2883 = reverse(minus(v2757, v2797));
   store(out, 11 << outShift, plus(v2888, v2889));
   real2 v2902 = minus(v2888, v2889);
   store(out, 75 << outShift, ctimesminusplus(v2902, tbl[0 + tbloffset], ctimes(reverse(v2902), tbl[1 + tbloffset])));
   real2 v2887 = minusplus(uminus(v2883), v2884);
   store(out, 107 << outShift, ctimesminusplus(reverse(v2887), tbl[512 + tbloffset], ctimes(v2887, tbl[513 + tbloffset])));
   real2 v2885 = minusplus(v2883, v2884);
   store(out, 43 << outShift, ctimesminusplus(reverse(v2885), tbl[510 + tbloffset], ctimes(v2885, tbl[511 + tbloffset])));
   real2 v2669 = minusplus(uminus(v2665), v2666);
   real2 v2667 = minusplus(v2665, v2666);
   real2 v2707 = minusplus(v2705, v2706);
   real2 v2709 = minusplus(uminus(v2705), v2706);
   real2 v2717 = ctimesminusplus(reverse(v2707), tbl[478 + tbloffset], ctimes(v2707, tbl[479 + tbloffset]));
   real2 v2627 = minusplus(v2625, v2626);
   real2 v2629 = minusplus(uminus(v2625), v2626);
   real2 v2637 = ctimesminusplus(reverse(v2627), tbl[462 + tbloffset], ctimes(v2627, tbl[463 + tbloffset]));
   real2 v2961 = plus(v2637, v2717);
   real2 v2955 = reverse(minus(v2637, v2717));
   real2 v2649 = minusplus(uminus(v2645), v2646);
   real2 v2647 = minusplus(v2645, v2646);
   real2 v2569 = minusplus(uminus(v2565), v2566);
   real2 v2567 = minusplus(v2565, v2566);
   real2 v2577 = ctimesminusplus(reverse(v2567), tbl[450 + tbloffset], ctimes(v2567, tbl[451 + tbloffset]));
   real2 v2657 = ctimesminusplus(reverse(v2647), tbl[466 + tbloffset], ctimes(v2647, tbl[467 + tbloffset]));
   real2 v2936 = minus(v2657, v2577);
   real2 v2940 = plus(v2577, v2657);
   real2 v2976 = minus(v2941, v2940);
   real2 v2980 = plus(v2940, v2941);
   real2 v2677 = ctimesminusplus(reverse(v2667), tbl[470 + tbloffset], ctimes(v2667, tbl[471 + tbloffset]));
   real2 v2587 = minusplus(v2585, v2586);
   real2 v2589 = minusplus(uminus(v2585), v2586);
   real2 v2597 = ctimesminusplus(reverse(v2587), tbl[454 + tbloffset], ctimes(v2587, tbl[455 + tbloffset]));
   real2 v2956 = minus(v2677, v2597);
   real2 v2960 = plus(v2597, v2677);
   real2 v2975 = reverse(minus(v2960, v2961));
   real2 v2981 = plus(v2960, v2961);
   store(out, 7 << outShift, plus(v2980, v2981));
   real2 v2994 = minus(v2980, v2981);
   store(out, 71 << outShift, ctimesminusplus(v2994, tbl[0 + tbloffset], ctimes(reverse(v2994), tbl[1 + tbloffset])));
   real2 v2979 = minusplus(uminus(v2975), v2976);
   store(out, 103 << outShift, ctimesminusplus(reverse(v2979), tbl[528 + tbloffset], ctimes(v2979, tbl[529 + tbloffset])));
   real2 v2977 = minusplus(v2975, v2976);
   store(out, 39 << outShift, ctimesminusplus(reverse(v2977), tbl[526 + tbloffset], ctimes(v2977, tbl[527 + tbloffset])));
   real2 v2939 = minusplus(uminus(v2935), v2936);
   real2 v2937 = minusplus(v2935, v2936);
   real2 v2953 = ctimesminusplus(reverse(v2939), tbl[520 + tbloffset], ctimes(v2939, tbl[521 + tbloffset]));
   real2 v2957 = minusplus(v2955, v2956);
   real2 v2959 = minusplus(uminus(v2955), v2956);
   real2 v2973 = ctimesminusplus(reverse(v2959), tbl[524 + tbloffset], ctimes(v2959, tbl[525 + tbloffset]));
   store(out, 55 << outShift, plus(v2953, v2973));
   real2 v3006 = minus(v2953, v2973);
   store(out, 119 << outShift, ctimesminusplus(v3006, tbl[0 + tbloffset], ctimes(reverse(v3006), tbl[1 + tbloffset])));
   real2 v2947 = ctimesminusplus(reverse(v2937), tbl[518 + tbloffset], ctimes(v2937, tbl[519 + tbloffset]));
   real2 v2967 = ctimesminusplus(reverse(v2957), tbl[522 + tbloffset], ctimes(v2957, tbl[523 + tbloffset]));
   store(out, 23 << outShift, plus(v2947, v2967));
   real2 v3000 = minus(v2947, v2967);
   store(out, 87 << outShift, ctimesminusplus(v3000, tbl[0 + tbloffset], ctimes(reverse(v3000), tbl[1 + tbloffset])));
   real2 v2663 = ctimesminusplus(reverse(v2649), tbl[468 + tbloffset], ctimes(v2649, tbl[469 + tbloffset]));
   real2 v2583 = ctimesminusplus(reverse(v2569), tbl[452 + tbloffset], ctimes(v2569, tbl[453 + tbloffset]));
   real2 v3014 = minus(v2663, v2583);
   real2 v3018 = plus(v2583, v2663);
   real2 v3015 = minusplus(v3013, v3014);
   real2 v3017 = minusplus(uminus(v3013), v3014);
   real2 v2643 = ctimesminusplus(reverse(v2629), tbl[464 + tbloffset], ctimes(v2629, tbl[465 + tbloffset]));
   real2 v2723 = ctimesminusplus(reverse(v2709), tbl[480 + tbloffset], ctimes(v2709, tbl[481 + tbloffset]));
   real2 v3039 = plus(v2643, v2723);
   real2 v3033 = reverse(minus(v2643, v2723));
   real2 v2683 = ctimesminusplus(reverse(v2669), tbl[472 + tbloffset], ctimes(v2669, tbl[473 + tbloffset]));
   real2 v3031 = ctimesminusplus(reverse(v3017), tbl[532 + tbloffset], ctimes(v3017, tbl[533 + tbloffset]));
   real2 v2603 = ctimesminusplus(reverse(v2589), tbl[456 + tbloffset], ctimes(v2589, tbl[457 + tbloffset]));
   real2 v3034 = minus(v2683, v2603);
   real2 v3038 = plus(v2603, v2683);
   real2 v3037 = minusplus(uminus(v3033), v3034);
   real2 v3035 = minusplus(v3033, v3034);
   real2 v3051 = ctimesminusplus(reverse(v3037), tbl[536 + tbloffset], ctimes(v3037, tbl[537 + tbloffset]));
   store(out, 63 << outShift, plus(v3031, v3051));
   real2 v3084 = minus(v3031, v3051);
   store(out, 127 << outShift, ctimesminusplus(v3084, tbl[0 + tbloffset], ctimes(reverse(v3084), tbl[1 + tbloffset])));
   real2 v3025 = ctimesminusplus(reverse(v3015), tbl[530 + tbloffset], ctimes(v3015, tbl[531 + tbloffset]));
   real2 v3045 = ctimesminusplus(reverse(v3035), tbl[534 + tbloffset], ctimes(v3035, tbl[535 + tbloffset]));
   store(out, 31 << outShift, plus(v3025, v3045));
   real2 v3078 = minus(v3025, v3045);
   store(out, 95 << outShift, ctimesminusplus(v3078, tbl[0 + tbloffset], ctimes(reverse(v3078), tbl[1 + tbloffset])));
   real2 v3058 = plus(v3018, v3019);
   real2 v3054 = minus(v3019, v3018);
   real2 v3053 = reverse(minus(v3038, v3039));
   real2 v3059 = plus(v3038, v3039);
   real2 v3055 = minusplus(v3053, v3054);
   store(out, 47 << outShift, ctimesminusplus(reverse(v3055), tbl[538 + tbloffset], ctimes(v3055, tbl[539 + tbloffset])));
   real2 v3057 = minusplus(uminus(v3053), v3054);
   store(out, 111 << outShift, ctimesminusplus(reverse(v3057), tbl[540 + tbloffset], ctimes(v3057, tbl[541 + tbloffset])));
   store(out, 15 << outShift, plus(v3058, v3059));
   real2 v3072 = minus(v3058, v3059);
   store(out, 79 << outShift, ctimesminusplus(v3072, tbl[0 + tbloffset], ctimes(reverse(v3072), tbl[1 + tbloffset])));
   real2 v683 = ctimesminusplus(reverse(v673), tbl[110 + tbloffset], ctimes(v673, tbl[111 + tbloffset]));
   real2 v363 = ctimesminusplus(reverse(v353), tbl[46 + tbloffset], ctimes(v353, tbl[47 + tbloffset]));
   real2 v2105 = plus(v363, v683);
   real2 v2099 = reverse(minus(v363, v683));
   real2 v283 = ctimesminusplus(reverse(v273), tbl[30 + tbloffset], ctimes(v273, tbl[31 + tbloffset]));
   real2 v723 = ctimesminusplus(reverse(v713), tbl[118 + tbloffset], ctimes(v713, tbl[119 + tbloffset]));
   real2 v403 = ctimesminusplus(reverse(v393), tbl[54 + tbloffset], ctimes(v393, tbl[55 + tbloffset]));
   real2 v603 = ctimesminusplus(reverse(v593), tbl[94 + tbloffset], ctimes(v593, tbl[95 + tbloffset]));
   real2 v2180 = minus(v603, v283);
   real2 v2184 = plus(v283, v603);
   real2 v2145 = plus(v403, v723);
   real2 v2139 = reverse(minus(v403, v723));
   real2 v543 = ctimesminusplus(reverse(v533), tbl[82 + tbloffset], ctimes(v533, tbl[83 + tbloffset]));
   real2 v383 = ctimesminusplus(reverse(v373), tbl[50 + tbloffset], ctimes(v373, tbl[51 + tbloffset]));
   real2 v703 = ctimesminusplus(reverse(v693), tbl[114 + tbloffset], ctimes(v693, tbl[115 + tbloffset]));
   real2 v2125 = plus(v383, v703);
   real2 v2119 = reverse(minus(v383, v703));
   real2 v223 = ctimesminusplus(reverse(v213), tbl[18 + tbloffset], ctimes(v213, tbl[19 + tbloffset]));
   real2 v2120 = minus(v543, v223);
   real2 v2124 = plus(v223, v543);
   real2 v443 = ctimesminusplus(reverse(v433), tbl[62 + tbloffset], ctimes(v433, tbl[63 + tbloffset]));
   real2 v203 = ctimesminusplus(reverse(v193), tbl[14 + tbloffset], ctimes(v193, tbl[15 + tbloffset]));
   real2 v763 = ctimesminusplus(reverse(v753), tbl[126 + tbloffset], ctimes(v753, tbl[127 + tbloffset]));
   real2 v2179 = reverse(minus(v443, v763));
   real2 v2185 = plus(v443, v763);
   real2 v523 = ctimesminusplus(reverse(v513), tbl[78 + tbloffset], ctimes(v513, tbl[79 + tbloffset]));
   real2 v2100 = minus(v523, v203);
   real2 v2104 = plus(v203, v523);
   real2 v2264 = plus(v2104, v2105);
   real2 v2260 = minus(v2105, v2104);
   real2 v643 = ctimesminusplus(reverse(v633), tbl[102 + tbloffset], ctimes(v633, tbl[103 + tbloffset]));
   real2 v2265 = plus(v2184, v2185);
   real2 v2259 = reverse(minus(v2184, v2185));
   real2 v563 = ctimesminusplus(reverse(v553), tbl[86 + tbloffset], ctimes(v553, tbl[87 + tbloffset]));
   real2 v243 = ctimesminusplus(reverse(v233), tbl[22 + tbloffset], ctimes(v233, tbl[23 + tbloffset]));
   real2 v2144 = plus(v243, v563);
   real2 v2140 = minus(v563, v243);
   real2 v143 = ctimesminusplus(reverse(v133), tbl[2 + tbloffset], ctimes(v133, tbl[3 + tbloffset]));
   real2 v183 = ctimesminusplus(reverse(v173), tbl[10 + tbloffset], ctimes(v173, tbl[11 + tbloffset]));
   real2 v2084 = plus(v183, v503);
   real2 v2080 = minus(v503, v183);
   real2 v163 = ctimesminusplus(reverse(v153), tbl[6 + tbloffset], ctimes(v153, tbl[7 + tbloffset]));
   real2 v303 = ctimesminusplus(reverse(v293), tbl[34 + tbloffset], ctimes(v293, tbl[35 + tbloffset]));
   real2 v623 = ctimesminusplus(reverse(v613), tbl[98 + tbloffset], ctimes(v613, tbl[99 + tbloffset]));
   real2 v2039 = reverse(minus(v303, v623));
   real2 v2045 = plus(v303, v623);
   real2 v463 = ctimesminusplus(reverse(v453), tbl[66 + tbloffset], ctimes(v453, tbl[67 + tbloffset]));
   real2 v2044 = plus(v143, v463);
   real2 v2040 = minus(v463, v143);
   real2 v2204 = plus(v2044, v2045);
   real2 v2200 = minus(v2045, v2044);
   real2 v323 = ctimesminusplus(reverse(v313), tbl[38 + tbloffset], ctimes(v313, tbl[39 + tbloffset]));
   real2 v2205 = plus(v2124, v2125);
   real2 v2199 = reverse(minus(v2124, v2125));
   real2 v2280 = minus(v2205, v2204);
   real2 v2284 = plus(v2204, v2205);
   real2 v2225 = plus(v2144, v2145);
   real2 v2219 = reverse(minus(v2144, v2145));
   real2 v2305 = plus(v2264, v2265);
   real2 v2299 = reverse(minus(v2264, v2265));
   real2 v2240 = minus(v2085, v2084);
   real2 v2244 = plus(v2084, v2085);
   real2 v2279 = reverse(minus(v2244, v2245));
   real2 v2285 = plus(v2244, v2245);
   real2 v2281 = minusplus(v2279, v2280);
   real2 v2283 = minusplus(uminus(v2279), v2280);
   real2 v2291 = ctimesminusplus(reverse(v2281), tbl[406 + tbloffset], ctimes(v2281, tbl[407 + tbloffset]));
   real2 v483 = ctimesminusplus(reverse(v473), tbl[70 + tbloffset], ctimes(v473, tbl[71 + tbloffset]));
   real2 v2060 = minus(v483, v163);
   real2 v2064 = plus(v163, v483);
   real2 v2065 = plus(v323, v643);
   real2 v2059 = reverse(minus(v323, v643));
   real2 v2220 = minus(v2065, v2064);
   real2 v2224 = plus(v2064, v2065);
   real2 v2304 = plus(v2224, v2225);
   real2 v2300 = minus(v2225, v2224);
   real2 v2301 = minusplus(v2299, v2300);
   real2 v2303 = minusplus(uminus(v2299), v2300);
   real2 v2311 = ctimesminusplus(reverse(v2301), tbl[410 + tbloffset], ctimes(v2301, tbl[411 + tbloffset]));
   store(out, 17 << outShift, plus(v2291, v2311));
   real2 v2344 = minus(v2291, v2311);
   store(out, 81 << outShift, ctimesminusplus(v2344, tbl[0 + tbloffset], ctimes(reverse(v2344), tbl[1 + tbloffset])));
   real2 v2297 = ctimesminusplus(reverse(v2283), tbl[408 + tbloffset], ctimes(v2283, tbl[409 + tbloffset]));
   real2 v2317 = ctimesminusplus(reverse(v2303), tbl[412 + tbloffset], ctimes(v2303, tbl[413 + tbloffset]));
   store(out, 49 << outShift, plus(v2297, v2317));
   real2 v2350 = minus(v2297, v2317);
   store(out, 113 << outShift, ctimesminusplus(v2350, tbl[0 + tbloffset], ctimes(reverse(v2350), tbl[1 + tbloffset])));
   real2 v2320 = minus(v2285, v2284);
   real2 v2324 = plus(v2284, v2285);
   real2 v2325 = plus(v2304, v2305);
   real2 v2319 = reverse(minus(v2304, v2305));
   store(out, 1 << outShift, plus(v2324, v2325));
   real2 v2338 = minus(v2324, v2325);
   store(out, 65 << outShift, ctimesminusplus(v2338, tbl[0 + tbloffset], ctimes(reverse(v2338), tbl[1 + tbloffset])));
   real2 v2321 = minusplus(v2319, v2320);
   store(out, 33 << outShift, ctimesminusplus(reverse(v2321), tbl[414 + tbloffset], ctimes(v2321, tbl[415 + tbloffset])));
   real2 v2323 = minusplus(uminus(v2319), v2320);
   store(out, 97 << outShift, ctimesminusplus(reverse(v2323), tbl[416 + tbloffset], ctimes(v2323, tbl[417 + tbloffset])));
   real2 v2201 = minusplus(v2199, v2200);
   real2 v2203 = minusplus(uminus(v2199), v2200);
   real2 v2263 = minusplus(uminus(v2259), v2260);
   real2 v2261 = minusplus(v2259, v2260);
   real2 v2243 = minusplus(uminus(v2239), v2240);
   real2 v2241 = minusplus(v2239, v2240);
   real2 v2257 = ctimesminusplus(reverse(v2243), tbl[400 + tbloffset], ctimes(v2243, tbl[401 + tbloffset]));
   real2 v2217 = ctimesminusplus(reverse(v2203), tbl[392 + tbloffset], ctimes(v2203, tbl[393 + tbloffset]));
   real2 v2388 = plus(v2217, v2257);
   real2 v2384 = minus(v2257, v2217);
   real2 v2277 = ctimesminusplus(reverse(v2263), tbl[404 + tbloffset], ctimes(v2263, tbl[405 + tbloffset]));
   real2 v2221 = minusplus(v2219, v2220);
   real2 v2223 = minusplus(uminus(v2219), v2220);
   real2 v2237 = ctimesminusplus(reverse(v2223), tbl[396 + tbloffset], ctimes(v2223, tbl[397 + tbloffset]));
   real2 v2389 = plus(v2237, v2277);
   real2 v2383 = reverse(minus(v2237, v2277));
   store(out, 25 << outShift, plus(v2388, v2389));
   real2 v2402 = minus(v2388, v2389);
   store(out, 89 << outShift, ctimesminusplus(v2402, tbl[0 + tbloffset], ctimes(reverse(v2402), tbl[1 + tbloffset])));
   real2 v2385 = minusplus(v2383, v2384);
   real2 v2387 = minusplus(uminus(v2383), v2384);
   store(out, 121 << outShift, ctimesminusplus(reverse(v2387), tbl[424 + tbloffset], ctimes(v2387, tbl[425 + tbloffset])));
   store(out, 57 << outShift, ctimesminusplus(reverse(v2385), tbl[422 + tbloffset], ctimes(v2385, tbl[423 + tbloffset])));
   real2 v2251 = ctimesminusplus(reverse(v2241), tbl[398 + tbloffset], ctimes(v2241, tbl[399 + tbloffset]));
   real2 v2211 = ctimesminusplus(reverse(v2201), tbl[390 + tbloffset], ctimes(v2201, tbl[391 + tbloffset]));
   real2 v2358 = minus(v2251, v2211);
   real2 v2362 = plus(v2211, v2251);
   real2 v2271 = ctimesminusplus(reverse(v2261), tbl[402 + tbloffset], ctimes(v2261, tbl[403 + tbloffset]));
   real2 v2231 = ctimesminusplus(reverse(v2221), tbl[394 + tbloffset], ctimes(v2221, tbl[395 + tbloffset]));
   real2 v2357 = reverse(minus(v2231, v2271));
   real2 v2363 = plus(v2231, v2271);
   store(out, 9 << outShift, plus(v2362, v2363));
   real2 v2376 = minus(v2362, v2363);
   store(out, 73 << outShift, ctimesminusplus(v2376, tbl[0 + tbloffset], ctimes(reverse(v2376), tbl[1 + tbloffset])));
   real2 v2361 = minusplus(uminus(v2357), v2358);
   store(out, 105 << outShift, ctimesminusplus(reverse(v2361), tbl[420 + tbloffset], ctimes(v2361, tbl[421 + tbloffset])));
   real2 v2359 = minusplus(v2357, v2358);
   store(out, 41 << outShift, ctimesminusplus(reverse(v2359), tbl[418 + tbloffset], ctimes(v2359, tbl[419 + tbloffset])));
   real2 v2121 = minusplus(v2119, v2120);
   real2 v2123 = minusplus(uminus(v2119), v2120);
   real2 v2083 = minusplus(uminus(v2079), v2080);
   real2 v2081 = minusplus(v2079, v2080);
   real2 v2091 = ctimesminusplus(reverse(v2081), tbl[366 + tbloffset], ctimes(v2081, tbl[367 + tbloffset]));
   real2 v2043 = minusplus(uminus(v2039), v2040);
   real2 v2041 = minusplus(v2039, v2040);
   real2 v2051 = ctimesminusplus(reverse(v2041), tbl[358 + tbloffset], ctimes(v2041, tbl[359 + tbloffset]));
   real2 v2131 = ctimesminusplus(reverse(v2121), tbl[374 + tbloffset], ctimes(v2121, tbl[375 + tbloffset]));
   real2 v2163 = minusplus(uminus(v2159), v2160);
   real2 v2161 = minusplus(v2159, v2160);
   real2 v2171 = ctimesminusplus(reverse(v2161), tbl[382 + tbloffset], ctimes(v2161, tbl[383 + tbloffset]));
   real2 v2409 = reverse(minus(v2091, v2171));
   real2 v2415 = plus(v2091, v2171);
   real2 v2410 = minus(v2131, v2051);
   real2 v2414 = plus(v2051, v2131);
   real2 v2454 = plus(v2414, v2415);
   real2 v2450 = minus(v2415, v2414);
   real2 v2181 = minusplus(v2179, v2180);
   real2 v2183 = minusplus(uminus(v2179), v2180);
   real2 v2191 = ctimesminusplus(reverse(v2181), tbl[386 + tbloffset], ctimes(v2181, tbl[387 + tbloffset]));
   real2 v2103 = minusplus(uminus(v2099), v2100);
   real2 v2101 = minusplus(v2099, v2100);
   real2 v2111 = ctimesminusplus(reverse(v2101), tbl[370 + tbloffset], ctimes(v2101, tbl[371 + tbloffset]));
   real2 v2435 = plus(v2111, v2191);
   real2 v2429 = reverse(minus(v2111, v2191));
   real2 v2141 = minusplus(v2139, v2140);
   real2 v2143 = minusplus(uminus(v2139), v2140);
   real2 v2151 = ctimesminusplus(reverse(v2141), tbl[378 + tbloffset], ctimes(v2141, tbl[379 + tbloffset]));
   real2 v2063 = minusplus(uminus(v2059), v2060);
   real2 v2061 = minusplus(v2059, v2060);
   real2 v2071 = ctimesminusplus(reverse(v2061), tbl[362 + tbloffset], ctimes(v2061, tbl[363 + tbloffset]));
   real2 v2434 = plus(v2071, v2151);
   real2 v2430 = minus(v2151, v2071);
   real2 v2455 = plus(v2434, v2435);
   real2 v2449 = reverse(minus(v2434, v2435));
   store(out, 5 << outShift, plus(v2454, v2455));
   real2 v2468 = minus(v2454, v2455);
   store(out, 69 << outShift, ctimesminusplus(v2468, tbl[0 + tbloffset], ctimes(reverse(v2468), tbl[1 + tbloffset])));
   real2 v2451 = minusplus(v2449, v2450);
   real2 v2453 = minusplus(uminus(v2449), v2450);
   store(out, 101 << outShift, ctimesminusplus(reverse(v2453), tbl[436 + tbloffset], ctimes(v2453, tbl[437 + tbloffset])));
   store(out, 37 << outShift, ctimesminusplus(reverse(v2451), tbl[434 + tbloffset], ctimes(v2451, tbl[435 + tbloffset])));
   real2 v2411 = minusplus(v2409, v2410);
   real2 v2413 = minusplus(uminus(v2409), v2410);
   real2 v2433 = minusplus(uminus(v2429), v2430);
   real2 v2431 = minusplus(v2429, v2430);
   real2 v2421 = ctimesminusplus(reverse(v2411), tbl[426 + tbloffset], ctimes(v2411, tbl[427 + tbloffset]));
   real2 v2441 = ctimesminusplus(reverse(v2431), tbl[430 + tbloffset], ctimes(v2431, tbl[431 + tbloffset]));
   store(out, 21 << outShift, plus(v2421, v2441));
   real2 v2474 = minus(v2421, v2441);
   store(out, 85 << outShift, ctimesminusplus(v2474, tbl[0 + tbloffset], ctimes(reverse(v2474), tbl[1 + tbloffset])));
   real2 v2427 = ctimesminusplus(reverse(v2413), tbl[428 + tbloffset], ctimes(v2413, tbl[429 + tbloffset]));
   real2 v2447 = ctimesminusplus(reverse(v2433), tbl[432 + tbloffset], ctimes(v2433, tbl[433 + tbloffset]));
   store(out, 53 << outShift, plus(v2427, v2447));
   real2 v2480 = minus(v2427, v2447);
   store(out, 117 << outShift, ctimesminusplus(v2480, tbl[0 + tbloffset], ctimes(reverse(v2480), tbl[1 + tbloffset])));
   real2 v2057 = ctimesminusplus(reverse(v2043), tbl[360 + tbloffset], ctimes(v2043, tbl[361 + tbloffset]));
   real2 v2097 = ctimesminusplus(reverse(v2083), tbl[368 + tbloffset], ctimes(v2083, tbl[369 + tbloffset]));
   real2 v2157 = ctimesminusplus(reverse(v2143), tbl[380 + tbloffset], ctimes(v2143, tbl[381 + tbloffset]));
   real2 v2197 = ctimesminusplus(reverse(v2183), tbl[388 + tbloffset], ctimes(v2183, tbl[389 + tbloffset]));
   real2 v2117 = ctimesminusplus(reverse(v2103), tbl[372 + tbloffset], ctimes(v2103, tbl[373 + tbloffset]));
   real2 v2507 = reverse(minus(v2117, v2197));
   real2 v2513 = plus(v2117, v2197);
   real2 v2137 = ctimesminusplus(reverse(v2123), tbl[376 + tbloffset], ctimes(v2123, tbl[377 + tbloffset]));
   real2 v2488 = minus(v2137, v2057);
   real2 v2492 = plus(v2057, v2137);
   real2 v2177 = ctimesminusplus(reverse(v2163), tbl[384 + tbloffset], ctimes(v2163, tbl[385 + tbloffset]));
   real2 v2493 = plus(v2097, v2177);
   real2 v2487 = reverse(minus(v2097, v2177));
   real2 v2532 = plus(v2492, v2493);
   real2 v2528 = minus(v2493, v2492);
   real2 v2077 = ctimesminusplus(reverse(v2063), tbl[364 + tbloffset], ctimes(v2063, tbl[365 + tbloffset]));
   real2 v2512 = plus(v2077, v2157);
   real2 v2508 = minus(v2157, v2077);
   real2 v2527 = reverse(minus(v2512, v2513));
   real2 v2533 = plus(v2512, v2513);
   real2 v2529 = minusplus(v2527, v2528);
   real2 v2531 = minusplus(uminus(v2527), v2528);
   store(out, 109 << outShift, ctimesminusplus(reverse(v2531), tbl[448 + tbloffset], ctimes(v2531, tbl[449 + tbloffset])));
   store(out, 45 << outShift, ctimesminusplus(reverse(v2529), tbl[446 + tbloffset], ctimes(v2529, tbl[447 + tbloffset])));
   store(out, 13 << outShift, plus(v2532, v2533));
   real2 v2546 = minus(v2532, v2533);
   store(out, 77 << outShift, ctimesminusplus(v2546, tbl[0 + tbloffset], ctimes(reverse(v2546), tbl[1 + tbloffset])));
   real2 v2509 = minusplus(v2507, v2508);
   real2 v2511 = minusplus(uminus(v2507), v2508);
   real2 v2491 = minusplus(uminus(v2487), v2488);
   real2 v2489 = minusplus(v2487, v2488);
   real2 v2499 = ctimesminusplus(reverse(v2489), tbl[438 + tbloffset], ctimes(v2489, tbl[439 + tbloffset]));
   real2 v2519 = ctimesminusplus(reverse(v2509), tbl[442 + tbloffset], ctimes(v2509, tbl[443 + tbloffset]));
   store(out, 29 << outShift, plus(v2499, v2519));
   real2 v2552 = minus(v2499, v2519);
   store(out, 93 << outShift, ctimesminusplus(v2552, tbl[0 + tbloffset], ctimes(reverse(v2552), tbl[1 + tbloffset])));
   real2 v2505 = ctimesminusplus(reverse(v2491), tbl[440 + tbloffset], ctimes(v2491, tbl[441 + tbloffset]));
   real2 v2525 = ctimesminusplus(reverse(v2511), tbl[444 + tbloffset], ctimes(v2511, tbl[445 + tbloffset]));
   store(out, 61 << outShift, plus(v2505, v2525));
   real2 v2558 = minus(v2505, v2525);
   store(out, 125 << outShift, ctimesminusplus(v2558, tbl[0 + tbloffset], ctimes(reverse(v2558), tbl[1 + tbloffset])));
// Pres : 76263
  }
}

ALIGNED(8192) void but128b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const int outShift, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * (i0 >> outShift);

// Pres : 148586
   real2 v56 = load(in, 54 << inShift);
   real2 v120 = load(in, 118 << inShift);
   real2 v571 = reverse(minus(v120, v56));
   real2 v577 = plus(v56, v120);
   real2 v24 = load(in, 22 << inShift);
   real2 v88 = load(in, 86 << inShift);
   real2 v576 = plus(v24, v88);
   real2 v572 = minus(v88, v24);
   real2 v573 = minusplus(v571, v572);
   real2 v575 = minusplus(uminus(v571), v572);
   real2 v589 = ctimesminusplus(reverse(v575), tbl[92 + tbloffset], ctimes(v575, tbl[93 + tbloffset]));
   real2 v583 = ctimesminusplus(reverse(v573), tbl[90 + tbloffset], ctimes(v573, tbl[91 + tbloffset]));
   real2 v897 = plus(v576, v577);
   real2 v891 = reverse(minus(v577, v576));
   real2 v8 = load(in, 6 << inShift);
   real2 v72 = load(in, 70 << inShift);
   real2 v252 = minus(v72, v8);
   real2 v256 = plus(v8, v72);
   real2 v104 = load(in, 102 << inShift);
   real2 v40 = load(in, 38 << inShift);
   real2 v251 = reverse(minus(v104, v40));
   real2 v257 = plus(v40, v104);
   real2 v255 = minusplus(uminus(v251), v252);
   real2 v253 = minusplus(v251, v252);
   real2 v263 = ctimesminusplus(reverse(v253), tbl[26 + tbloffset], ctimes(v253, tbl[27 + tbloffset]));
   real2 v896 = plus(v256, v257);
   real2 v892 = minus(v257, v256);
   real2 v895 = minusplus(uminus(v891), v892);
   real2 v893 = minusplus(v891, v892);
   real2 v909 = ctimesminusplus(reverse(v895), tbl[156 + tbloffset], ctimes(v895, tbl[157 + tbloffset]));
   real2 v903 = ctimesminusplus(reverse(v893), tbl[154 + tbloffset], ctimes(v893, tbl[155 + tbloffset]));
   real2 v269 = ctimesminusplus(reverse(v255), tbl[28 + tbloffset], ctimes(v255, tbl[29 + tbloffset]));
   real2 v1216 = plus(v896, v897);
   real2 v1212 = minus(v897, v896);
   real2 v2160 = minus(v583, v263);
   real2 v2164 = plus(v263, v583);
   real2 v2686 = minus(v589, v269);
   real2 v2690 = plus(v269, v589);
   real2 v96 = load(in, 94 << inShift);
   real2 v32 = load(in, 30 << inShift);
   real2 v736 = plus(v32, v96);
   real2 v732 = minus(v96, v32);
   real2 v64 = load(in, 62 << inShift);
   real2 v128 = load(in, 126 << inShift);
   real2 v737 = plus(v64, v128);
   real2 v731 = reverse(minus(v128, v64));
   real2 v1057 = plus(v736, v737);
   real2 v1051 = reverse(minus(v737, v736));
   real2 v733 = minusplus(v731, v732);
   real2 v735 = minusplus(uminus(v731), v732);
   real2 v749 = ctimesminusplus(reverse(v735), tbl[124 + tbloffset], ctimes(v735, tbl[125 + tbloffset]));
   real2 v743 = ctimesminusplus(reverse(v733), tbl[122 + tbloffset], ctimes(v733, tbl[123 + tbloffset]));
   real2 v16 = load(in, 14 << inShift);
   real2 v80 = load(in, 78 << inShift);
   real2 v412 = minus(v80, v16);
   real2 v416 = plus(v16, v80);
   real2 v112 = load(in, 110 << inShift);
   real2 v48 = load(in, 46 << inShift);
   real2 v417 = plus(v48, v112);
   real2 v411 = reverse(minus(v112, v48));
   real2 v1056 = plus(v416, v417);
   real2 v1052 = minus(v417, v416);
   real2 v1055 = minusplus(uminus(v1051), v1052);
   real2 v1053 = minusplus(v1051, v1052);
   real2 v1063 = ctimesminusplus(reverse(v1053), tbl[186 + tbloffset], ctimes(v1053, tbl[187 + tbloffset]));
   real2 v1665 = plus(v903, v1063);
   real2 v1659 = reverse(minus(v1063, v903));
   real2 v1069 = ctimesminusplus(reverse(v1055), tbl[188 + tbloffset], ctimes(v1055, tbl[189 + tbloffset]));
   real2 v1869 = reverse(minus(v1069, v909));
   real2 v1875 = plus(v909, v1069);
   real2 v413 = minusplus(v411, v412);
   real2 v415 = minusplus(uminus(v411), v412);
   real2 v429 = ctimesminusplus(reverse(v415), tbl[60 + tbloffset], ctimes(v415, tbl[61 + tbloffset]));
   real2 v1217 = plus(v1056, v1057);
   real2 v1211 = reverse(minus(v1057, v1056));
   real2 v1297 = plus(v1216, v1217);
   real2 v1291 = reverse(minus(v1217, v1216));
   real2 v2691 = plus(v429, v749);
   real2 v2685 = reverse(minus(v749, v429));
   real2 v2765 = reverse(minus(v2691, v2690));
   real2 v2771 = plus(v2690, v2691);
   real2 v2689 = minusplus(uminus(v2685), v2686);
   real2 v2687 = minusplus(v2685, v2686);
   real2 v2703 = ctimesminusplus(reverse(v2689), tbl[476 + tbloffset], ctimes(v2689, tbl[477 + tbloffset]));
   real2 v2697 = ctimesminusplus(reverse(v2687), tbl[474 + tbloffset], ctimes(v2687, tbl[475 + tbloffset]));
   real2 v1215 = minusplus(uminus(v1211), v1212);
   real2 v1213 = minusplus(v1211, v1212);
   real2 v1223 = ctimesminusplus(reverse(v1213), tbl[218 + tbloffset], ctimes(v1213, tbl[219 + tbloffset]));
   real2 v1229 = ctimesminusplus(reverse(v1215), tbl[220 + tbloffset], ctimes(v1215, tbl[221 + tbloffset]));
   real2 v423 = ctimesminusplus(reverse(v413), tbl[58 + tbloffset], ctimes(v413, tbl[59 + tbloffset]));
   real2 v2165 = plus(v423, v743);
   real2 v2159 = reverse(minus(v743, v423));
   real2 v2245 = plus(v2164, v2165);
   real2 v2239 = reverse(minus(v2165, v2164));
   real2 v44 = load(in, 42 << inShift);
   real2 v108 = load(in, 106 << inShift);
   real2 v331 = reverse(minus(v108, v44));
   real2 v337 = plus(v44, v108);
   real2 v76 = load(in, 74 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v336 = plus(v12, v76);
   real2 v332 = minus(v76, v12);
   real2 v976 = plus(v336, v337);
   real2 v972 = minus(v337, v336);
   real2 v335 = minusplus(uminus(v331), v332);
   real2 v333 = minusplus(v331, v332);
   real2 v343 = ctimesminusplus(reverse(v333), tbl[42 + tbloffset], ctimes(v333, tbl[43 + tbloffset]));
   real2 v349 = ctimesminusplus(reverse(v335), tbl[44 + tbloffset], ctimes(v335, tbl[45 + tbloffset]));
   real2 v124 = load(in, 122 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v651 = reverse(minus(v124, v60));
   real2 v657 = plus(v60, v124);
   real2 v28 = load(in, 26 << inShift);
   real2 v92 = load(in, 90 << inShift);
   real2 v652 = minus(v92, v28);
   real2 v656 = plus(v28, v92);
   real2 v977 = plus(v656, v657);
   real2 v971 = reverse(minus(v657, v656));
   real2 v973 = minusplus(v971, v972);
   real2 v975 = minusplus(uminus(v971), v972);
   real2 v983 = ctimesminusplus(reverse(v973), tbl[170 + tbloffset], ctimes(v973, tbl[171 + tbloffset]));
   real2 v1131 = reverse(minus(v977, v976));
   real2 v1137 = plus(v976, v977);
   real2 v655 = minusplus(uminus(v651), v652);
   real2 v653 = minusplus(v651, v652);
   real2 v669 = ctimesminusplus(reverse(v655), tbl[108 + tbloffset], ctimes(v655, tbl[109 + tbloffset]));
   real2 v663 = ctimesminusplus(reverse(v653), tbl[106 + tbloffset], ctimes(v653, tbl[107 + tbloffset]));
   real2 v2079 = reverse(minus(v663, v343));
   real2 v2085 = plus(v343, v663);
   real2 v2605 = reverse(minus(v669, v349));
   real2 v2611 = plus(v349, v669);
   real2 v989 = ctimesminusplus(reverse(v975), tbl[172 + tbloffset], ctimes(v975, tbl[173 + tbloffset]));
   real2 v20 = load(in, 18 << inShift);
   real2 v84 = load(in, 82 << inShift);
   real2 v496 = plus(v20, v84);
   real2 v492 = minus(v84, v20);
   real2 v52 = load(in, 50 << inShift);
   real2 v116 = load(in, 114 << inShift);
   real2 v491 = reverse(minus(v116, v52));
   real2 v497 = plus(v52, v116);
   real2 v817 = plus(v496, v497);
   real2 v811 = reverse(minus(v497, v496));
   real2 v493 = minusplus(v491, v492);
   real2 v495 = minusplus(uminus(v491), v492);
   real2 v509 = ctimesminusplus(reverse(v495), tbl[76 + tbloffset], ctimes(v495, tbl[77 + tbloffset]));
   real2 v503 = ctimesminusplus(reverse(v493), tbl[74 + tbloffset], ctimes(v493, tbl[75 + tbloffset]));
   real2 v36 = load(in, 34 << inShift);
   real2 v100 = load(in, 98 << inShift);
   real2 v171 = reverse(minus(v100, v36));
   real2 v177 = plus(v36, v100);
   real2 v68 = load(in, 66 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v176 = plus(v4, v68);
   real2 v172 = minus(v68, v4);
   real2 v816 = plus(v176, v177);
   real2 v812 = minus(v177, v176);
   real2 v1136 = plus(v816, v817);
   real2 v1132 = minus(v817, v816);
   real2 v1133 = minusplus(v1131, v1132);
   real2 v1135 = minusplus(uminus(v1131), v1132);
   real2 v1149 = ctimesminusplus(reverse(v1135), tbl[204 + tbloffset], ctimes(v1135, tbl[205 + tbloffset]));
   real2 v1296 = plus(v1136, v1137);
   real2 v1292 = minus(v1137, v1136);
   real2 v1295 = minusplus(uminus(v1291), v1292);
   real2 v1293 = minusplus(v1291, v1292);
   real2 v1303 = ctimesminusplus(reverse(v1293), tbl[234 + tbloffset], ctimes(v1293, tbl[235 + tbloffset]));
   real2 v1331 = reverse(minus(v1297, v1296));
   real2 v1337 = plus(v1296, v1297);
   real2 v173 = minusplus(v171, v172);
   real2 v175 = minusplus(uminus(v171), v172);
   real2 v189 = ctimesminusplus(reverse(v175), tbl[12 + tbloffset], ctimes(v175, tbl[13 + tbloffset]));
   real2 v1309 = ctimesminusplus(reverse(v1295), tbl[236 + tbloffset], ctimes(v1295, tbl[237 + tbloffset]));
   real2 v815 = minusplus(uminus(v811), v812);
   real2 v813 = minusplus(v811, v812);
   real2 v1143 = ctimesminusplus(reverse(v1133), tbl[202 + tbloffset], ctimes(v1133, tbl[203 + tbloffset]));
   real2 v1541 = reverse(minus(v1229, v1149));
   real2 v1547 = plus(v1149, v1229);
   real2 v2610 = plus(v189, v509);
   real2 v2606 = minus(v509, v189);
   real2 v2770 = plus(v2610, v2611);
   real2 v2766 = minus(v2611, v2610);
   real2 v823 = ctimesminusplus(reverse(v813), tbl[138 + tbloffset], ctimes(v813, tbl[139 + tbloffset]));
   real2 v829 = ctimesminusplus(reverse(v815), tbl[140 + tbloffset], ctimes(v815, tbl[141 + tbloffset]));
   real2 v2811 = plus(v2770, v2771);
   real2 v2805 = reverse(minus(v2771, v2770));
   real2 v2767 = minusplus(v2765, v2766);
   real2 v2769 = minusplus(uminus(v2765), v2766);
   real2 v2607 = minusplus(v2605, v2606);
   real2 v2609 = minusplus(uminus(v2605), v2606);
   real2 v2617 = ctimesminusplus(reverse(v2607), tbl[458 + tbloffset], ctimes(v2607, tbl[459 + tbloffset]));
   real2 v2623 = ctimesminusplus(reverse(v2609), tbl[460 + tbloffset], ctimes(v2609, tbl[461 + tbloffset]));
   real2 v3013 = reverse(minus(v2703, v2623));
   real2 v3019 = plus(v2623, v2703);
   real2 v2783 = ctimesminusplus(reverse(v2769), tbl[492 + tbloffset], ctimes(v2769, tbl[493 + tbloffset]));
   real2 v2941 = plus(v2617, v2697);
   real2 v2935 = reverse(minus(v2697, v2617));
   real2 v2777 = ctimesminusplus(reverse(v2767), tbl[490 + tbloffset], ctimes(v2767, tbl[491 + tbloffset]));
   real2 v1660 = minus(v983, v823);
   real2 v1664 = plus(v823, v983);
   real2 v1874 = plus(v829, v989);
   real2 v1870 = minus(v989, v829);
   real2 v1909 = reverse(minus(v1875, v1874));
   real2 v1915 = plus(v1874, v1875);
   real2 v1663 = minusplus(uminus(v1659), v1660);
   real2 v1661 = minusplus(v1659, v1660);
   real2 v1677 = ctimesminusplus(reverse(v1663), tbl[296 + tbloffset], ctimes(v1663, tbl[297 + tbloffset]));
   real2 v1873 = minusplus(uminus(v1869), v1870);
   real2 v1871 = minusplus(v1869, v1870);
   real2 v1887 = ctimesminusplus(reverse(v1873), tbl[332 + tbloffset], ctimes(v1873, tbl[333 + tbloffset]));
   real2 v1705 = plus(v1664, v1665);
   real2 v1699 = reverse(minus(v1665, v1664));
   real2 v1671 = ctimesminusplus(reverse(v1661), tbl[294 + tbloffset], ctimes(v1661, tbl[295 + tbloffset]));
   real2 v1881 = ctimesminusplus(reverse(v1871), tbl[330 + tbloffset], ctimes(v1871, tbl[331 + tbloffset]));
   real2 v1469 = plus(v1143, v1223);
   real2 v1463 = reverse(minus(v1223, v1143));
   real2 v54 = load(in, 52 << inShift);
   real2 v118 = load(in, 116 << inShift);
   real2 v537 = plus(v54, v118);
   real2 v531 = reverse(minus(v118, v54));
   real2 v86 = load(in, 84 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v536 = plus(v22, v86);
   real2 v532 = minus(v86, v22);
   real2 v851 = reverse(minus(v537, v536));
   real2 v857 = plus(v536, v537);
   real2 v533 = minusplus(v531, v532);
   real2 v535 = minusplus(uminus(v531), v532);
   real2 v549 = ctimesminusplus(reverse(v535), tbl[84 + tbloffset], ctimes(v535, tbl[85 + tbloffset]));
   real2 v102 = load(in, 100 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v217 = plus(v38, v102);
   real2 v211 = reverse(minus(v102, v38));
   real2 v70 = load(in, 68 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v216 = plus(v6, v70);
   real2 v212 = minus(v70, v6);
   real2 v213 = minusplus(v211, v212);
   real2 v215 = minusplus(uminus(v211), v212);
   real2 v229 = ctimesminusplus(reverse(v215), tbl[20 + tbloffset], ctimes(v215, tbl[21 + tbloffset]));
   real2 v2646 = minus(v549, v229);
   real2 v2650 = plus(v229, v549);
   real2 v856 = plus(v216, v217);
   real2 v852 = minus(v217, v216);
   real2 v853 = minusplus(v851, v852);
   real2 v855 = minusplus(uminus(v851), v852);
   real2 v863 = ctimesminusplus(reverse(v853), tbl[146 + tbloffset], ctimes(v853, tbl[147 + tbloffset]));
   real2 v869 = ctimesminusplus(reverse(v855), tbl[148 + tbloffset], ctimes(v855, tbl[149 + tbloffset]));
   real2 v1176 = plus(v856, v857);
   real2 v1172 = minus(v857, v856);
   real2 v110 = load(in, 108 << inShift);
   real2 v46 = load(in, 44 << inShift);
   real2 v377 = plus(v46, v110);
   real2 v371 = reverse(minus(v110, v46));
   real2 v78 = load(in, 76 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v372 = minus(v78, v14);
   real2 v376 = plus(v14, v78);
   real2 v1012 = minus(v377, v376);
   real2 v1016 = plus(v376, v377);
   real2 v373 = minusplus(v371, v372);
   real2 v375 = minusplus(uminus(v371), v372);
   real2 v389 = ctimesminusplus(reverse(v375), tbl[52 + tbloffset], ctimes(v375, tbl[53 + tbloffset]));
   real2 v30 = load(in, 28 << inShift);
   real2 v94 = load(in, 92 << inShift);
   real2 v696 = plus(v30, v94);
   real2 v692 = minus(v94, v30);
   real2 v62 = load(in, 60 << inShift);
   real2 v126 = load(in, 124 << inShift);
   real2 v697 = plus(v62, v126);
   real2 v691 = reverse(minus(v126, v62));
   real2 v1017 = plus(v696, v697);
   real2 v1011 = reverse(minus(v697, v696));
   real2 v1171 = reverse(minus(v1017, v1016));
   real2 v1177 = plus(v1016, v1017);
   real2 v1013 = minusplus(v1011, v1012);
   real2 v1015 = minusplus(uminus(v1011), v1012);
   real2 v1175 = minusplus(uminus(v1171), v1172);
   real2 v1173 = minusplus(v1171, v1172);
   real2 v1183 = ctimesminusplus(reverse(v1173), tbl[210 + tbloffset], ctimes(v1173, tbl[211 + tbloffset]));
   real2 v1189 = ctimesminusplus(reverse(v1175), tbl[212 + tbloffset], ctimes(v1175, tbl[213 + tbloffset]));
   real2 v1029 = ctimesminusplus(reverse(v1015), tbl[180 + tbloffset], ctimes(v1015, tbl[181 + tbloffset]));
   real2 v1023 = ctimesminusplus(reverse(v1013), tbl[178 + tbloffset], ctimes(v1013, tbl[179 + tbloffset]));
   real2 v1625 = plus(v863, v1023);
   real2 v1619 = reverse(minus(v1023, v863));
   real2 v1835 = plus(v869, v1029);
   real2 v1829 = reverse(minus(v1029, v869));
   real2 v693 = minusplus(v691, v692);
   real2 v695 = minusplus(uminus(v691), v692);
   real2 v709 = ctimesminusplus(reverse(v695), tbl[116 + tbloffset], ctimes(v695, tbl[117 + tbloffset]));
   real2 v2645 = reverse(minus(v709, v389));
   real2 v2651 = plus(v389, v709);
   real2 v1257 = plus(v1176, v1177);
   real2 v1251 = reverse(minus(v1177, v1176));
   real2 v2731 = plus(v2650, v2651);
   real2 v2725 = reverse(minus(v2651, v2650));
   real2 v114 = load(in, 112 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v457 = plus(v50, v114);
   real2 v451 = reverse(minus(v114, v50));
   real2 v18 = load(in, 16 << inShift);
   real2 v82 = load(in, 80 << inShift);
   real2 v456 = plus(v18, v82);
   real2 v452 = minus(v82, v18);
   real2 v771 = reverse(minus(v457, v456));
   real2 v777 = plus(v456, v457);
   real2 v453 = minusplus(v451, v452);
   real2 v455 = minusplus(uminus(v451), v452);
   real2 v469 = ctimesminusplus(reverse(v455), tbl[68 + tbloffset], ctimes(v455, tbl[69 + tbloffset]));
   real2 v66 = load(in, 64 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v131 = reverse(minus(v98, v34));
   real2 v137 = plus(v34, v98);
   real2 v133 = minusplus(v131, v132);
   real2 v135 = minusplus(uminus(v131), v132);
   real2 v149 = ctimesminusplus(reverse(v135), tbl[4 + tbloffset], ctimes(v135, tbl[5 + tbloffset]));
   real2 v2566 = minus(v469, v149);
   real2 v2570 = plus(v149, v469);
   real2 v772 = minus(v137, v136);
   real2 v776 = plus(v136, v137);
   real2 v1092 = minus(v777, v776);
   real2 v1096 = plus(v776, v777);
   real2 v773 = minusplus(v771, v772);
   real2 v775 = minusplus(uminus(v771), v772);
   real2 v783 = ctimesminusplus(reverse(v773), tbl[130 + tbloffset], ctimes(v773, tbl[131 + tbloffset]));
   real2 v789 = ctimesminusplus(reverse(v775), tbl[132 + tbloffset], ctimes(v775, tbl[133 + tbloffset]));
   real2 v74 = load(in, 72 << inShift);
   real2 v10 = load(in, 8 << inShift);
   real2 v296 = plus(v10, v74);
   real2 v292 = minus(v74, v10);
   real2 v42 = load(in, 40 << inShift);
   real2 v106 = load(in, 104 << inShift);
   real2 v291 = reverse(minus(v106, v42));
   real2 v297 = plus(v42, v106);
   real2 v293 = minusplus(v291, v292);
   real2 v295 = minusplus(uminus(v291), v292);
   real2 v309 = ctimesminusplus(reverse(v295), tbl[36 + tbloffset], ctimes(v295, tbl[37 + tbloffset]));
   real2 v932 = minus(v297, v296);
   real2 v936 = plus(v296, v297);
   real2 v122 = load(in, 120 << inShift);
   real2 v58 = load(in, 56 << inShift);
   real2 v617 = plus(v58, v122);
   real2 v611 = reverse(minus(v122, v58));
   real2 v26 = load(in, 24 << inShift);
   real2 v90 = load(in, 88 << inShift);
   real2 v612 = minus(v90, v26);
   real2 v616 = plus(v26, v90);
   real2 v937 = plus(v616, v617);
   real2 v931 = reverse(minus(v617, v616));
   real2 v1091 = reverse(minus(v937, v936));
   real2 v1097 = plus(v936, v937);
   real2 v933 = minusplus(v931, v932);
   real2 v935 = minusplus(uminus(v931), v932);
   real2 v1093 = minusplus(v1091, v1092);
   real2 v1095 = minusplus(uminus(v1091), v1092);
   real2 v1103 = ctimesminusplus(reverse(v1093), tbl[194 + tbloffset], ctimes(v1093, tbl[195 + tbloffset]));
   real2 v1468 = plus(v1103, v1183);
   real2 v1464 = minus(v1183, v1103);
   real2 v1508 = plus(v1468, v1469);
   real2 v1504 = minus(v1469, v1468);
   real2 v1252 = minus(v1097, v1096);
   real2 v1256 = plus(v1096, v1097);
   real2 v1336 = plus(v1256, v1257);
   real2 v1332 = minus(v1257, v1256);
   real2 v1335 = minusplus(uminus(v1331), v1332);
   real2 v1333 = minusplus(v1331, v1332);
   real2 v1343 = ctimesminusplus(reverse(v1333), tbl[242 + tbloffset], ctimes(v1333, tbl[243 + tbloffset]));
   real2 v1349 = ctimesminusplus(reverse(v1335), tbl[244 + tbloffset], ctimes(v1335, tbl[245 + tbloffset]));
   real2 v1376 = plus(v1336, v1337);
   real2 v1372 = minus(v1337, v1336);
   real2 v1465 = minusplus(v1463, v1464);
   real2 v1467 = minusplus(uminus(v1463), v1464);
   real2 v1255 = minusplus(uminus(v1251), v1252);
   real2 v1253 = minusplus(v1251, v1252);
   real2 v1481 = ctimesminusplus(reverse(v1467), tbl[264 + tbloffset], ctimes(v1467, tbl[265 + tbloffset]));
   real2 v1475 = ctimesminusplus(reverse(v1465), tbl[262 + tbloffset], ctimes(v1465, tbl[263 + tbloffset]));
   real2 v1109 = ctimesminusplus(reverse(v1095), tbl[196 + tbloffset], ctimes(v1095, tbl[197 + tbloffset]));
   real2 v1542 = minus(v1189, v1109);
   real2 v1546 = plus(v1109, v1189);
   real2 v1545 = minusplus(uminus(v1541), v1542);
   real2 v1543 = minusplus(v1541, v1542);
   real2 v1553 = ctimesminusplus(reverse(v1543), tbl[274 + tbloffset], ctimes(v1543, tbl[275 + tbloffset]));
   real2 v1559 = ctimesminusplus(reverse(v1545), tbl[276 + tbloffset], ctimes(v1545, tbl[277 + tbloffset]));
   real2 v1582 = minus(v1547, v1546);
   real2 v1586 = plus(v1546, v1547);
   real2 v1269 = ctimesminusplus(reverse(v1255), tbl[228 + tbloffset], ctimes(v1255, tbl[229 + tbloffset]));
   real2 v1438 = minus(v1309, v1269);
   real2 v1442 = plus(v1269, v1309);
   real2 v1263 = ctimesminusplus(reverse(v1253), tbl[226 + tbloffset], ctimes(v1253, tbl[227 + tbloffset]));
   real2 v943 = ctimesminusplus(reverse(v933), tbl[162 + tbloffset], ctimes(v933, tbl[163 + tbloffset]));
   real2 v1624 = plus(v783, v943);
   real2 v1620 = minus(v943, v783);
   real2 v1623 = minusplus(uminus(v1619), v1620);
   real2 v1621 = minusplus(v1619, v1620);
   real2 v1700 = minus(v1625, v1624);
   real2 v1704 = plus(v1624, v1625);
   real2 v1631 = ctimesminusplus(reverse(v1621), tbl[286 + tbloffset], ctimes(v1621, tbl[287 + tbloffset]));
   real2 v949 = ctimesminusplus(reverse(v935), tbl[164 + tbloffset], ctimes(v935, tbl[165 + tbloffset]));
   real2 v1830 = minus(v949, v789);
   real2 v1834 = plus(v789, v949);
   real2 v1782 = plus(v1631, v1671);
   real2 v1778 = minus(v1671, v1631);
   real2 v1910 = minus(v1835, v1834);
   real2 v1914 = plus(v1834, v1835);
   real2 v1950 = minus(v1915, v1914);
   real2 v1954 = plus(v1914, v1915);
   real2 v1913 = minusplus(uminus(v1909), v1910);
   real2 v1911 = minusplus(v1909, v1910);
   real2 v613 = minusplus(v611, v612);
   real2 v615 = minusplus(uminus(v611), v612);
   real2 v629 = ctimesminusplus(reverse(v615), tbl[100 + tbloffset], ctimes(v615, tbl[101 + tbloffset]));
   real2 v1744 = plus(v1704, v1705);
   real2 v1740 = minus(v1705, v1704);
   real2 v1637 = ctimesminusplus(reverse(v1623), tbl[288 + tbloffset], ctimes(v1623, tbl[289 + tbloffset]));
   real2 v1927 = ctimesminusplus(reverse(v1913), tbl[340 + tbloffset], ctimes(v1913, tbl[341 + tbloffset]));
   real2 v2571 = plus(v309, v629);
   real2 v2565 = reverse(minus(v629, v309));
   real2 v1833 = minusplus(uminus(v1829), v1830);
   real2 v1831 = minusplus(v1829, v1830);
   real2 v1921 = ctimesminusplus(reverse(v1911), tbl[338 + tbloffset], ctimes(v1911, tbl[339 + tbloffset]));
   real2 v1804 = minus(v1677, v1637);
   real2 v1808 = plus(v1637, v1677);
   real2 v1847 = ctimesminusplus(reverse(v1833), tbl[324 + tbloffset], ctimes(v1833, tbl[325 + tbloffset]));
   real2 v2014 = minus(v1887, v1847);
   real2 v2018 = plus(v1847, v1887);
   real2 v1841 = ctimesminusplus(reverse(v1831), tbl[322 + tbloffset], ctimes(v1831, tbl[323 + tbloffset]));
   real2 v1988 = minus(v1881, v1841);
   real2 v1992 = plus(v1841, v1881);
   real2 v1703 = minusplus(uminus(v1699), v1700);
   real2 v1701 = minusplus(v1699, v1700);
   real2 v1717 = ctimesminusplus(reverse(v1703), tbl[304 + tbloffset], ctimes(v1703, tbl[305 + tbloffset]));
   real2 v1711 = ctimesminusplus(reverse(v1701), tbl[302 + tbloffset], ctimes(v1701, tbl[303 + tbloffset]));
   real2 v2730 = plus(v2570, v2571);
   real2 v2726 = minus(v2571, v2570);
   real2 v1412 = minus(v1303, v1263);
   real2 v1416 = plus(v1263, v1303);
   real2 v63 = load(in, 61 << inShift);
   real2 v127 = load(in, 125 << inShift);
   real2 v717 = plus(v63, v127);
   real2 v711 = reverse(minus(v127, v63));
   real2 v95 = load(in, 93 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v712 = minus(v95, v31);
   real2 v716 = plus(v31, v95);
   real2 v1037 = plus(v716, v717);
   real2 v1031 = reverse(minus(v717, v716));
   real2 v79 = load(in, 77 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v396 = plus(v15, v79);
   real2 v392 = minus(v79, v15);
   real2 v111 = load(in, 109 << inShift);
   real2 v47 = load(in, 45 << inShift);
   real2 v397 = plus(v47, v111);
   real2 v391 = reverse(minus(v111, v47));
   real2 v1032 = minus(v397, v396);
   real2 v1036 = plus(v396, v397);
   real2 v1033 = minusplus(v1031, v1032);
   real2 v1035 = minusplus(uminus(v1031), v1032);
   real2 v1049 = ctimesminusplus(reverse(v1035), tbl[184 + tbloffset], ctimes(v1035, tbl[185 + tbloffset]));
   real2 v1043 = ctimesminusplus(reverse(v1033), tbl[182 + tbloffset], ctimes(v1033, tbl[183 + tbloffset]));
   real2 v1197 = plus(v1036, v1037);
   real2 v1191 = reverse(minus(v1037, v1036));
   real2 v23 = load(in, 21 << inShift);
   real2 v87 = load(in, 85 << inShift);
   real2 v556 = plus(v23, v87);
   real2 v552 = minus(v87, v23);
   real2 v119 = load(in, 117 << inShift);
   real2 v55 = load(in, 53 << inShift);
   real2 v557 = plus(v55, v119);
   real2 v551 = reverse(minus(v119, v55));
   real2 v877 = plus(v556, v557);
   real2 v871 = reverse(minus(v557, v556));
   real2 v7 = load(in, 5 << inShift);
   real2 v71 = load(in, 69 << inShift);
   real2 v232 = minus(v71, v7);
   real2 v236 = plus(v7, v71);
   real2 v103 = load(in, 101 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v237 = plus(v39, v103);
   real2 v231 = reverse(minus(v103, v39));
   real2 v876 = plus(v236, v237);
   real2 v872 = minus(v237, v236);
   real2 v1192 = minus(v877, v876);
   real2 v1196 = plus(v876, v877);
   real2 v1271 = reverse(minus(v1197, v1196));
   real2 v1277 = plus(v1196, v1197);
   real2 v875 = minusplus(uminus(v871), v872);
   real2 v873 = minusplus(v871, v872);
   real2 v883 = ctimesminusplus(reverse(v873), tbl[150 + tbloffset], ctimes(v873, tbl[151 + tbloffset]));
   real2 v1639 = reverse(minus(v1043, v883));
   real2 v1645 = plus(v883, v1043);
   real2 v1195 = minusplus(uminus(v1191), v1192);
   real2 v1193 = minusplus(v1191, v1192);
   real2 v1209 = ctimesminusplus(reverse(v1195), tbl[216 + tbloffset], ctimes(v1195, tbl[217 + tbloffset]));
   real2 v1203 = ctimesminusplus(reverse(v1193), tbl[214 + tbloffset], ctimes(v1193, tbl[215 + tbloffset]));
   real2 v83 = load(in, 81 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v476 = plus(v19, v83);
   real2 v472 = minus(v83, v19);
   real2 v51 = load(in, 49 << inShift);
   real2 v115 = load(in, 113 << inShift);
   real2 v477 = plus(v51, v115);
   real2 v471 = reverse(minus(v115, v51));
   real2 v797 = plus(v476, v477);
   real2 v791 = reverse(minus(v477, v476));
   real2 v3 = load(in, 1 << inShift);
   real2 v67 = load(in, 65 << inShift);
   real2 v156 = plus(v3, v67);
   real2 v152 = minus(v67, v3);
   real2 v35 = load(in, 33 << inShift);
   real2 v99 = load(in, 97 << inShift);
   real2 v157 = plus(v35, v99);
   real2 v151 = reverse(minus(v99, v35));
   real2 v792 = minus(v157, v156);
   real2 v796 = plus(v156, v157);
   real2 v793 = minusplus(v791, v792);
   real2 v795 = minusplus(uminus(v791), v792);
   real2 v803 = ctimesminusplus(reverse(v793), tbl[134 + tbloffset], ctimes(v793, tbl[135 + tbloffset]));
   real2 v1112 = minus(v797, v796);
   real2 v1116 = plus(v796, v797);
   real2 v107 = load(in, 105 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v317 = plus(v43, v107);
   real2 v311 = reverse(minus(v107, v43));
   real2 v75 = load(in, 73 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v316 = plus(v11, v75);
   real2 v312 = minus(v75, v11);
   real2 v956 = plus(v316, v317);
   real2 v952 = minus(v317, v316);
   real2 v59 = load(in, 57 << inShift);
   real2 v123 = load(in, 121 << inShift);
   real2 v631 = reverse(minus(v123, v59));
   real2 v637 = plus(v59, v123);
   real2 v27 = load(in, 25 << inShift);
   real2 v91 = load(in, 89 << inShift);
   real2 v636 = plus(v27, v91);
   real2 v632 = minus(v91, v27);
   real2 v957 = plus(v636, v637);
   real2 v951 = reverse(minus(v637, v636));
   real2 v1111 = reverse(minus(v957, v956));
   real2 v1117 = plus(v956, v957);
   real2 v1276 = plus(v1116, v1117);
   real2 v1272 = minus(v1117, v1116);
   real2 v1275 = minusplus(uminus(v1271), v1272);
   real2 v1273 = minusplus(v1271, v1272);
   real2 v1283 = ctimesminusplus(reverse(v1273), tbl[230 + tbloffset], ctimes(v1273, tbl[231 + tbloffset]));
   real2 v1352 = minus(v1277, v1276);
   real2 v1356 = plus(v1276, v1277);
   real2 v1289 = ctimesminusplus(reverse(v1275), tbl[232 + tbloffset], ctimes(v1275, tbl[233 + tbloffset]));
   real2 v1115 = minusplus(uminus(v1111), v1112);
   real2 v1113 = minusplus(v1111, v1112);
   real2 v1123 = ctimesminusplus(reverse(v1113), tbl[198 + tbloffset], ctimes(v1113, tbl[199 + tbloffset]));
   real2 v1129 = ctimesminusplus(reverse(v1115), tbl[200 + tbloffset], ctimes(v1115, tbl[201 + tbloffset]));
   real2 v1488 = plus(v1123, v1203);
   real2 v1484 = minus(v1203, v1123);
   real2 v1566 = plus(v1129, v1209);
   real2 v1562 = minus(v1209, v1129);
   real2 v85 = load(in, 83 << inShift);
   real2 v21 = load(in, 19 << inShift);
   real2 v512 = minus(v85, v21);
   real2 v516 = plus(v21, v85);
   real2 v117 = load(in, 115 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v517 = plus(v53, v117);
   real2 v511 = reverse(minus(v117, v53));
   real2 v831 = reverse(minus(v517, v516));
   real2 v837 = plus(v516, v517);
   real2 v69 = load(in, 67 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v192 = minus(v69, v5);
   real2 v196 = plus(v5, v69);
   real2 v37 = load(in, 35 << inShift);
   real2 v101 = load(in, 99 << inShift);
   real2 v197 = plus(v37, v101);
   real2 v191 = reverse(minus(v101, v37));
   real2 v832 = minus(v197, v196);
   real2 v836 = plus(v196, v197);
   real2 v1152 = minus(v837, v836);
   real2 v1156 = plus(v836, v837);
   real2 v61 = load(in, 59 << inShift);
   real2 v125 = load(in, 123 << inShift);
   real2 v677 = plus(v61, v125);
   real2 v671 = reverse(minus(v125, v61));
   real2 v29 = load(in, 27 << inShift);
   real2 v93 = load(in, 91 << inShift);
   real2 v672 = minus(v93, v29);
   real2 v676 = plus(v29, v93);
   real2 v997 = plus(v676, v677);
   real2 v991 = reverse(minus(v677, v676));
   real2 v109 = load(in, 107 << inShift);
   real2 v45 = load(in, 43 << inShift);
   real2 v357 = plus(v45, v109);
   real2 v351 = reverse(minus(v109, v45));
   real2 v77 = load(in, 75 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v352 = minus(v77, v13);
   real2 v356 = plus(v13, v77);
   real2 v992 = minus(v357, v356);
   real2 v996 = plus(v356, v357);
   real2 v1157 = plus(v996, v997);
   real2 v1151 = reverse(minus(v997, v996));
   real2 v1155 = minusplus(uminus(v1151), v1152);
   real2 v1153 = minusplus(v1151, v1152);
   real2 v1163 = ctimesminusplus(reverse(v1153), tbl[206 + tbloffset], ctimes(v1153, tbl[207 + tbloffset]));
   real2 v1316 = plus(v1156, v1157);
   real2 v1312 = minus(v1157, v1156);
   real2 v41 = load(in, 39 << inShift);
   real2 v105 = load(in, 103 << inShift);
   real2 v277 = plus(v41, v105);
   real2 v271 = reverse(minus(v105, v41));
   real2 v9 = load(in, 7 << inShift);
   real2 v73 = load(in, 71 << inShift);
   real2 v276 = plus(v9, v73);
   real2 v272 = minus(v73, v9);
   real2 v916 = plus(v276, v277);
   real2 v912 = minus(v277, v276);
   real2 v89 = load(in, 87 << inShift);
   real2 v25 = load(in, 23 << inShift);
   real2 v592 = minus(v89, v25);
   real2 v596 = plus(v25, v89);
   real2 v57 = load(in, 55 << inShift);
   real2 v121 = load(in, 119 << inShift);
   real2 v591 = reverse(minus(v121, v57));
   real2 v597 = plus(v57, v121);
   real2 v911 = reverse(minus(v597, v596));
   real2 v917 = plus(v596, v597);
   real2 v1236 = plus(v916, v917);
   real2 v1232 = minus(v917, v916);
   real2 v81 = load(in, 79 << inShift);
   real2 v17 = load(in, 15 << inShift);
   real2 v432 = minus(v81, v17);
   real2 v436 = plus(v17, v81);
   real2 v113 = load(in, 111 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v437 = plus(v49, v113);
   real2 v431 = reverse(minus(v113, v49));
   real2 v1072 = minus(v437, v436);
   real2 v1076 = plus(v436, v437);
   real2 v65 = load(in, 63 << inShift);
   real2 v129 = load(in, 127 << inShift);
   real2 v757 = plus(v65, v129);
   real2 v751 = reverse(minus(v129, v65));
   real2 v97 = load(in, 95 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v752 = minus(v97, v33);
   real2 v756 = plus(v33, v97);
   real2 v1077 = plus(v756, v757);
   real2 v1071 = reverse(minus(v757, v756));
   real2 v1231 = reverse(minus(v1077, v1076));
   real2 v1237 = plus(v1076, v1077);
   real2 v1317 = plus(v1236, v1237);
   real2 v1311 = reverse(minus(v1237, v1236));
   real2 v1351 = reverse(minus(v1317, v1316));
   real2 v1357 = plus(v1316, v1317);
   real2 v1371 = reverse(minus(v1357, v1356));
   real2 v1377 = plus(v1356, v1357);
   store(out, 0 << outShift, plus(v1376, v1377));
   real2 v1390 = minus(v1376, v1377);
   store(out, 64 << outShift, ctimesminusplus(v1390, tbl[0 + tbloffset], ctimes(reverse(v1390), tbl[1 + tbloffset])));
   real2 v1353 = minusplus(v1351, v1352);
   real2 v1355 = minusplus(uminus(v1351), v1352);
   real2 v1369 = ctimesminusplus(reverse(v1355), tbl[248 + tbloffset], ctimes(v1355, tbl[249 + tbloffset]));
   store(out, 48 << outShift, plus(v1349, v1369));
   real2 v1404 = minus(v1349, v1369);
   store(out, 112 << outShift, ctimesminusplus(v1404, tbl[0 + tbloffset], ctimes(reverse(v1404), tbl[1 + tbloffset])));
   real2 v1363 = ctimesminusplus(reverse(v1353), tbl[246 + tbloffset], ctimes(v1353, tbl[247 + tbloffset]));
   store(out, 16 << outShift, plus(v1343, v1363));
   real2 v1398 = minus(v1343, v1363);
   store(out, 80 << outShift, ctimesminusplus(v1398, tbl[0 + tbloffset], ctimes(reverse(v1398), tbl[1 + tbloffset])));
   real2 v1373 = minusplus(v1371, v1372);
   real2 v1375 = minusplus(uminus(v1371), v1372);
   store(out, 96 << outShift, ctimesminusplus(reverse(v1375), tbl[252 + tbloffset], ctimes(v1375, tbl[253 + tbloffset])));
   store(out, 32 << outShift, ctimesminusplus(reverse(v1373), tbl[250 + tbloffset], ctimes(v1373, tbl[251 + tbloffset])));
   real2 v1313 = minusplus(v1311, v1312);
   real2 v1315 = minusplus(uminus(v1311), v1312);
   real2 v1323 = ctimesminusplus(reverse(v1313), tbl[238 + tbloffset], ctimes(v1313, tbl[239 + tbloffset]));
   real2 v1417 = plus(v1283, v1323);
   real2 v1411 = reverse(minus(v1323, v1283));
   store(out, 8 << outShift, plus(v1416, v1417));
   real2 v1430 = minus(v1416, v1417);
   store(out, 72 << outShift, ctimesminusplus(v1430, tbl[0 + tbloffset], ctimes(reverse(v1430), tbl[1 + tbloffset])));
   real2 v1413 = minusplus(v1411, v1412);
   real2 v1415 = minusplus(uminus(v1411), v1412);
   store(out, 104 << outShift, ctimesminusplus(reverse(v1415), tbl[256 + tbloffset], ctimes(v1415, tbl[257 + tbloffset])));
   store(out, 40 << outShift, ctimesminusplus(reverse(v1413), tbl[254 + tbloffset], ctimes(v1413, tbl[255 + tbloffset])));
   real2 v1329 = ctimesminusplus(reverse(v1315), tbl[240 + tbloffset], ctimes(v1315, tbl[241 + tbloffset]));
   real2 v1443 = plus(v1289, v1329);
   real2 v1437 = reverse(minus(v1329, v1289));
   store(out, 24 << outShift, plus(v1442, v1443));
   real2 v1456 = minus(v1442, v1443);
   store(out, 88 << outShift, ctimesminusplus(v1456, tbl[0 + tbloffset], ctimes(reverse(v1456), tbl[1 + tbloffset])));
   real2 v1441 = minusplus(uminus(v1437), v1438);
   real2 v1439 = minusplus(v1437, v1438);
   store(out, 120 << outShift, ctimesminusplus(reverse(v1441), tbl[260 + tbloffset], ctimes(v1441, tbl[261 + tbloffset])));
   store(out, 56 << outShift, ctimesminusplus(reverse(v1439), tbl[258 + tbloffset], ctimes(v1439, tbl[259 + tbloffset])));
   real2 v1235 = minusplus(uminus(v1231), v1232);
   real2 v1233 = minusplus(v1231, v1232);
   real2 v1243 = ctimesminusplus(reverse(v1233), tbl[222 + tbloffset], ctimes(v1233, tbl[223 + tbloffset]));
   real2 v1489 = plus(v1163, v1243);
   real2 v1483 = reverse(minus(v1243, v1163));
   real2 v1509 = plus(v1488, v1489);
   real2 v1503 = reverse(minus(v1489, v1488));
   store(out, 4 << outShift, plus(v1508, v1509));
   real2 v1522 = minus(v1508, v1509);
   store(out, 68 << outShift, ctimesminusplus(v1522, tbl[0 + tbloffset], ctimes(reverse(v1522), tbl[1 + tbloffset])));
   real2 v1507 = minusplus(uminus(v1503), v1504);
   real2 v1505 = minusplus(v1503, v1504);
   store(out, 36 << outShift, ctimesminusplus(reverse(v1505), tbl[270 + tbloffset], ctimes(v1505, tbl[271 + tbloffset])));
   store(out, 100 << outShift, ctimesminusplus(reverse(v1507), tbl[272 + tbloffset], ctimes(v1507, tbl[273 + tbloffset])));
   real2 v1485 = minusplus(v1483, v1484);
   real2 v1487 = minusplus(uminus(v1483), v1484);
   real2 v1501 = ctimesminusplus(reverse(v1487), tbl[268 + tbloffset], ctimes(v1487, tbl[269 + tbloffset]));
   store(out, 52 << outShift, plus(v1481, v1501));
   real2 v1534 = minus(v1481, v1501);
   store(out, 116 << outShift, ctimesminusplus(v1534, tbl[0 + tbloffset], ctimes(reverse(v1534), tbl[1 + tbloffset])));
   real2 v1495 = ctimesminusplus(reverse(v1485), tbl[266 + tbloffset], ctimes(v1485, tbl[267 + tbloffset]));
   store(out, 20 << outShift, plus(v1475, v1495));
   real2 v1528 = minus(v1475, v1495);
   store(out, 84 << outShift, ctimesminusplus(v1528, tbl[0 + tbloffset], ctimes(reverse(v1528), tbl[1 + tbloffset])));
   real2 v1249 = ctimesminusplus(reverse(v1235), tbl[224 + tbloffset], ctimes(v1235, tbl[225 + tbloffset]));
   real2 v1169 = ctimesminusplus(reverse(v1155), tbl[208 + tbloffset], ctimes(v1155, tbl[209 + tbloffset]));
   real2 v1567 = plus(v1169, v1249);
   real2 v1561 = reverse(minus(v1249, v1169));
   real2 v1581 = reverse(minus(v1567, v1566));
   real2 v1587 = plus(v1566, v1567);
   store(out, 12 << outShift, plus(v1586, v1587));
   real2 v1600 = minus(v1586, v1587);
   store(out, 76 << outShift, ctimesminusplus(v1600, tbl[0 + tbloffset], ctimes(reverse(v1600), tbl[1 + tbloffset])));
   real2 v1583 = minusplus(v1581, v1582);
   store(out, 44 << outShift, ctimesminusplus(reverse(v1583), tbl[282 + tbloffset], ctimes(v1583, tbl[283 + tbloffset])));
   real2 v1585 = minusplus(uminus(v1581), v1582);
   store(out, 108 << outShift, ctimesminusplus(reverse(v1585), tbl[284 + tbloffset], ctimes(v1585, tbl[285 + tbloffset])));
   real2 v1565 = minusplus(uminus(v1561), v1562);
   real2 v1563 = minusplus(v1561, v1562);
   real2 v1579 = ctimesminusplus(reverse(v1565), tbl[280 + tbloffset], ctimes(v1565, tbl[281 + tbloffset]));
   store(out, 60 << outShift, plus(v1559, v1579));
   real2 v1612 = minus(v1559, v1579);
   store(out, 124 << outShift, ctimesminusplus(v1612, tbl[0 + tbloffset], ctimes(reverse(v1612), tbl[1 + tbloffset])));
   real2 v1573 = ctimesminusplus(reverse(v1563), tbl[278 + tbloffset], ctimes(v1563, tbl[279 + tbloffset]));
   store(out, 28 << outShift, plus(v1553, v1573));
   real2 v1606 = minus(v1553, v1573);
   store(out, 92 << outShift, ctimesminusplus(v1606, tbl[0 + tbloffset], ctimes(reverse(v1606), tbl[1 + tbloffset])));
   real2 v833 = minusplus(v831, v832);
   real2 v835 = minusplus(uminus(v831), v832);
   real2 v955 = minusplus(uminus(v951), v952);
   real2 v953 = minusplus(v951, v952);
   real2 v963 = ctimesminusplus(reverse(v953), tbl[166 + tbloffset], ctimes(v953, tbl[167 + tbloffset]));
   real2 v995 = minusplus(uminus(v991), v992);
   real2 v993 = minusplus(v991, v992);
   real2 v1003 = ctimesminusplus(reverse(v993), tbl[174 + tbloffset], ctimes(v993, tbl[175 + tbloffset]));
   real2 v843 = ctimesminusplus(reverse(v833), tbl[142 + tbloffset], ctimes(v833, tbl[143 + tbloffset]));
   real2 v1640 = minus(v963, v803);
   real2 v1644 = plus(v803, v963);
   real2 v1680 = minus(v1003, v843);
   real2 v1684 = plus(v843, v1003);
   real2 v1641 = minusplus(v1639, v1640);
   real2 v1643 = minusplus(uminus(v1639), v1640);
   real2 v1657 = ctimesminusplus(reverse(v1643), tbl[292 + tbloffset], ctimes(v1643, tbl[293 + tbloffset]));
   real2 v913 = minusplus(v911, v912);
   real2 v915 = minusplus(uminus(v911), v912);
   real2 v1073 = minusplus(v1071, v1072);
   real2 v1075 = minusplus(uminus(v1071), v1072);
   real2 v923 = ctimesminusplus(reverse(v913), tbl[158 + tbloffset], ctimes(v913, tbl[159 + tbloffset]));
   real2 v1083 = ctimesminusplus(reverse(v1073), tbl[190 + tbloffset], ctimes(v1073, tbl[191 + tbloffset]));
   real2 v1685 = plus(v923, v1083);
   real2 v1679 = reverse(minus(v1083, v923));
   real2 v1681 = minusplus(v1679, v1680);
   real2 v1683 = minusplus(uminus(v1679), v1680);
   real2 v1697 = ctimesminusplus(reverse(v1683), tbl[300 + tbloffset], ctimes(v1683, tbl[301 + tbloffset]));
   real2 v1809 = plus(v1657, v1697);
   real2 v1803 = reverse(minus(v1697, v1657));
   store(out, 26 << outShift, plus(v1808, v1809));
   real2 v1822 = minus(v1808, v1809);
   store(out, 90 << outShift, ctimesminusplus(v1822, tbl[0 + tbloffset], ctimes(reverse(v1822), tbl[1 + tbloffset])));
   real2 v1807 = minusplus(uminus(v1803), v1804);
   real2 v1805 = minusplus(v1803, v1804);
   store(out, 58 << outShift, ctimesminusplus(reverse(v1805), tbl[318 + tbloffset], ctimes(v1805, tbl[319 + tbloffset])));
   store(out, 122 << outShift, ctimesminusplus(reverse(v1807), tbl[320 + tbloffset], ctimes(v1807, tbl[321 + tbloffset])));
   real2 v1651 = ctimesminusplus(reverse(v1641), tbl[290 + tbloffset], ctimes(v1641, tbl[291 + tbloffset]));
   real2 v1691 = ctimesminusplus(reverse(v1681), tbl[298 + tbloffset], ctimes(v1681, tbl[299 + tbloffset]));
   real2 v1783 = plus(v1651, v1691);
   real2 v1777 = reverse(minus(v1691, v1651));
   real2 v1779 = minusplus(v1777, v1778);
   real2 v1781 = minusplus(uminus(v1777), v1778);
   store(out, 106 << outShift, ctimesminusplus(reverse(v1781), tbl[316 + tbloffset], ctimes(v1781, tbl[317 + tbloffset])));
   store(out, 42 << outShift, ctimesminusplus(reverse(v1779), tbl[314 + tbloffset], ctimes(v1779, tbl[315 + tbloffset])));
   store(out, 10 << outShift, plus(v1782, v1783));
   real2 v1796 = minus(v1782, v1783);
   store(out, 74 << outShift, ctimesminusplus(v1796, tbl[0 + tbloffset], ctimes(reverse(v1796), tbl[1 + tbloffset])));
   real2 v1720 = minus(v1645, v1644);
   real2 v1724 = plus(v1644, v1645);
   real2 v1719 = reverse(minus(v1685, v1684));
   real2 v1725 = plus(v1684, v1685);
   real2 v1745 = plus(v1724, v1725);
   real2 v1739 = reverse(minus(v1725, v1724));
   store(out, 2 << outShift, plus(v1744, v1745));
   real2 v1758 = minus(v1744, v1745);
   store(out, 66 << outShift, ctimesminusplus(v1758, tbl[0 + tbloffset], ctimes(reverse(v1758), tbl[1 + tbloffset])));
   real2 v1741 = minusplus(v1739, v1740);
   real2 v1743 = minusplus(uminus(v1739), v1740);
   store(out, 98 << outShift, ctimesminusplus(reverse(v1743), tbl[312 + tbloffset], ctimes(v1743, tbl[313 + tbloffset])));
   store(out, 34 << outShift, ctimesminusplus(reverse(v1741), tbl[310 + tbloffset], ctimes(v1741, tbl[311 + tbloffset])));
   real2 v1723 = minusplus(uminus(v1719), v1720);
   real2 v1721 = minusplus(v1719, v1720);
   real2 v1737 = ctimesminusplus(reverse(v1723), tbl[308 + tbloffset], ctimes(v1723, tbl[309 + tbloffset]));
   store(out, 50 << outShift, plus(v1717, v1737));
   real2 v1770 = minus(v1717, v1737);
   store(out, 114 << outShift, ctimesminusplus(v1770, tbl[0 + tbloffset], ctimes(reverse(v1770), tbl[1 + tbloffset])));
   real2 v1731 = ctimesminusplus(reverse(v1721), tbl[306 + tbloffset], ctimes(v1721, tbl[307 + tbloffset]));
   store(out, 18 << outShift, plus(v1711, v1731));
   real2 v1764 = minus(v1711, v1731);
   store(out, 82 << outShift, ctimesminusplus(v1764, tbl[0 + tbloffset], ctimes(reverse(v1764), tbl[1 + tbloffset])));
   real2 v809 = ctimesminusplus(reverse(v795), tbl[136 + tbloffset], ctimes(v795, tbl[137 + tbloffset]));
   real2 v969 = ctimesminusplus(reverse(v955), tbl[168 + tbloffset], ctimes(v955, tbl[169 + tbloffset]));
   real2 v1850 = minus(v969, v809);
   real2 v1854 = plus(v809, v969);
   real2 v849 = ctimesminusplus(reverse(v835), tbl[144 + tbloffset], ctimes(v835, tbl[145 + tbloffset]));
   real2 v929 = ctimesminusplus(reverse(v915), tbl[160 + tbloffset], ctimes(v915, tbl[161 + tbloffset]));
   real2 v889 = ctimesminusplus(reverse(v875), tbl[152 + tbloffset], ctimes(v875, tbl[153 + tbloffset]));
   real2 v1089 = ctimesminusplus(reverse(v1075), tbl[192 + tbloffset], ctimes(v1075, tbl[193 + tbloffset]));
   real2 v1009 = ctimesminusplus(reverse(v995), tbl[176 + tbloffset], ctimes(v995, tbl[177 + tbloffset]));
   real2 v1890 = minus(v1009, v849);
   real2 v1894 = plus(v849, v1009);
   real2 v1849 = reverse(minus(v1049, v889));
   real2 v1855 = plus(v889, v1049);
   real2 v1930 = minus(v1855, v1854);
   real2 v1934 = plus(v1854, v1855);
   real2 v1895 = plus(v929, v1089);
   real2 v1889 = reverse(minus(v1089, v929));
   real2 v1929 = reverse(minus(v1895, v1894));
   real2 v1935 = plus(v1894, v1895);
   real2 v1955 = plus(v1934, v1935);
   real2 v1949 = reverse(minus(v1935, v1934));
   store(out, 6 << outShift, plus(v1954, v1955));
   real2 v1968 = minus(v1954, v1955);
   store(out, 70 << outShift, ctimesminusplus(v1968, tbl[0 + tbloffset], ctimes(reverse(v1968), tbl[1 + tbloffset])));
   real2 v1951 = minusplus(v1949, v1950);
   store(out, 38 << outShift, ctimesminusplus(reverse(v1951), tbl[346 + tbloffset], ctimes(v1951, tbl[347 + tbloffset])));
   real2 v1953 = minusplus(uminus(v1949), v1950);
   store(out, 102 << outShift, ctimesminusplus(reverse(v1953), tbl[348 + tbloffset], ctimes(v1953, tbl[349 + tbloffset])));
   real2 v1931 = minusplus(v1929, v1930);
   real2 v1933 = minusplus(uminus(v1929), v1930);
   real2 v1947 = ctimesminusplus(reverse(v1933), tbl[344 + tbloffset], ctimes(v1933, tbl[345 + tbloffset]));
   store(out, 54 << outShift, plus(v1927, v1947));
   real2 v1980 = minus(v1927, v1947);
   store(out, 118 << outShift, ctimesminusplus(v1980, tbl[0 + tbloffset], ctimes(reverse(v1980), tbl[1 + tbloffset])));
   real2 v1941 = ctimesminusplus(reverse(v1931), tbl[342 + tbloffset], ctimes(v1931, tbl[343 + tbloffset]));
   store(out, 22 << outShift, plus(v1921, v1941));
   real2 v1974 = minus(v1921, v1941);
   store(out, 86 << outShift, ctimesminusplus(v1974, tbl[0 + tbloffset], ctimes(reverse(v1974), tbl[1 + tbloffset])));
   real2 v1851 = minusplus(v1849, v1850);
   real2 v1853 = minusplus(uminus(v1849), v1850);
   real2 v1867 = ctimesminusplus(reverse(v1853), tbl[328 + tbloffset], ctimes(v1853, tbl[329 + tbloffset]));
   real2 v1891 = minusplus(v1889, v1890);
   real2 v1893 = minusplus(uminus(v1889), v1890);
   real2 v1907 = ctimesminusplus(reverse(v1893), tbl[336 + tbloffset], ctimes(v1893, tbl[337 + tbloffset]));
   real2 v2019 = plus(v1867, v1907);
   real2 v2013 = reverse(minus(v1907, v1867));
   store(out, 30 << outShift, plus(v2018, v2019));
   real2 v2032 = minus(v2018, v2019);
   store(out, 94 << outShift, ctimesminusplus(v2032, tbl[0 + tbloffset], ctimes(reverse(v2032), tbl[1 + tbloffset])));
   real2 v2017 = minusplus(uminus(v2013), v2014);
   store(out, 126 << outShift, ctimesminusplus(reverse(v2017), tbl[356 + tbloffset], ctimes(v2017, tbl[357 + tbloffset])));
   real2 v2015 = minusplus(v2013, v2014);
   store(out, 62 << outShift, ctimesminusplus(reverse(v2015), tbl[354 + tbloffset], ctimes(v2015, tbl[355 + tbloffset])));
   real2 v1861 = ctimesminusplus(reverse(v1851), tbl[326 + tbloffset], ctimes(v1851, tbl[327 + tbloffset]));
   real2 v1901 = ctimesminusplus(reverse(v1891), tbl[334 + tbloffset], ctimes(v1891, tbl[335 + tbloffset]));
   real2 v1993 = plus(v1861, v1901);
   real2 v1987 = reverse(minus(v1901, v1861));
   store(out, 14 << outShift, plus(v1992, v1993));
   real2 v2006 = minus(v1992, v1993);
   store(out, 78 << outShift, ctimesminusplus(v2006, tbl[0 + tbloffset], ctimes(reverse(v2006), tbl[1 + tbloffset])));
   real2 v1991 = minusplus(uminus(v1987), v1988);
   store(out, 110 << outShift, ctimesminusplus(reverse(v1991), tbl[352 + tbloffset], ctimes(v1991, tbl[353 + tbloffset])));
   real2 v1989 = minusplus(v1987, v1988);
   store(out, 46 << outShift, ctimesminusplus(reverse(v1989), tbl[350 + tbloffset], ctimes(v1989, tbl[351 + tbloffset])));
   real2 v593 = minusplus(v591, v592);
   real2 v595 = minusplus(uminus(v591), v592);
   real2 v473 = minusplus(v471, v472);
   real2 v475 = minusplus(uminus(v471), v472);
   real2 v555 = minusplus(uminus(v551), v552);
   real2 v553 = minusplus(v551, v552);
   real2 v609 = ctimesminusplus(reverse(v595), tbl[96 + tbloffset], ctimes(v595, tbl[97 + tbloffset]));
   real2 v195 = minusplus(uminus(v191), v192);
   real2 v193 = minusplus(v191, v192);
   real2 v275 = minusplus(uminus(v271), v272);
   real2 v273 = minusplus(v271, v272);
   real2 v673 = minusplus(v671, v672);
   real2 v675 = minusplus(uminus(v671), v672);
   real2 v689 = ctimesminusplus(reverse(v675), tbl[112 + tbloffset], ctimes(v675, tbl[113 + tbloffset]));
   real2 v209 = ctimesminusplus(reverse(v195), tbl[16 + tbloffset], ctimes(v195, tbl[17 + tbloffset]));
   real2 v289 = ctimesminusplus(reverse(v275), tbl[32 + tbloffset], ctimes(v275, tbl[33 + tbloffset]));
   real2 v755 = minusplus(uminus(v751), v752);
   real2 v753 = minusplus(v751, v752);
   real2 v435 = minusplus(uminus(v431), v432);
   real2 v433 = minusplus(v431, v432);
   real2 v513 = minusplus(v511, v512);
   real2 v515 = minusplus(uminus(v511), v512);
   real2 v529 = ctimesminusplus(reverse(v515), tbl[80 + tbloffset], ctimes(v515, tbl[81 + tbloffset]));
   real2 v353 = minusplus(v351, v352);
   real2 v355 = minusplus(uminus(v351), v352);
   real2 v369 = ctimesminusplus(reverse(v355), tbl[48 + tbloffset], ctimes(v355, tbl[49 + tbloffset]));
   real2 v2631 = plus(v369, v689);
   real2 v2625 = reverse(minus(v689, v369));
   real2 v449 = ctimesminusplus(reverse(v435), tbl[64 + tbloffset], ctimes(v435, tbl[65 + tbloffset]));
   real2 v2710 = plus(v289, v609);
   real2 v2706 = minus(v609, v289);
   real2 v2630 = plus(v209, v529);
   real2 v2626 = minus(v529, v209);
   real2 v2790 = plus(v2630, v2631);
   real2 v2786 = minus(v2631, v2630);
   real2 v713 = minusplus(v711, v712);
   real2 v715 = minusplus(uminus(v711), v712);
   real2 v769 = ctimesminusplus(reverse(v755), tbl[128 + tbloffset], ctimes(v755, tbl[129 + tbloffset]));
   real2 v2705 = reverse(minus(v769, v449));
   real2 v2711 = plus(v449, v769);
   real2 v313 = minusplus(v311, v312);
   real2 v315 = minusplus(uminus(v311), v312);
   real2 v393 = minusplus(v391, v392);
   real2 v395 = minusplus(uminus(v391), v392);
   real2 v409 = ctimesminusplus(reverse(v395), tbl[56 + tbloffset], ctimes(v395, tbl[57 + tbloffset]));
   real2 v729 = ctimesminusplus(reverse(v715), tbl[120 + tbloffset], ctimes(v715, tbl[121 + tbloffset]));
   real2 v329 = ctimesminusplus(reverse(v315), tbl[40 + tbloffset], ctimes(v315, tbl[41 + tbloffset]));
   real2 v489 = ctimesminusplus(reverse(v475), tbl[72 + tbloffset], ctimes(v475, tbl[73 + tbloffset]));
   real2 v153 = minusplus(v151, v152);
   real2 v155 = minusplus(uminus(v151), v152);
   real2 v169 = ctimesminusplus(reverse(v155), tbl[8 + tbloffset], ctimes(v155, tbl[9 + tbloffset]));
   real2 v2586 = minus(v489, v169);
   real2 v2590 = plus(v169, v489);
   real2 v233 = minusplus(v231, v232);
   real2 v235 = minusplus(uminus(v231), v232);
   real2 v633 = minusplus(v631, v632);
   real2 v635 = minusplus(uminus(v631), v632);
   real2 v649 = ctimesminusplus(reverse(v635), tbl[104 + tbloffset], ctimes(v635, tbl[105 + tbloffset]));
   real2 v249 = ctimesminusplus(reverse(v235), tbl[24 + tbloffset], ctimes(v235, tbl[25 + tbloffset]));
   real2 v569 = ctimesminusplus(reverse(v555), tbl[88 + tbloffset], ctimes(v555, tbl[89 + tbloffset]));
   real2 v2670 = plus(v249, v569);
   real2 v2666 = minus(v569, v249);
   real2 v2785 = reverse(minus(v2711, v2710));
   real2 v2791 = plus(v2710, v2711);
   real2 v2825 = reverse(minus(v2791, v2790));
   real2 v2831 = plus(v2790, v2791);
   real2 v2671 = plus(v409, v729);
   real2 v2665 = reverse(minus(v729, v409));
   real2 v2745 = reverse(minus(v2671, v2670));
   real2 v2751 = plus(v2670, v2671);
   real2 v2806 = minus(v2731, v2730);
   real2 v2810 = plus(v2730, v2731);
   real2 v2846 = minus(v2811, v2810);
   real2 v2850 = plus(v2810, v2811);
   real2 v2591 = plus(v329, v649);
   real2 v2585 = reverse(minus(v649, v329));
   real2 v2750 = plus(v2590, v2591);
   real2 v2746 = minus(v2591, v2590);
   real2 v2830 = plus(v2750, v2751);
   real2 v2826 = minus(v2751, v2750);
   real2 v2845 = reverse(minus(v2831, v2830));
   real2 v2851 = plus(v2830, v2831);
   store(out, 3 << outShift, plus(v2850, v2851));
   real2 v2864 = minus(v2850, v2851);
   store(out, 67 << outShift, ctimesminusplus(v2864, tbl[0 + tbloffset], ctimes(reverse(v2864), tbl[1 + tbloffset])));
   real2 v2849 = minusplus(uminus(v2845), v2846);
   real2 v2847 = minusplus(v2845, v2846);
   store(out, 35 << outShift, ctimesminusplus(reverse(v2847), tbl[506 + tbloffset], ctimes(v2847, tbl[507 + tbloffset])));
   store(out, 99 << outShift, ctimesminusplus(reverse(v2849), tbl[508 + tbloffset], ctimes(v2849, tbl[509 + tbloffset])));
   real2 v2827 = minusplus(v2825, v2826);
   real2 v2829 = minusplus(uminus(v2825), v2826);
   real2 v2837 = ctimesminusplus(reverse(v2827), tbl[502 + tbloffset], ctimes(v2827, tbl[503 + tbloffset]));
   real2 v2809 = minusplus(uminus(v2805), v2806);
   real2 v2807 = minusplus(v2805, v2806);
   real2 v2817 = ctimesminusplus(reverse(v2807), tbl[498 + tbloffset], ctimes(v2807, tbl[499 + tbloffset]));
   store(out, 19 << outShift, plus(v2817, v2837));
   real2 v2870 = minus(v2817, v2837);
   store(out, 83 << outShift, ctimesminusplus(v2870, tbl[0 + tbloffset], ctimes(reverse(v2870), tbl[1 + tbloffset])));
   real2 v2823 = ctimesminusplus(reverse(v2809), tbl[500 + tbloffset], ctimes(v2809, tbl[501 + tbloffset]));
   real2 v2843 = ctimesminusplus(reverse(v2829), tbl[504 + tbloffset], ctimes(v2829, tbl[505 + tbloffset]));
   store(out, 51 << outShift, plus(v2823, v2843));
   real2 v2876 = minus(v2823, v2843);
   store(out, 115 << outShift, ctimesminusplus(v2876, tbl[0 + tbloffset], ctimes(reverse(v2876), tbl[1 + tbloffset])));
   real2 v2787 = minusplus(v2785, v2786);
   real2 v2789 = minusplus(uminus(v2785), v2786);
   real2 v2803 = ctimesminusplus(reverse(v2789), tbl[496 + tbloffset], ctimes(v2789, tbl[497 + tbloffset]));
   real2 v2727 = minusplus(v2725, v2726);
   real2 v2729 = minusplus(uminus(v2725), v2726);
   real2 v2743 = ctimesminusplus(reverse(v2729), tbl[484 + tbloffset], ctimes(v2729, tbl[485 + tbloffset]));
   real2 v2914 = plus(v2743, v2783);
   real2 v2910 = minus(v2783, v2743);
   real2 v2749 = minusplus(uminus(v2745), v2746);
   real2 v2747 = minusplus(v2745, v2746);
   real2 v2763 = ctimesminusplus(reverse(v2749), tbl[488 + tbloffset], ctimes(v2749, tbl[489 + tbloffset]));
   real2 v2909 = reverse(minus(v2803, v2763));
   real2 v2915 = plus(v2763, v2803);
   store(out, 27 << outShift, plus(v2914, v2915));
   real2 v2928 = minus(v2914, v2915);
   store(out, 91 << outShift, ctimesminusplus(v2928, tbl[0 + tbloffset], ctimes(reverse(v2928), tbl[1 + tbloffset])));
   real2 v2913 = minusplus(uminus(v2909), v2910);
   store(out, 123 << outShift, ctimesminusplus(reverse(v2913), tbl[516 + tbloffset], ctimes(v2913, tbl[517 + tbloffset])));
   real2 v2911 = minusplus(v2909, v2910);
   store(out, 59 << outShift, ctimesminusplus(reverse(v2911), tbl[514 + tbloffset], ctimes(v2911, tbl[515 + tbloffset])));
   real2 v2737 = ctimesminusplus(reverse(v2727), tbl[482 + tbloffset], ctimes(v2727, tbl[483 + tbloffset]));
   real2 v2888 = plus(v2737, v2777);
   real2 v2884 = minus(v2777, v2737);
   real2 v2797 = ctimesminusplus(reverse(v2787), tbl[494 + tbloffset], ctimes(v2787, tbl[495 + tbloffset]));
   real2 v2757 = ctimesminusplus(reverse(v2747), tbl[486 + tbloffset], ctimes(v2747, tbl[487 + tbloffset]));
   real2 v2889 = plus(v2757, v2797);
   real2 v2883 = reverse(minus(v2797, v2757));
   store(out, 11 << outShift, plus(v2888, v2889));
   real2 v2902 = minus(v2888, v2889);
   store(out, 75 << outShift, ctimesminusplus(v2902, tbl[0 + tbloffset], ctimes(reverse(v2902), tbl[1 + tbloffset])));
   real2 v2887 = minusplus(uminus(v2883), v2884);
   store(out, 107 << outShift, ctimesminusplus(reverse(v2887), tbl[512 + tbloffset], ctimes(v2887, tbl[513 + tbloffset])));
   real2 v2885 = minusplus(v2883, v2884);
   store(out, 43 << outShift, ctimesminusplus(reverse(v2885), tbl[510 + tbloffset], ctimes(v2885, tbl[511 + tbloffset])));
   real2 v2669 = minusplus(uminus(v2665), v2666);
   real2 v2667 = minusplus(v2665, v2666);
   real2 v2707 = minusplus(v2705, v2706);
   real2 v2709 = minusplus(uminus(v2705), v2706);
   real2 v2717 = ctimesminusplus(reverse(v2707), tbl[478 + tbloffset], ctimes(v2707, tbl[479 + tbloffset]));
   real2 v2627 = minusplus(v2625, v2626);
   real2 v2629 = minusplus(uminus(v2625), v2626);
   real2 v2637 = ctimesminusplus(reverse(v2627), tbl[462 + tbloffset], ctimes(v2627, tbl[463 + tbloffset]));
   real2 v2961 = plus(v2637, v2717);
   real2 v2955 = reverse(minus(v2717, v2637));
   real2 v2649 = minusplus(uminus(v2645), v2646);
   real2 v2647 = minusplus(v2645, v2646);
   real2 v2569 = minusplus(uminus(v2565), v2566);
   real2 v2567 = minusplus(v2565, v2566);
   real2 v2577 = ctimesminusplus(reverse(v2567), tbl[450 + tbloffset], ctimes(v2567, tbl[451 + tbloffset]));
   real2 v2657 = ctimesminusplus(reverse(v2647), tbl[466 + tbloffset], ctimes(v2647, tbl[467 + tbloffset]));
   real2 v2936 = minus(v2657, v2577);
   real2 v2940 = plus(v2577, v2657);
   real2 v2976 = minus(v2941, v2940);
   real2 v2980 = plus(v2940, v2941);
   real2 v2677 = ctimesminusplus(reverse(v2667), tbl[470 + tbloffset], ctimes(v2667, tbl[471 + tbloffset]));
   real2 v2587 = minusplus(v2585, v2586);
   real2 v2589 = minusplus(uminus(v2585), v2586);
   real2 v2597 = ctimesminusplus(reverse(v2587), tbl[454 + tbloffset], ctimes(v2587, tbl[455 + tbloffset]));
   real2 v2956 = minus(v2677, v2597);
   real2 v2960 = plus(v2597, v2677);
   real2 v2975 = reverse(minus(v2961, v2960));
   real2 v2981 = plus(v2960, v2961);
   store(out, 7 << outShift, plus(v2980, v2981));
   real2 v2994 = minus(v2980, v2981);
   store(out, 71 << outShift, ctimesminusplus(v2994, tbl[0 + tbloffset], ctimes(reverse(v2994), tbl[1 + tbloffset])));
   real2 v2979 = minusplus(uminus(v2975), v2976);
   store(out, 103 << outShift, ctimesminusplus(reverse(v2979), tbl[528 + tbloffset], ctimes(v2979, tbl[529 + tbloffset])));
   real2 v2977 = minusplus(v2975, v2976);
   store(out, 39 << outShift, ctimesminusplus(reverse(v2977), tbl[526 + tbloffset], ctimes(v2977, tbl[527 + tbloffset])));
   real2 v2939 = minusplus(uminus(v2935), v2936);
   real2 v2937 = minusplus(v2935, v2936);
   real2 v2953 = ctimesminusplus(reverse(v2939), tbl[520 + tbloffset], ctimes(v2939, tbl[521 + tbloffset]));
   real2 v2957 = minusplus(v2955, v2956);
   real2 v2959 = minusplus(uminus(v2955), v2956);
   real2 v2973 = ctimesminusplus(reverse(v2959), tbl[524 + tbloffset], ctimes(v2959, tbl[525 + tbloffset]));
   store(out, 55 << outShift, plus(v2953, v2973));
   real2 v3006 = minus(v2953, v2973);
   store(out, 119 << outShift, ctimesminusplus(v3006, tbl[0 + tbloffset], ctimes(reverse(v3006), tbl[1 + tbloffset])));
   real2 v2947 = ctimesminusplus(reverse(v2937), tbl[518 + tbloffset], ctimes(v2937, tbl[519 + tbloffset]));
   real2 v2967 = ctimesminusplus(reverse(v2957), tbl[522 + tbloffset], ctimes(v2957, tbl[523 + tbloffset]));
   store(out, 23 << outShift, plus(v2947, v2967));
   real2 v3000 = minus(v2947, v2967);
   store(out, 87 << outShift, ctimesminusplus(v3000, tbl[0 + tbloffset], ctimes(reverse(v3000), tbl[1 + tbloffset])));
   real2 v2663 = ctimesminusplus(reverse(v2649), tbl[468 + tbloffset], ctimes(v2649, tbl[469 + tbloffset]));
   real2 v2583 = ctimesminusplus(reverse(v2569), tbl[452 + tbloffset], ctimes(v2569, tbl[453 + tbloffset]));
   real2 v3014 = minus(v2663, v2583);
   real2 v3018 = plus(v2583, v2663);
   real2 v3015 = minusplus(v3013, v3014);
   real2 v3017 = minusplus(uminus(v3013), v3014);
   real2 v2643 = ctimesminusplus(reverse(v2629), tbl[464 + tbloffset], ctimes(v2629, tbl[465 + tbloffset]));
   real2 v2723 = ctimesminusplus(reverse(v2709), tbl[480 + tbloffset], ctimes(v2709, tbl[481 + tbloffset]));
   real2 v3039 = plus(v2643, v2723);
   real2 v3033 = reverse(minus(v2723, v2643));
   real2 v2683 = ctimesminusplus(reverse(v2669), tbl[472 + tbloffset], ctimes(v2669, tbl[473 + tbloffset]));
   real2 v3031 = ctimesminusplus(reverse(v3017), tbl[532 + tbloffset], ctimes(v3017, tbl[533 + tbloffset]));
   real2 v2603 = ctimesminusplus(reverse(v2589), tbl[456 + tbloffset], ctimes(v2589, tbl[457 + tbloffset]));
   real2 v3034 = minus(v2683, v2603);
   real2 v3038 = plus(v2603, v2683);
   real2 v3037 = minusplus(uminus(v3033), v3034);
   real2 v3035 = minusplus(v3033, v3034);
   real2 v3051 = ctimesminusplus(reverse(v3037), tbl[536 + tbloffset], ctimes(v3037, tbl[537 + tbloffset]));
   store(out, 63 << outShift, plus(v3031, v3051));
   real2 v3084 = minus(v3031, v3051);
   store(out, 127 << outShift, ctimesminusplus(v3084, tbl[0 + tbloffset], ctimes(reverse(v3084), tbl[1 + tbloffset])));
   real2 v3025 = ctimesminusplus(reverse(v3015), tbl[530 + tbloffset], ctimes(v3015, tbl[531 + tbloffset]));
   real2 v3045 = ctimesminusplus(reverse(v3035), tbl[534 + tbloffset], ctimes(v3035, tbl[535 + tbloffset]));
   store(out, 31 << outShift, plus(v3025, v3045));
   real2 v3078 = minus(v3025, v3045);
   store(out, 95 << outShift, ctimesminusplus(v3078, tbl[0 + tbloffset], ctimes(reverse(v3078), tbl[1 + tbloffset])));
   real2 v3058 = plus(v3018, v3019);
   real2 v3054 = minus(v3019, v3018);
   real2 v3053 = reverse(minus(v3039, v3038));
   real2 v3059 = plus(v3038, v3039);
   real2 v3055 = minusplus(v3053, v3054);
   store(out, 47 << outShift, ctimesminusplus(reverse(v3055), tbl[538 + tbloffset], ctimes(v3055, tbl[539 + tbloffset])));
   real2 v3057 = minusplus(uminus(v3053), v3054);
   store(out, 111 << outShift, ctimesminusplus(reverse(v3057), tbl[540 + tbloffset], ctimes(v3057, tbl[541 + tbloffset])));
   store(out, 15 << outShift, plus(v3058, v3059));
   real2 v3072 = minus(v3058, v3059);
   store(out, 79 << outShift, ctimesminusplus(v3072, tbl[0 + tbloffset], ctimes(reverse(v3072), tbl[1 + tbloffset])));
   real2 v683 = ctimesminusplus(reverse(v673), tbl[110 + tbloffset], ctimes(v673, tbl[111 + tbloffset]));
   real2 v363 = ctimesminusplus(reverse(v353), tbl[46 + tbloffset], ctimes(v353, tbl[47 + tbloffset]));
   real2 v2105 = plus(v363, v683);
   real2 v2099 = reverse(minus(v683, v363));
   real2 v283 = ctimesminusplus(reverse(v273), tbl[30 + tbloffset], ctimes(v273, tbl[31 + tbloffset]));
   real2 v723 = ctimesminusplus(reverse(v713), tbl[118 + tbloffset], ctimes(v713, tbl[119 + tbloffset]));
   real2 v403 = ctimesminusplus(reverse(v393), tbl[54 + tbloffset], ctimes(v393, tbl[55 + tbloffset]));
   real2 v603 = ctimesminusplus(reverse(v593), tbl[94 + tbloffset], ctimes(v593, tbl[95 + tbloffset]));
   real2 v2180 = minus(v603, v283);
   real2 v2184 = plus(v283, v603);
   real2 v2145 = plus(v403, v723);
   real2 v2139 = reverse(minus(v723, v403));
   real2 v543 = ctimesminusplus(reverse(v533), tbl[82 + tbloffset], ctimes(v533, tbl[83 + tbloffset]));
   real2 v383 = ctimesminusplus(reverse(v373), tbl[50 + tbloffset], ctimes(v373, tbl[51 + tbloffset]));
   real2 v703 = ctimesminusplus(reverse(v693), tbl[114 + tbloffset], ctimes(v693, tbl[115 + tbloffset]));
   real2 v2125 = plus(v383, v703);
   real2 v2119 = reverse(minus(v703, v383));
   real2 v223 = ctimesminusplus(reverse(v213), tbl[18 + tbloffset], ctimes(v213, tbl[19 + tbloffset]));
   real2 v2120 = minus(v543, v223);
   real2 v2124 = plus(v223, v543);
   real2 v443 = ctimesminusplus(reverse(v433), tbl[62 + tbloffset], ctimes(v433, tbl[63 + tbloffset]));
   real2 v203 = ctimesminusplus(reverse(v193), tbl[14 + tbloffset], ctimes(v193, tbl[15 + tbloffset]));
   real2 v763 = ctimesminusplus(reverse(v753), tbl[126 + tbloffset], ctimes(v753, tbl[127 + tbloffset]));
   real2 v2179 = reverse(minus(v763, v443));
   real2 v2185 = plus(v443, v763);
   real2 v523 = ctimesminusplus(reverse(v513), tbl[78 + tbloffset], ctimes(v513, tbl[79 + tbloffset]));
   real2 v2100 = minus(v523, v203);
   real2 v2104 = plus(v203, v523);
   real2 v2264 = plus(v2104, v2105);
   real2 v2260 = minus(v2105, v2104);
   real2 v643 = ctimesminusplus(reverse(v633), tbl[102 + tbloffset], ctimes(v633, tbl[103 + tbloffset]));
   real2 v2265 = plus(v2184, v2185);
   real2 v2259 = reverse(minus(v2185, v2184));
   real2 v563 = ctimesminusplus(reverse(v553), tbl[86 + tbloffset], ctimes(v553, tbl[87 + tbloffset]));
   real2 v243 = ctimesminusplus(reverse(v233), tbl[22 + tbloffset], ctimes(v233, tbl[23 + tbloffset]));
   real2 v2144 = plus(v243, v563);
   real2 v2140 = minus(v563, v243);
   real2 v143 = ctimesminusplus(reverse(v133), tbl[2 + tbloffset], ctimes(v133, tbl[3 + tbloffset]));
   real2 v183 = ctimesminusplus(reverse(v173), tbl[10 + tbloffset], ctimes(v173, tbl[11 + tbloffset]));
   real2 v2084 = plus(v183, v503);
   real2 v2080 = minus(v503, v183);
   real2 v163 = ctimesminusplus(reverse(v153), tbl[6 + tbloffset], ctimes(v153, tbl[7 + tbloffset]));
   real2 v303 = ctimesminusplus(reverse(v293), tbl[34 + tbloffset], ctimes(v293, tbl[35 + tbloffset]));
   real2 v623 = ctimesminusplus(reverse(v613), tbl[98 + tbloffset], ctimes(v613, tbl[99 + tbloffset]));
   real2 v2039 = reverse(minus(v623, v303));
   real2 v2045 = plus(v303, v623);
   real2 v463 = ctimesminusplus(reverse(v453), tbl[66 + tbloffset], ctimes(v453, tbl[67 + tbloffset]));
   real2 v2044 = plus(v143, v463);
   real2 v2040 = minus(v463, v143);
   real2 v2204 = plus(v2044, v2045);
   real2 v2200 = minus(v2045, v2044);
   real2 v323 = ctimesminusplus(reverse(v313), tbl[38 + tbloffset], ctimes(v313, tbl[39 + tbloffset]));
   real2 v2205 = plus(v2124, v2125);
   real2 v2199 = reverse(minus(v2125, v2124));
   real2 v2280 = minus(v2205, v2204);
   real2 v2284 = plus(v2204, v2205);
   real2 v2225 = plus(v2144, v2145);
   real2 v2219 = reverse(minus(v2145, v2144));
   real2 v2305 = plus(v2264, v2265);
   real2 v2299 = reverse(minus(v2265, v2264));
   real2 v2240 = minus(v2085, v2084);
   real2 v2244 = plus(v2084, v2085);
   real2 v2279 = reverse(minus(v2245, v2244));
   real2 v2285 = plus(v2244, v2245);
   real2 v2281 = minusplus(v2279, v2280);
   real2 v2283 = minusplus(uminus(v2279), v2280);
   real2 v2291 = ctimesminusplus(reverse(v2281), tbl[406 + tbloffset], ctimes(v2281, tbl[407 + tbloffset]));
   real2 v483 = ctimesminusplus(reverse(v473), tbl[70 + tbloffset], ctimes(v473, tbl[71 + tbloffset]));
   real2 v2060 = minus(v483, v163);
   real2 v2064 = plus(v163, v483);
   real2 v2065 = plus(v323, v643);
   real2 v2059 = reverse(minus(v643, v323));
   real2 v2220 = minus(v2065, v2064);
   real2 v2224 = plus(v2064, v2065);
   real2 v2304 = plus(v2224, v2225);
   real2 v2300 = minus(v2225, v2224);
   real2 v2301 = minusplus(v2299, v2300);
   real2 v2303 = minusplus(uminus(v2299), v2300);
   real2 v2311 = ctimesminusplus(reverse(v2301), tbl[410 + tbloffset], ctimes(v2301, tbl[411 + tbloffset]));
   store(out, 17 << outShift, plus(v2291, v2311));
   real2 v2344 = minus(v2291, v2311);
   store(out, 81 << outShift, ctimesminusplus(v2344, tbl[0 + tbloffset], ctimes(reverse(v2344), tbl[1 + tbloffset])));
   real2 v2297 = ctimesminusplus(reverse(v2283), tbl[408 + tbloffset], ctimes(v2283, tbl[409 + tbloffset]));
   real2 v2317 = ctimesminusplus(reverse(v2303), tbl[412 + tbloffset], ctimes(v2303, tbl[413 + tbloffset]));
   store(out, 49 << outShift, plus(v2297, v2317));
   real2 v2350 = minus(v2297, v2317);
   store(out, 113 << outShift, ctimesminusplus(v2350, tbl[0 + tbloffset], ctimes(reverse(v2350), tbl[1 + tbloffset])));
   real2 v2320 = minus(v2285, v2284);
   real2 v2324 = plus(v2284, v2285);
   real2 v2325 = plus(v2304, v2305);
   real2 v2319 = reverse(minus(v2305, v2304));
   store(out, 1 << outShift, plus(v2324, v2325));
   real2 v2338 = minus(v2324, v2325);
   store(out, 65 << outShift, ctimesminusplus(v2338, tbl[0 + tbloffset], ctimes(reverse(v2338), tbl[1 + tbloffset])));
   real2 v2321 = minusplus(v2319, v2320);
   store(out, 33 << outShift, ctimesminusplus(reverse(v2321), tbl[414 + tbloffset], ctimes(v2321, tbl[415 + tbloffset])));
   real2 v2323 = minusplus(uminus(v2319), v2320);
   store(out, 97 << outShift, ctimesminusplus(reverse(v2323), tbl[416 + tbloffset], ctimes(v2323, tbl[417 + tbloffset])));
   real2 v2201 = minusplus(v2199, v2200);
   real2 v2203 = minusplus(uminus(v2199), v2200);
   real2 v2263 = minusplus(uminus(v2259), v2260);
   real2 v2261 = minusplus(v2259, v2260);
   real2 v2243 = minusplus(uminus(v2239), v2240);
   real2 v2241 = minusplus(v2239, v2240);
   real2 v2257 = ctimesminusplus(reverse(v2243), tbl[400 + tbloffset], ctimes(v2243, tbl[401 + tbloffset]));
   real2 v2217 = ctimesminusplus(reverse(v2203), tbl[392 + tbloffset], ctimes(v2203, tbl[393 + tbloffset]));
   real2 v2388 = plus(v2217, v2257);
   real2 v2384 = minus(v2257, v2217);
   real2 v2277 = ctimesminusplus(reverse(v2263), tbl[404 + tbloffset], ctimes(v2263, tbl[405 + tbloffset]));
   real2 v2221 = minusplus(v2219, v2220);
   real2 v2223 = minusplus(uminus(v2219), v2220);
   real2 v2237 = ctimesminusplus(reverse(v2223), tbl[396 + tbloffset], ctimes(v2223, tbl[397 + tbloffset]));
   real2 v2389 = plus(v2237, v2277);
   real2 v2383 = reverse(minus(v2277, v2237));
   store(out, 25 << outShift, plus(v2388, v2389));
   real2 v2402 = minus(v2388, v2389);
   store(out, 89 << outShift, ctimesminusplus(v2402, tbl[0 + tbloffset], ctimes(reverse(v2402), tbl[1 + tbloffset])));
   real2 v2385 = minusplus(v2383, v2384);
   real2 v2387 = minusplus(uminus(v2383), v2384);
   store(out, 121 << outShift, ctimesminusplus(reverse(v2387), tbl[424 + tbloffset], ctimes(v2387, tbl[425 + tbloffset])));
   store(out, 57 << outShift, ctimesminusplus(reverse(v2385), tbl[422 + tbloffset], ctimes(v2385, tbl[423 + tbloffset])));
   real2 v2251 = ctimesminusplus(reverse(v2241), tbl[398 + tbloffset], ctimes(v2241, tbl[399 + tbloffset]));
   real2 v2211 = ctimesminusplus(reverse(v2201), tbl[390 + tbloffset], ctimes(v2201, tbl[391 + tbloffset]));
   real2 v2358 = minus(v2251, v2211);
   real2 v2362 = plus(v2211, v2251);
   real2 v2271 = ctimesminusplus(reverse(v2261), tbl[402 + tbloffset], ctimes(v2261, tbl[403 + tbloffset]));
   real2 v2231 = ctimesminusplus(reverse(v2221), tbl[394 + tbloffset], ctimes(v2221, tbl[395 + tbloffset]));
   real2 v2357 = reverse(minus(v2271, v2231));
   real2 v2363 = plus(v2231, v2271);
   store(out, 9 << outShift, plus(v2362, v2363));
   real2 v2376 = minus(v2362, v2363);
   store(out, 73 << outShift, ctimesminusplus(v2376, tbl[0 + tbloffset], ctimes(reverse(v2376), tbl[1 + tbloffset])));
   real2 v2361 = minusplus(uminus(v2357), v2358);
   store(out, 105 << outShift, ctimesminusplus(reverse(v2361), tbl[420 + tbloffset], ctimes(v2361, tbl[421 + tbloffset])));
   real2 v2359 = minusplus(v2357, v2358);
   store(out, 41 << outShift, ctimesminusplus(reverse(v2359), tbl[418 + tbloffset], ctimes(v2359, tbl[419 + tbloffset])));
   real2 v2121 = minusplus(v2119, v2120);
   real2 v2123 = minusplus(uminus(v2119), v2120);
   real2 v2083 = minusplus(uminus(v2079), v2080);
   real2 v2081 = minusplus(v2079, v2080);
   real2 v2091 = ctimesminusplus(reverse(v2081), tbl[366 + tbloffset], ctimes(v2081, tbl[367 + tbloffset]));
   real2 v2043 = minusplus(uminus(v2039), v2040);
   real2 v2041 = minusplus(v2039, v2040);
   real2 v2051 = ctimesminusplus(reverse(v2041), tbl[358 + tbloffset], ctimes(v2041, tbl[359 + tbloffset]));
   real2 v2131 = ctimesminusplus(reverse(v2121), tbl[374 + tbloffset], ctimes(v2121, tbl[375 + tbloffset]));
   real2 v2163 = minusplus(uminus(v2159), v2160);
   real2 v2161 = minusplus(v2159, v2160);
   real2 v2171 = ctimesminusplus(reverse(v2161), tbl[382 + tbloffset], ctimes(v2161, tbl[383 + tbloffset]));
   real2 v2409 = reverse(minus(v2171, v2091));
   real2 v2415 = plus(v2091, v2171);
   real2 v2410 = minus(v2131, v2051);
   real2 v2414 = plus(v2051, v2131);
   real2 v2454 = plus(v2414, v2415);
   real2 v2450 = minus(v2415, v2414);
   real2 v2181 = minusplus(v2179, v2180);
   real2 v2183 = minusplus(uminus(v2179), v2180);
   real2 v2191 = ctimesminusplus(reverse(v2181), tbl[386 + tbloffset], ctimes(v2181, tbl[387 + tbloffset]));
   real2 v2103 = minusplus(uminus(v2099), v2100);
   real2 v2101 = minusplus(v2099, v2100);
   real2 v2111 = ctimesminusplus(reverse(v2101), tbl[370 + tbloffset], ctimes(v2101, tbl[371 + tbloffset]));
   real2 v2435 = plus(v2111, v2191);
   real2 v2429 = reverse(minus(v2191, v2111));
   real2 v2141 = minusplus(v2139, v2140);
   real2 v2143 = minusplus(uminus(v2139), v2140);
   real2 v2151 = ctimesminusplus(reverse(v2141), tbl[378 + tbloffset], ctimes(v2141, tbl[379 + tbloffset]));
   real2 v2063 = minusplus(uminus(v2059), v2060);
   real2 v2061 = minusplus(v2059, v2060);
   real2 v2071 = ctimesminusplus(reverse(v2061), tbl[362 + tbloffset], ctimes(v2061, tbl[363 + tbloffset]));
   real2 v2434 = plus(v2071, v2151);
   real2 v2430 = minus(v2151, v2071);
   real2 v2455 = plus(v2434, v2435);
   real2 v2449 = reverse(minus(v2435, v2434));
   store(out, 5 << outShift, plus(v2454, v2455));
   real2 v2468 = minus(v2454, v2455);
   store(out, 69 << outShift, ctimesminusplus(v2468, tbl[0 + tbloffset], ctimes(reverse(v2468), tbl[1 + tbloffset])));
   real2 v2451 = minusplus(v2449, v2450);
   real2 v2453 = minusplus(uminus(v2449), v2450);
   store(out, 101 << outShift, ctimesminusplus(reverse(v2453), tbl[436 + tbloffset], ctimes(v2453, tbl[437 + tbloffset])));
   store(out, 37 << outShift, ctimesminusplus(reverse(v2451), tbl[434 + tbloffset], ctimes(v2451, tbl[435 + tbloffset])));
   real2 v2411 = minusplus(v2409, v2410);
   real2 v2413 = minusplus(uminus(v2409), v2410);
   real2 v2433 = minusplus(uminus(v2429), v2430);
   real2 v2431 = minusplus(v2429, v2430);
   real2 v2421 = ctimesminusplus(reverse(v2411), tbl[426 + tbloffset], ctimes(v2411, tbl[427 + tbloffset]));
   real2 v2441 = ctimesminusplus(reverse(v2431), tbl[430 + tbloffset], ctimes(v2431, tbl[431 + tbloffset]));
   store(out, 21 << outShift, plus(v2421, v2441));
   real2 v2474 = minus(v2421, v2441);
   store(out, 85 << outShift, ctimesminusplus(v2474, tbl[0 + tbloffset], ctimes(reverse(v2474), tbl[1 + tbloffset])));
   real2 v2427 = ctimesminusplus(reverse(v2413), tbl[428 + tbloffset], ctimes(v2413, tbl[429 + tbloffset]));
   real2 v2447 = ctimesminusplus(reverse(v2433), tbl[432 + tbloffset], ctimes(v2433, tbl[433 + tbloffset]));
   store(out, 53 << outShift, plus(v2427, v2447));
   real2 v2480 = minus(v2427, v2447);
   store(out, 117 << outShift, ctimesminusplus(v2480, tbl[0 + tbloffset], ctimes(reverse(v2480), tbl[1 + tbloffset])));
   real2 v2057 = ctimesminusplus(reverse(v2043), tbl[360 + tbloffset], ctimes(v2043, tbl[361 + tbloffset]));
   real2 v2097 = ctimesminusplus(reverse(v2083), tbl[368 + tbloffset], ctimes(v2083, tbl[369 + tbloffset]));
   real2 v2157 = ctimesminusplus(reverse(v2143), tbl[380 + tbloffset], ctimes(v2143, tbl[381 + tbloffset]));
   real2 v2197 = ctimesminusplus(reverse(v2183), tbl[388 + tbloffset], ctimes(v2183, tbl[389 + tbloffset]));
   real2 v2117 = ctimesminusplus(reverse(v2103), tbl[372 + tbloffset], ctimes(v2103, tbl[373 + tbloffset]));
   real2 v2507 = reverse(minus(v2197, v2117));
   real2 v2513 = plus(v2117, v2197);
   real2 v2137 = ctimesminusplus(reverse(v2123), tbl[376 + tbloffset], ctimes(v2123, tbl[377 + tbloffset]));
   real2 v2488 = minus(v2137, v2057);
   real2 v2492 = plus(v2057, v2137);
   real2 v2177 = ctimesminusplus(reverse(v2163), tbl[384 + tbloffset], ctimes(v2163, tbl[385 + tbloffset]));
   real2 v2493 = plus(v2097, v2177);
   real2 v2487 = reverse(minus(v2177, v2097));
   real2 v2532 = plus(v2492, v2493);
   real2 v2528 = minus(v2493, v2492);
   real2 v2077 = ctimesminusplus(reverse(v2063), tbl[364 + tbloffset], ctimes(v2063, tbl[365 + tbloffset]));
   real2 v2512 = plus(v2077, v2157);
   real2 v2508 = minus(v2157, v2077);
   real2 v2527 = reverse(minus(v2513, v2512));
   real2 v2533 = plus(v2512, v2513);
   real2 v2529 = minusplus(v2527, v2528);
   real2 v2531 = minusplus(uminus(v2527), v2528);
   store(out, 109 << outShift, ctimesminusplus(reverse(v2531), tbl[448 + tbloffset], ctimes(v2531, tbl[449 + tbloffset])));
   store(out, 45 << outShift, ctimesminusplus(reverse(v2529), tbl[446 + tbloffset], ctimes(v2529, tbl[447 + tbloffset])));
   store(out, 13 << outShift, plus(v2532, v2533));
   real2 v2546 = minus(v2532, v2533);
   store(out, 77 << outShift, ctimesminusplus(v2546, tbl[0 + tbloffset], ctimes(reverse(v2546), tbl[1 + tbloffset])));
   real2 v2509 = minusplus(v2507, v2508);
   real2 v2511 = minusplus(uminus(v2507), v2508);
   real2 v2491 = minusplus(uminus(v2487), v2488);
   real2 v2489 = minusplus(v2487, v2488);
   real2 v2499 = ctimesminusplus(reverse(v2489), tbl[438 + tbloffset], ctimes(v2489, tbl[439 + tbloffset]));
   real2 v2519 = ctimesminusplus(reverse(v2509), tbl[442 + tbloffset], ctimes(v2509, tbl[443 + tbloffset]));
   store(out, 29 << outShift, plus(v2499, v2519));
   real2 v2552 = minus(v2499, v2519);
   store(out, 93 << outShift, ctimesminusplus(v2552, tbl[0 + tbloffset], ctimes(reverse(v2552), tbl[1 + tbloffset])));
   real2 v2505 = ctimesminusplus(reverse(v2491), tbl[440 + tbloffset], ctimes(v2491, tbl[441 + tbloffset]));
   real2 v2525 = ctimesminusplus(reverse(v2511), tbl[444 + tbloffset], ctimes(v2511, tbl[445 + tbloffset]));
   store(out, 61 << outShift, plus(v2505, v2525));
   real2 v2558 = minus(v2505, v2525);
   store(out, 125 << outShift, ctimesminusplus(v2558, tbl[0 + tbloffset], ctimes(reverse(v2558), tbl[1 + tbloffset])));
// Pres : 76263
  }
}

ALIGNED(8192) void tbut128f_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

// Pres : 148586
   real2 v56 = load(in, 54 << inShift);
   real2 v120 = load(in, 118 << inShift);
   real2 v571 = reverse(minus(v56, v120));
   real2 v577 = plus(v56, v120);
   real2 v24 = load(in, 22 << inShift);
   real2 v88 = load(in, 86 << inShift);
   real2 v576 = plus(v24, v88);
   real2 v572 = minus(v88, v24);
   real2 v573 = minusplus(v571, v572);
   real2 v575 = minusplus(uminus(v571), v572);
   real2 v589 = timesminusplus(reverse(v575), load(tbl, 92 * VECWIDTH + tbloffset), times(v575, load(tbl, 93 * VECWIDTH + tbloffset)));
   real2 v583 = timesminusplus(reverse(v573), load(tbl, 90 * VECWIDTH + tbloffset), times(v573, load(tbl, 91 * VECWIDTH + tbloffset)));
   real2 v897 = plus(v576, v577);
   real2 v891 = reverse(minus(v576, v577));
   real2 v8 = load(in, 6 << inShift);
   real2 v72 = load(in, 70 << inShift);
   real2 v252 = minus(v72, v8);
   real2 v256 = plus(v8, v72);
   real2 v104 = load(in, 102 << inShift);
   real2 v40 = load(in, 38 << inShift);
   real2 v251 = reverse(minus(v40, v104));
   real2 v257 = plus(v40, v104);
   real2 v255 = minusplus(uminus(v251), v252);
   real2 v253 = minusplus(v251, v252);
   real2 v263 = timesminusplus(reverse(v253), load(tbl, 26 * VECWIDTH + tbloffset), times(v253, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v896 = plus(v256, v257);
   real2 v892 = minus(v257, v256);
   real2 v895 = minusplus(uminus(v891), v892);
   real2 v893 = minusplus(v891, v892);
   real2 v909 = timesminusplus(reverse(v895), load(tbl, 156 * VECWIDTH + tbloffset), times(v895, load(tbl, 157 * VECWIDTH + tbloffset)));
   real2 v903 = timesminusplus(reverse(v893), load(tbl, 154 * VECWIDTH + tbloffset), times(v893, load(tbl, 155 * VECWIDTH + tbloffset)));
   real2 v269 = timesminusplus(reverse(v255), load(tbl, 28 * VECWIDTH + tbloffset), times(v255, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v1216 = plus(v896, v897);
   real2 v1212 = minus(v897, v896);
   real2 v2160 = minus(v583, v263);
   real2 v2164 = plus(v263, v583);
   real2 v2686 = minus(v589, v269);
   real2 v2690 = plus(v269, v589);
   real2 v96 = load(in, 94 << inShift);
   real2 v32 = load(in, 30 << inShift);
   real2 v736 = plus(v32, v96);
   real2 v732 = minus(v96, v32);
   real2 v64 = load(in, 62 << inShift);
   real2 v128 = load(in, 126 << inShift);
   real2 v737 = plus(v64, v128);
   real2 v731 = reverse(minus(v64, v128));
   real2 v1057 = plus(v736, v737);
   real2 v1051 = reverse(minus(v736, v737));
   real2 v733 = minusplus(v731, v732);
   real2 v735 = minusplus(uminus(v731), v732);
   real2 v749 = timesminusplus(reverse(v735), load(tbl, 124 * VECWIDTH + tbloffset), times(v735, load(tbl, 125 * VECWIDTH + tbloffset)));
   real2 v743 = timesminusplus(reverse(v733), load(tbl, 122 * VECWIDTH + tbloffset), times(v733, load(tbl, 123 * VECWIDTH + tbloffset)));
   real2 v16 = load(in, 14 << inShift);
   real2 v80 = load(in, 78 << inShift);
   real2 v412 = minus(v80, v16);
   real2 v416 = plus(v16, v80);
   real2 v112 = load(in, 110 << inShift);
   real2 v48 = load(in, 46 << inShift);
   real2 v417 = plus(v48, v112);
   real2 v411 = reverse(minus(v48, v112));
   real2 v1056 = plus(v416, v417);
   real2 v1052 = minus(v417, v416);
   real2 v1055 = minusplus(uminus(v1051), v1052);
   real2 v1053 = minusplus(v1051, v1052);
   real2 v1063 = timesminusplus(reverse(v1053), load(tbl, 186 * VECWIDTH + tbloffset), times(v1053, load(tbl, 187 * VECWIDTH + tbloffset)));
   real2 v1665 = plus(v903, v1063);
   real2 v1659 = reverse(minus(v903, v1063));
   real2 v1069 = timesminusplus(reverse(v1055), load(tbl, 188 * VECWIDTH + tbloffset), times(v1055, load(tbl, 189 * VECWIDTH + tbloffset)));
   real2 v1869 = reverse(minus(v909, v1069));
   real2 v1875 = plus(v909, v1069);
   real2 v413 = minusplus(v411, v412);
   real2 v415 = minusplus(uminus(v411), v412);
   real2 v429 = timesminusplus(reverse(v415), load(tbl, 60 * VECWIDTH + tbloffset), times(v415, load(tbl, 61 * VECWIDTH + tbloffset)));
   real2 v1217 = plus(v1056, v1057);
   real2 v1211 = reverse(minus(v1056, v1057));
   real2 v1297 = plus(v1216, v1217);
   real2 v1291 = reverse(minus(v1216, v1217));
   real2 v2691 = plus(v429, v749);
   real2 v2685 = reverse(minus(v429, v749));
   real2 v2765 = reverse(minus(v2690, v2691));
   real2 v2771 = plus(v2690, v2691);
   real2 v2689 = minusplus(uminus(v2685), v2686);
   real2 v2687 = minusplus(v2685, v2686);
   real2 v2703 = timesminusplus(reverse(v2689), load(tbl, 476 * VECWIDTH + tbloffset), times(v2689, load(tbl, 477 * VECWIDTH + tbloffset)));
   real2 v2697 = timesminusplus(reverse(v2687), load(tbl, 474 * VECWIDTH + tbloffset), times(v2687, load(tbl, 475 * VECWIDTH + tbloffset)));
   real2 v1215 = minusplus(uminus(v1211), v1212);
   real2 v1213 = minusplus(v1211, v1212);
   real2 v1223 = timesminusplus(reverse(v1213), load(tbl, 218 * VECWIDTH + tbloffset), times(v1213, load(tbl, 219 * VECWIDTH + tbloffset)));
   real2 v1229 = timesminusplus(reverse(v1215), load(tbl, 220 * VECWIDTH + tbloffset), times(v1215, load(tbl, 221 * VECWIDTH + tbloffset)));
   real2 v423 = timesminusplus(reverse(v413), load(tbl, 58 * VECWIDTH + tbloffset), times(v413, load(tbl, 59 * VECWIDTH + tbloffset)));
   real2 v2165 = plus(v423, v743);
   real2 v2159 = reverse(minus(v423, v743));
   real2 v2245 = plus(v2164, v2165);
   real2 v2239 = reverse(minus(v2164, v2165));
   real2 v44 = load(in, 42 << inShift);
   real2 v108 = load(in, 106 << inShift);
   real2 v331 = reverse(minus(v44, v108));
   real2 v337 = plus(v44, v108);
   real2 v76 = load(in, 74 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v336 = plus(v12, v76);
   real2 v332 = minus(v76, v12);
   real2 v976 = plus(v336, v337);
   real2 v972 = minus(v337, v336);
   real2 v335 = minusplus(uminus(v331), v332);
   real2 v333 = minusplus(v331, v332);
   real2 v343 = timesminusplus(reverse(v333), load(tbl, 42 * VECWIDTH + tbloffset), times(v333, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v349 = timesminusplus(reverse(v335), load(tbl, 44 * VECWIDTH + tbloffset), times(v335, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v124 = load(in, 122 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v651 = reverse(minus(v60, v124));
   real2 v657 = plus(v60, v124);
   real2 v28 = load(in, 26 << inShift);
   real2 v92 = load(in, 90 << inShift);
   real2 v652 = minus(v92, v28);
   real2 v656 = plus(v28, v92);
   real2 v977 = plus(v656, v657);
   real2 v971 = reverse(minus(v656, v657));
   real2 v973 = minusplus(v971, v972);
   real2 v975 = minusplus(uminus(v971), v972);
   real2 v983 = timesminusplus(reverse(v973), load(tbl, 170 * VECWIDTH + tbloffset), times(v973, load(tbl, 171 * VECWIDTH + tbloffset)));
   real2 v1131 = reverse(minus(v976, v977));
   real2 v1137 = plus(v976, v977);
   real2 v655 = minusplus(uminus(v651), v652);
   real2 v653 = minusplus(v651, v652);
   real2 v669 = timesminusplus(reverse(v655), load(tbl, 108 * VECWIDTH + tbloffset), times(v655, load(tbl, 109 * VECWIDTH + tbloffset)));
   real2 v663 = timesminusplus(reverse(v653), load(tbl, 106 * VECWIDTH + tbloffset), times(v653, load(tbl, 107 * VECWIDTH + tbloffset)));
   real2 v2079 = reverse(minus(v343, v663));
   real2 v2085 = plus(v343, v663);
   real2 v2605 = reverse(minus(v349, v669));
   real2 v2611 = plus(v349, v669);
   real2 v989 = timesminusplus(reverse(v975), load(tbl, 172 * VECWIDTH + tbloffset), times(v975, load(tbl, 173 * VECWIDTH + tbloffset)));
   real2 v20 = load(in, 18 << inShift);
   real2 v84 = load(in, 82 << inShift);
   real2 v496 = plus(v20, v84);
   real2 v492 = minus(v84, v20);
   real2 v52 = load(in, 50 << inShift);
   real2 v116 = load(in, 114 << inShift);
   real2 v491 = reverse(minus(v52, v116));
   real2 v497 = plus(v52, v116);
   real2 v817 = plus(v496, v497);
   real2 v811 = reverse(minus(v496, v497));
   real2 v493 = minusplus(v491, v492);
   real2 v495 = minusplus(uminus(v491), v492);
   real2 v509 = timesminusplus(reverse(v495), load(tbl, 76 * VECWIDTH + tbloffset), times(v495, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v503 = timesminusplus(reverse(v493), load(tbl, 74 * VECWIDTH + tbloffset), times(v493, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v36 = load(in, 34 << inShift);
   real2 v100 = load(in, 98 << inShift);
   real2 v171 = reverse(minus(v36, v100));
   real2 v177 = plus(v36, v100);
   real2 v68 = load(in, 66 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v176 = plus(v4, v68);
   real2 v172 = minus(v68, v4);
   real2 v816 = plus(v176, v177);
   real2 v812 = minus(v177, v176);
   real2 v1136 = plus(v816, v817);
   real2 v1132 = minus(v817, v816);
   real2 v1133 = minusplus(v1131, v1132);
   real2 v1135 = minusplus(uminus(v1131), v1132);
   real2 v1149 = timesminusplus(reverse(v1135), load(tbl, 204 * VECWIDTH + tbloffset), times(v1135, load(tbl, 205 * VECWIDTH + tbloffset)));
   real2 v1296 = plus(v1136, v1137);
   real2 v1292 = minus(v1137, v1136);
   real2 v1295 = minusplus(uminus(v1291), v1292);
   real2 v1293 = minusplus(v1291, v1292);
   real2 v1303 = timesminusplus(reverse(v1293), load(tbl, 234 * VECWIDTH + tbloffset), times(v1293, load(tbl, 235 * VECWIDTH + tbloffset)));
   real2 v1331 = reverse(minus(v1296, v1297));
   real2 v1337 = plus(v1296, v1297);
   real2 v173 = minusplus(v171, v172);
   real2 v175 = minusplus(uminus(v171), v172);
   real2 v189 = timesminusplus(reverse(v175), load(tbl, 12 * VECWIDTH + tbloffset), times(v175, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v1309 = timesminusplus(reverse(v1295), load(tbl, 236 * VECWIDTH + tbloffset), times(v1295, load(tbl, 237 * VECWIDTH + tbloffset)));
   real2 v815 = minusplus(uminus(v811), v812);
   real2 v813 = minusplus(v811, v812);
   real2 v1143 = timesminusplus(reverse(v1133), load(tbl, 202 * VECWIDTH + tbloffset), times(v1133, load(tbl, 203 * VECWIDTH + tbloffset)));
   real2 v1541 = reverse(minus(v1149, v1229));
   real2 v1547 = plus(v1149, v1229);
   real2 v2610 = plus(v189, v509);
   real2 v2606 = minus(v509, v189);
   real2 v2770 = plus(v2610, v2611);
   real2 v2766 = minus(v2611, v2610);
   real2 v823 = timesminusplus(reverse(v813), load(tbl, 138 * VECWIDTH + tbloffset), times(v813, load(tbl, 139 * VECWIDTH + tbloffset)));
   real2 v829 = timesminusplus(reverse(v815), load(tbl, 140 * VECWIDTH + tbloffset), times(v815, load(tbl, 141 * VECWIDTH + tbloffset)));
   real2 v2811 = plus(v2770, v2771);
   real2 v2805 = reverse(minus(v2770, v2771));
   real2 v2767 = minusplus(v2765, v2766);
   real2 v2769 = minusplus(uminus(v2765), v2766);
   real2 v2607 = minusplus(v2605, v2606);
   real2 v2609 = minusplus(uminus(v2605), v2606);
   real2 v2617 = timesminusplus(reverse(v2607), load(tbl, 458 * VECWIDTH + tbloffset), times(v2607, load(tbl, 459 * VECWIDTH + tbloffset)));
   real2 v2623 = timesminusplus(reverse(v2609), load(tbl, 460 * VECWIDTH + tbloffset), times(v2609, load(tbl, 461 * VECWIDTH + tbloffset)));
   real2 v3013 = reverse(minus(v2623, v2703));
   real2 v3019 = plus(v2623, v2703);
   real2 v2783 = timesminusplus(reverse(v2769), load(tbl, 492 * VECWIDTH + tbloffset), times(v2769, load(tbl, 493 * VECWIDTH + tbloffset)));
   real2 v2941 = plus(v2617, v2697);
   real2 v2935 = reverse(minus(v2617, v2697));
   real2 v2777 = timesminusplus(reverse(v2767), load(tbl, 490 * VECWIDTH + tbloffset), times(v2767, load(tbl, 491 * VECWIDTH + tbloffset)));
   real2 v1660 = minus(v983, v823);
   real2 v1664 = plus(v823, v983);
   real2 v1874 = plus(v829, v989);
   real2 v1870 = minus(v989, v829);
   real2 v1909 = reverse(minus(v1874, v1875));
   real2 v1915 = plus(v1874, v1875);
   real2 v1663 = minusplus(uminus(v1659), v1660);
   real2 v1661 = minusplus(v1659, v1660);
   real2 v1677 = timesminusplus(reverse(v1663), load(tbl, 296 * VECWIDTH + tbloffset), times(v1663, load(tbl, 297 * VECWIDTH + tbloffset)));
   real2 v1873 = minusplus(uminus(v1869), v1870);
   real2 v1871 = minusplus(v1869, v1870);
   real2 v1887 = timesminusplus(reverse(v1873), load(tbl, 332 * VECWIDTH + tbloffset), times(v1873, load(tbl, 333 * VECWIDTH + tbloffset)));
   real2 v1705 = plus(v1664, v1665);
   real2 v1699 = reverse(minus(v1664, v1665));
   real2 v1671 = timesminusplus(reverse(v1661), load(tbl, 294 * VECWIDTH + tbloffset), times(v1661, load(tbl, 295 * VECWIDTH + tbloffset)));
   real2 v1881 = timesminusplus(reverse(v1871), load(tbl, 330 * VECWIDTH + tbloffset), times(v1871, load(tbl, 331 * VECWIDTH + tbloffset)));
   real2 v1469 = plus(v1143, v1223);
   real2 v1463 = reverse(minus(v1143, v1223));
   real2 v54 = load(in, 52 << inShift);
   real2 v118 = load(in, 116 << inShift);
   real2 v537 = plus(v54, v118);
   real2 v531 = reverse(minus(v54, v118));
   real2 v86 = load(in, 84 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v536 = plus(v22, v86);
   real2 v532 = minus(v86, v22);
   real2 v851 = reverse(minus(v536, v537));
   real2 v857 = plus(v536, v537);
   real2 v533 = minusplus(v531, v532);
   real2 v535 = minusplus(uminus(v531), v532);
   real2 v549 = timesminusplus(reverse(v535), load(tbl, 84 * VECWIDTH + tbloffset), times(v535, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v102 = load(in, 100 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v217 = plus(v38, v102);
   real2 v211 = reverse(minus(v38, v102));
   real2 v70 = load(in, 68 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v216 = plus(v6, v70);
   real2 v212 = minus(v70, v6);
   real2 v213 = minusplus(v211, v212);
   real2 v215 = minusplus(uminus(v211), v212);
   real2 v229 = timesminusplus(reverse(v215), load(tbl, 20 * VECWIDTH + tbloffset), times(v215, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v2646 = minus(v549, v229);
   real2 v2650 = plus(v229, v549);
   real2 v856 = plus(v216, v217);
   real2 v852 = minus(v217, v216);
   real2 v853 = minusplus(v851, v852);
   real2 v855 = minusplus(uminus(v851), v852);
   real2 v863 = timesminusplus(reverse(v853), load(tbl, 146 * VECWIDTH + tbloffset), times(v853, load(tbl, 147 * VECWIDTH + tbloffset)));
   real2 v869 = timesminusplus(reverse(v855), load(tbl, 148 * VECWIDTH + tbloffset), times(v855, load(tbl, 149 * VECWIDTH + tbloffset)));
   real2 v1176 = plus(v856, v857);
   real2 v1172 = minus(v857, v856);
   real2 v110 = load(in, 108 << inShift);
   real2 v46 = load(in, 44 << inShift);
   real2 v377 = plus(v46, v110);
   real2 v371 = reverse(minus(v46, v110));
   real2 v78 = load(in, 76 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v372 = minus(v78, v14);
   real2 v376 = plus(v14, v78);
   real2 v1012 = minus(v377, v376);
   real2 v1016 = plus(v376, v377);
   real2 v373 = minusplus(v371, v372);
   real2 v375 = minusplus(uminus(v371), v372);
   real2 v389 = timesminusplus(reverse(v375), load(tbl, 52 * VECWIDTH + tbloffset), times(v375, load(tbl, 53 * VECWIDTH + tbloffset)));
   real2 v30 = load(in, 28 << inShift);
   real2 v94 = load(in, 92 << inShift);
   real2 v696 = plus(v30, v94);
   real2 v692 = minus(v94, v30);
   real2 v62 = load(in, 60 << inShift);
   real2 v126 = load(in, 124 << inShift);
   real2 v697 = plus(v62, v126);
   real2 v691 = reverse(minus(v62, v126));
   real2 v1017 = plus(v696, v697);
   real2 v1011 = reverse(minus(v696, v697));
   real2 v1171 = reverse(minus(v1016, v1017));
   real2 v1177 = plus(v1016, v1017);
   real2 v1013 = minusplus(v1011, v1012);
   real2 v1015 = minusplus(uminus(v1011), v1012);
   real2 v1175 = minusplus(uminus(v1171), v1172);
   real2 v1173 = minusplus(v1171, v1172);
   real2 v1183 = timesminusplus(reverse(v1173), load(tbl, 210 * VECWIDTH + tbloffset), times(v1173, load(tbl, 211 * VECWIDTH + tbloffset)));
   real2 v1189 = timesminusplus(reverse(v1175), load(tbl, 212 * VECWIDTH + tbloffset), times(v1175, load(tbl, 213 * VECWIDTH + tbloffset)));
   real2 v1029 = timesminusplus(reverse(v1015), load(tbl, 180 * VECWIDTH + tbloffset), times(v1015, load(tbl, 181 * VECWIDTH + tbloffset)));
   real2 v1023 = timesminusplus(reverse(v1013), load(tbl, 178 * VECWIDTH + tbloffset), times(v1013, load(tbl, 179 * VECWIDTH + tbloffset)));
   real2 v1625 = plus(v863, v1023);
   real2 v1619 = reverse(minus(v863, v1023));
   real2 v1835 = plus(v869, v1029);
   real2 v1829 = reverse(minus(v869, v1029));
   real2 v693 = minusplus(v691, v692);
   real2 v695 = minusplus(uminus(v691), v692);
   real2 v709 = timesminusplus(reverse(v695), load(tbl, 116 * VECWIDTH + tbloffset), times(v695, load(tbl, 117 * VECWIDTH + tbloffset)));
   real2 v2645 = reverse(minus(v389, v709));
   real2 v2651 = plus(v389, v709);
   real2 v1257 = plus(v1176, v1177);
   real2 v1251 = reverse(minus(v1176, v1177));
   real2 v2731 = plus(v2650, v2651);
   real2 v2725 = reverse(minus(v2650, v2651));
   real2 v114 = load(in, 112 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v457 = plus(v50, v114);
   real2 v451 = reverse(minus(v50, v114));
   real2 v18 = load(in, 16 << inShift);
   real2 v82 = load(in, 80 << inShift);
   real2 v456 = plus(v18, v82);
   real2 v452 = minus(v82, v18);
   real2 v771 = reverse(minus(v456, v457));
   real2 v777 = plus(v456, v457);
   real2 v453 = minusplus(v451, v452);
   real2 v455 = minusplus(uminus(v451), v452);
   real2 v469 = timesminusplus(reverse(v455), load(tbl, 68 * VECWIDTH + tbloffset), times(v455, load(tbl, 69 * VECWIDTH + tbloffset)));
   real2 v66 = load(in, 64 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v131 = reverse(minus(v34, v98));
   real2 v137 = plus(v34, v98);
   real2 v133 = minusplus(v131, v132);
   real2 v135 = minusplus(uminus(v131), v132);
   real2 v149 = timesminusplus(reverse(v135), load(tbl, 4 * VECWIDTH + tbloffset), times(v135, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v2566 = minus(v469, v149);
   real2 v2570 = plus(v149, v469);
   real2 v772 = minus(v137, v136);
   real2 v776 = plus(v136, v137);
   real2 v1092 = minus(v777, v776);
   real2 v1096 = plus(v776, v777);
   real2 v773 = minusplus(v771, v772);
   real2 v775 = minusplus(uminus(v771), v772);
   real2 v783 = timesminusplus(reverse(v773), load(tbl, 130 * VECWIDTH + tbloffset), times(v773, load(tbl, 131 * VECWIDTH + tbloffset)));
   real2 v789 = timesminusplus(reverse(v775), load(tbl, 132 * VECWIDTH + tbloffset), times(v775, load(tbl, 133 * VECWIDTH + tbloffset)));
   real2 v74 = load(in, 72 << inShift);
   real2 v10 = load(in, 8 << inShift);
   real2 v296 = plus(v10, v74);
   real2 v292 = minus(v74, v10);
   real2 v42 = load(in, 40 << inShift);
   real2 v106 = load(in, 104 << inShift);
   real2 v291 = reverse(minus(v42, v106));
   real2 v297 = plus(v42, v106);
   real2 v293 = minusplus(v291, v292);
   real2 v295 = minusplus(uminus(v291), v292);
   real2 v309 = timesminusplus(reverse(v295), load(tbl, 36 * VECWIDTH + tbloffset), times(v295, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v932 = minus(v297, v296);
   real2 v936 = plus(v296, v297);
   real2 v122 = load(in, 120 << inShift);
   real2 v58 = load(in, 56 << inShift);
   real2 v617 = plus(v58, v122);
   real2 v611 = reverse(minus(v58, v122));
   real2 v26 = load(in, 24 << inShift);
   real2 v90 = load(in, 88 << inShift);
   real2 v612 = minus(v90, v26);
   real2 v616 = plus(v26, v90);
   real2 v937 = plus(v616, v617);
   real2 v931 = reverse(minus(v616, v617));
   real2 v1091 = reverse(minus(v936, v937));
   real2 v1097 = plus(v936, v937);
   real2 v933 = minusplus(v931, v932);
   real2 v935 = minusplus(uminus(v931), v932);
   real2 v1093 = minusplus(v1091, v1092);
   real2 v1095 = minusplus(uminus(v1091), v1092);
   real2 v1103 = timesminusplus(reverse(v1093), load(tbl, 194 * VECWIDTH + tbloffset), times(v1093, load(tbl, 195 * VECWIDTH + tbloffset)));
   real2 v1468 = plus(v1103, v1183);
   real2 v1464 = minus(v1183, v1103);
   real2 v1508 = plus(v1468, v1469);
   real2 v1504 = minus(v1469, v1468);
   real2 v1252 = minus(v1097, v1096);
   real2 v1256 = plus(v1096, v1097);
   real2 v1336 = plus(v1256, v1257);
   real2 v1332 = minus(v1257, v1256);
   real2 v1335 = minusplus(uminus(v1331), v1332);
   real2 v1333 = minusplus(v1331, v1332);
   real2 v1343 = timesminusplus(reverse(v1333), load(tbl, 242 * VECWIDTH + tbloffset), times(v1333, load(tbl, 243 * VECWIDTH + tbloffset)));
   real2 v1349 = timesminusplus(reverse(v1335), load(tbl, 244 * VECWIDTH + tbloffset), times(v1335, load(tbl, 245 * VECWIDTH + tbloffset)));
   real2 v1376 = plus(v1336, v1337);
   real2 v1372 = minus(v1337, v1336);
   real2 v1465 = minusplus(v1463, v1464);
   real2 v1467 = minusplus(uminus(v1463), v1464);
   real2 v1255 = minusplus(uminus(v1251), v1252);
   real2 v1253 = minusplus(v1251, v1252);
   real2 v1481 = timesminusplus(reverse(v1467), load(tbl, 264 * VECWIDTH + tbloffset), times(v1467, load(tbl, 265 * VECWIDTH + tbloffset)));
   real2 v1475 = timesminusplus(reverse(v1465), load(tbl, 262 * VECWIDTH + tbloffset), times(v1465, load(tbl, 263 * VECWIDTH + tbloffset)));
   real2 v1109 = timesminusplus(reverse(v1095), load(tbl, 196 * VECWIDTH + tbloffset), times(v1095, load(tbl, 197 * VECWIDTH + tbloffset)));
   real2 v1542 = minus(v1189, v1109);
   real2 v1546 = plus(v1109, v1189);
   real2 v1545 = minusplus(uminus(v1541), v1542);
   real2 v1543 = minusplus(v1541, v1542);
   real2 v1553 = timesminusplus(reverse(v1543), load(tbl, 274 * VECWIDTH + tbloffset), times(v1543, load(tbl, 275 * VECWIDTH + tbloffset)));
   real2 v1559 = timesminusplus(reverse(v1545), load(tbl, 276 * VECWIDTH + tbloffset), times(v1545, load(tbl, 277 * VECWIDTH + tbloffset)));
   real2 v1582 = minus(v1547, v1546);
   real2 v1586 = plus(v1546, v1547);
   real2 v1269 = timesminusplus(reverse(v1255), load(tbl, 228 * VECWIDTH + tbloffset), times(v1255, load(tbl, 229 * VECWIDTH + tbloffset)));
   real2 v1438 = minus(v1309, v1269);
   real2 v1442 = plus(v1269, v1309);
   real2 v1263 = timesminusplus(reverse(v1253), load(tbl, 226 * VECWIDTH + tbloffset), times(v1253, load(tbl, 227 * VECWIDTH + tbloffset)));
   real2 v943 = timesminusplus(reverse(v933), load(tbl, 162 * VECWIDTH + tbloffset), times(v933, load(tbl, 163 * VECWIDTH + tbloffset)));
   real2 v1624 = plus(v783, v943);
   real2 v1620 = minus(v943, v783);
   real2 v1623 = minusplus(uminus(v1619), v1620);
   real2 v1621 = minusplus(v1619, v1620);
   real2 v1700 = minus(v1625, v1624);
   real2 v1704 = plus(v1624, v1625);
   real2 v1631 = timesminusplus(reverse(v1621), load(tbl, 286 * VECWIDTH + tbloffset), times(v1621, load(tbl, 287 * VECWIDTH + tbloffset)));
   real2 v949 = timesminusplus(reverse(v935), load(tbl, 164 * VECWIDTH + tbloffset), times(v935, load(tbl, 165 * VECWIDTH + tbloffset)));
   real2 v1830 = minus(v949, v789);
   real2 v1834 = plus(v789, v949);
   real2 v1782 = plus(v1631, v1671);
   real2 v1778 = minus(v1671, v1631);
   real2 v1910 = minus(v1835, v1834);
   real2 v1914 = plus(v1834, v1835);
   real2 v1950 = minus(v1915, v1914);
   real2 v1954 = plus(v1914, v1915);
   real2 v1913 = minusplus(uminus(v1909), v1910);
   real2 v1911 = minusplus(v1909, v1910);
   real2 v613 = minusplus(v611, v612);
   real2 v615 = minusplus(uminus(v611), v612);
   real2 v629 = timesminusplus(reverse(v615), load(tbl, 100 * VECWIDTH + tbloffset), times(v615, load(tbl, 101 * VECWIDTH + tbloffset)));
   real2 v1744 = plus(v1704, v1705);
   real2 v1740 = minus(v1705, v1704);
   real2 v1637 = timesminusplus(reverse(v1623), load(tbl, 288 * VECWIDTH + tbloffset), times(v1623, load(tbl, 289 * VECWIDTH + tbloffset)));
   real2 v1927 = timesminusplus(reverse(v1913), load(tbl, 340 * VECWIDTH + tbloffset), times(v1913, load(tbl, 341 * VECWIDTH + tbloffset)));
   real2 v2571 = plus(v309, v629);
   real2 v2565 = reverse(minus(v309, v629));
   real2 v1833 = minusplus(uminus(v1829), v1830);
   real2 v1831 = minusplus(v1829, v1830);
   real2 v1921 = timesminusplus(reverse(v1911), load(tbl, 338 * VECWIDTH + tbloffset), times(v1911, load(tbl, 339 * VECWIDTH + tbloffset)));
   real2 v1804 = minus(v1677, v1637);
   real2 v1808 = plus(v1637, v1677);
   real2 v1847 = timesminusplus(reverse(v1833), load(tbl, 324 * VECWIDTH + tbloffset), times(v1833, load(tbl, 325 * VECWIDTH + tbloffset)));
   real2 v2014 = minus(v1887, v1847);
   real2 v2018 = plus(v1847, v1887);
   real2 v1841 = timesminusplus(reverse(v1831), load(tbl, 322 * VECWIDTH + tbloffset), times(v1831, load(tbl, 323 * VECWIDTH + tbloffset)));
   real2 v1988 = minus(v1881, v1841);
   real2 v1992 = plus(v1841, v1881);
   real2 v1703 = minusplus(uminus(v1699), v1700);
   real2 v1701 = minusplus(v1699, v1700);
   real2 v1717 = timesminusplus(reverse(v1703), load(tbl, 304 * VECWIDTH + tbloffset), times(v1703, load(tbl, 305 * VECWIDTH + tbloffset)));
   real2 v1711 = timesminusplus(reverse(v1701), load(tbl, 302 * VECWIDTH + tbloffset), times(v1701, load(tbl, 303 * VECWIDTH + tbloffset)));
   real2 v2730 = plus(v2570, v2571);
   real2 v2726 = minus(v2571, v2570);
   real2 v1412 = minus(v1303, v1263);
   real2 v1416 = plus(v1263, v1303);
   real2 v63 = load(in, 61 << inShift);
   real2 v127 = load(in, 125 << inShift);
   real2 v717 = plus(v63, v127);
   real2 v711 = reverse(minus(v63, v127));
   real2 v95 = load(in, 93 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v712 = minus(v95, v31);
   real2 v716 = plus(v31, v95);
   real2 v1037 = plus(v716, v717);
   real2 v1031 = reverse(minus(v716, v717));
   real2 v79 = load(in, 77 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v396 = plus(v15, v79);
   real2 v392 = minus(v79, v15);
   real2 v111 = load(in, 109 << inShift);
   real2 v47 = load(in, 45 << inShift);
   real2 v397 = plus(v47, v111);
   real2 v391 = reverse(minus(v47, v111));
   real2 v1032 = minus(v397, v396);
   real2 v1036 = plus(v396, v397);
   real2 v1033 = minusplus(v1031, v1032);
   real2 v1035 = minusplus(uminus(v1031), v1032);
   real2 v1049 = timesminusplus(reverse(v1035), load(tbl, 184 * VECWIDTH + tbloffset), times(v1035, load(tbl, 185 * VECWIDTH + tbloffset)));
   real2 v1043 = timesminusplus(reverse(v1033), load(tbl, 182 * VECWIDTH + tbloffset), times(v1033, load(tbl, 183 * VECWIDTH + tbloffset)));
   real2 v1197 = plus(v1036, v1037);
   real2 v1191 = reverse(minus(v1036, v1037));
   real2 v23 = load(in, 21 << inShift);
   real2 v87 = load(in, 85 << inShift);
   real2 v556 = plus(v23, v87);
   real2 v552 = minus(v87, v23);
   real2 v119 = load(in, 117 << inShift);
   real2 v55 = load(in, 53 << inShift);
   real2 v557 = plus(v55, v119);
   real2 v551 = reverse(minus(v55, v119));
   real2 v877 = plus(v556, v557);
   real2 v871 = reverse(minus(v556, v557));
   real2 v7 = load(in, 5 << inShift);
   real2 v71 = load(in, 69 << inShift);
   real2 v232 = minus(v71, v7);
   real2 v236 = plus(v7, v71);
   real2 v103 = load(in, 101 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v237 = plus(v39, v103);
   real2 v231 = reverse(minus(v39, v103));
   real2 v876 = plus(v236, v237);
   real2 v872 = minus(v237, v236);
   real2 v1192 = minus(v877, v876);
   real2 v1196 = plus(v876, v877);
   real2 v1271 = reverse(minus(v1196, v1197));
   real2 v1277 = plus(v1196, v1197);
   real2 v875 = minusplus(uminus(v871), v872);
   real2 v873 = minusplus(v871, v872);
   real2 v883 = timesminusplus(reverse(v873), load(tbl, 150 * VECWIDTH + tbloffset), times(v873, load(tbl, 151 * VECWIDTH + tbloffset)));
   real2 v1639 = reverse(minus(v883, v1043));
   real2 v1645 = plus(v883, v1043);
   real2 v1195 = minusplus(uminus(v1191), v1192);
   real2 v1193 = minusplus(v1191, v1192);
   real2 v1209 = timesminusplus(reverse(v1195), load(tbl, 216 * VECWIDTH + tbloffset), times(v1195, load(tbl, 217 * VECWIDTH + tbloffset)));
   real2 v1203 = timesminusplus(reverse(v1193), load(tbl, 214 * VECWIDTH + tbloffset), times(v1193, load(tbl, 215 * VECWIDTH + tbloffset)));
   real2 v83 = load(in, 81 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v476 = plus(v19, v83);
   real2 v472 = minus(v83, v19);
   real2 v51 = load(in, 49 << inShift);
   real2 v115 = load(in, 113 << inShift);
   real2 v477 = plus(v51, v115);
   real2 v471 = reverse(minus(v51, v115));
   real2 v797 = plus(v476, v477);
   real2 v791 = reverse(minus(v476, v477));
   real2 v3 = load(in, 1 << inShift);
   real2 v67 = load(in, 65 << inShift);
   real2 v156 = plus(v3, v67);
   real2 v152 = minus(v67, v3);
   real2 v35 = load(in, 33 << inShift);
   real2 v99 = load(in, 97 << inShift);
   real2 v157 = plus(v35, v99);
   real2 v151 = reverse(minus(v35, v99));
   real2 v792 = minus(v157, v156);
   real2 v796 = plus(v156, v157);
   real2 v793 = minusplus(v791, v792);
   real2 v795 = minusplus(uminus(v791), v792);
   real2 v803 = timesminusplus(reverse(v793), load(tbl, 134 * VECWIDTH + tbloffset), times(v793, load(tbl, 135 * VECWIDTH + tbloffset)));
   real2 v1112 = minus(v797, v796);
   real2 v1116 = plus(v796, v797);
   real2 v107 = load(in, 105 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v317 = plus(v43, v107);
   real2 v311 = reverse(minus(v43, v107));
   real2 v75 = load(in, 73 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v316 = plus(v11, v75);
   real2 v312 = minus(v75, v11);
   real2 v956 = plus(v316, v317);
   real2 v952 = minus(v317, v316);
   real2 v59 = load(in, 57 << inShift);
   real2 v123 = load(in, 121 << inShift);
   real2 v631 = reverse(minus(v59, v123));
   real2 v637 = plus(v59, v123);
   real2 v27 = load(in, 25 << inShift);
   real2 v91 = load(in, 89 << inShift);
   real2 v636 = plus(v27, v91);
   real2 v632 = minus(v91, v27);
   real2 v957 = plus(v636, v637);
   real2 v951 = reverse(minus(v636, v637));
   real2 v1111 = reverse(minus(v956, v957));
   real2 v1117 = plus(v956, v957);
   real2 v1276 = plus(v1116, v1117);
   real2 v1272 = minus(v1117, v1116);
   real2 v1275 = minusplus(uminus(v1271), v1272);
   real2 v1273 = minusplus(v1271, v1272);
   real2 v1283 = timesminusplus(reverse(v1273), load(tbl, 230 * VECWIDTH + tbloffset), times(v1273, load(tbl, 231 * VECWIDTH + tbloffset)));
   real2 v1352 = minus(v1277, v1276);
   real2 v1356 = plus(v1276, v1277);
   real2 v1289 = timesminusplus(reverse(v1275), load(tbl, 232 * VECWIDTH + tbloffset), times(v1275, load(tbl, 233 * VECWIDTH + tbloffset)));
   real2 v1115 = minusplus(uminus(v1111), v1112);
   real2 v1113 = minusplus(v1111, v1112);
   real2 v1123 = timesminusplus(reverse(v1113), load(tbl, 198 * VECWIDTH + tbloffset), times(v1113, load(tbl, 199 * VECWIDTH + tbloffset)));
   real2 v1129 = timesminusplus(reverse(v1115), load(tbl, 200 * VECWIDTH + tbloffset), times(v1115, load(tbl, 201 * VECWIDTH + tbloffset)));
   real2 v1488 = plus(v1123, v1203);
   real2 v1484 = minus(v1203, v1123);
   real2 v1566 = plus(v1129, v1209);
   real2 v1562 = minus(v1209, v1129);
   real2 v85 = load(in, 83 << inShift);
   real2 v21 = load(in, 19 << inShift);
   real2 v512 = minus(v85, v21);
   real2 v516 = plus(v21, v85);
   real2 v117 = load(in, 115 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v517 = plus(v53, v117);
   real2 v511 = reverse(minus(v53, v117));
   real2 v831 = reverse(minus(v516, v517));
   real2 v837 = plus(v516, v517);
   real2 v69 = load(in, 67 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v192 = minus(v69, v5);
   real2 v196 = plus(v5, v69);
   real2 v37 = load(in, 35 << inShift);
   real2 v101 = load(in, 99 << inShift);
   real2 v197 = plus(v37, v101);
   real2 v191 = reverse(minus(v37, v101));
   real2 v832 = minus(v197, v196);
   real2 v836 = plus(v196, v197);
   real2 v1152 = minus(v837, v836);
   real2 v1156 = plus(v836, v837);
   real2 v61 = load(in, 59 << inShift);
   real2 v125 = load(in, 123 << inShift);
   real2 v677 = plus(v61, v125);
   real2 v671 = reverse(minus(v61, v125));
   real2 v29 = load(in, 27 << inShift);
   real2 v93 = load(in, 91 << inShift);
   real2 v672 = minus(v93, v29);
   real2 v676 = plus(v29, v93);
   real2 v997 = plus(v676, v677);
   real2 v991 = reverse(minus(v676, v677));
   real2 v109 = load(in, 107 << inShift);
   real2 v45 = load(in, 43 << inShift);
   real2 v357 = plus(v45, v109);
   real2 v351 = reverse(minus(v45, v109));
   real2 v77 = load(in, 75 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v352 = minus(v77, v13);
   real2 v356 = plus(v13, v77);
   real2 v992 = minus(v357, v356);
   real2 v996 = plus(v356, v357);
   real2 v1157 = plus(v996, v997);
   real2 v1151 = reverse(minus(v996, v997));
   real2 v1155 = minusplus(uminus(v1151), v1152);
   real2 v1153 = minusplus(v1151, v1152);
   real2 v1163 = timesminusplus(reverse(v1153), load(tbl, 206 * VECWIDTH + tbloffset), times(v1153, load(tbl, 207 * VECWIDTH + tbloffset)));
   real2 v1316 = plus(v1156, v1157);
   real2 v1312 = minus(v1157, v1156);
   real2 v41 = load(in, 39 << inShift);
   real2 v105 = load(in, 103 << inShift);
   real2 v277 = plus(v41, v105);
   real2 v271 = reverse(minus(v41, v105));
   real2 v9 = load(in, 7 << inShift);
   real2 v73 = load(in, 71 << inShift);
   real2 v276 = plus(v9, v73);
   real2 v272 = minus(v73, v9);
   real2 v916 = plus(v276, v277);
   real2 v912 = minus(v277, v276);
   real2 v89 = load(in, 87 << inShift);
   real2 v25 = load(in, 23 << inShift);
   real2 v592 = minus(v89, v25);
   real2 v596 = plus(v25, v89);
   real2 v57 = load(in, 55 << inShift);
   real2 v121 = load(in, 119 << inShift);
   real2 v591 = reverse(minus(v57, v121));
   real2 v597 = plus(v57, v121);
   real2 v911 = reverse(minus(v596, v597));
   real2 v917 = plus(v596, v597);
   real2 v1236 = plus(v916, v917);
   real2 v1232 = minus(v917, v916);
   real2 v81 = load(in, 79 << inShift);
   real2 v17 = load(in, 15 << inShift);
   real2 v432 = minus(v81, v17);
   real2 v436 = plus(v17, v81);
   real2 v113 = load(in, 111 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v437 = plus(v49, v113);
   real2 v431 = reverse(minus(v49, v113));
   real2 v1072 = minus(v437, v436);
   real2 v1076 = plus(v436, v437);
   real2 v65 = load(in, 63 << inShift);
   real2 v129 = load(in, 127 << inShift);
   real2 v757 = plus(v65, v129);
   real2 v751 = reverse(minus(v65, v129));
   real2 v97 = load(in, 95 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v752 = minus(v97, v33);
   real2 v756 = plus(v33, v97);
   real2 v1077 = plus(v756, v757);
   real2 v1071 = reverse(minus(v756, v757));
   real2 v1231 = reverse(minus(v1076, v1077));
   real2 v1237 = plus(v1076, v1077);
   real2 v1317 = plus(v1236, v1237);
   real2 v1311 = reverse(minus(v1236, v1237));
   real2 v1351 = reverse(minus(v1316, v1317));
   real2 v1357 = plus(v1316, v1317);
   real2 v1371 = reverse(minus(v1356, v1357));
   real2 v1377 = plus(v1356, v1357);
   scatter(out, 0, 128, plus(v1376, v1377));
   real2 v1390 = minus(v1376, v1377);
   scatter(out, 64, 128, timesminusplus(v1390, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1390), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1353 = minusplus(v1351, v1352);
   real2 v1355 = minusplus(uminus(v1351), v1352);
   real2 v1369 = timesminusplus(reverse(v1355), load(tbl, 248 * VECWIDTH + tbloffset), times(v1355, load(tbl, 249 * VECWIDTH + tbloffset)));
   scatter(out, 48, 128, plus(v1349, v1369));
   real2 v1404 = minus(v1349, v1369);
   scatter(out, 112, 128, timesminusplus(v1404, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1404), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1363 = timesminusplus(reverse(v1353), load(tbl, 246 * VECWIDTH + tbloffset), times(v1353, load(tbl, 247 * VECWIDTH + tbloffset)));
   scatter(out, 16, 128, plus(v1343, v1363));
   real2 v1398 = minus(v1343, v1363);
   scatter(out, 80, 128, timesminusplus(v1398, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1398), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1373 = minusplus(v1371, v1372);
   real2 v1375 = minusplus(uminus(v1371), v1372);
   scatter(out, 96, 128, timesminusplus(reverse(v1375), load(tbl, 252 * VECWIDTH + tbloffset), times(v1375, load(tbl, 253 * VECWIDTH + tbloffset))));
   scatter(out, 32, 128, timesminusplus(reverse(v1373), load(tbl, 250 * VECWIDTH + tbloffset), times(v1373, load(tbl, 251 * VECWIDTH + tbloffset))));
   real2 v1313 = minusplus(v1311, v1312);
   real2 v1315 = minusplus(uminus(v1311), v1312);
   real2 v1323 = timesminusplus(reverse(v1313), load(tbl, 238 * VECWIDTH + tbloffset), times(v1313, load(tbl, 239 * VECWIDTH + tbloffset)));
   real2 v1417 = plus(v1283, v1323);
   real2 v1411 = reverse(minus(v1283, v1323));
   scatter(out, 8, 128, plus(v1416, v1417));
   real2 v1430 = minus(v1416, v1417);
   scatter(out, 72, 128, timesminusplus(v1430, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1430), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1413 = minusplus(v1411, v1412);
   real2 v1415 = minusplus(uminus(v1411), v1412);
   scatter(out, 104, 128, timesminusplus(reverse(v1415), load(tbl, 256 * VECWIDTH + tbloffset), times(v1415, load(tbl, 257 * VECWIDTH + tbloffset))));
   scatter(out, 40, 128, timesminusplus(reverse(v1413), load(tbl, 254 * VECWIDTH + tbloffset), times(v1413, load(tbl, 255 * VECWIDTH + tbloffset))));
   real2 v1329 = timesminusplus(reverse(v1315), load(tbl, 240 * VECWIDTH + tbloffset), times(v1315, load(tbl, 241 * VECWIDTH + tbloffset)));
   real2 v1443 = plus(v1289, v1329);
   real2 v1437 = reverse(minus(v1289, v1329));
   scatter(out, 24, 128, plus(v1442, v1443));
   real2 v1456 = minus(v1442, v1443);
   scatter(out, 88, 128, timesminusplus(v1456, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1456), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1441 = minusplus(uminus(v1437), v1438);
   real2 v1439 = minusplus(v1437, v1438);
   scatter(out, 120, 128, timesminusplus(reverse(v1441), load(tbl, 260 * VECWIDTH + tbloffset), times(v1441, load(tbl, 261 * VECWIDTH + tbloffset))));
   scatter(out, 56, 128, timesminusplus(reverse(v1439), load(tbl, 258 * VECWIDTH + tbloffset), times(v1439, load(tbl, 259 * VECWIDTH + tbloffset))));
   real2 v1235 = minusplus(uminus(v1231), v1232);
   real2 v1233 = minusplus(v1231, v1232);
   real2 v1243 = timesminusplus(reverse(v1233), load(tbl, 222 * VECWIDTH + tbloffset), times(v1233, load(tbl, 223 * VECWIDTH + tbloffset)));
   real2 v1489 = plus(v1163, v1243);
   real2 v1483 = reverse(minus(v1163, v1243));
   real2 v1509 = plus(v1488, v1489);
   real2 v1503 = reverse(minus(v1488, v1489));
   scatter(out, 4, 128, plus(v1508, v1509));
   real2 v1522 = minus(v1508, v1509);
   scatter(out, 68, 128, timesminusplus(v1522, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1522), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1507 = minusplus(uminus(v1503), v1504);
   real2 v1505 = minusplus(v1503, v1504);
   scatter(out, 36, 128, timesminusplus(reverse(v1505), load(tbl, 270 * VECWIDTH + tbloffset), times(v1505, load(tbl, 271 * VECWIDTH + tbloffset))));
   scatter(out, 100, 128, timesminusplus(reverse(v1507), load(tbl, 272 * VECWIDTH + tbloffset), times(v1507, load(tbl, 273 * VECWIDTH + tbloffset))));
   real2 v1485 = minusplus(v1483, v1484);
   real2 v1487 = minusplus(uminus(v1483), v1484);
   real2 v1501 = timesminusplus(reverse(v1487), load(tbl, 268 * VECWIDTH + tbloffset), times(v1487, load(tbl, 269 * VECWIDTH + tbloffset)));
   scatter(out, 52, 128, plus(v1481, v1501));
   real2 v1534 = minus(v1481, v1501);
   scatter(out, 116, 128, timesminusplus(v1534, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1534), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1495 = timesminusplus(reverse(v1485), load(tbl, 266 * VECWIDTH + tbloffset), times(v1485, load(tbl, 267 * VECWIDTH + tbloffset)));
   scatter(out, 20, 128, plus(v1475, v1495));
   real2 v1528 = minus(v1475, v1495);
   scatter(out, 84, 128, timesminusplus(v1528, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1528), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1249 = timesminusplus(reverse(v1235), load(tbl, 224 * VECWIDTH + tbloffset), times(v1235, load(tbl, 225 * VECWIDTH + tbloffset)));
   real2 v1169 = timesminusplus(reverse(v1155), load(tbl, 208 * VECWIDTH + tbloffset), times(v1155, load(tbl, 209 * VECWIDTH + tbloffset)));
   real2 v1567 = plus(v1169, v1249);
   real2 v1561 = reverse(minus(v1169, v1249));
   real2 v1581 = reverse(minus(v1566, v1567));
   real2 v1587 = plus(v1566, v1567);
   scatter(out, 12, 128, plus(v1586, v1587));
   real2 v1600 = minus(v1586, v1587);
   scatter(out, 76, 128, timesminusplus(v1600, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1600), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1583 = minusplus(v1581, v1582);
   scatter(out, 44, 128, timesminusplus(reverse(v1583), load(tbl, 282 * VECWIDTH + tbloffset), times(v1583, load(tbl, 283 * VECWIDTH + tbloffset))));
   real2 v1585 = minusplus(uminus(v1581), v1582);
   scatter(out, 108, 128, timesminusplus(reverse(v1585), load(tbl, 284 * VECWIDTH + tbloffset), times(v1585, load(tbl, 285 * VECWIDTH + tbloffset))));
   real2 v1565 = minusplus(uminus(v1561), v1562);
   real2 v1563 = minusplus(v1561, v1562);
   real2 v1579 = timesminusplus(reverse(v1565), load(tbl, 280 * VECWIDTH + tbloffset), times(v1565, load(tbl, 281 * VECWIDTH + tbloffset)));
   scatter(out, 60, 128, plus(v1559, v1579));
   real2 v1612 = minus(v1559, v1579);
   scatter(out, 124, 128, timesminusplus(v1612, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1612), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1573 = timesminusplus(reverse(v1563), load(tbl, 278 * VECWIDTH + tbloffset), times(v1563, load(tbl, 279 * VECWIDTH + tbloffset)));
   scatter(out, 28, 128, plus(v1553, v1573));
   real2 v1606 = minus(v1553, v1573);
   scatter(out, 92, 128, timesminusplus(v1606, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1606), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v833 = minusplus(v831, v832);
   real2 v835 = minusplus(uminus(v831), v832);
   real2 v955 = minusplus(uminus(v951), v952);
   real2 v953 = minusplus(v951, v952);
   real2 v963 = timesminusplus(reverse(v953), load(tbl, 166 * VECWIDTH + tbloffset), times(v953, load(tbl, 167 * VECWIDTH + tbloffset)));
   real2 v995 = minusplus(uminus(v991), v992);
   real2 v993 = minusplus(v991, v992);
   real2 v1003 = timesminusplus(reverse(v993), load(tbl, 174 * VECWIDTH + tbloffset), times(v993, load(tbl, 175 * VECWIDTH + tbloffset)));
   real2 v843 = timesminusplus(reverse(v833), load(tbl, 142 * VECWIDTH + tbloffset), times(v833, load(tbl, 143 * VECWIDTH + tbloffset)));
   real2 v1640 = minus(v963, v803);
   real2 v1644 = plus(v803, v963);
   real2 v1680 = minus(v1003, v843);
   real2 v1684 = plus(v843, v1003);
   real2 v1641 = minusplus(v1639, v1640);
   real2 v1643 = minusplus(uminus(v1639), v1640);
   real2 v1657 = timesminusplus(reverse(v1643), load(tbl, 292 * VECWIDTH + tbloffset), times(v1643, load(tbl, 293 * VECWIDTH + tbloffset)));
   real2 v913 = minusplus(v911, v912);
   real2 v915 = minusplus(uminus(v911), v912);
   real2 v1073 = minusplus(v1071, v1072);
   real2 v1075 = minusplus(uminus(v1071), v1072);
   real2 v923 = timesminusplus(reverse(v913), load(tbl, 158 * VECWIDTH + tbloffset), times(v913, load(tbl, 159 * VECWIDTH + tbloffset)));
   real2 v1083 = timesminusplus(reverse(v1073), load(tbl, 190 * VECWIDTH + tbloffset), times(v1073, load(tbl, 191 * VECWIDTH + tbloffset)));
   real2 v1685 = plus(v923, v1083);
   real2 v1679 = reverse(minus(v923, v1083));
   real2 v1681 = minusplus(v1679, v1680);
   real2 v1683 = minusplus(uminus(v1679), v1680);
   real2 v1697 = timesminusplus(reverse(v1683), load(tbl, 300 * VECWIDTH + tbloffset), times(v1683, load(tbl, 301 * VECWIDTH + tbloffset)));
   real2 v1809 = plus(v1657, v1697);
   real2 v1803 = reverse(minus(v1657, v1697));
   scatter(out, 26, 128, plus(v1808, v1809));
   real2 v1822 = minus(v1808, v1809);
   scatter(out, 90, 128, timesminusplus(v1822, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1822), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1807 = minusplus(uminus(v1803), v1804);
   real2 v1805 = minusplus(v1803, v1804);
   scatter(out, 58, 128, timesminusplus(reverse(v1805), load(tbl, 318 * VECWIDTH + tbloffset), times(v1805, load(tbl, 319 * VECWIDTH + tbloffset))));
   scatter(out, 122, 128, timesminusplus(reverse(v1807), load(tbl, 320 * VECWIDTH + tbloffset), times(v1807, load(tbl, 321 * VECWIDTH + tbloffset))));
   real2 v1651 = timesminusplus(reverse(v1641), load(tbl, 290 * VECWIDTH + tbloffset), times(v1641, load(tbl, 291 * VECWIDTH + tbloffset)));
   real2 v1691 = timesminusplus(reverse(v1681), load(tbl, 298 * VECWIDTH + tbloffset), times(v1681, load(tbl, 299 * VECWIDTH + tbloffset)));
   real2 v1783 = plus(v1651, v1691);
   real2 v1777 = reverse(minus(v1651, v1691));
   real2 v1779 = minusplus(v1777, v1778);
   real2 v1781 = minusplus(uminus(v1777), v1778);
   scatter(out, 106, 128, timesminusplus(reverse(v1781), load(tbl, 316 * VECWIDTH + tbloffset), times(v1781, load(tbl, 317 * VECWIDTH + tbloffset))));
   scatter(out, 42, 128, timesminusplus(reverse(v1779), load(tbl, 314 * VECWIDTH + tbloffset), times(v1779, load(tbl, 315 * VECWIDTH + tbloffset))));
   scatter(out, 10, 128, plus(v1782, v1783));
   real2 v1796 = minus(v1782, v1783);
   scatter(out, 74, 128, timesminusplus(v1796, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1796), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1720 = minus(v1645, v1644);
   real2 v1724 = plus(v1644, v1645);
   real2 v1719 = reverse(minus(v1684, v1685));
   real2 v1725 = plus(v1684, v1685);
   real2 v1745 = plus(v1724, v1725);
   real2 v1739 = reverse(minus(v1724, v1725));
   scatter(out, 2, 128, plus(v1744, v1745));
   real2 v1758 = minus(v1744, v1745);
   scatter(out, 66, 128, timesminusplus(v1758, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1758), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1741 = minusplus(v1739, v1740);
   real2 v1743 = minusplus(uminus(v1739), v1740);
   scatter(out, 98, 128, timesminusplus(reverse(v1743), load(tbl, 312 * VECWIDTH + tbloffset), times(v1743, load(tbl, 313 * VECWIDTH + tbloffset))));
   scatter(out, 34, 128, timesminusplus(reverse(v1741), load(tbl, 310 * VECWIDTH + tbloffset), times(v1741, load(tbl, 311 * VECWIDTH + tbloffset))));
   real2 v1723 = minusplus(uminus(v1719), v1720);
   real2 v1721 = minusplus(v1719, v1720);
   real2 v1737 = timesminusplus(reverse(v1723), load(tbl, 308 * VECWIDTH + tbloffset), times(v1723, load(tbl, 309 * VECWIDTH + tbloffset)));
   scatter(out, 50, 128, plus(v1717, v1737));
   real2 v1770 = minus(v1717, v1737);
   scatter(out, 114, 128, timesminusplus(v1770, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1770), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1731 = timesminusplus(reverse(v1721), load(tbl, 306 * VECWIDTH + tbloffset), times(v1721, load(tbl, 307 * VECWIDTH + tbloffset)));
   scatter(out, 18, 128, plus(v1711, v1731));
   real2 v1764 = minus(v1711, v1731);
   scatter(out, 82, 128, timesminusplus(v1764, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1764), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v809 = timesminusplus(reverse(v795), load(tbl, 136 * VECWIDTH + tbloffset), times(v795, load(tbl, 137 * VECWIDTH + tbloffset)));
   real2 v969 = timesminusplus(reverse(v955), load(tbl, 168 * VECWIDTH + tbloffset), times(v955, load(tbl, 169 * VECWIDTH + tbloffset)));
   real2 v1850 = minus(v969, v809);
   real2 v1854 = plus(v809, v969);
   real2 v849 = timesminusplus(reverse(v835), load(tbl, 144 * VECWIDTH + tbloffset), times(v835, load(tbl, 145 * VECWIDTH + tbloffset)));
   real2 v929 = timesminusplus(reverse(v915), load(tbl, 160 * VECWIDTH + tbloffset), times(v915, load(tbl, 161 * VECWIDTH + tbloffset)));
   real2 v889 = timesminusplus(reverse(v875), load(tbl, 152 * VECWIDTH + tbloffset), times(v875, load(tbl, 153 * VECWIDTH + tbloffset)));
   real2 v1089 = timesminusplus(reverse(v1075), load(tbl, 192 * VECWIDTH + tbloffset), times(v1075, load(tbl, 193 * VECWIDTH + tbloffset)));
   real2 v1009 = timesminusplus(reverse(v995), load(tbl, 176 * VECWIDTH + tbloffset), times(v995, load(tbl, 177 * VECWIDTH + tbloffset)));
   real2 v1890 = minus(v1009, v849);
   real2 v1894 = plus(v849, v1009);
   real2 v1849 = reverse(minus(v889, v1049));
   real2 v1855 = plus(v889, v1049);
   real2 v1930 = minus(v1855, v1854);
   real2 v1934 = plus(v1854, v1855);
   real2 v1895 = plus(v929, v1089);
   real2 v1889 = reverse(minus(v929, v1089));
   real2 v1929 = reverse(minus(v1894, v1895));
   real2 v1935 = plus(v1894, v1895);
   real2 v1955 = plus(v1934, v1935);
   real2 v1949 = reverse(minus(v1934, v1935));
   scatter(out, 6, 128, plus(v1954, v1955));
   real2 v1968 = minus(v1954, v1955);
   scatter(out, 70, 128, timesminusplus(v1968, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1968), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1951 = minusplus(v1949, v1950);
   scatter(out, 38, 128, timesminusplus(reverse(v1951), load(tbl, 346 * VECWIDTH + tbloffset), times(v1951, load(tbl, 347 * VECWIDTH + tbloffset))));
   real2 v1953 = minusplus(uminus(v1949), v1950);
   scatter(out, 102, 128, timesminusplus(reverse(v1953), load(tbl, 348 * VECWIDTH + tbloffset), times(v1953, load(tbl, 349 * VECWIDTH + tbloffset))));
   real2 v1931 = minusplus(v1929, v1930);
   real2 v1933 = minusplus(uminus(v1929), v1930);
   real2 v1947 = timesminusplus(reverse(v1933), load(tbl, 344 * VECWIDTH + tbloffset), times(v1933, load(tbl, 345 * VECWIDTH + tbloffset)));
   scatter(out, 54, 128, plus(v1927, v1947));
   real2 v1980 = minus(v1927, v1947);
   scatter(out, 118, 128, timesminusplus(v1980, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1980), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1941 = timesminusplus(reverse(v1931), load(tbl, 342 * VECWIDTH + tbloffset), times(v1931, load(tbl, 343 * VECWIDTH + tbloffset)));
   scatter(out, 22, 128, plus(v1921, v1941));
   real2 v1974 = minus(v1921, v1941);
   scatter(out, 86, 128, timesminusplus(v1974, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1974), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1851 = minusplus(v1849, v1850);
   real2 v1853 = minusplus(uminus(v1849), v1850);
   real2 v1867 = timesminusplus(reverse(v1853), load(tbl, 328 * VECWIDTH + tbloffset), times(v1853, load(tbl, 329 * VECWIDTH + tbloffset)));
   real2 v1891 = minusplus(v1889, v1890);
   real2 v1893 = minusplus(uminus(v1889), v1890);
   real2 v1907 = timesminusplus(reverse(v1893), load(tbl, 336 * VECWIDTH + tbloffset), times(v1893, load(tbl, 337 * VECWIDTH + tbloffset)));
   real2 v2019 = plus(v1867, v1907);
   real2 v2013 = reverse(minus(v1867, v1907));
   scatter(out, 30, 128, plus(v2018, v2019));
   real2 v2032 = minus(v2018, v2019);
   scatter(out, 94, 128, timesminusplus(v2032, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2032), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2017 = minusplus(uminus(v2013), v2014);
   scatter(out, 126, 128, timesminusplus(reverse(v2017), load(tbl, 356 * VECWIDTH + tbloffset), times(v2017, load(tbl, 357 * VECWIDTH + tbloffset))));
   real2 v2015 = minusplus(v2013, v2014);
   scatter(out, 62, 128, timesminusplus(reverse(v2015), load(tbl, 354 * VECWIDTH + tbloffset), times(v2015, load(tbl, 355 * VECWIDTH + tbloffset))));
   real2 v1861 = timesminusplus(reverse(v1851), load(tbl, 326 * VECWIDTH + tbloffset), times(v1851, load(tbl, 327 * VECWIDTH + tbloffset)));
   real2 v1901 = timesminusplus(reverse(v1891), load(tbl, 334 * VECWIDTH + tbloffset), times(v1891, load(tbl, 335 * VECWIDTH + tbloffset)));
   real2 v1993 = plus(v1861, v1901);
   real2 v1987 = reverse(minus(v1861, v1901));
   scatter(out, 14, 128, plus(v1992, v1993));
   real2 v2006 = minus(v1992, v1993);
   scatter(out, 78, 128, timesminusplus(v2006, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2006), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1991 = minusplus(uminus(v1987), v1988);
   scatter(out, 110, 128, timesminusplus(reverse(v1991), load(tbl, 352 * VECWIDTH + tbloffset), times(v1991, load(tbl, 353 * VECWIDTH + tbloffset))));
   real2 v1989 = minusplus(v1987, v1988);
   scatter(out, 46, 128, timesminusplus(reverse(v1989), load(tbl, 350 * VECWIDTH + tbloffset), times(v1989, load(tbl, 351 * VECWIDTH + tbloffset))));
   real2 v593 = minusplus(v591, v592);
   real2 v595 = minusplus(uminus(v591), v592);
   real2 v473 = minusplus(v471, v472);
   real2 v475 = minusplus(uminus(v471), v472);
   real2 v555 = minusplus(uminus(v551), v552);
   real2 v553 = minusplus(v551, v552);
   real2 v609 = timesminusplus(reverse(v595), load(tbl, 96 * VECWIDTH + tbloffset), times(v595, load(tbl, 97 * VECWIDTH + tbloffset)));
   real2 v195 = minusplus(uminus(v191), v192);
   real2 v193 = minusplus(v191, v192);
   real2 v275 = minusplus(uminus(v271), v272);
   real2 v273 = minusplus(v271, v272);
   real2 v673 = minusplus(v671, v672);
   real2 v675 = minusplus(uminus(v671), v672);
   real2 v689 = timesminusplus(reverse(v675), load(tbl, 112 * VECWIDTH + tbloffset), times(v675, load(tbl, 113 * VECWIDTH + tbloffset)));
   real2 v209 = timesminusplus(reverse(v195), load(tbl, 16 * VECWIDTH + tbloffset), times(v195, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v289 = timesminusplus(reverse(v275), load(tbl, 32 * VECWIDTH + tbloffset), times(v275, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v755 = minusplus(uminus(v751), v752);
   real2 v753 = minusplus(v751, v752);
   real2 v435 = minusplus(uminus(v431), v432);
   real2 v433 = minusplus(v431, v432);
   real2 v513 = minusplus(v511, v512);
   real2 v515 = minusplus(uminus(v511), v512);
   real2 v529 = timesminusplus(reverse(v515), load(tbl, 80 * VECWIDTH + tbloffset), times(v515, load(tbl, 81 * VECWIDTH + tbloffset)));
   real2 v353 = minusplus(v351, v352);
   real2 v355 = minusplus(uminus(v351), v352);
   real2 v369 = timesminusplus(reverse(v355), load(tbl, 48 * VECWIDTH + tbloffset), times(v355, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v2631 = plus(v369, v689);
   real2 v2625 = reverse(minus(v369, v689));
   real2 v449 = timesminusplus(reverse(v435), load(tbl, 64 * VECWIDTH + tbloffset), times(v435, load(tbl, 65 * VECWIDTH + tbloffset)));
   real2 v2710 = plus(v289, v609);
   real2 v2706 = minus(v609, v289);
   real2 v2630 = plus(v209, v529);
   real2 v2626 = minus(v529, v209);
   real2 v2790 = plus(v2630, v2631);
   real2 v2786 = minus(v2631, v2630);
   real2 v713 = minusplus(v711, v712);
   real2 v715 = minusplus(uminus(v711), v712);
   real2 v769 = timesminusplus(reverse(v755), load(tbl, 128 * VECWIDTH + tbloffset), times(v755, load(tbl, 129 * VECWIDTH + tbloffset)));
   real2 v2705 = reverse(minus(v449, v769));
   real2 v2711 = plus(v449, v769);
   real2 v313 = minusplus(v311, v312);
   real2 v315 = minusplus(uminus(v311), v312);
   real2 v393 = minusplus(v391, v392);
   real2 v395 = minusplus(uminus(v391), v392);
   real2 v409 = timesminusplus(reverse(v395), load(tbl, 56 * VECWIDTH + tbloffset), times(v395, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v729 = timesminusplus(reverse(v715), load(tbl, 120 * VECWIDTH + tbloffset), times(v715, load(tbl, 121 * VECWIDTH + tbloffset)));
   real2 v329 = timesminusplus(reverse(v315), load(tbl, 40 * VECWIDTH + tbloffset), times(v315, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v489 = timesminusplus(reverse(v475), load(tbl, 72 * VECWIDTH + tbloffset), times(v475, load(tbl, 73 * VECWIDTH + tbloffset)));
   real2 v153 = minusplus(v151, v152);
   real2 v155 = minusplus(uminus(v151), v152);
   real2 v169 = timesminusplus(reverse(v155), load(tbl, 8 * VECWIDTH + tbloffset), times(v155, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v2586 = minus(v489, v169);
   real2 v2590 = plus(v169, v489);
   real2 v233 = minusplus(v231, v232);
   real2 v235 = minusplus(uminus(v231), v232);
   real2 v633 = minusplus(v631, v632);
   real2 v635 = minusplus(uminus(v631), v632);
   real2 v649 = timesminusplus(reverse(v635), load(tbl, 104 * VECWIDTH + tbloffset), times(v635, load(tbl, 105 * VECWIDTH + tbloffset)));
   real2 v249 = timesminusplus(reverse(v235), load(tbl, 24 * VECWIDTH + tbloffset), times(v235, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v569 = timesminusplus(reverse(v555), load(tbl, 88 * VECWIDTH + tbloffset), times(v555, load(tbl, 89 * VECWIDTH + tbloffset)));
   real2 v2670 = plus(v249, v569);
   real2 v2666 = minus(v569, v249);
   real2 v2785 = reverse(minus(v2710, v2711));
   real2 v2791 = plus(v2710, v2711);
   real2 v2825 = reverse(minus(v2790, v2791));
   real2 v2831 = plus(v2790, v2791);
   real2 v2671 = plus(v409, v729);
   real2 v2665 = reverse(minus(v409, v729));
   real2 v2745 = reverse(minus(v2670, v2671));
   real2 v2751 = plus(v2670, v2671);
   real2 v2806 = minus(v2731, v2730);
   real2 v2810 = plus(v2730, v2731);
   real2 v2846 = minus(v2811, v2810);
   real2 v2850 = plus(v2810, v2811);
   real2 v2591 = plus(v329, v649);
   real2 v2585 = reverse(minus(v329, v649));
   real2 v2750 = plus(v2590, v2591);
   real2 v2746 = minus(v2591, v2590);
   real2 v2830 = plus(v2750, v2751);
   real2 v2826 = minus(v2751, v2750);
   real2 v2845 = reverse(minus(v2830, v2831));
   real2 v2851 = plus(v2830, v2831);
   scatter(out, 3, 128, plus(v2850, v2851));
   real2 v2864 = minus(v2850, v2851);
   scatter(out, 67, 128, timesminusplus(v2864, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2864), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2849 = minusplus(uminus(v2845), v2846);
   real2 v2847 = minusplus(v2845, v2846);
   scatter(out, 35, 128, timesminusplus(reverse(v2847), load(tbl, 506 * VECWIDTH + tbloffset), times(v2847, load(tbl, 507 * VECWIDTH + tbloffset))));
   scatter(out, 99, 128, timesminusplus(reverse(v2849), load(tbl, 508 * VECWIDTH + tbloffset), times(v2849, load(tbl, 509 * VECWIDTH + tbloffset))));
   real2 v2827 = minusplus(v2825, v2826);
   real2 v2829 = minusplus(uminus(v2825), v2826);
   real2 v2837 = timesminusplus(reverse(v2827), load(tbl, 502 * VECWIDTH + tbloffset), times(v2827, load(tbl, 503 * VECWIDTH + tbloffset)));
   real2 v2809 = minusplus(uminus(v2805), v2806);
   real2 v2807 = minusplus(v2805, v2806);
   real2 v2817 = timesminusplus(reverse(v2807), load(tbl, 498 * VECWIDTH + tbloffset), times(v2807, load(tbl, 499 * VECWIDTH + tbloffset)));
   scatter(out, 19, 128, plus(v2817, v2837));
   real2 v2870 = minus(v2817, v2837);
   scatter(out, 83, 128, timesminusplus(v2870, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2870), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2823 = timesminusplus(reverse(v2809), load(tbl, 500 * VECWIDTH + tbloffset), times(v2809, load(tbl, 501 * VECWIDTH + tbloffset)));
   real2 v2843 = timesminusplus(reverse(v2829), load(tbl, 504 * VECWIDTH + tbloffset), times(v2829, load(tbl, 505 * VECWIDTH + tbloffset)));
   scatter(out, 51, 128, plus(v2823, v2843));
   real2 v2876 = minus(v2823, v2843);
   scatter(out, 115, 128, timesminusplus(v2876, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2876), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2787 = minusplus(v2785, v2786);
   real2 v2789 = minusplus(uminus(v2785), v2786);
   real2 v2803 = timesminusplus(reverse(v2789), load(tbl, 496 * VECWIDTH + tbloffset), times(v2789, load(tbl, 497 * VECWIDTH + tbloffset)));
   real2 v2727 = minusplus(v2725, v2726);
   real2 v2729 = minusplus(uminus(v2725), v2726);
   real2 v2743 = timesminusplus(reverse(v2729), load(tbl, 484 * VECWIDTH + tbloffset), times(v2729, load(tbl, 485 * VECWIDTH + tbloffset)));
   real2 v2914 = plus(v2743, v2783);
   real2 v2910 = minus(v2783, v2743);
   real2 v2749 = minusplus(uminus(v2745), v2746);
   real2 v2747 = minusplus(v2745, v2746);
   real2 v2763 = timesminusplus(reverse(v2749), load(tbl, 488 * VECWIDTH + tbloffset), times(v2749, load(tbl, 489 * VECWIDTH + tbloffset)));
   real2 v2909 = reverse(minus(v2763, v2803));
   real2 v2915 = plus(v2763, v2803);
   scatter(out, 27, 128, plus(v2914, v2915));
   real2 v2928 = minus(v2914, v2915);
   scatter(out, 91, 128, timesminusplus(v2928, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2928), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2913 = minusplus(uminus(v2909), v2910);
   scatter(out, 123, 128, timesminusplus(reverse(v2913), load(tbl, 516 * VECWIDTH + tbloffset), times(v2913, load(tbl, 517 * VECWIDTH + tbloffset))));
   real2 v2911 = minusplus(v2909, v2910);
   scatter(out, 59, 128, timesminusplus(reverse(v2911), load(tbl, 514 * VECWIDTH + tbloffset), times(v2911, load(tbl, 515 * VECWIDTH + tbloffset))));
   real2 v2737 = timesminusplus(reverse(v2727), load(tbl, 482 * VECWIDTH + tbloffset), times(v2727, load(tbl, 483 * VECWIDTH + tbloffset)));
   real2 v2888 = plus(v2737, v2777);
   real2 v2884 = minus(v2777, v2737);
   real2 v2797 = timesminusplus(reverse(v2787), load(tbl, 494 * VECWIDTH + tbloffset), times(v2787, load(tbl, 495 * VECWIDTH + tbloffset)));
   real2 v2757 = timesminusplus(reverse(v2747), load(tbl, 486 * VECWIDTH + tbloffset), times(v2747, load(tbl, 487 * VECWIDTH + tbloffset)));
   real2 v2889 = plus(v2757, v2797);
   real2 v2883 = reverse(minus(v2757, v2797));
   scatter(out, 11, 128, plus(v2888, v2889));
   real2 v2902 = minus(v2888, v2889);
   scatter(out, 75, 128, timesminusplus(v2902, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2902), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2887 = minusplus(uminus(v2883), v2884);
   scatter(out, 107, 128, timesminusplus(reverse(v2887), load(tbl, 512 * VECWIDTH + tbloffset), times(v2887, load(tbl, 513 * VECWIDTH + tbloffset))));
   real2 v2885 = minusplus(v2883, v2884);
   scatter(out, 43, 128, timesminusplus(reverse(v2885), load(tbl, 510 * VECWIDTH + tbloffset), times(v2885, load(tbl, 511 * VECWIDTH + tbloffset))));
   real2 v2669 = minusplus(uminus(v2665), v2666);
   real2 v2667 = minusplus(v2665, v2666);
   real2 v2707 = minusplus(v2705, v2706);
   real2 v2709 = minusplus(uminus(v2705), v2706);
   real2 v2717 = timesminusplus(reverse(v2707), load(tbl, 478 * VECWIDTH + tbloffset), times(v2707, load(tbl, 479 * VECWIDTH + tbloffset)));
   real2 v2627 = minusplus(v2625, v2626);
   real2 v2629 = minusplus(uminus(v2625), v2626);
   real2 v2637 = timesminusplus(reverse(v2627), load(tbl, 462 * VECWIDTH + tbloffset), times(v2627, load(tbl, 463 * VECWIDTH + tbloffset)));
   real2 v2961 = plus(v2637, v2717);
   real2 v2955 = reverse(minus(v2637, v2717));
   real2 v2649 = minusplus(uminus(v2645), v2646);
   real2 v2647 = minusplus(v2645, v2646);
   real2 v2569 = minusplus(uminus(v2565), v2566);
   real2 v2567 = minusplus(v2565, v2566);
   real2 v2577 = timesminusplus(reverse(v2567), load(tbl, 450 * VECWIDTH + tbloffset), times(v2567, load(tbl, 451 * VECWIDTH + tbloffset)));
   real2 v2657 = timesminusplus(reverse(v2647), load(tbl, 466 * VECWIDTH + tbloffset), times(v2647, load(tbl, 467 * VECWIDTH + tbloffset)));
   real2 v2936 = minus(v2657, v2577);
   real2 v2940 = plus(v2577, v2657);
   real2 v2976 = minus(v2941, v2940);
   real2 v2980 = plus(v2940, v2941);
   real2 v2677 = timesminusplus(reverse(v2667), load(tbl, 470 * VECWIDTH + tbloffset), times(v2667, load(tbl, 471 * VECWIDTH + tbloffset)));
   real2 v2587 = minusplus(v2585, v2586);
   real2 v2589 = minusplus(uminus(v2585), v2586);
   real2 v2597 = timesminusplus(reverse(v2587), load(tbl, 454 * VECWIDTH + tbloffset), times(v2587, load(tbl, 455 * VECWIDTH + tbloffset)));
   real2 v2956 = minus(v2677, v2597);
   real2 v2960 = plus(v2597, v2677);
   real2 v2975 = reverse(minus(v2960, v2961));
   real2 v2981 = plus(v2960, v2961);
   scatter(out, 7, 128, plus(v2980, v2981));
   real2 v2994 = minus(v2980, v2981);
   scatter(out, 71, 128, timesminusplus(v2994, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2994), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2979 = minusplus(uminus(v2975), v2976);
   scatter(out, 103, 128, timesminusplus(reverse(v2979), load(tbl, 528 * VECWIDTH + tbloffset), times(v2979, load(tbl, 529 * VECWIDTH + tbloffset))));
   real2 v2977 = minusplus(v2975, v2976);
   scatter(out, 39, 128, timesminusplus(reverse(v2977), load(tbl, 526 * VECWIDTH + tbloffset), times(v2977, load(tbl, 527 * VECWIDTH + tbloffset))));
   real2 v2939 = minusplus(uminus(v2935), v2936);
   real2 v2937 = minusplus(v2935, v2936);
   real2 v2953 = timesminusplus(reverse(v2939), load(tbl, 520 * VECWIDTH + tbloffset), times(v2939, load(tbl, 521 * VECWIDTH + tbloffset)));
   real2 v2957 = minusplus(v2955, v2956);
   real2 v2959 = minusplus(uminus(v2955), v2956);
   real2 v2973 = timesminusplus(reverse(v2959), load(tbl, 524 * VECWIDTH + tbloffset), times(v2959, load(tbl, 525 * VECWIDTH + tbloffset)));
   scatter(out, 55, 128, plus(v2953, v2973));
   real2 v3006 = minus(v2953, v2973);
   scatter(out, 119, 128, timesminusplus(v3006, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3006), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2947 = timesminusplus(reverse(v2937), load(tbl, 518 * VECWIDTH + tbloffset), times(v2937, load(tbl, 519 * VECWIDTH + tbloffset)));
   real2 v2967 = timesminusplus(reverse(v2957), load(tbl, 522 * VECWIDTH + tbloffset), times(v2957, load(tbl, 523 * VECWIDTH + tbloffset)));
   scatter(out, 23, 128, plus(v2947, v2967));
   real2 v3000 = minus(v2947, v2967);
   scatter(out, 87, 128, timesminusplus(v3000, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3000), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2663 = timesminusplus(reverse(v2649), load(tbl, 468 * VECWIDTH + tbloffset), times(v2649, load(tbl, 469 * VECWIDTH + tbloffset)));
   real2 v2583 = timesminusplus(reverse(v2569), load(tbl, 452 * VECWIDTH + tbloffset), times(v2569, load(tbl, 453 * VECWIDTH + tbloffset)));
   real2 v3014 = minus(v2663, v2583);
   real2 v3018 = plus(v2583, v2663);
   real2 v3015 = minusplus(v3013, v3014);
   real2 v3017 = minusplus(uminus(v3013), v3014);
   real2 v2643 = timesminusplus(reverse(v2629), load(tbl, 464 * VECWIDTH + tbloffset), times(v2629, load(tbl, 465 * VECWIDTH + tbloffset)));
   real2 v2723 = timesminusplus(reverse(v2709), load(tbl, 480 * VECWIDTH + tbloffset), times(v2709, load(tbl, 481 * VECWIDTH + tbloffset)));
   real2 v3039 = plus(v2643, v2723);
   real2 v3033 = reverse(minus(v2643, v2723));
   real2 v2683 = timesminusplus(reverse(v2669), load(tbl, 472 * VECWIDTH + tbloffset), times(v2669, load(tbl, 473 * VECWIDTH + tbloffset)));
   real2 v3031 = timesminusplus(reverse(v3017), load(tbl, 532 * VECWIDTH + tbloffset), times(v3017, load(tbl, 533 * VECWIDTH + tbloffset)));
   real2 v2603 = timesminusplus(reverse(v2589), load(tbl, 456 * VECWIDTH + tbloffset), times(v2589, load(tbl, 457 * VECWIDTH + tbloffset)));
   real2 v3034 = minus(v2683, v2603);
   real2 v3038 = plus(v2603, v2683);
   real2 v3037 = minusplus(uminus(v3033), v3034);
   real2 v3035 = minusplus(v3033, v3034);
   real2 v3051 = timesminusplus(reverse(v3037), load(tbl, 536 * VECWIDTH + tbloffset), times(v3037, load(tbl, 537 * VECWIDTH + tbloffset)));
   scatter(out, 63, 128, plus(v3031, v3051));
   real2 v3084 = minus(v3031, v3051);
   scatter(out, 127, 128, timesminusplus(v3084, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3084), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v3025 = timesminusplus(reverse(v3015), load(tbl, 530 * VECWIDTH + tbloffset), times(v3015, load(tbl, 531 * VECWIDTH + tbloffset)));
   real2 v3045 = timesminusplus(reverse(v3035), load(tbl, 534 * VECWIDTH + tbloffset), times(v3035, load(tbl, 535 * VECWIDTH + tbloffset)));
   scatter(out, 31, 128, plus(v3025, v3045));
   real2 v3078 = minus(v3025, v3045);
   scatter(out, 95, 128, timesminusplus(v3078, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3078), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v3058 = plus(v3018, v3019);
   real2 v3054 = minus(v3019, v3018);
   real2 v3053 = reverse(minus(v3038, v3039));
   real2 v3059 = plus(v3038, v3039);
   real2 v3055 = minusplus(v3053, v3054);
   scatter(out, 47, 128, timesminusplus(reverse(v3055), load(tbl, 538 * VECWIDTH + tbloffset), times(v3055, load(tbl, 539 * VECWIDTH + tbloffset))));
   real2 v3057 = minusplus(uminus(v3053), v3054);
   scatter(out, 111, 128, timesminusplus(reverse(v3057), load(tbl, 540 * VECWIDTH + tbloffset), times(v3057, load(tbl, 541 * VECWIDTH + tbloffset))));
   scatter(out, 15, 128, plus(v3058, v3059));
   real2 v3072 = minus(v3058, v3059);
   scatter(out, 79, 128, timesminusplus(v3072, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3072), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v683 = timesminusplus(reverse(v673), load(tbl, 110 * VECWIDTH + tbloffset), times(v673, load(tbl, 111 * VECWIDTH + tbloffset)));
   real2 v363 = timesminusplus(reverse(v353), load(tbl, 46 * VECWIDTH + tbloffset), times(v353, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v2105 = plus(v363, v683);
   real2 v2099 = reverse(minus(v363, v683));
   real2 v283 = timesminusplus(reverse(v273), load(tbl, 30 * VECWIDTH + tbloffset), times(v273, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v723 = timesminusplus(reverse(v713), load(tbl, 118 * VECWIDTH + tbloffset), times(v713, load(tbl, 119 * VECWIDTH + tbloffset)));
   real2 v403 = timesminusplus(reverse(v393), load(tbl, 54 * VECWIDTH + tbloffset), times(v393, load(tbl, 55 * VECWIDTH + tbloffset)));
   real2 v603 = timesminusplus(reverse(v593), load(tbl, 94 * VECWIDTH + tbloffset), times(v593, load(tbl, 95 * VECWIDTH + tbloffset)));
   real2 v2180 = minus(v603, v283);
   real2 v2184 = plus(v283, v603);
   real2 v2145 = plus(v403, v723);
   real2 v2139 = reverse(minus(v403, v723));
   real2 v543 = timesminusplus(reverse(v533), load(tbl, 82 * VECWIDTH + tbloffset), times(v533, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v383 = timesminusplus(reverse(v373), load(tbl, 50 * VECWIDTH + tbloffset), times(v373, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v703 = timesminusplus(reverse(v693), load(tbl, 114 * VECWIDTH + tbloffset), times(v693, load(tbl, 115 * VECWIDTH + tbloffset)));
   real2 v2125 = plus(v383, v703);
   real2 v2119 = reverse(minus(v383, v703));
   real2 v223 = timesminusplus(reverse(v213), load(tbl, 18 * VECWIDTH + tbloffset), times(v213, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v2120 = minus(v543, v223);
   real2 v2124 = plus(v223, v543);
   real2 v443 = timesminusplus(reverse(v433), load(tbl, 62 * VECWIDTH + tbloffset), times(v433, load(tbl, 63 * VECWIDTH + tbloffset)));
   real2 v203 = timesminusplus(reverse(v193), load(tbl, 14 * VECWIDTH + tbloffset), times(v193, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v763 = timesminusplus(reverse(v753), load(tbl, 126 * VECWIDTH + tbloffset), times(v753, load(tbl, 127 * VECWIDTH + tbloffset)));
   real2 v2179 = reverse(minus(v443, v763));
   real2 v2185 = plus(v443, v763);
   real2 v523 = timesminusplus(reverse(v513), load(tbl, 78 * VECWIDTH + tbloffset), times(v513, load(tbl, 79 * VECWIDTH + tbloffset)));
   real2 v2100 = minus(v523, v203);
   real2 v2104 = plus(v203, v523);
   real2 v2264 = plus(v2104, v2105);
   real2 v2260 = minus(v2105, v2104);
   real2 v643 = timesminusplus(reverse(v633), load(tbl, 102 * VECWIDTH + tbloffset), times(v633, load(tbl, 103 * VECWIDTH + tbloffset)));
   real2 v2265 = plus(v2184, v2185);
   real2 v2259 = reverse(minus(v2184, v2185));
   real2 v563 = timesminusplus(reverse(v553), load(tbl, 86 * VECWIDTH + tbloffset), times(v553, load(tbl, 87 * VECWIDTH + tbloffset)));
   real2 v243 = timesminusplus(reverse(v233), load(tbl, 22 * VECWIDTH + tbloffset), times(v233, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v2144 = plus(v243, v563);
   real2 v2140 = minus(v563, v243);
   real2 v143 = timesminusplus(reverse(v133), load(tbl, 2 * VECWIDTH + tbloffset), times(v133, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v183 = timesminusplus(reverse(v173), load(tbl, 10 * VECWIDTH + tbloffset), times(v173, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v2084 = plus(v183, v503);
   real2 v2080 = minus(v503, v183);
   real2 v163 = timesminusplus(reverse(v153), load(tbl, 6 * VECWIDTH + tbloffset), times(v153, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v303 = timesminusplus(reverse(v293), load(tbl, 34 * VECWIDTH + tbloffset), times(v293, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v623 = timesminusplus(reverse(v613), load(tbl, 98 * VECWIDTH + tbloffset), times(v613, load(tbl, 99 * VECWIDTH + tbloffset)));
   real2 v2039 = reverse(minus(v303, v623));
   real2 v2045 = plus(v303, v623);
   real2 v463 = timesminusplus(reverse(v453), load(tbl, 66 * VECWIDTH + tbloffset), times(v453, load(tbl, 67 * VECWIDTH + tbloffset)));
   real2 v2044 = plus(v143, v463);
   real2 v2040 = minus(v463, v143);
   real2 v2204 = plus(v2044, v2045);
   real2 v2200 = minus(v2045, v2044);
   real2 v323 = timesminusplus(reverse(v313), load(tbl, 38 * VECWIDTH + tbloffset), times(v313, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v2205 = plus(v2124, v2125);
   real2 v2199 = reverse(minus(v2124, v2125));
   real2 v2280 = minus(v2205, v2204);
   real2 v2284 = plus(v2204, v2205);
   real2 v2225 = plus(v2144, v2145);
   real2 v2219 = reverse(minus(v2144, v2145));
   real2 v2305 = plus(v2264, v2265);
   real2 v2299 = reverse(minus(v2264, v2265));
   real2 v2240 = minus(v2085, v2084);
   real2 v2244 = plus(v2084, v2085);
   real2 v2279 = reverse(minus(v2244, v2245));
   real2 v2285 = plus(v2244, v2245);
   real2 v2281 = minusplus(v2279, v2280);
   real2 v2283 = minusplus(uminus(v2279), v2280);
   real2 v2291 = timesminusplus(reverse(v2281), load(tbl, 406 * VECWIDTH + tbloffset), times(v2281, load(tbl, 407 * VECWIDTH + tbloffset)));
   real2 v483 = timesminusplus(reverse(v473), load(tbl, 70 * VECWIDTH + tbloffset), times(v473, load(tbl, 71 * VECWIDTH + tbloffset)));
   real2 v2060 = minus(v483, v163);
   real2 v2064 = plus(v163, v483);
   real2 v2065 = plus(v323, v643);
   real2 v2059 = reverse(minus(v323, v643));
   real2 v2220 = minus(v2065, v2064);
   real2 v2224 = plus(v2064, v2065);
   real2 v2304 = plus(v2224, v2225);
   real2 v2300 = minus(v2225, v2224);
   real2 v2301 = minusplus(v2299, v2300);
   real2 v2303 = minusplus(uminus(v2299), v2300);
   real2 v2311 = timesminusplus(reverse(v2301), load(tbl, 410 * VECWIDTH + tbloffset), times(v2301, load(tbl, 411 * VECWIDTH + tbloffset)));
   scatter(out, 17, 128, plus(v2291, v2311));
   real2 v2344 = minus(v2291, v2311);
   scatter(out, 81, 128, timesminusplus(v2344, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2344), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2297 = timesminusplus(reverse(v2283), load(tbl, 408 * VECWIDTH + tbloffset), times(v2283, load(tbl, 409 * VECWIDTH + tbloffset)));
   real2 v2317 = timesminusplus(reverse(v2303), load(tbl, 412 * VECWIDTH + tbloffset), times(v2303, load(tbl, 413 * VECWIDTH + tbloffset)));
   scatter(out, 49, 128, plus(v2297, v2317));
   real2 v2350 = minus(v2297, v2317);
   scatter(out, 113, 128, timesminusplus(v2350, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2350), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2320 = minus(v2285, v2284);
   real2 v2324 = plus(v2284, v2285);
   real2 v2325 = plus(v2304, v2305);
   real2 v2319 = reverse(minus(v2304, v2305));
   scatter(out, 1, 128, plus(v2324, v2325));
   real2 v2338 = minus(v2324, v2325);
   scatter(out, 65, 128, timesminusplus(v2338, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2338), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2321 = minusplus(v2319, v2320);
   scatter(out, 33, 128, timesminusplus(reverse(v2321), load(tbl, 414 * VECWIDTH + tbloffset), times(v2321, load(tbl, 415 * VECWIDTH + tbloffset))));
   real2 v2323 = minusplus(uminus(v2319), v2320);
   scatter(out, 97, 128, timesminusplus(reverse(v2323), load(tbl, 416 * VECWIDTH + tbloffset), times(v2323, load(tbl, 417 * VECWIDTH + tbloffset))));
   real2 v2201 = minusplus(v2199, v2200);
   real2 v2203 = minusplus(uminus(v2199), v2200);
   real2 v2263 = minusplus(uminus(v2259), v2260);
   real2 v2261 = minusplus(v2259, v2260);
   real2 v2243 = minusplus(uminus(v2239), v2240);
   real2 v2241 = minusplus(v2239, v2240);
   real2 v2257 = timesminusplus(reverse(v2243), load(tbl, 400 * VECWIDTH + tbloffset), times(v2243, load(tbl, 401 * VECWIDTH + tbloffset)));
   real2 v2217 = timesminusplus(reverse(v2203), load(tbl, 392 * VECWIDTH + tbloffset), times(v2203, load(tbl, 393 * VECWIDTH + tbloffset)));
   real2 v2388 = plus(v2217, v2257);
   real2 v2384 = minus(v2257, v2217);
   real2 v2277 = timesminusplus(reverse(v2263), load(tbl, 404 * VECWIDTH + tbloffset), times(v2263, load(tbl, 405 * VECWIDTH + tbloffset)));
   real2 v2221 = minusplus(v2219, v2220);
   real2 v2223 = minusplus(uminus(v2219), v2220);
   real2 v2237 = timesminusplus(reverse(v2223), load(tbl, 396 * VECWIDTH + tbloffset), times(v2223, load(tbl, 397 * VECWIDTH + tbloffset)));
   real2 v2389 = plus(v2237, v2277);
   real2 v2383 = reverse(minus(v2237, v2277));
   scatter(out, 25, 128, plus(v2388, v2389));
   real2 v2402 = minus(v2388, v2389);
   scatter(out, 89, 128, timesminusplus(v2402, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2402), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2385 = minusplus(v2383, v2384);
   real2 v2387 = minusplus(uminus(v2383), v2384);
   scatter(out, 121, 128, timesminusplus(reverse(v2387), load(tbl, 424 * VECWIDTH + tbloffset), times(v2387, load(tbl, 425 * VECWIDTH + tbloffset))));
   scatter(out, 57, 128, timesminusplus(reverse(v2385), load(tbl, 422 * VECWIDTH + tbloffset), times(v2385, load(tbl, 423 * VECWIDTH + tbloffset))));
   real2 v2251 = timesminusplus(reverse(v2241), load(tbl, 398 * VECWIDTH + tbloffset), times(v2241, load(tbl, 399 * VECWIDTH + tbloffset)));
   real2 v2211 = timesminusplus(reverse(v2201), load(tbl, 390 * VECWIDTH + tbloffset), times(v2201, load(tbl, 391 * VECWIDTH + tbloffset)));
   real2 v2358 = minus(v2251, v2211);
   real2 v2362 = plus(v2211, v2251);
   real2 v2271 = timesminusplus(reverse(v2261), load(tbl, 402 * VECWIDTH + tbloffset), times(v2261, load(tbl, 403 * VECWIDTH + tbloffset)));
   real2 v2231 = timesminusplus(reverse(v2221), load(tbl, 394 * VECWIDTH + tbloffset), times(v2221, load(tbl, 395 * VECWIDTH + tbloffset)));
   real2 v2357 = reverse(minus(v2231, v2271));
   real2 v2363 = plus(v2231, v2271);
   scatter(out, 9, 128, plus(v2362, v2363));
   real2 v2376 = minus(v2362, v2363);
   scatter(out, 73, 128, timesminusplus(v2376, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2376), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2361 = minusplus(uminus(v2357), v2358);
   scatter(out, 105, 128, timesminusplus(reverse(v2361), load(tbl, 420 * VECWIDTH + tbloffset), times(v2361, load(tbl, 421 * VECWIDTH + tbloffset))));
   real2 v2359 = minusplus(v2357, v2358);
   scatter(out, 41, 128, timesminusplus(reverse(v2359), load(tbl, 418 * VECWIDTH + tbloffset), times(v2359, load(tbl, 419 * VECWIDTH + tbloffset))));
   real2 v2121 = minusplus(v2119, v2120);
   real2 v2123 = minusplus(uminus(v2119), v2120);
   real2 v2083 = minusplus(uminus(v2079), v2080);
   real2 v2081 = minusplus(v2079, v2080);
   real2 v2091 = timesminusplus(reverse(v2081), load(tbl, 366 * VECWIDTH + tbloffset), times(v2081, load(tbl, 367 * VECWIDTH + tbloffset)));
   real2 v2043 = minusplus(uminus(v2039), v2040);
   real2 v2041 = minusplus(v2039, v2040);
   real2 v2051 = timesminusplus(reverse(v2041), load(tbl, 358 * VECWIDTH + tbloffset), times(v2041, load(tbl, 359 * VECWIDTH + tbloffset)));
   real2 v2131 = timesminusplus(reverse(v2121), load(tbl, 374 * VECWIDTH + tbloffset), times(v2121, load(tbl, 375 * VECWIDTH + tbloffset)));
   real2 v2163 = minusplus(uminus(v2159), v2160);
   real2 v2161 = minusplus(v2159, v2160);
   real2 v2171 = timesminusplus(reverse(v2161), load(tbl, 382 * VECWIDTH + tbloffset), times(v2161, load(tbl, 383 * VECWIDTH + tbloffset)));
   real2 v2409 = reverse(minus(v2091, v2171));
   real2 v2415 = plus(v2091, v2171);
   real2 v2410 = minus(v2131, v2051);
   real2 v2414 = plus(v2051, v2131);
   real2 v2454 = plus(v2414, v2415);
   real2 v2450 = minus(v2415, v2414);
   real2 v2181 = minusplus(v2179, v2180);
   real2 v2183 = minusplus(uminus(v2179), v2180);
   real2 v2191 = timesminusplus(reverse(v2181), load(tbl, 386 * VECWIDTH + tbloffset), times(v2181, load(tbl, 387 * VECWIDTH + tbloffset)));
   real2 v2103 = minusplus(uminus(v2099), v2100);
   real2 v2101 = minusplus(v2099, v2100);
   real2 v2111 = timesminusplus(reverse(v2101), load(tbl, 370 * VECWIDTH + tbloffset), times(v2101, load(tbl, 371 * VECWIDTH + tbloffset)));
   real2 v2435 = plus(v2111, v2191);
   real2 v2429 = reverse(minus(v2111, v2191));
   real2 v2141 = minusplus(v2139, v2140);
   real2 v2143 = minusplus(uminus(v2139), v2140);
   real2 v2151 = timesminusplus(reverse(v2141), load(tbl, 378 * VECWIDTH + tbloffset), times(v2141, load(tbl, 379 * VECWIDTH + tbloffset)));
   real2 v2063 = minusplus(uminus(v2059), v2060);
   real2 v2061 = minusplus(v2059, v2060);
   real2 v2071 = timesminusplus(reverse(v2061), load(tbl, 362 * VECWIDTH + tbloffset), times(v2061, load(tbl, 363 * VECWIDTH + tbloffset)));
   real2 v2434 = plus(v2071, v2151);
   real2 v2430 = minus(v2151, v2071);
   real2 v2455 = plus(v2434, v2435);
   real2 v2449 = reverse(minus(v2434, v2435));
   scatter(out, 5, 128, plus(v2454, v2455));
   real2 v2468 = minus(v2454, v2455);
   scatter(out, 69, 128, timesminusplus(v2468, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2468), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2451 = minusplus(v2449, v2450);
   real2 v2453 = minusplus(uminus(v2449), v2450);
   scatter(out, 101, 128, timesminusplus(reverse(v2453), load(tbl, 436 * VECWIDTH + tbloffset), times(v2453, load(tbl, 437 * VECWIDTH + tbloffset))));
   scatter(out, 37, 128, timesminusplus(reverse(v2451), load(tbl, 434 * VECWIDTH + tbloffset), times(v2451, load(tbl, 435 * VECWIDTH + tbloffset))));
   real2 v2411 = minusplus(v2409, v2410);
   real2 v2413 = minusplus(uminus(v2409), v2410);
   real2 v2433 = minusplus(uminus(v2429), v2430);
   real2 v2431 = minusplus(v2429, v2430);
   real2 v2421 = timesminusplus(reverse(v2411), load(tbl, 426 * VECWIDTH + tbloffset), times(v2411, load(tbl, 427 * VECWIDTH + tbloffset)));
   real2 v2441 = timesminusplus(reverse(v2431), load(tbl, 430 * VECWIDTH + tbloffset), times(v2431, load(tbl, 431 * VECWIDTH + tbloffset)));
   scatter(out, 21, 128, plus(v2421, v2441));
   real2 v2474 = minus(v2421, v2441);
   scatter(out, 85, 128, timesminusplus(v2474, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2474), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2427 = timesminusplus(reverse(v2413), load(tbl, 428 * VECWIDTH + tbloffset), times(v2413, load(tbl, 429 * VECWIDTH + tbloffset)));
   real2 v2447 = timesminusplus(reverse(v2433), load(tbl, 432 * VECWIDTH + tbloffset), times(v2433, load(tbl, 433 * VECWIDTH + tbloffset)));
   scatter(out, 53, 128, plus(v2427, v2447));
   real2 v2480 = minus(v2427, v2447);
   scatter(out, 117, 128, timesminusplus(v2480, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2480), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2057 = timesminusplus(reverse(v2043), load(tbl, 360 * VECWIDTH + tbloffset), times(v2043, load(tbl, 361 * VECWIDTH + tbloffset)));
   real2 v2097 = timesminusplus(reverse(v2083), load(tbl, 368 * VECWIDTH + tbloffset), times(v2083, load(tbl, 369 * VECWIDTH + tbloffset)));
   real2 v2157 = timesminusplus(reverse(v2143), load(tbl, 380 * VECWIDTH + tbloffset), times(v2143, load(tbl, 381 * VECWIDTH + tbloffset)));
   real2 v2197 = timesminusplus(reverse(v2183), load(tbl, 388 * VECWIDTH + tbloffset), times(v2183, load(tbl, 389 * VECWIDTH + tbloffset)));
   real2 v2117 = timesminusplus(reverse(v2103), load(tbl, 372 * VECWIDTH + tbloffset), times(v2103, load(tbl, 373 * VECWIDTH + tbloffset)));
   real2 v2507 = reverse(minus(v2117, v2197));
   real2 v2513 = plus(v2117, v2197);
   real2 v2137 = timesminusplus(reverse(v2123), load(tbl, 376 * VECWIDTH + tbloffset), times(v2123, load(tbl, 377 * VECWIDTH + tbloffset)));
   real2 v2488 = minus(v2137, v2057);
   real2 v2492 = plus(v2057, v2137);
   real2 v2177 = timesminusplus(reverse(v2163), load(tbl, 384 * VECWIDTH + tbloffset), times(v2163, load(tbl, 385 * VECWIDTH + tbloffset)));
   real2 v2493 = plus(v2097, v2177);
   real2 v2487 = reverse(minus(v2097, v2177));
   real2 v2532 = plus(v2492, v2493);
   real2 v2528 = minus(v2493, v2492);
   real2 v2077 = timesminusplus(reverse(v2063), load(tbl, 364 * VECWIDTH + tbloffset), times(v2063, load(tbl, 365 * VECWIDTH + tbloffset)));
   real2 v2512 = plus(v2077, v2157);
   real2 v2508 = minus(v2157, v2077);
   real2 v2527 = reverse(minus(v2512, v2513));
   real2 v2533 = plus(v2512, v2513);
   real2 v2529 = minusplus(v2527, v2528);
   real2 v2531 = minusplus(uminus(v2527), v2528);
   scatter(out, 109, 128, timesminusplus(reverse(v2531), load(tbl, 448 * VECWIDTH + tbloffset), times(v2531, load(tbl, 449 * VECWIDTH + tbloffset))));
   scatter(out, 45, 128, timesminusplus(reverse(v2529), load(tbl, 446 * VECWIDTH + tbloffset), times(v2529, load(tbl, 447 * VECWIDTH + tbloffset))));
   scatter(out, 13, 128, plus(v2532, v2533));
   real2 v2546 = minus(v2532, v2533);
   scatter(out, 77, 128, timesminusplus(v2546, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2546), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2509 = minusplus(v2507, v2508);
   real2 v2511 = minusplus(uminus(v2507), v2508);
   real2 v2491 = minusplus(uminus(v2487), v2488);
   real2 v2489 = minusplus(v2487, v2488);
   real2 v2499 = timesminusplus(reverse(v2489), load(tbl, 438 * VECWIDTH + tbloffset), times(v2489, load(tbl, 439 * VECWIDTH + tbloffset)));
   real2 v2519 = timesminusplus(reverse(v2509), load(tbl, 442 * VECWIDTH + tbloffset), times(v2509, load(tbl, 443 * VECWIDTH + tbloffset)));
   scatter(out, 29, 128, plus(v2499, v2519));
   real2 v2552 = minus(v2499, v2519);
   scatter(out, 93, 128, timesminusplus(v2552, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2552), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2505 = timesminusplus(reverse(v2491), load(tbl, 440 * VECWIDTH + tbloffset), times(v2491, load(tbl, 441 * VECWIDTH + tbloffset)));
   real2 v2525 = timesminusplus(reverse(v2511), load(tbl, 444 * VECWIDTH + tbloffset), times(v2511, load(tbl, 445 * VECWIDTH + tbloffset)));
   scatter(out, 61, 128, plus(v2505, v2525));
   real2 v2558 = minus(v2505, v2525);
   scatter(out, 125, 128, timesminusplus(v2558, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2558), load(tbl, 1 * VECWIDTH + tbloffset))));
// Pres : 76263
  }
}

ALIGNED(8192) void tbut128b_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const int inShift, const real *RESTRICT tbl, const int K) {
  const int k = 1 << (inShift - LOG2VECWIDTH);
  int i=0;
#pragma omp parallel for
  for(i=0;i < k;i++) {
    int i0 = i << LOG2VECWIDTH;
    real *out = out0 + q[i];
    const real *in = in0 + i0*2;
    const int tbloffset = K * i0;

// Pres : 148586
   real2 v56 = load(in, 54 << inShift);
   real2 v120 = load(in, 118 << inShift);
   real2 v571 = reverse(minus(v120, v56));
   real2 v577 = plus(v56, v120);
   real2 v24 = load(in, 22 << inShift);
   real2 v88 = load(in, 86 << inShift);
   real2 v576 = plus(v24, v88);
   real2 v572 = minus(v88, v24);
   real2 v573 = minusplus(v571, v572);
   real2 v575 = minusplus(uminus(v571), v572);
   real2 v589 = timesminusplus(reverse(v575), load(tbl, 92 * VECWIDTH + tbloffset), times(v575, load(tbl, 93 * VECWIDTH + tbloffset)));
   real2 v583 = timesminusplus(reverse(v573), load(tbl, 90 * VECWIDTH + tbloffset), times(v573, load(tbl, 91 * VECWIDTH + tbloffset)));
   real2 v897 = plus(v576, v577);
   real2 v891 = reverse(minus(v577, v576));
   real2 v8 = load(in, 6 << inShift);
   real2 v72 = load(in, 70 << inShift);
   real2 v252 = minus(v72, v8);
   real2 v256 = plus(v8, v72);
   real2 v104 = load(in, 102 << inShift);
   real2 v40 = load(in, 38 << inShift);
   real2 v251 = reverse(minus(v104, v40));
   real2 v257 = plus(v40, v104);
   real2 v255 = minusplus(uminus(v251), v252);
   real2 v253 = minusplus(v251, v252);
   real2 v263 = timesminusplus(reverse(v253), load(tbl, 26 * VECWIDTH + tbloffset), times(v253, load(tbl, 27 * VECWIDTH + tbloffset)));
   real2 v896 = plus(v256, v257);
   real2 v892 = minus(v257, v256);
   real2 v895 = minusplus(uminus(v891), v892);
   real2 v893 = minusplus(v891, v892);
   real2 v909 = timesminusplus(reverse(v895), load(tbl, 156 * VECWIDTH + tbloffset), times(v895, load(tbl, 157 * VECWIDTH + tbloffset)));
   real2 v903 = timesminusplus(reverse(v893), load(tbl, 154 * VECWIDTH + tbloffset), times(v893, load(tbl, 155 * VECWIDTH + tbloffset)));
   real2 v269 = timesminusplus(reverse(v255), load(tbl, 28 * VECWIDTH + tbloffset), times(v255, load(tbl, 29 * VECWIDTH + tbloffset)));
   real2 v1216 = plus(v896, v897);
   real2 v1212 = minus(v897, v896);
   real2 v2160 = minus(v583, v263);
   real2 v2164 = plus(v263, v583);
   real2 v2686 = minus(v589, v269);
   real2 v2690 = plus(v269, v589);
   real2 v96 = load(in, 94 << inShift);
   real2 v32 = load(in, 30 << inShift);
   real2 v736 = plus(v32, v96);
   real2 v732 = minus(v96, v32);
   real2 v64 = load(in, 62 << inShift);
   real2 v128 = load(in, 126 << inShift);
   real2 v737 = plus(v64, v128);
   real2 v731 = reverse(minus(v128, v64));
   real2 v1057 = plus(v736, v737);
   real2 v1051 = reverse(minus(v737, v736));
   real2 v733 = minusplus(v731, v732);
   real2 v735 = minusplus(uminus(v731), v732);
   real2 v749 = timesminusplus(reverse(v735), load(tbl, 124 * VECWIDTH + tbloffset), times(v735, load(tbl, 125 * VECWIDTH + tbloffset)));
   real2 v743 = timesminusplus(reverse(v733), load(tbl, 122 * VECWIDTH + tbloffset), times(v733, load(tbl, 123 * VECWIDTH + tbloffset)));
   real2 v16 = load(in, 14 << inShift);
   real2 v80 = load(in, 78 << inShift);
   real2 v412 = minus(v80, v16);
   real2 v416 = plus(v16, v80);
   real2 v112 = load(in, 110 << inShift);
   real2 v48 = load(in, 46 << inShift);
   real2 v417 = plus(v48, v112);
   real2 v411 = reverse(minus(v112, v48));
   real2 v1056 = plus(v416, v417);
   real2 v1052 = minus(v417, v416);
   real2 v1055 = minusplus(uminus(v1051), v1052);
   real2 v1053 = minusplus(v1051, v1052);
   real2 v1063 = timesminusplus(reverse(v1053), load(tbl, 186 * VECWIDTH + tbloffset), times(v1053, load(tbl, 187 * VECWIDTH + tbloffset)));
   real2 v1665 = plus(v903, v1063);
   real2 v1659 = reverse(minus(v1063, v903));
   real2 v1069 = timesminusplus(reverse(v1055), load(tbl, 188 * VECWIDTH + tbloffset), times(v1055, load(tbl, 189 * VECWIDTH + tbloffset)));
   real2 v1869 = reverse(minus(v1069, v909));
   real2 v1875 = plus(v909, v1069);
   real2 v413 = minusplus(v411, v412);
   real2 v415 = minusplus(uminus(v411), v412);
   real2 v429 = timesminusplus(reverse(v415), load(tbl, 60 * VECWIDTH + tbloffset), times(v415, load(tbl, 61 * VECWIDTH + tbloffset)));
   real2 v1217 = plus(v1056, v1057);
   real2 v1211 = reverse(minus(v1057, v1056));
   real2 v1297 = plus(v1216, v1217);
   real2 v1291 = reverse(minus(v1217, v1216));
   real2 v2691 = plus(v429, v749);
   real2 v2685 = reverse(minus(v749, v429));
   real2 v2765 = reverse(minus(v2691, v2690));
   real2 v2771 = plus(v2690, v2691);
   real2 v2689 = minusplus(uminus(v2685), v2686);
   real2 v2687 = minusplus(v2685, v2686);
   real2 v2703 = timesminusplus(reverse(v2689), load(tbl, 476 * VECWIDTH + tbloffset), times(v2689, load(tbl, 477 * VECWIDTH + tbloffset)));
   real2 v2697 = timesminusplus(reverse(v2687), load(tbl, 474 * VECWIDTH + tbloffset), times(v2687, load(tbl, 475 * VECWIDTH + tbloffset)));
   real2 v1215 = minusplus(uminus(v1211), v1212);
   real2 v1213 = minusplus(v1211, v1212);
   real2 v1223 = timesminusplus(reverse(v1213), load(tbl, 218 * VECWIDTH + tbloffset), times(v1213, load(tbl, 219 * VECWIDTH + tbloffset)));
   real2 v1229 = timesminusplus(reverse(v1215), load(tbl, 220 * VECWIDTH + tbloffset), times(v1215, load(tbl, 221 * VECWIDTH + tbloffset)));
   real2 v423 = timesminusplus(reverse(v413), load(tbl, 58 * VECWIDTH + tbloffset), times(v413, load(tbl, 59 * VECWIDTH + tbloffset)));
   real2 v2165 = plus(v423, v743);
   real2 v2159 = reverse(minus(v743, v423));
   real2 v2245 = plus(v2164, v2165);
   real2 v2239 = reverse(minus(v2165, v2164));
   real2 v44 = load(in, 42 << inShift);
   real2 v108 = load(in, 106 << inShift);
   real2 v331 = reverse(minus(v108, v44));
   real2 v337 = plus(v44, v108);
   real2 v76 = load(in, 74 << inShift);
   real2 v12 = load(in, 10 << inShift);
   real2 v336 = plus(v12, v76);
   real2 v332 = minus(v76, v12);
   real2 v976 = plus(v336, v337);
   real2 v972 = minus(v337, v336);
   real2 v335 = minusplus(uminus(v331), v332);
   real2 v333 = minusplus(v331, v332);
   real2 v343 = timesminusplus(reverse(v333), load(tbl, 42 * VECWIDTH + tbloffset), times(v333, load(tbl, 43 * VECWIDTH + tbloffset)));
   real2 v349 = timesminusplus(reverse(v335), load(tbl, 44 * VECWIDTH + tbloffset), times(v335, load(tbl, 45 * VECWIDTH + tbloffset)));
   real2 v124 = load(in, 122 << inShift);
   real2 v60 = load(in, 58 << inShift);
   real2 v651 = reverse(minus(v124, v60));
   real2 v657 = plus(v60, v124);
   real2 v28 = load(in, 26 << inShift);
   real2 v92 = load(in, 90 << inShift);
   real2 v652 = minus(v92, v28);
   real2 v656 = plus(v28, v92);
   real2 v977 = plus(v656, v657);
   real2 v971 = reverse(minus(v657, v656));
   real2 v973 = minusplus(v971, v972);
   real2 v975 = minusplus(uminus(v971), v972);
   real2 v983 = timesminusplus(reverse(v973), load(tbl, 170 * VECWIDTH + tbloffset), times(v973, load(tbl, 171 * VECWIDTH + tbloffset)));
   real2 v1131 = reverse(minus(v977, v976));
   real2 v1137 = plus(v976, v977);
   real2 v655 = minusplus(uminus(v651), v652);
   real2 v653 = minusplus(v651, v652);
   real2 v669 = timesminusplus(reverse(v655), load(tbl, 108 * VECWIDTH + tbloffset), times(v655, load(tbl, 109 * VECWIDTH + tbloffset)));
   real2 v663 = timesminusplus(reverse(v653), load(tbl, 106 * VECWIDTH + tbloffset), times(v653, load(tbl, 107 * VECWIDTH + tbloffset)));
   real2 v2079 = reverse(minus(v663, v343));
   real2 v2085 = plus(v343, v663);
   real2 v2605 = reverse(minus(v669, v349));
   real2 v2611 = plus(v349, v669);
   real2 v989 = timesminusplus(reverse(v975), load(tbl, 172 * VECWIDTH + tbloffset), times(v975, load(tbl, 173 * VECWIDTH + tbloffset)));
   real2 v20 = load(in, 18 << inShift);
   real2 v84 = load(in, 82 << inShift);
   real2 v496 = plus(v20, v84);
   real2 v492 = minus(v84, v20);
   real2 v52 = load(in, 50 << inShift);
   real2 v116 = load(in, 114 << inShift);
   real2 v491 = reverse(minus(v116, v52));
   real2 v497 = plus(v52, v116);
   real2 v817 = plus(v496, v497);
   real2 v811 = reverse(minus(v497, v496));
   real2 v493 = minusplus(v491, v492);
   real2 v495 = minusplus(uminus(v491), v492);
   real2 v509 = timesminusplus(reverse(v495), load(tbl, 76 * VECWIDTH + tbloffset), times(v495, load(tbl, 77 * VECWIDTH + tbloffset)));
   real2 v503 = timesminusplus(reverse(v493), load(tbl, 74 * VECWIDTH + tbloffset), times(v493, load(tbl, 75 * VECWIDTH + tbloffset)));
   real2 v36 = load(in, 34 << inShift);
   real2 v100 = load(in, 98 << inShift);
   real2 v171 = reverse(minus(v100, v36));
   real2 v177 = plus(v36, v100);
   real2 v68 = load(in, 66 << inShift);
   real2 v4 = load(in, 2 << inShift);
   real2 v176 = plus(v4, v68);
   real2 v172 = minus(v68, v4);
   real2 v816 = plus(v176, v177);
   real2 v812 = minus(v177, v176);
   real2 v1136 = plus(v816, v817);
   real2 v1132 = minus(v817, v816);
   real2 v1133 = minusplus(v1131, v1132);
   real2 v1135 = minusplus(uminus(v1131), v1132);
   real2 v1149 = timesminusplus(reverse(v1135), load(tbl, 204 * VECWIDTH + tbloffset), times(v1135, load(tbl, 205 * VECWIDTH + tbloffset)));
   real2 v1296 = plus(v1136, v1137);
   real2 v1292 = minus(v1137, v1136);
   real2 v1295 = minusplus(uminus(v1291), v1292);
   real2 v1293 = minusplus(v1291, v1292);
   real2 v1303 = timesminusplus(reverse(v1293), load(tbl, 234 * VECWIDTH + tbloffset), times(v1293, load(tbl, 235 * VECWIDTH + tbloffset)));
   real2 v1331 = reverse(minus(v1297, v1296));
   real2 v1337 = plus(v1296, v1297);
   real2 v173 = minusplus(v171, v172);
   real2 v175 = minusplus(uminus(v171), v172);
   real2 v189 = timesminusplus(reverse(v175), load(tbl, 12 * VECWIDTH + tbloffset), times(v175, load(tbl, 13 * VECWIDTH + tbloffset)));
   real2 v1309 = timesminusplus(reverse(v1295), load(tbl, 236 * VECWIDTH + tbloffset), times(v1295, load(tbl, 237 * VECWIDTH + tbloffset)));
   real2 v815 = minusplus(uminus(v811), v812);
   real2 v813 = minusplus(v811, v812);
   real2 v1143 = timesminusplus(reverse(v1133), load(tbl, 202 * VECWIDTH + tbloffset), times(v1133, load(tbl, 203 * VECWIDTH + tbloffset)));
   real2 v1541 = reverse(minus(v1229, v1149));
   real2 v1547 = plus(v1149, v1229);
   real2 v2610 = plus(v189, v509);
   real2 v2606 = minus(v509, v189);
   real2 v2770 = plus(v2610, v2611);
   real2 v2766 = minus(v2611, v2610);
   real2 v823 = timesminusplus(reverse(v813), load(tbl, 138 * VECWIDTH + tbloffset), times(v813, load(tbl, 139 * VECWIDTH + tbloffset)));
   real2 v829 = timesminusplus(reverse(v815), load(tbl, 140 * VECWIDTH + tbloffset), times(v815, load(tbl, 141 * VECWIDTH + tbloffset)));
   real2 v2811 = plus(v2770, v2771);
   real2 v2805 = reverse(minus(v2771, v2770));
   real2 v2767 = minusplus(v2765, v2766);
   real2 v2769 = minusplus(uminus(v2765), v2766);
   real2 v2607 = minusplus(v2605, v2606);
   real2 v2609 = minusplus(uminus(v2605), v2606);
   real2 v2617 = timesminusplus(reverse(v2607), load(tbl, 458 * VECWIDTH + tbloffset), times(v2607, load(tbl, 459 * VECWIDTH + tbloffset)));
   real2 v2623 = timesminusplus(reverse(v2609), load(tbl, 460 * VECWIDTH + tbloffset), times(v2609, load(tbl, 461 * VECWIDTH + tbloffset)));
   real2 v3013 = reverse(minus(v2703, v2623));
   real2 v3019 = plus(v2623, v2703);
   real2 v2783 = timesminusplus(reverse(v2769), load(tbl, 492 * VECWIDTH + tbloffset), times(v2769, load(tbl, 493 * VECWIDTH + tbloffset)));
   real2 v2941 = plus(v2617, v2697);
   real2 v2935 = reverse(minus(v2697, v2617));
   real2 v2777 = timesminusplus(reverse(v2767), load(tbl, 490 * VECWIDTH + tbloffset), times(v2767, load(tbl, 491 * VECWIDTH + tbloffset)));
   real2 v1660 = minus(v983, v823);
   real2 v1664 = plus(v823, v983);
   real2 v1874 = plus(v829, v989);
   real2 v1870 = minus(v989, v829);
   real2 v1909 = reverse(minus(v1875, v1874));
   real2 v1915 = plus(v1874, v1875);
   real2 v1663 = minusplus(uminus(v1659), v1660);
   real2 v1661 = minusplus(v1659, v1660);
   real2 v1677 = timesminusplus(reverse(v1663), load(tbl, 296 * VECWIDTH + tbloffset), times(v1663, load(tbl, 297 * VECWIDTH + tbloffset)));
   real2 v1873 = minusplus(uminus(v1869), v1870);
   real2 v1871 = minusplus(v1869, v1870);
   real2 v1887 = timesminusplus(reverse(v1873), load(tbl, 332 * VECWIDTH + tbloffset), times(v1873, load(tbl, 333 * VECWIDTH + tbloffset)));
   real2 v1705 = plus(v1664, v1665);
   real2 v1699 = reverse(minus(v1665, v1664));
   real2 v1671 = timesminusplus(reverse(v1661), load(tbl, 294 * VECWIDTH + tbloffset), times(v1661, load(tbl, 295 * VECWIDTH + tbloffset)));
   real2 v1881 = timesminusplus(reverse(v1871), load(tbl, 330 * VECWIDTH + tbloffset), times(v1871, load(tbl, 331 * VECWIDTH + tbloffset)));
   real2 v1469 = plus(v1143, v1223);
   real2 v1463 = reverse(minus(v1223, v1143));
   real2 v54 = load(in, 52 << inShift);
   real2 v118 = load(in, 116 << inShift);
   real2 v537 = plus(v54, v118);
   real2 v531 = reverse(minus(v118, v54));
   real2 v86 = load(in, 84 << inShift);
   real2 v22 = load(in, 20 << inShift);
   real2 v536 = plus(v22, v86);
   real2 v532 = minus(v86, v22);
   real2 v851 = reverse(minus(v537, v536));
   real2 v857 = plus(v536, v537);
   real2 v533 = minusplus(v531, v532);
   real2 v535 = minusplus(uminus(v531), v532);
   real2 v549 = timesminusplus(reverse(v535), load(tbl, 84 * VECWIDTH + tbloffset), times(v535, load(tbl, 85 * VECWIDTH + tbloffset)));
   real2 v102 = load(in, 100 << inShift);
   real2 v38 = load(in, 36 << inShift);
   real2 v217 = plus(v38, v102);
   real2 v211 = reverse(minus(v102, v38));
   real2 v70 = load(in, 68 << inShift);
   real2 v6 = load(in, 4 << inShift);
   real2 v216 = plus(v6, v70);
   real2 v212 = minus(v70, v6);
   real2 v213 = minusplus(v211, v212);
   real2 v215 = minusplus(uminus(v211), v212);
   real2 v229 = timesminusplus(reverse(v215), load(tbl, 20 * VECWIDTH + tbloffset), times(v215, load(tbl, 21 * VECWIDTH + tbloffset)));
   real2 v2646 = minus(v549, v229);
   real2 v2650 = plus(v229, v549);
   real2 v856 = plus(v216, v217);
   real2 v852 = minus(v217, v216);
   real2 v853 = minusplus(v851, v852);
   real2 v855 = minusplus(uminus(v851), v852);
   real2 v863 = timesminusplus(reverse(v853), load(tbl, 146 * VECWIDTH + tbloffset), times(v853, load(tbl, 147 * VECWIDTH + tbloffset)));
   real2 v869 = timesminusplus(reverse(v855), load(tbl, 148 * VECWIDTH + tbloffset), times(v855, load(tbl, 149 * VECWIDTH + tbloffset)));
   real2 v1176 = plus(v856, v857);
   real2 v1172 = minus(v857, v856);
   real2 v110 = load(in, 108 << inShift);
   real2 v46 = load(in, 44 << inShift);
   real2 v377 = plus(v46, v110);
   real2 v371 = reverse(minus(v110, v46));
   real2 v78 = load(in, 76 << inShift);
   real2 v14 = load(in, 12 << inShift);
   real2 v372 = minus(v78, v14);
   real2 v376 = plus(v14, v78);
   real2 v1012 = minus(v377, v376);
   real2 v1016 = plus(v376, v377);
   real2 v373 = minusplus(v371, v372);
   real2 v375 = minusplus(uminus(v371), v372);
   real2 v389 = timesminusplus(reverse(v375), load(tbl, 52 * VECWIDTH + tbloffset), times(v375, load(tbl, 53 * VECWIDTH + tbloffset)));
   real2 v30 = load(in, 28 << inShift);
   real2 v94 = load(in, 92 << inShift);
   real2 v696 = plus(v30, v94);
   real2 v692 = minus(v94, v30);
   real2 v62 = load(in, 60 << inShift);
   real2 v126 = load(in, 124 << inShift);
   real2 v697 = plus(v62, v126);
   real2 v691 = reverse(minus(v126, v62));
   real2 v1017 = plus(v696, v697);
   real2 v1011 = reverse(minus(v697, v696));
   real2 v1171 = reverse(minus(v1017, v1016));
   real2 v1177 = plus(v1016, v1017);
   real2 v1013 = minusplus(v1011, v1012);
   real2 v1015 = minusplus(uminus(v1011), v1012);
   real2 v1175 = minusplus(uminus(v1171), v1172);
   real2 v1173 = minusplus(v1171, v1172);
   real2 v1183 = timesminusplus(reverse(v1173), load(tbl, 210 * VECWIDTH + tbloffset), times(v1173, load(tbl, 211 * VECWIDTH + tbloffset)));
   real2 v1189 = timesminusplus(reverse(v1175), load(tbl, 212 * VECWIDTH + tbloffset), times(v1175, load(tbl, 213 * VECWIDTH + tbloffset)));
   real2 v1029 = timesminusplus(reverse(v1015), load(tbl, 180 * VECWIDTH + tbloffset), times(v1015, load(tbl, 181 * VECWIDTH + tbloffset)));
   real2 v1023 = timesminusplus(reverse(v1013), load(tbl, 178 * VECWIDTH + tbloffset), times(v1013, load(tbl, 179 * VECWIDTH + tbloffset)));
   real2 v1625 = plus(v863, v1023);
   real2 v1619 = reverse(minus(v1023, v863));
   real2 v1835 = plus(v869, v1029);
   real2 v1829 = reverse(minus(v1029, v869));
   real2 v693 = minusplus(v691, v692);
   real2 v695 = minusplus(uminus(v691), v692);
   real2 v709 = timesminusplus(reverse(v695), load(tbl, 116 * VECWIDTH + tbloffset), times(v695, load(tbl, 117 * VECWIDTH + tbloffset)));
   real2 v2645 = reverse(minus(v709, v389));
   real2 v2651 = plus(v389, v709);
   real2 v1257 = plus(v1176, v1177);
   real2 v1251 = reverse(minus(v1177, v1176));
   real2 v2731 = plus(v2650, v2651);
   real2 v2725 = reverse(minus(v2651, v2650));
   real2 v114 = load(in, 112 << inShift);
   real2 v50 = load(in, 48 << inShift);
   real2 v457 = plus(v50, v114);
   real2 v451 = reverse(minus(v114, v50));
   real2 v18 = load(in, 16 << inShift);
   real2 v82 = load(in, 80 << inShift);
   real2 v456 = plus(v18, v82);
   real2 v452 = minus(v82, v18);
   real2 v771 = reverse(minus(v457, v456));
   real2 v777 = plus(v456, v457);
   real2 v453 = minusplus(v451, v452);
   real2 v455 = minusplus(uminus(v451), v452);
   real2 v469 = timesminusplus(reverse(v455), load(tbl, 68 * VECWIDTH + tbloffset), times(v455, load(tbl, 69 * VECWIDTH + tbloffset)));
   real2 v66 = load(in, 64 << inShift);
   real2 v2 = load(in, 0 << inShift);
   real2 v132 = minus(v66, v2);
   real2 v136 = plus(v2, v66);
   real2 v98 = load(in, 96 << inShift);
   real2 v34 = load(in, 32 << inShift);
   real2 v131 = reverse(minus(v98, v34));
   real2 v137 = plus(v34, v98);
   real2 v133 = minusplus(v131, v132);
   real2 v135 = minusplus(uminus(v131), v132);
   real2 v149 = timesminusplus(reverse(v135), load(tbl, 4 * VECWIDTH + tbloffset), times(v135, load(tbl, 5 * VECWIDTH + tbloffset)));
   real2 v2566 = minus(v469, v149);
   real2 v2570 = plus(v149, v469);
   real2 v772 = minus(v137, v136);
   real2 v776 = plus(v136, v137);
   real2 v1092 = minus(v777, v776);
   real2 v1096 = plus(v776, v777);
   real2 v773 = minusplus(v771, v772);
   real2 v775 = minusplus(uminus(v771), v772);
   real2 v783 = timesminusplus(reverse(v773), load(tbl, 130 * VECWIDTH + tbloffset), times(v773, load(tbl, 131 * VECWIDTH + tbloffset)));
   real2 v789 = timesminusplus(reverse(v775), load(tbl, 132 * VECWIDTH + tbloffset), times(v775, load(tbl, 133 * VECWIDTH + tbloffset)));
   real2 v74 = load(in, 72 << inShift);
   real2 v10 = load(in, 8 << inShift);
   real2 v296 = plus(v10, v74);
   real2 v292 = minus(v74, v10);
   real2 v42 = load(in, 40 << inShift);
   real2 v106 = load(in, 104 << inShift);
   real2 v291 = reverse(minus(v106, v42));
   real2 v297 = plus(v42, v106);
   real2 v293 = minusplus(v291, v292);
   real2 v295 = minusplus(uminus(v291), v292);
   real2 v309 = timesminusplus(reverse(v295), load(tbl, 36 * VECWIDTH + tbloffset), times(v295, load(tbl, 37 * VECWIDTH + tbloffset)));
   real2 v932 = minus(v297, v296);
   real2 v936 = plus(v296, v297);
   real2 v122 = load(in, 120 << inShift);
   real2 v58 = load(in, 56 << inShift);
   real2 v617 = plus(v58, v122);
   real2 v611 = reverse(minus(v122, v58));
   real2 v26 = load(in, 24 << inShift);
   real2 v90 = load(in, 88 << inShift);
   real2 v612 = minus(v90, v26);
   real2 v616 = plus(v26, v90);
   real2 v937 = plus(v616, v617);
   real2 v931 = reverse(minus(v617, v616));
   real2 v1091 = reverse(minus(v937, v936));
   real2 v1097 = plus(v936, v937);
   real2 v933 = minusplus(v931, v932);
   real2 v935 = minusplus(uminus(v931), v932);
   real2 v1093 = minusplus(v1091, v1092);
   real2 v1095 = minusplus(uminus(v1091), v1092);
   real2 v1103 = timesminusplus(reverse(v1093), load(tbl, 194 * VECWIDTH + tbloffset), times(v1093, load(tbl, 195 * VECWIDTH + tbloffset)));
   real2 v1468 = plus(v1103, v1183);
   real2 v1464 = minus(v1183, v1103);
   real2 v1508 = plus(v1468, v1469);
   real2 v1504 = minus(v1469, v1468);
   real2 v1252 = minus(v1097, v1096);
   real2 v1256 = plus(v1096, v1097);
   real2 v1336 = plus(v1256, v1257);
   real2 v1332 = minus(v1257, v1256);
   real2 v1335 = minusplus(uminus(v1331), v1332);
   real2 v1333 = minusplus(v1331, v1332);
   real2 v1343 = timesminusplus(reverse(v1333), load(tbl, 242 * VECWIDTH + tbloffset), times(v1333, load(tbl, 243 * VECWIDTH + tbloffset)));
   real2 v1349 = timesminusplus(reverse(v1335), load(tbl, 244 * VECWIDTH + tbloffset), times(v1335, load(tbl, 245 * VECWIDTH + tbloffset)));
   real2 v1376 = plus(v1336, v1337);
   real2 v1372 = minus(v1337, v1336);
   real2 v1465 = minusplus(v1463, v1464);
   real2 v1467 = minusplus(uminus(v1463), v1464);
   real2 v1255 = minusplus(uminus(v1251), v1252);
   real2 v1253 = minusplus(v1251, v1252);
   real2 v1481 = timesminusplus(reverse(v1467), load(tbl, 264 * VECWIDTH + tbloffset), times(v1467, load(tbl, 265 * VECWIDTH + tbloffset)));
   real2 v1475 = timesminusplus(reverse(v1465), load(tbl, 262 * VECWIDTH + tbloffset), times(v1465, load(tbl, 263 * VECWIDTH + tbloffset)));
   real2 v1109 = timesminusplus(reverse(v1095), load(tbl, 196 * VECWIDTH + tbloffset), times(v1095, load(tbl, 197 * VECWIDTH + tbloffset)));
   real2 v1542 = minus(v1189, v1109);
   real2 v1546 = plus(v1109, v1189);
   real2 v1545 = minusplus(uminus(v1541), v1542);
   real2 v1543 = minusplus(v1541, v1542);
   real2 v1553 = timesminusplus(reverse(v1543), load(tbl, 274 * VECWIDTH + tbloffset), times(v1543, load(tbl, 275 * VECWIDTH + tbloffset)));
   real2 v1559 = timesminusplus(reverse(v1545), load(tbl, 276 * VECWIDTH + tbloffset), times(v1545, load(tbl, 277 * VECWIDTH + tbloffset)));
   real2 v1582 = minus(v1547, v1546);
   real2 v1586 = plus(v1546, v1547);
   real2 v1269 = timesminusplus(reverse(v1255), load(tbl, 228 * VECWIDTH + tbloffset), times(v1255, load(tbl, 229 * VECWIDTH + tbloffset)));
   real2 v1438 = minus(v1309, v1269);
   real2 v1442 = plus(v1269, v1309);
   real2 v1263 = timesminusplus(reverse(v1253), load(tbl, 226 * VECWIDTH + tbloffset), times(v1253, load(tbl, 227 * VECWIDTH + tbloffset)));
   real2 v943 = timesminusplus(reverse(v933), load(tbl, 162 * VECWIDTH + tbloffset), times(v933, load(tbl, 163 * VECWIDTH + tbloffset)));
   real2 v1624 = plus(v783, v943);
   real2 v1620 = minus(v943, v783);
   real2 v1623 = minusplus(uminus(v1619), v1620);
   real2 v1621 = minusplus(v1619, v1620);
   real2 v1700 = minus(v1625, v1624);
   real2 v1704 = plus(v1624, v1625);
   real2 v1631 = timesminusplus(reverse(v1621), load(tbl, 286 * VECWIDTH + tbloffset), times(v1621, load(tbl, 287 * VECWIDTH + tbloffset)));
   real2 v949 = timesminusplus(reverse(v935), load(tbl, 164 * VECWIDTH + tbloffset), times(v935, load(tbl, 165 * VECWIDTH + tbloffset)));
   real2 v1830 = minus(v949, v789);
   real2 v1834 = plus(v789, v949);
   real2 v1782 = plus(v1631, v1671);
   real2 v1778 = minus(v1671, v1631);
   real2 v1910 = minus(v1835, v1834);
   real2 v1914 = plus(v1834, v1835);
   real2 v1950 = minus(v1915, v1914);
   real2 v1954 = plus(v1914, v1915);
   real2 v1913 = minusplus(uminus(v1909), v1910);
   real2 v1911 = minusplus(v1909, v1910);
   real2 v613 = minusplus(v611, v612);
   real2 v615 = minusplus(uminus(v611), v612);
   real2 v629 = timesminusplus(reverse(v615), load(tbl, 100 * VECWIDTH + tbloffset), times(v615, load(tbl, 101 * VECWIDTH + tbloffset)));
   real2 v1744 = plus(v1704, v1705);
   real2 v1740 = minus(v1705, v1704);
   real2 v1637 = timesminusplus(reverse(v1623), load(tbl, 288 * VECWIDTH + tbloffset), times(v1623, load(tbl, 289 * VECWIDTH + tbloffset)));
   real2 v1927 = timesminusplus(reverse(v1913), load(tbl, 340 * VECWIDTH + tbloffset), times(v1913, load(tbl, 341 * VECWIDTH + tbloffset)));
   real2 v2571 = plus(v309, v629);
   real2 v2565 = reverse(minus(v629, v309));
   real2 v1833 = minusplus(uminus(v1829), v1830);
   real2 v1831 = minusplus(v1829, v1830);
   real2 v1921 = timesminusplus(reverse(v1911), load(tbl, 338 * VECWIDTH + tbloffset), times(v1911, load(tbl, 339 * VECWIDTH + tbloffset)));
   real2 v1804 = minus(v1677, v1637);
   real2 v1808 = plus(v1637, v1677);
   real2 v1847 = timesminusplus(reverse(v1833), load(tbl, 324 * VECWIDTH + tbloffset), times(v1833, load(tbl, 325 * VECWIDTH + tbloffset)));
   real2 v2014 = minus(v1887, v1847);
   real2 v2018 = plus(v1847, v1887);
   real2 v1841 = timesminusplus(reverse(v1831), load(tbl, 322 * VECWIDTH + tbloffset), times(v1831, load(tbl, 323 * VECWIDTH + tbloffset)));
   real2 v1988 = minus(v1881, v1841);
   real2 v1992 = plus(v1841, v1881);
   real2 v1703 = minusplus(uminus(v1699), v1700);
   real2 v1701 = minusplus(v1699, v1700);
   real2 v1717 = timesminusplus(reverse(v1703), load(tbl, 304 * VECWIDTH + tbloffset), times(v1703, load(tbl, 305 * VECWIDTH + tbloffset)));
   real2 v1711 = timesminusplus(reverse(v1701), load(tbl, 302 * VECWIDTH + tbloffset), times(v1701, load(tbl, 303 * VECWIDTH + tbloffset)));
   real2 v2730 = plus(v2570, v2571);
   real2 v2726 = minus(v2571, v2570);
   real2 v1412 = minus(v1303, v1263);
   real2 v1416 = plus(v1263, v1303);
   real2 v63 = load(in, 61 << inShift);
   real2 v127 = load(in, 125 << inShift);
   real2 v717 = plus(v63, v127);
   real2 v711 = reverse(minus(v127, v63));
   real2 v95 = load(in, 93 << inShift);
   real2 v31 = load(in, 29 << inShift);
   real2 v712 = minus(v95, v31);
   real2 v716 = plus(v31, v95);
   real2 v1037 = plus(v716, v717);
   real2 v1031 = reverse(minus(v717, v716));
   real2 v79 = load(in, 77 << inShift);
   real2 v15 = load(in, 13 << inShift);
   real2 v396 = plus(v15, v79);
   real2 v392 = minus(v79, v15);
   real2 v111 = load(in, 109 << inShift);
   real2 v47 = load(in, 45 << inShift);
   real2 v397 = plus(v47, v111);
   real2 v391 = reverse(minus(v111, v47));
   real2 v1032 = minus(v397, v396);
   real2 v1036 = plus(v396, v397);
   real2 v1033 = minusplus(v1031, v1032);
   real2 v1035 = minusplus(uminus(v1031), v1032);
   real2 v1049 = timesminusplus(reverse(v1035), load(tbl, 184 * VECWIDTH + tbloffset), times(v1035, load(tbl, 185 * VECWIDTH + tbloffset)));
   real2 v1043 = timesminusplus(reverse(v1033), load(tbl, 182 * VECWIDTH + tbloffset), times(v1033, load(tbl, 183 * VECWIDTH + tbloffset)));
   real2 v1197 = plus(v1036, v1037);
   real2 v1191 = reverse(minus(v1037, v1036));
   real2 v23 = load(in, 21 << inShift);
   real2 v87 = load(in, 85 << inShift);
   real2 v556 = plus(v23, v87);
   real2 v552 = minus(v87, v23);
   real2 v119 = load(in, 117 << inShift);
   real2 v55 = load(in, 53 << inShift);
   real2 v557 = plus(v55, v119);
   real2 v551 = reverse(minus(v119, v55));
   real2 v877 = plus(v556, v557);
   real2 v871 = reverse(minus(v557, v556));
   real2 v7 = load(in, 5 << inShift);
   real2 v71 = load(in, 69 << inShift);
   real2 v232 = minus(v71, v7);
   real2 v236 = plus(v7, v71);
   real2 v103 = load(in, 101 << inShift);
   real2 v39 = load(in, 37 << inShift);
   real2 v237 = plus(v39, v103);
   real2 v231 = reverse(minus(v103, v39));
   real2 v876 = plus(v236, v237);
   real2 v872 = minus(v237, v236);
   real2 v1192 = minus(v877, v876);
   real2 v1196 = plus(v876, v877);
   real2 v1271 = reverse(minus(v1197, v1196));
   real2 v1277 = plus(v1196, v1197);
   real2 v875 = minusplus(uminus(v871), v872);
   real2 v873 = minusplus(v871, v872);
   real2 v883 = timesminusplus(reverse(v873), load(tbl, 150 * VECWIDTH + tbloffset), times(v873, load(tbl, 151 * VECWIDTH + tbloffset)));
   real2 v1639 = reverse(minus(v1043, v883));
   real2 v1645 = plus(v883, v1043);
   real2 v1195 = minusplus(uminus(v1191), v1192);
   real2 v1193 = minusplus(v1191, v1192);
   real2 v1209 = timesminusplus(reverse(v1195), load(tbl, 216 * VECWIDTH + tbloffset), times(v1195, load(tbl, 217 * VECWIDTH + tbloffset)));
   real2 v1203 = timesminusplus(reverse(v1193), load(tbl, 214 * VECWIDTH + tbloffset), times(v1193, load(tbl, 215 * VECWIDTH + tbloffset)));
   real2 v83 = load(in, 81 << inShift);
   real2 v19 = load(in, 17 << inShift);
   real2 v476 = plus(v19, v83);
   real2 v472 = minus(v83, v19);
   real2 v51 = load(in, 49 << inShift);
   real2 v115 = load(in, 113 << inShift);
   real2 v477 = plus(v51, v115);
   real2 v471 = reverse(minus(v115, v51));
   real2 v797 = plus(v476, v477);
   real2 v791 = reverse(minus(v477, v476));
   real2 v3 = load(in, 1 << inShift);
   real2 v67 = load(in, 65 << inShift);
   real2 v156 = plus(v3, v67);
   real2 v152 = minus(v67, v3);
   real2 v35 = load(in, 33 << inShift);
   real2 v99 = load(in, 97 << inShift);
   real2 v157 = plus(v35, v99);
   real2 v151 = reverse(minus(v99, v35));
   real2 v792 = minus(v157, v156);
   real2 v796 = plus(v156, v157);
   real2 v793 = minusplus(v791, v792);
   real2 v795 = minusplus(uminus(v791), v792);
   real2 v803 = timesminusplus(reverse(v793), load(tbl, 134 * VECWIDTH + tbloffset), times(v793, load(tbl, 135 * VECWIDTH + tbloffset)));
   real2 v1112 = minus(v797, v796);
   real2 v1116 = plus(v796, v797);
   real2 v107 = load(in, 105 << inShift);
   real2 v43 = load(in, 41 << inShift);
   real2 v317 = plus(v43, v107);
   real2 v311 = reverse(minus(v107, v43));
   real2 v75 = load(in, 73 << inShift);
   real2 v11 = load(in, 9 << inShift);
   real2 v316 = plus(v11, v75);
   real2 v312 = minus(v75, v11);
   real2 v956 = plus(v316, v317);
   real2 v952 = minus(v317, v316);
   real2 v59 = load(in, 57 << inShift);
   real2 v123 = load(in, 121 << inShift);
   real2 v631 = reverse(minus(v123, v59));
   real2 v637 = plus(v59, v123);
   real2 v27 = load(in, 25 << inShift);
   real2 v91 = load(in, 89 << inShift);
   real2 v636 = plus(v27, v91);
   real2 v632 = minus(v91, v27);
   real2 v957 = plus(v636, v637);
   real2 v951 = reverse(minus(v637, v636));
   real2 v1111 = reverse(minus(v957, v956));
   real2 v1117 = plus(v956, v957);
   real2 v1276 = plus(v1116, v1117);
   real2 v1272 = minus(v1117, v1116);
   real2 v1275 = minusplus(uminus(v1271), v1272);
   real2 v1273 = minusplus(v1271, v1272);
   real2 v1283 = timesminusplus(reverse(v1273), load(tbl, 230 * VECWIDTH + tbloffset), times(v1273, load(tbl, 231 * VECWIDTH + tbloffset)));
   real2 v1352 = minus(v1277, v1276);
   real2 v1356 = plus(v1276, v1277);
   real2 v1289 = timesminusplus(reverse(v1275), load(tbl, 232 * VECWIDTH + tbloffset), times(v1275, load(tbl, 233 * VECWIDTH + tbloffset)));
   real2 v1115 = minusplus(uminus(v1111), v1112);
   real2 v1113 = minusplus(v1111, v1112);
   real2 v1123 = timesminusplus(reverse(v1113), load(tbl, 198 * VECWIDTH + tbloffset), times(v1113, load(tbl, 199 * VECWIDTH + tbloffset)));
   real2 v1129 = timesminusplus(reverse(v1115), load(tbl, 200 * VECWIDTH + tbloffset), times(v1115, load(tbl, 201 * VECWIDTH + tbloffset)));
   real2 v1488 = plus(v1123, v1203);
   real2 v1484 = minus(v1203, v1123);
   real2 v1566 = plus(v1129, v1209);
   real2 v1562 = minus(v1209, v1129);
   real2 v85 = load(in, 83 << inShift);
   real2 v21 = load(in, 19 << inShift);
   real2 v512 = minus(v85, v21);
   real2 v516 = plus(v21, v85);
   real2 v117 = load(in, 115 << inShift);
   real2 v53 = load(in, 51 << inShift);
   real2 v517 = plus(v53, v117);
   real2 v511 = reverse(minus(v117, v53));
   real2 v831 = reverse(minus(v517, v516));
   real2 v837 = plus(v516, v517);
   real2 v69 = load(in, 67 << inShift);
   real2 v5 = load(in, 3 << inShift);
   real2 v192 = minus(v69, v5);
   real2 v196 = plus(v5, v69);
   real2 v37 = load(in, 35 << inShift);
   real2 v101 = load(in, 99 << inShift);
   real2 v197 = plus(v37, v101);
   real2 v191 = reverse(minus(v101, v37));
   real2 v832 = minus(v197, v196);
   real2 v836 = plus(v196, v197);
   real2 v1152 = minus(v837, v836);
   real2 v1156 = plus(v836, v837);
   real2 v61 = load(in, 59 << inShift);
   real2 v125 = load(in, 123 << inShift);
   real2 v677 = plus(v61, v125);
   real2 v671 = reverse(minus(v125, v61));
   real2 v29 = load(in, 27 << inShift);
   real2 v93 = load(in, 91 << inShift);
   real2 v672 = minus(v93, v29);
   real2 v676 = plus(v29, v93);
   real2 v997 = plus(v676, v677);
   real2 v991 = reverse(minus(v677, v676));
   real2 v109 = load(in, 107 << inShift);
   real2 v45 = load(in, 43 << inShift);
   real2 v357 = plus(v45, v109);
   real2 v351 = reverse(minus(v109, v45));
   real2 v77 = load(in, 75 << inShift);
   real2 v13 = load(in, 11 << inShift);
   real2 v352 = minus(v77, v13);
   real2 v356 = plus(v13, v77);
   real2 v992 = minus(v357, v356);
   real2 v996 = plus(v356, v357);
   real2 v1157 = plus(v996, v997);
   real2 v1151 = reverse(minus(v997, v996));
   real2 v1155 = minusplus(uminus(v1151), v1152);
   real2 v1153 = minusplus(v1151, v1152);
   real2 v1163 = timesminusplus(reverse(v1153), load(tbl, 206 * VECWIDTH + tbloffset), times(v1153, load(tbl, 207 * VECWIDTH + tbloffset)));
   real2 v1316 = plus(v1156, v1157);
   real2 v1312 = minus(v1157, v1156);
   real2 v41 = load(in, 39 << inShift);
   real2 v105 = load(in, 103 << inShift);
   real2 v277 = plus(v41, v105);
   real2 v271 = reverse(minus(v105, v41));
   real2 v9 = load(in, 7 << inShift);
   real2 v73 = load(in, 71 << inShift);
   real2 v276 = plus(v9, v73);
   real2 v272 = minus(v73, v9);
   real2 v916 = plus(v276, v277);
   real2 v912 = minus(v277, v276);
   real2 v89 = load(in, 87 << inShift);
   real2 v25 = load(in, 23 << inShift);
   real2 v592 = minus(v89, v25);
   real2 v596 = plus(v25, v89);
   real2 v57 = load(in, 55 << inShift);
   real2 v121 = load(in, 119 << inShift);
   real2 v591 = reverse(minus(v121, v57));
   real2 v597 = plus(v57, v121);
   real2 v911 = reverse(minus(v597, v596));
   real2 v917 = plus(v596, v597);
   real2 v1236 = plus(v916, v917);
   real2 v1232 = minus(v917, v916);
   real2 v81 = load(in, 79 << inShift);
   real2 v17 = load(in, 15 << inShift);
   real2 v432 = minus(v81, v17);
   real2 v436 = plus(v17, v81);
   real2 v113 = load(in, 111 << inShift);
   real2 v49 = load(in, 47 << inShift);
   real2 v437 = plus(v49, v113);
   real2 v431 = reverse(minus(v113, v49));
   real2 v1072 = minus(v437, v436);
   real2 v1076 = plus(v436, v437);
   real2 v65 = load(in, 63 << inShift);
   real2 v129 = load(in, 127 << inShift);
   real2 v757 = plus(v65, v129);
   real2 v751 = reverse(minus(v129, v65));
   real2 v97 = load(in, 95 << inShift);
   real2 v33 = load(in, 31 << inShift);
   real2 v752 = minus(v97, v33);
   real2 v756 = plus(v33, v97);
   real2 v1077 = plus(v756, v757);
   real2 v1071 = reverse(minus(v757, v756));
   real2 v1231 = reverse(minus(v1077, v1076));
   real2 v1237 = plus(v1076, v1077);
   real2 v1317 = plus(v1236, v1237);
   real2 v1311 = reverse(minus(v1237, v1236));
   real2 v1351 = reverse(minus(v1317, v1316));
   real2 v1357 = plus(v1316, v1317);
   real2 v1371 = reverse(minus(v1357, v1356));
   real2 v1377 = plus(v1356, v1357);
   scatter(out, 0, 128, plus(v1376, v1377));
   real2 v1390 = minus(v1376, v1377);
   scatter(out, 64, 128, timesminusplus(v1390, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1390), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1353 = minusplus(v1351, v1352);
   real2 v1355 = minusplus(uminus(v1351), v1352);
   real2 v1369 = timesminusplus(reverse(v1355), load(tbl, 248 * VECWIDTH + tbloffset), times(v1355, load(tbl, 249 * VECWIDTH + tbloffset)));
   scatter(out, 48, 128, plus(v1349, v1369));
   real2 v1404 = minus(v1349, v1369);
   scatter(out, 112, 128, timesminusplus(v1404, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1404), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1363 = timesminusplus(reverse(v1353), load(tbl, 246 * VECWIDTH + tbloffset), times(v1353, load(tbl, 247 * VECWIDTH + tbloffset)));
   scatter(out, 16, 128, plus(v1343, v1363));
   real2 v1398 = minus(v1343, v1363);
   scatter(out, 80, 128, timesminusplus(v1398, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1398), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1373 = minusplus(v1371, v1372);
   real2 v1375 = minusplus(uminus(v1371), v1372);
   scatter(out, 96, 128, timesminusplus(reverse(v1375), load(tbl, 252 * VECWIDTH + tbloffset), times(v1375, load(tbl, 253 * VECWIDTH + tbloffset))));
   scatter(out, 32, 128, timesminusplus(reverse(v1373), load(tbl, 250 * VECWIDTH + tbloffset), times(v1373, load(tbl, 251 * VECWIDTH + tbloffset))));
   real2 v1313 = minusplus(v1311, v1312);
   real2 v1315 = minusplus(uminus(v1311), v1312);
   real2 v1323 = timesminusplus(reverse(v1313), load(tbl, 238 * VECWIDTH + tbloffset), times(v1313, load(tbl, 239 * VECWIDTH + tbloffset)));
   real2 v1417 = plus(v1283, v1323);
   real2 v1411 = reverse(minus(v1323, v1283));
   scatter(out, 8, 128, plus(v1416, v1417));
   real2 v1430 = minus(v1416, v1417);
   scatter(out, 72, 128, timesminusplus(v1430, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1430), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1413 = minusplus(v1411, v1412);
   real2 v1415 = minusplus(uminus(v1411), v1412);
   scatter(out, 104, 128, timesminusplus(reverse(v1415), load(tbl, 256 * VECWIDTH + tbloffset), times(v1415, load(tbl, 257 * VECWIDTH + tbloffset))));
   scatter(out, 40, 128, timesminusplus(reverse(v1413), load(tbl, 254 * VECWIDTH + tbloffset), times(v1413, load(tbl, 255 * VECWIDTH + tbloffset))));
   real2 v1329 = timesminusplus(reverse(v1315), load(tbl, 240 * VECWIDTH + tbloffset), times(v1315, load(tbl, 241 * VECWIDTH + tbloffset)));
   real2 v1443 = plus(v1289, v1329);
   real2 v1437 = reverse(minus(v1329, v1289));
   scatter(out, 24, 128, plus(v1442, v1443));
   real2 v1456 = minus(v1442, v1443);
   scatter(out, 88, 128, timesminusplus(v1456, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1456), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1441 = minusplus(uminus(v1437), v1438);
   real2 v1439 = minusplus(v1437, v1438);
   scatter(out, 120, 128, timesminusplus(reverse(v1441), load(tbl, 260 * VECWIDTH + tbloffset), times(v1441, load(tbl, 261 * VECWIDTH + tbloffset))));
   scatter(out, 56, 128, timesminusplus(reverse(v1439), load(tbl, 258 * VECWIDTH + tbloffset), times(v1439, load(tbl, 259 * VECWIDTH + tbloffset))));
   real2 v1235 = minusplus(uminus(v1231), v1232);
   real2 v1233 = minusplus(v1231, v1232);
   real2 v1243 = timesminusplus(reverse(v1233), load(tbl, 222 * VECWIDTH + tbloffset), times(v1233, load(tbl, 223 * VECWIDTH + tbloffset)));
   real2 v1489 = plus(v1163, v1243);
   real2 v1483 = reverse(minus(v1243, v1163));
   real2 v1509 = plus(v1488, v1489);
   real2 v1503 = reverse(minus(v1489, v1488));
   scatter(out, 4, 128, plus(v1508, v1509));
   real2 v1522 = minus(v1508, v1509);
   scatter(out, 68, 128, timesminusplus(v1522, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1522), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1507 = minusplus(uminus(v1503), v1504);
   real2 v1505 = minusplus(v1503, v1504);
   scatter(out, 36, 128, timesminusplus(reverse(v1505), load(tbl, 270 * VECWIDTH + tbloffset), times(v1505, load(tbl, 271 * VECWIDTH + tbloffset))));
   scatter(out, 100, 128, timesminusplus(reverse(v1507), load(tbl, 272 * VECWIDTH + tbloffset), times(v1507, load(tbl, 273 * VECWIDTH + tbloffset))));
   real2 v1485 = minusplus(v1483, v1484);
   real2 v1487 = minusplus(uminus(v1483), v1484);
   real2 v1501 = timesminusplus(reverse(v1487), load(tbl, 268 * VECWIDTH + tbloffset), times(v1487, load(tbl, 269 * VECWIDTH + tbloffset)));
   scatter(out, 52, 128, plus(v1481, v1501));
   real2 v1534 = minus(v1481, v1501);
   scatter(out, 116, 128, timesminusplus(v1534, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1534), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1495 = timesminusplus(reverse(v1485), load(tbl, 266 * VECWIDTH + tbloffset), times(v1485, load(tbl, 267 * VECWIDTH + tbloffset)));
   scatter(out, 20, 128, plus(v1475, v1495));
   real2 v1528 = minus(v1475, v1495);
   scatter(out, 84, 128, timesminusplus(v1528, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1528), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1249 = timesminusplus(reverse(v1235), load(tbl, 224 * VECWIDTH + tbloffset), times(v1235, load(tbl, 225 * VECWIDTH + tbloffset)));
   real2 v1169 = timesminusplus(reverse(v1155), load(tbl, 208 * VECWIDTH + tbloffset), times(v1155, load(tbl, 209 * VECWIDTH + tbloffset)));
   real2 v1567 = plus(v1169, v1249);
   real2 v1561 = reverse(minus(v1249, v1169));
   real2 v1581 = reverse(minus(v1567, v1566));
   real2 v1587 = plus(v1566, v1567);
   scatter(out, 12, 128, plus(v1586, v1587));
   real2 v1600 = minus(v1586, v1587);
   scatter(out, 76, 128, timesminusplus(v1600, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1600), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1583 = minusplus(v1581, v1582);
   scatter(out, 44, 128, timesminusplus(reverse(v1583), load(tbl, 282 * VECWIDTH + tbloffset), times(v1583, load(tbl, 283 * VECWIDTH + tbloffset))));
   real2 v1585 = minusplus(uminus(v1581), v1582);
   scatter(out, 108, 128, timesminusplus(reverse(v1585), load(tbl, 284 * VECWIDTH + tbloffset), times(v1585, load(tbl, 285 * VECWIDTH + tbloffset))));
   real2 v1565 = minusplus(uminus(v1561), v1562);
   real2 v1563 = minusplus(v1561, v1562);
   real2 v1579 = timesminusplus(reverse(v1565), load(tbl, 280 * VECWIDTH + tbloffset), times(v1565, load(tbl, 281 * VECWIDTH + tbloffset)));
   scatter(out, 60, 128, plus(v1559, v1579));
   real2 v1612 = minus(v1559, v1579);
   scatter(out, 124, 128, timesminusplus(v1612, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1612), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1573 = timesminusplus(reverse(v1563), load(tbl, 278 * VECWIDTH + tbloffset), times(v1563, load(tbl, 279 * VECWIDTH + tbloffset)));
   scatter(out, 28, 128, plus(v1553, v1573));
   real2 v1606 = minus(v1553, v1573);
   scatter(out, 92, 128, timesminusplus(v1606, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1606), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v833 = minusplus(v831, v832);
   real2 v835 = minusplus(uminus(v831), v832);
   real2 v955 = minusplus(uminus(v951), v952);
   real2 v953 = minusplus(v951, v952);
   real2 v963 = timesminusplus(reverse(v953), load(tbl, 166 * VECWIDTH + tbloffset), times(v953, load(tbl, 167 * VECWIDTH + tbloffset)));
   real2 v995 = minusplus(uminus(v991), v992);
   real2 v993 = minusplus(v991, v992);
   real2 v1003 = timesminusplus(reverse(v993), load(tbl, 174 * VECWIDTH + tbloffset), times(v993, load(tbl, 175 * VECWIDTH + tbloffset)));
   real2 v843 = timesminusplus(reverse(v833), load(tbl, 142 * VECWIDTH + tbloffset), times(v833, load(tbl, 143 * VECWIDTH + tbloffset)));
   real2 v1640 = minus(v963, v803);
   real2 v1644 = plus(v803, v963);
   real2 v1680 = minus(v1003, v843);
   real2 v1684 = plus(v843, v1003);
   real2 v1641 = minusplus(v1639, v1640);
   real2 v1643 = minusplus(uminus(v1639), v1640);
   real2 v1657 = timesminusplus(reverse(v1643), load(tbl, 292 * VECWIDTH + tbloffset), times(v1643, load(tbl, 293 * VECWIDTH + tbloffset)));
   real2 v913 = minusplus(v911, v912);
   real2 v915 = minusplus(uminus(v911), v912);
   real2 v1073 = minusplus(v1071, v1072);
   real2 v1075 = minusplus(uminus(v1071), v1072);
   real2 v923 = timesminusplus(reverse(v913), load(tbl, 158 * VECWIDTH + tbloffset), times(v913, load(tbl, 159 * VECWIDTH + tbloffset)));
   real2 v1083 = timesminusplus(reverse(v1073), load(tbl, 190 * VECWIDTH + tbloffset), times(v1073, load(tbl, 191 * VECWIDTH + tbloffset)));
   real2 v1685 = plus(v923, v1083);
   real2 v1679 = reverse(minus(v1083, v923));
   real2 v1681 = minusplus(v1679, v1680);
   real2 v1683 = minusplus(uminus(v1679), v1680);
   real2 v1697 = timesminusplus(reverse(v1683), load(tbl, 300 * VECWIDTH + tbloffset), times(v1683, load(tbl, 301 * VECWIDTH + tbloffset)));
   real2 v1809 = plus(v1657, v1697);
   real2 v1803 = reverse(minus(v1697, v1657));
   scatter(out, 26, 128, plus(v1808, v1809));
   real2 v1822 = minus(v1808, v1809);
   scatter(out, 90, 128, timesminusplus(v1822, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1822), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1807 = minusplus(uminus(v1803), v1804);
   real2 v1805 = minusplus(v1803, v1804);
   scatter(out, 58, 128, timesminusplus(reverse(v1805), load(tbl, 318 * VECWIDTH + tbloffset), times(v1805, load(tbl, 319 * VECWIDTH + tbloffset))));
   scatter(out, 122, 128, timesminusplus(reverse(v1807), load(tbl, 320 * VECWIDTH + tbloffset), times(v1807, load(tbl, 321 * VECWIDTH + tbloffset))));
   real2 v1651 = timesminusplus(reverse(v1641), load(tbl, 290 * VECWIDTH + tbloffset), times(v1641, load(tbl, 291 * VECWIDTH + tbloffset)));
   real2 v1691 = timesminusplus(reverse(v1681), load(tbl, 298 * VECWIDTH + tbloffset), times(v1681, load(tbl, 299 * VECWIDTH + tbloffset)));
   real2 v1783 = plus(v1651, v1691);
   real2 v1777 = reverse(minus(v1691, v1651));
   real2 v1779 = minusplus(v1777, v1778);
   real2 v1781 = minusplus(uminus(v1777), v1778);
   scatter(out, 106, 128, timesminusplus(reverse(v1781), load(tbl, 316 * VECWIDTH + tbloffset), times(v1781, load(tbl, 317 * VECWIDTH + tbloffset))));
   scatter(out, 42, 128, timesminusplus(reverse(v1779), load(tbl, 314 * VECWIDTH + tbloffset), times(v1779, load(tbl, 315 * VECWIDTH + tbloffset))));
   scatter(out, 10, 128, plus(v1782, v1783));
   real2 v1796 = minus(v1782, v1783);
   scatter(out, 74, 128, timesminusplus(v1796, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1796), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1720 = minus(v1645, v1644);
   real2 v1724 = plus(v1644, v1645);
   real2 v1719 = reverse(minus(v1685, v1684));
   real2 v1725 = plus(v1684, v1685);
   real2 v1745 = plus(v1724, v1725);
   real2 v1739 = reverse(minus(v1725, v1724));
   scatter(out, 2, 128, plus(v1744, v1745));
   real2 v1758 = minus(v1744, v1745);
   scatter(out, 66, 128, timesminusplus(v1758, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1758), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1741 = minusplus(v1739, v1740);
   real2 v1743 = minusplus(uminus(v1739), v1740);
   scatter(out, 98, 128, timesminusplus(reverse(v1743), load(tbl, 312 * VECWIDTH + tbloffset), times(v1743, load(tbl, 313 * VECWIDTH + tbloffset))));
   scatter(out, 34, 128, timesminusplus(reverse(v1741), load(tbl, 310 * VECWIDTH + tbloffset), times(v1741, load(tbl, 311 * VECWIDTH + tbloffset))));
   real2 v1723 = minusplus(uminus(v1719), v1720);
   real2 v1721 = minusplus(v1719, v1720);
   real2 v1737 = timesminusplus(reverse(v1723), load(tbl, 308 * VECWIDTH + tbloffset), times(v1723, load(tbl, 309 * VECWIDTH + tbloffset)));
   scatter(out, 50, 128, plus(v1717, v1737));
   real2 v1770 = minus(v1717, v1737);
   scatter(out, 114, 128, timesminusplus(v1770, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1770), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1731 = timesminusplus(reverse(v1721), load(tbl, 306 * VECWIDTH + tbloffset), times(v1721, load(tbl, 307 * VECWIDTH + tbloffset)));
   scatter(out, 18, 128, plus(v1711, v1731));
   real2 v1764 = minus(v1711, v1731);
   scatter(out, 82, 128, timesminusplus(v1764, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1764), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v809 = timesminusplus(reverse(v795), load(tbl, 136 * VECWIDTH + tbloffset), times(v795, load(tbl, 137 * VECWIDTH + tbloffset)));
   real2 v969 = timesminusplus(reverse(v955), load(tbl, 168 * VECWIDTH + tbloffset), times(v955, load(tbl, 169 * VECWIDTH + tbloffset)));
   real2 v1850 = minus(v969, v809);
   real2 v1854 = plus(v809, v969);
   real2 v849 = timesminusplus(reverse(v835), load(tbl, 144 * VECWIDTH + tbloffset), times(v835, load(tbl, 145 * VECWIDTH + tbloffset)));
   real2 v929 = timesminusplus(reverse(v915), load(tbl, 160 * VECWIDTH + tbloffset), times(v915, load(tbl, 161 * VECWIDTH + tbloffset)));
   real2 v889 = timesminusplus(reverse(v875), load(tbl, 152 * VECWIDTH + tbloffset), times(v875, load(tbl, 153 * VECWIDTH + tbloffset)));
   real2 v1089 = timesminusplus(reverse(v1075), load(tbl, 192 * VECWIDTH + tbloffset), times(v1075, load(tbl, 193 * VECWIDTH + tbloffset)));
   real2 v1009 = timesminusplus(reverse(v995), load(tbl, 176 * VECWIDTH + tbloffset), times(v995, load(tbl, 177 * VECWIDTH + tbloffset)));
   real2 v1890 = minus(v1009, v849);
   real2 v1894 = plus(v849, v1009);
   real2 v1849 = reverse(minus(v1049, v889));
   real2 v1855 = plus(v889, v1049);
   real2 v1930 = minus(v1855, v1854);
   real2 v1934 = plus(v1854, v1855);
   real2 v1895 = plus(v929, v1089);
   real2 v1889 = reverse(minus(v1089, v929));
   real2 v1929 = reverse(minus(v1895, v1894));
   real2 v1935 = plus(v1894, v1895);
   real2 v1955 = plus(v1934, v1935);
   real2 v1949 = reverse(minus(v1935, v1934));
   scatter(out, 6, 128, plus(v1954, v1955));
   real2 v1968 = minus(v1954, v1955);
   scatter(out, 70, 128, timesminusplus(v1968, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1968), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1951 = minusplus(v1949, v1950);
   scatter(out, 38, 128, timesminusplus(reverse(v1951), load(tbl, 346 * VECWIDTH + tbloffset), times(v1951, load(tbl, 347 * VECWIDTH + tbloffset))));
   real2 v1953 = minusplus(uminus(v1949), v1950);
   scatter(out, 102, 128, timesminusplus(reverse(v1953), load(tbl, 348 * VECWIDTH + tbloffset), times(v1953, load(tbl, 349 * VECWIDTH + tbloffset))));
   real2 v1931 = minusplus(v1929, v1930);
   real2 v1933 = minusplus(uminus(v1929), v1930);
   real2 v1947 = timesminusplus(reverse(v1933), load(tbl, 344 * VECWIDTH + tbloffset), times(v1933, load(tbl, 345 * VECWIDTH + tbloffset)));
   scatter(out, 54, 128, plus(v1927, v1947));
   real2 v1980 = minus(v1927, v1947);
   scatter(out, 118, 128, timesminusplus(v1980, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1980), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1941 = timesminusplus(reverse(v1931), load(tbl, 342 * VECWIDTH + tbloffset), times(v1931, load(tbl, 343 * VECWIDTH + tbloffset)));
   scatter(out, 22, 128, plus(v1921, v1941));
   real2 v1974 = minus(v1921, v1941);
   scatter(out, 86, 128, timesminusplus(v1974, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v1974), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1851 = minusplus(v1849, v1850);
   real2 v1853 = minusplus(uminus(v1849), v1850);
   real2 v1867 = timesminusplus(reverse(v1853), load(tbl, 328 * VECWIDTH + tbloffset), times(v1853, load(tbl, 329 * VECWIDTH + tbloffset)));
   real2 v1891 = minusplus(v1889, v1890);
   real2 v1893 = minusplus(uminus(v1889), v1890);
   real2 v1907 = timesminusplus(reverse(v1893), load(tbl, 336 * VECWIDTH + tbloffset), times(v1893, load(tbl, 337 * VECWIDTH + tbloffset)));
   real2 v2019 = plus(v1867, v1907);
   real2 v2013 = reverse(minus(v1907, v1867));
   scatter(out, 30, 128, plus(v2018, v2019));
   real2 v2032 = minus(v2018, v2019);
   scatter(out, 94, 128, timesminusplus(v2032, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2032), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2017 = minusplus(uminus(v2013), v2014);
   scatter(out, 126, 128, timesminusplus(reverse(v2017), load(tbl, 356 * VECWIDTH + tbloffset), times(v2017, load(tbl, 357 * VECWIDTH + tbloffset))));
   real2 v2015 = minusplus(v2013, v2014);
   scatter(out, 62, 128, timesminusplus(reverse(v2015), load(tbl, 354 * VECWIDTH + tbloffset), times(v2015, load(tbl, 355 * VECWIDTH + tbloffset))));
   real2 v1861 = timesminusplus(reverse(v1851), load(tbl, 326 * VECWIDTH + tbloffset), times(v1851, load(tbl, 327 * VECWIDTH + tbloffset)));
   real2 v1901 = timesminusplus(reverse(v1891), load(tbl, 334 * VECWIDTH + tbloffset), times(v1891, load(tbl, 335 * VECWIDTH + tbloffset)));
   real2 v1993 = plus(v1861, v1901);
   real2 v1987 = reverse(minus(v1901, v1861));
   scatter(out, 14, 128, plus(v1992, v1993));
   real2 v2006 = minus(v1992, v1993);
   scatter(out, 78, 128, timesminusplus(v2006, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2006), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v1991 = minusplus(uminus(v1987), v1988);
   scatter(out, 110, 128, timesminusplus(reverse(v1991), load(tbl, 352 * VECWIDTH + tbloffset), times(v1991, load(tbl, 353 * VECWIDTH + tbloffset))));
   real2 v1989 = minusplus(v1987, v1988);
   scatter(out, 46, 128, timesminusplus(reverse(v1989), load(tbl, 350 * VECWIDTH + tbloffset), times(v1989, load(tbl, 351 * VECWIDTH + tbloffset))));
   real2 v593 = minusplus(v591, v592);
   real2 v595 = minusplus(uminus(v591), v592);
   real2 v473 = minusplus(v471, v472);
   real2 v475 = minusplus(uminus(v471), v472);
   real2 v555 = minusplus(uminus(v551), v552);
   real2 v553 = minusplus(v551, v552);
   real2 v609 = timesminusplus(reverse(v595), load(tbl, 96 * VECWIDTH + tbloffset), times(v595, load(tbl, 97 * VECWIDTH + tbloffset)));
   real2 v195 = minusplus(uminus(v191), v192);
   real2 v193 = minusplus(v191, v192);
   real2 v275 = minusplus(uminus(v271), v272);
   real2 v273 = minusplus(v271, v272);
   real2 v673 = minusplus(v671, v672);
   real2 v675 = minusplus(uminus(v671), v672);
   real2 v689 = timesminusplus(reverse(v675), load(tbl, 112 * VECWIDTH + tbloffset), times(v675, load(tbl, 113 * VECWIDTH + tbloffset)));
   real2 v209 = timesminusplus(reverse(v195), load(tbl, 16 * VECWIDTH + tbloffset), times(v195, load(tbl, 17 * VECWIDTH + tbloffset)));
   real2 v289 = timesminusplus(reverse(v275), load(tbl, 32 * VECWIDTH + tbloffset), times(v275, load(tbl, 33 * VECWIDTH + tbloffset)));
   real2 v755 = minusplus(uminus(v751), v752);
   real2 v753 = minusplus(v751, v752);
   real2 v435 = minusplus(uminus(v431), v432);
   real2 v433 = minusplus(v431, v432);
   real2 v513 = minusplus(v511, v512);
   real2 v515 = minusplus(uminus(v511), v512);
   real2 v529 = timesminusplus(reverse(v515), load(tbl, 80 * VECWIDTH + tbloffset), times(v515, load(tbl, 81 * VECWIDTH + tbloffset)));
   real2 v353 = minusplus(v351, v352);
   real2 v355 = minusplus(uminus(v351), v352);
   real2 v369 = timesminusplus(reverse(v355), load(tbl, 48 * VECWIDTH + tbloffset), times(v355, load(tbl, 49 * VECWIDTH + tbloffset)));
   real2 v2631 = plus(v369, v689);
   real2 v2625 = reverse(minus(v689, v369));
   real2 v449 = timesminusplus(reverse(v435), load(tbl, 64 * VECWIDTH + tbloffset), times(v435, load(tbl, 65 * VECWIDTH + tbloffset)));
   real2 v2710 = plus(v289, v609);
   real2 v2706 = minus(v609, v289);
   real2 v2630 = plus(v209, v529);
   real2 v2626 = minus(v529, v209);
   real2 v2790 = plus(v2630, v2631);
   real2 v2786 = minus(v2631, v2630);
   real2 v713 = minusplus(v711, v712);
   real2 v715 = minusplus(uminus(v711), v712);
   real2 v769 = timesminusplus(reverse(v755), load(tbl, 128 * VECWIDTH + tbloffset), times(v755, load(tbl, 129 * VECWIDTH + tbloffset)));
   real2 v2705 = reverse(minus(v769, v449));
   real2 v2711 = plus(v449, v769);
   real2 v313 = minusplus(v311, v312);
   real2 v315 = minusplus(uminus(v311), v312);
   real2 v393 = minusplus(v391, v392);
   real2 v395 = minusplus(uminus(v391), v392);
   real2 v409 = timesminusplus(reverse(v395), load(tbl, 56 * VECWIDTH + tbloffset), times(v395, load(tbl, 57 * VECWIDTH + tbloffset)));
   real2 v729 = timesminusplus(reverse(v715), load(tbl, 120 * VECWIDTH + tbloffset), times(v715, load(tbl, 121 * VECWIDTH + tbloffset)));
   real2 v329 = timesminusplus(reverse(v315), load(tbl, 40 * VECWIDTH + tbloffset), times(v315, load(tbl, 41 * VECWIDTH + tbloffset)));
   real2 v489 = timesminusplus(reverse(v475), load(tbl, 72 * VECWIDTH + tbloffset), times(v475, load(tbl, 73 * VECWIDTH + tbloffset)));
   real2 v153 = minusplus(v151, v152);
   real2 v155 = minusplus(uminus(v151), v152);
   real2 v169 = timesminusplus(reverse(v155), load(tbl, 8 * VECWIDTH + tbloffset), times(v155, load(tbl, 9 * VECWIDTH + tbloffset)));
   real2 v2586 = minus(v489, v169);
   real2 v2590 = plus(v169, v489);
   real2 v233 = minusplus(v231, v232);
   real2 v235 = minusplus(uminus(v231), v232);
   real2 v633 = minusplus(v631, v632);
   real2 v635 = minusplus(uminus(v631), v632);
   real2 v649 = timesminusplus(reverse(v635), load(tbl, 104 * VECWIDTH + tbloffset), times(v635, load(tbl, 105 * VECWIDTH + tbloffset)));
   real2 v249 = timesminusplus(reverse(v235), load(tbl, 24 * VECWIDTH + tbloffset), times(v235, load(tbl, 25 * VECWIDTH + tbloffset)));
   real2 v569 = timesminusplus(reverse(v555), load(tbl, 88 * VECWIDTH + tbloffset), times(v555, load(tbl, 89 * VECWIDTH + tbloffset)));
   real2 v2670 = plus(v249, v569);
   real2 v2666 = minus(v569, v249);
   real2 v2785 = reverse(minus(v2711, v2710));
   real2 v2791 = plus(v2710, v2711);
   real2 v2825 = reverse(minus(v2791, v2790));
   real2 v2831 = plus(v2790, v2791);
   real2 v2671 = plus(v409, v729);
   real2 v2665 = reverse(minus(v729, v409));
   real2 v2745 = reverse(minus(v2671, v2670));
   real2 v2751 = plus(v2670, v2671);
   real2 v2806 = minus(v2731, v2730);
   real2 v2810 = plus(v2730, v2731);
   real2 v2846 = minus(v2811, v2810);
   real2 v2850 = plus(v2810, v2811);
   real2 v2591 = plus(v329, v649);
   real2 v2585 = reverse(minus(v649, v329));
   real2 v2750 = plus(v2590, v2591);
   real2 v2746 = minus(v2591, v2590);
   real2 v2830 = plus(v2750, v2751);
   real2 v2826 = minus(v2751, v2750);
   real2 v2845 = reverse(minus(v2831, v2830));
   real2 v2851 = plus(v2830, v2831);
   scatter(out, 3, 128, plus(v2850, v2851));
   real2 v2864 = minus(v2850, v2851);
   scatter(out, 67, 128, timesminusplus(v2864, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2864), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2849 = minusplus(uminus(v2845), v2846);
   real2 v2847 = minusplus(v2845, v2846);
   scatter(out, 35, 128, timesminusplus(reverse(v2847), load(tbl, 506 * VECWIDTH + tbloffset), times(v2847, load(tbl, 507 * VECWIDTH + tbloffset))));
   scatter(out, 99, 128, timesminusplus(reverse(v2849), load(tbl, 508 * VECWIDTH + tbloffset), times(v2849, load(tbl, 509 * VECWIDTH + tbloffset))));
   real2 v2827 = minusplus(v2825, v2826);
   real2 v2829 = minusplus(uminus(v2825), v2826);
   real2 v2837 = timesminusplus(reverse(v2827), load(tbl, 502 * VECWIDTH + tbloffset), times(v2827, load(tbl, 503 * VECWIDTH + tbloffset)));
   real2 v2809 = minusplus(uminus(v2805), v2806);
   real2 v2807 = minusplus(v2805, v2806);
   real2 v2817 = timesminusplus(reverse(v2807), load(tbl, 498 * VECWIDTH + tbloffset), times(v2807, load(tbl, 499 * VECWIDTH + tbloffset)));
   scatter(out, 19, 128, plus(v2817, v2837));
   real2 v2870 = minus(v2817, v2837);
   scatter(out, 83, 128, timesminusplus(v2870, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2870), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2823 = timesminusplus(reverse(v2809), load(tbl, 500 * VECWIDTH + tbloffset), times(v2809, load(tbl, 501 * VECWIDTH + tbloffset)));
   real2 v2843 = timesminusplus(reverse(v2829), load(tbl, 504 * VECWIDTH + tbloffset), times(v2829, load(tbl, 505 * VECWIDTH + tbloffset)));
   scatter(out, 51, 128, plus(v2823, v2843));
   real2 v2876 = minus(v2823, v2843);
   scatter(out, 115, 128, timesminusplus(v2876, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2876), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2787 = minusplus(v2785, v2786);
   real2 v2789 = minusplus(uminus(v2785), v2786);
   real2 v2803 = timesminusplus(reverse(v2789), load(tbl, 496 * VECWIDTH + tbloffset), times(v2789, load(tbl, 497 * VECWIDTH + tbloffset)));
   real2 v2727 = minusplus(v2725, v2726);
   real2 v2729 = minusplus(uminus(v2725), v2726);
   real2 v2743 = timesminusplus(reverse(v2729), load(tbl, 484 * VECWIDTH + tbloffset), times(v2729, load(tbl, 485 * VECWIDTH + tbloffset)));
   real2 v2914 = plus(v2743, v2783);
   real2 v2910 = minus(v2783, v2743);
   real2 v2749 = minusplus(uminus(v2745), v2746);
   real2 v2747 = minusplus(v2745, v2746);
   real2 v2763 = timesminusplus(reverse(v2749), load(tbl, 488 * VECWIDTH + tbloffset), times(v2749, load(tbl, 489 * VECWIDTH + tbloffset)));
   real2 v2909 = reverse(minus(v2803, v2763));
   real2 v2915 = plus(v2763, v2803);
   scatter(out, 27, 128, plus(v2914, v2915));
   real2 v2928 = minus(v2914, v2915);
   scatter(out, 91, 128, timesminusplus(v2928, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2928), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2913 = minusplus(uminus(v2909), v2910);
   scatter(out, 123, 128, timesminusplus(reverse(v2913), load(tbl, 516 * VECWIDTH + tbloffset), times(v2913, load(tbl, 517 * VECWIDTH + tbloffset))));
   real2 v2911 = minusplus(v2909, v2910);
   scatter(out, 59, 128, timesminusplus(reverse(v2911), load(tbl, 514 * VECWIDTH + tbloffset), times(v2911, load(tbl, 515 * VECWIDTH + tbloffset))));
   real2 v2737 = timesminusplus(reverse(v2727), load(tbl, 482 * VECWIDTH + tbloffset), times(v2727, load(tbl, 483 * VECWIDTH + tbloffset)));
   real2 v2888 = plus(v2737, v2777);
   real2 v2884 = minus(v2777, v2737);
   real2 v2797 = timesminusplus(reverse(v2787), load(tbl, 494 * VECWIDTH + tbloffset), times(v2787, load(tbl, 495 * VECWIDTH + tbloffset)));
   real2 v2757 = timesminusplus(reverse(v2747), load(tbl, 486 * VECWIDTH + tbloffset), times(v2747, load(tbl, 487 * VECWIDTH + tbloffset)));
   real2 v2889 = plus(v2757, v2797);
   real2 v2883 = reverse(minus(v2797, v2757));
   scatter(out, 11, 128, plus(v2888, v2889));
   real2 v2902 = minus(v2888, v2889);
   scatter(out, 75, 128, timesminusplus(v2902, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2902), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2887 = minusplus(uminus(v2883), v2884);
   scatter(out, 107, 128, timesminusplus(reverse(v2887), load(tbl, 512 * VECWIDTH + tbloffset), times(v2887, load(tbl, 513 * VECWIDTH + tbloffset))));
   real2 v2885 = minusplus(v2883, v2884);
   scatter(out, 43, 128, timesminusplus(reverse(v2885), load(tbl, 510 * VECWIDTH + tbloffset), times(v2885, load(tbl, 511 * VECWIDTH + tbloffset))));
   real2 v2669 = minusplus(uminus(v2665), v2666);
   real2 v2667 = minusplus(v2665, v2666);
   real2 v2707 = minusplus(v2705, v2706);
   real2 v2709 = minusplus(uminus(v2705), v2706);
   real2 v2717 = timesminusplus(reverse(v2707), load(tbl, 478 * VECWIDTH + tbloffset), times(v2707, load(tbl, 479 * VECWIDTH + tbloffset)));
   real2 v2627 = minusplus(v2625, v2626);
   real2 v2629 = minusplus(uminus(v2625), v2626);
   real2 v2637 = timesminusplus(reverse(v2627), load(tbl, 462 * VECWIDTH + tbloffset), times(v2627, load(tbl, 463 * VECWIDTH + tbloffset)));
   real2 v2961 = plus(v2637, v2717);
   real2 v2955 = reverse(minus(v2717, v2637));
   real2 v2649 = minusplus(uminus(v2645), v2646);
   real2 v2647 = minusplus(v2645, v2646);
   real2 v2569 = minusplus(uminus(v2565), v2566);
   real2 v2567 = minusplus(v2565, v2566);
   real2 v2577 = timesminusplus(reverse(v2567), load(tbl, 450 * VECWIDTH + tbloffset), times(v2567, load(tbl, 451 * VECWIDTH + tbloffset)));
   real2 v2657 = timesminusplus(reverse(v2647), load(tbl, 466 * VECWIDTH + tbloffset), times(v2647, load(tbl, 467 * VECWIDTH + tbloffset)));
   real2 v2936 = minus(v2657, v2577);
   real2 v2940 = plus(v2577, v2657);
   real2 v2976 = minus(v2941, v2940);
   real2 v2980 = plus(v2940, v2941);
   real2 v2677 = timesminusplus(reverse(v2667), load(tbl, 470 * VECWIDTH + tbloffset), times(v2667, load(tbl, 471 * VECWIDTH + tbloffset)));
   real2 v2587 = minusplus(v2585, v2586);
   real2 v2589 = minusplus(uminus(v2585), v2586);
   real2 v2597 = timesminusplus(reverse(v2587), load(tbl, 454 * VECWIDTH + tbloffset), times(v2587, load(tbl, 455 * VECWIDTH + tbloffset)));
   real2 v2956 = minus(v2677, v2597);
   real2 v2960 = plus(v2597, v2677);
   real2 v2975 = reverse(minus(v2961, v2960));
   real2 v2981 = plus(v2960, v2961);
   scatter(out, 7, 128, plus(v2980, v2981));
   real2 v2994 = minus(v2980, v2981);
   scatter(out, 71, 128, timesminusplus(v2994, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2994), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2979 = minusplus(uminus(v2975), v2976);
   scatter(out, 103, 128, timesminusplus(reverse(v2979), load(tbl, 528 * VECWIDTH + tbloffset), times(v2979, load(tbl, 529 * VECWIDTH + tbloffset))));
   real2 v2977 = minusplus(v2975, v2976);
   scatter(out, 39, 128, timesminusplus(reverse(v2977), load(tbl, 526 * VECWIDTH + tbloffset), times(v2977, load(tbl, 527 * VECWIDTH + tbloffset))));
   real2 v2939 = minusplus(uminus(v2935), v2936);
   real2 v2937 = minusplus(v2935, v2936);
   real2 v2953 = timesminusplus(reverse(v2939), load(tbl, 520 * VECWIDTH + tbloffset), times(v2939, load(tbl, 521 * VECWIDTH + tbloffset)));
   real2 v2957 = minusplus(v2955, v2956);
   real2 v2959 = minusplus(uminus(v2955), v2956);
   real2 v2973 = timesminusplus(reverse(v2959), load(tbl, 524 * VECWIDTH + tbloffset), times(v2959, load(tbl, 525 * VECWIDTH + tbloffset)));
   scatter(out, 55, 128, plus(v2953, v2973));
   real2 v3006 = minus(v2953, v2973);
   scatter(out, 119, 128, timesminusplus(v3006, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3006), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2947 = timesminusplus(reverse(v2937), load(tbl, 518 * VECWIDTH + tbloffset), times(v2937, load(tbl, 519 * VECWIDTH + tbloffset)));
   real2 v2967 = timesminusplus(reverse(v2957), load(tbl, 522 * VECWIDTH + tbloffset), times(v2957, load(tbl, 523 * VECWIDTH + tbloffset)));
   scatter(out, 23, 128, plus(v2947, v2967));
   real2 v3000 = minus(v2947, v2967);
   scatter(out, 87, 128, timesminusplus(v3000, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3000), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2663 = timesminusplus(reverse(v2649), load(tbl, 468 * VECWIDTH + tbloffset), times(v2649, load(tbl, 469 * VECWIDTH + tbloffset)));
   real2 v2583 = timesminusplus(reverse(v2569), load(tbl, 452 * VECWIDTH + tbloffset), times(v2569, load(tbl, 453 * VECWIDTH + tbloffset)));
   real2 v3014 = minus(v2663, v2583);
   real2 v3018 = plus(v2583, v2663);
   real2 v3015 = minusplus(v3013, v3014);
   real2 v3017 = minusplus(uminus(v3013), v3014);
   real2 v2643 = timesminusplus(reverse(v2629), load(tbl, 464 * VECWIDTH + tbloffset), times(v2629, load(tbl, 465 * VECWIDTH + tbloffset)));
   real2 v2723 = timesminusplus(reverse(v2709), load(tbl, 480 * VECWIDTH + tbloffset), times(v2709, load(tbl, 481 * VECWIDTH + tbloffset)));
   real2 v3039 = plus(v2643, v2723);
   real2 v3033 = reverse(minus(v2723, v2643));
   real2 v2683 = timesminusplus(reverse(v2669), load(tbl, 472 * VECWIDTH + tbloffset), times(v2669, load(tbl, 473 * VECWIDTH + tbloffset)));
   real2 v3031 = timesminusplus(reverse(v3017), load(tbl, 532 * VECWIDTH + tbloffset), times(v3017, load(tbl, 533 * VECWIDTH + tbloffset)));
   real2 v2603 = timesminusplus(reverse(v2589), load(tbl, 456 * VECWIDTH + tbloffset), times(v2589, load(tbl, 457 * VECWIDTH + tbloffset)));
   real2 v3034 = minus(v2683, v2603);
   real2 v3038 = plus(v2603, v2683);
   real2 v3037 = minusplus(uminus(v3033), v3034);
   real2 v3035 = minusplus(v3033, v3034);
   real2 v3051 = timesminusplus(reverse(v3037), load(tbl, 536 * VECWIDTH + tbloffset), times(v3037, load(tbl, 537 * VECWIDTH + tbloffset)));
   scatter(out, 63, 128, plus(v3031, v3051));
   real2 v3084 = minus(v3031, v3051);
   scatter(out, 127, 128, timesminusplus(v3084, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3084), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v3025 = timesminusplus(reverse(v3015), load(tbl, 530 * VECWIDTH + tbloffset), times(v3015, load(tbl, 531 * VECWIDTH + tbloffset)));
   real2 v3045 = timesminusplus(reverse(v3035), load(tbl, 534 * VECWIDTH + tbloffset), times(v3035, load(tbl, 535 * VECWIDTH + tbloffset)));
   scatter(out, 31, 128, plus(v3025, v3045));
   real2 v3078 = minus(v3025, v3045);
   scatter(out, 95, 128, timesminusplus(v3078, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3078), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v3058 = plus(v3018, v3019);
   real2 v3054 = minus(v3019, v3018);
   real2 v3053 = reverse(minus(v3039, v3038));
   real2 v3059 = plus(v3038, v3039);
   real2 v3055 = minusplus(v3053, v3054);
   scatter(out, 47, 128, timesminusplus(reverse(v3055), load(tbl, 538 * VECWIDTH + tbloffset), times(v3055, load(tbl, 539 * VECWIDTH + tbloffset))));
   real2 v3057 = minusplus(uminus(v3053), v3054);
   scatter(out, 111, 128, timesminusplus(reverse(v3057), load(tbl, 540 * VECWIDTH + tbloffset), times(v3057, load(tbl, 541 * VECWIDTH + tbloffset))));
   scatter(out, 15, 128, plus(v3058, v3059));
   real2 v3072 = minus(v3058, v3059);
   scatter(out, 79, 128, timesminusplus(v3072, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v3072), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v683 = timesminusplus(reverse(v673), load(tbl, 110 * VECWIDTH + tbloffset), times(v673, load(tbl, 111 * VECWIDTH + tbloffset)));
   real2 v363 = timesminusplus(reverse(v353), load(tbl, 46 * VECWIDTH + tbloffset), times(v353, load(tbl, 47 * VECWIDTH + tbloffset)));
   real2 v2105 = plus(v363, v683);
   real2 v2099 = reverse(minus(v683, v363));
   real2 v283 = timesminusplus(reverse(v273), load(tbl, 30 * VECWIDTH + tbloffset), times(v273, load(tbl, 31 * VECWIDTH + tbloffset)));
   real2 v723 = timesminusplus(reverse(v713), load(tbl, 118 * VECWIDTH + tbloffset), times(v713, load(tbl, 119 * VECWIDTH + tbloffset)));
   real2 v403 = timesminusplus(reverse(v393), load(tbl, 54 * VECWIDTH + tbloffset), times(v393, load(tbl, 55 * VECWIDTH + tbloffset)));
   real2 v603 = timesminusplus(reverse(v593), load(tbl, 94 * VECWIDTH + tbloffset), times(v593, load(tbl, 95 * VECWIDTH + tbloffset)));
   real2 v2180 = minus(v603, v283);
   real2 v2184 = plus(v283, v603);
   real2 v2145 = plus(v403, v723);
   real2 v2139 = reverse(minus(v723, v403));
   real2 v543 = timesminusplus(reverse(v533), load(tbl, 82 * VECWIDTH + tbloffset), times(v533, load(tbl, 83 * VECWIDTH + tbloffset)));
   real2 v383 = timesminusplus(reverse(v373), load(tbl, 50 * VECWIDTH + tbloffset), times(v373, load(tbl, 51 * VECWIDTH + tbloffset)));
   real2 v703 = timesminusplus(reverse(v693), load(tbl, 114 * VECWIDTH + tbloffset), times(v693, load(tbl, 115 * VECWIDTH + tbloffset)));
   real2 v2125 = plus(v383, v703);
   real2 v2119 = reverse(minus(v703, v383));
   real2 v223 = timesminusplus(reverse(v213), load(tbl, 18 * VECWIDTH + tbloffset), times(v213, load(tbl, 19 * VECWIDTH + tbloffset)));
   real2 v2120 = minus(v543, v223);
   real2 v2124 = plus(v223, v543);
   real2 v443 = timesminusplus(reverse(v433), load(tbl, 62 * VECWIDTH + tbloffset), times(v433, load(tbl, 63 * VECWIDTH + tbloffset)));
   real2 v203 = timesminusplus(reverse(v193), load(tbl, 14 * VECWIDTH + tbloffset), times(v193, load(tbl, 15 * VECWIDTH + tbloffset)));
   real2 v763 = timesminusplus(reverse(v753), load(tbl, 126 * VECWIDTH + tbloffset), times(v753, load(tbl, 127 * VECWIDTH + tbloffset)));
   real2 v2179 = reverse(minus(v763, v443));
   real2 v2185 = plus(v443, v763);
   real2 v523 = timesminusplus(reverse(v513), load(tbl, 78 * VECWIDTH + tbloffset), times(v513, load(tbl, 79 * VECWIDTH + tbloffset)));
   real2 v2100 = minus(v523, v203);
   real2 v2104 = plus(v203, v523);
   real2 v2264 = plus(v2104, v2105);
   real2 v2260 = minus(v2105, v2104);
   real2 v643 = timesminusplus(reverse(v633), load(tbl, 102 * VECWIDTH + tbloffset), times(v633, load(tbl, 103 * VECWIDTH + tbloffset)));
   real2 v2265 = plus(v2184, v2185);
   real2 v2259 = reverse(minus(v2185, v2184));
   real2 v563 = timesminusplus(reverse(v553), load(tbl, 86 * VECWIDTH + tbloffset), times(v553, load(tbl, 87 * VECWIDTH + tbloffset)));
   real2 v243 = timesminusplus(reverse(v233), load(tbl, 22 * VECWIDTH + tbloffset), times(v233, load(tbl, 23 * VECWIDTH + tbloffset)));
   real2 v2144 = plus(v243, v563);
   real2 v2140 = minus(v563, v243);
   real2 v143 = timesminusplus(reverse(v133), load(tbl, 2 * VECWIDTH + tbloffset), times(v133, load(tbl, 3 * VECWIDTH + tbloffset)));
   real2 v183 = timesminusplus(reverse(v173), load(tbl, 10 * VECWIDTH + tbloffset), times(v173, load(tbl, 11 * VECWIDTH + tbloffset)));
   real2 v2084 = plus(v183, v503);
   real2 v2080 = minus(v503, v183);
   real2 v163 = timesminusplus(reverse(v153), load(tbl, 6 * VECWIDTH + tbloffset), times(v153, load(tbl, 7 * VECWIDTH + tbloffset)));
   real2 v303 = timesminusplus(reverse(v293), load(tbl, 34 * VECWIDTH + tbloffset), times(v293, load(tbl, 35 * VECWIDTH + tbloffset)));
   real2 v623 = timesminusplus(reverse(v613), load(tbl, 98 * VECWIDTH + tbloffset), times(v613, load(tbl, 99 * VECWIDTH + tbloffset)));
   real2 v2039 = reverse(minus(v623, v303));
   real2 v2045 = plus(v303, v623);
   real2 v463 = timesminusplus(reverse(v453), load(tbl, 66 * VECWIDTH + tbloffset), times(v453, load(tbl, 67 * VECWIDTH + tbloffset)));
   real2 v2044 = plus(v143, v463);
   real2 v2040 = minus(v463, v143);
   real2 v2204 = plus(v2044, v2045);
   real2 v2200 = minus(v2045, v2044);
   real2 v323 = timesminusplus(reverse(v313), load(tbl, 38 * VECWIDTH + tbloffset), times(v313, load(tbl, 39 * VECWIDTH + tbloffset)));
   real2 v2205 = plus(v2124, v2125);
   real2 v2199 = reverse(minus(v2125, v2124));
   real2 v2280 = minus(v2205, v2204);
   real2 v2284 = plus(v2204, v2205);
   real2 v2225 = plus(v2144, v2145);
   real2 v2219 = reverse(minus(v2145, v2144));
   real2 v2305 = plus(v2264, v2265);
   real2 v2299 = reverse(minus(v2265, v2264));
   real2 v2240 = minus(v2085, v2084);
   real2 v2244 = plus(v2084, v2085);
   real2 v2279 = reverse(minus(v2245, v2244));
   real2 v2285 = plus(v2244, v2245);
   real2 v2281 = minusplus(v2279, v2280);
   real2 v2283 = minusplus(uminus(v2279), v2280);
   real2 v2291 = timesminusplus(reverse(v2281), load(tbl, 406 * VECWIDTH + tbloffset), times(v2281, load(tbl, 407 * VECWIDTH + tbloffset)));
   real2 v483 = timesminusplus(reverse(v473), load(tbl, 70 * VECWIDTH + tbloffset), times(v473, load(tbl, 71 * VECWIDTH + tbloffset)));
   real2 v2060 = minus(v483, v163);
   real2 v2064 = plus(v163, v483);
   real2 v2065 = plus(v323, v643);
   real2 v2059 = reverse(minus(v643, v323));
   real2 v2220 = minus(v2065, v2064);
   real2 v2224 = plus(v2064, v2065);
   real2 v2304 = plus(v2224, v2225);
   real2 v2300 = minus(v2225, v2224);
   real2 v2301 = minusplus(v2299, v2300);
   real2 v2303 = minusplus(uminus(v2299), v2300);
   real2 v2311 = timesminusplus(reverse(v2301), load(tbl, 410 * VECWIDTH + tbloffset), times(v2301, load(tbl, 411 * VECWIDTH + tbloffset)));
   scatter(out, 17, 128, plus(v2291, v2311));
   real2 v2344 = minus(v2291, v2311);
   scatter(out, 81, 128, timesminusplus(v2344, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2344), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2297 = timesminusplus(reverse(v2283), load(tbl, 408 * VECWIDTH + tbloffset), times(v2283, load(tbl, 409 * VECWIDTH + tbloffset)));
   real2 v2317 = timesminusplus(reverse(v2303), load(tbl, 412 * VECWIDTH + tbloffset), times(v2303, load(tbl, 413 * VECWIDTH + tbloffset)));
   scatter(out, 49, 128, plus(v2297, v2317));
   real2 v2350 = minus(v2297, v2317);
   scatter(out, 113, 128, timesminusplus(v2350, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2350), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2320 = minus(v2285, v2284);
   real2 v2324 = plus(v2284, v2285);
   real2 v2325 = plus(v2304, v2305);
   real2 v2319 = reverse(minus(v2305, v2304));
   scatter(out, 1, 128, plus(v2324, v2325));
   real2 v2338 = minus(v2324, v2325);
   scatter(out, 65, 128, timesminusplus(v2338, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2338), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2321 = minusplus(v2319, v2320);
   scatter(out, 33, 128, timesminusplus(reverse(v2321), load(tbl, 414 * VECWIDTH + tbloffset), times(v2321, load(tbl, 415 * VECWIDTH + tbloffset))));
   real2 v2323 = minusplus(uminus(v2319), v2320);
   scatter(out, 97, 128, timesminusplus(reverse(v2323), load(tbl, 416 * VECWIDTH + tbloffset), times(v2323, load(tbl, 417 * VECWIDTH + tbloffset))));
   real2 v2201 = minusplus(v2199, v2200);
   real2 v2203 = minusplus(uminus(v2199), v2200);
   real2 v2263 = minusplus(uminus(v2259), v2260);
   real2 v2261 = minusplus(v2259, v2260);
   real2 v2243 = minusplus(uminus(v2239), v2240);
   real2 v2241 = minusplus(v2239, v2240);
   real2 v2257 = timesminusplus(reverse(v2243), load(tbl, 400 * VECWIDTH + tbloffset), times(v2243, load(tbl, 401 * VECWIDTH + tbloffset)));
   real2 v2217 = timesminusplus(reverse(v2203), load(tbl, 392 * VECWIDTH + tbloffset), times(v2203, load(tbl, 393 * VECWIDTH + tbloffset)));
   real2 v2388 = plus(v2217, v2257);
   real2 v2384 = minus(v2257, v2217);
   real2 v2277 = timesminusplus(reverse(v2263), load(tbl, 404 * VECWIDTH + tbloffset), times(v2263, load(tbl, 405 * VECWIDTH + tbloffset)));
   real2 v2221 = minusplus(v2219, v2220);
   real2 v2223 = minusplus(uminus(v2219), v2220);
   real2 v2237 = timesminusplus(reverse(v2223), load(tbl, 396 * VECWIDTH + tbloffset), times(v2223, load(tbl, 397 * VECWIDTH + tbloffset)));
   real2 v2389 = plus(v2237, v2277);
   real2 v2383 = reverse(minus(v2277, v2237));
   scatter(out, 25, 128, plus(v2388, v2389));
   real2 v2402 = minus(v2388, v2389);
   scatter(out, 89, 128, timesminusplus(v2402, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2402), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2385 = minusplus(v2383, v2384);
   real2 v2387 = minusplus(uminus(v2383), v2384);
   scatter(out, 121, 128, timesminusplus(reverse(v2387), load(tbl, 424 * VECWIDTH + tbloffset), times(v2387, load(tbl, 425 * VECWIDTH + tbloffset))));
   scatter(out, 57, 128, timesminusplus(reverse(v2385), load(tbl, 422 * VECWIDTH + tbloffset), times(v2385, load(tbl, 423 * VECWIDTH + tbloffset))));
   real2 v2251 = timesminusplus(reverse(v2241), load(tbl, 398 * VECWIDTH + tbloffset), times(v2241, load(tbl, 399 * VECWIDTH + tbloffset)));
   real2 v2211 = timesminusplus(reverse(v2201), load(tbl, 390 * VECWIDTH + tbloffset), times(v2201, load(tbl, 391 * VECWIDTH + tbloffset)));
   real2 v2358 = minus(v2251, v2211);
   real2 v2362 = plus(v2211, v2251);
   real2 v2271 = timesminusplus(reverse(v2261), load(tbl, 402 * VECWIDTH + tbloffset), times(v2261, load(tbl, 403 * VECWIDTH + tbloffset)));
   real2 v2231 = timesminusplus(reverse(v2221), load(tbl, 394 * VECWIDTH + tbloffset), times(v2221, load(tbl, 395 * VECWIDTH + tbloffset)));
   real2 v2357 = reverse(minus(v2271, v2231));
   real2 v2363 = plus(v2231, v2271);
   scatter(out, 9, 128, plus(v2362, v2363));
   real2 v2376 = minus(v2362, v2363);
   scatter(out, 73, 128, timesminusplus(v2376, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2376), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2361 = minusplus(uminus(v2357), v2358);
   scatter(out, 105, 128, timesminusplus(reverse(v2361), load(tbl, 420 * VECWIDTH + tbloffset), times(v2361, load(tbl, 421 * VECWIDTH + tbloffset))));
   real2 v2359 = minusplus(v2357, v2358);
   scatter(out, 41, 128, timesminusplus(reverse(v2359), load(tbl, 418 * VECWIDTH + tbloffset), times(v2359, load(tbl, 419 * VECWIDTH + tbloffset))));
   real2 v2121 = minusplus(v2119, v2120);
   real2 v2123 = minusplus(uminus(v2119), v2120);
   real2 v2083 = minusplus(uminus(v2079), v2080);
   real2 v2081 = minusplus(v2079, v2080);
   real2 v2091 = timesminusplus(reverse(v2081), load(tbl, 366 * VECWIDTH + tbloffset), times(v2081, load(tbl, 367 * VECWIDTH + tbloffset)));
   real2 v2043 = minusplus(uminus(v2039), v2040);
   real2 v2041 = minusplus(v2039, v2040);
   real2 v2051 = timesminusplus(reverse(v2041), load(tbl, 358 * VECWIDTH + tbloffset), times(v2041, load(tbl, 359 * VECWIDTH + tbloffset)));
   real2 v2131 = timesminusplus(reverse(v2121), load(tbl, 374 * VECWIDTH + tbloffset), times(v2121, load(tbl, 375 * VECWIDTH + tbloffset)));
   real2 v2163 = minusplus(uminus(v2159), v2160);
   real2 v2161 = minusplus(v2159, v2160);
   real2 v2171 = timesminusplus(reverse(v2161), load(tbl, 382 * VECWIDTH + tbloffset), times(v2161, load(tbl, 383 * VECWIDTH + tbloffset)));
   real2 v2409 = reverse(minus(v2171, v2091));
   real2 v2415 = plus(v2091, v2171);
   real2 v2410 = minus(v2131, v2051);
   real2 v2414 = plus(v2051, v2131);
   real2 v2454 = plus(v2414, v2415);
   real2 v2450 = minus(v2415, v2414);
   real2 v2181 = minusplus(v2179, v2180);
   real2 v2183 = minusplus(uminus(v2179), v2180);
   real2 v2191 = timesminusplus(reverse(v2181), load(tbl, 386 * VECWIDTH + tbloffset), times(v2181, load(tbl, 387 * VECWIDTH + tbloffset)));
   real2 v2103 = minusplus(uminus(v2099), v2100);
   real2 v2101 = minusplus(v2099, v2100);
   real2 v2111 = timesminusplus(reverse(v2101), load(tbl, 370 * VECWIDTH + tbloffset), times(v2101, load(tbl, 371 * VECWIDTH + tbloffset)));
   real2 v2435 = plus(v2111, v2191);
   real2 v2429 = reverse(minus(v2191, v2111));
   real2 v2141 = minusplus(v2139, v2140);
   real2 v2143 = minusplus(uminus(v2139), v2140);
   real2 v2151 = timesminusplus(reverse(v2141), load(tbl, 378 * VECWIDTH + tbloffset), times(v2141, load(tbl, 379 * VECWIDTH + tbloffset)));
   real2 v2063 = minusplus(uminus(v2059), v2060);
   real2 v2061 = minusplus(v2059, v2060);
   real2 v2071 = timesminusplus(reverse(v2061), load(tbl, 362 * VECWIDTH + tbloffset), times(v2061, load(tbl, 363 * VECWIDTH + tbloffset)));
   real2 v2434 = plus(v2071, v2151);
   real2 v2430 = minus(v2151, v2071);
   real2 v2455 = plus(v2434, v2435);
   real2 v2449 = reverse(minus(v2435, v2434));
   scatter(out, 5, 128, plus(v2454, v2455));
   real2 v2468 = minus(v2454, v2455);
   scatter(out, 69, 128, timesminusplus(v2468, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2468), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2451 = minusplus(v2449, v2450);
   real2 v2453 = minusplus(uminus(v2449), v2450);
   scatter(out, 101, 128, timesminusplus(reverse(v2453), load(tbl, 436 * VECWIDTH + tbloffset), times(v2453, load(tbl, 437 * VECWIDTH + tbloffset))));
   scatter(out, 37, 128, timesminusplus(reverse(v2451), load(tbl, 434 * VECWIDTH + tbloffset), times(v2451, load(tbl, 435 * VECWIDTH + tbloffset))));
   real2 v2411 = minusplus(v2409, v2410);
   real2 v2413 = minusplus(uminus(v2409), v2410);
   real2 v2433 = minusplus(uminus(v2429), v2430);
   real2 v2431 = minusplus(v2429, v2430);
   real2 v2421 = timesminusplus(reverse(v2411), load(tbl, 426 * VECWIDTH + tbloffset), times(v2411, load(tbl, 427 * VECWIDTH + tbloffset)));
   real2 v2441 = timesminusplus(reverse(v2431), load(tbl, 430 * VECWIDTH + tbloffset), times(v2431, load(tbl, 431 * VECWIDTH + tbloffset)));
   scatter(out, 21, 128, plus(v2421, v2441));
   real2 v2474 = minus(v2421, v2441);
   scatter(out, 85, 128, timesminusplus(v2474, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2474), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2427 = timesminusplus(reverse(v2413), load(tbl, 428 * VECWIDTH + tbloffset), times(v2413, load(tbl, 429 * VECWIDTH + tbloffset)));
   real2 v2447 = timesminusplus(reverse(v2433), load(tbl, 432 * VECWIDTH + tbloffset), times(v2433, load(tbl, 433 * VECWIDTH + tbloffset)));
   scatter(out, 53, 128, plus(v2427, v2447));
   real2 v2480 = minus(v2427, v2447);
   scatter(out, 117, 128, timesminusplus(v2480, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2480), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2057 = timesminusplus(reverse(v2043), load(tbl, 360 * VECWIDTH + tbloffset), times(v2043, load(tbl, 361 * VECWIDTH + tbloffset)));
   real2 v2097 = timesminusplus(reverse(v2083), load(tbl, 368 * VECWIDTH + tbloffset), times(v2083, load(tbl, 369 * VECWIDTH + tbloffset)));
   real2 v2157 = timesminusplus(reverse(v2143), load(tbl, 380 * VECWIDTH + tbloffset), times(v2143, load(tbl, 381 * VECWIDTH + tbloffset)));
   real2 v2197 = timesminusplus(reverse(v2183), load(tbl, 388 * VECWIDTH + tbloffset), times(v2183, load(tbl, 389 * VECWIDTH + tbloffset)));
   real2 v2117 = timesminusplus(reverse(v2103), load(tbl, 372 * VECWIDTH + tbloffset), times(v2103, load(tbl, 373 * VECWIDTH + tbloffset)));
   real2 v2507 = reverse(minus(v2197, v2117));
   real2 v2513 = plus(v2117, v2197);
   real2 v2137 = timesminusplus(reverse(v2123), load(tbl, 376 * VECWIDTH + tbloffset), times(v2123, load(tbl, 377 * VECWIDTH + tbloffset)));
   real2 v2488 = minus(v2137, v2057);
   real2 v2492 = plus(v2057, v2137);
   real2 v2177 = timesminusplus(reverse(v2163), load(tbl, 384 * VECWIDTH + tbloffset), times(v2163, load(tbl, 385 * VECWIDTH + tbloffset)));
   real2 v2493 = plus(v2097, v2177);
   real2 v2487 = reverse(minus(v2177, v2097));
   real2 v2532 = plus(v2492, v2493);
   real2 v2528 = minus(v2493, v2492);
   real2 v2077 = timesminusplus(reverse(v2063), load(tbl, 364 * VECWIDTH + tbloffset), times(v2063, load(tbl, 365 * VECWIDTH + tbloffset)));
   real2 v2512 = plus(v2077, v2157);
   real2 v2508 = minus(v2157, v2077);
   real2 v2527 = reverse(minus(v2513, v2512));
   real2 v2533 = plus(v2512, v2513);
   real2 v2529 = minusplus(v2527, v2528);
   real2 v2531 = minusplus(uminus(v2527), v2528);
   scatter(out, 109, 128, timesminusplus(reverse(v2531), load(tbl, 448 * VECWIDTH + tbloffset), times(v2531, load(tbl, 449 * VECWIDTH + tbloffset))));
   scatter(out, 45, 128, timesminusplus(reverse(v2529), load(tbl, 446 * VECWIDTH + tbloffset), times(v2529, load(tbl, 447 * VECWIDTH + tbloffset))));
   scatter(out, 13, 128, plus(v2532, v2533));
   real2 v2546 = minus(v2532, v2533);
   scatter(out, 77, 128, timesminusplus(v2546, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2546), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2509 = minusplus(v2507, v2508);
   real2 v2511 = minusplus(uminus(v2507), v2508);
   real2 v2491 = minusplus(uminus(v2487), v2488);
   real2 v2489 = minusplus(v2487, v2488);
   real2 v2499 = timesminusplus(reverse(v2489), load(tbl, 438 * VECWIDTH + tbloffset), times(v2489, load(tbl, 439 * VECWIDTH + tbloffset)));
   real2 v2519 = timesminusplus(reverse(v2509), load(tbl, 442 * VECWIDTH + tbloffset), times(v2509, load(tbl, 443 * VECWIDTH + tbloffset)));
   scatter(out, 29, 128, plus(v2499, v2519));
   real2 v2552 = minus(v2499, v2519);
   scatter(out, 93, 128, timesminusplus(v2552, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2552), load(tbl, 1 * VECWIDTH + tbloffset))));
   real2 v2505 = timesminusplus(reverse(v2491), load(tbl, 440 * VECWIDTH + tbloffset), times(v2491, load(tbl, 441 * VECWIDTH + tbloffset)));
   real2 v2525 = timesminusplus(reverse(v2511), load(tbl, 444 * VECWIDTH + tbloffset), times(v2511, load(tbl, 445 * VECWIDTH + tbloffset)));
   scatter(out, 61, 128, plus(v2505, v2525));
   real2 v2558 = minus(v2505, v2525);
   scatter(out, 125, 128, timesminusplus(v2558, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v2558), load(tbl, 1 * VECWIDTH + tbloffset))));
// Pres : 76263
  }
}
#endif

//

#undef EMITREALSUB

#ifdef EMITREALSUB
ALIGNED(8192) void realSub0_%ISA%(real *d, const real *s, const int log2len, const real *rtCoef0, const real *rtCoef1) {
  const int n = 1 << log2len;
  real s0 = s[0], s1 = s[1];
  int k=1;

  d[n+0] = s[n+0];
  d[n+1] = s[n+1];

  for(;;k+=VECWIDTH) {
    int idx0 = k, idx1 = n-VECWIDTH+1-k;
    if (idx0 + VECWIDTH >= idx1) break;

    real2 v =          loadu(s, idx0);
    real2 u = reverse2(load (s, idx1));

    real2 t = minusplus(v, u);
    real2 m = minusplus(reverse(times(t, loadu(rtCoef1, k))),
			times(t, loadu(rtCoef0, k)));
    
    storeu(d, idx0, minusplus(v, uminus(m)));
    store (d, idx1, reverse2(minus(u, m)));
  }

  for(;k<n/2;k++) {
    real tr = s[k*2+0] - s[(n-k)*2+0];
    real ti = s[k*2+1] + s[(n-k)*2+1];
    real ur = rtCoef0[k*2+0];
    real ui = rtCoef1[k*2+0];
    
    real mr = + ti * ui - tr * ur;
    real mi = + tr * ui + ti * ur;
 
    d[k*2+0] = s[k*2+0] + mr;
    d[k*2+1] = s[k*2+1] - mi;

    d[(n-k)*2+0] = s[(n-k)*2+0] - mr;
    d[(n-k)*2+1] = s[(n-k)*2+1] - mi;
  }

  d[0] = s0 + s1;
  d[1] = s0 - s1;
}

ALIGNED(8192) void realSub1_%ISA%(real *d, const real *s, const int log2len, const real *rtCoef0, const real *rtCoef1, const int mode) {
  const int n = 1 << log2len;
  real c, tr, ti;

  if (mode) {
    c = 2;
    tr = s[0]; ti = s[n*2];
  } else {
    c = 1;
    tr = s[0]; ti = s[1];
  }
  
  d[0] = (tr + ti) * (0.5 * c);
  d[1] = (tr - ti) * (0.5 * c);
  d[n+1] = s[n+1] * c;
  d[n+0] = s[n+0] * c;

  int k = 1;

  for(;;k+=VECWIDTH) {
    int idx0 = k, idx1 = n-VECWIDTH+1-k;
    if (idx0 + VECWIDTH >= idx1) break;

    real2 v =          loadu(s, idx0);
    real2 u = reverse2(load (s, idx1));

    real2 t = minusplus(v, u);
    real2 m = minusplus(reverse(times(t, loadu(rtCoef1, k))),
			times(t, loadu(rtCoef0, k)));

    storeu(d, idx0, ctimes(uplusminus(minus(u, m)), c));
    store (d, idx1, ctimes(reverse2(minusplus(m, uminus(v))), c));
  }

  for(;k<n/2;k++) {
    tr = s[k*2+0] - s[(n-k)*2+0];
    ti = s[k*2+1] + s[(n-k)*2+1];
    real ur = rtCoef0[k*2+0];
    real ui = rtCoef1[k*2+0];

    real mr = ti * ui - tr * ur;
    real mi = tr * ui + ti * ur;

    tr = mr + s[k*2+0];
    ti = mi - s[k*2+1];

    d[k*2+0] = (+ s[(n-k)*2+0] - mr) * c;
    d[k*2+1] = (- s[(n-k)*2+1] + mi) * c;

    d[(n-k)*2+0] = tr * c;
    d[(n-k)*2+1] = ti * c;
  }
}

int getInt_%ISA%(int name) {
  switch(name) {
  case 100: return VECWIDTH;
  case 101: return DFTPRIORITY;
  default: return available(name);
  }
  return -1;
}

const void *getPtr_%ISA%(int name) {
  switch(name) {
  case 0: return ISANAME;
  }
  return NULL;
}
#endif
