void fft1D_512(double work_x[512], double work_y[512]) {
  int tid, hi, lo, stride;
  int reversed[] = {0, 4, 2, 6, 1, 5, 3, 7};
  double DATA_x[64 * 8];
  double DATA_y[64 * 8];
  double data_x[8];
  double data_y[8];
  double smem[8 * 8 * 9];
  stride = 64;
loop1:
  for (tid = 0; tid < 64; tid++) {
    data_x[0] = work_x[0 * stride + tid];
    data_x[1] = work_x[1 * stride + tid];
    data_x[2] = work_x[2 * stride + tid];
    data_x[3] = work_x[3 * stride + tid];
    data_x[4] = work_x[4 * stride + tid];
    data_x[5] = work_x[5 * stride + tid];
    data_x[6] = work_x[6 * stride + tid];
    data_x[7] = work_x[7 * stride + tid];
    data_y[0] = work_y[0 * stride + tid];
    data_y[1] = work_y[1 * stride + tid];
    data_y[2] = work_y[2 * stride + tid];
    data_y[3] = work_y[3 * stride + tid];
    data_y[4] = work_y[4 * stride + tid];
    data_y[5] = work_y[5 * stride + tid];
    data_y[6] = work_y[6 * stride + tid];
    data_y[7] = work_y[7 * stride + tid];
    {
      double exp_1_8_x, exp_1_4_x, exp_3_8_x;
      double exp_1_8_y, exp_1_4_y, exp_3_8_y;
      double tmp_1;
      exp_1_8_x = 1;
      exp_1_8_y = -1;
      exp_1_4_x = 0;
      exp_1_4_y = -1;
      exp_3_8_x = -1;
      exp_3_8_y = -1;
      {
        double c0_x = *&data_x[0];
        double c0_y = *&data_y[0];
        *&data_x[0] = (c0_x + *&data_x[4]);
        *&data_y[0] = (c0_y + *&data_y[4]);
        *&data_x[4] = (c0_x - *&data_x[4]);
        *&data_y[4] = (c0_y - *&data_y[4]);
      };
      {
        double c0_x = *&data_x[1];
        double c0_y = *&data_y[1];
        *&data_x[1] = (c0_x + *&data_x[5]);
        *&data_y[1] = (c0_y + *&data_y[5]);
        *&data_x[5] = (c0_x - *&data_x[5]);
        *&data_y[5] = (c0_y - *&data_y[5]);
      };
      {
        double c0_x = *&data_x[2];
        double c0_y = *&data_y[2];
        *&data_x[2] = (c0_x + *&data_x[6]);
        *&data_y[2] = (c0_y + *&data_y[6]);
        *&data_x[6] = (c0_x - *&data_x[6]);
        *&data_y[6] = (c0_y - *&data_y[6]);
      };
      {
        double c0_x = *&data_x[3];
        double c0_y = *&data_y[3];
        *&data_x[3] = (c0_x + *&data_x[7]);
        *&data_y[3] = (c0_y + *&data_y[7]);
        *&data_x[7] = (c0_x - *&data_x[7]);
        *&data_y[7] = (c0_y - *&data_y[7]);
      };
      tmp_1 = data_x[5];
      data_x[5] = (0.70710678118654752440f *
                   (data_x[5] * exp_1_8_x - data_y[5] * exp_1_8_y));
      data_y[5] = (0.70710678118654752440f *
                   (tmp_1 * exp_1_8_y + data_y[5] * exp_1_8_x));
      tmp_1 = data_x[6];
      data_x[6] = (data_x[6] * exp_1_4_x - data_y[6] * exp_1_4_y);
      data_y[6] = (tmp_1 * exp_1_4_y + data_y[6] * exp_1_4_x);
      tmp_1 = data_x[7];
      data_x[7] = (0.70710678118654752440f *
                   (data_x[7] * exp_3_8_x - data_y[7] * exp_3_8_y));
      data_y[7] = (0.70710678118654752440f *
                   (tmp_1 * exp_3_8_y + data_y[7] * exp_3_8_x));
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[2]);
          *&data_y[0] = (c0_y + *&data_y[2]);
          *&data_x[2] = (c0_x - *&data_x[2]);
          *&data_y[2] = (c0_y - *&data_y[2]);
        };
        {
          double c0_x = *&data_x[1];
          double c0_y = *&data_y[1];
          *&data_x[1] = (c0_x + *&data_x[3]);
          *&data_y[1] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
        tmp = *&data_x[3];
        *&data_x[3] = *&data_x[3] * exp_1_44_x - *&data_y[3] * exp_1_44_y;
        *&data_y[3] = tmp * exp_1_44_y - *&data_y[3] * exp_1_44_x;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[1]);
          *&data_y[0] = (c0_y + *&data_y[1]);
          *&data_x[1] = (c0_x - *&data_x[1]);
          *&data_y[1] = (c0_y - *&data_y[1]);
        };
        {
          double c0_x = *&data_x[2];
          double c0_y = *&data_y[2];
          *&data_x[2] = (c0_x + *&data_x[3]);
          *&data_y[2] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
      };
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[6]);
          *&data_y[4] = (c0_y + *&data_y[6]);
          *&data_x[6] = (c0_x - *&data_x[6]);
          *&data_y[6] = (c0_y - *&data_y[6]);
        };
        {
          double c0_x = *&data_x[5];
          double c0_y = *&data_y[5];
          *&data_x[5] = (c0_x + *&data_x[7]);
          *&data_y[5] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
        tmp = *&data_x[7];
        *&data_x[7] = *&data_x[7] * exp_1_44_x - *&data_y[7] * exp_1_44_y;
        *&data_y[7] = tmp * exp_1_44_y - *&data_y[7] * exp_1_44_x;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[5]);
          *&data_y[4] = (c0_y + *&data_y[5]);
          *&data_x[5] = (c0_x - *&data_x[5]);
          *&data_y[5] = (c0_y - *&data_y[5]);
        };
        {
          double c0_x = *&data_x[6];
          double c0_y = *&data_y[6];
          *&data_x[6] = (c0_x + *&data_x[7]);
          *&data_y[6] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
      };
    };
    twiddles8(data_x, data_y, tid, 512);
    DATA_x[tid * 8] = data_x[0];
    DATA_x[tid * 8 + 1] = data_x[1];
    DATA_x[tid * 8 + 2] = data_x[2];
    DATA_x[tid * 8 + 3] = data_x[3];
    DATA_x[tid * 8 + 4] = data_x[4];
    DATA_x[tid * 8 + 5] = data_x[5];
    DATA_x[tid * 8 + 6] = data_x[6];
    DATA_x[tid * 8 + 7] = data_x[7];
    DATA_y[tid * 8] = data_y[0];
    DATA_y[tid * 8 + 1] = data_y[1];
    DATA_y[tid * 8 + 2] = data_y[2];
    DATA_y[tid * 8 + 3] = data_y[3];
    DATA_y[tid * 8 + 4] = data_y[4];
    DATA_y[tid * 8 + 5] = data_y[5];
    DATA_y[tid * 8 + 6] = data_y[6];
    DATA_y[tid * 8 + 7] = data_y[7];
  }
  int sx, offset;
  sx = 66;
loop2:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = hi * 8 + lo;
    smem[0 * sx + offset] = DATA_x[tid * 8 + 0];
    smem[4 * sx + offset] = DATA_x[tid * 8 + 1];
    smem[1 * sx + offset] = DATA_x[tid * 8 + 4];
    smem[5 * sx + offset] = DATA_x[tid * 8 + 5];
    smem[2 * sx + offset] = DATA_x[tid * 8 + 2];
    smem[6 * sx + offset] = DATA_x[tid * 8 + 3];
    smem[3 * sx + offset] = DATA_x[tid * 8 + 6];
    smem[7 * sx + offset] = DATA_x[tid * 8 + 7];
  }
  sx = 8;
loop3:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = lo * 66 + hi;
    DATA_x[tid * 8 + 0] = smem[0 * sx + offset];
    DATA_x[tid * 8 + 4] = smem[4 * sx + offset];
    DATA_x[tid * 8 + 1] = smem[1 * sx + offset];
    DATA_x[tid * 8 + 5] = smem[5 * sx + offset];
    DATA_x[tid * 8 + 2] = smem[2 * sx + offset];
    DATA_x[tid * 8 + 6] = smem[6 * sx + offset];
    DATA_x[tid * 8 + 3] = smem[3 * sx + offset];
    DATA_x[tid * 8 + 7] = smem[7 * sx + offset];
  }
  sx = 66;
loop4:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = hi * 8 + lo;
    smem[0 * sx + offset] = DATA_y[tid * 8 + 0];
    smem[4 * sx + offset] = DATA_y[tid * 8 + 1];
    smem[1 * sx + offset] = DATA_y[tid * 8 + 4];
    smem[5 * sx + offset] = DATA_y[tid * 8 + 5];
    smem[2 * sx + offset] = DATA_y[tid * 8 + 2];
    smem[6 * sx + offset] = DATA_y[tid * 8 + 3];
    smem[3 * sx + offset] = DATA_y[tid * 8 + 6];
    smem[7 * sx + offset] = DATA_y[tid * 8 + 7];
  }
loop5:
  for (tid = 0; tid < 64; tid++) {
    data_y[0] = DATA_y[tid * 8 + 0];
    data_y[1] = DATA_y[tid * 8 + 1];
    data_y[2] = DATA_y[tid * 8 + 2];
    data_y[3] = DATA_y[tid * 8 + 3];
    data_y[4] = DATA_y[tid * 8 + 4];
    data_y[5] = DATA_y[tid * 8 + 5];
    data_y[6] = DATA_y[tid * 8 + 6];
    data_y[7] = DATA_y[tid * 8 + 7];
    hi = tid >> 3;
    lo = tid & 7;
    loady8(data_y, smem, lo * 66 + hi, 8);
    DATA_y[tid * 8] = data_y[0];
    DATA_y[tid * 8 + 1] = data_y[1];
    DATA_y[tid * 8 + 2] = data_y[2];
    DATA_y[tid * 8 + 3] = data_y[3];
    DATA_y[tid * 8 + 4] = data_y[4];
    DATA_y[tid * 8 + 5] = data_y[5];
    DATA_y[tid * 8 + 6] = data_y[6];
    DATA_y[tid * 8 + 7] = data_y[7];
  }
loop6:
  for (tid = 0; tid < 64; tid++) {
    data_x[0] = DATA_x[tid * 8 + 0];
    data_x[1] = DATA_x[tid * 8 + 1];
    data_x[2] = DATA_x[tid * 8 + 2];
    data_x[3] = DATA_x[tid * 8 + 3];
    data_x[4] = DATA_x[tid * 8 + 4];
    data_x[5] = DATA_x[tid * 8 + 5];
    data_x[6] = DATA_x[tid * 8 + 6];
    data_x[7] = DATA_x[tid * 8 + 7];
    data_y[0] = DATA_y[tid * 8 + 0];
    data_y[1] = DATA_y[tid * 8 + 1];
    data_y[2] = DATA_y[tid * 8 + 2];
    data_y[3] = DATA_y[tid * 8 + 3];
    data_y[4] = DATA_y[tid * 8 + 4];
    data_y[5] = DATA_y[tid * 8 + 5];
    data_y[6] = DATA_y[tid * 8 + 6];
    data_y[7] = DATA_y[tid * 8 + 7];
    {
      double exp_1_8_x, exp_1_4_x, exp_3_8_x;
      double exp_1_8_y, exp_1_4_y, exp_3_8_y;
      double tmp_1;
      exp_1_8_x = 1;
      exp_1_8_y = -1;
      exp_1_4_x = 0;
      exp_1_4_y = -1;
      exp_3_8_x = -1;
      exp_3_8_y = -1;
      {
        double c0_x = *&data_x[0];
        double c0_y = *&data_y[0];
        *&data_x[0] = (c0_x + *&data_x[4]);
        *&data_y[0] = (c0_y + *&data_y[4]);
        *&data_x[4] = (c0_x - *&data_x[4]);
        *&data_y[4] = (c0_y - *&data_y[4]);
      };
      {
        double c0_x = *&data_x[1];
        double c0_y = *&data_y[1];
        *&data_x[1] = (c0_x + *&data_x[5]);
        *&data_y[1] = (c0_y + *&data_y[5]);
        *&data_x[5] = (c0_x - *&data_x[5]);
        *&data_y[5] = (c0_y - *&data_y[5]);
      };
      {
        double c0_x = *&data_x[2];
        double c0_y = *&data_y[2];
        *&data_x[2] = (c0_x + *&data_x[6]);
        *&data_y[2] = (c0_y + *&data_y[6]);
        *&data_x[6] = (c0_x - *&data_x[6]);
        *&data_y[6] = (c0_y - *&data_y[6]);
      };
      {
        double c0_x = *&data_x[3];
        double c0_y = *&data_y[3];
        *&data_x[3] = (c0_x + *&data_x[7]);
        *&data_y[3] = (c0_y + *&data_y[7]);
        *&data_x[7] = (c0_x - *&data_x[7]);
        *&data_y[7] = (c0_y - *&data_y[7]);
      };
      tmp_1 = data_x[5];
      data_x[5] = (0.70710678118654752440f *
                   (data_x[5] * exp_1_8_x - data_y[5] * exp_1_8_y));
      data_y[5] = (0.70710678118654752440f *
                   (tmp_1 * exp_1_8_y + data_y[5] * exp_1_8_x));
      tmp_1 = data_x[6];
      data_x[6] = (data_x[6] * exp_1_4_x - data_y[6] * exp_1_4_y);
      data_y[6] = (tmp_1 * exp_1_4_y + data_y[6] * exp_1_4_x);
      tmp_1 = data_x[7];
      data_x[7] = (0.70710678118654752440f *
                   (data_x[7] * exp_3_8_x - data_y[7] * exp_3_8_y));
      data_y[7] = (0.70710678118654752440f *
                   (tmp_1 * exp_3_8_y + data_y[7] * exp_3_8_x));
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[2]);
          *&data_y[0] = (c0_y + *&data_y[2]);
          *&data_x[2] = (c0_x - *&data_x[2]);
          *&data_y[2] = (c0_y - *&data_y[2]);
        };
        {
          double c0_x = *&data_x[1];
          double c0_y = *&data_y[1];
          *&data_x[1] = (c0_x + *&data_x[3]);
          *&data_y[1] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
        tmp = *&data_x[3];
        *&data_x[3] = *&data_x[3] * exp_1_44_x - *&data_y[3] * exp_1_44_y;
        *&data_y[3] = tmp * exp_1_44_y - *&data_y[3] * exp_1_44_x;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[1]);
          *&data_y[0] = (c0_y + *&data_y[1]);
          *&data_x[1] = (c0_x - *&data_x[1]);
          *&data_y[1] = (c0_y - *&data_y[1]);
        };
        {
          double c0_x = *&data_x[2];
          double c0_y = *&data_y[2];
          *&data_x[2] = (c0_x + *&data_x[3]);
          *&data_y[2] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
      };
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[6]);
          *&data_y[4] = (c0_y + *&data_y[6]);
          *&data_x[6] = (c0_x - *&data_x[6]);
          *&data_y[6] = (c0_y - *&data_y[6]);
        };
        {
          double c0_x = *&data_x[5];
          double c0_y = *&data_y[5];
          *&data_x[5] = (c0_x + *&data_x[7]);
          *&data_y[5] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
        tmp = *&data_x[7];
        *&data_x[7] = *&data_x[7] * exp_1_44_x - *&data_y[7] * exp_1_44_y;
        *&data_y[7] = tmp * exp_1_44_y - *&data_y[7] * exp_1_44_x;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[5]);
          *&data_y[4] = (c0_y + *&data_y[5]);
          *&data_x[5] = (c0_x - *&data_x[5]);
          *&data_y[5] = (c0_y - *&data_y[5]);
        };
        {
          double c0_x = *&data_x[6];
          double c0_y = *&data_y[6];
          *&data_x[6] = (c0_x + *&data_x[7]);
          *&data_y[6] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
      };
    };
    hi = tid >> 3;
    twiddles8(data_x, data_y, hi, 64);
    DATA_x[tid * 8] = data_x[0];
    DATA_x[tid * 8 + 1] = data_x[1];
    DATA_x[tid * 8 + 2] = data_x[2];
    DATA_x[tid * 8 + 3] = data_x[3];
    DATA_x[tid * 8 + 4] = data_x[4];
    DATA_x[tid * 8 + 5] = data_x[5];
    DATA_x[tid * 8 + 6] = data_x[6];
    DATA_x[tid * 8 + 7] = data_x[7];
    DATA_y[tid * 8] = data_y[0];
    DATA_y[tid * 8 + 1] = data_y[1];
    DATA_y[tid * 8 + 2] = data_y[2];
    DATA_y[tid * 8 + 3] = data_y[3];
    DATA_y[tid * 8 + 4] = data_y[4];
    DATA_y[tid * 8 + 5] = data_y[5];
    DATA_y[tid * 8 + 6] = data_y[6];
    DATA_y[tid * 8 + 7] = data_y[7];
  }
  sx = 72;
loop7:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = hi * 8 + lo;
    smem[0 * sx + offset] = DATA_x[tid * 8 + 0];
    smem[4 * sx + offset] = DATA_x[tid * 8 + 1];
    smem[1 * sx + offset] = DATA_x[tid * 8 + 4];
    smem[5 * sx + offset] = DATA_x[tid * 8 + 5];
    smem[2 * sx + offset] = DATA_x[tid * 8 + 2];
    smem[6 * sx + offset] = DATA_x[tid * 8 + 3];
    smem[3 * sx + offset] = DATA_x[tid * 8 + 6];
    smem[7 * sx + offset] = DATA_x[tid * 8 + 7];
  }
  sx = 8;
loop8:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = hi * 72 + lo;
    DATA_x[tid * 8 + 0] = smem[0 * sx + offset];
    DATA_x[tid * 8 + 4] = smem[4 * sx + offset];
    DATA_x[tid * 8 + 1] = smem[1 * sx + offset];
    DATA_x[tid * 8 + 5] = smem[5 * sx + offset];
    DATA_x[tid * 8 + 2] = smem[2 * sx + offset];
    DATA_x[tid * 8 + 6] = smem[6 * sx + offset];
    DATA_x[tid * 8 + 3] = smem[3 * sx + offset];
    DATA_x[tid * 8 + 7] = smem[7 * sx + offset];
  }
  sx = 72;
loop9:
  for (tid = 0; tid < 64; tid++) {
    hi = tid >> 3;
    lo = tid & 7;
    offset = hi * 8 + lo;
    smem[0 * sx + offset] = DATA_y[tid * 8 + 0];
    smem[4 * sx + offset] = DATA_y[tid * 8 + 1];
    smem[1 * sx + offset] = DATA_y[tid * 8 + 4];
    smem[5 * sx + offset] = DATA_y[tid * 8 + 5];
    smem[2 * sx + offset] = DATA_y[tid * 8 + 2];
    smem[6 * sx + offset] = DATA_y[tid * 8 + 3];
    smem[3 * sx + offset] = DATA_y[tid * 8 + 6];
    smem[7 * sx + offset] = DATA_y[tid * 8 + 7];
  }
loop10:
  for (tid = 0; tid < 64; tid++) {
    data_y[0] = DATA_y[tid * 8 + 0];
    data_y[1] = DATA_y[tid * 8 + 1];
    data_y[2] = DATA_y[tid * 8 + 2];
    data_y[3] = DATA_y[tid * 8 + 3];
    data_y[4] = DATA_y[tid * 8 + 4];
    data_y[5] = DATA_y[tid * 8 + 5];
    data_y[6] = DATA_y[tid * 8 + 6];
    data_y[7] = DATA_y[tid * 8 + 7];
    hi = tid >> 3;
    lo = tid & 7;
    loady8(data_y, smem, hi * 72 + lo, 8);
    DATA_y[tid * 8 + 0] = data_y[0];
    DATA_y[tid * 8 + 1] = data_y[1];
    DATA_y[tid * 8 + 2] = data_y[2];
    DATA_y[tid * 8 + 3] = data_y[3];
    DATA_y[tid * 8 + 4] = data_y[4];
    DATA_y[tid * 8 + 5] = data_y[5];
    DATA_y[tid * 8 + 6] = data_y[6];
    DATA_y[tid * 8 + 7] = data_y[7];
  }
loop11:
  for (tid = 0; tid < 64; tid++) {
    data_y[0] = DATA_y[tid * 8];
    data_y[1] = DATA_y[tid * 8 + 1];
    data_y[2] = DATA_y[tid * 8 + 2];
    data_y[3] = DATA_y[tid * 8 + 3];
    data_y[4] = DATA_y[tid * 8 + 4];
    data_y[5] = DATA_y[tid * 8 + 5];
    data_y[6] = DATA_y[tid * 8 + 6];
    data_y[7] = DATA_y[tid * 8 + 7];
    data_x[0] = DATA_x[tid * 8];
    data_x[1] = DATA_x[tid * 8 + 1];
    data_x[2] = DATA_x[tid * 8 + 2];
    data_x[3] = DATA_x[tid * 8 + 3];
    data_x[4] = DATA_x[tid * 8 + 4];
    data_x[5] = DATA_x[tid * 8 + 5];
    data_x[6] = DATA_x[tid * 8 + 6];
    data_x[7] = DATA_x[tid * 8 + 7];
    {
      double exp_1_8_x, exp_1_4_x, exp_3_8_x;
      double exp_1_8_y, exp_1_4_y, exp_3_8_y;
      double tmp_1;
      exp_1_8_x = 1;
      exp_1_8_y = -1;
      exp_1_4_x = 0;
      exp_1_4_y = -1;
      exp_3_8_x = -1;
      exp_3_8_y = -1;
      {
        double c0_x = *&data_x[0];
        double c0_y = *&data_y[0];
        *&data_x[0] = (c0_x + *&data_x[4]);
        *&data_y[0] = (c0_y + *&data_y[4]);
        *&data_x[4] = (c0_x - *&data_x[4]);
        *&data_y[4] = (c0_y - *&data_y[4]);
      };
      {
        double c0_x = *&data_x[1];
        double c0_y = *&data_y[1];
        *&data_x[1] = (c0_x + *&data_x[5]);
        *&data_y[1] = (c0_y + *&data_y[5]);
        *&data_x[5] = (c0_x - *&data_x[5]);
        *&data_y[5] = (c0_y - *&data_y[5]);
      };
      {
        double c0_x = *&data_x[2];
        double c0_y = *&data_y[2];
        *&data_x[2] = (c0_x + *&data_x[6]);
        *&data_y[2] = (c0_y + *&data_y[6]);
        *&data_x[6] = (c0_x - *&data_x[6]);
        *&data_y[6] = (c0_y - *&data_y[6]);
      };
      {
        double c0_x = *&data_x[3];
        double c0_y = *&data_y[3];
        *&data_x[3] = (c0_x + *&data_x[7]);
        *&data_y[3] = (c0_y + *&data_y[7]);
        *&data_x[7] = (c0_x - *&data_x[7]);
        *&data_y[7] = (c0_y - *&data_y[7]);
      };
      tmp_1 = data_x[5];
      data_x[5] = (0.70710678118654752440f *
                   (data_x[5] * exp_1_8_x - data_y[5] * exp_1_8_y));
      data_y[5] = (0.70710678118654752440f *
                   (tmp_1 * exp_1_8_y + data_y[5] * exp_1_8_x));
      tmp_1 = data_x[6];
      data_x[6] = (data_x[6] * exp_1_4_x - data_y[6] * exp_1_4_y);
      data_y[6] = (tmp_1 * exp_1_4_y + data_y[6] * exp_1_4_x);
      tmp_1 = data_x[7];
      data_x[7] = (0.70710678118654752440f *
                   (data_x[7] * exp_3_8_x - data_y[7] * exp_3_8_y));
      data_y[7] = (0.70710678118654752440f *
                   (tmp_1 * exp_3_8_y + data_y[7] * exp_3_8_x));
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[2]);
          *&data_y[0] = (c0_y + *&data_y[2]);
          *&data_x[2] = (c0_x - *&data_x[2]);
          *&data_y[2] = (c0_y - *&data_y[2]);
        };
        {
          double c0_x = *&data_x[1];
          double c0_y = *&data_y[1];
          *&data_x[1] = (c0_x + *&data_x[3]);
          *&data_y[1] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
        tmp = *&data_x[3];
        *&data_x[3] = *&data_x[3] * exp_1_44_x - *&data_y[3] * exp_1_44_y;
        *&data_y[3] = tmp * exp_1_44_y - *&data_y[3] * exp_1_44_x;
        {
          double c0_x = *&data_x[0];
          double c0_y = *&data_y[0];
          *&data_x[0] = (c0_x + *&data_x[1]);
          *&data_y[0] = (c0_y + *&data_y[1]);
          *&data_x[1] = (c0_x - *&data_x[1]);
          *&data_y[1] = (c0_y - *&data_y[1]);
        };
        {
          double c0_x = *&data_x[2];
          double c0_y = *&data_y[2];
          *&data_x[2] = (c0_x + *&data_x[3]);
          *&data_y[2] = (c0_y + *&data_y[3]);
          *&data_x[3] = (c0_x - *&data_x[3]);
          *&data_y[3] = (c0_y - *&data_y[3]);
        };
      };
      {
        double exp_1_44_x;
        double exp_1_44_y;
        double tmp;
        exp_1_44_x = 0.0;
        exp_1_44_y = -1.0;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[6]);
          *&data_y[4] = (c0_y + *&data_y[6]);
          *&data_x[6] = (c0_x - *&data_x[6]);
          *&data_y[6] = (c0_y - *&data_y[6]);
        };
        {
          double c0_x = *&data_x[5];
          double c0_y = *&data_y[5];
          *&data_x[5] = (c0_x + *&data_x[7]);
          *&data_y[5] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
        tmp = *&data_x[7];
        *&data_x[7] = *&data_x[7] * exp_1_44_x - *&data_y[7] * exp_1_44_y;
        *&data_y[7] = tmp * exp_1_44_y - *&data_y[7] * exp_1_44_x;
        {
          double c0_x = *&data_x[4];
          double c0_y = *&data_y[4];
          *&data_x[4] = (c0_x + *&data_x[5]);
          *&data_y[4] = (c0_y + *&data_y[5]);
          *&data_x[5] = (c0_x - *&data_x[5]);
          *&data_y[5] = (c0_y - *&data_y[5]);
        };
        {
          double c0_x = *&data_x[6];
          double c0_y = *&data_y[6];
          *&data_x[6] = (c0_x + *&data_x[7]);
          *&data_y[6] = (c0_y + *&data_y[7]);
          *&data_x[7] = (c0_x - *&data_x[7]);
          *&data_y[7] = (c0_y - *&data_y[7]);
        };
      };
    };
    work_x[0 * stride + tid] = data_x[reversed[0]];
    work_x[1 * stride + tid] = data_x[reversed[1]];
    work_x[2 * stride + tid] = data_x[reversed[2]];
    work_x[3 * stride + tid] = data_x[reversed[3]];
    work_x[4 * stride + tid] = data_x[reversed[4]];
    work_x[5 * stride + tid] = data_x[reversed[5]];
    work_x[6 * stride + tid] = data_x[reversed[6]];
    work_x[7 * stride + tid] = data_x[reversed[7]];
    work_y[0 * stride + tid] = data_y[reversed[0]];
    work_y[1 * stride + tid] = data_y[reversed[1]];
    work_y[2 * stride + tid] = data_y[reversed[2]];
    work_y[3 * stride + tid] = data_y[reversed[3]];
    work_y[4 * stride + tid] = data_y[reversed[4]];
    work_y[5 * stride + tid] = data_y[reversed[5]];
    work_y[6 * stride + tid] = data_y[reversed[6]];
    work_y[7 * stride + tid] = data_y[reversed[7]];
  }
}


x86 assembly (clang, -O0):
<fft1D_512>:
push   %rbp
mov    %rsp,%rbp
sub    $0x3640,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    0x3ee6(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0x3ee3(%rip),%rax
mov    %rax,-0x38(%rbp)
mov    0x3ee0(%rip),%rax
mov    %rax,-0x30(%rbp)
mov    0x3edd(%rip),%rax
mov    %rax,-0x28(%rbp)
movl   $0x40,-0x20(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    1eaa <fft1D_512+0xd8a>
mov    -0x8(%rbp),%rax
imul   $0x0,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2080(%rbp)
ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x0,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2078(%rbp)
ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x1,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2070(%rbp)
ff
mov    -0x8(%rbp),%rax
imul   $0x3,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2068(%rbp)
ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x2,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2060(%rbp)
ff
mov    -0x8(%rbp),%rax
imul   $0x5,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2058(%rbp)
ff
mov    -0x8(%rbp),%rax
imul   $0x6,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2050(%rbp)
ff
mov    -0x8(%rbp),%rax
imul   $0x7,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
mov    -0x10(%rbp),%rax
imul   $0x0,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x20c0(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x0,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x20b8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x1,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x20b0(%rbp)
ff
mov    -0x10(%rbp),%rax
imul   $0x3,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x20a8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x2,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x20a0(%rbp)
ff
mov    -0x10(%rbp),%rax
imul   $0x5,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2098(%rbp)
ff
mov    -0x10(%rbp),%rax
imul   $0x6,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2090(%rbp)
ff
mov    -0x10(%rbp),%rax
imul   $0x7,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  0x3cd5(%rip),%xmm0
movsd  %xmm0,-0x32c8(%rbp)
ff
movsd  0x3cb5(%rip),%xmm0
movsd  %xmm0,-0x32e0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x32d0(%rbp)
ff
movsd  0x3c9a(%rip),%xmm0
movsd  %xmm0,-0x32e8(%rbp)
ff
movsd  0x3c8a(%rip),%xmm0
movsd  %xmm0,-0x32d8(%rbp)
ff
movsd  0x3c7a(%rip),%xmm0
movsd  %xmm0,-0x32f0(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3300(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3308(%rbp)
ff
movsd  -0x3300(%rbp),%xmm0
ff
addsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3308(%rbp),%xmm0
ff
addsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3300(%rbp),%xmm0
ff
subsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3308(%rbp),%xmm0
ff
subsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x3310(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3318(%rbp)
ff
movsd  -0x3310(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x3318(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x3310(%rbp),%xmm0
ff
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3318(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x3320(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3328(%rbp)
ff
movsd  -0x3320(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3328(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x3320(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3328(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x3330(%rbp)
ff
movsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3338(%rbp)
ff
movsd  -0x3330(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3338(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x3330(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3338(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x32f8(%rbp)
ff
movsd  -0x2058(%rbp),%xmm1
ff
movsd  -0x32c8(%rbp),%xmm2
ff
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x32e0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x3a23(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x32f8(%rbp),%xmm1
ff
movsd  -0x32e0(%rbp),%xmm2
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x32c8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x39e7(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x32f8(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  -0x32d0(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x32e8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x32f8(%rbp),%xmm0
ff
movsd  -0x32e8(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x32d0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x32f8(%rbp)
ff
movsd  -0x2048(%rbp),%xmm1
ff
movsd  -0x32d8(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x32f0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x38fd(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x32f8(%rbp),%xmm1
ff
movsd  -0x32f0(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x32d8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x38c1(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3340(%rbp)
ff
movsd  0x389a(%rip),%xmm0
movsd  %xmm0,-0x3348(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3358(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3360(%rbp)
ff
movsd  -0x3358(%rbp),%xmm0
ff
addsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3360(%rbp),%xmm0
ff
addsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3358(%rbp),%xmm0
ff
subsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3360(%rbp),%xmm0
ff
subsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x3368(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3370(%rbp)
ff
movsd  -0x3368(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x3370(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x3368(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3370(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x3350(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  -0x3340(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x3348(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3350(%rbp),%xmm0
ff
movsd  -0x3348(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x3340(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3378(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3380(%rbp)
ff
movsd  -0x3378(%rbp),%xmm0
ff
addsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3380(%rbp),%xmm0
ff
addsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3378(%rbp),%xmm0
ff
subsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x3380(%rbp),%xmm0
ff
subsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x3388(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3390(%rbp)
ff
movsd  -0x3388(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3390(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x3388(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3390(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3398(%rbp)
ff
movsd  0x35e1(%rip),%xmm0
movsd  %xmm0,-0x33a0(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x33b0(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x33b8(%rbp)
ff
movsd  -0x33b0(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x33b8(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x33b0(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x33b8(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x33c0(%rbp)
ff
movsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x33c8(%rbp)
ff
movsd  -0x33c0(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x33c8(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x33c0(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x33c8(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x33a8(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  -0x3398(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
ff
mulsd  -0x33a0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x33a8(%rbp),%xmm0
ff
movsd  -0x33a0(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
ff
mulsd  -0x3398(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x33d0(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x33d8(%rbp)
ff
movsd  -0x33d0(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x33d8(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x33d0(%rbp),%xmm0
ff
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x33d8(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x33e0(%rbp)
ff
movsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x33e8(%rbp)
ff
movsd  -0x33e0(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x33e8(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x33e0(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x33e8(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
lea    -0x2080(%rbp),%rdi
lea    -0x20c0(%rbp),%rsi
mov    -0x14(%rbp),%edx
mov    $0x200,%ecx
mov    $0x0,%al
call   1040 <twiddles8@plt>
movsd  -0x2080(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2078(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2070(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2068(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2060(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2058(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2050(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2048(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x20c0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2098(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2090(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2088(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    116d <fft1D_512+0x4d>
movl   $0x42,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    205a <fft1D_512+0xf3a>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x3,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1ebb <fft1D_512+0xd9b>
movl   $0x8,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    2208 <fft1D_512+0x10e8>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
imul   $0x42,-0x1c(%rbp),%eax
add    -0x18(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    206b <fft1D_512+0xf4b>
movl   $0x42,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    23b8 <fft1D_512+0x1298>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x3,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    2219 <fft1D_512+0x10f9>
jmp    23bd <fft1D_512+0x129d>
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    25cc <fft1D_512+0x14ac>
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20c0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2098(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2090(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2088(%rbp)
ff
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
lea    -0x20c0(%rbp),%rdi
lea    -0x32c0(%rbp),%rsi
imul   $0x42,-0x1c(%rbp),%edx
add    -0x18(%rbp),%edx
mov    $0x8,%ecx
mov    $0x0,%al
call   1030 <loady8@plt>
movsd  -0x20c0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2098(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2090(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2088(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    23c4 <fft1D_512+0x12a4>
jmp    25d1 <fft1D_512+0x14b1>
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    3322 <fft1D_512+0x2202>
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2080(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2078(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2070(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2068(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2060(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2058(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2050(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2048(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20c0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2098(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2090(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  0x2866(%rip),%xmm0
movsd  %xmm0,-0x33f8(%rbp)
ff
movsd  0x2846(%rip),%xmm0
movsd  %xmm0,-0x3410(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3400(%rbp)
ff
movsd  0x282b(%rip),%xmm0
movsd  %xmm0,-0x3418(%rbp)
ff
movsd  0x281b(%rip),%xmm0
movsd  %xmm0,-0x3408(%rbp)
ff
movsd  0x280b(%rip),%xmm0
movsd  %xmm0,-0x3420(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3430(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3438(%rbp)
ff
movsd  -0x3430(%rbp),%xmm0
ff
addsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3438(%rbp),%xmm0
ff
addsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3430(%rbp),%xmm0
ff
subsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3438(%rbp),%xmm0
ff
subsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x3440(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3448(%rbp)
ff
movsd  -0x3440(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x3448(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x3440(%rbp),%xmm0
ff
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3448(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x3450(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3458(%rbp)
ff
movsd  -0x3450(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3458(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x3450(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3458(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x3460(%rbp)
ff
movsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3468(%rbp)
ff
movsd  -0x3460(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3468(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x3460(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3468(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x3428(%rbp)
ff
movsd  -0x2058(%rbp),%xmm1
ff
movsd  -0x33f8(%rbp),%xmm2
ff
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x3410(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x25b4(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3428(%rbp),%xmm1
ff
movsd  -0x3410(%rbp),%xmm2
ff
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x33f8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x2578(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x3428(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  -0x3400(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x3418(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3428(%rbp),%xmm0
ff
movsd  -0x3418(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x3400(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x3428(%rbp)
ff
movsd  -0x2048(%rbp),%xmm1
ff
movsd  -0x3408(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x3420(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x248e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3428(%rbp),%xmm1
ff
movsd  -0x3420(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x3408(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x2452(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3470(%rbp)
ff
movsd  0x242b(%rip),%xmm0
movsd  %xmm0,-0x3478(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3488(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3490(%rbp)
ff
movsd  -0x3488(%rbp),%xmm0
ff
addsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3490(%rbp),%xmm0
ff
addsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3488(%rbp),%xmm0
ff
subsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3490(%rbp),%xmm0
ff
subsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x3498(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x34a0(%rbp)
ff
movsd  -0x3498(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x34a0(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x3498(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x34a0(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x3480(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  -0x3470(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x3478(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3480(%rbp),%xmm0
ff
movsd  -0x3478(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x3470(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x34a8(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x34b0(%rbp)
ff
movsd  -0x34a8(%rbp),%xmm0
ff
addsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x34b0(%rbp),%xmm0
ff
addsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x34a8(%rbp),%xmm0
ff
subsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x34b0(%rbp),%xmm0
ff
subsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x34b8(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x34c0(%rbp)
ff
movsd  -0x34b8(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x34c0(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x34b8(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x34c0(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x34c8(%rbp)
ff
movsd  0x2172(%rip),%xmm0
movsd  %xmm0,-0x34d0(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x34e0(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x34e8(%rbp)
ff
movsd  -0x34e0(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x34e8(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x34e0(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x34e8(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x34f0(%rbp)
ff
movsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x34f8(%rbp)
ff
movsd  -0x34f0(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x34f8(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x34f0(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x34f8(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x34d8(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  -0x34c8(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
ff
mulsd  -0x34d0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x34d8(%rbp),%xmm0
ff
movsd  -0x34d0(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
mulsd  -0x34c8(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x3500(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3508(%rbp)
ff
movsd  -0x3500(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3508(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x3500(%rbp),%xmm0
ff
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3508(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x3510(%rbp)
ff
movsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x3518(%rbp)
ff
movsd  -0x3510(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3518(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x3510(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3518(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
lea    -0x2080(%rbp),%rdi
lea    -0x20c0(%rbp),%rsi
mov    -0x18(%rbp),%edx
mov    $0x40,%ecx
mov    $0x0,%al
call   1040 <twiddles8@plt>
movsd  -0x2080(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2078(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2070(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2068(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2060(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2058(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2050(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x2048(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
movsd  -0x20c0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2098(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2090(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2088(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    25d8 <fft1D_512+0x14b8>
movl   $0x48,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    34d2 <fft1D_512+0x23b2>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x3,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    3333 <fft1D_512+0x2213>
movl   $0x8,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    3680 <fft1D_512+0x2560>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
imul   $0x48,-0x18(%rbp),%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  -0x32c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x1040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    34e3 <fft1D_512+0x23c3>
movl   $0x48,-0x33ec(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    3830 <fft1D_512+0x2710>
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
shl    $0x3,%eax
add    -0x1c(%rbp),%eax
mov    %eax,-0x33f0(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x0,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x2,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x0,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x5,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
mov    -0x33ec(%rbp),%eax
shl    $0x1,%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x6,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x3,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
imul   $0x7,-0x33ec(%rbp),%eax
add    -0x33f0(%rbp),%eax
cltq
movsd  %xmm0,-0x32c0(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    3691 <fft1D_512+0x2571>
jmp    3835 <fft1D_512+0x2715>
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    3a47 <fft1D_512+0x2927>
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20c0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2098(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
movsd  %xmm0,-0x2090(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2088(%rbp)
ff
mov    -0x14(%rbp),%eax
sar    $0x3,%eax
mov    %eax,-0x18(%rbp)
mov    -0x14(%rbp),%eax
and    $0x7,%eax
mov    %eax,-0x1c(%rbp)
lea    -0x20c0(%rbp),%rdi
lea    -0x32c0(%rbp),%rsi
imul   $0x48,-0x18(%rbp),%edx
add    -0x1c(%rbp),%edx
mov    $0x8,%ecx
mov    $0x0,%al
call   1030 <loady8@plt>
movsd  -0x20c0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x0,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20b0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a8(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x20a0(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2098(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2090(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
movsd  -0x2088(%rbp),%xmm0
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  %xmm0,-0x2040(%rbp,%rax,8)
ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    383c <fft1D_512+0x271c>
jmp    3a4c <fft1D_512+0x292c>
movl   $0x0,-0x14(%rbp)
cmpl   $0x40,-0x14(%rbp)
jge    47c3 <fft1D_512+0x36a3>
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20c0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20b0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a8(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x20a0(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2098(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2090(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x2040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2088(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2080(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x1,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2078(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x2,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2070(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x3,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2068(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x4,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2060(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x5,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2058(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x6,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2050(%rbp)
ff
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
add    $0x7,%eax
cltq
movsd  -0x1040(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  0x13f1(%rip),%xmm0
movsd  %xmm0,-0x3520(%rbp)
ff
movsd  0x13d1(%rip),%xmm0
movsd  %xmm0,-0x3538(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3528(%rbp)
ff
movsd  0x13b6(%rip),%xmm0
movsd  %xmm0,-0x3540(%rbp)
ff
movsd  0x13a6(%rip),%xmm0
movsd  %xmm0,-0x3530(%rbp)
ff
movsd  0x1396(%rip),%xmm0
movsd  %xmm0,-0x3548(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x3558(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3560(%rbp)
ff
movsd  -0x3558(%rbp),%xmm0
ff
addsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x3560(%rbp),%xmm0
ff
addsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x3558(%rbp),%xmm0
ff
subsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3560(%rbp),%xmm0
ff
subsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x3568(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3570(%rbp)
ff
movsd  -0x3568(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x3570(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x3568(%rbp),%xmm0
ff
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3570(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x3578(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3580(%rbp)
ff
movsd  -0x3578(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x3580(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x3578(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3580(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x3588(%rbp)
ff
movsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x3590(%rbp)
ff
movsd  -0x3588(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x3590(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x3588(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3590(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x3550(%rbp)
ff
movsd  -0x2058(%rbp),%xmm1
ff
movsd  -0x3520(%rbp),%xmm2
ff
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x3538(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x113f(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3550(%rbp),%xmm1
ff
movsd  -0x3538(%rbp),%xmm2
ff
movsd  -0x2098(%rbp),%xmm0
ff
mulsd  -0x3520(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1103(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x3550(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  -0x3528(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x3540(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3550(%rbp),%xmm0
ff
movsd  -0x3540(%rbp),%xmm2
ff
movsd  -0x2090(%rbp),%xmm1
ff
mulsd  -0x3528(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x3550(%rbp)
ff
movsd  -0x2048(%rbp),%xmm1
ff
movsd  -0x3530(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x3548(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1019(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3550(%rbp),%xmm1
movsd  -0x3548(%rbp),%xmm2
movsd  -0x2088(%rbp),%xmm0
ff
mulsd  -0x3530(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xfdd(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x3598(%rbp)
ff
movsd  0xfb6(%rip),%xmm0
movsd  %xmm0,-0x35a0(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x35b0(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x35b8(%rbp)
ff
movsd  -0x35b0(%rbp),%xmm0
ff
addsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x35b8(%rbp),%xmm0
ff
addsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x35b0(%rbp),%xmm0
ff
subsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x35b8(%rbp),%xmm0
ff
subsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x35c0(%rbp)
ff
movsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x35c8(%rbp)
ff
movsd  -0x35c0(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x35c8(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x35c0(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x35c8(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x35a8(%rbp)
ff
movsd  -0x2068(%rbp),%xmm0
ff
movsd  -0x3598(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x35a0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x35a8(%rbp),%xmm0
ff
movsd  -0x35a0(%rbp),%xmm2
ff
movsd  -0x20a8(%rbp),%xmm1
ff
mulsd  -0x3598(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x20a8(%rbp)
ff
movsd  -0x2080(%rbp),%xmm0
ff
movsd  %xmm0,-0x35d0(%rbp)
ff
movsd  -0x20c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x35d8(%rbp)
ff
movsd  -0x35d0(%rbp),%xmm0
ff
addsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2080(%rbp)
ff
movsd  -0x35d8(%rbp),%xmm0
ff
addsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20c0(%rbp)
ff
movsd  -0x35d0(%rbp),%xmm0
ff
subsd  -0x2078(%rbp),%xmm0
ff
movsd  %xmm0,-0x2078(%rbp)
ff
movsd  -0x35d8(%rbp),%xmm0
ff
subsd  -0x20b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b8(%rbp)
ff
movsd  -0x2070(%rbp),%xmm0
ff
movsd  %xmm0,-0x35e0(%rbp)
ff
movsd  -0x20b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x35e8(%rbp)
ff
movsd  -0x35e0(%rbp),%xmm0
ff
addsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2070(%rbp)
ff
movsd  -0x35e8(%rbp),%xmm0
ff
addsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20b0(%rbp)
ff
movsd  -0x35e0(%rbp),%xmm0
ff
subsd  -0x2068(%rbp),%xmm0
ff
movsd  %xmm0,-0x2068(%rbp)
ff
movsd  -0x35e8(%rbp),%xmm0
ff
subsd  -0x20a8(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x35f0(%rbp)
ff
movsd  0xcfd(%rip),%xmm0
movsd  %xmm0,-0x35f8(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x3608(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3610(%rbp)
ff
movsd  -0x3608(%rbp),%xmm0
ff
addsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3610(%rbp),%xmm0
ff
addsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x3608(%rbp),%xmm0
ff
subsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3610(%rbp),%xmm0
ff
subsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x3618(%rbp)
ff
movsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x3620(%rbp)
ff
movsd  -0x3618(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3620(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x3618(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3620(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x3600(%rbp)
ff
movsd  -0x2048(%rbp),%xmm0
ff
movsd  -0x35f0(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
ff
mulsd  -0x35f8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3600(%rbp),%xmm0
ff
movsd  -0x35f8(%rbp),%xmm2
ff
movsd  -0x2088(%rbp),%xmm1
ff
mulsd  -0x35f0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x2088(%rbp)
ff
movsd  -0x2060(%rbp),%xmm0
ff
movsd  %xmm0,-0x3628(%rbp)
ff
movsd  -0x20a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x3630(%rbp)
ff
movsd  -0x3628(%rbp),%xmm0
ff
addsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2060(%rbp)
ff
movsd  -0x3630(%rbp),%xmm0
ff
addsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x20a0(%rbp)
ff
movsd  -0x3628(%rbp),%xmm0
subsd  -0x2058(%rbp),%xmm0
ff
movsd  %xmm0,-0x2058(%rbp)
ff
movsd  -0x3630(%rbp),%xmm0
ff
subsd  -0x2098(%rbp),%xmm0
ff
movsd  %xmm0,-0x2098(%rbp)
ff
movsd  -0x2050(%rbp),%xmm0
ff
movsd  %xmm0,-0x3638(%rbp)
ff
movsd  -0x2090(%rbp),%xmm0
ff
movsd  %xmm0,-0x3640(%rbp)
ff
movsd  -0x3638(%rbp),%xmm0
ff
addsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2050(%rbp)
ff
movsd  -0x3640(%rbp),%xmm0
ff
addsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2090(%rbp)
ff
movsd  -0x3638(%rbp),%xmm0
ff
subsd  -0x2048(%rbp),%xmm0
ff
movsd  %xmm0,-0x2048(%rbp)
ff
movsd  -0x3640(%rbp),%xmm0
ff
subsd  -0x2088(%rbp),%xmm0
ff
movsd  %xmm0,-0x2088(%rbp)
ff
movslq -0x40(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
imul   $0x0,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x3c(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x0,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x38(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x1,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x34(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
imul   $0x3,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x30(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x2,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x2c(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
imul   $0x5,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x28(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
imul   $0x6,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x24(%rbp),%rax
movsd  -0x2080(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%rax
imul   $0x7,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x40(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
imul   $0x0,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x3c(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x0,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x38(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x1,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x34(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
imul   $0x3,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x30(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
mov    -0x20(%rbp),%ecx
shl    $0x2,%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x2c(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
imul   $0x5,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x28(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
imul   $0x6,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movslq -0x24(%rbp),%rax
movsd  -0x20c0(%rbp,%rax,8),%xmm0
ff ff
mov    -0x10(%rbp),%rax
imul   $0x7,-0x20(%rbp),%ecx
add    -0x14(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    3a53 <fft1D_512+0x2933>
add    $0x3640,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<fft1D_512>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x32f8,%rsp
mov    %rsi,%r14
mov    %rdi,%r13
lea    0xe00(%rsi),%rbx
lea    0xe00(%rdi),%r15
xor    %r12d,%r12d
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
movsd  -0xe00(%r15,%r12,1),%xmm6
f2 ff ff
movsd  -0xc00(%r15,%r12,1),%xmm4
f4 ff ff
movsd  -0xa00(%r15,%r12,1),%xmm11
f6 ff ff
movsd  -0x800(%r15,%r12,1),%xmm3
f8 ff ff
movsd  -0x600(%r15,%r12,1),%xmm1
fa ff ff
movsd  -0x400(%r15,%r12,1),%xmm14
fc ff ff
movsd  -0x200(%r15,%r12,1),%xmm8
fe ff ff
movsd  (%r15,%r12,1),%xmm10
movsd  -0xe00(%rbx,%r12,1),%xmm2
f2 ff ff
movsd  -0xc00(%rbx,%r12,1),%xmm0
f4 ff ff
movsd  -0xa00(%rbx,%r12,1),%xmm13
f6 ff ff
movsd  -0x800(%rbx,%r12,1),%xmm9
f8 ff ff
movsd  -0x600(%rbx,%r12,1),%xmm7
fa ff ff
movsd  -0x400(%rbx,%r12,1),%xmm12
fc ff ff
movsd  -0x200(%rbx,%r12,1),%xmm15
fe ff ff
movapd %xmm6,%xmm5
addsd  %xmm1,%xmm5
subsd  %xmm1,%xmm6
movsd  %xmm6,0x10(%rsp)
movapd %xmm2,%xmm6
addsd  %xmm7,%xmm6
subsd  %xmm7,%xmm2
movsd  %xmm2,(%rsp)
movapd %xmm4,%xmm1
addsd  %xmm14,%xmm1
subsd  %xmm14,%xmm4
movapd %xmm0,%xmm2
addsd  %xmm12,%xmm2
subsd  %xmm12,%xmm0
movapd %xmm11,%xmm14
addsd  %xmm8,%xmm14
subsd  %xmm8,%xmm11
movapd %xmm13,%xmm8
addsd  %xmm15,%xmm8
subsd  %xmm15,%xmm13
movapd %xmm3,%xmm15
addsd  %xmm10,%xmm15
subsd  %xmm10,%xmm3
movsd  (%rbx,%r12,1),%xmm7
movapd %xmm9,%xmm12
addsd  %xmm7,%xmm12
subsd  %xmm7,%xmm9
movapd %xmm4,%xmm7
addsd  %xmm0,%xmm7
subsd  %xmm4,%xmm0
movapd %xmm11,%xmm10
xorpd  %xmm4,%xmm4
mulsd  %xmm4,%xmm10
addsd  %xmm13,%xmm10
mulsd  %xmm4,%xmm13
subsd  %xmm11,%xmm13
movapd %xmm9,%xmm11
subsd  %xmm3,%xmm11
xorpd  0x1d82(%rip),%xmm3
subsd  %xmm9,%xmm3
movapd %xmm5,%xmm9
addsd  %xmm14,%xmm9
subsd  %xmm14,%xmm5
movapd %xmm6,%xmm4
addsd  %xmm8,%xmm4
subsd  %xmm8,%xmm6
movapd %xmm1,%xmm8
addsd  %xmm15,%xmm8
subsd  %xmm15,%xmm1
movapd %xmm2,%xmm14
addsd  %xmm12,%xmm14
subsd  %xmm12,%xmm2
movapd %xmm1,%xmm12
mulsd  0x1d24(%rip),%xmm12
addsd  %xmm2,%xmm12
movsd  0x1d0e(%rip),%xmm15
mulsd  %xmm15,%xmm2
subsd  %xmm1,%xmm2
movapd %xmm9,%xmm1
addsd  %xmm8,%xmm1
movsd  %xmm1,0x60(%rsp)
movapd %xmm4,%xmm1
addsd  %xmm14,%xmm1
movsd  %xmm1,0x20(%rsp)
subsd  %xmm8,%xmm9
movsd  %xmm9,0x68(%rsp)
subsd  %xmm14,%xmm4
movsd  %xmm4,0x28(%rsp)
movapd %xmm5,%xmm1
addsd  %xmm12,%xmm1
movsd  %xmm1,0x70(%rsp)
movapd %xmm6,%xmm1
addsd  %xmm2,%xmm1
movsd  %xmm1,0x30(%rsp)
subsd  %xmm12,%xmm5
movsd  %xmm5,0x78(%rsp)
subsd  %xmm2,%xmm6
movsd  0x1c93(%rip),%xmm1
mulsd  %xmm1,%xmm7
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm11
mulsd  %xmm1,%xmm3
movsd  %xmm6,0x38(%rsp)
movsd  0x10(%rsp),%xmm8
movapd %xmm8,%xmm1
addsd  %xmm10,%xmm1
subsd  %xmm10,%xmm8
movsd  (%rsp),%xmm9
movapd %xmm9,%xmm2
addsd  %xmm13,%xmm2
subsd  %xmm13,%xmm9
movapd %xmm7,%xmm4
addsd  %xmm11,%xmm4
subsd  %xmm11,%xmm7
movapd %xmm0,%xmm5
addsd  %xmm3,%xmm5
subsd  %xmm3,%xmm0
movapd %xmm7,%xmm3
mulsd  0x1c3b(%rip),%xmm3
addsd  %xmm0,%xmm3
mulsd  %xmm15,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm1,%xmm6
addsd  %xmm4,%xmm6
movsd  %xmm6,0x80(%rsp)
movapd %xmm2,%xmm6
addsd  %xmm5,%xmm6
movsd  %xmm6,0x40(%rsp)
subsd  %xmm4,%xmm1
movsd  %xmm1,0x88(%rsp)
subsd  %xmm5,%xmm2
movsd  %xmm2,0x48(%rsp)
movapd %xmm8,%xmm1
addsd  %xmm3,%xmm1
movsd  %xmm1,0x90(%rsp)
movapd %xmm9,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
subsd  %xmm3,%xmm8
movsd  %xmm8,0x98(%rsp)
subsd  %xmm0,%xmm9
movsd  %xmm9,0x58(%rsp)
lea    0x60(%rsp),%rdi
lea    0x20(%rsp),%rsi
mov    %ebp,%edx
mov    $0x200,%ecx
xor    %eax,%eax
call   1040 <twiddles8@plt>
movaps 0x60(%rsp),%xmm0
movaps 0x70(%rsp),%xmm1
movaps 0x80(%rsp),%xmm2
movaps 0x90(%rsp),%xmm3
movaps %xmm0,0x10f0(%rsp,%r12,8)
movaps %xmm1,0x1100(%rsp,%r12,8)
movaps %xmm2,0x1110(%rsp,%r12,8)
movaps %xmm3,0x1120(%rsp,%r12,8)
movapd 0x20(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
movapd 0x40(%rsp),%xmm2
movapd 0x50(%rsp),%xmm3
movapd %xmm0,0xf0(%rsp,%r12,8)
movapd %xmm1,0x100(%rsp,%r12,8)
movapd %xmm2,0x110(%rsp,%r12,8)
movapd %xmm3,0x120(%rsp,%r12,8)
add    $0x1,%ebp
add    $0x8,%r12
cmp    $0x200,%r12
jne    1150 <fft1D_512+0x30>
xor    %eax,%eax
movapd 0x1160(%rsp,%rax,8),%xmm8
movapd 0x1150(%rsp,%rax,8),%xmm1
movapd 0x1140(%rsp,%rax,8),%xmm2
movapd 0x1130(%rsp,%rax,8),%xmm3
movapd 0x10f0(%rsp,%rax,8),%xmm4
movapd 0x1100(%rsp,%rax,8),%xmm5
movapd 0x1110(%rsp,%rax,8),%xmm6
movapd 0x1120(%rsp,%rax,8),%xmm7
movapd %xmm4,%xmm0
unpcklpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm4
movapd %xmm5,%xmm3
unpcklpd %xmm2,%xmm3
unpckhpd %xmm2,%xmm5
movapd %xmm6,%xmm2
unpcklpd %xmm1,%xmm2
unpckhpd %xmm1,%xmm6
movapd %xmm7,%xmm1
unpcklpd %xmm8,%xmm1
unpckhpd %xmm8,%xmm7
movapd %xmm0,0x20f0(%rsp,%rax,1)
movapd %xmm4,0x2930(%rsp,%rax,1)
movapd %xmm2,0x2300(%rsp,%rax,1)
movapd %xmm6,0x2b40(%rsp,%rax,1)
movapd %xmm3,0x2510(%rsp,%rax,1)
movapd %xmm5,0x2d50(%rsp,%rax,1)
movapd %xmm1,0x2720(%rsp,%rax,1)
movapd %xmm7,0x2f60(%rsp,%rax,1)
add    $0x10,%rax
cmp    $0x200,%rax
jne    1500 <fft1D_512+0x3e0>
lea    0x1128(%rsp),%rax
xor    %ecx,%ecx
nopl   (%rax)
mov    %ecx,%edx
shr    $0x3,%edx
mov    %ecx,%esi
and    $0x7,%esi
mov    %esi,%edi
shl    $0x6,%edi
lea    (%rdi,%rsi,2),%esi
add    %edx,%esi
movsd  0x20f0(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x38(%rax)
movsd  0x21f0(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x18(%rax)
movsd  0x2130(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x30(%rax)
movsd  0x2230(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x10(%rax)
movsd  0x2170(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x28(%rax)
movsd  0x2270(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x8(%rax)
movsd  0x21b0(%rsp,%rsi,8),%xmm0
movsd  %xmm0,-0x20(%rax)
movsd  0x22b0(%rsp,%rsi,8),%xmm0
movsd  %xmm0,(%rax)
add    $0x1,%rcx
add    $0x40,%rax
cmp    $0x40,%rcx
jne    15e0 <fft1D_512+0x4c0>
xor    %eax,%eax
nopw   0x0(%rax,%rax,1)
movapd 0x160(%rsp,%rax,8),%xmm8
movapd 0x150(%rsp,%rax,8),%xmm1
movapd 0x140(%rsp,%rax,8),%xmm2
movapd 0x130(%rsp,%rax,8),%xmm3
movapd 0xf0(%rsp,%rax,8),%xmm4
movapd 0x100(%rsp,%rax,8),%xmm5
movapd 0x110(%rsp,%rax,8),%xmm6
movapd 0x120(%rsp,%rax,8),%xmm7
movapd %xmm4,%xmm0
unpcklpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm4
movapd %xmm5,%xmm3
unpcklpd %xmm2,%xmm3
unpckhpd %xmm2,%xmm5
movapd %xmm6,%xmm2
unpcklpd %xmm1,%xmm2
unpckhpd %xmm1,%xmm6
movapd %xmm7,%xmm1
unpcklpd %xmm8,%xmm1
unpckhpd %xmm8,%xmm7
movapd %xmm0,0x20f0(%rsp,%rax,1)
movapd %xmm4,0x2930(%rsp,%rax,1)
movapd %xmm2,0x2300(%rsp,%rax,1)
movapd %xmm6,0x2b40(%rsp,%rax,1)
movapd %xmm3,0x2510(%rsp,%rax,1)
movapd %xmm5,0x2d50(%rsp,%rax,1)
movapd %xmm1,0x2720(%rsp,%rax,1)
movapd %xmm7,0x2f60(%rsp,%rax,1)
add    $0x10,%rax
cmp    $0x200,%rax
jne    1680 <fft1D_512+0x560>
lea    0x120(%rsp),%rbp
lea    0x20(%rsp),%r15
lea    0x20f0(%rsp),%r12
xor    %ebx,%ebx
nopw   0x0(%rax,%rax,1)
movaps -0x30(%rbp),%xmm0
movaps %xmm0,0x20(%rsp)
movaps -0x20(%rbp),%xmm0
movaps %xmm0,0x30(%rsp)
movaps -0x10(%rbp),%xmm0
movaps %xmm0,0x40(%rsp)
movaps 0x0(%rbp),%xmm0
movaps %xmm0,0x50(%rsp)
mov    %ebx,%eax
shr    $0x3,%eax
mov    %ebx,%ecx
and    $0x7,%ecx
mov    %ecx,%edx
shl    $0x6,%edx
lea    (%rdx,%rcx,2),%edx
add    %eax,%edx
mov    %r15,%rdi
mov    %r12,%rsi
mov    $0x8,%ecx
xor    %eax,%eax
call   1030 <loady8@plt>
movaps 0x20(%rsp),%xmm0
movaps %xmm0,-0x30(%rbp)
movaps 0x30(%rsp),%xmm0
movaps %xmm0,-0x20(%rbp)
movaps 0x40(%rsp),%xmm0
movaps %xmm0,-0x10(%rbp)
movapd 0x50(%rsp),%xmm0
movapd %xmm0,0x0(%rbp)
add    $0x1,%rbx
add    $0x40,%rbp
cmp    $0x40,%rbx
jne    1770 <fft1D_512+0x650>
lea    0x60(%rsp),%r15
lea    0x20(%rsp),%r12
xor    %ebx,%ebx
xor    %ebp,%ebp
nopl   0x0(%rax)
movsd  0x10f0(%rsp,%rbx,1),%xmm6
movsd  0x10f8(%rsp,%rbx,1),%xmm4
movsd  0x1100(%rsp,%rbx,1),%xmm11
movsd  0x1108(%rsp,%rbx,1),%xmm3
movsd  0x1110(%rsp,%rbx,1),%xmm1
movsd  0x1118(%rsp,%rbx,1),%xmm14
movsd  0x1120(%rsp,%rbx,1),%xmm8
movsd  0x1128(%rsp,%rbx,1),%xmm10
movsd  0xf0(%rsp,%rbx,1),%xmm2
movsd  0xf8(%rsp,%rbx,1),%xmm0
movsd  0x100(%rsp,%rbx,1),%xmm13
movsd  0x108(%rsp,%rbx,1),%xmm9
movsd  0x110(%rsp,%rbx,1),%xmm7
movsd  0x118(%rsp,%rbx,1),%xmm12
movsd  0x120(%rsp,%rbx,1),%xmm15
movapd %xmm6,%xmm5
addsd  %xmm1,%xmm5
subsd  %xmm1,%xmm6
movsd  %xmm6,0x10(%rsp)
movapd %xmm2,%xmm6
addsd  %xmm7,%xmm6
subsd  %xmm7,%xmm2
movsd  %xmm2,(%rsp)
movapd %xmm4,%xmm1
addsd  %xmm14,%xmm1
subsd  %xmm14,%xmm4
movapd %xmm0,%xmm2
addsd  %xmm12,%xmm2
subsd  %xmm12,%xmm0
movapd %xmm11,%xmm14
addsd  %xmm8,%xmm14
subsd  %xmm8,%xmm11
movapd %xmm13,%xmm8
addsd  %xmm15,%xmm8
subsd  %xmm15,%xmm13
movapd %xmm3,%xmm15
addsd  %xmm10,%xmm15
subsd  %xmm10,%xmm3
movsd  0x128(%rsp,%rbx,1),%xmm7
movapd %xmm9,%xmm12
addsd  %xmm7,%xmm12
subsd  %xmm7,%xmm9
movapd %xmm4,%xmm7
addsd  %xmm0,%xmm7
subsd  %xmm4,%xmm0
movapd %xmm11,%xmm10
xorpd  %xmm4,%xmm4
mulsd  %xmm4,%xmm10
addsd  %xmm13,%xmm10
mulsd  %xmm4,%xmm13
subsd  %xmm11,%xmm13
movapd %xmm9,%xmm11
subsd  %xmm3,%xmm11
xorpd  0x16d2(%rip),%xmm3
subsd  %xmm9,%xmm3
movapd %xmm5,%xmm9
addsd  %xmm14,%xmm9
subsd  %xmm14,%xmm5
movapd %xmm6,%xmm4
addsd  %xmm8,%xmm4
subsd  %xmm8,%xmm6
movapd %xmm1,%xmm8
addsd  %xmm15,%xmm8
subsd  %xmm15,%xmm1
movapd %xmm2,%xmm14
addsd  %xmm12,%xmm14
subsd  %xmm12,%xmm2
movapd %xmm1,%xmm12
mulsd  0x1674(%rip),%xmm12
addsd  %xmm2,%xmm12
movsd  0x165e(%rip),%xmm15
mulsd  %xmm15,%xmm2
subsd  %xmm1,%xmm2
movapd %xmm9,%xmm1
addsd  %xmm8,%xmm1
movsd  %xmm1,0x60(%rsp)
movapd %xmm4,%xmm1
addsd  %xmm14,%xmm1
movsd  %xmm1,0x20(%rsp)
subsd  %xmm8,%xmm9
movsd  %xmm9,0x68(%rsp)
subsd  %xmm14,%xmm4
movsd  %xmm4,0x28(%rsp)
movapd %xmm5,%xmm1
addsd  %xmm12,%xmm1
movsd  %xmm1,0x70(%rsp)
movapd %xmm6,%xmm1
addsd  %xmm2,%xmm1
movsd  %xmm1,0x30(%rsp)
subsd  %xmm12,%xmm5
movsd  %xmm5,0x78(%rsp)
subsd  %xmm2,%xmm6
movsd  0x15e3(%rip),%xmm1
mulsd  %xmm1,%xmm7
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm11
mulsd  %xmm1,%xmm3
movsd  %xmm6,0x38(%rsp)
movsd  0x10(%rsp),%xmm8
movapd %xmm8,%xmm1
addsd  %xmm10,%xmm1
subsd  %xmm10,%xmm8
movsd  (%rsp),%xmm9
movapd %xmm9,%xmm2
addsd  %xmm13,%xmm2
subsd  %xmm13,%xmm9
movapd %xmm7,%xmm4
addsd  %xmm11,%xmm4
subsd  %xmm11,%xmm7
movapd %xmm0,%xmm5
addsd  %xmm3,%xmm5
subsd  %xmm3,%xmm0
movapd %xmm7,%xmm3
mulsd  0x158b(%rip),%xmm3
addsd  %xmm0,%xmm3
mulsd  %xmm15,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm1,%xmm6
addsd  %xmm4,%xmm6
movsd  %xmm6,0x80(%rsp)
movapd %xmm2,%xmm6
addsd  %xmm5,%xmm6
movsd  %xmm6,0x40(%rsp)
subsd  %xmm4,%xmm1
movsd  %xmm1,0x88(%rsp)
subsd  %xmm5,%xmm2
movsd  %xmm2,0x48(%rsp)
movapd %xmm8,%xmm1
addsd  %xmm3,%xmm1
movsd  %xmm1,0x90(%rsp)
movapd %xmm9,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x50(%rsp)
subsd  %xmm3,%xmm8
movsd  %xmm8,0x98(%rsp)
subsd  %xmm0,%xmm9
movsd  %xmm9,0x58(%rsp)
mov    %ebp,%edx
shr    $0x3,%edx
mov    %r15,%rdi
mov    %r12,%rsi
mov    $0x40,%ecx
xor    %eax,%eax
call   1040 <twiddles8@plt>
movaps 0x60(%rsp),%xmm0
movaps 0x70(%rsp),%xmm1
movaps 0x80(%rsp),%xmm2
movaps 0x90(%rsp),%xmm3
movaps %xmm0,0x10f0(%rsp,%rbx,1)
movaps %xmm1,0x1100(%rsp,%rbx,1)
movaps %xmm2,0x1110(%rsp,%rbx,1)
movaps %xmm3,0x1120(%rsp,%rbx,1)
movapd 0x20(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
movapd 0x40(%rsp),%xmm2
movapd 0x50(%rsp),%xmm3
movapd %xmm0,0xf0(%rsp,%rbx,1)
movapd %xmm1,0x100(%rsp,%rbx,1)
movapd %xmm2,0x110(%rsp,%rbx,1)
movapd %xmm3,0x120(%rsp,%rbx,1)
add    $0x1,%rbp
add    $0x40,%rbx
cmp    $0x40,%rbp
jne    1800 <fft1D_512+0x6e0>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nop
movapd 0x1160(%rsp,%rax,8),%xmm8
movapd 0x1150(%rsp,%rax,8),%xmm1
movapd 0x1140(%rsp,%rax,8),%xmm2
movapd 0x1130(%rsp,%rax,8),%xmm3
movapd 0x10f0(%rsp,%rax,8),%xmm4
movapd 0x1100(%rsp,%rax,8),%xmm5
movapd 0x1110(%rsp,%rax,8),%xmm6
movapd 0x1120(%rsp,%rax,8),%xmm7
movapd %xmm4,%xmm0
unpcklpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm4
movapd %xmm5,%xmm3
unpcklpd %xmm2,%xmm3
unpckhpd %xmm2,%xmm5
movapd %xmm6,%xmm2
unpcklpd %xmm1,%xmm2
unpckhpd %xmm1,%xmm6
movapd %xmm7,%xmm1
unpcklpd %xmm8,%xmm1
unpckhpd %xmm8,%xmm7
movapd %xmm0,0x20f0(%rsp,%rax,1)
movapd %xmm4,0x29f0(%rsp,%rax,1)
movapd %xmm2,0x2330(%rsp,%rax,1)
movapd %xmm6,0x2c30(%rsp,%rax,1)
movapd %xmm3,0x2570(%rsp,%rax,1)
movapd %xmm5,0x2e70(%rsp,%rax,1)
movapd %xmm1,0x27b0(%rsp,%rax,1)
movapd %xmm7,0x30b0(%rsp,%rax,1)
add    $0x10,%rax
cmp    $0x200,%rax
jne    1bb0 <fft1D_512+0xa90>
lea    0x1128(%rsp),%rax
xor    %ecx,%ecx
nopl   (%rax)
mov    %ecx,%edx
and    $0xfffffff8,%edx
mov    %ecx,%esi
and    $0x7,%esi
lea    (%rdx,%rdx,8),%edx
or     %esi,%edx
movsd  0x20f0(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x38(%rax)
movsd  0x21f0(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x18(%rax)
movsd  0x2130(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x30(%rax)
movsd  0x2230(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x10(%rax)
movsd  0x2170(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x28(%rax)
movsd  0x2270(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x8(%rax)
movsd  0x21b0(%rsp,%rdx,8),%xmm0
movsd  %xmm0,-0x20(%rax)
movsd  0x22b0(%rsp,%rdx,8),%xmm0
movsd  %xmm0,(%rax)
add    $0x1,%rcx
add    $0x40,%rax
cmp    $0x40,%rcx
jne    1c90 <fft1D_512+0xb70>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movapd 0x160(%rsp,%rax,8),%xmm8
movapd 0x150(%rsp,%rax,8),%xmm1
movapd 0x140(%rsp,%rax,8),%xmm2
movapd 0x130(%rsp,%rax,8),%xmm3
movapd 0xf0(%rsp,%rax,8),%xmm4
movapd 0x100(%rsp,%rax,8),%xmm5
movapd 0x110(%rsp,%rax,8),%xmm6
movapd 0x120(%rsp,%rax,8),%xmm7
movapd %xmm4,%xmm0
unpcklpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm4
movapd %xmm5,%xmm3
unpcklpd %xmm2,%xmm3
unpckhpd %xmm2,%xmm5
movapd %xmm6,%xmm2
unpcklpd %xmm1,%xmm2
unpckhpd %xmm1,%xmm6
movapd %xmm7,%xmm1
unpcklpd %xmm8,%xmm1
unpckhpd %xmm8,%xmm7
movapd %xmm0,0x20f0(%rsp,%rax,1)
movapd %xmm4,0x29f0(%rsp,%rax,1)
movapd %xmm2,0x2330(%rsp,%rax,1)
movapd %xmm6,0x2c30(%rsp,%rax,1)
movapd %xmm3,0x2570(%rsp,%rax,1)
movapd %xmm5,0x2e70(%rsp,%rax,1)
movapd %xmm1,0x27b0(%rsp,%rax,1)
movapd %xmm7,0x30b0(%rsp,%rax,1)
add    $0x10,%rax
cmp    $0x200,%rax
jne    1d30 <fft1D_512+0xc10>
lea    0x120(%rsp),%rbx
lea    0x20(%rsp),%r15
lea    0x20f0(%rsp),%r12
xor    %ebp,%ebp
nopw   0x0(%rax,%rax,1)
movaps -0x30(%rbx),%xmm0
movaps %xmm0,0x20(%rsp)
movaps -0x20(%rbx),%xmm0
movaps %xmm0,0x30(%rsp)
movaps -0x10(%rbx),%xmm0
movaps %xmm0,0x40(%rsp)
movaps (%rbx),%xmm0
movaps %xmm0,0x50(%rsp)
mov    %ebp,%eax
and    $0xfffffff8,%eax
mov    %ebp,%ecx
and    $0x7,%ecx
lea    (%rax,%rax,8),%edx
or     %ecx,%edx
mov    %r15,%rdi
mov    %r12,%rsi
mov    $0x8,%ecx
xor    %eax,%eax
call   1030 <loady8@plt>
movaps 0x20(%rsp),%xmm0
movaps %xmm0,-0x30(%rbx)
movaps 0x30(%rsp),%xmm0
movaps %xmm0,-0x20(%rbx)
movaps 0x40(%rsp),%xmm0
movaps %xmm0,-0x10(%rbx)
movapd 0x50(%rsp),%xmm0
movapd %xmm0,(%rbx)
add    $0x1,%rbp
add    $0x40,%rbx
cmp    $0x40,%rbp
jne    1e20 <fft1D_512+0xd00>
lea    0x1000(%r14),%rax
cmp    %r13,%rax
jbe    2251 <fft1D_512+0x1131>
lea    0x1000(%r13),%rax
cmp    %r14,%rax
jbe    2251 <fft1D_512+0x1131>
xor    %eax,%eax
nopl   0x0(%rax)
movsd  0xf0(%rsp,%rax,8),%xmm6
movsd  0xf8(%rsp,%rax,8),%xmm0
movsd  0x100(%rsp,%rax,8),%xmm9
movsd  0x108(%rsp,%rax,8),%xmm10
movsd  0x110(%rsp,%rax,8),%xmm15
movsd  0x118(%rsp,%rax,8),%xmm8
movsd  0x120(%rsp,%rax,8),%xmm13
movsd  0x10f0(%rsp,%rax,8),%xmm11
movsd  0x10f8(%rsp,%rax,8),%xmm5
movsd  0x1100(%rsp,%rax,8),%xmm4
movsd  0x1108(%rsp,%rax,8),%xmm7
movsd  0x1110(%rsp,%rax,8),%xmm3
movsd  0x1118(%rsp,%rax,8),%xmm1
movsd  0x1120(%rsp,%rax,8),%xmm12
movsd  0x1128(%rsp,%rax,8),%xmm14
movapd %xmm11,%xmm2
addsd  %xmm3,%xmm2
movsd  %xmm2,0x10(%rsp)
subsd  %xmm3,%xmm11
movapd %xmm6,%xmm2
addsd  %xmm15,%xmm2
movsd  %xmm2,(%rsp)
subsd  %xmm15,%xmm6
movsd  %xmm6,0xa0(%rsp)
movapd %xmm5,%xmm2
addsd  %xmm1,%xmm2
subsd  %xmm1,%xmm5
movapd %xmm0,%xmm3
addsd  %xmm8,%xmm3
subsd  %xmm8,%xmm0
movapd %xmm4,%xmm8
addsd  %xmm12,%xmm8
subsd  %xmm12,%xmm4
movapd %xmm9,%xmm12
addsd  %xmm13,%xmm12
subsd  %xmm13,%xmm9
movapd %xmm7,%xmm15
addsd  %xmm14,%xmm15
subsd  %xmm14,%xmm7
movsd  0x128(%rsp,%rax,8),%xmm1
movapd %xmm10,%xmm13
addsd  %xmm1,%xmm13
subsd  %xmm1,%xmm10
movapd %xmm0,%xmm1
addsd  %xmm5,%xmm1
subsd  %xmm5,%xmm0
movapd %xmm4,%xmm5
xorpd  %xmm6,%xmm6
mulsd  %xmm6,%xmm5
addsd  %xmm9,%xmm5
mulsd  %xmm6,%xmm9
subsd  %xmm4,%xmm9
movapd %xmm10,%xmm4
subsd  %xmm7,%xmm4
xorpd  0x100a(%rip),%xmm7
subsd  %xmm10,%xmm7
movsd  0x10(%rsp),%xmm6
movapd %xmm6,%xmm14
addsd  %xmm8,%xmm14
subsd  %xmm8,%xmm6
movsd  %xmm6,0x10(%rsp)
movsd  (%rsp),%xmm6
movapd %xmm6,%xmm10
addsd  %xmm12,%xmm10
subsd  %xmm12,%xmm6
movsd  %xmm6,(%rsp)
movapd %xmm2,%xmm8
addsd  %xmm15,%xmm8
subsd  %xmm15,%xmm2
movapd %xmm3,%xmm12
addsd  %xmm13,%xmm12
subsd  %xmm13,%xmm3
movapd %xmm2,%xmm13
mulsd  0xf95(%rip),%xmm13
addsd  %xmm3,%xmm13
movsd  0xf80(%rip),%xmm6
mulsd  %xmm6,%xmm3
subsd  %xmm2,%xmm3
movapd %xmm14,%xmm15
addsd  %xmm8,%xmm15
subsd  %xmm8,%xmm14
movapd %xmm10,%xmm2
addsd  %xmm12,%xmm2
movsd  %xmm2,0xd0(%rsp)
subsd  %xmm12,%xmm10
movsd  0x10(%rsp),%xmm6
movapd %xmm6,%xmm2
addsd  %xmm13,%xmm2
subsd  %xmm13,%xmm6
movapd %xmm6,%xmm13
movsd  (%rsp),%xmm6
movapd %xmm6,%xmm8
addsd  %xmm3,%xmm8
subsd  %xmm3,%xmm6
movsd  %xmm6,(%rsp)
movapd %xmm11,%xmm12
addsd  %xmm5,%xmm12
subsd  %xmm5,%xmm11
movsd  0xa0(%rsp),%xmm5
movapd %xmm5,%xmm3
addsd  %xmm9,%xmm3
subsd  %xmm9,%xmm5
movapd %xmm5,%xmm9
movsd  0xee5(%rip),%xmm6
mulsd  %xmm6,%xmm1
mulsd  %xmm6,%xmm4
movapd %xmm1,%xmm5
addsd  %xmm4,%xmm5
subsd  %xmm4,%xmm1
mulsd  %xmm6,%xmm0
mulsd  %xmm6,%xmm7
movapd %xmm0,%xmm4
addsd  %xmm7,%xmm4
subsd  %xmm7,%xmm0
movapd %xmm1,%xmm6
mulsd  0xec1(%rip),%xmm6
addsd  %xmm0,%xmm6
mulsd  0xead(%rip),%xmm0
subsd  %xmm1,%xmm0
movapd %xmm12,%xmm1
addsd  %xmm5,%xmm1
subsd  %xmm5,%xmm12
movapd %xmm3,%xmm5
addsd  %xmm4,%xmm5
subsd  %xmm4,%xmm3
movapd %xmm11,%xmm4
addsd  %xmm6,%xmm4
subsd  %xmm6,%xmm11
movapd %xmm9,%xmm6
addsd  %xmm0,%xmm6
subsd  %xmm0,%xmm9
movsd  %xmm15,0x0(%r13,%rax,1)
movsd  %xmm1,0x200(%r13,%rax,1)
movsd  %xmm2,0x400(%r13,%rax,1)
movsd  %xmm4,0x600(%r13,%rax,1)
movsd  %xmm14,0x800(%r13,%rax,1)
movsd  %xmm12,0xa00(%r13,%rax,1)
movsd  %xmm13,0xc00(%r13,%rax,1)
movsd  %xmm11,0xe00(%r13,%rax,1)
movsd  0xd0(%rsp),%xmm0
movsd  %xmm0,(%r14,%rax,1)
movsd  %xmm5,0x200(%r14,%rax,1)
movsd  %xmm8,0x400(%r14,%rax,1)
movsd  %xmm6,0x600(%r14,%rax,1)
movsd  %xmm10,0x800(%r14,%rax,1)
movsd  %xmm3,0xa00(%r14,%rax,1)
movsd  (%rsp),%xmm0
movsd  %xmm0,0xc00(%r14,%rax,1)
movsd  %xmm9,0xe00(%r14,%rax,1)
add    $0x8,%rax
cmp    $0x200,%rax
jne    1ec0 <fft1D_512+0xda0>
jmp    26bb <fft1D_512+0x159b>
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movapd 0x160(%rsp,%rax,8),%xmm0
movapd 0x150(%rsp,%rax,8),%xmm1
movapd 0x140(%rsp,%rax,8),%xmm4
movapd 0x130(%rsp,%rax,8),%xmm2
movapd 0xf0(%rsp,%rax,8),%xmm3
movapd 0x100(%rsp,%rax,8),%xmm8
movapd 0x110(%rsp,%rax,8),%xmm12
movapd 0x120(%rsp,%rax,8),%xmm5
movapd %xmm3,%xmm6
unpcklpd %xmm2,%xmm6
movapd %xmm6,0x10(%rsp)
unpckhpd %xmm2,%xmm3
movapd %xmm8,%xmm14
unpcklpd %xmm4,%xmm14
unpckhpd %xmm4,%xmm8
movapd %xmm12,%xmm15
unpcklpd %xmm1,%xmm15
unpckhpd %xmm1,%xmm12
movapd %xmm5,%xmm11
unpcklpd %xmm0,%xmm11
unpckhpd %xmm0,%xmm5
movapd %xmm5,0xc0(%rsp)
movapd 0x1160(%rsp,%rax,8),%xmm13
movapd 0x1150(%rsp,%rax,8),%xmm6
movapd 0x1140(%rsp,%rax,8),%xmm7
movapd 0x1130(%rsp,%rax,8),%xmm1
movapd 0x10f0(%rsp,%rax,8),%xmm2
movapd 0x1100(%rsp,%rax,8),%xmm9
movapd 0x1110(%rsp,%rax,8),%xmm4
movapd %xmm2,%xmm0
unpcklpd %xmm1,%xmm0
unpckhpd %xmm1,%xmm2
movapd %xmm9,%xmm10
unpcklpd %xmm7,%xmm10
unpckhpd %xmm7,%xmm9
movapd %xmm4,%xmm7
unpcklpd %xmm6,%xmm7
unpckhpd %xmm6,%xmm4
movapd 0x1120(%rsp,%rax,8),%xmm6
movapd %xmm6,%xmm1
unpcklpd %xmm13,%xmm1
unpckhpd %xmm13,%xmm6
movapd %xmm0,%xmm5
addpd  %xmm7,%xmm5
movapd %xmm5,(%rsp)
subpd  %xmm7,%xmm0
movapd %xmm0,0xd0(%rsp)
movapd 0x10(%rsp),%xmm13
movapd %xmm13,%xmm0
addpd  %xmm15,%xmm0
movapd %xmm0,0xa0(%rsp)
subpd  %xmm15,%xmm13
movapd %xmm13,0x10(%rsp)
movapd %xmm2,%xmm7
addpd  %xmm4,%xmm7
subpd  %xmm4,%xmm2
movapd %xmm3,%xmm4
addpd  %xmm12,%xmm4
subpd  %xmm12,%xmm3
movapd %xmm10,%xmm12
addpd  %xmm1,%xmm12
subpd  %xmm1,%xmm10
movapd %xmm14,%xmm15
addpd  %xmm11,%xmm15
subpd  %xmm11,%xmm14
movapd %xmm9,%xmm0
addpd  %xmm6,%xmm0
movapd %xmm0,0xb0(%rsp)
subpd  %xmm6,%xmm9
movapd %xmm8,%xmm13
movapd 0xc0(%rsp),%xmm0
addpd  %xmm0,%xmm13
subpd  %xmm0,%xmm8
movapd %xmm3,%xmm6
addpd  %xmm2,%xmm6
subpd  %xmm2,%xmm3
movapd %xmm10,%xmm11
xorpd  %xmm1,%xmm1
mulpd  %xmm1,%xmm11
addpd  %xmm14,%xmm11
mulpd  %xmm1,%xmm14
subpd  %xmm10,%xmm14
movapd %xmm8,%xmm0
subpd  %xmm9,%xmm0
movapd 0xbce(%rip),%xmm2
xorpd  %xmm2,%xmm9
subpd  %xmm8,%xmm9
movapd (%rsp),%xmm1
movapd %xmm1,%xmm5
addpd  %xmm12,%xmm5
subpd  %xmm12,%xmm1
movapd %xmm1,(%rsp)
movapd 0xa0(%rsp),%xmm2
movapd %xmm2,%xmm1
addpd  %xmm15,%xmm1
subpd  %xmm15,%xmm2
movapd %xmm2,%xmm15
movapd %xmm7,%xmm10
movapd 0xb0(%rsp),%xmm2
addpd  %xmm2,%xmm10
subpd  %xmm2,%xmm7
movapd %xmm4,%xmm12
addpd  %xmm13,%xmm12
subpd  %xmm13,%xmm4
movapd %xmm7,%xmm8
mulpd  0xb7c(%rip),%xmm8
addpd  %xmm4,%xmm8
mulpd  0xb4f(%rip),%xmm4
subpd  %xmm7,%xmm4
movapd %xmm5,%xmm13
addpd  %xmm10,%xmm13
subpd  %xmm10,%xmm5
movapd %xmm5,0xe0(%rsp)
movapd %xmm1,%xmm2
addpd  %xmm12,%xmm2
movapd %xmm2,0xb0(%rsp)
subpd  %xmm12,%xmm1
movapd %xmm1,0xc0(%rsp)
movapd (%rsp),%xmm1
movapd %xmm1,%xmm12
addpd  %xmm8,%xmm12
subpd  %xmm8,%xmm1
movapd %xmm1,(%rsp)
movapd %xmm15,%xmm10
addpd  %xmm4,%xmm10
subpd  %xmm4,%xmm15
movapd %xmm15,0xa0(%rsp)
movapd 0xd0(%rsp),%xmm8
movapd %xmm8,%xmm15
addpd  %xmm11,%xmm15
subpd  %xmm11,%xmm8
movapd 0x10(%rsp),%xmm7
movapd %xmm7,%xmm4
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm7
movapd 0xabc(%rip),%xmm5
mulpd  %xmm5,%xmm6
mulpd  %xmm5,%xmm0
movapd %xmm6,%xmm2
addpd  %xmm0,%xmm2
subpd  %xmm0,%xmm6
mulpd  %xmm5,%xmm3
mulpd  %xmm5,%xmm9
movapd %xmm3,%xmm1
addpd  %xmm9,%xmm1
subpd  %xmm9,%xmm3
movapd %xmm6,%xmm0
mulpd  0xa95(%rip),%xmm0
addpd  %xmm3,%xmm0
mulpd  0xa69(%rip),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm15,%xmm5
addpd  %xmm2,%xmm5
subpd  %xmm2,%xmm15
movapd %xmm4,%xmm2
addpd  %xmm1,%xmm2
subpd  %xmm1,%xmm4
movapd %xmm8,%xmm1
addpd  %xmm0,%xmm1
subpd  %xmm0,%xmm8
movapd %xmm7,%xmm0
addpd  %xmm3,%xmm0
subpd  %xmm3,%xmm7
movupd %xmm13,0x0(%r13,%rax,1)
movupd %xmm5,0x200(%r13,%rax,1)
movupd %xmm12,0x400(%r13,%rax,1)
movupd %xmm1,0x600(%r13,%rax,1)
movaps 0xe0(%rsp),%xmm1
movups %xmm1,0x800(%r13,%rax,1)
movupd %xmm15,0xa00(%r13,%rax,1)
movaps (%rsp),%xmm1
movups %xmm1,0xc00(%r13,%rax,1)
movupd %xmm8,0xe00(%r13,%rax,1)
movapd 0xb0(%rsp),%xmm1
movupd %xmm1,(%r14,%rax,1)
movupd %xmm2,0x200(%r14,%rax,1)
movupd %xmm10,0x400(%r14,%rax,1)
movupd %xmm0,0x600(%r14,%rax,1)
movaps 0xc0(%rsp),%xmm0
movups %xmm0,0x800(%r14,%rax,1)
movupd %xmm4,0xa00(%r14,%rax,1)
movapd 0xa0(%rsp),%xmm0
movupd %xmm0,0xc00(%r14,%rax,1)
movupd %xmm7,0xe00(%r14,%rax,1)
add    $0x10,%rax
cmp    $0x200,%rax
jne    2260 <fft1D_512+0x1140>
add    $0x32f8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.fft1D_512.reversed = [8 x i32] [i32 0, i32 4, i32 2, i32 6, i32 1, i32 5, i32 3, i32 7]
define void @fft1D_512(double* %0, double* %1) {
%3 = alloca double*
%4 = alloca double*
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca [8 x i32]
%10 = alloca [512 x double]
%11 = alloca [512 x double]
%12 = alloca [8 x double]
%13 = alloca [8 x double]
%14 = alloca [576 x double]
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca i32
%53 = alloca i32
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
%62 = alloca double
%63 = alloca double
%64 = alloca double
%65 = alloca double
%66 = alloca double
%67 = alloca double
%68 = alloca double
%69 = alloca double
%70 = alloca double
%71 = alloca double
%72 = alloca double
%73 = alloca double
%74 = alloca double
%75 = alloca double
%76 = alloca double
%77 = alloca double
%78 = alloca double
%79 = alloca double
%80 = alloca double
%81 = alloca double
%82 = alloca double
%83 = alloca double
%84 = alloca double
%85 = alloca double
%86 = alloca double
%87 = alloca double
%88 = alloca double
%89 = alloca double
%90 = alloca double
%91 = alloca double
%92 = alloca double
%93 = alloca double
%94 = alloca double
%95 = alloca double
%96 = alloca double
%97 = alloca double
%98 = alloca double
%99 = alloca double
%100 = alloca double
%101 = alloca double
%102 = alloca double
%103 = alloca double
%104 = alloca double
%105 = alloca double
%106 = alloca double
%107 = alloca double
%108 = alloca double
%109 = alloca double
%110 = alloca double
%111 = alloca double
%112 = alloca double
%113 = alloca double
%114 = alloca double
%115 = alloca double
%116 = alloca double
%117 = alloca double
%118 = alloca double
%119 = alloca double
%120 = alloca double
%121 = alloca double
%122 = alloca double
%123 = alloca double
%124 = alloca double
%125 = alloca double
%126 = alloca double
%127 = alloca double
store double* %0, double** %3
store double* %1, double** %4
%128 = bitcast [8 x i32]* %9 to i8*
store i32 64, i32* %8
br label %129
129: ; preds = %2
store i32 0, i32* %5
br label %130
130: ; preds = %786, %129
%131 = load i32, i32* %5
%132 = icmp slt i32 %131, 64
br i1 %132, label %133, label %789
133: ; preds = %130
%134 = load double*, double** %3
%135 = load i32, i32* %8
%136 = mul nsw i32 0, %135
%137 = load i32, i32* %5
%138 = add nsw i32 %136, %137
%139 = sext i32 %138 to i64
%140 = getelementptr inbounds double, double* %134, i64 %139
%141 = load double, double* %140
%142 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %141, double* %142
%143 = load double*, double** %3
%144 = load i32, i32* %8
%145 = mul nsw i32 1, %144
%146 = load i32, i32* %5
%147 = add nsw i32 %145, %146
%148 = sext i32 %147 to i64
%149 = getelementptr inbounds double, double* %143, i64 %148
%150 = load double, double* %149
%151 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %150, double* %151
%152 = load double*, double** %3
%153 = load i32, i32* %8
%154 = mul nsw i32 2, %153
%155 = load i32, i32* %5
%156 = add nsw i32 %154, %155
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds double, double* %152, i64 %157
%159 = load double, double* %158
%160 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %159, double* %160
%161 = load double*, double** %3
%162 = load i32, i32* %8
%163 = mul nsw i32 3, %162
%164 = load i32, i32* %5
%165 = add nsw i32 %163, %164
%166 = sext i32 %165 to i64
%167 = getelementptr inbounds double, double* %161, i64 %166
%168 = load double, double* %167
%169 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %168, double* %169
%170 = load double*, double** %3
%171 = load i32, i32* %8
%172 = mul nsw i32 4, %171
%173 = load i32, i32* %5
%174 = add nsw i32 %172, %173
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds double, double* %170, i64 %175
%177 = load double, double* %176
%178 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %177, double* %178
%179 = load double*, double** %3
%180 = load i32, i32* %8
%181 = mul nsw i32 5, %180
%182 = load i32, i32* %5
%183 = add nsw i32 %181, %182
%184 = sext i32 %183 to i64
%185 = getelementptr inbounds double, double* %179, i64 %184
%186 = load double, double* %185
%187 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %186, double* %187
%188 = load double*, double** %3
%189 = load i32, i32* %8
%190 = mul nsw i32 6, %189
%191 = load i32, i32* %5
%192 = add nsw i32 %190, %191
%193 = sext i32 %192 to i64
%194 = getelementptr inbounds double, double* %188, i64 %193
%195 = load double, double* %194
%196 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %195, double* %196
%197 = load double*, double** %3
%198 = load i32, i32* %8
%199 = mul nsw i32 7, %198
%200 = load i32, i32* %5
%201 = add nsw i32 %199, %200
%202 = sext i32 %201 to i64
%203 = getelementptr inbounds double, double* %197, i64 %202
%204 = load double, double* %203
%205 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %204, double* %205
%206 = load double*, double** %4
%207 = load i32, i32* %8
%208 = mul nsw i32 0, %207
%209 = load i32, i32* %5
%210 = add nsw i32 %208, %209
%211 = sext i32 %210 to i64
%212 = getelementptr inbounds double, double* %206, i64 %211
%213 = load double, double* %212
%214 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %213, double* %214
%215 = load double*, double** %4
%216 = load i32, i32* %8
%217 = mul nsw i32 1, %216
%218 = load i32, i32* %5
%219 = add nsw i32 %217, %218
%220 = sext i32 %219 to i64
%221 = getelementptr inbounds double, double* %215, i64 %220
%222 = load double, double* %221
%223 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %222, double* %223
%224 = load double*, double** %4
%225 = load i32, i32* %8
%226 = mul nsw i32 2, %225
%227 = load i32, i32* %5
%228 = add nsw i32 %226, %227
%229 = sext i32 %228 to i64
%230 = getelementptr inbounds double, double* %224, i64 %229
%231 = load double, double* %230
%232 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %231, double* %232
%233 = load double*, double** %4
%234 = load i32, i32* %8
%235 = mul nsw i32 3, %234
%236 = load i32, i32* %5
%237 = add nsw i32 %235, %236
%238 = sext i32 %237 to i64
%239 = getelementptr inbounds double, double* %233, i64 %238
%240 = load double, double* %239
%241 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %240, double* %241
%242 = load double*, double** %4
%243 = load i32, i32* %8
%244 = mul nsw i32 4, %243
%245 = load i32, i32* %5
%246 = add nsw i32 %244, %245
%247 = sext i32 %246 to i64
%248 = getelementptr inbounds double, double* %242, i64 %247
%249 = load double, double* %248
%250 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %249, double* %250
%251 = load double*, double** %4
%252 = load i32, i32* %8
%253 = mul nsw i32 5, %252
%254 = load i32, i32* %5
%255 = add nsw i32 %253, %254
%256 = sext i32 %255 to i64
%257 = getelementptr inbounds double, double* %251, i64 %256
%258 = load double, double* %257
%259 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %258, double* %259
%260 = load double*, double** %4
%261 = load i32, i32* %8
%262 = mul nsw i32 6, %261
%263 = load i32, i32* %5
%264 = add nsw i32 %262, %263
%265 = sext i32 %264 to i64
%266 = getelementptr inbounds double, double* %260, i64 %265
%267 = load double, double* %266
%268 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %267, double* %268
%269 = load double*, double** %4
%270 = load i32, i32* %8
%271 = mul nsw i32 7, %270
%272 = load i32, i32* %5
%273 = add nsw i32 %271, %272
%274 = sext i32 %273 to i64
%275 = getelementptr inbounds double, double* %269, i64 %274
%276 = load double, double* %275
%277 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %276, double* %277
store double 1.000000e+00, double* %15
store double -1.000000e+00, double* %18
store double 0.000000e+00, double* %16
store double -1.000000e+00, double* %19
store double -1.000000e+00, double* %17
store double -1.000000e+00, double* %20
%278 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%279 = load double, double* %278
store double %279, double* %22
%280 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%281 = load double, double* %280
store double %281, double* %23
%282 = load double, double* %22
%283 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%284 = load double, double* %283
%285 = fadd double %282, %284
%286 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %285, double* %286
%287 = load double, double* %23
%288 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%289 = load double, double* %288
%290 = fadd double %287, %289
%291 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %290, double* %291
%292 = load double, double* %22
%293 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%294 = load double, double* %293
%295 = fsub double %292, %294
%296 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %295, double* %296
%297 = load double, double* %23
%298 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%299 = load double, double* %298
%300 = fsub double %297, %299
%301 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %300, double* %301
%302 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%303 = load double, double* %302
store double %303, double* %24
%304 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%305 = load double, double* %304
store double %305, double* %25
%306 = load double, double* %24
%307 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%308 = load double, double* %307
%309 = fadd double %306, %308
%310 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %309, double* %310
%311 = load double, double* %25
%312 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%313 = load double, double* %312
%314 = fadd double %311, %313
%315 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %314, double* %315
%316 = load double, double* %24
%317 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%318 = load double, double* %317
%319 = fsub double %316, %318
%320 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %319, double* %320
%321 = load double, double* %25
%322 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%323 = load double, double* %322
%324 = fsub double %321, %323
%325 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %324, double* %325
%326 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%327 = load double, double* %326
store double %327, double* %26
%328 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%329 = load double, double* %328
store double %329, double* %27
%330 = load double, double* %26
%331 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%332 = load double, double* %331
%333 = fadd double %330, %332
%334 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %333, double* %334
%335 = load double, double* %27
%336 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%337 = load double, double* %336
%338 = fadd double %335, %337
%339 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %338, double* %339
%340 = load double, double* %26
%341 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%342 = load double, double* %341
%343 = fsub double %340, %342
%344 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %343, double* %344
%345 = load double, double* %27
%346 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%347 = load double, double* %346
%348 = fsub double %345, %347
%349 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %348, double* %349
%350 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%351 = load double, double* %350
store double %351, double* %28
%352 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%353 = load double, double* %352
store double %353, double* %29
%354 = load double, double* %28
%355 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%356 = load double, double* %355
%357 = fadd double %354, %356
%358 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %357, double* %358
%359 = load double, double* %29
%360 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%361 = load double, double* %360
%362 = fadd double %359, %361
%363 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %362, double* %363
%364 = load double, double* %28
%365 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%366 = load double, double* %365
%367 = fsub double %364, %366
%368 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %367, double* %368
%369 = load double, double* %29
%370 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%371 = load double, double* %370
%372 = fsub double %369, %371
%373 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %372, double* %373
%374 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%375 = load double, double* %374
store double %375, double* %21
%376 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%377 = load double, double* %376
%378 = load double, double* %15
%379 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%380 = load double, double* %379
%381 = load double, double* %18
%382 = fmul double %380, %381
%383 = fneg double %382
%384 = call double @llvm.fmuladd.f64(double %377, double %378, double %383)
%385 = fmul double 0x3FE6A09E60000000, %384
%386 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %385, double* %386
%387 = load double, double* %21
%388 = load double, double* %18
%389 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%390 = load double, double* %389
%391 = load double, double* %15
%392 = fmul double %390, %391
%393 = call double @llvm.fmuladd.f64(double %387, double %388, double %392)
%394 = fmul double 0x3FE6A09E60000000, %393
%395 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %394, double* %395
%396 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%397 = load double, double* %396
store double %397, double* %21
%398 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%399 = load double, double* %398
%400 = load double, double* %16
%401 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%402 = load double, double* %401
%403 = load double, double* %19
%404 = fmul double %402, %403
%405 = fneg double %404
%406 = call double @llvm.fmuladd.f64(double %399, double %400, double %405)
%407 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %406, double* %407
%408 = load double, double* %21
%409 = load double, double* %19
%410 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%411 = load double, double* %410
%412 = load double, double* %16
%413 = fmul double %411, %412
%414 = call double @llvm.fmuladd.f64(double %408, double %409, double %413)
%415 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %414, double* %415
%416 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%417 = load double, double* %416
store double %417, double* %21
%418 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%419 = load double, double* %418
%420 = load double, double* %17
%421 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%422 = load double, double* %421
%423 = load double, double* %20
%424 = fmul double %422, %423
%425 = fneg double %424
%426 = call double @llvm.fmuladd.f64(double %419, double %420, double %425)
%427 = fmul double 0x3FE6A09E60000000, %426
%428 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %427, double* %428
%429 = load double, double* %21
%430 = load double, double* %20
%431 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%432 = load double, double* %431
%433 = load double, double* %17
%434 = fmul double %432, %433
%435 = call double @llvm.fmuladd.f64(double %429, double %430, double %434)
%436 = fmul double 0x3FE6A09E60000000, %435
%437 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %436, double* %437
store double 0.000000e+00, double* %30
store double -1.000000e+00, double* %31
%438 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%439 = load double, double* %438
store double %439, double* %33
%440 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%441 = load double, double* %440
store double %441, double* %34
%442 = load double, double* %33
%443 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%444 = load double, double* %443
%445 = fadd double %442, %444
%446 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %445, double* %446
%447 = load double, double* %34
%448 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%449 = load double, double* %448
%450 = fadd double %447, %449
%451 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %450, double* %451
%452 = load double, double* %33
%453 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%454 = load double, double* %453
%455 = fsub double %452, %454
%456 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %455, double* %456
%457 = load double, double* %34
%458 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%459 = load double, double* %458
%460 = fsub double %457, %459
%461 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %460, double* %461
%462 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%463 = load double, double* %462
store double %463, double* %35
%464 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%465 = load double, double* %464
store double %465, double* %36
%466 = load double, double* %35
%467 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%468 = load double, double* %467
%469 = fadd double %466, %468
%470 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %469, double* %470
%471 = load double, double* %36
%472 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%473 = load double, double* %472
%474 = fadd double %471, %473
%475 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %474, double* %475
%476 = load double, double* %35
%477 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%478 = load double, double* %477
%479 = fsub double %476, %478
%480 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %479, double* %480
%481 = load double, double* %36
%482 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%483 = load double, double* %482
%484 = fsub double %481, %483
%485 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %484, double* %485
%486 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%487 = load double, double* %486
store double %487, double* %32
%488 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%489 = load double, double* %488
%490 = load double, double* %30
%491 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%492 = load double, double* %491
%493 = load double, double* %31
%494 = fmul double %492, %493
%495 = fneg double %494
%496 = call double @llvm.fmuladd.f64(double %489, double %490, double %495)
%497 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %496, double* %497
%498 = load double, double* %32
%499 = load double, double* %31
%500 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%501 = load double, double* %500
%502 = load double, double* %30
%503 = fmul double %501, %502
%504 = fneg double %503
%505 = call double @llvm.fmuladd.f64(double %498, double %499, double %504)
%506 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %505, double* %506
%507 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%508 = load double, double* %507
store double %508, double* %37
%509 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%510 = load double, double* %509
store double %510, double* %38
%511 = load double, double* %37
%512 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%513 = load double, double* %512
%514 = fadd double %511, %513
%515 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %514, double* %515
%516 = load double, double* %38
%517 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%518 = load double, double* %517
%519 = fadd double %516, %518
%520 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %519, double* %520
%521 = load double, double* %37
%522 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%523 = load double, double* %522
%524 = fsub double %521, %523
%525 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %524, double* %525
%526 = load double, double* %38
%527 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%528 = load double, double* %527
%529 = fsub double %526, %528
%530 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %529, double* %530
%531 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%532 = load double, double* %531
store double %532, double* %39
%533 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%534 = load double, double* %533
store double %534, double* %40
%535 = load double, double* %39
%536 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%537 = load double, double* %536
%538 = fadd double %535, %537
%539 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %538, double* %539
%540 = load double, double* %40
%541 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%542 = load double, double* %541
%543 = fadd double %540, %542
%544 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %543, double* %544
%545 = load double, double* %39
%546 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%547 = load double, double* %546
%548 = fsub double %545, %547
%549 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %548, double* %549
%550 = load double, double* %40
%551 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%552 = load double, double* %551
%553 = fsub double %550, %552
%554 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %553, double* %554
store double 0.000000e+00, double* %41
store double -1.000000e+00, double* %42
%555 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%556 = load double, double* %555
store double %556, double* %44
%557 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%558 = load double, double* %557
store double %558, double* %45
%559 = load double, double* %44
%560 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%561 = load double, double* %560
%562 = fadd double %559, %561
%563 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %562, double* %563
%564 = load double, double* %45
%565 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%566 = load double, double* %565
%567 = fadd double %564, %566
%568 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %567, double* %568
%569 = load double, double* %44
%570 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%571 = load double, double* %570
%572 = fsub double %569, %571
%573 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %572, double* %573
%574 = load double, double* %45
%575 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%576 = load double, double* %575
%577 = fsub double %574, %576
%578 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %577, double* %578
%579 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%580 = load double, double* %579
store double %580, double* %46
%581 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%582 = load double, double* %581
store double %582, double* %47
%583 = load double, double* %46
%584 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%585 = load double, double* %584
%586 = fadd double %583, %585
%587 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %586, double* %587
%588 = load double, double* %47
%589 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%590 = load double, double* %589
%591 = fadd double %588, %590
%592 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %591, double* %592
%593 = load double, double* %46
%594 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%595 = load double, double* %594
%596 = fsub double %593, %595
%597 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %596, double* %597
%598 = load double, double* %47
%599 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%600 = load double, double* %599
%601 = fsub double %598, %600
%602 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %601, double* %602
%603 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%604 = load double, double* %603
store double %604, double* %43
%605 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%606 = load double, double* %605
%607 = load double, double* %41
%608 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%609 = load double, double* %608
%610 = load double, double* %42
%611 = fmul double %609, %610
%612 = fneg double %611
%613 = call double @llvm.fmuladd.f64(double %606, double %607, double %612)
%614 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %613, double* %614
%615 = load double, double* %43
%616 = load double, double* %42
%617 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%618 = load double, double* %617
%619 = load double, double* %41
%620 = fmul double %618, %619
%621 = fneg double %620
%622 = call double @llvm.fmuladd.f64(double %615, double %616, double %621)
%623 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %622, double* %623
%624 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%625 = load double, double* %624
store double %625, double* %48
%626 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%627 = load double, double* %626
store double %627, double* %49
%628 = load double, double* %48
%629 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%630 = load double, double* %629
%631 = fadd double %628, %630
%632 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %631, double* %632
%633 = load double, double* %49
%634 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%635 = load double, double* %634
%636 = fadd double %633, %635
%637 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %636, double* %637
%638 = load double, double* %48
%639 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%640 = load double, double* %639
%641 = fsub double %638, %640
%642 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %641, double* %642
%643 = load double, double* %49
%644 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%645 = load double, double* %644
%646 = fsub double %643, %645
%647 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %646, double* %647
%648 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%649 = load double, double* %648
store double %649, double* %50
%650 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%651 = load double, double* %650
store double %651, double* %51
%652 = load double, double* %50
%653 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%654 = load double, double* %653
%655 = fadd double %652, %654
%656 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %655, double* %656
%657 = load double, double* %51
%658 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%659 = load double, double* %658
%660 = fadd double %657, %659
%661 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %660, double* %661
%662 = load double, double* %50
%663 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%664 = load double, double* %663
%665 = fsub double %662, %664
%666 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %665, double* %666
%667 = load double, double* %51
%668 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%669 = load double, double* %668
%670 = fsub double %667, %669
%671 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %670, double* %671
%672 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%673 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%674 = load i32, i32* %5
%675 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @twiddles8 to i32 (double*, double*, i32, i32, ...)*)(double* %672, double* %673, i32 %674, i32 512)
%676 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%677 = load double, double* %676
%678 = load i32, i32* %5
%679 = mul nsw i32 %678, 8
%680 = sext i32 %679 to i64
%681 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %680
store double %677, double* %681
%682 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%683 = load double, double* %682
%684 = load i32, i32* %5
%685 = mul nsw i32 %684, 8
%686 = add nsw i32 %685, 1
%687 = sext i32 %686 to i64
%688 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %687
store double %683, double* %688
%689 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%690 = load double, double* %689
%691 = load i32, i32* %5
%692 = mul nsw i32 %691, 8
%693 = add nsw i32 %692, 2
%694 = sext i32 %693 to i64
%695 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %694
store double %690, double* %695
%696 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%697 = load double, double* %696
%698 = load i32, i32* %5
%699 = mul nsw i32 %698, 8
%700 = add nsw i32 %699, 3
%701 = sext i32 %700 to i64
%702 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %701
store double %697, double* %702
%703 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%704 = load double, double* %703
%705 = load i32, i32* %5
%706 = mul nsw i32 %705, 8
%707 = add nsw i32 %706, 4
%708 = sext i32 %707 to i64
%709 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %708
store double %704, double* %709
%710 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%711 = load double, double* %710
%712 = load i32, i32* %5
%713 = mul nsw i32 %712, 8
%714 = add nsw i32 %713, 5
%715 = sext i32 %714 to i64
%716 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %715
store double %711, double* %716
%717 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%718 = load double, double* %717
%719 = load i32, i32* %5
%720 = mul nsw i32 %719, 8
%721 = add nsw i32 %720, 6
%722 = sext i32 %721 to i64
%723 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %722
store double %718, double* %723
%724 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%725 = load double, double* %724
%726 = load i32, i32* %5
%727 = mul nsw i32 %726, 8
%728 = add nsw i32 %727, 7
%729 = sext i32 %728 to i64
%730 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %729
store double %725, double* %730
%731 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%732 = load double, double* %731
%733 = load i32, i32* %5
%734 = mul nsw i32 %733, 8
%735 = sext i32 %734 to i64
%736 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %735
store double %732, double* %736
%737 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%738 = load double, double* %737
%739 = load i32, i32* %5
%740 = mul nsw i32 %739, 8
%741 = add nsw i32 %740, 1
%742 = sext i32 %741 to i64
%743 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %742
store double %738, double* %743
%744 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%745 = load double, double* %744
%746 = load i32, i32* %5
%747 = mul nsw i32 %746, 8
%748 = add nsw i32 %747, 2
%749 = sext i32 %748 to i64
%750 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %749
store double %745, double* %750
%751 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%752 = load double, double* %751
%753 = load i32, i32* %5
%754 = mul nsw i32 %753, 8
%755 = add nsw i32 %754, 3
%756 = sext i32 %755 to i64
%757 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %756
store double %752, double* %757
%758 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%759 = load double, double* %758
%760 = load i32, i32* %5
%761 = mul nsw i32 %760, 8
%762 = add nsw i32 %761, 4
%763 = sext i32 %762 to i64
%764 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %763
store double %759, double* %764
%765 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%766 = load double, double* %765
%767 = load i32, i32* %5
%768 = mul nsw i32 %767, 8
%769 = add nsw i32 %768, 5
%770 = sext i32 %769 to i64
%771 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %770
store double %766, double* %771
%772 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%773 = load double, double* %772
%774 = load i32, i32* %5
%775 = mul nsw i32 %774, 8
%776 = add nsw i32 %775, 6
%777 = sext i32 %776 to i64
%778 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %777
store double %773, double* %778
%779 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%780 = load double, double* %779
%781 = load i32, i32* %5
%782 = mul nsw i32 %781, 8
%783 = add nsw i32 %782, 7
%784 = sext i32 %783 to i64
%785 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %784
store double %780, double* %785
br label %786
786: ; preds = %133
%787 = load i32, i32* %5
%788 = add nsw i32 %787, 1
store i32 %788, i32* %5
br label %130
789: ; preds = %130
store i32 66, i32* %52
br label %790
790: ; preds = %789
store i32 0, i32* %5
br label %791
791: ; preds = %899, %790
%792 = load i32, i32* %5
%793 = icmp slt i32 %792, 64
br i1 %793, label %794, label %902
794: ; preds = %791
%795 = load i32, i32* %5
%796 = ashr i32 %795, 3
store i32 %796, i32* %6
%797 = load i32, i32* %5
%798 = and i32 %797, 7
store i32 %798, i32* %7
%799 = load i32, i32* %6
%800 = mul nsw i32 %799, 8
%801 = load i32, i32* %7
%802 = add nsw i32 %800, %801
store i32 %802, i32* %53
%803 = load i32, i32* %5
%804 = mul nsw i32 %803, 8
%805 = add nsw i32 %804, 0
%806 = sext i32 %805 to i64
%807 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %806
%808 = load double, double* %807
%809 = load i32, i32* %52
%810 = mul nsw i32 0, %809
%811 = load i32, i32* %53
%812 = add nsw i32 %810, %811
%813 = sext i32 %812 to i64
%814 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %813
store double %808, double* %814
%815 = load i32, i32* %5
%816 = mul nsw i32 %815, 8
%817 = add nsw i32 %816, 1
%818 = sext i32 %817 to i64
%819 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %818
%820 = load double, double* %819
%821 = load i32, i32* %52
%822 = mul nsw i32 4, %821
%823 = load i32, i32* %53
%824 = add nsw i32 %822, %823
%825 = sext i32 %824 to i64
%826 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %825
store double %820, double* %826
%827 = load i32, i32* %5
%828 = mul nsw i32 %827, 8
%829 = add nsw i32 %828, 4
%830 = sext i32 %829 to i64
%831 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %830
%832 = load double, double* %831
%833 = load i32, i32* %52
%834 = mul nsw i32 1, %833
%835 = load i32, i32* %53
%836 = add nsw i32 %834, %835
%837 = sext i32 %836 to i64
%838 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %837
store double %832, double* %838
%839 = load i32, i32* %5
%840 = mul nsw i32 %839, 8
%841 = add nsw i32 %840, 5
%842 = sext i32 %841 to i64
%843 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %842
%844 = load double, double* %843
%845 = load i32, i32* %52
%846 = mul nsw i32 5, %845
%847 = load i32, i32* %53
%848 = add nsw i32 %846, %847
%849 = sext i32 %848 to i64
%850 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %849
store double %844, double* %850
%851 = load i32, i32* %5
%852 = mul nsw i32 %851, 8
%853 = add nsw i32 %852, 2
%854 = sext i32 %853 to i64
%855 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %854
%856 = load double, double* %855
%857 = load i32, i32* %52
%858 = mul nsw i32 2, %857
%859 = load i32, i32* %53
%860 = add nsw i32 %858, %859
%861 = sext i32 %860 to i64
%862 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %861
store double %856, double* %862
%863 = load i32, i32* %5
%864 = mul nsw i32 %863, 8
%865 = add nsw i32 %864, 3
%866 = sext i32 %865 to i64
%867 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %866
%868 = load double, double* %867
%869 = load i32, i32* %52
%870 = mul nsw i32 6, %869
%871 = load i32, i32* %53
%872 = add nsw i32 %870, %871
%873 = sext i32 %872 to i64
%874 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %873
store double %868, double* %874
%875 = load i32, i32* %5
%876 = mul nsw i32 %875, 8
%877 = add nsw i32 %876, 6
%878 = sext i32 %877 to i64
%879 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %878
%880 = load double, double* %879
%881 = load i32, i32* %52
%882 = mul nsw i32 3, %881
%883 = load i32, i32* %53
%884 = add nsw i32 %882, %883
%885 = sext i32 %884 to i64
%886 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %885
store double %880, double* %886
%887 = load i32, i32* %5
%888 = mul nsw i32 %887, 8
%889 = add nsw i32 %888, 7
%890 = sext i32 %889 to i64
%891 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %890
%892 = load double, double* %891
%893 = load i32, i32* %52
%894 = mul nsw i32 7, %893
%895 = load i32, i32* %53
%896 = add nsw i32 %894, %895
%897 = sext i32 %896 to i64
%898 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %897
store double %892, double* %898
br label %899
899: ; preds = %794
%900 = load i32, i32* %5
%901 = add nsw i32 %900, 1
store i32 %901, i32* %5
br label %791
902: ; preds = %791
store i32 8, i32* %52
br label %903
903: ; preds = %902
store i32 0, i32* %5
br label %904
904: ; preds = %1012, %903
%905 = load i32, i32* %5
%906 = icmp slt i32 %905, 64
br i1 %906, label %907, label %1015
907: ; preds = %904
%908 = load i32, i32* %5
%909 = ashr i32 %908, 3
store i32 %909, i32* %6
%910 = load i32, i32* %5
%911 = and i32 %910, 7
store i32 %911, i32* %7
%912 = load i32, i32* %7
%913 = mul nsw i32 %912, 66
%914 = load i32, i32* %6
%915 = add nsw i32 %913, %914
store i32 %915, i32* %53
%916 = load i32, i32* %52
%917 = mul nsw i32 0, %916
%918 = load i32, i32* %53
%919 = add nsw i32 %917, %918
%920 = sext i32 %919 to i64
%921 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %920
%922 = load double, double* %921
%923 = load i32, i32* %5
%924 = mul nsw i32 %923, 8
%925 = add nsw i32 %924, 0
%926 = sext i32 %925 to i64
%927 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %926
store double %922, double* %927
%928 = load i32, i32* %52
%929 = mul nsw i32 4, %928
%930 = load i32, i32* %53
%931 = add nsw i32 %929, %930
%932 = sext i32 %931 to i64
%933 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %932
%934 = load double, double* %933
%935 = load i32, i32* %5
%936 = mul nsw i32 %935, 8
%937 = add nsw i32 %936, 4
%938 = sext i32 %937 to i64
%939 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %938
store double %934, double* %939
%940 = load i32, i32* %52
%941 = mul nsw i32 1, %940
%942 = load i32, i32* %53
%943 = add nsw i32 %941, %942
%944 = sext i32 %943 to i64
%945 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %944
%946 = load double, double* %945
%947 = load i32, i32* %5
%948 = mul nsw i32 %947, 8
%949 = add nsw i32 %948, 1
%950 = sext i32 %949 to i64
%951 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %950
store double %946, double* %951
%952 = load i32, i32* %52
%953 = mul nsw i32 5, %952
%954 = load i32, i32* %53
%955 = add nsw i32 %953, %954
%956 = sext i32 %955 to i64
%957 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %956
%958 = load double, double* %957
%959 = load i32, i32* %5
%960 = mul nsw i32 %959, 8
%961 = add nsw i32 %960, 5
%962 = sext i32 %961 to i64
%963 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %962
store double %958, double* %963
%964 = load i32, i32* %52
%965 = mul nsw i32 2, %964
%966 = load i32, i32* %53
%967 = add nsw i32 %965, %966
%968 = sext i32 %967 to i64
%969 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %968
%970 = load double, double* %969
%971 = load i32, i32* %5
%972 = mul nsw i32 %971, 8
%973 = add nsw i32 %972, 2
%974 = sext i32 %973 to i64
%975 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %974
store double %970, double* %975
%976 = load i32, i32* %52
%977 = mul nsw i32 6, %976
%978 = load i32, i32* %53
%979 = add nsw i32 %977, %978
%980 = sext i32 %979 to i64
%981 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %980
%982 = load double, double* %981
%983 = load i32, i32* %5
%984 = mul nsw i32 %983, 8
%985 = add nsw i32 %984, 6
%986 = sext i32 %985 to i64
%987 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %986
store double %982, double* %987
%988 = load i32, i32* %52
%989 = mul nsw i32 3, %988
%990 = load i32, i32* %53
%991 = add nsw i32 %989, %990
%992 = sext i32 %991 to i64
%993 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %992
%994 = load double, double* %993
%995 = load i32, i32* %5
%996 = mul nsw i32 %995, 8
%997 = add nsw i32 %996, 3
%998 = sext i32 %997 to i64
%999 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %998
store double %994, double* %999
%1000 = load i32, i32* %52
%1001 = mul nsw i32 7, %1000
%1002 = load i32, i32* %53
%1003 = add nsw i32 %1001, %1002
%1004 = sext i32 %1003 to i64
%1005 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1004
%1006 = load double, double* %1005
%1007 = load i32, i32* %5
%1008 = mul nsw i32 %1007, 8
%1009 = add nsw i32 %1008, 7
%1010 = sext i32 %1009 to i64
%1011 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1010
store double %1006, double* %1011
br label %1012
1012: ; preds = %907
%1013 = load i32, i32* %5
%1014 = add nsw i32 %1013, 1
store i32 %1014, i32* %5
br label %904
1015: ; preds = %904
store i32 66, i32* %52
br label %1016
1016: ; preds = %1015
store i32 0, i32* %5
br label %1017
1017: ; preds = %1125, %1016
%1018 = load i32, i32* %5
%1019 = icmp slt i32 %1018, 64
br i1 %1019, label %1020, label %1128
1020: ; preds = %1017
%1021 = load i32, i32* %5
%1022 = ashr i32 %1021, 3
store i32 %1022, i32* %6
%1023 = load i32, i32* %5
%1024 = and i32 %1023, 7
store i32 %1024, i32* %7
%1025 = load i32, i32* %6
%1026 = mul nsw i32 %1025, 8
%1027 = load i32, i32* %7
%1028 = add nsw i32 %1026, %1027
store i32 %1028, i32* %53
%1029 = load i32, i32* %5
%1030 = mul nsw i32 %1029, 8
%1031 = add nsw i32 %1030, 0
%1032 = sext i32 %1031 to i64
%1033 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1032
%1034 = load double, double* %1033
%1035 = load i32, i32* %52
%1036 = mul nsw i32 0, %1035
%1037 = load i32, i32* %53
%1038 = add nsw i32 %1036, %1037
%1039 = sext i32 %1038 to i64
%1040 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1039
store double %1034, double* %1040
%1041 = load i32, i32* %5
%1042 = mul nsw i32 %1041, 8
%1043 = add nsw i32 %1042, 1
%1044 = sext i32 %1043 to i64
%1045 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1044
%1046 = load double, double* %1045
%1047 = load i32, i32* %52
%1048 = mul nsw i32 4, %1047
%1049 = load i32, i32* %53
%1050 = add nsw i32 %1048, %1049
%1051 = sext i32 %1050 to i64
%1052 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1051
store double %1046, double* %1052
%1053 = load i32, i32* %5
%1054 = mul nsw i32 %1053, 8
%1055 = add nsw i32 %1054, 4
%1056 = sext i32 %1055 to i64
%1057 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1056
%1058 = load double, double* %1057
%1059 = load i32, i32* %52
%1060 = mul nsw i32 1, %1059
%1061 = load i32, i32* %53
%1062 = add nsw i32 %1060, %1061
%1063 = sext i32 %1062 to i64
%1064 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1063
store double %1058, double* %1064
%1065 = load i32, i32* %5
%1066 = mul nsw i32 %1065, 8
%1067 = add nsw i32 %1066, 5
%1068 = sext i32 %1067 to i64
%1069 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1068
%1070 = load double, double* %1069
%1071 = load i32, i32* %52
%1072 = mul nsw i32 5, %1071
%1073 = load i32, i32* %53
%1074 = add nsw i32 %1072, %1073
%1075 = sext i32 %1074 to i64
%1076 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1075
store double %1070, double* %1076
%1077 = load i32, i32* %5
%1078 = mul nsw i32 %1077, 8
%1079 = add nsw i32 %1078, 2
%1080 = sext i32 %1079 to i64
%1081 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1080
%1082 = load double, double* %1081
%1083 = load i32, i32* %52
%1084 = mul nsw i32 2, %1083
%1085 = load i32, i32* %53
%1086 = add nsw i32 %1084, %1085
%1087 = sext i32 %1086 to i64
%1088 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1087
store double %1082, double* %1088
%1089 = load i32, i32* %5
%1090 = mul nsw i32 %1089, 8
%1091 = add nsw i32 %1090, 3
%1092 = sext i32 %1091 to i64
%1093 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1092
%1094 = load double, double* %1093
%1095 = load i32, i32* %52
%1096 = mul nsw i32 6, %1095
%1097 = load i32, i32* %53
%1098 = add nsw i32 %1096, %1097
%1099 = sext i32 %1098 to i64
%1100 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1099
store double %1094, double* %1100
%1101 = load i32, i32* %5
%1102 = mul nsw i32 %1101, 8
%1103 = add nsw i32 %1102, 6
%1104 = sext i32 %1103 to i64
%1105 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1104
%1106 = load double, double* %1105
%1107 = load i32, i32* %52
%1108 = mul nsw i32 3, %1107
%1109 = load i32, i32* %53
%1110 = add nsw i32 %1108, %1109
%1111 = sext i32 %1110 to i64
%1112 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1111
store double %1106, double* %1112
%1113 = load i32, i32* %5
%1114 = mul nsw i32 %1113, 8
%1115 = add nsw i32 %1114, 7
%1116 = sext i32 %1115 to i64
%1117 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1116
%1118 = load double, double* %1117
%1119 = load i32, i32* %52
%1120 = mul nsw i32 7, %1119
%1121 = load i32, i32* %53
%1122 = add nsw i32 %1120, %1121
%1123 = sext i32 %1122 to i64
%1124 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1123
store double %1118, double* %1124
br label %1125
1125: ; preds = %1020
%1126 = load i32, i32* %5
%1127 = add nsw i32 %1126, 1
store i32 %1127, i32* %5
br label %1017
1128: ; preds = %1017
br label %1129
1129: ; preds = %1128
store i32 0, i32* %5
br label %1130
1130: ; preds = %1256, %1129
%1131 = load i32, i32* %5
%1132 = icmp slt i32 %1131, 64
br i1 %1132, label %1133, label %1259
1133: ; preds = %1130
%1134 = load i32, i32* %5
%1135 = mul nsw i32 %1134, 8
%1136 = add nsw i32 %1135, 0
%1137 = sext i32 %1136 to i64
%1138 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1137
%1139 = load double, double* %1138
%1140 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %1139, double* %1140
%1141 = load i32, i32* %5
%1142 = mul nsw i32 %1141, 8
%1143 = add nsw i32 %1142, 1
%1144 = sext i32 %1143 to i64
%1145 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1144
%1146 = load double, double* %1145
%1147 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %1146, double* %1147
%1148 = load i32, i32* %5
%1149 = mul nsw i32 %1148, 8
%1150 = add nsw i32 %1149, 2
%1151 = sext i32 %1150 to i64
%1152 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1151
%1153 = load double, double* %1152
%1154 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %1153, double* %1154
%1155 = load i32, i32* %5
%1156 = mul nsw i32 %1155, 8
%1157 = add nsw i32 %1156, 3
%1158 = sext i32 %1157 to i64
%1159 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1158
%1160 = load double, double* %1159
%1161 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1160, double* %1161
%1162 = load i32, i32* %5
%1163 = mul nsw i32 %1162, 8
%1164 = add nsw i32 %1163, 4
%1165 = sext i32 %1164 to i64
%1166 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1165
%1167 = load double, double* %1166
%1168 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %1167, double* %1168
%1169 = load i32, i32* %5
%1170 = mul nsw i32 %1169, 8
%1171 = add nsw i32 %1170, 5
%1172 = sext i32 %1171 to i64
%1173 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1172
%1174 = load double, double* %1173
%1175 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1174, double* %1175
%1176 = load i32, i32* %5
%1177 = mul nsw i32 %1176, 8
%1178 = add nsw i32 %1177, 6
%1179 = sext i32 %1178 to i64
%1180 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1179
%1181 = load double, double* %1180
%1182 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1181, double* %1182
%1183 = load i32, i32* %5
%1184 = mul nsw i32 %1183, 8
%1185 = add nsw i32 %1184, 7
%1186 = sext i32 %1185 to i64
%1187 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1186
%1188 = load double, double* %1187
%1189 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1188, double* %1189
%1190 = load i32, i32* %5
%1191 = ashr i32 %1190, 3
store i32 %1191, i32* %6
%1192 = load i32, i32* %5
%1193 = and i32 %1192, 7
store i32 %1193, i32* %7
%1194 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1195 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 0
%1196 = load i32, i32* %7
%1197 = mul nsw i32 %1196, 66
%1198 = load i32, i32* %6
%1199 = add nsw i32 %1197, %1198
%1200 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @loady8 to i32 (double*, double*, i32, i32, ...)*)(double* %1194, double* %1195, i32 %1199, i32 8)
%1201 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1202 = load double, double* %1201
%1203 = load i32, i32* %5
%1204 = mul nsw i32 %1203, 8
%1205 = sext i32 %1204 to i64
%1206 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1205
store double %1202, double* %1206
%1207 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1208 = load double, double* %1207
%1209 = load i32, i32* %5
%1210 = mul nsw i32 %1209, 8
%1211 = add nsw i32 %1210, 1
%1212 = sext i32 %1211 to i64
%1213 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1212
store double %1208, double* %1213
%1214 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1215 = load double, double* %1214
%1216 = load i32, i32* %5
%1217 = mul nsw i32 %1216, 8
%1218 = add nsw i32 %1217, 2
%1219 = sext i32 %1218 to i64
%1220 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1219
store double %1215, double* %1220
%1221 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1222 = load double, double* %1221
%1223 = load i32, i32* %5
%1224 = mul nsw i32 %1223, 8
%1225 = add nsw i32 %1224, 3
%1226 = sext i32 %1225 to i64
%1227 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1226
store double %1222, double* %1227
%1228 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1229 = load double, double* %1228
%1230 = load i32, i32* %5
%1231 = mul nsw i32 %1230, 8
%1232 = add nsw i32 %1231, 4
%1233 = sext i32 %1232 to i64
%1234 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1233
store double %1229, double* %1234
%1235 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1236 = load double, double* %1235
%1237 = load i32, i32* %5
%1238 = mul nsw i32 %1237, 8
%1239 = add nsw i32 %1238, 5
%1240 = sext i32 %1239 to i64
%1241 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1240
store double %1236, double* %1241
%1242 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1243 = load double, double* %1242
%1244 = load i32, i32* %5
%1245 = mul nsw i32 %1244, 8
%1246 = add nsw i32 %1245, 6
%1247 = sext i32 %1246 to i64
%1248 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1247
store double %1243, double* %1248
%1249 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1250 = load double, double* %1249
%1251 = load i32, i32* %5
%1252 = mul nsw i32 %1251, 8
%1253 = add nsw i32 %1252, 7
%1254 = sext i32 %1253 to i64
%1255 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1254
store double %1250, double* %1255
br label %1256
1256: ; preds = %1133
%1257 = load i32, i32* %5
%1258 = add nsw i32 %1257, 1
store i32 %1258, i32* %5
br label %1130
1259: ; preds = %1130
br label %1260
1260: ; preds = %1259
store i32 0, i32* %5
br label %1261
1261: ; preds = %1887, %1260
%1262 = load i32, i32* %5
%1263 = icmp slt i32 %1262, 64
br i1 %1263, label %1264, label %1890
1264: ; preds = %1261
%1265 = load i32, i32* %5
%1266 = mul nsw i32 %1265, 8
%1267 = add nsw i32 %1266, 0
%1268 = sext i32 %1267 to i64
%1269 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1268
%1270 = load double, double* %1269
%1271 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %1270, double* %1271
%1272 = load i32, i32* %5
%1273 = mul nsw i32 %1272, 8
%1274 = add nsw i32 %1273, 1
%1275 = sext i32 %1274 to i64
%1276 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1275
%1277 = load double, double* %1276
%1278 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %1277, double* %1278
%1279 = load i32, i32* %5
%1280 = mul nsw i32 %1279, 8
%1281 = add nsw i32 %1280, 2
%1282 = sext i32 %1281 to i64
%1283 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1282
%1284 = load double, double* %1283
%1285 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %1284, double* %1285
%1286 = load i32, i32* %5
%1287 = mul nsw i32 %1286, 8
%1288 = add nsw i32 %1287, 3
%1289 = sext i32 %1288 to i64
%1290 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1289
%1291 = load double, double* %1290
%1292 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %1291, double* %1292
%1293 = load i32, i32* %5
%1294 = mul nsw i32 %1293, 8
%1295 = add nsw i32 %1294, 4
%1296 = sext i32 %1295 to i64
%1297 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1296
%1298 = load double, double* %1297
%1299 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %1298, double* %1299
%1300 = load i32, i32* %5
%1301 = mul nsw i32 %1300, 8
%1302 = add nsw i32 %1301, 5
%1303 = sext i32 %1302 to i64
%1304 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1303
%1305 = load double, double* %1304
%1306 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %1305, double* %1306
%1307 = load i32, i32* %5
%1308 = mul nsw i32 %1307, 8
%1309 = add nsw i32 %1308, 6
%1310 = sext i32 %1309 to i64
%1311 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1310
%1312 = load double, double* %1311
%1313 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %1312, double* %1313
%1314 = load i32, i32* %5
%1315 = mul nsw i32 %1314, 8
%1316 = add nsw i32 %1315, 7
%1317 = sext i32 %1316 to i64
%1318 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1317
%1319 = load double, double* %1318
%1320 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1319, double* %1320
%1321 = load i32, i32* %5
%1322 = mul nsw i32 %1321, 8
%1323 = add nsw i32 %1322, 0
%1324 = sext i32 %1323 to i64
%1325 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1324
%1326 = load double, double* %1325
%1327 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %1326, double* %1327
%1328 = load i32, i32* %5
%1329 = mul nsw i32 %1328, 8
%1330 = add nsw i32 %1329, 1
%1331 = sext i32 %1330 to i64
%1332 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1331
%1333 = load double, double* %1332
%1334 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %1333, double* %1334
%1335 = load i32, i32* %5
%1336 = mul nsw i32 %1335, 8
%1337 = add nsw i32 %1336, 2
%1338 = sext i32 %1337 to i64
%1339 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1338
%1340 = load double, double* %1339
%1341 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %1340, double* %1341
%1342 = load i32, i32* %5
%1343 = mul nsw i32 %1342, 8
%1344 = add nsw i32 %1343, 3
%1345 = sext i32 %1344 to i64
%1346 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1345
%1347 = load double, double* %1346
%1348 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1347, double* %1348
%1349 = load i32, i32* %5
%1350 = mul nsw i32 %1349, 8
%1351 = add nsw i32 %1350, 4
%1352 = sext i32 %1351 to i64
%1353 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1352
%1354 = load double, double* %1353
%1355 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %1354, double* %1355
%1356 = load i32, i32* %5
%1357 = mul nsw i32 %1356, 8
%1358 = add nsw i32 %1357, 5
%1359 = sext i32 %1358 to i64
%1360 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1359
%1361 = load double, double* %1360
%1362 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1361, double* %1362
%1363 = load i32, i32* %5
%1364 = mul nsw i32 %1363, 8
%1365 = add nsw i32 %1364, 6
%1366 = sext i32 %1365 to i64
%1367 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1366
%1368 = load double, double* %1367
%1369 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1368, double* %1369
%1370 = load i32, i32* %5
%1371 = mul nsw i32 %1370, 8
%1372 = add nsw i32 %1371, 7
%1373 = sext i32 %1372 to i64
%1374 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1373
%1375 = load double, double* %1374
%1376 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1375, double* %1376
store double 1.000000e+00, double* %54
store double -1.000000e+00, double* %57
store double 0.000000e+00, double* %55
store double -1.000000e+00, double* %58
store double -1.000000e+00, double* %56
store double -1.000000e+00, double* %59
%1377 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%1378 = load double, double* %1377
store double %1378, double* %61
%1379 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1380 = load double, double* %1379
store double %1380, double* %62
%1381 = load double, double* %61
%1382 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%1383 = load double, double* %1382
%1384 = fadd double %1381, %1383
%1385 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %1384, double* %1385
%1386 = load double, double* %62
%1387 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1388 = load double, double* %1387
%1389 = fadd double %1386, %1388
%1390 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %1389, double* %1390
%1391 = load double, double* %61
%1392 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%1393 = load double, double* %1392
%1394 = fsub double %1391, %1393
%1395 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %1394, double* %1395
%1396 = load double, double* %62
%1397 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1398 = load double, double* %1397
%1399 = fsub double %1396, %1398
%1400 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %1399, double* %1400
%1401 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%1402 = load double, double* %1401
store double %1402, double* %63
%1403 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1404 = load double, double* %1403
store double %1404, double* %64
%1405 = load double, double* %63
%1406 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1407 = load double, double* %1406
%1408 = fadd double %1405, %1407
%1409 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %1408, double* %1409
%1410 = load double, double* %64
%1411 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1412 = load double, double* %1411
%1413 = fadd double %1410, %1412
%1414 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %1413, double* %1414
%1415 = load double, double* %63
%1416 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1417 = load double, double* %1416
%1418 = fsub double %1415, %1417
%1419 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %1418, double* %1419
%1420 = load double, double* %64
%1421 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1422 = load double, double* %1421
%1423 = fsub double %1420, %1422
%1424 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1423, double* %1424
%1425 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%1426 = load double, double* %1425
store double %1426, double* %65
%1427 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1428 = load double, double* %1427
store double %1428, double* %66
%1429 = load double, double* %65
%1430 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1431 = load double, double* %1430
%1432 = fadd double %1429, %1431
%1433 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %1432, double* %1433
%1434 = load double, double* %66
%1435 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1436 = load double, double* %1435
%1437 = fadd double %1434, %1436
%1438 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %1437, double* %1438
%1439 = load double, double* %65
%1440 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1441 = load double, double* %1440
%1442 = fsub double %1439, %1441
%1443 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %1442, double* %1443
%1444 = load double, double* %66
%1445 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1446 = load double, double* %1445
%1447 = fsub double %1444, %1446
%1448 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1447, double* %1448
%1449 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1450 = load double, double* %1449
store double %1450, double* %67
%1451 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1452 = load double, double* %1451
store double %1452, double* %68
%1453 = load double, double* %67
%1454 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1455 = load double, double* %1454
%1456 = fadd double %1453, %1455
%1457 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %1456, double* %1457
%1458 = load double, double* %68
%1459 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1460 = load double, double* %1459
%1461 = fadd double %1458, %1460
%1462 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1461, double* %1462
%1463 = load double, double* %67
%1464 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1465 = load double, double* %1464
%1466 = fsub double %1463, %1465
%1467 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1466, double* %1467
%1468 = load double, double* %68
%1469 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1470 = load double, double* %1469
%1471 = fsub double %1468, %1470
%1472 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1471, double* %1472
%1473 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1474 = load double, double* %1473
store double %1474, double* %60
%1475 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1476 = load double, double* %1475
%1477 = load double, double* %54
%1478 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1479 = load double, double* %1478
%1480 = load double, double* %57
%1481 = fmul double %1479, %1480
%1482 = fneg double %1481
%1483 = call double @llvm.fmuladd.f64(double %1476, double %1477, double %1482)
%1484 = fmul double 0x3FE6A09E60000000, %1483
%1485 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %1484, double* %1485
%1486 = load double, double* %60
%1487 = load double, double* %57
%1488 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1489 = load double, double* %1488
%1490 = load double, double* %54
%1491 = fmul double %1489, %1490
%1492 = call double @llvm.fmuladd.f64(double %1486, double %1487, double %1491)
%1493 = fmul double 0x3FE6A09E60000000, %1492
%1494 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1493, double* %1494
%1495 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1496 = load double, double* %1495
store double %1496, double* %60
%1497 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1498 = load double, double* %1497
%1499 = load double, double* %55
%1500 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1501 = load double, double* %1500
%1502 = load double, double* %58
%1503 = fmul double %1501, %1502
%1504 = fneg double %1503
%1505 = call double @llvm.fmuladd.f64(double %1498, double %1499, double %1504)
%1506 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %1505, double* %1506
%1507 = load double, double* %60
%1508 = load double, double* %58
%1509 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1510 = load double, double* %1509
%1511 = load double, double* %55
%1512 = fmul double %1510, %1511
%1513 = call double @llvm.fmuladd.f64(double %1507, double %1508, double %1512)
%1514 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1513, double* %1514
%1515 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1516 = load double, double* %1515
store double %1516, double* %60
%1517 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1518 = load double, double* %1517
%1519 = load double, double* %56
%1520 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1521 = load double, double* %1520
%1522 = load double, double* %59
%1523 = fmul double %1521, %1522
%1524 = fneg double %1523
%1525 = call double @llvm.fmuladd.f64(double %1518, double %1519, double %1524)
%1526 = fmul double 0x3FE6A09E60000000, %1525
%1527 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1526, double* %1527
%1528 = load double, double* %60
%1529 = load double, double* %59
%1530 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1531 = load double, double* %1530
%1532 = load double, double* %56
%1533 = fmul double %1531, %1532
%1534 = call double @llvm.fmuladd.f64(double %1528, double %1529, double %1533)
%1535 = fmul double 0x3FE6A09E60000000, %1534
%1536 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1535, double* %1536
store double 0.000000e+00, double* %69
store double -1.000000e+00, double* %70
%1537 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%1538 = load double, double* %1537
store double %1538, double* %72
%1539 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1540 = load double, double* %1539
store double %1540, double* %73
%1541 = load double, double* %72
%1542 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%1543 = load double, double* %1542
%1544 = fadd double %1541, %1543
%1545 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %1544, double* %1545
%1546 = load double, double* %73
%1547 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1548 = load double, double* %1547
%1549 = fadd double %1546, %1548
%1550 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %1549, double* %1550
%1551 = load double, double* %72
%1552 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%1553 = load double, double* %1552
%1554 = fsub double %1551, %1553
%1555 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %1554, double* %1555
%1556 = load double, double* %73
%1557 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1558 = load double, double* %1557
%1559 = fsub double %1556, %1558
%1560 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %1559, double* %1560
%1561 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%1562 = load double, double* %1561
store double %1562, double* %74
%1563 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1564 = load double, double* %1563
store double %1564, double* %75
%1565 = load double, double* %74
%1566 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1567 = load double, double* %1566
%1568 = fadd double %1565, %1567
%1569 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %1568, double* %1569
%1570 = load double, double* %75
%1571 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1572 = load double, double* %1571
%1573 = fadd double %1570, %1572
%1574 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %1573, double* %1574
%1575 = load double, double* %74
%1576 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1577 = load double, double* %1576
%1578 = fsub double %1575, %1577
%1579 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %1578, double* %1579
%1580 = load double, double* %75
%1581 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1582 = load double, double* %1581
%1583 = fsub double %1580, %1582
%1584 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1583, double* %1584
%1585 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1586 = load double, double* %1585
store double %1586, double* %71
%1587 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1588 = load double, double* %1587
%1589 = load double, double* %69
%1590 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1591 = load double, double* %1590
%1592 = load double, double* %70
%1593 = fmul double %1591, %1592
%1594 = fneg double %1593
%1595 = call double @llvm.fmuladd.f64(double %1588, double %1589, double %1594)
%1596 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %1595, double* %1596
%1597 = load double, double* %71
%1598 = load double, double* %70
%1599 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1600 = load double, double* %1599
%1601 = load double, double* %69
%1602 = fmul double %1600, %1601
%1603 = fneg double %1602
%1604 = call double @llvm.fmuladd.f64(double %1597, double %1598, double %1603)
%1605 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1604, double* %1605
%1606 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%1607 = load double, double* %1606
store double %1607, double* %76
%1608 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1609 = load double, double* %1608
store double %1609, double* %77
%1610 = load double, double* %76
%1611 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%1612 = load double, double* %1611
%1613 = fadd double %1610, %1612
%1614 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %1613, double* %1614
%1615 = load double, double* %77
%1616 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1617 = load double, double* %1616
%1618 = fadd double %1615, %1617
%1619 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %1618, double* %1619
%1620 = load double, double* %76
%1621 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%1622 = load double, double* %1621
%1623 = fsub double %1620, %1622
%1624 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %1623, double* %1624
%1625 = load double, double* %77
%1626 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1627 = load double, double* %1626
%1628 = fsub double %1625, %1627
%1629 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %1628, double* %1629
%1630 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%1631 = load double, double* %1630
store double %1631, double* %78
%1632 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1633 = load double, double* %1632
store double %1633, double* %79
%1634 = load double, double* %78
%1635 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1636 = load double, double* %1635
%1637 = fadd double %1634, %1636
%1638 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %1637, double* %1638
%1639 = load double, double* %79
%1640 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1641 = load double, double* %1640
%1642 = fadd double %1639, %1641
%1643 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %1642, double* %1643
%1644 = load double, double* %78
%1645 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1646 = load double, double* %1645
%1647 = fsub double %1644, %1646
%1648 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %1647, double* %1648
%1649 = load double, double* %79
%1650 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1651 = load double, double* %1650
%1652 = fsub double %1649, %1651
%1653 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %1652, double* %1653
store double 0.000000e+00, double* %80
store double -1.000000e+00, double* %81
%1654 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%1655 = load double, double* %1654
store double %1655, double* %83
%1656 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1657 = load double, double* %1656
store double %1657, double* %84
%1658 = load double, double* %83
%1659 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1660 = load double, double* %1659
%1661 = fadd double %1658, %1660
%1662 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %1661, double* %1662
%1663 = load double, double* %84
%1664 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1665 = load double, double* %1664
%1666 = fadd double %1663, %1665
%1667 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %1666, double* %1667
%1668 = load double, double* %83
%1669 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1670 = load double, double* %1669
%1671 = fsub double %1668, %1670
%1672 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %1671, double* %1672
%1673 = load double, double* %84
%1674 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1675 = load double, double* %1674
%1676 = fsub double %1673, %1675
%1677 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1676, double* %1677
%1678 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1679 = load double, double* %1678
store double %1679, double* %85
%1680 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1681 = load double, double* %1680
store double %1681, double* %86
%1682 = load double, double* %85
%1683 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1684 = load double, double* %1683
%1685 = fadd double %1682, %1684
%1686 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %1685, double* %1686
%1687 = load double, double* %86
%1688 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1689 = load double, double* %1688
%1690 = fadd double %1687, %1689
%1691 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1690, double* %1691
%1692 = load double, double* %85
%1693 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1694 = load double, double* %1693
%1695 = fsub double %1692, %1694
%1696 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1695, double* %1696
%1697 = load double, double* %86
%1698 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1699 = load double, double* %1698
%1700 = fsub double %1697, %1699
%1701 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1700, double* %1701
%1702 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1703 = load double, double* %1702
store double %1703, double* %82
%1704 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1705 = load double, double* %1704
%1706 = load double, double* %80
%1707 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1708 = load double, double* %1707
%1709 = load double, double* %81
%1710 = fmul double %1708, %1709
%1711 = fneg double %1710
%1712 = call double @llvm.fmuladd.f64(double %1705, double %1706, double %1711)
%1713 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1712, double* %1713
%1714 = load double, double* %82
%1715 = load double, double* %81
%1716 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1717 = load double, double* %1716
%1718 = load double, double* %80
%1719 = fmul double %1717, %1718
%1720 = fneg double %1719
%1721 = call double @llvm.fmuladd.f64(double %1714, double %1715, double %1720)
%1722 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1721, double* %1722
%1723 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%1724 = load double, double* %1723
store double %1724, double* %87
%1725 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1726 = load double, double* %1725
store double %1726, double* %88
%1727 = load double, double* %87
%1728 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1729 = load double, double* %1728
%1730 = fadd double %1727, %1729
%1731 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %1730, double* %1731
%1732 = load double, double* %88
%1733 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1734 = load double, double* %1733
%1735 = fadd double %1732, %1734
%1736 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %1735, double* %1736
%1737 = load double, double* %87
%1738 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1739 = load double, double* %1738
%1740 = fsub double %1737, %1739
%1741 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %1740, double* %1741
%1742 = load double, double* %88
%1743 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1744 = load double, double* %1743
%1745 = fsub double %1742, %1744
%1746 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %1745, double* %1746
%1747 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1748 = load double, double* %1747
store double %1748, double* %89
%1749 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1750 = load double, double* %1749
store double %1750, double* %90
%1751 = load double, double* %89
%1752 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1753 = load double, double* %1752
%1754 = fadd double %1751, %1753
%1755 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %1754, double* %1755
%1756 = load double, double* %90
%1757 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1758 = load double, double* %1757
%1759 = fadd double %1756, %1758
%1760 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %1759, double* %1760
%1761 = load double, double* %89
%1762 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1763 = load double, double* %1762
%1764 = fsub double %1761, %1763
%1765 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %1764, double* %1765
%1766 = load double, double* %90
%1767 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1768 = load double, double* %1767
%1769 = fsub double %1766, %1768
%1770 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %1769, double* %1770
%1771 = load i32, i32* %5
%1772 = ashr i32 %1771, 3
store i32 %1772, i32* %6
%1773 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%1774 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1775 = load i32, i32* %6
%1776 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @twiddles8 to i32 (double*, double*, i32, i32, ...)*)(double* %1773, double* %1774, i32 %1775, i32 64)
%1777 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%1778 = load double, double* %1777
%1779 = load i32, i32* %5
%1780 = mul nsw i32 %1779, 8
%1781 = sext i32 %1780 to i64
%1782 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1781
store double %1778, double* %1782
%1783 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%1784 = load double, double* %1783
%1785 = load i32, i32* %5
%1786 = mul nsw i32 %1785, 8
%1787 = add nsw i32 %1786, 1
%1788 = sext i32 %1787 to i64
%1789 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1788
store double %1784, double* %1789
%1790 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%1791 = load double, double* %1790
%1792 = load i32, i32* %5
%1793 = mul nsw i32 %1792, 8
%1794 = add nsw i32 %1793, 2
%1795 = sext i32 %1794 to i64
%1796 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1795
store double %1791, double* %1796
%1797 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%1798 = load double, double* %1797
%1799 = load i32, i32* %5
%1800 = mul nsw i32 %1799, 8
%1801 = add nsw i32 %1800, 3
%1802 = sext i32 %1801 to i64
%1803 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1802
store double %1798, double* %1803
%1804 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%1805 = load double, double* %1804
%1806 = load i32, i32* %5
%1807 = mul nsw i32 %1806, 8
%1808 = add nsw i32 %1807, 4
%1809 = sext i32 %1808 to i64
%1810 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1809
store double %1805, double* %1810
%1811 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%1812 = load double, double* %1811
%1813 = load i32, i32* %5
%1814 = mul nsw i32 %1813, 8
%1815 = add nsw i32 %1814, 5
%1816 = sext i32 %1815 to i64
%1817 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1816
store double %1812, double* %1817
%1818 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%1819 = load double, double* %1818
%1820 = load i32, i32* %5
%1821 = mul nsw i32 %1820, 8
%1822 = add nsw i32 %1821, 6
%1823 = sext i32 %1822 to i64
%1824 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1823
store double %1819, double* %1824
%1825 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%1826 = load double, double* %1825
%1827 = load i32, i32* %5
%1828 = mul nsw i32 %1827, 8
%1829 = add nsw i32 %1828, 7
%1830 = sext i32 %1829 to i64
%1831 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1830
store double %1826, double* %1831
%1832 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%1833 = load double, double* %1832
%1834 = load i32, i32* %5
%1835 = mul nsw i32 %1834, 8
%1836 = sext i32 %1835 to i64
%1837 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1836
store double %1833, double* %1837
%1838 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%1839 = load double, double* %1838
%1840 = load i32, i32* %5
%1841 = mul nsw i32 %1840, 8
%1842 = add nsw i32 %1841, 1
%1843 = sext i32 %1842 to i64
%1844 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1843
store double %1839, double* %1844
%1845 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%1846 = load double, double* %1845
%1847 = load i32, i32* %5
%1848 = mul nsw i32 %1847, 8
%1849 = add nsw i32 %1848, 2
%1850 = sext i32 %1849 to i64
%1851 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1850
store double %1846, double* %1851
%1852 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%1853 = load double, double* %1852
%1854 = load i32, i32* %5
%1855 = mul nsw i32 %1854, 8
%1856 = add nsw i32 %1855, 3
%1857 = sext i32 %1856 to i64
%1858 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1857
store double %1853, double* %1858
%1859 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%1860 = load double, double* %1859
%1861 = load i32, i32* %5
%1862 = mul nsw i32 %1861, 8
%1863 = add nsw i32 %1862, 4
%1864 = sext i32 %1863 to i64
%1865 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1864
store double %1860, double* %1865
%1866 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%1867 = load double, double* %1866
%1868 = load i32, i32* %5
%1869 = mul nsw i32 %1868, 8
%1870 = add nsw i32 %1869, 5
%1871 = sext i32 %1870 to i64
%1872 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1871
store double %1867, double* %1872
%1873 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%1874 = load double, double* %1873
%1875 = load i32, i32* %5
%1876 = mul nsw i32 %1875, 8
%1877 = add nsw i32 %1876, 6
%1878 = sext i32 %1877 to i64
%1879 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1878
store double %1874, double* %1879
%1880 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%1881 = load double, double* %1880
%1882 = load i32, i32* %5
%1883 = mul nsw i32 %1882, 8
%1884 = add nsw i32 %1883, 7
%1885 = sext i32 %1884 to i64
%1886 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %1885
store double %1881, double* %1886
br label %1887
1887: ; preds = %1264
%1888 = load i32, i32* %5
%1889 = add nsw i32 %1888, 1
store i32 %1889, i32* %5
br label %1261
1890: ; preds = %1261
store i32 72, i32* %52
br label %1891
1891: ; preds = %1890
store i32 0, i32* %5
br label %1892
1892: ; preds = %2000, %1891
%1893 = load i32, i32* %5
%1894 = icmp slt i32 %1893, 64
br i1 %1894, label %1895, label %2003
1895: ; preds = %1892
%1896 = load i32, i32* %5
%1897 = ashr i32 %1896, 3
store i32 %1897, i32* %6
%1898 = load i32, i32* %5
%1899 = and i32 %1898, 7
store i32 %1899, i32* %7
%1900 = load i32, i32* %6
%1901 = mul nsw i32 %1900, 8
%1902 = load i32, i32* %7
%1903 = add nsw i32 %1901, %1902
store i32 %1903, i32* %53
%1904 = load i32, i32* %5
%1905 = mul nsw i32 %1904, 8
%1906 = add nsw i32 %1905, 0
%1907 = sext i32 %1906 to i64
%1908 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1907
%1909 = load double, double* %1908
%1910 = load i32, i32* %52
%1911 = mul nsw i32 0, %1910
%1912 = load i32, i32* %53
%1913 = add nsw i32 %1911, %1912
%1914 = sext i32 %1913 to i64
%1915 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1914
store double %1909, double* %1915
%1916 = load i32, i32* %5
%1917 = mul nsw i32 %1916, 8
%1918 = add nsw i32 %1917, 1
%1919 = sext i32 %1918 to i64
%1920 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1919
%1921 = load double, double* %1920
%1922 = load i32, i32* %52
%1923 = mul nsw i32 4, %1922
%1924 = load i32, i32* %53
%1925 = add nsw i32 %1923, %1924
%1926 = sext i32 %1925 to i64
%1927 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1926
store double %1921, double* %1927
%1928 = load i32, i32* %5
%1929 = mul nsw i32 %1928, 8
%1930 = add nsw i32 %1929, 4
%1931 = sext i32 %1930 to i64
%1932 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1931
%1933 = load double, double* %1932
%1934 = load i32, i32* %52
%1935 = mul nsw i32 1, %1934
%1936 = load i32, i32* %53
%1937 = add nsw i32 %1935, %1936
%1938 = sext i32 %1937 to i64
%1939 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1938
store double %1933, double* %1939
%1940 = load i32, i32* %5
%1941 = mul nsw i32 %1940, 8
%1942 = add nsw i32 %1941, 5
%1943 = sext i32 %1942 to i64
%1944 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1943
%1945 = load double, double* %1944
%1946 = load i32, i32* %52
%1947 = mul nsw i32 5, %1946
%1948 = load i32, i32* %53
%1949 = add nsw i32 %1947, %1948
%1950 = sext i32 %1949 to i64
%1951 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1950
store double %1945, double* %1951
%1952 = load i32, i32* %5
%1953 = mul nsw i32 %1952, 8
%1954 = add nsw i32 %1953, 2
%1955 = sext i32 %1954 to i64
%1956 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1955
%1957 = load double, double* %1956
%1958 = load i32, i32* %52
%1959 = mul nsw i32 2, %1958
%1960 = load i32, i32* %53
%1961 = add nsw i32 %1959, %1960
%1962 = sext i32 %1961 to i64
%1963 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1962
store double %1957, double* %1963
%1964 = load i32, i32* %5
%1965 = mul nsw i32 %1964, 8
%1966 = add nsw i32 %1965, 3
%1967 = sext i32 %1966 to i64
%1968 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1967
%1969 = load double, double* %1968
%1970 = load i32, i32* %52
%1971 = mul nsw i32 6, %1970
%1972 = load i32, i32* %53
%1973 = add nsw i32 %1971, %1972
%1974 = sext i32 %1973 to i64
%1975 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1974
store double %1969, double* %1975
%1976 = load i32, i32* %5
%1977 = mul nsw i32 %1976, 8
%1978 = add nsw i32 %1977, 6
%1979 = sext i32 %1978 to i64
%1980 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1979
%1981 = load double, double* %1980
%1982 = load i32, i32* %52
%1983 = mul nsw i32 3, %1982
%1984 = load i32, i32* %53
%1985 = add nsw i32 %1983, %1984
%1986 = sext i32 %1985 to i64
%1987 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1986
store double %1981, double* %1987
%1988 = load i32, i32* %5
%1989 = mul nsw i32 %1988, 8
%1990 = add nsw i32 %1989, 7
%1991 = sext i32 %1990 to i64
%1992 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %1991
%1993 = load double, double* %1992
%1994 = load i32, i32* %52
%1995 = mul nsw i32 7, %1994
%1996 = load i32, i32* %53
%1997 = add nsw i32 %1995, %1996
%1998 = sext i32 %1997 to i64
%1999 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %1998
store double %1993, double* %1999
br label %2000
2000: ; preds = %1895
%2001 = load i32, i32* %5
%2002 = add nsw i32 %2001, 1
store i32 %2002, i32* %5
br label %1892
2003: ; preds = %1892
store i32 8, i32* %52
br label %2004
2004: ; preds = %2003
store i32 0, i32* %5
br label %2005
2005: ; preds = %2113, %2004
%2006 = load i32, i32* %5
%2007 = icmp slt i32 %2006, 64
br i1 %2007, label %2008, label %2116
2008: ; preds = %2005
%2009 = load i32, i32* %5
%2010 = ashr i32 %2009, 3
store i32 %2010, i32* %6
%2011 = load i32, i32* %5
%2012 = and i32 %2011, 7
store i32 %2012, i32* %7
%2013 = load i32, i32* %6
%2014 = mul nsw i32 %2013, 72
%2015 = load i32, i32* %7
%2016 = add nsw i32 %2014, %2015
store i32 %2016, i32* %53
%2017 = load i32, i32* %52
%2018 = mul nsw i32 0, %2017
%2019 = load i32, i32* %53
%2020 = add nsw i32 %2018, %2019
%2021 = sext i32 %2020 to i64
%2022 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2021
%2023 = load double, double* %2022
%2024 = load i32, i32* %5
%2025 = mul nsw i32 %2024, 8
%2026 = add nsw i32 %2025, 0
%2027 = sext i32 %2026 to i64
%2028 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2027
store double %2023, double* %2028
%2029 = load i32, i32* %52
%2030 = mul nsw i32 4, %2029
%2031 = load i32, i32* %53
%2032 = add nsw i32 %2030, %2031
%2033 = sext i32 %2032 to i64
%2034 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2033
%2035 = load double, double* %2034
%2036 = load i32, i32* %5
%2037 = mul nsw i32 %2036, 8
%2038 = add nsw i32 %2037, 4
%2039 = sext i32 %2038 to i64
%2040 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2039
store double %2035, double* %2040
%2041 = load i32, i32* %52
%2042 = mul nsw i32 1, %2041
%2043 = load i32, i32* %53
%2044 = add nsw i32 %2042, %2043
%2045 = sext i32 %2044 to i64
%2046 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2045
%2047 = load double, double* %2046
%2048 = load i32, i32* %5
%2049 = mul nsw i32 %2048, 8
%2050 = add nsw i32 %2049, 1
%2051 = sext i32 %2050 to i64
%2052 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2051
store double %2047, double* %2052
%2053 = load i32, i32* %52
%2054 = mul nsw i32 5, %2053
%2055 = load i32, i32* %53
%2056 = add nsw i32 %2054, %2055
%2057 = sext i32 %2056 to i64
%2058 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2057
%2059 = load double, double* %2058
%2060 = load i32, i32* %5
%2061 = mul nsw i32 %2060, 8
%2062 = add nsw i32 %2061, 5
%2063 = sext i32 %2062 to i64
%2064 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2063
store double %2059, double* %2064
%2065 = load i32, i32* %52
%2066 = mul nsw i32 2, %2065
%2067 = load i32, i32* %53
%2068 = add nsw i32 %2066, %2067
%2069 = sext i32 %2068 to i64
%2070 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2069
%2071 = load double, double* %2070
%2072 = load i32, i32* %5
%2073 = mul nsw i32 %2072, 8
%2074 = add nsw i32 %2073, 2
%2075 = sext i32 %2074 to i64
%2076 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2075
store double %2071, double* %2076
%2077 = load i32, i32* %52
%2078 = mul nsw i32 6, %2077
%2079 = load i32, i32* %53
%2080 = add nsw i32 %2078, %2079
%2081 = sext i32 %2080 to i64
%2082 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2081
%2083 = load double, double* %2082
%2084 = load i32, i32* %5
%2085 = mul nsw i32 %2084, 8
%2086 = add nsw i32 %2085, 6
%2087 = sext i32 %2086 to i64
%2088 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2087
store double %2083, double* %2088
%2089 = load i32, i32* %52
%2090 = mul nsw i32 3, %2089
%2091 = load i32, i32* %53
%2092 = add nsw i32 %2090, %2091
%2093 = sext i32 %2092 to i64
%2094 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2093
%2095 = load double, double* %2094
%2096 = load i32, i32* %5
%2097 = mul nsw i32 %2096, 8
%2098 = add nsw i32 %2097, 3
%2099 = sext i32 %2098 to i64
%2100 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2099
store double %2095, double* %2100
%2101 = load i32, i32* %52
%2102 = mul nsw i32 7, %2101
%2103 = load i32, i32* %53
%2104 = add nsw i32 %2102, %2103
%2105 = sext i32 %2104 to i64
%2106 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2105
%2107 = load double, double* %2106
%2108 = load i32, i32* %5
%2109 = mul nsw i32 %2108, 8
%2110 = add nsw i32 %2109, 7
%2111 = sext i32 %2110 to i64
%2112 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2111
store double %2107, double* %2112
br label %2113
2113: ; preds = %2008
%2114 = load i32, i32* %5
%2115 = add nsw i32 %2114, 1
store i32 %2115, i32* %5
br label %2005
2116: ; preds = %2005
store i32 72, i32* %52
br label %2117
2117: ; preds = %2116
store i32 0, i32* %5
br label %2118
2118: ; preds = %2226, %2117
%2119 = load i32, i32* %5
%2120 = icmp slt i32 %2119, 64
br i1 %2120, label %2121, label %2229
2121: ; preds = %2118
%2122 = load i32, i32* %5
%2123 = ashr i32 %2122, 3
store i32 %2123, i32* %6
%2124 = load i32, i32* %5
%2125 = and i32 %2124, 7
store i32 %2125, i32* %7
%2126 = load i32, i32* %6
%2127 = mul nsw i32 %2126, 8
%2128 = load i32, i32* %7
%2129 = add nsw i32 %2127, %2128
store i32 %2129, i32* %53
%2130 = load i32, i32* %5
%2131 = mul nsw i32 %2130, 8
%2132 = add nsw i32 %2131, 0
%2133 = sext i32 %2132 to i64
%2134 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2133
%2135 = load double, double* %2134
%2136 = load i32, i32* %52
%2137 = mul nsw i32 0, %2136
%2138 = load i32, i32* %53
%2139 = add nsw i32 %2137, %2138
%2140 = sext i32 %2139 to i64
%2141 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2140
store double %2135, double* %2141
%2142 = load i32, i32* %5
%2143 = mul nsw i32 %2142, 8
%2144 = add nsw i32 %2143, 1
%2145 = sext i32 %2144 to i64
%2146 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2145
%2147 = load double, double* %2146
%2148 = load i32, i32* %52
%2149 = mul nsw i32 4, %2148
%2150 = load i32, i32* %53
%2151 = add nsw i32 %2149, %2150
%2152 = sext i32 %2151 to i64
%2153 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2152
store double %2147, double* %2153
%2154 = load i32, i32* %5
%2155 = mul nsw i32 %2154, 8
%2156 = add nsw i32 %2155, 4
%2157 = sext i32 %2156 to i64
%2158 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2157
%2159 = load double, double* %2158
%2160 = load i32, i32* %52
%2161 = mul nsw i32 1, %2160
%2162 = load i32, i32* %53
%2163 = add nsw i32 %2161, %2162
%2164 = sext i32 %2163 to i64
%2165 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2164
store double %2159, double* %2165
%2166 = load i32, i32* %5
%2167 = mul nsw i32 %2166, 8
%2168 = add nsw i32 %2167, 5
%2169 = sext i32 %2168 to i64
%2170 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2169
%2171 = load double, double* %2170
%2172 = load i32, i32* %52
%2173 = mul nsw i32 5, %2172
%2174 = load i32, i32* %53
%2175 = add nsw i32 %2173, %2174
%2176 = sext i32 %2175 to i64
%2177 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2176
store double %2171, double* %2177
%2178 = load i32, i32* %5
%2179 = mul nsw i32 %2178, 8
%2180 = add nsw i32 %2179, 2
%2181 = sext i32 %2180 to i64
%2182 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2181
%2183 = load double, double* %2182
%2184 = load i32, i32* %52
%2185 = mul nsw i32 2, %2184
%2186 = load i32, i32* %53
%2187 = add nsw i32 %2185, %2186
%2188 = sext i32 %2187 to i64
%2189 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2188
store double %2183, double* %2189
%2190 = load i32, i32* %5
%2191 = mul nsw i32 %2190, 8
%2192 = add nsw i32 %2191, 3
%2193 = sext i32 %2192 to i64
%2194 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2193
%2195 = load double, double* %2194
%2196 = load i32, i32* %52
%2197 = mul nsw i32 6, %2196
%2198 = load i32, i32* %53
%2199 = add nsw i32 %2197, %2198
%2200 = sext i32 %2199 to i64
%2201 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2200
store double %2195, double* %2201
%2202 = load i32, i32* %5
%2203 = mul nsw i32 %2202, 8
%2204 = add nsw i32 %2203, 6
%2205 = sext i32 %2204 to i64
%2206 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2205
%2207 = load double, double* %2206
%2208 = load i32, i32* %52
%2209 = mul nsw i32 3, %2208
%2210 = load i32, i32* %53
%2211 = add nsw i32 %2209, %2210
%2212 = sext i32 %2211 to i64
%2213 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2212
store double %2207, double* %2213
%2214 = load i32, i32* %5
%2215 = mul nsw i32 %2214, 8
%2216 = add nsw i32 %2215, 7
%2217 = sext i32 %2216 to i64
%2218 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2217
%2219 = load double, double* %2218
%2220 = load i32, i32* %52
%2221 = mul nsw i32 7, %2220
%2222 = load i32, i32* %53
%2223 = add nsw i32 %2221, %2222
%2224 = sext i32 %2223 to i64
%2225 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 %2224
store double %2219, double* %2225
br label %2226
2226: ; preds = %2121
%2227 = load i32, i32* %5
%2228 = add nsw i32 %2227, 1
store i32 %2228, i32* %5
br label %2118
2229: ; preds = %2118
br label %2230
2230: ; preds = %2229
store i32 0, i32* %5
br label %2231
2231: ; preds = %2358, %2230
%2232 = load i32, i32* %5
%2233 = icmp slt i32 %2232, 64
br i1 %2233, label %2234, label %2361
2234: ; preds = %2231
%2235 = load i32, i32* %5
%2236 = mul nsw i32 %2235, 8
%2237 = add nsw i32 %2236, 0
%2238 = sext i32 %2237 to i64
%2239 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2238
%2240 = load double, double* %2239
%2241 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %2240, double* %2241
%2242 = load i32, i32* %5
%2243 = mul nsw i32 %2242, 8
%2244 = add nsw i32 %2243, 1
%2245 = sext i32 %2244 to i64
%2246 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2245
%2247 = load double, double* %2246
%2248 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %2247, double* %2248
%2249 = load i32, i32* %5
%2250 = mul nsw i32 %2249, 8
%2251 = add nsw i32 %2250, 2
%2252 = sext i32 %2251 to i64
%2253 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2252
%2254 = load double, double* %2253
%2255 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %2254, double* %2255
%2256 = load i32, i32* %5
%2257 = mul nsw i32 %2256, 8
%2258 = add nsw i32 %2257, 3
%2259 = sext i32 %2258 to i64
%2260 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2259
%2261 = load double, double* %2260
%2262 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2261, double* %2262
%2263 = load i32, i32* %5
%2264 = mul nsw i32 %2263, 8
%2265 = add nsw i32 %2264, 4
%2266 = sext i32 %2265 to i64
%2267 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2266
%2268 = load double, double* %2267
%2269 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %2268, double* %2269
%2270 = load i32, i32* %5
%2271 = mul nsw i32 %2270, 8
%2272 = add nsw i32 %2271, 5
%2273 = sext i32 %2272 to i64
%2274 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2273
%2275 = load double, double* %2274
%2276 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2275, double* %2276
%2277 = load i32, i32* %5
%2278 = mul nsw i32 %2277, 8
%2279 = add nsw i32 %2278, 6
%2280 = sext i32 %2279 to i64
%2281 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2280
%2282 = load double, double* %2281
%2283 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2282, double* %2283
%2284 = load i32, i32* %5
%2285 = mul nsw i32 %2284, 8
%2286 = add nsw i32 %2285, 7
%2287 = sext i32 %2286 to i64
%2288 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2287
%2289 = load double, double* %2288
%2290 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2289, double* %2290
%2291 = load i32, i32* %5
%2292 = ashr i32 %2291, 3
store i32 %2292, i32* %6
%2293 = load i32, i32* %5
%2294 = and i32 %2293, 7
store i32 %2294, i32* %7
%2295 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%2296 = getelementptr inbounds [576 x double], [576 x double]* %14, i64 0, i64 0
%2297 = load i32, i32* %6
%2298 = mul nsw i32 %2297, 72
%2299 = load i32, i32* %7
%2300 = add nsw i32 %2298, %2299
%2301 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @loady8 to i32 (double*, double*, i32, i32, ...)*)(double* %2295, double* %2296, i32 %2300, i32 8)
%2302 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%2303 = load double, double* %2302
%2304 = load i32, i32* %5
%2305 = mul nsw i32 %2304, 8
%2306 = add nsw i32 %2305, 0
%2307 = sext i32 %2306 to i64
%2308 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2307
store double %2303, double* %2308
%2309 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%2310 = load double, double* %2309
%2311 = load i32, i32* %5
%2312 = mul nsw i32 %2311, 8
%2313 = add nsw i32 %2312, 1
%2314 = sext i32 %2313 to i64
%2315 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2314
store double %2310, double* %2315
%2316 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%2317 = load double, double* %2316
%2318 = load i32, i32* %5
%2319 = mul nsw i32 %2318, 8
%2320 = add nsw i32 %2319, 2
%2321 = sext i32 %2320 to i64
%2322 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2321
store double %2317, double* %2322
%2323 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2324 = load double, double* %2323
%2325 = load i32, i32* %5
%2326 = mul nsw i32 %2325, 8
%2327 = add nsw i32 %2326, 3
%2328 = sext i32 %2327 to i64
%2329 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2328
store double %2324, double* %2329
%2330 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%2331 = load double, double* %2330
%2332 = load i32, i32* %5
%2333 = mul nsw i32 %2332, 8
%2334 = add nsw i32 %2333, 4
%2335 = sext i32 %2334 to i64
%2336 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2335
store double %2331, double* %2336
%2337 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2338 = load double, double* %2337
%2339 = load i32, i32* %5
%2340 = mul nsw i32 %2339, 8
%2341 = add nsw i32 %2340, 5
%2342 = sext i32 %2341 to i64
%2343 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2342
store double %2338, double* %2343
%2344 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2345 = load double, double* %2344
%2346 = load i32, i32* %5
%2347 = mul nsw i32 %2346, 8
%2348 = add nsw i32 %2347, 6
%2349 = sext i32 %2348 to i64
%2350 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2349
store double %2345, double* %2350
%2351 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2352 = load double, double* %2351
%2353 = load i32, i32* %5
%2354 = mul nsw i32 %2353, 8
%2355 = add nsw i32 %2354, 7
%2356 = sext i32 %2355 to i64
%2357 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2356
store double %2352, double* %2357
br label %2358
2358: ; preds = %2234
%2359 = load i32, i32* %5
%2360 = add nsw i32 %2359, 1
store i32 %2360, i32* %5
br label %2231
2361: ; preds = %2231
br label %2362
2362: ; preds = %2361
store i32 0, i32* %5
br label %2363
2363: ; preds = %3063, %2362
%2364 = load i32, i32* %5
%2365 = icmp slt i32 %2364, 64
br i1 %2365, label %2366, label %3066
2366: ; preds = %2363
%2367 = load i32, i32* %5
%2368 = mul nsw i32 %2367, 8
%2369 = sext i32 %2368 to i64
%2370 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2369
%2371 = load double, double* %2370
%2372 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %2371, double* %2372
%2373 = load i32, i32* %5
%2374 = mul nsw i32 %2373, 8
%2375 = add nsw i32 %2374, 1
%2376 = sext i32 %2375 to i64
%2377 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2376
%2378 = load double, double* %2377
%2379 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %2378, double* %2379
%2380 = load i32, i32* %5
%2381 = mul nsw i32 %2380, 8
%2382 = add nsw i32 %2381, 2
%2383 = sext i32 %2382 to i64
%2384 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2383
%2385 = load double, double* %2384
%2386 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %2385, double* %2386
%2387 = load i32, i32* %5
%2388 = mul nsw i32 %2387, 8
%2389 = add nsw i32 %2388, 3
%2390 = sext i32 %2389 to i64
%2391 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2390
%2392 = load double, double* %2391
%2393 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2392, double* %2393
%2394 = load i32, i32* %5
%2395 = mul nsw i32 %2394, 8
%2396 = add nsw i32 %2395, 4
%2397 = sext i32 %2396 to i64
%2398 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2397
%2399 = load double, double* %2398
%2400 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %2399, double* %2400
%2401 = load i32, i32* %5
%2402 = mul nsw i32 %2401, 8
%2403 = add nsw i32 %2402, 5
%2404 = sext i32 %2403 to i64
%2405 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2404
%2406 = load double, double* %2405
%2407 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2406, double* %2407
%2408 = load i32, i32* %5
%2409 = mul nsw i32 %2408, 8
%2410 = add nsw i32 %2409, 6
%2411 = sext i32 %2410 to i64
%2412 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2411
%2413 = load double, double* %2412
%2414 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2413, double* %2414
%2415 = load i32, i32* %5
%2416 = mul nsw i32 %2415, 8
%2417 = add nsw i32 %2416, 7
%2418 = sext i32 %2417 to i64
%2419 = getelementptr inbounds [512 x double], [512 x double]* %11, i64 0, i64 %2418
%2420 = load double, double* %2419
%2421 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2420, double* %2421
%2422 = load i32, i32* %5
%2423 = mul nsw i32 %2422, 8
%2424 = sext i32 %2423 to i64
%2425 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2424
%2426 = load double, double* %2425
%2427 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %2426, double* %2427
%2428 = load i32, i32* %5
%2429 = mul nsw i32 %2428, 8
%2430 = add nsw i32 %2429, 1
%2431 = sext i32 %2430 to i64
%2432 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2431
%2433 = load double, double* %2432
%2434 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %2433, double* %2434
%2435 = load i32, i32* %5
%2436 = mul nsw i32 %2435, 8
%2437 = add nsw i32 %2436, 2
%2438 = sext i32 %2437 to i64
%2439 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2438
%2440 = load double, double* %2439
%2441 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %2440, double* %2441
%2442 = load i32, i32* %5
%2443 = mul nsw i32 %2442, 8
%2444 = add nsw i32 %2443, 3
%2445 = sext i32 %2444 to i64
%2446 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2445
%2447 = load double, double* %2446
%2448 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %2447, double* %2448
%2449 = load i32, i32* %5
%2450 = mul nsw i32 %2449, 8
%2451 = add nsw i32 %2450, 4
%2452 = sext i32 %2451 to i64
%2453 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2452
%2454 = load double, double* %2453
%2455 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %2454, double* %2455
%2456 = load i32, i32* %5
%2457 = mul nsw i32 %2456, 8
%2458 = add nsw i32 %2457, 5
%2459 = sext i32 %2458 to i64
%2460 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2459
%2461 = load double, double* %2460
%2462 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %2461, double* %2462
%2463 = load i32, i32* %5
%2464 = mul nsw i32 %2463, 8
%2465 = add nsw i32 %2464, 6
%2466 = sext i32 %2465 to i64
%2467 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2466
%2468 = load double, double* %2467
%2469 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %2468, double* %2469
%2470 = load i32, i32* %5
%2471 = mul nsw i32 %2470, 8
%2472 = add nsw i32 %2471, 7
%2473 = sext i32 %2472 to i64
%2474 = getelementptr inbounds [512 x double], [512 x double]* %10, i64 0, i64 %2473
%2475 = load double, double* %2474
%2476 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2475, double* %2476
store double 1.000000e+00, double* %91
store double -1.000000e+00, double* %94
store double 0.000000e+00, double* %92
store double -1.000000e+00, double* %95
store double -1.000000e+00, double* %93
store double -1.000000e+00, double* %96
%2477 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%2478 = load double, double* %2477
store double %2478, double* %98
%2479 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%2480 = load double, double* %2479
store double %2480, double* %99
%2481 = load double, double* %98
%2482 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%2483 = load double, double* %2482
%2484 = fadd double %2481, %2483
%2485 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %2484, double* %2485
%2486 = load double, double* %99
%2487 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%2488 = load double, double* %2487
%2489 = fadd double %2486, %2488
%2490 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %2489, double* %2490
%2491 = load double, double* %98
%2492 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%2493 = load double, double* %2492
%2494 = fsub double %2491, %2493
%2495 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %2494, double* %2495
%2496 = load double, double* %99
%2497 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%2498 = load double, double* %2497
%2499 = fsub double %2496, %2498
%2500 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %2499, double* %2500
%2501 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%2502 = load double, double* %2501
store double %2502, double* %100
%2503 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%2504 = load double, double* %2503
store double %2504, double* %101
%2505 = load double, double* %100
%2506 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2507 = load double, double* %2506
%2508 = fadd double %2505, %2507
%2509 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %2508, double* %2509
%2510 = load double, double* %101
%2511 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2512 = load double, double* %2511
%2513 = fadd double %2510, %2512
%2514 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %2513, double* %2514
%2515 = load double, double* %100
%2516 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2517 = load double, double* %2516
%2518 = fsub double %2515, %2517
%2519 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %2518, double* %2519
%2520 = load double, double* %101
%2521 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2522 = load double, double* %2521
%2523 = fsub double %2520, %2522
%2524 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2523, double* %2524
%2525 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%2526 = load double, double* %2525
store double %2526, double* %102
%2527 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%2528 = load double, double* %2527
store double %2528, double* %103
%2529 = load double, double* %102
%2530 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2531 = load double, double* %2530
%2532 = fadd double %2529, %2531
%2533 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %2532, double* %2533
%2534 = load double, double* %103
%2535 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2536 = load double, double* %2535
%2537 = fadd double %2534, %2536
%2538 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %2537, double* %2538
%2539 = load double, double* %102
%2540 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2541 = load double, double* %2540
%2542 = fsub double %2539, %2541
%2543 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %2542, double* %2543
%2544 = load double, double* %103
%2545 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2546 = load double, double* %2545
%2547 = fsub double %2544, %2546
%2548 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2547, double* %2548
%2549 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2550 = load double, double* %2549
store double %2550, double* %104
%2551 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2552 = load double, double* %2551
store double %2552, double* %105
%2553 = load double, double* %104
%2554 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2555 = load double, double* %2554
%2556 = fadd double %2553, %2555
%2557 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %2556, double* %2557
%2558 = load double, double* %105
%2559 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2560 = load double, double* %2559
%2561 = fadd double %2558, %2560
%2562 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2561, double* %2562
%2563 = load double, double* %104
%2564 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2565 = load double, double* %2564
%2566 = fsub double %2563, %2565
%2567 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2566, double* %2567
%2568 = load double, double* %105
%2569 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2570 = load double, double* %2569
%2571 = fsub double %2568, %2570
%2572 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2571, double* %2572
%2573 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2574 = load double, double* %2573
store double %2574, double* %97
%2575 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2576 = load double, double* %2575
%2577 = load double, double* %91
%2578 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2579 = load double, double* %2578
%2580 = load double, double* %94
%2581 = fmul double %2579, %2580
%2582 = fneg double %2581
%2583 = call double @llvm.fmuladd.f64(double %2576, double %2577, double %2582)
%2584 = fmul double 0x3FE6A09E60000000, %2583
%2585 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %2584, double* %2585
%2586 = load double, double* %97
%2587 = load double, double* %94
%2588 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2589 = load double, double* %2588
%2590 = load double, double* %91
%2591 = fmul double %2589, %2590
%2592 = call double @llvm.fmuladd.f64(double %2586, double %2587, double %2591)
%2593 = fmul double 0x3FE6A09E60000000, %2592
%2594 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2593, double* %2594
%2595 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2596 = load double, double* %2595
store double %2596, double* %97
%2597 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2598 = load double, double* %2597
%2599 = load double, double* %92
%2600 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2601 = load double, double* %2600
%2602 = load double, double* %95
%2603 = fmul double %2601, %2602
%2604 = fneg double %2603
%2605 = call double @llvm.fmuladd.f64(double %2598, double %2599, double %2604)
%2606 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %2605, double* %2606
%2607 = load double, double* %97
%2608 = load double, double* %95
%2609 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2610 = load double, double* %2609
%2611 = load double, double* %92
%2612 = fmul double %2610, %2611
%2613 = call double @llvm.fmuladd.f64(double %2607, double %2608, double %2612)
%2614 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2613, double* %2614
%2615 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2616 = load double, double* %2615
store double %2616, double* %97
%2617 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2618 = load double, double* %2617
%2619 = load double, double* %93
%2620 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2621 = load double, double* %2620
%2622 = load double, double* %96
%2623 = fmul double %2621, %2622
%2624 = fneg double %2623
%2625 = call double @llvm.fmuladd.f64(double %2618, double %2619, double %2624)
%2626 = fmul double 0x3FE6A09E60000000, %2625
%2627 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2626, double* %2627
%2628 = load double, double* %97
%2629 = load double, double* %96
%2630 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2631 = load double, double* %2630
%2632 = load double, double* %93
%2633 = fmul double %2631, %2632
%2634 = call double @llvm.fmuladd.f64(double %2628, double %2629, double %2633)
%2635 = fmul double 0x3FE6A09E60000000, %2634
%2636 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2635, double* %2636
store double 0.000000e+00, double* %106
store double -1.000000e+00, double* %107
%2637 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%2638 = load double, double* %2637
store double %2638, double* %109
%2639 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%2640 = load double, double* %2639
store double %2640, double* %110
%2641 = load double, double* %109
%2642 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%2643 = load double, double* %2642
%2644 = fadd double %2641, %2643
%2645 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %2644, double* %2645
%2646 = load double, double* %110
%2647 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%2648 = load double, double* %2647
%2649 = fadd double %2646, %2648
%2650 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %2649, double* %2650
%2651 = load double, double* %109
%2652 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%2653 = load double, double* %2652
%2654 = fsub double %2651, %2653
%2655 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %2654, double* %2655
%2656 = load double, double* %110
%2657 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%2658 = load double, double* %2657
%2659 = fsub double %2656, %2658
%2660 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %2659, double* %2660
%2661 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%2662 = load double, double* %2661
store double %2662, double* %111
%2663 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%2664 = load double, double* %2663
store double %2664, double* %112
%2665 = load double, double* %111
%2666 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2667 = load double, double* %2666
%2668 = fadd double %2665, %2667
%2669 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %2668, double* %2669
%2670 = load double, double* %112
%2671 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2672 = load double, double* %2671
%2673 = fadd double %2670, %2672
%2674 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %2673, double* %2674
%2675 = load double, double* %111
%2676 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2677 = load double, double* %2676
%2678 = fsub double %2675, %2677
%2679 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %2678, double* %2679
%2680 = load double, double* %112
%2681 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2682 = load double, double* %2681
%2683 = fsub double %2680, %2682
%2684 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2683, double* %2684
%2685 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2686 = load double, double* %2685
store double %2686, double* %108
%2687 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2688 = load double, double* %2687
%2689 = load double, double* %106
%2690 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2691 = load double, double* %2690
%2692 = load double, double* %107
%2693 = fmul double %2691, %2692
%2694 = fneg double %2693
%2695 = call double @llvm.fmuladd.f64(double %2688, double %2689, double %2694)
%2696 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %2695, double* %2696
%2697 = load double, double* %108
%2698 = load double, double* %107
%2699 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2700 = load double, double* %2699
%2701 = load double, double* %106
%2702 = fmul double %2700, %2701
%2703 = fneg double %2702
%2704 = call double @llvm.fmuladd.f64(double %2697, double %2698, double %2703)
%2705 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2704, double* %2705
%2706 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
%2707 = load double, double* %2706
store double %2707, double* %113
%2708 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
%2709 = load double, double* %2708
store double %2709, double* %114
%2710 = load double, double* %113
%2711 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%2712 = load double, double* %2711
%2713 = fadd double %2710, %2712
%2714 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 0
store double %2713, double* %2714
%2715 = load double, double* %114
%2716 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%2717 = load double, double* %2716
%2718 = fadd double %2715, %2717
%2719 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 0
store double %2718, double* %2719
%2720 = load double, double* %113
%2721 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
%2722 = load double, double* %2721
%2723 = fsub double %2720, %2722
%2724 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 1
store double %2723, double* %2724
%2725 = load double, double* %114
%2726 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
%2727 = load double, double* %2726
%2728 = fsub double %2725, %2727
%2729 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 1
store double %2728, double* %2729
%2730 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
%2731 = load double, double* %2730
store double %2731, double* %115
%2732 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
%2733 = load double, double* %2732
store double %2733, double* %116
%2734 = load double, double* %115
%2735 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2736 = load double, double* %2735
%2737 = fadd double %2734, %2736
%2738 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 2
store double %2737, double* %2738
%2739 = load double, double* %116
%2740 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2741 = load double, double* %2740
%2742 = fadd double %2739, %2741
%2743 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 2
store double %2742, double* %2743
%2744 = load double, double* %115
%2745 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
%2746 = load double, double* %2745
%2747 = fsub double %2744, %2746
%2748 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 3
store double %2747, double* %2748
%2749 = load double, double* %116
%2750 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
%2751 = load double, double* %2750
%2752 = fsub double %2749, %2751
%2753 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 3
store double %2752, double* %2753
store double 0.000000e+00, double* %117
store double -1.000000e+00, double* %118
%2754 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%2755 = load double, double* %2754
store double %2755, double* %120
%2756 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%2757 = load double, double* %2756
store double %2757, double* %121
%2758 = load double, double* %120
%2759 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2760 = load double, double* %2759
%2761 = fadd double %2758, %2760
%2762 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %2761, double* %2762
%2763 = load double, double* %121
%2764 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2765 = load double, double* %2764
%2766 = fadd double %2763, %2765
%2767 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %2766, double* %2767
%2768 = load double, double* %120
%2769 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2770 = load double, double* %2769
%2771 = fsub double %2768, %2770
%2772 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %2771, double* %2772
%2773 = load double, double* %121
%2774 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2775 = load double, double* %2774
%2776 = fsub double %2773, %2775
%2777 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2776, double* %2777
%2778 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2779 = load double, double* %2778
store double %2779, double* %122
%2780 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2781 = load double, double* %2780
store double %2781, double* %123
%2782 = load double, double* %122
%2783 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2784 = load double, double* %2783
%2785 = fadd double %2782, %2784
%2786 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %2785, double* %2786
%2787 = load double, double* %123
%2788 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2789 = load double, double* %2788
%2790 = fadd double %2787, %2789
%2791 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2790, double* %2791
%2792 = load double, double* %122
%2793 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2794 = load double, double* %2793
%2795 = fsub double %2792, %2794
%2796 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2795, double* %2796
%2797 = load double, double* %123
%2798 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2799 = load double, double* %2798
%2800 = fsub double %2797, %2799
%2801 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2800, double* %2801
%2802 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2803 = load double, double* %2802
store double %2803, double* %119
%2804 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2805 = load double, double* %2804
%2806 = load double, double* %117
%2807 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2808 = load double, double* %2807
%2809 = load double, double* %118
%2810 = fmul double %2808, %2809
%2811 = fneg double %2810
%2812 = call double @llvm.fmuladd.f64(double %2805, double %2806, double %2811)
%2813 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2812, double* %2813
%2814 = load double, double* %119
%2815 = load double, double* %118
%2816 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2817 = load double, double* %2816
%2818 = load double, double* %117
%2819 = fmul double %2817, %2818
%2820 = fneg double %2819
%2821 = call double @llvm.fmuladd.f64(double %2814, double %2815, double %2820)
%2822 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2821, double* %2822
%2823 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
%2824 = load double, double* %2823
store double %2824, double* %124
%2825 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
%2826 = load double, double* %2825
store double %2826, double* %125
%2827 = load double, double* %124
%2828 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2829 = load double, double* %2828
%2830 = fadd double %2827, %2829
%2831 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 4
store double %2830, double* %2831
%2832 = load double, double* %125
%2833 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2834 = load double, double* %2833
%2835 = fadd double %2832, %2834
%2836 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 4
store double %2835, double* %2836
%2837 = load double, double* %124
%2838 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
%2839 = load double, double* %2838
%2840 = fsub double %2837, %2839
%2841 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 5
store double %2840, double* %2841
%2842 = load double, double* %125
%2843 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
%2844 = load double, double* %2843
%2845 = fsub double %2842, %2844
%2846 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 5
store double %2845, double* %2846
%2847 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
%2848 = load double, double* %2847
store double %2848, double* %126
%2849 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
%2850 = load double, double* %2849
store double %2850, double* %127
%2851 = load double, double* %126
%2852 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2853 = load double, double* %2852
%2854 = fadd double %2851, %2853
%2855 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 6
store double %2854, double* %2855
%2856 = load double, double* %127
%2857 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2858 = load double, double* %2857
%2859 = fadd double %2856, %2858
%2860 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 6
store double %2859, double* %2860
%2861 = load double, double* %126
%2862 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
%2863 = load double, double* %2862
%2864 = fsub double %2861, %2863
%2865 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 7
store double %2864, double* %2865
%2866 = load double, double* %127
%2867 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
%2868 = load double, double* %2867
%2869 = fsub double %2866, %2868
%2870 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 7
store double %2869, double* %2870
%2871 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 0
%2872 = load i32, i32* %2871
%2873 = sext i32 %2872 to i64
%2874 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2873
%2875 = load double, double* %2874
%2876 = load double*, double** %3
%2877 = load i32, i32* %8
%2878 = mul nsw i32 0, %2877
%2879 = load i32, i32* %5
%2880 = add nsw i32 %2878, %2879
%2881 = sext i32 %2880 to i64
%2882 = getelementptr inbounds double, double* %2876, i64 %2881
store double %2875, double* %2882
%2883 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 1
%2884 = load i32, i32* %2883
%2885 = sext i32 %2884 to i64
%2886 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2885
%2887 = load double, double* %2886
%2888 = load double*, double** %3
%2889 = load i32, i32* %8
%2890 = mul nsw i32 1, %2889
%2891 = load i32, i32* %5
%2892 = add nsw i32 %2890, %2891
%2893 = sext i32 %2892 to i64
%2894 = getelementptr inbounds double, double* %2888, i64 %2893
store double %2887, double* %2894
%2895 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 2
%2896 = load i32, i32* %2895
%2897 = sext i32 %2896 to i64
%2898 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2897
%2899 = load double, double* %2898
%2900 = load double*, double** %3
%2901 = load i32, i32* %8
%2902 = mul nsw i32 2, %2901
%2903 = load i32, i32* %5
%2904 = add nsw i32 %2902, %2903
%2905 = sext i32 %2904 to i64
%2906 = getelementptr inbounds double, double* %2900, i64 %2905
store double %2899, double* %2906
%2907 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 3
%2908 = load i32, i32* %2907
%2909 = sext i32 %2908 to i64
%2910 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2909
%2911 = load double, double* %2910
%2912 = load double*, double** %3
%2913 = load i32, i32* %8
%2914 = mul nsw i32 3, %2913
%2915 = load i32, i32* %5
%2916 = add nsw i32 %2914, %2915
%2917 = sext i32 %2916 to i64
%2918 = getelementptr inbounds double, double* %2912, i64 %2917
store double %2911, double* %2918
%2919 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 4
%2920 = load i32, i32* %2919
%2921 = sext i32 %2920 to i64
%2922 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2921
%2923 = load double, double* %2922
%2924 = load double*, double** %3
%2925 = load i32, i32* %8
%2926 = mul nsw i32 4, %2925
%2927 = load i32, i32* %5
%2928 = add nsw i32 %2926, %2927
%2929 = sext i32 %2928 to i64
%2930 = getelementptr inbounds double, double* %2924, i64 %2929
store double %2923, double* %2930
%2931 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 5
%2932 = load i32, i32* %2931
%2933 = sext i32 %2932 to i64
%2934 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2933
%2935 = load double, double* %2934
%2936 = load double*, double** %3
%2937 = load i32, i32* %8
%2938 = mul nsw i32 5, %2937
%2939 = load i32, i32* %5
%2940 = add nsw i32 %2938, %2939
%2941 = sext i32 %2940 to i64
%2942 = getelementptr inbounds double, double* %2936, i64 %2941
store double %2935, double* %2942
%2943 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 6
%2944 = load i32, i32* %2943
%2945 = sext i32 %2944 to i64
%2946 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2945
%2947 = load double, double* %2946
%2948 = load double*, double** %3
%2949 = load i32, i32* %8
%2950 = mul nsw i32 6, %2949
%2951 = load i32, i32* %5
%2952 = add nsw i32 %2950, %2951
%2953 = sext i32 %2952 to i64
%2954 = getelementptr inbounds double, double* %2948, i64 %2953
store double %2947, double* %2954
%2955 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 7
%2956 = load i32, i32* %2955
%2957 = sext i32 %2956 to i64
%2958 = getelementptr inbounds [8 x double], [8 x double]* %12, i64 0, i64 %2957
%2959 = load double, double* %2958
%2960 = load double*, double** %3
%2961 = load i32, i32* %8
%2962 = mul nsw i32 7, %2961
%2963 = load i32, i32* %5
%2964 = add nsw i32 %2962, %2963
%2965 = sext i32 %2964 to i64
%2966 = getelementptr inbounds double, double* %2960, i64 %2965
store double %2959, double* %2966
%2967 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 0
%2968 = load i32, i32* %2967
%2969 = sext i32 %2968 to i64
%2970 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %2969
%2971 = load double, double* %2970
%2972 = load double*, double** %4
%2973 = load i32, i32* %8
%2974 = mul nsw i32 0, %2973
%2975 = load i32, i32* %5
%2976 = add nsw i32 %2974, %2975
%2977 = sext i32 %2976 to i64
%2978 = getelementptr inbounds double, double* %2972, i64 %2977
store double %2971, double* %2978
%2979 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 1
%2980 = load i32, i32* %2979
%2981 = sext i32 %2980 to i64
%2982 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %2981
%2983 = load double, double* %2982
%2984 = load double*, double** %4
%2985 = load i32, i32* %8
%2986 = mul nsw i32 1, %2985
%2987 = load i32, i32* %5
%2988 = add nsw i32 %2986, %2987
%2989 = sext i32 %2988 to i64
%2990 = getelementptr inbounds double, double* %2984, i64 %2989
store double %2983, double* %2990
%2991 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 2
%2992 = load i32, i32* %2991
%2993 = sext i32 %2992 to i64
%2994 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %2993
%2995 = load double, double* %2994
%2996 = load double*, double** %4
%2997 = load i32, i32* %8
%2998 = mul nsw i32 2, %2997
%2999 = load i32, i32* %5
%3000 = add nsw i32 %2998, %2999
%3001 = sext i32 %3000 to i64
%3002 = getelementptr inbounds double, double* %2996, i64 %3001
store double %2995, double* %3002
%3003 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 3
%3004 = load i32, i32* %3003
%3005 = sext i32 %3004 to i64
%3006 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %3005
%3007 = load double, double* %3006
%3008 = load double*, double** %4
%3009 = load i32, i32* %8
%3010 = mul nsw i32 3, %3009
%3011 = load i32, i32* %5
%3012 = add nsw i32 %3010, %3011
%3013 = sext i32 %3012 to i64
%3014 = getelementptr inbounds double, double* %3008, i64 %3013
store double %3007, double* %3014
%3015 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 4
%3016 = load i32, i32* %3015
%3017 = sext i32 %3016 to i64
%3018 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %3017
%3019 = load double, double* %3018
%3020 = load double*, double** %4
%3021 = load i32, i32* %8
%3022 = mul nsw i32 4, %3021
%3023 = load i32, i32* %5
%3024 = add nsw i32 %3022, %3023
%3025 = sext i32 %3024 to i64
%3026 = getelementptr inbounds double, double* %3020, i64 %3025
store double %3019, double* %3026
%3027 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 5
%3028 = load i32, i32* %3027
%3029 = sext i32 %3028 to i64
%3030 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %3029
%3031 = load double, double* %3030
%3032 = load double*, double** %4
%3033 = load i32, i32* %8
%3034 = mul nsw i32 5, %3033
%3035 = load i32, i32* %5
%3036 = add nsw i32 %3034, %3035
%3037 = sext i32 %3036 to i64
%3038 = getelementptr inbounds double, double* %3032, i64 %3037
store double %3031, double* %3038
%3039 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 6
%3040 = load i32, i32* %3039
%3041 = sext i32 %3040 to i64
%3042 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %3041
%3043 = load double, double* %3042
%3044 = load double*, double** %4
%3045 = load i32, i32* %8
%3046 = mul nsw i32 6, %3045
%3047 = load i32, i32* %5
%3048 = add nsw i32 %3046, %3047
%3049 = sext i32 %3048 to i64
%3050 = getelementptr inbounds double, double* %3044, i64 %3049
store double %3043, double* %3050
%3051 = getelementptr inbounds [8 x i32], [8 x i32]* %9, i64 0, i64 7
%3052 = load i32, i32* %3051
%3053 = sext i32 %3052 to i64
%3054 = getelementptr inbounds [8 x double], [8 x double]* %13, i64 0, i64 %3053
%3055 = load double, double* %3054
%3056 = load double*, double** %4
%3057 = load i32, i32* %8
%3058 = mul nsw i32 7, %3057
%3059 = load i32, i32* %5
%3060 = add nsw i32 %3058, %3059
%3061 = sext i32 %3060 to i64
%3062 = getelementptr inbounds double, double* %3056, i64 %3061
store double %3055, double* %3062
br label %3063
3063: ; preds = %2366
%3064 = load i32, i32* %5
%3065 = add nsw i32 %3064, 1
store i32 %3065, i32* %5
br label %2363
3066: ; preds = %2363
ret void
}

LLVM IR (-O2):
define void @fft1D_512(double* nocapture %0, double* nocapture %1) {
%3 = alloca [512 x double]
%4 = alloca [512 x double]
%5 = alloca [8 x double]
%6 = alloca [8 x double]
%7 = alloca [576 x double]
%8 = bitcast [512 x double]* %3 to i8*
%9 = bitcast [512 x double]* %4 to i8*
%10 = bitcast [8 x double]* %5 to i8*
%11 = bitcast [8 x double]* %6 to i8*
%12 = bitcast [576 x double]* %7 to i8*
%13 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 0
%14 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 1
%15 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 2
%16 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 3
%17 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 4
%18 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 5
%19 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 6
%20 = getelementptr inbounds [8 x double], [8 x double]* %5, i64 0, i64 7
%21 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 0
%22 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 1
%23 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 2
%24 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 3
%25 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 4
%26 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 5
%27 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 6
%28 = getelementptr inbounds [8 x double], [8 x double]* %6, i64 0, i64 7
%29 = bitcast [8 x double]* %5 to <2 x double>*
%30 = bitcast double* %15 to <2 x double>*
%31 = bitcast double* %17 to <2 x double>*
%32 = bitcast double* %19 to <2 x double>*
%33 = bitcast [8 x double]* %6 to <2 x double>*
%34 = bitcast double* %23 to <2 x double>*
%35 = bitcast double* %25 to <2 x double>*
%36 = bitcast double* %27 to <2 x double>*
br label %37
37: ; preds = %2, %37
%38 = phi i64 [ 0, %2 ], [ %174, %37 ]
%39 = getelementptr inbounds double, double* %0, i64 %38
%40 = load double, double* %39
%41 = add nuw nsw i64 %38, 64
%42 = getelementptr inbounds double, double* %0, i64 %41
%43 = load double, double* %42
%44 = add nuw nsw i64 %38, 128
%45 = getelementptr inbounds double, double* %0, i64 %44
%46 = load double, double* %45
%47 = add nuw nsw i64 %38, 192
%48 = getelementptr inbounds double, double* %0, i64 %47
%49 = load double, double* %48
%50 = add nuw nsw i64 %38, 256
%51 = getelementptr inbounds double, double* %0, i64 %50
%52 = load double, double* %51
%53 = add nuw nsw i64 %38, 320
%54 = getelementptr inbounds double, double* %0, i64 %53
%55 = load double, double* %54
%56 = add nuw nsw i64 %38, 384
%57 = getelementptr inbounds double, double* %0, i64 %56
%58 = load double, double* %57
%59 = add nuw nsw i64 %38, 448
%60 = getelementptr inbounds double, double* %0, i64 %59
%61 = load double, double* %60
%62 = getelementptr inbounds double, double* %1, i64 %38
%63 = load double, double* %62
%64 = getelementptr inbounds double, double* %1, i64 %41
%65 = load double, double* %64
%66 = getelementptr inbounds double, double* %1, i64 %44
%67 = load double, double* %66
%68 = getelementptr inbounds double, double* %1, i64 %47
%69 = load double, double* %68
%70 = getelementptr inbounds double, double* %1, i64 %50
%71 = load double, double* %70
%72 = getelementptr inbounds double, double* %1, i64 %53
%73 = load double, double* %72
%74 = getelementptr inbounds double, double* %1, i64 %56
%75 = load double, double* %74
%76 = getelementptr inbounds double, double* %1, i64 %59
%77 = load double, double* %76
%78 = fadd double %40, %52
%79 = fadd double %63, %71
%80 = fsub double %40, %52
%81 = fsub double %63, %71
%82 = fadd double %43, %55
%83 = fadd double %65, %73
%84 = fsub double %43, %55
%85 = fsub double %65, %73
%86 = fadd double %46, %58
%87 = fadd double %67, %75
%88 = fsub double %46, %58
%89 = fsub double %67, %75
%90 = fadd double %49, %61
%91 = fadd double %69, %77
%92 = fsub double %49, %61
%93 = fsub double %69, %77
%94 = fadd double %84, %85
%95 = fmul double %94, 0x3FE6A09E60000000
%96 = call double @llvm.fmuladd.f64(double %84, double -1.000000e+00, double %85)
%97 = fmul double %96, 0x3FE6A09E60000000
%98 = call double @llvm.fmuladd.f64(double %88, double 0.000000e+00, double %89)
%99 = fmul double %89, 0.000000e+00
%100 = call double @llvm.fmuladd.f64(double %88, double -1.000000e+00, double %99)
%101 = call double @llvm.fmuladd.f64(double %92, double -1.000000e+00, double %93)
%102 = fmul double %101, 0x3FE6A09E60000000
%103 = fneg double %93
%104 = call double @llvm.fmuladd.f64(double %92, double -1.000000e+00, double %103)
%105 = fmul double %104, 0x3FE6A09E60000000
%106 = fadd double %78, %86
%107 = fadd double %79, %87
%108 = fsub double %78, %86
%109 = fsub double %79, %87
%110 = fadd double %82, %90
%111 = fadd double %83, %91
%112 = fsub double %82, %90
%113 = fsub double %83, %91
%114 = call double @llvm.fmuladd.f64(double %112, double 0.000000e+00, double %113)
%115 = fmul double %113, -0.000000e+00
%116 = call double @llvm.fmuladd.f64(double %112, double -1.000000e+00, double %115)
%117 = fadd double %106, %110
store double %117, double* %13
%118 = fadd double %107, %111
store double %118, double* %21
%119 = fsub double %106, %110
store double %119, double* %14
%120 = fsub double %107, %111
store double %120, double* %22
%121 = fadd double %108, %114
store double %121, double* %15
%122 = fadd double %109, %116
store double %122, double* %23
%123 = fsub double %108, %114
store double %123, double* %16
%124 = fsub double %109, %116
store double %124, double* %24
%125 = fadd double %80, %98
%126 = fadd double %81, %100
%127 = fsub double %80, %98
%128 = fsub double %81, %100
%129 = fadd double %95, %102
%130 = fadd double %97, %105
%131 = fsub double %95, %102
%132 = fsub double %97, %105
%133 = call double @llvm.fmuladd.f64(double %131, double 0.000000e+00, double %132)
%134 = fmul double %132, -0.000000e+00
%135 = call double @llvm.fmuladd.f64(double %131, double -1.000000e+00, double %134)
%136 = fadd double %125, %129
store double %136, double* %17
%137 = fadd double %126, %130
store double %137, double* %25
%138 = fsub double %125, %129
store double %138, double* %18
%139 = fsub double %126, %130
store double %139, double* %26
%140 = fadd double %127, %133
store double %140, double* %19
%141 = fadd double %128, %135
store double %141, double* %27
%142 = fsub double %127, %133
store double %142, double* %20
%143 = fsub double %128, %135
store double %143, double* %28
%144 = trunc i64 %38 to i32
%145 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @twiddles8 to i32 (double*, double*, i32, i32, ...)*)(double* %13, double* %21, i32 %144, i32 512)
%146 = shl nuw nsw i64 %38, 3
%147 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %146
%148 = load <2 x double>, <2 x double>* %29
%149 = bitcast double* %147 to <2 x double>*
store <2 x double> %148, <2 x double>* %149
%150 = or i64 %146, 2
%151 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %150
%152 = load <2 x double>, <2 x double>* %30
%153 = bitcast double* %151 to <2 x double>*
store <2 x double> %152, <2 x double>* %153
%154 = or i64 %146, 4
%155 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %154
%156 = load <2 x double>, <2 x double>* %31
%157 = bitcast double* %155 to <2 x double>*
store <2 x double> %156, <2 x double>* %157
%158 = or i64 %146, 6
%159 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %158
%160 = load <2 x double>, <2 x double>* %32
%161 = bitcast double* %159 to <2 x double>*
store <2 x double> %160, <2 x double>* %161
%162 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %146
%163 = load <2 x double>, <2 x double>* %33
%164 = bitcast double* %162 to <2 x double>*
store <2 x double> %163, <2 x double>* %164
%165 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %150
%166 = load <2 x double>, <2 x double>* %34
%167 = bitcast double* %165 to <2 x double>*
store <2 x double> %166, <2 x double>* %167
%168 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %154
%169 = load <2 x double>, <2 x double>* %35
%170 = bitcast double* %168 to <2 x double>*
store <2 x double> %169, <2 x double>* %170
%171 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %158
%172 = load <2 x double>, <2 x double>* %36
%173 = bitcast double* %171 to <2 x double>*
store <2 x double> %172, <2 x double>* %173
%174 = add nuw nsw i64 %38, 1
%175 = icmp eq i64 %174, 64
br i1 %175, label %176, label %37
176: ; preds = %37, %176
%177 = phi i64 [ %213, %176 ], [ 0, %37 ]
%178 = shl nuw nsw i64 %177, 3
%179 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %178
%180 = bitcast double* %179 to <16 x double>*
%181 = load <16 x double>, <16 x double>* %180
%182 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%183 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%184 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%185 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%186 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%187 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%188 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%189 = shufflevector <16 x double> %181, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%190 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %177
%191 = bitcast double* %190 to <2 x double>*
store <2 x double> %182, <2 x double>* %191
%192 = add nuw nsw i64 %177, 264
%193 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %192
%194 = bitcast double* %193 to <2 x double>*
store <2 x double> %183, <2 x double>* %194
%195 = add nuw nsw i64 %177, 66
%196 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %195
%197 = bitcast double* %196 to <2 x double>*
store <2 x double> %186, <2 x double>* %197
%198 = add nuw nsw i64 %177, 330
%199 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %198
%200 = bitcast double* %199 to <2 x double>*
store <2 x double> %187, <2 x double>* %200
%201 = add nuw nsw i64 %177, 132
%202 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %201
%203 = bitcast double* %202 to <2 x double>*
store <2 x double> %184, <2 x double>* %203
%204 = add nuw nsw i64 %177, 396
%205 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %204
%206 = bitcast double* %205 to <2 x double>*
store <2 x double> %185, <2 x double>* %206
%207 = add nuw nsw i64 %177, 198
%208 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %207
%209 = bitcast double* %208 to <2 x double>*
store <2 x double> %188, <2 x double>* %209
%210 = add nuw nsw i64 %177, 462
%211 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %210
%212 = bitcast double* %211 to <2 x double>*
store <2 x double> %189, <2 x double>* %212
%213 = add nuw i64 %177, 2
%214 = icmp eq i64 %213, 64
br i1 %214, label %215, label %176
215: ; preds = %176, %215
%216 = phi i64 [ %269, %215 ], [ 0, %176 ]
%217 = trunc i64 %216 to i32
%218 = lshr i32 %217, 3
%219 = and i32 %217, 7
%220 = mul nuw nsw i32 %219, 66
%221 = add nuw nsw i32 %220, %218
%222 = zext i32 %221 to i64
%223 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %222
%224 = load double, double* %223
%225 = shl nuw nsw i64 %216, 3
%226 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %225
store double %224, double* %226
%227 = add nuw nsw i32 %221, 32
%228 = zext i32 %227 to i64
%229 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %228
%230 = load double, double* %229
%231 = or i64 %225, 4
%232 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %231
store double %230, double* %232
%233 = add nuw nsw i32 %221, 8
%234 = zext i32 %233 to i64
%235 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %234
%236 = load double, double* %235
%237 = or i64 %225, 1
%238 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %237
store double %236, double* %238
%239 = add nuw nsw i32 %221, 40
%240 = zext i32 %239 to i64
%241 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %240
%242 = load double, double* %241
%243 = or i64 %225, 5
%244 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %243
store double %242, double* %244
%245 = add nuw nsw i32 %221, 16
%246 = zext i32 %245 to i64
%247 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %246
%248 = load double, double* %247
%249 = or i64 %225, 2
%250 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %249
store double %248, double* %250
%251 = add nuw nsw i32 %221, 48
%252 = zext i32 %251 to i64
%253 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %252
%254 = load double, double* %253
%255 = or i64 %225, 6
%256 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %255
store double %254, double* %256
%257 = add nuw nsw i32 %221, 24
%258 = zext i32 %257 to i64
%259 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %258
%260 = load double, double* %259
%261 = or i64 %225, 3
%262 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %261
store double %260, double* %262
%263 = add nuw nsw i32 %221, 56
%264 = zext i32 %263 to i64
%265 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %264
%266 = load double, double* %265
%267 = or i64 %225, 7
%268 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %267
store double %266, double* %268
%269 = add nuw nsw i64 %216, 1
%270 = icmp eq i64 %269, 64
br i1 %270, label %271, label %215
271: ; preds = %215, %271
%272 = phi i64 [ %308, %271 ], [ 0, %215 ]
%273 = shl nuw nsw i64 %272, 3
%274 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %273
%275 = bitcast double* %274 to <16 x double>*
%276 = load <16 x double>, <16 x double>* %275
%277 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%278 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%279 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%280 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%281 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%282 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%283 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%284 = shufflevector <16 x double> %276, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%285 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %272
%286 = bitcast double* %285 to <2 x double>*
store <2 x double> %277, <2 x double>* %286
%287 = add nuw nsw i64 %272, 264
%288 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %287
%289 = bitcast double* %288 to <2 x double>*
store <2 x double> %278, <2 x double>* %289
%290 = add nuw nsw i64 %272, 66
%291 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %290
%292 = bitcast double* %291 to <2 x double>*
store <2 x double> %281, <2 x double>* %292
%293 = add nuw nsw i64 %272, 330
%294 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %293
%295 = bitcast double* %294 to <2 x double>*
store <2 x double> %282, <2 x double>* %295
%296 = add nuw nsw i64 %272, 132
%297 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %296
%298 = bitcast double* %297 to <2 x double>*
store <2 x double> %279, <2 x double>* %298
%299 = add nuw nsw i64 %272, 396
%300 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %299
%301 = bitcast double* %300 to <2 x double>*
store <2 x double> %280, <2 x double>* %301
%302 = add nuw nsw i64 %272, 198
%303 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %302
%304 = bitcast double* %303 to <2 x double>*
store <2 x double> %283, <2 x double>* %304
%305 = add nuw nsw i64 %272, 462
%306 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %305
%307 = bitcast double* %306 to <2 x double>*
store <2 x double> %284, <2 x double>* %307
%308 = add nuw i64 %272, 2
%309 = icmp eq i64 %308, 64
br i1 %309, label %310, label %271
310: ; preds = %271
%311 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 0
%312 = bitcast [8 x double]* %6 to <2 x double>*
%313 = bitcast double* %23 to <2 x double>*
%314 = bitcast double* %25 to <2 x double>*
%315 = bitcast double* %27 to <2 x double>*
%316 = bitcast [8 x double]* %6 to <2 x double>*
%317 = bitcast double* %23 to <2 x double>*
%318 = bitcast double* %25 to <2 x double>*
%319 = bitcast double* %27 to <2 x double>*
br label %320
320: ; preds = %310, %320
%321 = phi i64 [ 0, %310 ], [ %352, %320 ]
%322 = shl nuw nsw i64 %321, 3
%323 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %322
%324 = bitcast double* %323 to <2 x double>*
%325 = load <2 x double>, <2 x double>* %324
store <2 x double> %325, <2 x double>* %312
%326 = or i64 %322, 2
%327 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %326
%328 = bitcast double* %327 to <2 x double>*
%329 = load <2 x double>, <2 x double>* %328
store <2 x double> %329, <2 x double>* %313
%330 = or i64 %322, 4
%331 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %330
%332 = bitcast double* %331 to <2 x double>*
%333 = load <2 x double>, <2 x double>* %332
store <2 x double> %333, <2 x double>* %314
%334 = or i64 %322, 6
%335 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %334
%336 = bitcast double* %335 to <2 x double>*
%337 = load <2 x double>, <2 x double>* %336
store <2 x double> %337, <2 x double>* %315
%338 = trunc i64 %321 to i32
%339 = lshr i32 %338, 3
%340 = and i32 %338, 7
%341 = mul nuw nsw i32 %340, 66
%342 = add nuw nsw i32 %341, %339
%343 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @loady8 to i32 (double*, double*, i32, i32, ...)*)(double* %21, double* %311, i32 %342, i32 8)
%344 = load <2 x double>, <2 x double>* %316
%345 = bitcast double* %323 to <2 x double>*
store <2 x double> %344, <2 x double>* %345
%346 = load <2 x double>, <2 x double>* %317
%347 = bitcast double* %327 to <2 x double>*
store <2 x double> %346, <2 x double>* %347
%348 = load <2 x double>, <2 x double>* %318
%349 = bitcast double* %331 to <2 x double>*
store <2 x double> %348, <2 x double>* %349
%350 = load <2 x double>, <2 x double>* %319
%351 = bitcast double* %335 to <2 x double>*
store <2 x double> %350, <2 x double>* %351
%352 = add nuw nsw i64 %321, 1
%353 = icmp eq i64 %352, 64
br i1 %353, label %354, label %320
354: ; preds = %320
%355 = bitcast [8 x double]* %5 to <2 x double>*
%356 = bitcast double* %15 to <2 x double>*
%357 = bitcast double* %17 to <2 x double>*
%358 = bitcast double* %19 to <2 x double>*
%359 = bitcast [8 x double]* %6 to <2 x double>*
%360 = bitcast double* %23 to <2 x double>*
%361 = bitcast double* %25 to <2 x double>*
%362 = bitcast double* %27 to <2 x double>*
br label %363
363: ; preds = %354, %363
%364 = phi i64 [ %490, %363 ], [ 0, %354 ]
%365 = shl nuw nsw i64 %364, 3
%366 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %365
%367 = load double, double* %366
%368 = or i64 %365, 1
%369 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %368
%370 = load double, double* %369
%371 = or i64 %365, 2
%372 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %371
%373 = load double, double* %372
%374 = or i64 %365, 3
%375 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %374
%376 = load double, double* %375
%377 = or i64 %365, 4
%378 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %377
%379 = load double, double* %378
%380 = or i64 %365, 5
%381 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %380
%382 = load double, double* %381
%383 = or i64 %365, 6
%384 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %383
%385 = load double, double* %384
%386 = or i64 %365, 7
%387 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %386
%388 = load double, double* %387
%389 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %365
%390 = load double, double* %389
%391 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %368
%392 = load double, double* %391
%393 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %371
%394 = load double, double* %393
%395 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %374
%396 = load double, double* %395
%397 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %377
%398 = load double, double* %397
%399 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %380
%400 = load double, double* %399
%401 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %383
%402 = load double, double* %401
%403 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %386
%404 = load double, double* %403
%405 = fadd double %367, %379
%406 = fadd double %390, %398
%407 = fsub double %367, %379
%408 = fsub double %390, %398
%409 = fadd double %370, %382
%410 = fadd double %392, %400
%411 = fsub double %370, %382
%412 = fsub double %392, %400
%413 = fadd double %373, %385
%414 = fadd double %394, %402
%415 = fsub double %373, %385
%416 = fsub double %394, %402
%417 = fadd double %376, %388
%418 = fadd double %396, %404
%419 = fsub double %376, %388
%420 = fsub double %396, %404
%421 = fadd double %411, %412
%422 = fmul double %421, 0x3FE6A09E60000000
%423 = call double @llvm.fmuladd.f64(double %411, double -1.000000e+00, double %412)
%424 = fmul double %423, 0x3FE6A09E60000000
%425 = call double @llvm.fmuladd.f64(double %415, double 0.000000e+00, double %416)
%426 = fmul double %416, 0.000000e+00
%427 = call double @llvm.fmuladd.f64(double %415, double -1.000000e+00, double %426)
%428 = call double @llvm.fmuladd.f64(double %419, double -1.000000e+00, double %420)
%429 = fmul double %428, 0x3FE6A09E60000000
%430 = fneg double %420
%431 = call double @llvm.fmuladd.f64(double %419, double -1.000000e+00, double %430)
%432 = fmul double %431, 0x3FE6A09E60000000
%433 = fadd double %405, %413
%434 = fadd double %406, %414
%435 = fsub double %405, %413
%436 = fsub double %406, %414
%437 = fadd double %409, %417
%438 = fadd double %410, %418
%439 = fsub double %409, %417
%440 = fsub double %410, %418
%441 = call double @llvm.fmuladd.f64(double %439, double 0.000000e+00, double %440)
%442 = fmul double %440, -0.000000e+00
%443 = call double @llvm.fmuladd.f64(double %439, double -1.000000e+00, double %442)
%444 = fadd double %433, %437
store double %444, double* %13
%445 = fadd double %434, %438
store double %445, double* %21
%446 = fsub double %433, %437
store double %446, double* %14
%447 = fsub double %434, %438
store double %447, double* %22
%448 = fadd double %435, %441
store double %448, double* %15
%449 = fadd double %436, %443
store double %449, double* %23
%450 = fsub double %435, %441
store double %450, double* %16
%451 = fsub double %436, %443
store double %451, double* %24
%452 = fadd double %407, %425
%453 = fadd double %408, %427
%454 = fsub double %407, %425
%455 = fsub double %408, %427
%456 = fadd double %422, %429
%457 = fadd double %424, %432
%458 = fsub double %422, %429
%459 = fsub double %424, %432
%460 = call double @llvm.fmuladd.f64(double %458, double 0.000000e+00, double %459)
%461 = fmul double %459, -0.000000e+00
%462 = call double @llvm.fmuladd.f64(double %458, double -1.000000e+00, double %461)
%463 = fadd double %452, %456
store double %463, double* %17
%464 = fadd double %453, %457
store double %464, double* %25
%465 = fsub double %452, %456
store double %465, double* %18
%466 = fsub double %453, %457
store double %466, double* %26
%467 = fadd double %454, %460
store double %467, double* %19
%468 = fadd double %455, %462
store double %468, double* %27
%469 = fsub double %454, %460
store double %469, double* %20
%470 = fsub double %455, %462
store double %470, double* %28
%471 = trunc i64 %364 to i32
%472 = lshr i32 %471, 3
%473 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @twiddles8 to i32 (double*, double*, i32, i32, ...)*)(double* %13, double* %21, i32 %472, i32 64)
%474 = load <2 x double>, <2 x double>* %355
%475 = bitcast double* %366 to <2 x double>*
store <2 x double> %474, <2 x double>* %475
%476 = load <2 x double>, <2 x double>* %356
%477 = bitcast double* %372 to <2 x double>*
store <2 x double> %476, <2 x double>* %477
%478 = load <2 x double>, <2 x double>* %357
%479 = bitcast double* %378 to <2 x double>*
store <2 x double> %478, <2 x double>* %479
%480 = load <2 x double>, <2 x double>* %358
%481 = bitcast double* %384 to <2 x double>*
store <2 x double> %480, <2 x double>* %481
%482 = load <2 x double>, <2 x double>* %359
%483 = bitcast double* %389 to <2 x double>*
store <2 x double> %482, <2 x double>* %483
%484 = load <2 x double>, <2 x double>* %360
%485 = bitcast double* %393 to <2 x double>*
store <2 x double> %484, <2 x double>* %485
%486 = load <2 x double>, <2 x double>* %361
%487 = bitcast double* %397 to <2 x double>*
store <2 x double> %486, <2 x double>* %487
%488 = load <2 x double>, <2 x double>* %362
%489 = bitcast double* %401 to <2 x double>*
store <2 x double> %488, <2 x double>* %489
%490 = add nuw nsw i64 %364, 1
%491 = icmp eq i64 %490, 64
br i1 %491, label %492, label %363
492: ; preds = %363, %492
%493 = phi i64 [ %529, %492 ], [ 0, %363 ]
%494 = shl nuw nsw i64 %493, 3
%495 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %494
%496 = bitcast double* %495 to <16 x double>*
%497 = load <16 x double>, <16 x double>* %496
%498 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%499 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%500 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%501 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%502 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%503 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%504 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%505 = shufflevector <16 x double> %497, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%506 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %493
%507 = bitcast double* %506 to <2 x double>*
store <2 x double> %498, <2 x double>* %507
%508 = add nuw nsw i64 %493, 288
%509 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %508
%510 = bitcast double* %509 to <2 x double>*
store <2 x double> %499, <2 x double>* %510
%511 = add nuw nsw i64 %493, 72
%512 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %511
%513 = bitcast double* %512 to <2 x double>*
store <2 x double> %502, <2 x double>* %513
%514 = add nuw nsw i64 %493, 360
%515 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %514
%516 = bitcast double* %515 to <2 x double>*
store <2 x double> %503, <2 x double>* %516
%517 = add nuw nsw i64 %493, 144
%518 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %517
%519 = bitcast double* %518 to <2 x double>*
store <2 x double> %500, <2 x double>* %519
%520 = add nuw nsw i64 %493, 432
%521 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %520
%522 = bitcast double* %521 to <2 x double>*
store <2 x double> %501, <2 x double>* %522
%523 = add nuw nsw i64 %493, 216
%524 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %523
%525 = bitcast double* %524 to <2 x double>*
store <2 x double> %504, <2 x double>* %525
%526 = add nuw nsw i64 %493, 504
%527 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %526
%528 = bitcast double* %527 to <2 x double>*
store <2 x double> %505, <2 x double>* %528
%529 = add nuw i64 %493, 2
%530 = icmp eq i64 %529, 64
br i1 %530, label %531, label %492
531: ; preds = %492, %531
%532 = phi i64 [ %585, %531 ], [ 0, %492 ]
%533 = trunc i64 %532 to i32
%534 = lshr i32 %533, 3
%535 = and i32 %533, 7
%536 = mul nuw nsw i32 %534, 72
%537 = or i32 %536, %535
%538 = zext i32 %537 to i64
%539 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %538
%540 = load double, double* %539
%541 = shl nuw nsw i64 %532, 3
%542 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %541
store double %540, double* %542
%543 = add nuw nsw i32 %537, 32
%544 = zext i32 %543 to i64
%545 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %544
%546 = load double, double* %545
%547 = or i64 %541, 4
%548 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %547
store double %546, double* %548
%549 = add nuw nsw i32 %537, 8
%550 = zext i32 %549 to i64
%551 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %550
%552 = load double, double* %551
%553 = or i64 %541, 1
%554 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %553
store double %552, double* %554
%555 = add nuw nsw i32 %537, 40
%556 = zext i32 %555 to i64
%557 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %556
%558 = load double, double* %557
%559 = or i64 %541, 5
%560 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %559
store double %558, double* %560
%561 = add nuw nsw i32 %537, 16
%562 = zext i32 %561 to i64
%563 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %562
%564 = load double, double* %563
%565 = or i64 %541, 2
%566 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %565
store double %564, double* %566
%567 = add nuw nsw i32 %537, 48
%568 = zext i32 %567 to i64
%569 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %568
%570 = load double, double* %569
%571 = or i64 %541, 6
%572 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %571
store double %570, double* %572
%573 = add nuw nsw i32 %537, 24
%574 = zext i32 %573 to i64
%575 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %574
%576 = load double, double* %575
%577 = or i64 %541, 3
%578 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %577
store double %576, double* %578
%579 = add nuw nsw i32 %537, 56
%580 = zext i32 %579 to i64
%581 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %580
%582 = load double, double* %581
%583 = or i64 %541, 7
%584 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %583
store double %582, double* %584
%585 = add nuw nsw i64 %532, 1
%586 = icmp eq i64 %585, 64
br i1 %586, label %587, label %531
587: ; preds = %531, %587
%588 = phi i64 [ %624, %587 ], [ 0, %531 ]
%589 = shl nuw nsw i64 %588, 3
%590 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %589
%591 = bitcast double* %590 to <16 x double>*
%592 = load <16 x double>, <16 x double>* %591
%593 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%594 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%595 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%596 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%597 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%598 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%599 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%600 = shufflevector <16 x double> %592, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%601 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %588
%602 = bitcast double* %601 to <2 x double>*
store <2 x double> %593, <2 x double>* %602
%603 = add nuw nsw i64 %588, 288
%604 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %603
%605 = bitcast double* %604 to <2 x double>*
store <2 x double> %594, <2 x double>* %605
%606 = add nuw nsw i64 %588, 72
%607 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %606
%608 = bitcast double* %607 to <2 x double>*
store <2 x double> %597, <2 x double>* %608
%609 = add nuw nsw i64 %588, 360
%610 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %609
%611 = bitcast double* %610 to <2 x double>*
store <2 x double> %598, <2 x double>* %611
%612 = add nuw nsw i64 %588, 144
%613 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %612
%614 = bitcast double* %613 to <2 x double>*
store <2 x double> %595, <2 x double>* %614
%615 = add nuw nsw i64 %588, 432
%616 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %615
%617 = bitcast double* %616 to <2 x double>*
store <2 x double> %596, <2 x double>* %617
%618 = add nuw nsw i64 %588, 216
%619 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %618
%620 = bitcast double* %619 to <2 x double>*
store <2 x double> %599, <2 x double>* %620
%621 = add nuw nsw i64 %588, 504
%622 = getelementptr inbounds [576 x double], [576 x double]* %7, i64 0, i64 %621
%623 = bitcast double* %622 to <2 x double>*
store <2 x double> %600, <2 x double>* %623
%624 = add nuw i64 %588, 2
%625 = icmp eq i64 %624, 64
br i1 %625, label %626, label %587
626: ; preds = %587
%627 = bitcast [8 x double]* %6 to <2 x double>*
%628 = bitcast double* %23 to <2 x double>*
%629 = bitcast double* %25 to <2 x double>*
%630 = bitcast double* %27 to <2 x double>*
%631 = bitcast [8 x double]* %6 to <2 x double>*
%632 = bitcast double* %23 to <2 x double>*
%633 = bitcast double* %25 to <2 x double>*
%634 = bitcast double* %27 to <2 x double>*
br label %635
635: ; preds = %626, %635
%636 = phi i64 [ %667, %635 ], [ 0, %626 ]
%637 = shl nuw nsw i64 %636, 3
%638 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %637
%639 = bitcast double* %638 to <2 x double>*
%640 = load <2 x double>, <2 x double>* %639
store <2 x double> %640, <2 x double>* %627
%641 = or i64 %637, 2
%642 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %641
%643 = bitcast double* %642 to <2 x double>*
%644 = load <2 x double>, <2 x double>* %643
store <2 x double> %644, <2 x double>* %628
%645 = or i64 %637, 4
%646 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %645
%647 = bitcast double* %646 to <2 x double>*
%648 = load <2 x double>, <2 x double>* %647
store <2 x double> %648, <2 x double>* %629
%649 = or i64 %637, 6
%650 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %649
%651 = bitcast double* %650 to <2 x double>*
%652 = load <2 x double>, <2 x double>* %651
store <2 x double> %652, <2 x double>* %630
%653 = trunc i64 %636 to i32
%654 = lshr i32 %653, 3
%655 = and i32 %653, 7
%656 = mul nuw nsw i32 %654, 72
%657 = or i32 %656, %655
%658 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @loady8 to i32 (double*, double*, i32, i32, ...)*)(double* %21, double* %311, i32 %657, i32 8)
%659 = load <2 x double>, <2 x double>* %631
%660 = bitcast double* %638 to <2 x double>*
store <2 x double> %659, <2 x double>* %660
%661 = load <2 x double>, <2 x double>* %632
%662 = bitcast double* %642 to <2 x double>*
store <2 x double> %661, <2 x double>* %662
%663 = load <2 x double>, <2 x double>* %633
%664 = bitcast double* %646 to <2 x double>*
store <2 x double> %663, <2 x double>* %664
%665 = load <2 x double>, <2 x double>* %634
%666 = bitcast double* %650 to <2 x double>*
store <2 x double> %665, <2 x double>* %666
%667 = add nuw nsw i64 %636, 1
%668 = icmp eq i64 %667, 64
br i1 %668, label %669, label %635
669: ; preds = %635
%670 = getelementptr double, double* %0, i64 512
%671 = getelementptr double, double* %1, i64 512
%672 = icmp ugt double* %671, %0
%673 = icmp ugt double* %670, %1
%674 = and i1 %672, %673
br i1 %674, label %807, label %675
675: ; preds = %669, %675
%676 = phi i64 [ %805, %675 ], [ 0, %669 ]
%677 = shl nuw nsw i64 %676, 3
%678 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %677
%679 = bitcast double* %678 to <16 x double>*
%680 = load <16 x double>, <16 x double>* %679
%681 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%682 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%683 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%684 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%685 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%686 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%687 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%688 = shufflevector <16 x double> %680, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%689 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %677
%690 = bitcast double* %689 to <16 x double>*
%691 = load <16 x double>, <16 x double>* %690
%692 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 0, i32 8>
%693 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 1, i32 9>
%694 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 2, i32 10>
%695 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 3, i32 11>
%696 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 4, i32 12>
%697 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 5, i32 13>
%698 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 6, i32 14>
%699 = shufflevector <16 x double> %691, <16 x double> poison, <2 x i32> <i32 7, i32 15>
%700 = fadd <2 x double> %692, %696
%701 = fadd <2 x double> %681, %685
%702 = fsub <2 x double> %692, %696
%703 = fsub <2 x double> %681, %685
%704 = fadd <2 x double> %693, %697
%705 = fadd <2 x double> %682, %686
%706 = fsub <2 x double> %693, %697
%707 = fsub <2 x double> %682, %686
%708 = fadd <2 x double> %694, %698
%709 = fadd <2 x double> %683, %687
%710 = fsub <2 x double> %694, %698
%711 = fsub <2 x double> %683, %687
%712 = fadd <2 x double> %695, %699
%713 = fadd <2 x double> %684, %688
%714 = fsub <2 x double> %695, %699
%715 = fsub <2 x double> %684, %688
%716 = fadd <2 x double> %707, %706
%717 = fmul <2 x double> %716, <double 0x3FE6A09E60000000, double 0x3FE6A09E60000000>
%718 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %706, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %707)
%719 = fmul <2 x double> %718, <double 0x3FE6A09E60000000, double 0x3FE6A09E60000000>
%720 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %710, <2 x double> zeroinitializer, <2 x double> %711)
%721 = fmul <2 x double> %711, zeroinitializer
%722 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %710, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %721)
%723 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %714, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %715)
%724 = fmul <2 x double> %723, <double 0x3FE6A09E60000000, double 0x3FE6A09E60000000>
%725 = fneg <2 x double> %715
%726 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %714, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %725)
%727 = fmul <2 x double> %726, <double 0x3FE6A09E60000000, double 0x3FE6A09E60000000>
%728 = fadd <2 x double> %700, %708
%729 = fadd <2 x double> %701, %709
%730 = fsub <2 x double> %700, %708
%731 = fsub <2 x double> %701, %709
%732 = fadd <2 x double> %704, %712
%733 = fadd <2 x double> %705, %713
%734 = fsub <2 x double> %704, %712
%735 = fsub <2 x double> %705, %713
%736 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %734, <2 x double> zeroinitializer, <2 x double> %735)
%737 = fmul <2 x double> %735, <double -0.000000e+00, double -0.000000e+00>
%738 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %734, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %737)
%739 = fadd <2 x double> %728, %732
%740 = fadd <2 x double> %729, %733
%741 = fsub <2 x double> %728, %732
%742 = fsub <2 x double> %729, %733
%743 = fadd <2 x double> %730, %736
%744 = fadd <2 x double> %731, %738
%745 = fsub <2 x double> %730, %736
%746 = fsub <2 x double> %731, %738
%747 = fadd <2 x double> %702, %720
%748 = fadd <2 x double> %703, %722
%749 = fsub <2 x double> %702, %720
%750 = fsub <2 x double> %703, %722
%751 = fadd <2 x double> %717, %724
%752 = fadd <2 x double> %719, %727
%753 = fsub <2 x double> %717, %724
%754 = fsub <2 x double> %719, %727
%755 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %753, <2 x double> zeroinitializer, <2 x double> %754)
%756 = fmul <2 x double> %754, <double -0.000000e+00, double -0.000000e+00>
%757 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %753, <2 x double> <double -1.000000e+00, double -1.000000e+00>, <2 x double> %756)
%758 = fadd <2 x double> %747, %751
%759 = fadd <2 x double> %748, %752
%760 = fsub <2 x double> %747, %751
%761 = fsub <2 x double> %748, %752
%762 = fadd <2 x double> %749, %755
%763 = fadd <2 x double> %750, %757
%764 = fsub <2 x double> %749, %755
%765 = fsub <2 x double> %750, %757
%766 = getelementptr inbounds double, double* %0, i64 %676
%767 = bitcast double* %766 to <2 x double>*
store <2 x double> %739, <2 x double>* %767
%768 = add nuw nsw i64 %676, 64
%769 = getelementptr inbounds double, double* %0, i64 %768
%770 = bitcast double* %769 to <2 x double>*
store <2 x double> %758, <2 x double>* %770
%771 = add nuw nsw i64 %676, 128
%772 = getelementptr inbounds double, double* %0, i64 %771
%773 = bitcast double* %772 to <2 x double>*
store <2 x double> %743, <2 x double>* %773
%774 = add nuw nsw i64 %676, 192
%775 = getelementptr inbounds double, double* %0, i64 %774
%776 = bitcast double* %775 to <2 x double>*
store <2 x double> %762, <2 x double>* %776
%777 = add nuw nsw i64 %676, 256
%778 = getelementptr inbounds double, double* %0, i64 %777
%779 = bitcast double* %778 to <2 x double>*
store <2 x double> %741, <2 x double>* %779
%780 = add nuw nsw i64 %676, 320
%781 = getelementptr inbounds double, double* %0, i64 %780
%782 = bitcast double* %781 to <2 x double>*
store <2 x double> %760, <2 x double>* %782
%783 = add nuw nsw i64 %676, 384
%784 = getelementptr inbounds double, double* %0, i64 %783
%785 = bitcast double* %784 to <2 x double>*
store <2 x double> %745, <2 x double>* %785
%786 = add nuw nsw i64 %676, 448
%787 = getelementptr inbounds double, double* %0, i64 %786
%788 = bitcast double* %787 to <2 x double>*
store <2 x double> %764, <2 x double>* %788
%789 = getelementptr inbounds double, double* %1, i64 %676
%790 = bitcast double* %789 to <2 x double>*
store <2 x double> %740, <2 x double>* %790
%791 = getelementptr inbounds double, double* %1, i64 %768
%792 = bitcast double* %791 to <2 x double>*
store <2 x double> %759, <2 x double>* %792
%793 = getelementptr inbounds double, double* %1, i64 %771
%794 = bitcast double* %793 to <2 x double>*
store <2 x double> %744, <2 x double>* %794
%795 = getelementptr inbounds double, double* %1, i64 %774
%796 = bitcast double* %795 to <2 x double>*
store <2 x double> %763, <2 x double>* %796
%797 = getelementptr inbounds double, double* %1, i64 %777
%798 = bitcast double* %797 to <2 x double>*
store <2 x double> %742, <2 x double>* %798
%799 = getelementptr inbounds double, double* %1, i64 %780
%800 = bitcast double* %799 to <2 x double>*
store <2 x double> %761, <2 x double>* %800
%801 = getelementptr inbounds double, double* %1, i64 %783
%802 = bitcast double* %801 to <2 x double>*
store <2 x double> %746, <2 x double>* %802
%803 = getelementptr inbounds double, double* %1, i64 %786
%804 = bitcast double* %803 to <2 x double>*
store <2 x double> %765, <2 x double>* %804
%805 = add nuw i64 %676, 2
%806 = icmp eq i64 %805, 64
br i1 %806, label %940, label %675
807: ; preds = %669, %807
%808 = phi i64 [ %938, %807 ], [ 0, %669 ]
%809 = shl nuw nsw i64 %808, 3
%810 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %809
%811 = load double, double* %810
%812 = or i64 %809, 1
%813 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %812
%814 = load double, double* %813
%815 = or i64 %809, 2
%816 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %815
%817 = load double, double* %816
%818 = or i64 %809, 3
%819 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %818
%820 = load double, double* %819
%821 = or i64 %809, 4
%822 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %821
%823 = load double, double* %822
%824 = or i64 %809, 5
%825 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %824
%826 = load double, double* %825
%827 = or i64 %809, 6
%828 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %827
%829 = load double, double* %828
%830 = or i64 %809, 7
%831 = getelementptr inbounds [512 x double], [512 x double]* %4, i64 0, i64 %830
%832 = load double, double* %831
%833 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %809
%834 = load double, double* %833
%835 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %812
%836 = load double, double* %835
%837 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %815
%838 = load double, double* %837
%839 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %818
%840 = load double, double* %839
%841 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %821
%842 = load double, double* %841
%843 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %824
%844 = load double, double* %843
%845 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %827
%846 = load double, double* %845
%847 = getelementptr inbounds [512 x double], [512 x double]* %3, i64 0, i64 %830
%848 = load double, double* %847
%849 = fadd double %834, %842
%850 = fadd double %811, %823
%851 = fsub double %834, %842
%852 = fsub double %811, %823
%853 = fadd double %836, %844
%854 = fadd double %814, %826
%855 = fsub double %836, %844
%856 = fsub double %814, %826
%857 = fadd double %838, %846
%858 = fadd double %817, %829
%859 = fsub double %838, %846
%860 = fsub double %817, %829
%861 = fadd double %840, %848
%862 = fadd double %820, %832
%863 = fsub double %840, %848
%864 = fsub double %820, %832
%865 = fadd double %856, %855
%866 = fmul double %865, 0x3FE6A09E60000000
%867 = call double @llvm.fmuladd.f64(double %855, double -1.000000e+00, double %856)
%868 = fmul double %867, 0x3FE6A09E60000000
%869 = call double @llvm.fmuladd.f64(double %859, double 0.000000e+00, double %860)
%870 = fmul double %860, 0.000000e+00
%871 = call double @llvm.fmuladd.f64(double %859, double -1.000000e+00, double %870)
%872 = call double @llvm.fmuladd.f64(double %863, double -1.000000e+00, double %864)
%873 = fmul double %872, 0x3FE6A09E60000000
%874 = fneg double %864
%875 = call double @llvm.fmuladd.f64(double %863, double -1.000000e+00, double %874)
%876 = fmul double %875, 0x3FE6A09E60000000
%877 = fadd double %849, %857
%878 = fadd double %850, %858
%879 = fsub double %849, %857
%880 = fsub double %850, %858
%881 = fadd double %853, %861
%882 = fadd double %854, %862
%883 = fsub double %853, %861
%884 = fsub double %854, %862
%885 = call double @llvm.fmuladd.f64(double %883, double 0.000000e+00, double %884)
%886 = fmul double %884, -0.000000e+00
%887 = call double @llvm.fmuladd.f64(double %883, double -1.000000e+00, double %886)
%888 = fadd double %877, %881
%889 = fadd double %878, %882
%890 = fsub double %877, %881
%891 = fsub double %878, %882
%892 = fadd double %879, %885
%893 = fadd double %880, %887
%894 = fsub double %879, %885
%895 = fsub double %880, %887
%896 = fadd double %851, %869
%897 = fadd double %852, %871
%898 = fsub double %851, %869
%899 = fsub double %852, %871
%900 = fadd double %866, %873
%901 = fadd double %868, %876
%902 = fsub double %866, %873
%903 = fsub double %868, %876
%904 = call double @llvm.fmuladd.f64(double %902, double 0.000000e+00, double %903)
%905 = fmul double %903, -0.000000e+00
%906 = call double @llvm.fmuladd.f64(double %902, double -1.000000e+00, double %905)
%907 = fadd double %896, %900
%908 = fadd double %897, %901
%909 = fsub double %896, %900
%910 = fsub double %897, %901
%911 = fadd double %898, %904
%912 = fadd double %899, %906
%913 = fsub double %898, %904
%914 = fsub double %899, %906
%915 = getelementptr inbounds double, double* %0, i64 %808
store double %888, double* %915
%916 = add nuw nsw i64 %808, 64
%917 = getelementptr inbounds double, double* %0, i64 %916
store double %907, double* %917
%918 = add nuw nsw i64 %808, 128
%919 = getelementptr inbounds double, double* %0, i64 %918
store double %892, double* %919
%920 = add nuw nsw i64 %808, 192
%921 = getelementptr inbounds double, double* %0, i64 %920
store double %911, double* %921
%922 = add nuw nsw i64 %808, 256
%923 = getelementptr inbounds double, double* %0, i64 %922
store double %890, double* %923
%924 = add nuw nsw i64 %808, 320
%925 = getelementptr inbounds double, double* %0, i64 %924
store double %909, double* %925
%926 = add nuw nsw i64 %808, 384
%927 = getelementptr inbounds double, double* %0, i64 %926
store double %894, double* %927
%928 = add nuw nsw i64 %808, 448
%929 = getelementptr inbounds double, double* %0, i64 %928
store double %913, double* %929
%930 = getelementptr inbounds double, double* %1, i64 %808
store double %889, double* %930
%931 = getelementptr inbounds double, double* %1, i64 %916
store double %908, double* %931
%932 = getelementptr inbounds double, double* %1, i64 %918
store double %893, double* %932
%933 = getelementptr inbounds double, double* %1, i64 %920
store double %912, double* %933
%934 = getelementptr inbounds double, double* %1, i64 %922
store double %891, double* %934
%935 = getelementptr inbounds double, double* %1, i64 %924
store double %910, double* %935
%936 = getelementptr inbounds double, double* %1, i64 %926
store double %895, double* %936
%937 = getelementptr inbounds double, double* %1, i64 %928
store double %914, double* %937
%938 = add nuw nsw i64 %808, 1
%939 = icmp eq i64 %938, 64
br i1 %939, label %940, label %807
940: ; preds = %675, %807
ret void
}