//   Copyright Naoki Shibata and contributors 2010 - 2025.
// 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 tbut2f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift)), load(in, (1 << shift))));
    real2 v4 = minus(load(in, (0 << shift)), load(in, (1 << shift)));
    scatter(out, 1, 2, timesminusplus(v4, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v4), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut2b_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift)), load(in, (1 << shift))));
    real2 v4 = minus(load(in, (0 << shift)), load(in, (1 << shift)));
    scatter(out, 1, 2, timesminusplus(v4, load(tbl, 0 * VECWIDTH + tbloffset), times(reverse(v4), load(tbl, 1 * VECWIDTH + tbloffset))));
  }
}

ALIGNED(8192) void tbut4f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v3 = load(in, 1 << shift);
    real2 v7 = reverse(minus(v3, v5));
    real2 v13 = plus(v3, v5);
    real2 v2 = load(in, 0 << shift);
    real2 v4 = load(in, 2 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v3 = load(in, 1 << shift);
    real2 v7 = reverse(minus(v5, v3));
    real2 v13 = plus(v3, v5);
    real2 v2 = load(in, 0 << shift);
    real2 v4 = load(in, 2 << shift);
    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%TYPEID% >= 3
ALIGNED(8192) void tbut8f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v37 = plus(v5, v9);
    real2 v31 = reverse(minus(v5, v9));
    real2 v7 = load(in, 5 << shift);
    real2 v3 = load(in, 1 << shift);
    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 << shift);
    real2 v2 = load(in, 0 << shift);
    real2 v16 = plus(v2, v6);
    real2 v12 = minus(v6, v2);
    real2 v8 = load(in, 6 << shift);
    real2 v4 = load(in, 2 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v37 = plus(v5, v9);
    real2 v31 = reverse(minus(v9, v5));
    real2 v7 = load(in, 5 << shift);
    real2 v3 = load(in, 1 << shift);
    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 << shift);
    real2 v2 = load(in, 0 << shift);
    real2 v16 = plus(v2, v6);
    real2 v12 = minus(v6, v2);
    real2 v8 = load(in, 6 << shift);
    real2 v4 = load(in, 2 << shift);
    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%TYPEID% >= 4
ALIGNED(8192) void tbut16f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v7 = load(in, 5 << shift);
    real2 v45 = plus(v7, v15);
    real2 v39 = reverse(minus(v7, v15));
    real2 v3 = load(in, 1 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v84 = plus(v5, v13);
    real2 v80 = minus(v13, v5);
    real2 v17 = load(in, 15 << shift);
    real2 v9 = load(in, 7 << shift);
    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 << shift);
    real2 v12 = load(in, 10 << shift);
    real2 v64 = plus(v4, v12);
    real2 v60 = minus(v12, v4);
    real2 v8 = load(in, 6 << shift);
    real2 v16 = load(in, 14 << shift);
    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 << shift);
    real2 v6 = load(in, 4 << shift);
    real2 v25 = plus(v6, v14);
    real2 v19 = reverse(minus(v6, v14));
    real2 v10 = load(in, 8 << shift);
    real2 v2 = load(in, 0 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v7 = load(in, 5 << shift);
    real2 v45 = plus(v7, v15);
    real2 v39 = reverse(minus(v15, v7));
    real2 v3 = load(in, 1 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v84 = plus(v5, v13);
    real2 v80 = minus(v13, v5);
    real2 v17 = load(in, 15 << shift);
    real2 v9 = load(in, 7 << shift);
    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 << shift);
    real2 v12 = load(in, 10 << shift);
    real2 v64 = plus(v4, v12);
    real2 v60 = minus(v12, v4);
    real2 v8 = load(in, 6 << shift);
    real2 v16 = load(in, 14 << shift);
    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 << shift);
    real2 v6 = load(in, 4 << shift);
    real2 v25 = plus(v6, v14);
    real2 v19 = reverse(minus(v14, v6));
    real2 v10 = load(in, 8 << shift);
    real2 v2 = load(in, 0 << shift);
    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%TYPEID% >= 5
ALIGNED(8192) void tbut32f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v30 = load(in, 28 << shift);
    real2 v115 = reverse(minus(v14, v30));
    real2 v121 = plus(v14, v30);
    real2 v6 = load(in, 4 << shift);
    real2 v22 = load(in, 20 << shift);
    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 << shift);
    real2 v2 = load(in, 0 << shift);
    real2 v40 = plus(v2, v18);
    real2 v36 = minus(v18, v2);
    real2 v10 = load(in, 8 << shift);
    real2 v26 = load(in, 24 << shift);
    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 << shift);
    real2 v12 = load(in, 10 << shift);
    real2 v81 = plus(v12, v28);
    real2 v75 = reverse(minus(v12, v28));
    real2 v20 = load(in, 18 << shift);
    real2 v4 = load(in, 2 << shift);
    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 << shift);
    real2 v16 = load(in, 14 << shift);
    real2 v155 = reverse(minus(v16, v32));
    real2 v161 = plus(v16, v32);
    real2 v24 = load(in, 22 << shift);
    real2 v8 = load(in, 6 << shift);
    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 << shift);
    real2 v33 = load(in, 31 << shift);
    real2 v175 = reverse(minus(v17, v33));
    real2 v181 = plus(v17, v33);
    real2 v25 = load(in, 23 << shift);
    real2 v9 = load(in, 7 << shift);
    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 << shift);
    real2 v13 = load(in, 11 << shift);
    real2 v101 = plus(v13, v29);
    real2 v95 = reverse(minus(v13, v29));
    real2 v21 = load(in, 19 << shift);
    real2 v5 = load(in, 3 << shift);
    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 << shift);
    real2 v19 = load(in, 17 << shift);
    real2 v60 = plus(v3, v19);
    real2 v56 = minus(v19, v3);
    real2 v27 = load(in, 25 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v23 = load(in, 21 << shift);
    real2 v136 = minus(v23, v7);
    real2 v140 = plus(v7, v23);
    real2 v15 = load(in, 13 << shift);
    real2 v31 = load(in, 29 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v30 = load(in, 28 << shift);
    real2 v115 = reverse(minus(v30, v14));
    real2 v121 = plus(v14, v30);
    real2 v6 = load(in, 4 << shift);
    real2 v22 = load(in, 20 << shift);
    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 << shift);
    real2 v2 = load(in, 0 << shift);
    real2 v40 = plus(v2, v18);
    real2 v36 = minus(v18, v2);
    real2 v10 = load(in, 8 << shift);
    real2 v26 = load(in, 24 << shift);
    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 << shift);
    real2 v12 = load(in, 10 << shift);
    real2 v81 = plus(v12, v28);
    real2 v75 = reverse(minus(v28, v12));
    real2 v20 = load(in, 18 << shift);
    real2 v4 = load(in, 2 << shift);
    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 << shift);
    real2 v16 = load(in, 14 << shift);
    real2 v155 = reverse(minus(v32, v16));
    real2 v161 = plus(v16, v32);
    real2 v24 = load(in, 22 << shift);
    real2 v8 = load(in, 6 << shift);
    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 << shift);
    real2 v33 = load(in, 31 << shift);
    real2 v175 = reverse(minus(v33, v17));
    real2 v181 = plus(v17, v33);
    real2 v25 = load(in, 23 << shift);
    real2 v9 = load(in, 7 << shift);
    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 << shift);
    real2 v13 = load(in, 11 << shift);
    real2 v101 = plus(v13, v29);
    real2 v95 = reverse(minus(v29, v13));
    real2 v21 = load(in, 19 << shift);
    real2 v5 = load(in, 3 << shift);
    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 << shift);
    real2 v19 = load(in, 17 << shift);
    real2 v60 = plus(v3, v19);
    real2 v56 = minus(v19, v3);
    real2 v27 = load(in, 25 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v23 = load(in, 21 << shift);
    real2 v136 = minus(v23, v7);
    real2 v140 = plus(v7, v23);
    real2 v15 = load(in, 13 << shift);
    real2 v31 = load(in, 29 << shift);
    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%TYPEID% >= 6
ALIGNED(8192) void tbut64f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v132 = plus(v5, v37);
    real2 v128 = minus(v37, v5);
    real2 v21 = load(in, 19 << shift);
    real2 v53 = load(in, 51 << shift);
    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 << shift);
    real2 v13 = load(in, 11 << shift);
    real2 v292 = plus(v13, v45);
    real2 v288 = minus(v45, v13);
    real2 v29 = load(in, 27 << shift);
    real2 v61 = load(in, 59 << shift);
    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 << shift);
    real2 v57 = load(in, 55 << shift);
    real2 v207 = reverse(minus(v25, v57));
    real2 v213 = plus(v25, v57);
    real2 v9 = load(in, 7 << shift);
    real2 v41 = load(in, 39 << shift);
    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 << shift);
    real2 v49 = load(in, 47 << shift);
    real2 v368 = minus(v49, v17);
    real2 v372 = plus(v17, v49);
    real2 v33 = load(in, 31 << shift);
    real2 v65 = load(in, 63 << shift);
    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 << shift);
    real2 v43 = load(in, 41 << shift);
    real2 v248 = minus(v43, v11);
    real2 v252 = plus(v11, v43);
    real2 v59 = load(in, 57 << shift);
    real2 v27 = load(in, 25 << shift);
    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 << shift);
    real2 v3 = load(in, 1 << shift);
    real2 v92 = plus(v3, v35);
    real2 v88 = minus(v35, v3);
    real2 v51 = load(in, 49 << shift);
    real2 v19 = load(in, 17 << shift);
    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 << shift);
    real2 v15 = load(in, 13 << shift);
    real2 v332 = plus(v15, v47);
    real2 v328 = minus(v47, v15);
    real2 v63 = load(in, 61 << shift);
    real2 v31 = load(in, 29 << shift);
    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 << shift);
    real2 v39 = load(in, 37 << shift);
    real2 v172 = plus(v7, v39);
    real2 v168 = minus(v39, v7);
    real2 v55 = load(in, 53 << shift);
    real2 v23 = load(in, 21 << shift);
    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 << shift);
    real2 v4 = load(in, 2 << shift);
    real2 v108 = minus(v36, v4);
    real2 v112 = plus(v4, v36);
    real2 v52 = load(in, 50 << shift);
    real2 v20 = load(in, 18 << shift);
    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 << shift);
    real2 v44 = load(in, 42 << shift);
    real2 v268 = minus(v44, v12);
    real2 v272 = plus(v12, v44);
    real2 v28 = load(in, 26 << shift);
    real2 v60 = load(in, 58 << shift);
    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 << shift);
    real2 v8 = load(in, 6 << shift);
    real2 v188 = minus(v40, v8);
    real2 v192 = plus(v8, v40);
    real2 v24 = load(in, 22 << shift);
    real2 v56 = load(in, 54 << shift);
    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 << shift);
    real2 v64 = load(in, 62 << shift);
    real2 v347 = reverse(minus(v32, v64));
    real2 v353 = plus(v32, v64);
    real2 v48 = load(in, 46 << shift);
    real2 v16 = load(in, 14 << shift);
    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 << shift);
    real2 v14 = load(in, 12 << shift);
    real2 v312 = plus(v14, v46);
    real2 v308 = minus(v46, v14);
    real2 v62 = load(in, 60 << shift);
    real2 v30 = load(in, 28 << shift);
    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 << shift);
    real2 v54 = load(in, 52 << shift);
    real2 v147 = reverse(minus(v22, v54));
    real2 v153 = plus(v22, v54);
    real2 v6 = load(in, 4 << shift);
    real2 v38 = load(in, 36 << shift);
    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 << shift);
    real2 v42 = load(in, 40 << shift);
    real2 v232 = plus(v10, v42);
    real2 v228 = minus(v42, v10);
    real2 v58 = load(in, 56 << shift);
    real2 v26 = load(in, 24 << shift);
    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 << shift);
    real2 v34 = load(in, 32 << shift);
    real2 v72 = plus(v2, v34);
    real2 v68 = minus(v34, v2);
    real2 v18 = load(in, 16 << shift);
    real2 v50 = load(in, 48 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v132 = plus(v5, v37);
    real2 v128 = minus(v37, v5);
    real2 v21 = load(in, 19 << shift);
    real2 v53 = load(in, 51 << shift);
    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 << shift);
    real2 v13 = load(in, 11 << shift);
    real2 v292 = plus(v13, v45);
    real2 v288 = minus(v45, v13);
    real2 v29 = load(in, 27 << shift);
    real2 v61 = load(in, 59 << shift);
    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 << shift);
    real2 v57 = load(in, 55 << shift);
    real2 v207 = reverse(minus(v57, v25));
    real2 v213 = plus(v25, v57);
    real2 v9 = load(in, 7 << shift);
    real2 v41 = load(in, 39 << shift);
    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 << shift);
    real2 v49 = load(in, 47 << shift);
    real2 v368 = minus(v49, v17);
    real2 v372 = plus(v17, v49);
    real2 v33 = load(in, 31 << shift);
    real2 v65 = load(in, 63 << shift);
    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 << shift);
    real2 v43 = load(in, 41 << shift);
    real2 v248 = minus(v43, v11);
    real2 v252 = plus(v11, v43);
    real2 v59 = load(in, 57 << shift);
    real2 v27 = load(in, 25 << shift);
    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 << shift);
    real2 v3 = load(in, 1 << shift);
    real2 v92 = plus(v3, v35);
    real2 v88 = minus(v35, v3);
    real2 v51 = load(in, 49 << shift);
    real2 v19 = load(in, 17 << shift);
    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 << shift);
    real2 v15 = load(in, 13 << shift);
    real2 v332 = plus(v15, v47);
    real2 v328 = minus(v47, v15);
    real2 v63 = load(in, 61 << shift);
    real2 v31 = load(in, 29 << shift);
    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 << shift);
    real2 v39 = load(in, 37 << shift);
    real2 v172 = plus(v7, v39);
    real2 v168 = minus(v39, v7);
    real2 v55 = load(in, 53 << shift);
    real2 v23 = load(in, 21 << shift);
    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 << shift);
    real2 v4 = load(in, 2 << shift);
    real2 v108 = minus(v36, v4);
    real2 v112 = plus(v4, v36);
    real2 v52 = load(in, 50 << shift);
    real2 v20 = load(in, 18 << shift);
    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 << shift);
    real2 v44 = load(in, 42 << shift);
    real2 v268 = minus(v44, v12);
    real2 v272 = plus(v12, v44);
    real2 v28 = load(in, 26 << shift);
    real2 v60 = load(in, 58 << shift);
    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 << shift);
    real2 v8 = load(in, 6 << shift);
    real2 v188 = minus(v40, v8);
    real2 v192 = plus(v8, v40);
    real2 v24 = load(in, 22 << shift);
    real2 v56 = load(in, 54 << shift);
    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 << shift);
    real2 v64 = load(in, 62 << shift);
    real2 v347 = reverse(minus(v64, v32));
    real2 v353 = plus(v32, v64);
    real2 v48 = load(in, 46 << shift);
    real2 v16 = load(in, 14 << shift);
    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 << shift);
    real2 v14 = load(in, 12 << shift);
    real2 v312 = plus(v14, v46);
    real2 v308 = minus(v46, v14);
    real2 v62 = load(in, 60 << shift);
    real2 v30 = load(in, 28 << shift);
    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 << shift);
    real2 v54 = load(in, 52 << shift);
    real2 v147 = reverse(minus(v54, v22));
    real2 v153 = plus(v22, v54);
    real2 v6 = load(in, 4 << shift);
    real2 v38 = load(in, 36 << shift);
    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 << shift);
    real2 v42 = load(in, 40 << shift);
    real2 v232 = plus(v10, v42);
    real2 v228 = minus(v42, v10);
    real2 v58 = load(in, 56 << shift);
    real2 v26 = load(in, 24 << shift);
    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 << shift);
    real2 v34 = load(in, 32 << shift);
    real2 v72 = plus(v2, v34);
    real2 v68 = minus(v34, v2);
    real2 v18 = load(in, 16 << shift);
    real2 v50 = load(in, 48 << shift);
    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%TYPEID% >= 7
ALIGNED(8192) void tbut128f_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v120 = load(in, 118 << shift);
    real2 v571 = reverse(minus(v56, v120));
    real2 v577 = plus(v56, v120);
    real2 v24 = load(in, 22 << shift);
    real2 v88 = load(in, 86 << shift);
    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 << shift);
    real2 v72 = load(in, 70 << shift);
    real2 v252 = minus(v72, v8);
    real2 v256 = plus(v8, v72);
    real2 v104 = load(in, 102 << shift);
    real2 v40 = load(in, 38 << shift);
    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 << shift);
    real2 v32 = load(in, 30 << shift);
    real2 v736 = plus(v32, v96);
    real2 v732 = minus(v96, v32);
    real2 v64 = load(in, 62 << shift);
    real2 v128 = load(in, 126 << shift);
    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 << shift);
    real2 v80 = load(in, 78 << shift);
    real2 v412 = minus(v80, v16);
    real2 v416 = plus(v16, v80);
    real2 v112 = load(in, 110 << shift);
    real2 v48 = load(in, 46 << shift);
    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 << shift);
    real2 v108 = load(in, 106 << shift);
    real2 v331 = reverse(minus(v44, v108));
    real2 v337 = plus(v44, v108);
    real2 v76 = load(in, 74 << shift);
    real2 v12 = load(in, 10 << shift);
    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 << shift);
    real2 v60 = load(in, 58 << shift);
    real2 v651 = reverse(minus(v60, v124));
    real2 v657 = plus(v60, v124);
    real2 v28 = load(in, 26 << shift);
    real2 v92 = load(in, 90 << shift);
    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 << shift);
    real2 v84 = load(in, 82 << shift);
    real2 v496 = plus(v20, v84);
    real2 v492 = minus(v84, v20);
    real2 v52 = load(in, 50 << shift);
    real2 v116 = load(in, 114 << shift);
    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 << shift);
    real2 v100 = load(in, 98 << shift);
    real2 v171 = reverse(minus(v36, v100));
    real2 v177 = plus(v36, v100);
    real2 v68 = load(in, 66 << shift);
    real2 v4 = load(in, 2 << shift);
    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 << shift);
    real2 v118 = load(in, 116 << shift);
    real2 v537 = plus(v54, v118);
    real2 v531 = reverse(minus(v54, v118));
    real2 v86 = load(in, 84 << shift);
    real2 v22 = load(in, 20 << shift);
    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 << shift);
    real2 v38 = load(in, 36 << shift);
    real2 v217 = plus(v38, v102);
    real2 v211 = reverse(minus(v38, v102));
    real2 v70 = load(in, 68 << shift);
    real2 v6 = load(in, 4 << shift);
    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 << shift);
    real2 v46 = load(in, 44 << shift);
    real2 v377 = plus(v46, v110);
    real2 v371 = reverse(minus(v46, v110));
    real2 v78 = load(in, 76 << shift);
    real2 v14 = load(in, 12 << shift);
    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 << shift);
    real2 v94 = load(in, 92 << shift);
    real2 v696 = plus(v30, v94);
    real2 v692 = minus(v94, v30);
    real2 v62 = load(in, 60 << shift);
    real2 v126 = load(in, 124 << shift);
    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 << shift);
    real2 v50 = load(in, 48 << shift);
    real2 v457 = plus(v50, v114);
    real2 v451 = reverse(minus(v50, v114));
    real2 v18 = load(in, 16 << shift);
    real2 v82 = load(in, 80 << shift);
    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 << 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(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 << shift);
    real2 v10 = load(in, 8 << shift);
    real2 v296 = plus(v10, v74);
    real2 v292 = minus(v74, v10);
    real2 v42 = load(in, 40 << shift);
    real2 v106 = load(in, 104 << shift);
    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 << shift);
    real2 v58 = load(in, 56 << shift);
    real2 v617 = plus(v58, v122);
    real2 v611 = reverse(minus(v58, v122));
    real2 v26 = load(in, 24 << shift);
    real2 v90 = load(in, 88 << shift);
    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 << shift);
    real2 v127 = load(in, 125 << shift);
    real2 v717 = plus(v63, v127);
    real2 v711 = reverse(minus(v63, v127));
    real2 v95 = load(in, 93 << shift);
    real2 v31 = load(in, 29 << shift);
    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 << shift);
    real2 v15 = load(in, 13 << shift);
    real2 v396 = plus(v15, v79);
    real2 v392 = minus(v79, v15);
    real2 v111 = load(in, 109 << shift);
    real2 v47 = load(in, 45 << shift);
    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 << shift);
    real2 v87 = load(in, 85 << shift);
    real2 v556 = plus(v23, v87);
    real2 v552 = minus(v87, v23);
    real2 v119 = load(in, 117 << shift);
    real2 v55 = load(in, 53 << shift);
    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 << shift);
    real2 v71 = load(in, 69 << shift);
    real2 v232 = minus(v71, v7);
    real2 v236 = plus(v7, v71);
    real2 v103 = load(in, 101 << shift);
    real2 v39 = load(in, 37 << shift);
    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 << shift);
    real2 v19 = load(in, 17 << shift);
    real2 v476 = plus(v19, v83);
    real2 v472 = minus(v83, v19);
    real2 v51 = load(in, 49 << shift);
    real2 v115 = load(in, 113 << shift);
    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 << shift);
    real2 v67 = load(in, 65 << shift);
    real2 v156 = plus(v3, v67);
    real2 v152 = minus(v67, v3);
    real2 v35 = load(in, 33 << shift);
    real2 v99 = load(in, 97 << shift);
    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 << shift);
    real2 v43 = load(in, 41 << shift);
    real2 v317 = plus(v43, v107);
    real2 v311 = reverse(minus(v43, v107));
    real2 v75 = load(in, 73 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v123 = load(in, 121 << shift);
    real2 v631 = reverse(minus(v59, v123));
    real2 v637 = plus(v59, v123);
    real2 v27 = load(in, 25 << shift);
    real2 v91 = load(in, 89 << shift);
    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 << shift);
    real2 v21 = load(in, 19 << shift);
    real2 v512 = minus(v85, v21);
    real2 v516 = plus(v21, v85);
    real2 v117 = load(in, 115 << shift);
    real2 v53 = load(in, 51 << shift);
    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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v192 = minus(v69, v5);
    real2 v196 = plus(v5, v69);
    real2 v37 = load(in, 35 << shift);
    real2 v101 = load(in, 99 << shift);
    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 << shift);
    real2 v125 = load(in, 123 << shift);
    real2 v677 = plus(v61, v125);
    real2 v671 = reverse(minus(v61, v125));
    real2 v29 = load(in, 27 << shift);
    real2 v93 = load(in, 91 << shift);
    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 << shift);
    real2 v45 = load(in, 43 << shift);
    real2 v357 = plus(v45, v109);
    real2 v351 = reverse(minus(v45, v109));
    real2 v77 = load(in, 75 << shift);
    real2 v13 = load(in, 11 << shift);
    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 << shift);
    real2 v105 = load(in, 103 << shift);
    real2 v277 = plus(v41, v105);
    real2 v271 = reverse(minus(v41, v105));
    real2 v9 = load(in, 7 << shift);
    real2 v73 = load(in, 71 << shift);
    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 << shift);
    real2 v25 = load(in, 23 << shift);
    real2 v592 = minus(v89, v25);
    real2 v596 = plus(v25, v89);
    real2 v57 = load(in, 55 << shift);
    real2 v121 = load(in, 119 << shift);
    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 << shift);
    real2 v17 = load(in, 15 << shift);
    real2 v432 = minus(v81, v17);
    real2 v436 = plus(v17, v81);
    real2 v113 = load(in, 111 << shift);
    real2 v49 = load(in, 47 << shift);
    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 << shift);
    real2 v129 = load(in, 127 << shift);
    real2 v757 = plus(v65, v129);
    real2 v751 = reverse(minus(v65, v129));
    real2 v97 = load(in, 95 << shift);
    real2 v33 = load(in, 31 << shift);
    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_%SHIFT%_%CONFIG%_%ISA%(real *RESTRICT out0, uint32_t *q, const real *RESTRICT in0, const real *RESTRICT tbl, const int K) {
  const int shift = %SHIFT% + LOG2VECWIDTH, k = 1 << (shift - 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 << shift);
    real2 v120 = load(in, 118 << shift);
    real2 v571 = reverse(minus(v120, v56));
    real2 v577 = plus(v56, v120);
    real2 v24 = load(in, 22 << shift);
    real2 v88 = load(in, 86 << shift);
    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 << shift);
    real2 v72 = load(in, 70 << shift);
    real2 v252 = minus(v72, v8);
    real2 v256 = plus(v8, v72);
    real2 v104 = load(in, 102 << shift);
    real2 v40 = load(in, 38 << shift);
    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 << shift);
    real2 v32 = load(in, 30 << shift);
    real2 v736 = plus(v32, v96);
    real2 v732 = minus(v96, v32);
    real2 v64 = load(in, 62 << shift);
    real2 v128 = load(in, 126 << shift);
    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 << shift);
    real2 v80 = load(in, 78 << shift);
    real2 v412 = minus(v80, v16);
    real2 v416 = plus(v16, v80);
    real2 v112 = load(in, 110 << shift);
    real2 v48 = load(in, 46 << shift);
    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 << shift);
    real2 v108 = load(in, 106 << shift);
    real2 v331 = reverse(minus(v108, v44));
    real2 v337 = plus(v44, v108);
    real2 v76 = load(in, 74 << shift);
    real2 v12 = load(in, 10 << shift);
    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 << shift);
    real2 v60 = load(in, 58 << shift);
    real2 v651 = reverse(minus(v124, v60));
    real2 v657 = plus(v60, v124);
    real2 v28 = load(in, 26 << shift);
    real2 v92 = load(in, 90 << shift);
    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 << shift);
    real2 v84 = load(in, 82 << shift);
    real2 v496 = plus(v20, v84);
    real2 v492 = minus(v84, v20);
    real2 v52 = load(in, 50 << shift);
    real2 v116 = load(in, 114 << shift);
    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 << shift);
    real2 v100 = load(in, 98 << shift);
    real2 v171 = reverse(minus(v100, v36));
    real2 v177 = plus(v36, v100);
    real2 v68 = load(in, 66 << shift);
    real2 v4 = load(in, 2 << shift);
    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 << shift);
    real2 v118 = load(in, 116 << shift);
    real2 v537 = plus(v54, v118);
    real2 v531 = reverse(minus(v118, v54));
    real2 v86 = load(in, 84 << shift);
    real2 v22 = load(in, 20 << shift);
    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 << shift);
    real2 v38 = load(in, 36 << shift);
    real2 v217 = plus(v38, v102);
    real2 v211 = reverse(minus(v102, v38));
    real2 v70 = load(in, 68 << shift);
    real2 v6 = load(in, 4 << shift);
    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 << shift);
    real2 v46 = load(in, 44 << shift);
    real2 v377 = plus(v46, v110);
    real2 v371 = reverse(minus(v110, v46));
    real2 v78 = load(in, 76 << shift);
    real2 v14 = load(in, 12 << shift);
    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 << shift);
    real2 v94 = load(in, 92 << shift);
    real2 v696 = plus(v30, v94);
    real2 v692 = minus(v94, v30);
    real2 v62 = load(in, 60 << shift);
    real2 v126 = load(in, 124 << shift);
    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 << shift);
    real2 v50 = load(in, 48 << shift);
    real2 v457 = plus(v50, v114);
    real2 v451 = reverse(minus(v114, v50));
    real2 v18 = load(in, 16 << shift);
    real2 v82 = load(in, 80 << shift);
    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 << 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 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 << shift);
    real2 v10 = load(in, 8 << shift);
    real2 v296 = plus(v10, v74);
    real2 v292 = minus(v74, v10);
    real2 v42 = load(in, 40 << shift);
    real2 v106 = load(in, 104 << shift);
    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 << shift);
    real2 v58 = load(in, 56 << shift);
    real2 v617 = plus(v58, v122);
    real2 v611 = reverse(minus(v122, v58));
    real2 v26 = load(in, 24 << shift);
    real2 v90 = load(in, 88 << shift);
    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 << shift);
    real2 v127 = load(in, 125 << shift);
    real2 v717 = plus(v63, v127);
    real2 v711 = reverse(minus(v127, v63));
    real2 v95 = load(in, 93 << shift);
    real2 v31 = load(in, 29 << shift);
    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 << shift);
    real2 v15 = load(in, 13 << shift);
    real2 v396 = plus(v15, v79);
    real2 v392 = minus(v79, v15);
    real2 v111 = load(in, 109 << shift);
    real2 v47 = load(in, 45 << shift);
    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 << shift);
    real2 v87 = load(in, 85 << shift);
    real2 v556 = plus(v23, v87);
    real2 v552 = minus(v87, v23);
    real2 v119 = load(in, 117 << shift);
    real2 v55 = load(in, 53 << shift);
    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 << shift);
    real2 v71 = load(in, 69 << shift);
    real2 v232 = minus(v71, v7);
    real2 v236 = plus(v7, v71);
    real2 v103 = load(in, 101 << shift);
    real2 v39 = load(in, 37 << shift);
    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 << shift);
    real2 v19 = load(in, 17 << shift);
    real2 v476 = plus(v19, v83);
    real2 v472 = minus(v83, v19);
    real2 v51 = load(in, 49 << shift);
    real2 v115 = load(in, 113 << shift);
    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 << shift);
    real2 v67 = load(in, 65 << shift);
    real2 v156 = plus(v3, v67);
    real2 v152 = minus(v67, v3);
    real2 v35 = load(in, 33 << shift);
    real2 v99 = load(in, 97 << shift);
    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 << shift);
    real2 v43 = load(in, 41 << shift);
    real2 v317 = plus(v43, v107);
    real2 v311 = reverse(minus(v107, v43));
    real2 v75 = load(in, 73 << shift);
    real2 v11 = load(in, 9 << shift);
    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 << shift);
    real2 v123 = load(in, 121 << shift);
    real2 v631 = reverse(minus(v123, v59));
    real2 v637 = plus(v59, v123);
    real2 v27 = load(in, 25 << shift);
    real2 v91 = load(in, 89 << shift);
    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 << shift);
    real2 v21 = load(in, 19 << shift);
    real2 v512 = minus(v85, v21);
    real2 v516 = plus(v21, v85);
    real2 v117 = load(in, 115 << shift);
    real2 v53 = load(in, 51 << shift);
    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 << shift);
    real2 v5 = load(in, 3 << shift);
    real2 v192 = minus(v69, v5);
    real2 v196 = plus(v5, v69);
    real2 v37 = load(in, 35 << shift);
    real2 v101 = load(in, 99 << shift);
    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 << shift);
    real2 v125 = load(in, 123 << shift);
    real2 v677 = plus(v61, v125);
    real2 v671 = reverse(minus(v125, v61));
    real2 v29 = load(in, 27 << shift);
    real2 v93 = load(in, 91 << shift);
    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 << shift);
    real2 v45 = load(in, 43 << shift);
    real2 v357 = plus(v45, v109);
    real2 v351 = reverse(minus(v109, v45));
    real2 v77 = load(in, 75 << shift);
    real2 v13 = load(in, 11 << shift);
    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 << shift);
    real2 v105 = load(in, 103 << shift);
    real2 v277 = plus(v41, v105);
    real2 v271 = reverse(minus(v105, v41));
    real2 v9 = load(in, 7 << shift);
    real2 v73 = load(in, 71 << shift);
    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 << shift);
    real2 v25 = load(in, 23 << shift);
    real2 v592 = minus(v89, v25);
    real2 v596 = plus(v25, v89);
    real2 v57 = load(in, 55 << shift);
    real2 v121 = load(in, 119 << shift);
    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 << shift);
    real2 v17 = load(in, 15 << shift);
    real2 v432 = minus(v81, v17);
    real2 v436 = plus(v17, v81);
    real2 v113 = load(in, 111 << shift);
    real2 v49 = load(in, 47 << shift);
    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 << shift);
    real2 v129 = load(in, 127 << shift);
    real2 v757 = plus(v65, v129);
    real2 v751 = reverse(minus(v129, v65));
    real2 v97 = load(in, 95 << shift);
    real2 v33 = load(in, 31 << shift);
    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
