void Forward_SO3_Naive_sym(int bw, double *rdata, double *idata,
                           double *rcoeffs, double *icoeffs, double *workspace1,
                           double *workspace2, int flag) {
  int j, n;
  int m1, m2;
  double fudge;
  int sampHere, coefHere, coefHere2;
  int tCoeffs;
  double *t1r, *t1i, *t2r, *t2i;
  double *sinPts, *cosPts, *sinPts2, *cosPts2;
  double *wigners, *scratch;
  double *weights;
  double *rcoeffsPtr, *icoeffsPtr;
  double *rdataPtr, *idataPtr;
  double dn;
  n = 2 * bw;
  t1r = workspace1;
  t1i = workspace1 + (n * n * n);
  t2r = t1i + (n * n * n);
  t2i = t2r + (n * n * n);
  rcoeffsPtr = rcoeffs;
  icoeffsPtr = icoeffs;
  rdataPtr = rdata;
  idataPtr = idata;
  weights = workspace2;
  sinPts = weights + n;
  cosPts = sinPts + n;
  sinPts2 = cosPts + n;
  cosPts2 = sinPts2 + n;
  wigners = cosPts2 + n;
  scratch = wigners + (bw * n);
  tCoeffs = totalCoeffs_so3(bw);
  SinEvalPts(n, sinPts);
  CosEvalPts(n, cosPts);
  SinEvalPts2(n, sinPts2);
  CosEvalPts2(n, cosPts2);
  makeweights2(bw, weights);
  grid_invfourier_so3(rdata, idata, t1r, t1i, n * n, n, scratch);
  transpose_so3(t1r, t2r, n * n, n);
  transpose_so3(t1i, t2i, n * n, n);
  grid_invfourier_so3(t2r, t2i, t1r, t1i, n * n, n, scratch);
  transpose_so3(t1r, t2r, n * n, n);
  transpose_so3(t1i, t2i, n * n, n);
  genWig_L2(0, 0, bw, sinPts, cosPts, sinPts2, cosPts2, wigners, scratch);
  sampHere = sampLoc_so3(0, 0, bw);
  coefHere = coefLoc_so3(0, 0, bw);
  rcoeffsPtr = rcoeffs;
  icoeffsPtr = icoeffs;
  rdataPtr = t2r;
  idataPtr = t2i;
  rdataPtr += sampHere;
  idataPtr += sampHere;
  rcoeffsPtr += coefHere;
  icoeffsPtr += coefHere;
  wigNaiveAnalysis(0, 0, bw, rdataPtr, wigners, weights, rcoeffsPtr, scratch);
  wigNaiveAnalysis(0, 0, bw, idataPtr, wigners, weights, icoeffsPtr, scratch);
  for (m1 = 1; m1 < bw; m1++) {
    genWig_L2(m1, m1, bw, sinPts, cosPts, sinPts2, cosPts2, wigners, scratch);
    sampHere = sampLoc_so3(m1, m1, bw);
    coefHere = coefLoc_so3(m1, m1, bw);
    rcoeffsPtr = rcoeffs;
    icoeffsPtr = icoeffs;
    rdataPtr = t2r;
    idataPtr = t2i;
    rdataPtr += sampHere;
    idataPtr += sampHere;
    rcoeffsPtr += coefHere;
    icoeffsPtr += coefHere;
    wigNaiveAnalysis(m1, m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                     scratch);
    wigNaiveAnalysis(m1, m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                     scratch);
    if (flag == 0) {
      sampHere = sampLoc_so3(-m1, -m1, bw);
      coefHere = coefLoc_so3(-m1, -m1, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis(-m1, -m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                       scratch);
      wigNaiveAnalysis(-m1, -m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                       scratch);
    } else {
      coefHere = coefLoc_so3(m1, m1, bw);
      coefHere2 = coefLoc_so3(-m1, -m1, bw);
      for (j = 0; j < bw - m1; j++) {
        rcoeffs[coefHere2 + j] = rcoeffs[coefHere + j];
        icoeffs[coefHere2 + j] = -icoeffs[coefHere + j];
      }
    }
    sampHere = sampLoc_so3(-m1, m1, bw);
    coefHere = coefLoc_so3(-m1, m1, bw);
    rcoeffsPtr = rcoeffs;
    icoeffsPtr = icoeffs;
    rdataPtr = t2r;
    idataPtr = t2i;
    rdataPtr += sampHere;
    idataPtr += sampHere;
    rcoeffsPtr += coefHere;
    icoeffsPtr += coefHere;
    wigNaiveAnalysis_symY(-m1, m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                          scratch);
    wigNaiveAnalysis_symY(-m1, m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                          scratch);
    if (flag == 0) {
      sampHere = sampLoc_so3(m1, -m1, bw);
      coefHere = coefLoc_so3(m1, -m1, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis_symY(m1, -m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                            scratch);
      wigNaiveAnalysis_symY(m1, -m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                            scratch);
    } else {
      coefHere = coefLoc_so3(-m1, m1, bw);
      coefHere2 = coefLoc_so3(m1, -m1, bw);
      for (j = 0; j < bw - m1; j++) {
        rcoeffs[coefHere2 + j] = rcoeffs[coefHere + j];
        icoeffs[coefHere2 + j] = -icoeffs[coefHere + j];
      }
    }
  }
  for (m1 = 1; m1 < bw; m1++) {
    genWig_L2(m1, 0, bw, sinPts, cosPts, sinPts2, cosPts2, wigners, scratch);
    sampHere = sampLoc_so3(m1, 0, bw);
    coefHere = coefLoc_so3(m1, 0, bw);
    rcoeffsPtr = rcoeffs;
    icoeffsPtr = icoeffs;
    rdataPtr = t2r;
    idataPtr = t2i;
    rdataPtr += sampHere;
    idataPtr += sampHere;
    rcoeffsPtr += coefHere;
    icoeffsPtr += coefHere;
    wigNaiveAnalysis(m1, 0, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                     scratch);
    wigNaiveAnalysis(m1, 0, bw, idataPtr, wigners, weights, icoeffsPtr,
                     scratch);
    if (flag == 0) {
      sampHere = sampLoc_so3(-m1, 0, bw);
      coefHere = coefLoc_so3(-m1, 0, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis_symX(-m1, 0, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                            scratch);
      wigNaiveAnalysis_symX(-m1, 0, bw, idataPtr, wigners, weights, icoeffsPtr,
                            scratch);
    } else {
      coefHere = coefLoc_so3(m1, 0, bw);
      coefHere2 = coefLoc_so3(-m1, 0, bw);
      if ((m1 % 2) == 0)
        fudge = 1.0;
      else
        fudge = -1.0;
      for (j = 0; j < bw - m1; j++) {
        rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
        icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
      }
    }
    sampHere = sampLoc_so3(0, m1, bw);
    coefHere = coefLoc_so3(0, m1, bw);
    rcoeffsPtr = rcoeffs;
    icoeffsPtr = icoeffs;
    rdataPtr = t2r;
    idataPtr = t2i;
    rdataPtr += sampHere;
    idataPtr += sampHere;
    rcoeffsPtr += coefHere;
    icoeffsPtr += coefHere;
    wigNaiveAnalysis_symX(0, m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                          scratch);
    wigNaiveAnalysis_symX(0, m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                          scratch);
    if (flag == 0) {
      sampHere = sampLoc_so3(0, -m1, bw);
      coefHere = coefLoc_so3(0, -m1, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis(0, -m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                       scratch);
      wigNaiveAnalysis(0, -m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                       scratch);
    } else {
      coefHere = coefLoc_so3(0, m1, bw);
      coefHere2 = coefLoc_so3(0, -m1, bw);
      if ((m1 % 2) == 0)
        fudge = 1.0;
      else
        fudge = -1.0;
      for (j = 0; j < bw - m1; j++) {
        rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
        icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
      }
    }
  }
  for (m1 = 1; m1 < bw; m1++) {
    for (m2 = m1 + 1; m2 < bw; m2++) {
      genWig_L2(m1, m2, bw, sinPts, cosPts, sinPts2, cosPts2, wigners, scratch);
      sampHere = sampLoc_so3(m1, m2, bw);
      coefHere = coefLoc_so3(m1, m2, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis(m1, m2, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                       scratch);
      wigNaiveAnalysis(m1, m2, bw, idataPtr, wigners, weights, icoeffsPtr,
                       scratch);
      if (flag == 0) {
        sampHere = sampLoc_so3(-m1, -m2, bw);
        coefHere = coefLoc_so3(-m1, -m2, bw);
        rcoeffsPtr = rcoeffs;
        icoeffsPtr = icoeffs;
        rdataPtr = t2r;
        idataPtr = t2i;
        rdataPtr += sampHere;
        idataPtr += sampHere;
        rcoeffsPtr += coefHere;
        icoeffsPtr += coefHere;
        wigNaiveAnalysis_symX(-m1, -m2, bw, rdataPtr, wigners, weights,
                              rcoeffsPtr, scratch);
        wigNaiveAnalysis_symX(-m1, -m2, bw, idataPtr, wigners, weights,
                              icoeffsPtr, scratch);
      } else {
        coefHere = coefLoc_so3(m1, m2, bw);
        coefHere2 = coefLoc_so3(-m1, -m2, bw);
        if (((m2 - m1) % 2) == 0)
          fudge = 1.0;
        else
          fudge = -1.0;
        for (j = 0; j < bw - m2; j++) {
          rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
          icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
        }
      }
      sampHere = sampLoc_so3(m1, -m2, bw);
      coefHere = coefLoc_so3(m1, -m2, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis_symY(m1, -m2, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                            scratch);
      wigNaiveAnalysis_symY(m1, -m2, bw, idataPtr, wigners, weights, icoeffsPtr,
                            scratch);
      if (flag == 0) {
        sampHere = sampLoc_so3(-m1, m2, bw);
        coefHere = coefLoc_so3(-m1, m2, bw);
        rcoeffsPtr = rcoeffs;
        icoeffsPtr = icoeffs;
        rdataPtr = t2r;
        idataPtr = t2i;
        rdataPtr += sampHere;
        idataPtr += sampHere;
        rcoeffsPtr += coefHere;
        icoeffsPtr += coefHere;
        wigNaiveAnalysis_symY(-m1, m2, bw, rdataPtr, wigners, weights,
                              rcoeffsPtr, scratch);
        wigNaiveAnalysis_symY(-m1, m2, bw, idataPtr, wigners, weights,
                              icoeffsPtr, scratch);
      } else {
        coefHere = coefLoc_so3(m1, -m2, bw);
        coefHere2 = coefLoc_so3(-m1, m2, bw);
        if (((m2 - m1) % 2) == 0)
          fudge = 1.0;
        else
          fudge = -1.0;
        for (j = 0; j < bw - m2; j++) {
          rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
          icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
        }
      }
      sampHere = sampLoc_so3(m2, m1, bw);
      coefHere = coefLoc_so3(m2, m1, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis_symX(m2, m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                            scratch);
      wigNaiveAnalysis_symX(m2, m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                            scratch);
      if (flag == 0) {
        sampHere = sampLoc_so3(-m2, -m1, bw);
        coefHere = coefLoc_so3(-m2, -m1, bw);
        rcoeffsPtr = rcoeffs;
        icoeffsPtr = icoeffs;
        rdataPtr = t2r;
        idataPtr = t2i;
        rdataPtr += sampHere;
        idataPtr += sampHere;
        rcoeffsPtr += coefHere;
        icoeffsPtr += coefHere;
        wigNaiveAnalysis(-m2, -m1, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                         scratch);
        wigNaiveAnalysis(-m2, -m1, bw, idataPtr, wigners, weights, icoeffsPtr,
                         scratch);
      } else {
        coefHere = coefLoc_so3(m2, m1, bw);
        coefHere2 = coefLoc_so3(-m2, -m1, bw);
        if (((m2 - m1) % 2) == 0)
          fudge = 1.0;
        else
          fudge = -1.0;
        for (j = 0; j < bw - m2; j++) {
          rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
          icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
        }
      }
      sampHere = sampLoc_so3(m2, -m1, bw);
      coefHere = coefLoc_so3(m2, -m1, bw);
      rcoeffsPtr = rcoeffs;
      icoeffsPtr = icoeffs;
      rdataPtr = t2r;
      idataPtr = t2i;
      rdataPtr += sampHere;
      idataPtr += sampHere;
      rcoeffsPtr += coefHere;
      icoeffsPtr += coefHere;
      wigNaiveAnalysis_symY(m1, -m2, bw, rdataPtr, wigners, weights, rcoeffsPtr,
                            scratch);
      wigNaiveAnalysis_symY(m1, -m2, bw, idataPtr, wigners, weights, icoeffsPtr,
                            scratch);
      if (flag == 0) {
        sampHere = sampLoc_so3(-m2, m1, bw);
        coefHere = coefLoc_so3(-m2, m1, bw);
        rcoeffsPtr = rcoeffs;
        icoeffsPtr = icoeffs;
        rdataPtr = t2r;
        idataPtr = t2i;
        rdataPtr += sampHere;
        idataPtr += sampHere;
        rcoeffsPtr += coefHere;
        icoeffsPtr += coefHere;
        wigNaiveAnalysis_symY(-m1, m2, bw, rdataPtr, wigners, weights,
                              rcoeffsPtr, scratch);
        wigNaiveAnalysis_symY(-m1, m2, bw, idataPtr, wigners, weights,
                              icoeffsPtr, scratch);
      } else {
        coefHere = coefLoc_so3(m2, -m1, bw);
        coefHere2 = coefLoc_so3(-m2, m1, bw);
        if (((m2 - m1) % 2) == 0)
          fudge = 1.0;
        else
          fudge = -1.0;
        for (j = 0; j < bw - m2; j++) {
          rcoeffs[coefHere2 + j] = fudge * rcoeffs[coefHere + j];
          icoeffs[coefHere2 + j] = -fudge * icoeffs[coefHere + j];
        }
      }
    }
  }
  rcoeffsPtr = rcoeffs;
  icoeffsPtr = icoeffs;
  dn = (3.14159265358979323846 / ((double)(bw * n)));
  for (j = 0; j < tCoeffs; j++) {
    rcoeffsPtr[j] *= dn;
    icoeffsPtr[j] *= dn;
  }
}


x86 assembly (clang, -O0):
<Forward_SO3_Naive_sym>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
mov    -0x4(%rbp),%eax
shl    $0x1,%eax
mov    %eax,-0x38(%rbp)
mov    -0x30(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x30(%rbp),%rax
mov    -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
mov    -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x70(%rbp)
mov    -0x70(%rbp),%rax
mov    -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
imul   -0x38(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x78(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    0x10(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x80(%rbp)
mov    -0x80(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x90(%rbp)
mov    -0x90(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
mov    -0x4(%rbp),%ecx
imul   -0x38(%rbp),%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x4(%rbp),%edi
mov    $0x0,%al
call   1100 <totalCoeffs_so3@plt>
mov    %eax,-0x58(%rbp)
mov    -0x38(%rbp),%edi
mov    -0x80(%rbp),%rsi
mov    $0x0,%al
call   10b0 <SinEvalPts@plt>
mov    -0x38(%rbp),%edi
mov    -0x88(%rbp),%rsi
mov    $0x0,%al
call   10e0 <CosEvalPts@plt>
mov    -0x38(%rbp),%edi
mov    -0x90(%rbp),%rsi
mov    $0x0,%al
call   1080 <SinEvalPts2@plt>
mov    -0x38(%rbp),%edi
mov    -0x98(%rbp),%rsi
mov    $0x0,%al
call   1060 <CosEvalPts2@plt>
mov    -0x4(%rbp),%edi
mov    -0xb0(%rbp),%rsi
mov    $0x0,%al
call   10a0 <makeweights2@plt>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x60(%rbp),%rdx
mov    -0x68(%rbp),%rcx
mov    -0x38(%rbp),%r8d
imul   -0x38(%rbp),%r8d
mov    -0x38(%rbp),%r9d
mov    -0xa8(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <grid_invfourier_so3@plt>
mov    -0x60(%rbp),%rdi
mov    -0x70(%rbp),%rsi
mov    -0x38(%rbp),%edx
imul   -0x38(%rbp),%edx
mov    -0x38(%rbp),%ecx
mov    $0x0,%al
call   10f0 <transpose_so3@plt>
mov    -0x68(%rbp),%rdi
mov    -0x78(%rbp),%rsi
mov    -0x38(%rbp),%edx
imul   -0x38(%rbp),%edx
mov    -0x38(%rbp),%ecx
mov    $0x0,%al
call   10f0 <transpose_so3@plt>
mov    -0x70(%rbp),%rdi
mov    -0x78(%rbp),%rsi
mov    -0x60(%rbp),%rdx
mov    -0x68(%rbp),%rcx
mov    -0x38(%rbp),%r8d
imul   -0x38(%rbp),%r8d
mov    -0x38(%rbp),%r9d
mov    -0xa8(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <grid_invfourier_so3@plt>
mov    -0x60(%rbp),%rdi
mov    -0x70(%rbp),%rsi
mov    -0x38(%rbp),%edx
imul   -0x38(%rbp),%edx
mov    -0x38(%rbp),%ecx
mov    $0x0,%al
call   10f0 <transpose_so3@plt>
mov    -0x68(%rbp),%rdi
mov    -0x78(%rbp),%rsi
mov    -0x38(%rbp),%edx
imul   -0x38(%rbp),%edx
mov    -0x38(%rbp),%ecx
mov    $0x0,%al
call   10f0 <transpose_so3@plt>
mov    -0x4(%rbp),%edx
mov    -0x80(%rbp),%rcx
mov    -0x88(%rbp),%r8
mov    -0x90(%rbp),%r9
mov    -0x98(%rbp),%r11
mov    -0xa0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %esi,%edi
mov    %r11,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1040 <genWig_L2@plt>
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    %esi,%edi
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    %esi,%edi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %esi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %esi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1cb9 <Forward_SO3_Naive_sym+0xad9>
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0x80(%rbp),%rcx
mov    -0x88(%rbp),%r8
mov    -0x90(%rbp),%r9
mov    -0x98(%rbp),%r11
mov    -0xa0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r11,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1040 <genWig_L2@plt>
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
cmpl   $0x0,0x18(%rbp)
jne    18b3 <Forward_SO3_Naive_sym+0x6d3>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
jmp    1967 <Forward_SO3_Naive_sym+0x787>
mov    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
cmp    %ecx,%eax
jge    1962 <Forward_SO3_Naive_sym+0x782>
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    18e4 <Forward_SO3_Naive_sym+0x704>
jmp    1967 <Forward_SO3_Naive_sym+0x787>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
cmpl   $0x0,0x18(%rbp)
jne    1bf2 <Forward_SO3_Naive_sym+0xa12>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
jmp    1ca6 <Forward_SO3_Naive_sym+0xac6>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
cmp    %ecx,%eax
jge    1ca1 <Forward_SO3_Naive_sym+0xac1>
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1c23 <Forward_SO3_Naive_sym+0xa43>
jmp    1ca6 <Forward_SO3_Naive_sym+0xac6>
jmp    1cab <Forward_SO3_Naive_sym+0xacb>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    15d7 <Forward_SO3_Naive_sym+0x3f7>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    23f3 <Forward_SO3_Naive_sym+0x1213>
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
mov    -0x80(%rbp),%rcx
mov    -0x88(%rbp),%r8
mov    -0x90(%rbp),%r9
mov    -0x98(%rbp),%r11
mov    -0xa0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %r11,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1040 <genWig_L2@plt>
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
cmpl   $0x0,0x18(%rbp)
jne    1f8b <Forward_SO3_Naive_sym+0xdab>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %esi,%esi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
jmp    2078 <Forward_SO3_Naive_sym+0xe98>
mov    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x4(%rbp),%edx
xor    %esi,%esi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1fd7 <Forward_SO3_Naive_sym+0xdf7>
movsd  0x2043(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    1fe4 <Forward_SO3_Naive_sym+0xe04>
movsd  0x2029(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
cmp    %ecx,%eax
jge    2073 <Forward_SO3_Naive_sym+0xe93>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1feb <Forward_SO3_Naive_sym+0xe0b>
jmp    2078 <Forward_SO3_Naive_sym+0xe98>
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %edi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %edi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
cmpl   $0x0,0x18(%rbp)
jne    22f3 <Forward_SO3_Naive_sym+0x1113>
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %edi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
xor    %edi,%edi
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
jmp    23e0 <Forward_SO3_Naive_sym+0x1200>
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
xor    %edi,%edi
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    233f <Forward_SO3_Naive_sym+0x115f>
movsd  0x1cdb(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    234c <Forward_SO3_Naive_sym+0x116c>
movsd  0x1cc1(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x3c(%rbp),%ecx
cmp    %ecx,%eax
jge    23db <Forward_SO3_Naive_sym+0x11fb>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    2353 <Forward_SO3_Naive_sym+0x1173>
jmp    23e0 <Forward_SO3_Naive_sym+0x1200>
jmp    23e5 <Forward_SO3_Naive_sym+0x1205>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    1cc0 <Forward_SO3_Naive_sym+0xae0>
movl   $0x1,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    3282 <Forward_SO3_Naive_sym+0x20a2>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    326f <Forward_SO3_Naive_sym+0x208f>
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0x80(%rbp),%rcx
mov    -0x88(%rbp),%r8
mov    -0x90(%rbp),%r9
mov    -0x98(%rbp),%r11
mov    -0xa0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r11,(%rsp)
mov    %r10,0x8(%rsp)
mov    %rax,0x10(%rsp)
mov    $0x0,%al
call   1040 <genWig_L2@plt>
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
cmpl   $0x0,0x18(%rbp)
jne    26eb <Forward_SO3_Naive_sym+0x150b>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
jmp    27df <Forward_SO3_Naive_sym+0x15ff>
mov    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    273e <Forward_SO3_Naive_sym+0x155e>
movsd  0x18dc(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    274b <Forward_SO3_Naive_sym+0x156b>
movsd  0x18c2(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x40(%rbp),%ecx
cmp    %ecx,%eax
jge    27da <Forward_SO3_Naive_sym+0x15fa>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    2752 <Forward_SO3_Naive_sym+0x1572>
jmp    27df <Forward_SO3_Naive_sym+0x15ff>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
cmpl   $0x0,0x18(%rbp)
jne    2a6a <Forward_SO3_Naive_sym+0x188a>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
jmp    2b5e <Forward_SO3_Naive_sym+0x197e>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    2abd <Forward_SO3_Naive_sym+0x18dd>
movsd  0x155d(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    2aca <Forward_SO3_Naive_sym+0x18ea>
movsd  0x1543(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x40(%rbp),%ecx
cmp    %ecx,%eax
jge    2b59 <Forward_SO3_Naive_sym+0x1979>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    2ad1 <Forward_SO3_Naive_sym+0x18f1>
jmp    2b5e <Forward_SO3_Naive_sym+0x197e>
mov    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
mov    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   1050 <wigNaiveAnalysis_symX@plt>
cmpl   $0x0,0x18(%rbp)
jne    2de9 <Forward_SO3_Naive_sym+0x1c09>
xor    %edi,%edi
sub    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
xor    %edi,%edi
sub    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10c0 <wigNaiveAnalysis@plt>
jmp    2edd <Forward_SO3_Naive_sym+0x1cfd>
mov    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    2e3c <Forward_SO3_Naive_sym+0x1c5c>
movsd  0x11de(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    2e49 <Forward_SO3_Naive_sym+0x1c69>
movsd  0x11c4(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x40(%rbp),%ecx
cmp    %ecx,%eax
jge    2ed8 <Forward_SO3_Naive_sym+0x1cf8>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    2e50 <Forward_SO3_Naive_sym+0x1c70>
jmp    2edd <Forward_SO3_Naive_sym+0x1cfd>
mov    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
mov    -0x3c(%rbp),%edi
xor    %esi,%esi
sub    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
cmpl   $0x0,0x18(%rbp)
jne    3168 <Forward_SO3_Naive_sym+0x1f88>
xor    %edi,%edi
sub    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1090 <sampLoc_so3@plt>
mov    %eax,-0x4c(%rbp)
xor    %edi,%edi
sub    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x70(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x78(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xc8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x4c(%rbp),%ecx
mov    -0xd0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xb8(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xb8(%rbp)
mov    -0x50(%rbp),%ecx
mov    -0xc0(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0xc0(%rbp)
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xc8(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xb8(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
xor    %edi,%edi
sub    -0x3c(%rbp),%edi
mov    -0x40(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    -0xd0(%rbp),%rcx
mov    -0xa0(%rbp),%r8
mov    -0xb0(%rbp),%r9
mov    -0xc0(%rbp),%r10
mov    -0xa8(%rbp),%rax
mov    %r10,(%rsp)
mov    %rax,0x8(%rsp)
mov    $0x0,%al
call   10d0 <wigNaiveAnalysis_symY@plt>
jmp    325c <Forward_SO3_Naive_sym+0x207c>
mov    -0x40(%rbp),%edi
xor    %esi,%esi
sub    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x50(%rbp)
xor    %edi,%edi
sub    -0x40(%rbp),%edi
mov    -0x3c(%rbp),%esi
mov    -0x4(%rbp),%edx
mov    $0x0,%al
call   1070 <coefLoc_so3@plt>
mov    %eax,-0x54(%rbp)
mov    -0x40(%rbp),%eax
sub    -0x3c(%rbp),%eax
mov    $0x2,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    31bb <Forward_SO3_Naive_sym+0x1fdb>
movsd  0xe5f(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
jmp    31c8 <Forward_SO3_Naive_sym+0x1fe8>
movsd  0xe45(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    -0x40(%rbp),%ecx
cmp    %ecx,%eax
jge    3257 <Forward_SO3_Naive_sym+0x2077>
movsd  -0x48(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x48(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x28(%rbp),%rax
mov    -0x50(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mulsd  (%rax,%rcx,8),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x54(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    31cf <Forward_SO3_Naive_sym+0x1fef>
jmp    325c <Forward_SO3_Naive_sym+0x207c>
jmp    3261 <Forward_SO3_Naive_sym+0x2081>
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    240f <Forward_SO3_Naive_sym+0x122f>
jmp    3274 <Forward_SO3_Naive_sym+0x2094>
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    23fa <Forward_SO3_Naive_sym+0x121a>
mov    -0x20(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x4(%rbp),%eax
imul   -0x38(%rbp),%eax
cvtsi2sd %eax,%xmm1
movsd  0xd55(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x58(%rbp),%eax
jge    3312 <Forward_SO3_Naive_sym+0x2132>
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0xb8(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0xc0(%rbp),%rax
movslq -0x34(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    32be <Forward_SO3_Naive_sym+0x20de>
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Forward_SO3_Naive_sym>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x128,%rsp
mov    %r9,0x30(%rsp)
mov    %r8,0x18(%rsp)
mov    %rcx,0x10(%rsp)
mov    %rdx,0x38(%rsp)
mov    %rsi,0x20(%rsp)
mov    0x160(%rsp),%rdx
lea    (%rdi,%rdi,1),%eax
mov    %eax,%r12d
imul   %eax,%r12d
mov    %r12d,%ecx
imul   %eax,%ecx
movslq %ecx,%rcx
lea    (%r9,%rcx,8),%rsi
mov    %rsi,0x80(%rsp)
lea    (%rsi,%rcx,8),%rsi
mov    %rsi,0x58(%rsp)
lea    (%rsi,%rcx,8),%rcx
mov    %rcx,0x48(%rsp)
movslq %eax,%rbp
lea    (%rdx,%rbp,8),%r15
lea    (%r15,%rbp,8),%rbx
mov    %r15,0xf0(%rsp)
mov    %ebp,%eax
mov    %rdi,0x60(%rsp)
imul   %edi,%eax
lea    (%rbx,%rbp,8),%r14
mov    %rbx,0xe8(%rsp)
lea    (%r14,%rbp,8),%r13
mov    %r14,0xe0(%rsp)
lea    0x0(%r13,%rbp,8),%rcx
mov    %rcx,0x70(%rsp)
mov    %r13,0xd8(%rsp)
mov    %eax,0xf8(%rsp)
cltq
lea    (%rcx,%rax,8),%rax
mov    %rax,0x78(%rsp)
xor    %eax,%eax
call   1100 <totalCoeffs_so3@plt>
mov    %eax,0xfc(%rsp)
mov    %ebp,%edi
mov    %r15,%rsi
xor    %eax,%eax
call   10b0 <SinEvalPts@plt>
mov    %ebp,%edi
mov    %rbx,%rsi
xor    %eax,%eax
call   10e0 <CosEvalPts@plt>
mov    %ebp,%edi
mov    %r14,%rsi
xor    %eax,%eax
call   1080 <SinEvalPts2@plt>
mov    %ebp,%edi
mov    %r13,%rsi
xor    %eax,%eax
call   1060 <CosEvalPts2@plt>
mov    0x60(%rsp),%rdi
mov    0x160(%rsp),%rsi
xor    %eax,%eax
call   10a0 <makeweights2@plt>
sub    $0x8,%rsp
mov    0x28(%rsp),%rdi
mov    0x40(%rsp),%rsi
mov    0x38(%rsp),%r14
mov    %r14,%rdx
mov    0x88(%rsp),%r15
mov    %r15,%rcx
mov    %r12d,%r8d
mov    %ebp,%r9d
xor    %eax,%eax
push   0x80(%rsp)
call   1030 <grid_invfourier_so3@plt>
add    $0x10,%rsp
mov    %r14,%rdi
mov    0x58(%rsp),%r13
mov    %r13,%rsi
mov    %r12d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10f0 <transpose_so3@plt>
mov    %r15,%rdi
mov    0x48(%rsp),%rbx
mov    %rbx,%rsi
mov    %r12d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10f0 <transpose_so3@plt>
sub    $0x8,%rsp
mov    %r13,%rdi
mov    %rbx,%rsi
mov    %r14,%rdx
mov    %r15,%rcx
mov    %r12d,%r8d
mov    %ebp,%r9d
xor    %eax,%eax
mov    0x80(%rsp),%rbx
push   %rbx
call   1030 <grid_invfourier_so3@plt>
add    $0x10,%rsp
mov    %r14,%rdi
mov    %r13,%rsi
mov    %r12d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10f0 <transpose_so3@plt>
mov    %r15,%rdi
mov    0x48(%rsp),%r15
mov    %r15,%rsi
mov    %r12d,%edx
mov    %ebp,%ecx
xor    %eax,%eax
call   10f0 <transpose_so3@plt>
sub    $0x8,%rsp
xor    %edi,%edi
xor    %esi,%esi
mov    0x68(%rsp),%r12
mov    %r12d,%edx
mov    0xf8(%rsp),%rcx
mov    0xf0(%rsp),%r8
mov    0xe8(%rsp),%r9
xor    %eax,%eax
push   %rbx
mov    0x80(%rsp),%r14
push   %r14
push   0xf0(%rsp)
call   1040 <genWig_L2@plt>
add    $0x20,%rsp
xor    %edi,%edi
xor    %esi,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebp
xor    %edi,%edi
xor    %esi,%esi
mov    %r12d,%edx
mov    %r12,%rbx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebp,%rdx
lea    0x0(,%rdx,8),%rcx
add    %r13,%rcx
lea    (%r15,%rdx,8),%r13
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
mov    0x18(%rsp),%r12
lea    (%r12,%rax,8),%r15
xor    %edi,%edi
xor    %esi,%esi
mov    %ebx,%edx
mov    %r14,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
mov    0x78(%rsp),%rbp
push   %rbp
push   %r10
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
xor    %edi,%edi
xor    %esi,%esi
mov    %ebx,%edx
mov    %r13,%rcx
mov    %r14,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %rbp
push   %r15
call   10c0 <wigNaiveAnalysis@plt>
mov    %r12,%r10
add    $0x10,%rsp
cmp    $0x2,%ebx
jl     3a9d <Forward_SO3_Naive_sym+0x28bd>
mov    0x60(%rsp),%r12
lea    -0x1(%r12),%ecx
lea    0x30(%r10),%rax
mov    %rax,0xb0(%rsp)
mov    0x10(%rsp),%rdx
lea    0x30(%rdx),%rax
mov    %rax,0xa8(%rsp)
lea    0x8(%rdx),%rax
mov    %rax,0x98(%rsp)
lea    0x8(%r10),%rax
mov    %rax,0x90(%rsp)
movl   $0x1,0x38(%rsp)
mov    %ecx,0x68(%rsp)
mov    %ecx,%ebp
xor    %ecx,%ecx
jmp    15b9 <Forward_SO3_Naive_sym+0x3d9>
nopw   0x0(%rax,%rax,1)
mov    %r14d,%edi
mov    %ebp,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r14d,%edi
mov    %ebp,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    %ebp,0xa0(%rsp)
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %r14d,%edi
mov    %ebp,%esi
mov    %r12d,%edx
mov    0x70(%rsp),%r15
mov    %r15,%r8
mov    0x160(%rsp),%rbp
mov    %rbp,%r9
xor    %eax,%eax
mov    0x78(%rsp),%rbx
push   %rbx
push   %r10
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %r14d,%edi
mov    0xa0(%rsp),%esi
mov    %r12d,%edx
mov    0x28(%rsp),%rcx
mov    %r15,%r8
mov    %rbp,%r9
xor    %eax,%eax
push   %rbx
push   0x38(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    0x20(%rsp),%rbp
add    $0x1,%r14d
mov    0x80(%rsp),%ecx
add    $0x1,%ecx
add    $0xffffffff,%ebp
mov    0x60(%rsp),%r12
mov    %r14d,0x38(%rsp)
cmp    %r12d,%r14d
je     1e67 <Forward_SO3_Naive_sym+0xc87>
mov    %ebp,%ebp
mov    %rbp,0x20(%rsp)
and    $0xfffffffc,%ebp
add    $0xfffffffffffffffc,%rbp
shr    $0x2,%rbp
add    $0x1,%rbp
and    $0xfffffffffffffffe,%rbp
mov    %rbp,0x50(%rsp)
mov    0x68(%rsp),%eax
mov    %ecx,0x80(%rsp)
sub    %ecx,%eax
mov    %rax,0x88(%rsp)
and    $0xfffffffc,%eax
add    $0xfffffffffffffffc,%rax
mov    %rax,0xb8(%rsp)
shr    $0x2,%rax
add    $0x1,%rax
mov    %rax,0xc0(%rsp)
sub    $0x8,%rsp
mov    0x40(%rsp),%r15d
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
mov    0xf8(%rsp),%rcx
mov    0xf0(%rsp),%r8
mov    0xe8(%rsp),%r9
xor    %eax,%eax
mov    0x80(%rsp),%r13
push   %r13
mov    0x80(%rsp),%r14
push   %r14
push   0xf0(%rsp)
call   1040 <genWig_L2@plt>
add    $0x20,%rsp
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%rbp
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
mov    %r14,%r8
mov    0x160(%rsp),%rbx
mov    %rbx,%r9
xor    %eax,%eax
push   %r13
push   %rbp
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
mov    0x28(%rsp),%rcx
mov    %r14,%r8
mov    %rbx,%r9
xor    %eax,%eax
push   %r13
push   0x38(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     1830 <Forward_SO3_Naive_sym+0x650>
mov    0x38(%rsp),%ebp
mov    %ebp,%edi
mov    %ebp,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%ebx
mov    %ebp,%r15d
neg    %r15d
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
cmp    %r12d,%ebp
jge    1ab0 <Forward_SO3_Naive_sym+0x8d0>
movslq %ebx,%r14
movslq %eax,%r13
mov    0x88(%rsp),%r12
cmp    $0x4,%r12d
movapd 0x28aa(%rip),%xmm2
jae    18de <Forward_SO3_Naive_sym+0x6fe>
xor    %edx,%edx
mov    %rdx,%rax
test   $0x1,%r12b
je     1798 <Forward_SO3_Naive_sym+0x5b8>
lea    (%rdx,%r14,1),%rax
mov    0x10(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm0
lea    (%rdx,%r13,1),%rcx
movsd  %xmm0,(%rsi,%rcx,8)
mov    0x18(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm0
xorpd  %xmm2,%xmm0
movlpd %xmm0,(%rsi,%rcx,8)
mov    %rdx,%rax
or     $0x1,%rax
not    %rdx
add    %r12,%rdx
je     1ab0 <Forward_SO3_Naive_sym+0x8d0>
mov    0x98(%rsp),%rsi
lea    (%rsi,%r13,8),%rcx
mov    0x90(%rsp),%rdi
lea    (%rdi,%r13,8),%rdx
lea    (%rsi,%r14,8),%rsi
lea    (%rdi,%r14,8),%rdi
movapd 0x2834(%rip),%xmm1
mov    0x20(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movsd  -0x8(%rsi,%rax,8),%xmm0
movsd  %xmm0,-0x8(%rcx,%rax,8)
movsd  -0x8(%rdi,%rax,8),%xmm0
xorpd  %xmm1,%xmm0
movlpd %xmm0,-0x8(%rdx,%rax,8)
movsd  (%rsi,%rax,8),%xmm0
movsd  %xmm0,(%rcx,%rax,8)
movsd  (%rdi,%rax,8),%xmm0
xorpd  %xmm1,%xmm0
movlpd %xmm0,(%rdx,%rax,8)
add    $0x2,%rax
cmp    %rax,%rbp
jne    17e0 <Forward_SO3_Naive_sym+0x600>
jmp    1ab0 <Forward_SO3_Naive_sym+0x8d0>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x38(%rsp),%r15d
neg    %r15d
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebp
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebp,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%r13
lea    0x0(%r13,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
mov    0x70(%rsp),%r14
mov    %r14,%r8
mov    %rbx,%r9
xor    %eax,%eax
mov    0x78(%rsp),%rbp
push   %rbp
push   %r10
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r15d,%edi
mov    %r15d,%esi
mov    %r12d,%edx
mov    0x28(%rsp),%rcx
mov    %r14,%r8
mov    %rbx,%r9
xor    %eax,%eax
push   %rbp
push   0x38(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
jmp    1aba <Forward_SO3_Naive_sym+0x8da>
mov    0x10(%rsp),%rdx
lea    (%rdx,%r13,8),%rax
lea    (%r12,%r13,1),%rcx
lea    (%rdx,%rcx,8),%rsi
mov    0x18(%rsp),%rbp
lea    0x0(%rbp,%r13,8),%rdi
lea    0x0(%rbp,%rcx,8),%r8
lea    (%rdx,%r14,8),%rbx
lea    (%r14,%r12,1),%rcx
lea    (%rdx,%rcx,8),%rdx
lea    0x0(,%r14,8),%r11
add    %rbp,%r11
lea    0x0(,%rcx,8),%r10
add    %rbp,%r10
cmp    %r8,%rax
setb   0x30(%rsp)
cmp    %rsi,%rdi
setb   %bpl
cmp    %rdx,%rax
setb   %cl
cmp    %rsi,%rbx
setb   0x28(%rsp)
cmp    %r10,%rax
setb   %r9b
cmp    %rsi,%r11
setb   0xa0(%rsp)
cmp    %rdx,%rdi
setb   %sil
cmp    %r8,%rbx
setb   %dl
cmp    %r10,%rdi
setb   %al
cmp    %r8,%r11
setb   %bl
test   %bpl,0x30(%rsp)
jne    175c <Forward_SO3_Naive_sym+0x57c>
and    0x28(%rsp),%cl
jne    175c <Forward_SO3_Naive_sym+0x57c>
and    0xa0(%rsp),%r9b
jne    175c <Forward_SO3_Naive_sym+0x57c>
and    %dl,%sil
jne    175c <Forward_SO3_Naive_sym+0x57c>
mov    $0x0,%edx
and    %bl,%al
jne    175e <Forward_SO3_Naive_sym+0x57e>
cmpq   $0x0,0xb8(%rsp)
je     1a50 <Forward_SO3_Naive_sym+0x870>
mov    0xb0(%rsp),%rax
lea    (%rax,%r14,8),%rdx
mov    0xa8(%rsp),%rcx
lea    (%rcx,%r14,8),%rdi
lea    (%rax,%r13,8),%rbx
lea    (%rcx,%r13,8),%rcx
mov    0x50(%rsp),%rax
xor    %esi,%esi
nopw   0x0(%rax,%rax,1)
movups -0x30(%rdi,%rsi,8),%xmm0
movups -0x20(%rdi,%rsi,8),%xmm1
movups %xmm0,-0x30(%rcx,%rsi,8)
movups %xmm1,-0x20(%rcx,%rsi,8)
movupd -0x30(%rdx,%rsi,8),%xmm0
movupd -0x20(%rdx,%rsi,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,-0x30(%rbx,%rsi,8)
movupd %xmm1,-0x20(%rbx,%rsi,8)
movups -0x10(%rdi,%rsi,8),%xmm0
movups (%rdi,%rsi,8),%xmm1
movups %xmm0,-0x10(%rcx,%rsi,8)
movups %xmm1,(%rcx,%rsi,8)
movupd -0x10(%rdx,%rsi,8),%xmm0
movupd (%rdx,%rsi,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,-0x10(%rbx,%rsi,8)
movupd %xmm1,(%rbx,%rsi,8)
add    $0x8,%rsi
add    $0xfffffffffffffffe,%rax
jne    19e0 <Forward_SO3_Naive_sym+0x800>
jmp    1a52 <Forward_SO3_Naive_sym+0x872>
xor    %esi,%esi
mov    %r12d,%edx
and    $0xfffffffc,%edx
testb  $0x1,0xc0(%rsp)
01
je     1aa3 <Forward_SO3_Naive_sym+0x8c3>
lea    (%rsi,%r14,1),%rax
mov    0x10(%rsp),%rcx
movups (%rcx,%rax,8),%xmm0
movups 0x10(%rcx,%rax,8),%xmm1
add    %r13,%rsi
movups %xmm0,(%rcx,%rsi,8)
movups %xmm1,0x10(%rcx,%rsi,8)
mov    0x18(%rsp),%rcx
movupd (%rcx,%rax,8),%xmm0
movupd 0x10(%rcx,%rax,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,(%rcx,%rsi,8)
movupd %xmm1,0x10(%rcx,%rsi,8)
cmp    %r12,%rdx
jne    175e <Forward_SO3_Naive_sym+0x57e>
nopl   0x0(%rax)
mov    0x60(%rsp),%r12
mov    0x10(%rsp),%r13
mov    %r15d,%edi
mov    0x38(%rsp),%r14d
mov    %r14d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
lea    0x0(%r13,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %r15d,%edi
mov    %r14d,%esi
mov    %r12d,%edx
mov    0x70(%rsp),%rbx
mov    %rbx,%r8
mov    0x160(%rsp),%r13
mov    %r13,%r9
xor    %eax,%eax
mov    %r15d,%ebp
mov    0x78(%rsp),%r15
push   %r15
push   %r10
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %ebp,%edi
mov    %r14d,%esi
mov    %r12d,%edx
mov    0x28(%rsp),%rcx
mov    %rbx,%r8
mov    %r13,%r9
xor    %eax,%eax
push   %r15
push   0x38(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     14e0 <Forward_SO3_Naive_sym+0x300>
mov    %ebp,%edi
mov    %r14d,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%ebx
mov    %r14d,%edi
mov    %ebp,%esi
mov    %r12d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
cmp    %r12d,%r14d
movapd 0x2460(%rip),%xmm2
movapd 0x2458(%rip),%xmm3
mov    0x20(%rsp),%rbp
mov    0x88(%rsp),%r12
jge    1595 <Forward_SO3_Naive_sym+0x3b5>
movslq %ebx,%r8
movslq %eax,%r9
cmp    $0x4,%r12d
jae    1c82 <Forward_SO3_Naive_sym+0xaa2>
xor    %edx,%edx
mov    %rdx,%rcx
test   $0x1,%r12b
je     1c07 <Forward_SO3_Naive_sym+0xa27>
lea    (%rdx,%r8,1),%rax
mov    0x10(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm0
lea    (%rdx,%r9,1),%rcx
movsd  %xmm0,(%rsi,%rcx,8)
mov    0x18(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm0
xorpd  %xmm2,%xmm0
movlpd %xmm0,(%rsi,%rcx,8)
mov    %rdx,%rcx
or     $0x1,%rcx
not    %rdx
add    %r12,%rdx
je     1595 <Forward_SO3_Naive_sym+0x3b5>
mov    0x98(%rsp),%rsi
lea    (%rsi,%r9,8),%rdx
mov    0x90(%rsp),%rdi
lea    (%rdi,%r9,8),%rax
lea    (%rsi,%r8,8),%rsi
lea    (%rdi,%r8,8),%rdi
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsd  -0x8(%rsi,%rcx,8),%xmm0
movsd  %xmm0,-0x8(%rdx,%rcx,8)
movsd  -0x8(%rdi,%rcx,8),%xmm0
xorpd  %xmm3,%xmm0
movlpd %xmm0,-0x8(%rax,%rcx,8)
movsd  (%rsi,%rcx,8),%xmm0
movsd  %xmm0,(%rdx,%rcx,8)
movsd  (%rdi,%rcx,8),%xmm0
xorpd  %xmm3,%xmm0
movlpd %xmm0,(%rax,%rcx,8)
add    $0x2,%rcx
cmp    %rcx,%rbp
jne    1c40 <Forward_SO3_Naive_sym+0xa60>
jmp    1595 <Forward_SO3_Naive_sym+0x3b5>
mov    0x10(%rsp),%rbx
lea    (%rbx,%r9,8),%r10
lea    (%r9,%r12,1),%rcx
lea    (%rbx,%rcx,8),%rsi
mov    0x18(%rsp),%rax
mov    %r9,0x28(%rsp)
lea    (%rax,%r9,8),%rbp
lea    (%rax,%rcx,8),%rdi
lea    (%rbx,%r8,8),%rcx
lea    (%r8,%r12,1),%rdx
lea    (%rbx,%rdx,8),%rbx
mov    %r8,0x30(%rsp)
lea    (%rax,%r8,8),%r13
lea    (%rax,%rdx,8),%r8
cmp    %rdi,%r10
setb   %r9b
cmp    %rsi,%rbp
setb   %r11b
cmp    %rbx,%r10
setb   %dl
cmp    %rsi,%rcx
setb   %r15b
cmp    %r8,%r10
setb   %al
cmp    %rsi,%r13
setb   %r10b
cmp    %rbx,%rbp
setb   %bl
cmp    %rdi,%rcx
setb   %sil
cmp    %r8,%rbp
setb   %cl
cmp    %rdi,%r13
setb   %dil
test   %r11b,%r9b
jne    1e51 <Forward_SO3_Naive_sym+0xc71>
and    %r15b,%dl
mov    0x20(%rsp),%rbp
mov    0x30(%rsp),%r8
mov    0x28(%rsp),%r9
jne    1bcb <Forward_SO3_Naive_sym+0x9eb>
and    %r10b,%al
jne    1bcb <Forward_SO3_Naive_sym+0x9eb>
and    %sil,%bl
jne    1bcb <Forward_SO3_Naive_sym+0x9eb>
mov    $0x0,%edx
and    %dil,%cl
jne    1bcd <Forward_SO3_Naive_sym+0x9ed>
cmpq   $0x0,0xb8(%rsp)
je     1df0 <Forward_SO3_Naive_sym+0xc10>
mov    0xb0(%rsp),%rax
lea    (%rax,%r8,8),%rdx
mov    0xa8(%rsp),%rcx
lea    (%rcx,%r8,8),%rdi
lea    (%rax,%r9,8),%rbx
lea    (%rcx,%r9,8),%rcx
xor    %esi,%esi
mov    0x50(%rsp),%rax
nopw   0x0(%rax,%rax,1)
movups -0x30(%rdi,%rsi,8),%xmm0
movups -0x20(%rdi,%rsi,8),%xmm1
movups %xmm0,-0x30(%rcx,%rsi,8)
movups %xmm1,-0x20(%rcx,%rsi,8)
movupd -0x30(%rdx,%rsi,8),%xmm0
movupd -0x20(%rdx,%rsi,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,-0x30(%rbx,%rsi,8)
movupd %xmm1,-0x20(%rbx,%rsi,8)
movups -0x10(%rdi,%rsi,8),%xmm0
movups (%rdi,%rsi,8),%xmm1
movups %xmm0,-0x10(%rcx,%rsi,8)
movups %xmm1,(%rcx,%rsi,8)
movupd -0x10(%rdx,%rsi,8),%xmm0
movupd (%rdx,%rsi,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,-0x10(%rbx,%rsi,8)
movupd %xmm1,(%rbx,%rsi,8)
add    $0x8,%rsi
add    $0xfffffffffffffffe,%rax
jne    1d80 <Forward_SO3_Naive_sym+0xba0>
jmp    1df2 <Forward_SO3_Naive_sym+0xc12>
xor    %esi,%esi
mov    %r12d,%edx
and    $0xfffffffc,%edx
testb  $0x1,0xc0(%rsp)
01
je     1e43 <Forward_SO3_Naive_sym+0xc63>
lea    (%rsi,%r8,1),%rax
mov    0x10(%rsp),%rcx
movups (%rcx,%rax,8),%xmm0
movups 0x10(%rcx,%rax,8),%xmm1
add    %r9,%rsi
movups %xmm0,(%rcx,%rsi,8)
movups %xmm1,0x10(%rcx,%rsi,8)
mov    0x18(%rsp),%rcx
movupd (%rcx,%rax,8),%xmm0
movupd 0x10(%rcx,%rax,8),%xmm1
xorpd  %xmm2,%xmm0
xorpd  %xmm2,%xmm1
movupd %xmm0,(%rcx,%rsi,8)
movupd %xmm1,0x10(%rcx,%rsi,8)
cmp    %r12,%rdx
je     1595 <Forward_SO3_Naive_sym+0x3b5>
jmp    1bcd <Forward_SO3_Naive_sym+0x9ed>
xor    %edx,%edx
mov    0x20(%rsp),%rbp
mov    0x30(%rsp),%r8
mov    0x28(%rsp),%r9
jmp    1bcd <Forward_SO3_Naive_sym+0x9ed>
cmp    $0x2,%r12d
mov    0x18(%rsp),%r10
jl     3a9d <Forward_SO3_Naive_sym+0x28bd>
mov    0x60(%rsp),%r14
lea    -0x1(%r14),%ecx
lea    0x10(%r10),%rax
mov    %rax,0xd0(%rsp)
mov    0x10(%rsp),%r13
lea    0x10(%r13),%rax
mov    %rax,0xc8(%rsp)
mov    $0x1,%r15d
mov    %ecx,0x50(%rsp)
mov    %ecx,%ebp
xor    %ecx,%ecx
mov    0x48(%rsp),%r11
jmp    1f89 <Forward_SO3_Naive_sym+0xda9>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %r15d,%ebx
neg    %ebx
xor    %edi,%edi
mov    %ebx,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r14d
xor    %edi,%edi
mov    %ebx,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r14d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x30(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x20(%rsp)
xor    %edi,%edi
mov    %ebx,%esi
mov    %ebp,%edx
mov    0x70(%rsp),%r14
mov    %r14,%r8
mov    0x160(%rsp),%r12
mov    %r12,%r9
xor    %eax,%eax
push   %r13
push   %r10
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
xor    %edi,%edi
mov    %ebx,%esi
mov    %ebp,%edx
mov    0x30(%rsp),%rcx
mov    %r14,%r8
mov    %r12,%r9
xor    %eax,%eax
push   %r13
push   0x28(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %rbp,%r10
mov    0x48(%rsp),%r11
mov    0x38(%rsp),%rbp
add    $0x1,%r15d
mov    0x80(%rsp),%ecx
add    $0x1,%ecx
add    $0xffffffff,%ebp
cmp    %r10d,%r15d
mov    %r10,%r14
je     2878 <Forward_SO3_Naive_sym+0x1698>
mov    %ebp,%ebp
mov    %rbp,0x38(%rsp)
and    $0xfffffffe,%ebp
add    $0xfffffffffffffffe,%rbp
shr    %rbp
add    $0x1,%rbp
and    $0xfffffffffffffffe,%rbp
mov    %rbp,0xb8(%rsp)
mov    0x50(%rsp),%eax
mov    %ecx,0x80(%rsp)
sub    %ecx,%eax
mov    %rax,0x20(%rsp)
and    $0xfffffffe,%eax
add    $0xfffffffffffffffe,%rax
mov    %rax,0xc0(%rsp)
shr    %rax
add    $0x1,%rax
mov    %rax,0x88(%rsp)
sub    $0x8,%rsp
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
mov    0xf8(%rsp),%rcx
mov    0xf0(%rsp),%r8
mov    0xe8(%rsp),%r9
xor    %eax,%eax
mov    0x80(%rsp),%r13
push   %r13
mov    0x80(%rsp),%rbp
push   %rbp
push   0xf0(%rsp)
mov    %r11,%rbx
call   1040 <genWig_L2@plt>
add    $0x20,%rsp
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r12d
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r12d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
lea    (%rbx,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%rbx
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
mov    %rbp,%r8
mov    0x160(%rsp),%r12
mov    %r12,%r9
xor    %eax,%eax
push   %r13
push   %rbx
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
mov    0x28(%rsp),%rcx
mov    %rbp,%r8
mov    %r12,%r9
xor    %eax,%eax
mov    %r13,%r12
push   %r13
push   0x38(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     2200 <Forward_SO3_Naive_sym+0x1020>
mov    %r15d,%edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%ebx
mov    %r15d,%edi
neg    %edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
xor    %ecx,%ecx
test   $0x1,%r15b
sete   %dl
cmp    %r14d,%r15d
mov    0x10(%rsp),%r13
mov    0x58(%rsp),%r12
mov    0x38(%rsp),%r8
jge    22aa <Forward_SO3_Naive_sym+0x10ca>
mov    %dl,%cl
lea    0x1ef6(%rip),%rdx
movsd  (%rdx,%rcx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0x1ed5(%rip),%xmm1
movslq %ebx,%r14
movslq %eax,%r10
mov    0x20(%rsp),%rdx
cmp    $0x2,%edx
jae    248a <Forward_SO3_Naive_sym+0x12aa>
xor    %edx,%edx
mov    %rdx,%rsi
mov    0x20(%rsp),%rdi
test   $0x1,%dil
je     2183 <Forward_SO3_Naive_sym+0xfa3>
lea    (%rdx,%r14,1),%rax
movsd  0x0(%r13,%rax,8),%xmm2
mulsd  %xmm0,%xmm2
lea    (%rdx,%r10,1),%rcx
movsd  %xmm2,0x0(%r13,%rcx,8)
mov    0x18(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rsi,%rcx,8)
mov    %rdx,%rsi
or     $0x1,%rsi
not    %rdx
add    %rdi,%rdx
je     22aa <Forward_SO3_Naive_sym+0x10ca>
mov    0x98(%rsp),%rdx
lea    (%rdx,%r10,8),%rcx
mov    0x90(%rsp),%rdi
lea    (%rdi,%r10,8),%rax
lea    (%rdx,%r14,8),%rdx
lea    (%rdi,%r14,8),%rdi
nop
movsd  -0x8(%rdx,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,-0x8(%rcx,%rsi,8)
movsd  -0x8(%rdi,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,-0x8(%rax,%rsi,8)
movsd  (%rdx,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rcx,%rsi,8)
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
add    $0x2,%rsi
cmp    %rsi,%r8
jne    21b0 <Forward_SO3_Naive_sym+0xfd0>
jmp    22aa <Forward_SO3_Naive_sym+0x10ca>
nopw   0x0(%rax,%rax,1)
mov    %r15d,%ebp
neg    %ebp
mov    %ebp,%edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %ebp,%edi
xor    %esi,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%r13
lea    0x0(%r13,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
mov    %ebp,%edi
xor    %esi,%esi
mov    %r14d,%edx
mov    0x70(%rsp),%rbx
mov    %rbx,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %r12
push   %r10
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
mov    %ebp,%edi
xor    %esi,%esi
mov    %r14d,%edx
mov    0x28(%rsp),%rcx
mov    %rbx,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %r12
push   0x38(%rsp)
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
mov    0x58(%rsp),%r12
xor    %edi,%edi
mov    %r15d,%esi
mov    0x60(%rsp),%rbp
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
xor    %edi,%edi
mov    %r15d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
lea    (%r12,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
lea    0x0(%r13,%rax,8),%rbx
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x30(%rsp)
xor    %edi,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0x70(%rsp),%r13
mov    %r13,%r8
mov    0x160(%rsp),%r12
mov    %r12,%r9
xor    %eax,%eax
mov    0x78(%rsp),%r14
push   %r14
push   %rbx
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
xor    %edi,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0x28(%rsp),%rcx
mov    %r13,%r8
mov    %r12,%r9
xor    %eax,%eax
mov    %r14,%r13
push   %r14
push   0x38(%rsp)
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     1ec0 <Forward_SO3_Naive_sym+0xce0>
xor    %edi,%edi
mov    %r15d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%ebx
mov    %r15d,%esi
neg    %esi
xor    %edi,%edi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
xor    %ecx,%ecx
test   $0x1,%r15b
sete   %dl
cmp    %ebp,%r15d
mov    %rbp,%r10
mov    0x48(%rsp),%r11
mov    0x38(%rsp),%rbp
mov    0x20(%rsp),%r8
jge    1f6c <Forward_SO3_Naive_sym+0xd8c>
mov    %dl,%cl
lea    0x1c6b(%rip),%rdx
movsd  (%rdx,%rcx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0x1c4a(%rip),%xmm1
movslq %ebx,%r13
movslq %eax,%r12
cmp    $0x2,%r8d
jae    25fc <Forward_SO3_Naive_sym+0x141c>
xor    %edx,%edx
mov    %rdx,%rsi
test   $0x1,%r8b
je     2406 <Forward_SO3_Naive_sym+0x1226>
lea    (%rdx,%r13,1),%rax
mov    0x10(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm2
mulsd  %xmm0,%xmm2
lea    (%rdx,%r12,1),%rcx
movsd  %xmm2,(%rsi,%rcx,8)
mov    0x18(%rsp),%rsi
movsd  (%rsi,%rax,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rsi,%rcx,8)
mov    %rdx,%rsi
or     $0x1,%rsi
not    %rdx
add    %r8,%rdx
je     1f6c <Forward_SO3_Naive_sym+0xd8c>
mov    0x98(%rsp),%rcx
lea    (%rcx,%r12,8),%rdx
mov    0x90(%rsp),%rbx
lea    (%rbx,%r12,8),%rax
lea    (%rcx,%r13,8),%rdi
lea    (%rbx,%r13,8),%rcx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  -0x8(%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,-0x8(%rdx,%rsi,8)
movsd  -0x8(%rcx,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,-0x8(%rax,%rsi,8)
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rdx,%rsi,8)
movsd  (%rcx,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
add    $0x2,%rsi
cmp    %rsi,%rbp
jne    2440 <Forward_SO3_Naive_sym+0x1260>
jmp    1f6c <Forward_SO3_Naive_sym+0xd8c>
lea    0x0(,%r10,8),%rax
add    %r13,%rax
lea    (%r10,%rdx,1),%rcx
lea    0x0(%r13,%rcx,8),%rsi
mov    0x18(%rsp),%rbx
mov    %r10,0x30(%rsp)
lea    (%rbx,%r10,8),%rbp
lea    (%rbx,%rcx,8),%rdi
lea    0x0(%r13,%r14,8),%r12
add    %r14,%rdx
lea    0x0(,%rdx,8),%rcx
add    %r13,%rcx
lea    (%rbx,%r14,8),%r9
lea    (%rbx,%rdx,8),%r11
cmp    %rdi,%rax
setb   0x28(%rsp)
cmp    %rsi,%rbp
setb   %r10b
cmp    %rcx,%rax
setb   %dl
cmp    %rsi,%r12
setb   %r13b
cmp    %r11,%rax
setb   %r8b
cmp    %rsi,%r9
setb   %sil
cmp    %rcx,%rbp
setb   %al
cmp    %rdi,%r12
setb   %bl
cmp    %r11,%rbp
setb   %cl
cmp    %rdi,%r9
setb   %dil
test   %r10b,0x28(%rsp)
jne    280c <Forward_SO3_Naive_sym+0x162c>
and    %r13b,%dl
mov    0x58(%rsp),%r12
mov    0x30(%rsp),%r10
jne    2827 <Forward_SO3_Naive_sym+0x1647>
and    %sil,%r8b
mov    0x10(%rsp),%r13
jne    2808 <Forward_SO3_Naive_sym+0x1628>
and    %bl,%al
mov    0x38(%rsp),%r8
jne    213f <Forward_SO3_Naive_sym+0xf5f>
mov    $0x0,%edx
and    %dil,%cl
jne    2141 <Forward_SO3_Naive_sym+0xf61>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x0,0xc0(%rsp)
je     2768 <Forward_SO3_Naive_sym+0x1588>
mov    0xd0(%rsp),%rax
lea    (%rax,%r14,8),%rdx
mov    0xc8(%rsp),%rcx
lea    (%rcx,%r14,8),%rdi
lea    (%rax,%r10,8),%rbp
lea    (%rcx,%r10,8),%rbx
mov    0xb8(%rsp),%rcx
xor    %esi,%esi
mov    0x20(%rsp),%r9
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movupd -0x10(%rdi,%rsi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rbx,%rsi,8)
movupd -0x10(%rdx,%rsi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rbp,%rsi,8)
movupd (%rdi,%rsi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rbx,%rsi,8)
movupd (%rdx,%rsi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,0x0(%rbp,%rsi,8)
add    $0x4,%rsi
add    $0xfffffffffffffffe,%rcx
jne    25b0 <Forward_SO3_Naive_sym+0x13d0>
jmp    276f <Forward_SO3_Naive_sym+0x158f>
mov    0x10(%rsp),%rdx
lea    (%rdx,%r12,8),%rax
lea    (%r12,%r8,1),%rcx
lea    (%rdx,%rcx,8),%rsi
mov    0x18(%rsp),%rdi
mov    %r12,0x28(%rsp)
lea    (%rdi,%r12,8),%rbx
lea    (%rdi,%rcx,8),%rbp
lea    (%rdx,%r13,8),%r12
lea    0x0(%r13,%r8,1),%rcx
lea    (%rdx,%rcx,8),%rdx
mov    %r13,0x30(%rsp)
lea    (%rdi,%r13,8),%r9
lea    (%rdi,%rcx,8),%r11
cmp    %rbp,%rax
setb   %r14b
cmp    %rsi,%rbx
setb   %r10b
cmp    %rdx,%rax
setb   %r8b
cmp    %rsi,%r12
setb   %r13b
cmp    %r11,%rax
setb   %cl
cmp    %rsi,%r9
setb   %sil
cmp    %rdx,%rbx
setb   %al
cmp    %rbp,%r12
setb   %dl
cmp    %r11,%rbx
setb   %bl
cmp    %rbp,%r9
setb   %dil
test   %r10b,%r14b
jne    2838 <Forward_SO3_Naive_sym+0x1658>
and    %r13b,%r8b
mov    0x20(%rsp),%r8
mov    0x28(%rsp),%r12
jne    285d <Forward_SO3_Naive_sym+0x167d>
and    %sil,%cl
mov    0x60(%rsp),%r10
mov    0x48(%rsp),%r11
mov    0x38(%rsp),%rbp
mov    0x30(%rsp),%r13
jne    23c6 <Forward_SO3_Naive_sym+0x11e6>
and    %dl,%al
jne    23c6 <Forward_SO3_Naive_sym+0x11e6>
mov    $0x0,%edx
and    %dil,%bl
jne    23c8 <Forward_SO3_Naive_sym+0x11e8>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x0,0xc0(%rsp)
je     27b9 <Forward_SO3_Naive_sym+0x15d9>
mov    0xd0(%rsp),%rax
lea    (%rax,%r13,8),%rdx
mov    0xc8(%rsp),%rcx
lea    (%rcx,%r13,8),%rdi
lea    (%rax,%r12,8),%rax
lea    (%rcx,%r12,8),%rbx
xor    %esi,%esi
mov    0x10(%rsp),%r14
mov    0xb8(%rsp),%rcx
nopl   0x0(%rax,%rax,1)
movupd -0x10(%rdi,%rsi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rbx,%rsi,8)
movupd -0x10(%rdx,%rsi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rax,%rsi,8)
movupd (%rdi,%rsi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rbx,%rsi,8)
movupd (%rdx,%rsi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,(%rax,%rsi,8)
add    $0x4,%rsi
add    $0xfffffffffffffffe,%rcx
jne    2720 <Forward_SO3_Naive_sym+0x1540>
jmp    27c0 <Forward_SO3_Naive_sym+0x15e0>
xor    %esi,%esi
mov    0x20(%rsp),%r9
mov    %r9d,%edx
and    $0xfffffffe,%edx
testb  $0x1,0x88(%rsp)
01
je     27ab <Forward_SO3_Naive_sym+0x15cb>
lea    (%rsi,%r14,1),%rax
movupd 0x0(%r13,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r10,%rsi
movupd %xmm3,0x0(%r13,%rsi,8)
mov    0x18(%rsp),%rcx
movupd (%rcx,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%rcx,%rsi,8)
cmp    %r9,%rdx
jne    2141 <Forward_SO3_Naive_sym+0xf61>
jmp    22aa <Forward_SO3_Naive_sym+0x10ca>
xor    %esi,%esi
mov    0x10(%rsp),%r14
mov    %r8d,%edx
and    $0xfffffffe,%edx
testb  $0x1,0x88(%rsp)
01
je     27fa <Forward_SO3_Naive_sym+0x161a>
lea    (%rsi,%r13,1),%rax
movupd (%r14,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r12,%rsi
movupd %xmm3,(%r14,%rsi,8)
mov    0x18(%rsp),%rcx
movupd (%rcx,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%rcx,%rsi,8)
cmp    %r8,%rdx
je     1f6c <Forward_SO3_Naive_sym+0xd8c>
jmp    23c8 <Forward_SO3_Naive_sym+0x11e8>
xor    %edx,%edx
jmp    282e <Forward_SO3_Naive_sym+0x164e>
xor    %edx,%edx
mov    0x10(%rsp),%r13
mov    0x58(%rsp),%r12
mov    0x38(%rsp),%r8
mov    0x30(%rsp),%r10
jmp    2141 <Forward_SO3_Naive_sym+0xf61>
xor    %edx,%edx
mov    0x10(%rsp),%r13
mov    0x38(%rsp),%r8
jmp    2141 <Forward_SO3_Naive_sym+0xf61>
xor    %edx,%edx
mov    0x60(%rsp),%r10
mov    0x48(%rsp),%r11
mov    0x38(%rsp),%rbp
mov    0x20(%rsp),%r8
mov    0x30(%rsp),%r13
mov    0x28(%rsp),%r12
jmp    23c8 <Forward_SO3_Naive_sym+0x11e8>
xor    %edx,%edx
mov    0x60(%rsp),%r10
mov    0x48(%rsp),%r11
mov    0x38(%rsp),%rbp
mov    0x30(%rsp),%r13
jmp    23c8 <Forward_SO3_Naive_sym+0x11e8>
cmp    $0x2,%r14d
mov    0x18(%rsp),%r10
jl     3a9d <Forward_SO3_Naive_sym+0x28bd>
mov    0x60(%rsp),%r11d
lea    -0x2(%r11),%rax
mov    %rax,0x120(%rsp)
lea    -0x4(%r11),%rax
mov    %rax,0x108(%rsp)
mov    $0x2,%eax
mov    %rax,0x100(%rsp)
mov    $0x1,%eax
xor    %ecx,%ecx
mov    %rcx,0x110(%rsp)
mov    %r11,0x88(%rsp)
jmp    28fc <Forward_SO3_Naive_sym+0x171c>
nopw   0x0(%rax,%rax,1)
addq   $0x1,0x100(%rsp)
addq   $0x1,0x110(%rsp)
addq   $0xffffffffffffffff,0x108(%rsp)
mov    0x118(%rsp),%rax
cmp    %r11,%rax
je     3a9d <Forward_SO3_Naive_sym+0x28bd>
mov    %rax,0x30(%rsp)
add    $0x1,%rax
mov    %rax,0x118(%rsp)
cmp    %r11,%rax
jae    28d0 <Forward_SO3_Naive_sym+0x16f0>
mov    0x30(%rsp),%rax
neg    %eax
mov    %eax,0x80(%rsp)
mov    0x108(%rsp),%rax
xor    %ecx,%ecx
mov    0x100(%rsp),%r12
jmp    2a26 <Forward_SO3_Naive_sym+0x1846>
nopw   0x0(%rax,%rax,1)
mov    %r15d,%edi
mov    0x30(%rsp),%rbx
mov    %ebx,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r14d
mov    %r15d,%edi
mov    %ebx,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r14d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x20(%rsp)
mov    0x80(%rsp),%ebx
mov    %ebx,%edi
mov    0x38(%rsp),%r12
mov    %r12d,%esi
mov    %ebp,%edx
mov    0x70(%rsp),%r13
mov    %r13,%r8
mov    0x160(%rsp),%r15
mov    %r15,%r9
xor    %eax,%eax
mov    0x78(%rsp),%r14
push   %r14
push   %r10
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %ebx,%edi
mov    %r12d,%esi
mov    %ebp,%edx
mov    0x28(%rsp),%rcx
mov    %r13,%r8
mov    %r15,%r9
xor    %eax,%eax
push   %r14
push   0x28(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    0x18(%rsp),%r10
mov    0x88(%rsp),%r11
add    $0x1,%r12
mov    0xb8(%rsp),%rcx
add    $0x1,%rcx
mov    0xc0(%rsp),%rax
add    $0xffffffffffffffff,%rax
cmp    %r11,%r12
je     28d0 <Forward_SO3_Naive_sym+0x16f0>
mov    %r12,0x38(%rsp)
mov    %rax,0xc0(%rsp)
shr    %rax
add    $0x1,%rax
and    $0xfffffffffffffffe,%rax
mov    %rax,0xa8(%rsp)
mov    0x110(%rsp),%rax
mov    %rcx,0xb8(%rsp)
add    %rcx,%rax
mov    0x120(%rsp),%rbp
sub    %rax,%rbp
lea    -0x2(%rbp),%rax
mov    %rax,0xb0(%rsp)
shr    %rax
add    $0x1,%rax
mov    %rax,0x90(%rsp)
sub    $0x8,%rsp
mov    0x38(%rsp),%r15
mov    %r15d,%edi
mov    %r12d,%esi
mov    0x68(%rsp),%r14
mov    %r14d,%edx
mov    0xf8(%rsp),%rcx
mov    0xf0(%rsp),%r8
mov    0xe8(%rsp),%r9
xor    %eax,%eax
push   0x80(%rsp)
mov    0x80(%rsp),%r12
push   %r12
push   0xf0(%rsp)
mov    %r10,%rbx
call   1040 <genWig_L2@plt>
add    $0x20,%rsp
mov    %r15d,%edi
mov    0x38(%rsp),%rsi
mov    %r14d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r13d
mov    %r15d,%edi
mov    0x38(%rsp),%rsi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r13d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x28(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
lea    (%rbx,%rax,8),%rax
mov    %rax,0x20(%rsp)
mov    %r15d,%edi
mov    0x38(%rsp),%rsi
mov    %r14d,%edx
mov    %r12,%r8
mov    0x160(%rsp),%r9
mov    0x78(%rsp),%r13
mov    0x38(%rsp),%rbx
xor    %eax,%eax
push   %r13
push   %r10
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r15d,%edi
mov    %ebx,%esi
mov    %r14d,%edx
mov    0x28(%rsp),%rcx
mov    %r12,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %r13
push   0x28(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
mov    0x20(%rsp),%rcx
add    $0x10,%rsp
lea    (%rcx,%rbp,8),%rax
mov    %rax,0xa0(%rsp)
mov    %rbp,0x28(%rsp)
mov    0x18(%rsp),%rax
lea    (%rax,%rbp,8),%rax
mov    %rax,0x98(%rsp)
cmpl   $0x0,0x168(%rsp)
je     2ca0 <Forward_SO3_Naive_sym+0x1ac0>
mov    %r15d,%edi
mov    %ebx,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %rbx,%rbp
mov    %eax,%r12d
mov    %ebp,%esi
neg    %esi
mov    0x80(%rsp),%edi
mov    %esi,0x20(%rsp)
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %ebp,%ecx
sub    %r15d,%ecx
xor    %edx,%edx
test   $0x1,%cl
sete   %bl
mov    0x88(%rsp),%rcx
sub    %rbp,%rcx
jle    2d60 <Forward_SO3_Naive_sym+0x1b80>
mov    %bl,%dl
lea    0x1405(%rip),%rsi
movsd  (%rsi,%rdx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0x13e4(%rip),%xmm1
movslq %r12d,%r12
movslq %eax,%r9
cmpq   $0x2,0x28(%rsp)
mov    0x10(%rsp),%r15
jae    33ab <Forward_SO3_Naive_sym+0x21cb>
xor    %esi,%esi
mov    0x20(%rsp),%ebx
lea    (%r15,%r9,8),%rax
mov    %r15,%rdi
mov    0x18(%rsp),%r13
lea    0x0(,%r9,8),%rdx
add    %r13,%rdx
lea    (%r15,%r12,8),%rdi
lea    0x0(,%r12,8),%rbp
add    %r13,%rbp
nop
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
movsd  0x0(%rbp,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rdx,%rsi,8)
add    $0x1,%rsi
cmp    %rcx,%rsi
jl     2c60 <Forward_SO3_Naive_sym+0x1a80>
mov    0x60(%rsp),%r14
mov    0x58(%rsp),%rbp
mov    0x48(%rsp),%r13
mov    0x70(%rsp),%r12
jmp    2d78 <Forward_SO3_Naive_sym+0x1b98>
nop
neg    %ebx
mov    0x80(%rsp),%ebp
mov    %ebp,%edi
mov    %ebx,%esi
mov    %r14d,%edx
xor    %eax,%eax
mov    %rcx,%r15
call   1090 <sampLoc_so3@plt>
mov    %eax,0x20(%rsp)
mov    %ebp,%edi
mov    %ebx,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq 0x20(%rsp),%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x50(%rsp)
cltq
lea    (%r15,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x20(%rsp)
mov    %ebp,%edi
mov    %ebx,%esi
mov    %r14d,%edx
mov    %r12,%r8
mov    %r13,%r15
mov    0x160(%rsp),%r13
mov    %r13,%r9
xor    %eax,%eax
push   %r15
push   %r10
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
mov    %ebp,%edi
mov    %ebx,%esi
mov    %r14d,%edx
mov    0x50(%rsp),%rcx
mov    %r12,%r8
mov    %r13,%r9
xor    %eax,%eax
push   %r15
push   0x28(%rsp)
mov    0x68(%rsp),%rbp
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
mov    0x48(%rsp),%r13
jmp    2d78 <Forward_SO3_Naive_sym+0x1b98>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x60(%rsp),%r14
mov    0x70(%rsp),%r12
mov    0x58(%rsp),%rbp
mov    0x48(%rsp),%r13
mov    0x20(%rsp),%ebx
mov    %ebx,0x20(%rsp)
mov    0x30(%rsp),%r15
mov    %r15d,%edi
mov    %ebx,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r15d,%edi
mov    0x20(%rsp),%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
lea    0x0(,%rdx,8),%rcx
add    %rbp,%rcx
lea    0x0(%r13,%rdx,8),%rdx
mov    %rdx,0x68(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%rbx
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x50(%rsp)
mov    %r15d,%edi
mov    0x20(%rsp),%esi
mov    %r14d,%edx
mov    %r12,%r8
mov    0x160(%rsp),%rbp
mov    %rbp,%r9
xor    %eax,%eax
mov    0x78(%rsp),%r13
push   %r13
push   %rbx
mov    0x30(%rsp),%ebx
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %r15d,%edi
mov    %ebx,%esi
mov    %r14d,%edx
mov    0x68(%rsp),%rcx
mov    %r12,%r8
mov    %rbp,%r9
xor    %eax,%eax
push   %r13
push   0x58(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     2f10 <Forward_SO3_Naive_sym+0x1d30>
mov    %r15d,%edi
mov    %ebx,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%r12d
mov    0x80(%rsp),%edi
mov    0x38(%rsp),%rbp
mov    %ebp,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %ebp,%ecx
sub    %r15d,%ecx
xor    %edx,%edx
test   $0x1,%cl
sete   %bl
mov    0x88(%rsp),%rcx
sub    %rbp,%rcx
mov    0x10(%rsp),%r13
jle    2fca <Forward_SO3_Naive_sym+0x1dea>
mov    %bl,%dl
lea    0x1185(%rip),%rsi
movsd  (%rsi,%rdx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0x1164(%rip),%xmm1
movslq %r12d,%r12
movslq %eax,%r9
cmpq   $0x2,0x28(%rsp)
jae    3493 <Forward_SO3_Naive_sym+0x22b3>
xor    %esi,%esi
lea    0x0(,%r9,8),%rax
add    %r13,%rax
mov    0x18(%rsp),%rbp
lea    0x0(,%r9,8),%rdx
add    %rbp,%rdx
lea    0x0(,%r12,8),%rdi
add    %r13,%rdi
lea    0x0(%rbp,%r12,8),%rbp
nopl   0x0(%rax,%rax,1)
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
movsd  0x0(%rbp,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rdx,%rsi,8)
add    $0x1,%rsi
cmp    %rcx,%rsi
jl     2ee0 <Forward_SO3_Naive_sym+0x1d00>
jmp    2fca <Forward_SO3_Naive_sym+0x1dea>
nopl   0x0(%rax,%rax,1)
mov    %r12,%rbp
mov    0x80(%rsp),%r12d
mov    %r12d,%edi
mov    0x38(%rsp),%r13
mov    %r13d,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r12d,%edi
mov    %r13d,%esi
mov    %r14d,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x68(%rsp)
cltq
mov    0x10(%rsp),%rdx
lea    (%rdx,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x50(%rsp)
mov    %r12d,%edi
mov    %r13d,%esi
mov    %r14d,%edx
mov    %rbp,%r8
mov    0x160(%rsp),%rbx
mov    %rbx,%r9
xor    %eax,%eax
mov    0x78(%rsp),%rbp
push   %rbp
push   %r10
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %r12d,%edi
mov    %r13d,%esi
mov    %r14d,%edx
mov    0x68(%rsp),%rcx
mov    0x70(%rsp),%r8
mov    %rbx,%r9
xor    %eax,%eax
push   %rbp
push   0x58(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    0x10(%rsp),%r13
mov    0x38(%rsp),%r12
mov    %r12d,%edi
mov    %r15d,%esi
mov    0x60(%rsp),%rbp
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%ebx
mov    %r12d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %ebx,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x68(%rsp)
cltq
lea    0x0(%r13,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x50(%rsp)
mov    %r12d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0x70(%rsp),%rbx
mov    %rbx,%r8
mov    %r15,%r14
mov    0x160(%rsp),%r15
mov    %r15,%r9
xor    %eax,%eax
mov    0x78(%rsp),%r13
push   %r13
push   %r10
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
mov    %r12d,%edi
mov    %r14d,%esi
mov    %ebp,%edx
mov    0x68(%rsp),%rcx
mov    %rbx,%r8
mov    %r15,%r9
xor    %eax,%eax
push   %r13
push   0x58(%rsp)
call   1050 <wigNaiveAnalysis_symX@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     3160 <Forward_SO3_Naive_sym+0x1f80>
mov    %r12d,%edi
mov    0x30(%rsp),%r15
mov    %r15d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%r14d
mov    0x20(%rsp),%edi
mov    0x80(%rsp),%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %r12d,%ecx
sub    %r15d,%ecx
xor    %edx,%edx
test   $0x1,%cl
sete   %bl
mov    0x88(%rsp),%rcx
sub    %r12,%rcx
mov    0x10(%rsp),%r12
jle    3219 <Forward_SO3_Naive_sym+0x2039>
mov    %bl,%dl
lea    0xf31(%rip),%rsi
movsd  (%rsi,%rdx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0xf10(%rip),%xmm1
movslq %r14d,%r14
movslq %eax,%r9
cmpq   $0x2,0x28(%rsp)
jae    3585 <Forward_SO3_Naive_sym+0x23a5>
xor    %esi,%esi
lea    (%r12,%r9,8),%rax
mov    0x18(%rsp),%rbp
lea    0x0(,%r9,8),%rdx
add    %rbp,%rdx
lea    (%r12,%r14,8),%rdi
lea    0x0(%rbp,%r14,8),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
movsd  0x0(%rbp,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rdx,%rsi,8)
add    $0x1,%rsi
cmp    %rcx,%rsi
jl     3130 <Forward_SO3_Naive_sym+0x1f50>
jmp    3219 <Forward_SO3_Naive_sym+0x2039>
nopl   0x0(%rax,%rax,1)
mov    0x20(%rsp),%r14d
mov    %r14d,%edi
mov    0x80(%rsp),%r12d
mov    %r12d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r15d
mov    %r14d,%edi
mov    %r12d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r15d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x68(%rsp)
cltq
mov    0x10(%rsp),%r15
lea    (%r15,%rax,8),%r10
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x50(%rsp)
mov    %r14d,%edi
mov    %r12d,%esi
mov    %ebp,%edx
mov    %rbx,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
mov    0x78(%rsp),%r13
push   %r13
push   %r10
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r14d,%edi
mov    %r12d,%esi
mov    %ebp,%edx
mov    0x68(%rsp),%rcx
mov    %rbx,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %r13
push   0x58(%rsp)
call   10c0 <wigNaiveAnalysis@plt>
add    $0x10,%rsp
mov    %r15,%r12
mov    0x30(%rsp),%r15
mov    0x38(%rsp),%r13
mov    %r13d,%edi
mov    0x80(%rsp),%ebx
mov    %ebx,%esi
mov    0x60(%rsp),%rbp
mov    %ebp,%edx
xor    %eax,%eax
call   1090 <sampLoc_so3@plt>
mov    %eax,%r14d
mov    %r13d,%edi
mov    %ebx,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
movslq %r14d,%rdx
mov    0x58(%rsp),%rcx
lea    (%rcx,%rdx,8),%rcx
mov    0x48(%rsp),%rsi
lea    (%rsi,%rdx,8),%rdx
mov    %rdx,0x68(%rsp)
cltq
lea    (%r12,%rax,8),%rbx
mov    0x18(%rsp),%rdx
lea    (%rdx,%rax,8),%rax
mov    %rax,0x50(%rsp)
mov    %r15d,%edi
mov    0x20(%rsp),%esi
mov    %ebp,%edx
mov    0x70(%rsp),%r13
mov    %r13,%r8
mov    %r15,%r14
mov    0x160(%rsp),%r9
xor    %eax,%eax
mov    0x78(%rsp),%r12
push   %r12
push   %rbx
mov    %esi,%r15d
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
mov    %r14d,%edi
mov    %r15d,%esi
mov    %ebp,%edx
mov    0x68(%rsp),%rcx
mov    %r13,%r8
mov    0x160(%rsp),%r9
xor    %eax,%eax
push   %r12
push   0x58(%rsp)
call   10d0 <wigNaiveAnalysis_symY@plt>
add    $0x10,%rsp
cmpl   $0x0,0x168(%rsp)
je     2940 <Forward_SO3_Naive_sym+0x1760>
mov    0x38(%rsp),%r12
mov    %r12d,%edi
mov    0x80(%rsp),%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %eax,%r14d
mov    %r15d,%edi
mov    0x30(%rsp),%r15
mov    %r15d,%esi
mov    %ebp,%edx
xor    %eax,%eax
call   1070 <coefLoc_so3@plt>
mov    %r12d,%ecx
sub    %r15d,%ecx
xor    %edx,%edx
test   $0x1,%cl
sete   %sil
mov    0x88(%rsp),%r11
mov    %r11,%rcx
sub    %r12,%rcx
mov    0x18(%rsp),%r10
jle    2a01 <Forward_SO3_Naive_sym+0x1821>
mov    %sil,%dl
lea    0xccf(%rip),%rsi
movsd  (%rsi,%rdx,8),%xmm0
movapd %xmm0,%xmm1
xorpd  0xcae(%rip),%xmm1
movslq %r14d,%r8
movslq %eax,%r9
cmpq   $0x2,0x28(%rsp)
jae    3669 <Forward_SO3_Naive_sym+0x2489>
xor    %esi,%esi
mov    0x10(%rsp),%rdi
lea    (%rdi,%r9,8),%rax
lea    (%r10,%r9,8),%rdx
lea    (%rdi,%r8,8),%rdi
lea    (%r10,%r8,8),%rbp
nopl   0x0(%rax,%rax,1)
movsd  (%rdi,%rsi,8),%xmm2
mulsd  %xmm0,%xmm2
movsd  %xmm2,(%rax,%rsi,8)
movsd  0x0(%rbp,%rsi,8),%xmm2
mulsd  %xmm1,%xmm2
movsd  %xmm2,(%rdx,%rsi,8)
add    $0x1,%rsi
cmp    %rcx,%rsi
jl     3380 <Forward_SO3_Naive_sym+0x21a0>
jmp    2a01 <Forward_SO3_Naive_sym+0x1821>
lea    (%r15,%r9,8),%rax
mov    0xa0(%rsp),%rdx
lea    (%rdx,%r9,8),%rdi
mov    0x18(%rsp),%rbx
lea    (%rbx,%r9,8),%r14
lea    (%r15,%r12,8),%rsi
mov    0x98(%rsp),%rbp
cmp    %r15,%rbp
seta   %r13b
lea    (%rdx,%r12,8),%r11
cmp    %rbx,%rdx
seta   0x50(%rsp)
lea    0x0(,%r12,8),%r10
add    %rbp,%r10
cmp    %r11,%rax
setb   %dl
cmp    %rdi,%rsi
setb   0x68(%rsp)
cmp    %r10,%rax
lea    (%rbx,%r12,8),%r8
setb   %bl
cmp    %rdi,%r8
setb   0xf(%rsp)
cmp    %r11,%r14
lea    0x0(%rbp,%r9,8),%rdi
setb   %al
cmp    %rdi,%rsi
setb   %sil
cmp    %r10,%r14
setb   %r10b
cmp    %rdi,%r8
setb   %bpl
test   %r13b,0x50(%rsp)
jne    2c33 <Forward_SO3_Naive_sym+0x1a53>
and    0x68(%rsp),%dl
jne    2c33 <Forward_SO3_Naive_sym+0x1a53>
and    0xf(%rsp),%bl
jne    2c33 <Forward_SO3_Naive_sym+0x1a53>
and    %sil,%al
mov    0x20(%rsp),%ebx
jne    3a7d <Forward_SO3_Naive_sym+0x289d>
mov    $0x0,%esi
and    %bpl,%r10b
mov    0x70(%rsp),%r8
jne    2c39 <Forward_SO3_Naive_sym+0x1a59>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x2,0xb0(%rsp)
jae    3763 <Forward_SO3_Naive_sym+0x2583>
xor    %edi,%edi
jmp    37d6 <Forward_SO3_Naive_sym+0x25f6>
lea    0x0(,%r9,8),%rax
add    %r13,%rax
mov    0xa0(%rsp),%rdx
lea    (%rdx,%r9,8),%rdi
mov    0x18(%rsp),%rbx
lea    (%rbx,%r9,8),%r14
lea    0x0(,%r12,8),%rsi
add    %r13,%rsi
mov    0x98(%rsp),%rbp
cmp    %r13,%rbp
seta   0x50(%rsp)
lea    (%rdx,%r12,8),%r11
cmp    %rbx,%rdx
seta   0x68(%rsp)
lea    0x0(,%r12,8),%r10
add    %rbp,%r10
cmp    %r11,%rax
setb   %dl
cmp    %rdi,%rsi
setb   0xf(%rsp)
cmp    %r10,%rax
lea    (%rbx,%r12,8),%r8
setb   %bl
cmp    %rdi,%r8
setb   0x47(%rsp)
cmp    %r11,%r14
lea    0x0(%rbp,%r9,8),%rdi
setb   %r11b
cmp    %rdi,%rsi
setb   %sil
cmp    %r10,%r14
setb   %r10b
cmp    %rdi,%r8
setb   %bpl
mov    0x68(%rsp),%al
test   %al,0x50(%rsp)
jne    2eae <Forward_SO3_Naive_sym+0x1cce>
and    0xf(%rsp),%dl
jne    2eae <Forward_SO3_Naive_sym+0x1cce>
and    0x47(%rsp),%bl
jne    2eae <Forward_SO3_Naive_sym+0x1cce>
and    %sil,%r11b
jne    2eae <Forward_SO3_Naive_sym+0x1cce>
mov    $0x0,%esi
and    %bpl,%r10b
jne    2eb0 <Forward_SO3_Naive_sym+0x1cd0>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x2,0xb0(%rsp)
jae    3834 <Forward_SO3_Naive_sym+0x2654>
xor    %edi,%edi
jmp    38a6 <Forward_SO3_Naive_sym+0x26c6>
lea    (%r12,%r9,8),%rax
mov    0xa0(%rsp),%rdx
lea    (%rdx,%r9,8),%rdi
mov    0x18(%rsp),%rbx
lea    (%rbx,%r9,8),%r13
lea    (%r12,%r14,8),%rsi
mov    0x98(%rsp),%rbp
cmp    %r12,%rbp
seta   0x50(%rsp)
lea    (%rdx,%r14,8),%r11
cmp    %rbx,%rdx
seta   0x68(%rsp)
lea    0x0(,%r14,8),%r10
add    %rbp,%r10
cmp    %r11,%rax
setb   %dl
cmp    %rdi,%rsi
setb   0xf(%rsp)
cmp    %r10,%rax
lea    (%rbx,%r14,8),%r8
setb   %bl
cmp    %rdi,%r8
setb   0x47(%rsp)
cmp    %r11,%r13
lea    0x0(%rbp,%r9,8),%rdi
setb   %r11b
cmp    %rdi,%rsi
setb   %sil
cmp    %r10,%r13
setb   %r10b
cmp    %rdi,%r8
setb   %bpl
mov    0x68(%rsp),%al
test   %al,0x50(%rsp)
jne    3102 <Forward_SO3_Naive_sym+0x1f22>
and    0xf(%rsp),%dl
jne    3102 <Forward_SO3_Naive_sym+0x1f22>
and    0x47(%rsp),%bl
jne    3102 <Forward_SO3_Naive_sym+0x1f22>
and    %sil,%r11b
jne    3102 <Forward_SO3_Naive_sym+0x1f22>
mov    $0x0,%esi
and    %bpl,%r10b
jne    3104 <Forward_SO3_Naive_sym+0x1f24>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x2,0xb0(%rsp)
jae    38f5 <Forward_SO3_Naive_sym+0x2715>
xor    %edi,%edi
jmp    3966 <Forward_SO3_Naive_sym+0x2786>
mov    0x10(%rsp),%rax
lea    (%rax,%r9,8),%r15
mov    0xa0(%rsp),%rbp
lea    0x0(,%r9,8),%rdi
add    %rbp,%rdi
lea    (%r10,%r9,8),%r13
mov    0x98(%rsp),%r14
mov    %r10,%rdx
lea    (%r14,%r9,8),%r10
lea    (%rax,%r8,8),%rsi
lea    0x0(,%r8,8),%rbx
add    %rbp,%rbx
lea    (%rdx,%r8,8),%r11
lea    (%r14,%r8,8),%r12
cmp    %rax,%r14
seta   %r14b
cmp    %rdx,%rbp
seta   %bpl
cmp    %rbx,%r15
setb   %dl
cmp    %rdi,%rsi
setb   0x20(%rsp)
cmp    %r12,%r15
setb   %r15b
cmp    %rdi,%r11
setb   0x50(%rsp)
cmp    %rbx,%r13
setb   %al
cmp    %r10,%rsi
setb   %bl
cmp    %r12,%r13
setb   %dil
cmp    %r10,%r11
setb   %r10b
test   %bpl,%r14b
jne    3a84 <Forward_SO3_Naive_sym+0x28a4>
and    0x20(%rsp),%dl
mov    0x18(%rsp),%rdx
mov    0x88(%rsp),%r11
mov    0x38(%rsp),%r12
jne    3a73 <Forward_SO3_Naive_sym+0x2893>
and    0x50(%rsp),%r15b
jne    3a73 <Forward_SO3_Naive_sym+0x2893>
and    %bl,%al
jne    3a73 <Forward_SO3_Naive_sym+0x2893>
mov    $0x0,%esi
and    %r10b,%dil
mov    %rdx,%r10
jne    3366 <Forward_SO3_Naive_sym+0x2186>
movapd %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
cmpq   $0x2,0xb0(%rsp)
jae    39b3 <Forward_SO3_Naive_sym+0x27d3>
xor    %edi,%edi
jmp    3a26 <Forward_SO3_Naive_sym+0x2846>
mov    0xd0(%rsp),%rax
lea    (%rax,%r12,8),%rsi
mov    0xc8(%rsp),%rdi
lea    (%rdi,%r12,8),%rbx
lea    (%rax,%r9,8),%rdx
lea    (%rdi,%r9,8),%rax
mov    0xa8(%rsp),%rbp
xor    %edi,%edi
nopl   (%rax)
movupd -0x10(%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rax,%rdi,8)
movupd -0x10(%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rdx,%rdi,8)
movupd (%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rax,%rdi,8)
movupd (%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,(%rdx,%rdi,8)
add    $0x4,%rdi
add    $0xfffffffffffffffe,%rbp
jne    3790 <Forward_SO3_Naive_sym+0x25b0>
mov    0x28(%rsp),%rsi
and    $0xfffffffffffffffe,%rsi
testb  $0x1,0x90(%rsp)
01
mov    0x20(%rsp),%ebx
je     3817 <Forward_SO3_Naive_sym+0x2637>
lea    (%rdi,%r12,1),%rax
movupd (%r15,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r9,%rdi
movupd %xmm3,(%r15,%rdi,8)
mov    0x18(%rsp),%rdx
movupd (%rdx,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%rdx,%rdi,8)
cmp    %rsi,0x28(%rsp)
jne    2c39 <Forward_SO3_Naive_sym+0x1a59>
mov    0x60(%rsp),%r14
mov    %r8,%r12
mov    0x58(%rsp),%rbp
jmp    2d4b <Forward_SO3_Naive_sym+0x1b6b>
mov    0xd0(%rsp),%rax
lea    (%rax,%r12,8),%rsi
mov    0xc8(%rsp),%rdi
lea    (%rdi,%r12,8),%rbx
lea    (%rax,%r9,8),%rdx
lea    (%rdi,%r9,8),%rax
mov    0xa8(%rsp),%rbp
xor    %edi,%edi
xchg   %ax,%ax
movupd -0x10(%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rax,%rdi,8)
movupd -0x10(%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rdx,%rdi,8)
movupd (%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rax,%rdi,8)
movupd (%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,(%rdx,%rdi,8)
add    $0x4,%rdi
add    $0xfffffffffffffffe,%rbp
jne    3860 <Forward_SO3_Naive_sym+0x2680>
mov    0x28(%rsp),%rsi
and    $0xfffffffffffffffe,%rsi
testb  $0x1,0x90(%rsp)
01
je     38e5 <Forward_SO3_Naive_sym+0x2705>
lea    (%rdi,%r12,1),%rax
movupd 0x0(%r13,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r9,%rdi
movupd %xmm3,0x0(%r13,%rdi,8)
mov    0x18(%rsp),%rdx
movupd (%rdx,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%rdx,%rdi,8)
cmp    %rsi,0x28(%rsp)
jne    2eb0 <Forward_SO3_Naive_sym+0x1cd0>
jmp    2fca <Forward_SO3_Naive_sym+0x1dea>
mov    0xd0(%rsp),%rax
lea    (%rax,%r14,8),%rsi
mov    0xc8(%rsp),%rdi
lea    (%rdi,%r14,8),%rbx
lea    (%rax,%r9,8),%rdx
lea    (%rdi,%r9,8),%rax
mov    0xa8(%rsp),%rbp
xor    %edi,%edi
nop
movupd -0x10(%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rax,%rdi,8)
movupd -0x10(%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rdx,%rdi,8)
movupd (%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rax,%rdi,8)
movupd (%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,(%rdx,%rdi,8)
add    $0x4,%rdi
add    $0xfffffffffffffffe,%rbp
jne    3920 <Forward_SO3_Naive_sym+0x2740>
mov    0x28(%rsp),%rsi
and    $0xfffffffffffffffe,%rsi
testb  $0x1,0x90(%rsp)
01
je     39a3 <Forward_SO3_Naive_sym+0x27c3>
lea    (%rdi,%r14,1),%rax
movupd (%r12,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r9,%rdi
movupd %xmm3,(%r12,%rdi,8)
mov    0x18(%rsp),%rdx
movupd (%rdx,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%rdx,%rdi,8)
cmp    %rsi,0x28(%rsp)
jne    3104 <Forward_SO3_Naive_sym+0x1f24>
jmp    3219 <Forward_SO3_Naive_sym+0x2039>
mov    0xd0(%rsp),%rax
lea    (%rax,%r8,8),%rsi
mov    0xc8(%rsp),%rdi
lea    (%rdi,%r8,8),%rbx
lea    (%rax,%r9,8),%rdx
lea    (%rdi,%r9,8),%rax
xor    %edi,%edi
mov    0xa8(%rsp),%rbp
nopl   (%rax)
movupd -0x10(%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,-0x10(%rax,%rdi,8)
movupd -0x10(%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,-0x10(%rdx,%rdi,8)
movupd (%rbx,%rdi,8),%xmm4
mulpd  %xmm3,%xmm4
movupd %xmm4,(%rax,%rdi,8)
movupd (%rsi,%rdi,8),%xmm4
mulpd  %xmm2,%xmm4
movupd %xmm4,(%rdx,%rdi,8)
add    $0x4,%rdi
add    $0xfffffffffffffffe,%rbp
jne    39e0 <Forward_SO3_Naive_sym+0x2800>
mov    0x28(%rsp),%rsi
and    $0xfffffffffffffffe,%rsi
testb  $0x1,0x90(%rsp)
01
je     3a63 <Forward_SO3_Naive_sym+0x2883>
lea    (%rdi,%r8,1),%rax
mov    0x10(%rsp),%rdx
movupd (%rdx,%rax,8),%xmm4
mulpd  %xmm4,%xmm3
add    %r9,%rdi
movupd %xmm3,(%rdx,%rdi,8)
movupd (%r10,%rax,8),%xmm3
mulpd  %xmm2,%xmm3
movupd %xmm3,(%r10,%rdi,8)
cmp    %rsi,0x28(%rsp)
je     2a01 <Forward_SO3_Naive_sym+0x1821>
jmp    3366 <Forward_SO3_Naive_sym+0x2186>
xor    %esi,%esi
mov    %rdx,%r10
jmp    3366 <Forward_SO3_Naive_sym+0x2186>
xor    %esi,%esi
jmp    2c39 <Forward_SO3_Naive_sym+0x1a59>
xor    %esi,%esi
mov    0x18(%rsp),%r10
mov    0x88(%rsp),%r11
mov    0x38(%rsp),%r12
jmp    3366 <Forward_SO3_Naive_sym+0x2186>
mov    0xfc(%rsp),%ecx
test   %ecx,%ecx
jle    3ca8 <Forward_SO3_Naive_sym+0x2ac8>
xorps  %xmm1,%xmm1
cvtsi2sdl 0xf8(%rsp),%xmm1
movsd  0x560(%rip),%xmm0
divsd  %xmm1,%xmm0
mov    %ecx,%eax
cmp    $0x4,%ecx
jb     3aec <Forward_SO3_Naive_sym+0x290c>
lea    (%r10,%rax,8),%rcx
cmp    0x10(%rsp),%rcx
jbe    3b7e <Forward_SO3_Naive_sym+0x299e>
mov    0x10(%rsp),%rcx
lea    (%rcx,%rax,8),%rcx
cmp    %r10,%rcx
jbe    3b7e <Forward_SO3_Naive_sym+0x299e>
xor    %ecx,%ecx
mov    %rcx,%rdx
not    %rdx
test   $0x1,%al
je     3b1f <Forward_SO3_Naive_sym+0x293f>
mov    0x10(%rsp),%rsi
movsd  (%rsi,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%rsi,%rcx,8)
movsd  (%r10,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%r10,%rcx,8)
or     $0x1,%rcx
add    %rax,%rdx
je     3ca8 <Forward_SO3_Naive_sym+0x2ac8>
mov    0x10(%rsp),%rdx
nopl   (%rax)
movsd  (%rdx,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%rdx,%rcx,8)
movsd  (%r10,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%r10,%rcx,8)
movsd  0x8(%rdx,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rdx,%rcx,8)
movsd  0x8(%r10,%rcx,8),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%r10,%rcx,8)
add    $0x2,%rcx
cmp    %rcx,%rax
jne    3b30 <Forward_SO3_Naive_sym+0x2950>
jmp    3ca8 <Forward_SO3_Naive_sym+0x2ac8>
mov    %eax,%ecx
and    $0xfffffffc,%ecx
movapd %xmm0,%xmm1
unpcklpd %xmm0,%xmm1
lea    -0x4(%rcx),%rdx
mov    %rdx,%rsi
shr    $0x2,%rsi
add    $0x1,%rsi
test   %rdx,%rdx
je     3cba <Forward_SO3_Naive_sym+0x2ada>
mov    %rsi,%rdi
and    $0xfffffffffffffffe,%rdi
xor    %edx,%edx
mov    0x10(%rsp),%rbp
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movupd 0x0(%rbp,%rdx,8),%xmm2
movupd 0x10(%rbp,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,0x0(%rbp,%rdx,8)
movupd %xmm3,0x10(%rbp,%rdx,8)
movupd (%r10,%rdx,8),%xmm2
movupd 0x10(%r10,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,(%r10,%rdx,8)
movupd %xmm3,0x10(%r10,%rdx,8)
movupd 0x20(%rbp,%rdx,8),%xmm2
movupd 0x30(%rbp,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,0x20(%rbp,%rdx,8)
movupd %xmm3,0x30(%rbp,%rdx,8)
movupd 0x20(%r10,%rdx,8),%xmm2
movupd 0x30(%r10,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,0x20(%r10,%rdx,8)
movupd %xmm3,0x30(%r10,%rdx,8)
add    $0x8,%rdx
add    $0xfffffffffffffffe,%rdi
jne    3bc0 <Forward_SO3_Naive_sym+0x29e0>
test   $0x1,%sil
je     3c9f <Forward_SO3_Naive_sym+0x2abf>
mov    0x10(%rsp),%rsi
movupd (%rsi,%rdx,8),%xmm2
movupd 0x10(%rsi,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,(%rsi,%rdx,8)
movupd %xmm3,0x10(%rsi,%rdx,8)
movupd (%r10,%rdx,8),%xmm2
movupd 0x10(%r10,%rdx,8),%xmm3
mulpd  %xmm1,%xmm2
mulpd  %xmm1,%xmm3
movupd %xmm2,(%r10,%rdx,8)
movupd %xmm3,0x10(%r10,%rdx,8)
cmp    %rax,%rcx
jne    3aee <Forward_SO3_Naive_sym+0x290e>
add    $0x128,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %edx,%edx
test   $0x1,%sil
jne    3c5a <Forward_SO3_Naive_sym+0x2a7a>
jmp    3c9f <Forward_SO3_Naive_sym+0x2abf>

LLVM IR (-O0):
define void @Forward_SO3_Naive_sym(i32 %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %6, i32 %7) {
%9 = alloca i32
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
%13 = alloca double*
%14 = alloca double*
%15 = alloca double*
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca double
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%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
store i32 %0, i32* %9
store double* %1, double** %10
store double* %2, double** %11
store double* %3, double** %12
store double* %4, double** %13
store double* %5, double** %14
store double* %6, double** %15
store i32 %7, i32* %16
%42 = load i32, i32* %9
%43 = mul nsw i32 2, %42
store i32 %43, i32* %18
%44 = load double*, double** %14
store double* %44, double** %26
%45 = load double*, double** %14
%46 = load i32, i32* %18
%47 = load i32, i32* %18
%48 = mul nsw i32 %46, %47
%49 = load i32, i32* %18
%50 = mul nsw i32 %48, %49
%51 = sext i32 %50 to i64
%52 = getelementptr inbounds double, double* %45, i64 %51
store double* %52, double** %27
%53 = load double*, double** %27
%54 = load i32, i32* %18
%55 = load i32, i32* %18
%56 = mul nsw i32 %54, %55
%57 = load i32, i32* %18
%58 = mul nsw i32 %56, %57
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds double, double* %53, i64 %59
store double* %60, double** %28
%61 = load double*, double** %28
%62 = load i32, i32* %18
%63 = load i32, i32* %18
%64 = mul nsw i32 %62, %63
%65 = load i32, i32* %18
%66 = mul nsw i32 %64, %65
%67 = sext i32 %66 to i64
%68 = getelementptr inbounds double, double* %61, i64 %67
store double* %68, double** %29
%69 = load double*, double** %12
store double* %69, double** %37
%70 = load double*, double** %13
store double* %70, double** %38
%71 = load double*, double** %10
store double* %71, double** %39
%72 = load double*, double** %11
store double* %72, double** %40
%73 = load double*, double** %15
store double* %73, double** %36
%74 = load double*, double** %36
%75 = load i32, i32* %18
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds double, double* %74, i64 %76
store double* %77, double** %30
%78 = load double*, double** %30
%79 = load i32, i32* %18
%80 = sext i32 %79 to i64
%81 = getelementptr inbounds double, double* %78, i64 %80
store double* %81, double** %31
%82 = load double*, double** %31
%83 = load i32, i32* %18
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds double, double* %82, i64 %84
store double* %85, double** %32
%86 = load double*, double** %32
%87 = load i32, i32* %18
%88 = sext i32 %87 to i64
%89 = getelementptr inbounds double, double* %86, i64 %88
store double* %89, double** %33
%90 = load double*, double** %33
%91 = load i32, i32* %18
%92 = sext i32 %91 to i64
%93 = getelementptr inbounds double, double* %90, i64 %92
store double* %93, double** %34
%94 = load double*, double** %34
%95 = load i32, i32* %9
%96 = load i32, i32* %18
%97 = mul nsw i32 %95, %96
%98 = sext i32 %97 to i64
%99 = getelementptr inbounds double, double* %94, i64 %98
store double* %99, double** %35
%100 = load i32, i32* %9
%101 = call i32 (i32, ...) bitcast (i32 (...)* @totalCoeffs_so3 to i32 (i32, ...)*)(i32 %100)
store i32 %101, i32* %25
%102 = load i32, i32* %18
%103 = load double*, double** %30
%104 = call i32 (i32, double*, ...) bitcast (i32 (...)* @SinEvalPts to i32 (i32, double*, ...)*)(i32 %102, double* %103)
%105 = load i32, i32* %18
%106 = load double*, double** %31
%107 = call i32 (i32, double*, ...) bitcast (i32 (...)* @CosEvalPts to i32 (i32, double*, ...)*)(i32 %105, double* %106)
%108 = load i32, i32* %18
%109 = load double*, double** %32
%110 = call i32 (i32, double*, ...) bitcast (i32 (...)* @SinEvalPts2 to i32 (i32, double*, ...)*)(i32 %108, double* %109)
%111 = load i32, i32* %18
%112 = load double*, double** %33
%113 = call i32 (i32, double*, ...) bitcast (i32 (...)* @CosEvalPts2 to i32 (i32, double*, ...)*)(i32 %111, double* %112)
%114 = load i32, i32* %9
%115 = load double*, double** %36
%116 = call i32 (i32, double*, ...) bitcast (i32 (...)* @makeweights2 to i32 (i32, double*, ...)*)(i32 %114, double* %115)
%117 = load double*, double** %10
%118 = load double*, double** %11
%119 = load double*, double** %26
%120 = load double*, double** %27
%121 = load i32, i32* %18
%122 = load i32, i32* %18
%123 = mul nsw i32 %121, %122
%124 = load i32, i32* %18
%125 = load double*, double** %35
%126 = call i32 (double*, double*, double*, double*, i32, i32, double*, ...) bitcast (i32 (...)* @grid_invfourier_so3 to i32 (double*, double*, double*, double*, i32, i32, double*, ...)*)(double* %117, double* %118, double* %119, double* %120, i32 %123, i32 %124, double* %125)
%127 = load double*, double** %26
%128 = load double*, double** %28
%129 = load i32, i32* %18
%130 = load i32, i32* %18
%131 = mul nsw i32 %129, %130
%132 = load i32, i32* %18
%133 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %127, double* %128, i32 %131, i32 %132)
%134 = load double*, double** %27
%135 = load double*, double** %29
%136 = load i32, i32* %18
%137 = load i32, i32* %18
%138 = mul nsw i32 %136, %137
%139 = load i32, i32* %18
%140 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %134, double* %135, i32 %138, i32 %139)
%141 = load double*, double** %28
%142 = load double*, double** %29
%143 = load double*, double** %26
%144 = load double*, double** %27
%145 = load i32, i32* %18
%146 = load i32, i32* %18
%147 = mul nsw i32 %145, %146
%148 = load i32, i32* %18
%149 = load double*, double** %35
%150 = call i32 (double*, double*, double*, double*, i32, i32, double*, ...) bitcast (i32 (...)* @grid_invfourier_so3 to i32 (double*, double*, double*, double*, i32, i32, double*, ...)*)(double* %141, double* %142, double* %143, double* %144, i32 %147, i32 %148, double* %149)
%151 = load double*, double** %26
%152 = load double*, double** %28
%153 = load i32, i32* %18
%154 = load i32, i32* %18
%155 = mul nsw i32 %153, %154
%156 = load i32, i32* %18
%157 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %151, double* %152, i32 %155, i32 %156)
%158 = load double*, double** %27
%159 = load double*, double** %29
%160 = load i32, i32* %18
%161 = load i32, i32* %18
%162 = mul nsw i32 %160, %161
%163 = load i32, i32* %18
%164 = call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %158, double* %159, i32 %162, i32 %163)
%165 = load i32, i32* %9
%166 = load double*, double** %30
%167 = load double*, double** %31
%168 = load double*, double** %32
%169 = load double*, double** %33
%170 = load double*, double** %34
%171 = load double*, double** %35
%172 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %165, double* %166, double* %167, double* %168, double* %169, double* %170, double* %171)
%173 = load i32, i32* %9
%174 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 0, i32 %173)
store i32 %174, i32* %22
%175 = load i32, i32* %9
%176 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 0, i32 %175)
store i32 %176, i32* %23
%177 = load double*, double** %12
store double* %177, double** %37
%178 = load double*, double** %13
store double* %178, double** %38
%179 = load double*, double** %28
store double* %179, double** %39
%180 = load double*, double** %29
store double* %180, double** %40
%181 = load i32, i32* %22
%182 = load double*, double** %39
%183 = sext i32 %181 to i64
%184 = getelementptr inbounds double, double* %182, i64 %183
store double* %184, double** %39
%185 = load i32, i32* %22
%186 = load double*, double** %40
%187 = sext i32 %185 to i64
%188 = getelementptr inbounds double, double* %186, i64 %187
store double* %188, double** %40
%189 = load i32, i32* %23
%190 = load double*, double** %37
%191 = sext i32 %189 to i64
%192 = getelementptr inbounds double, double* %190, i64 %191
store double* %192, double** %37
%193 = load i32, i32* %23
%194 = load double*, double** %38
%195 = sext i32 %193 to i64
%196 = getelementptr inbounds double, double* %194, i64 %195
store double* %196, double** %38
%197 = load i32, i32* %9
%198 = load double*, double** %39
%199 = load double*, double** %34
%200 = load double*, double** %36
%201 = load double*, double** %37
%202 = load double*, double** %35
%203 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %197, double* %198, double* %199, double* %200, double* %201, double* %202)
%204 = load i32, i32* %9
%205 = load double*, double** %40
%206 = load double*, double** %34
%207 = load double*, double** %36
%208 = load double*, double** %38
%209 = load double*, double** %35
%210 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %204, double* %205, double* %206, double* %207, double* %208, double* %209)
store i32 1, i32* %19
br label %211
211: ; preds = %532, %8
%212 = load i32, i32* %19
%213 = load i32, i32* %9
%214 = icmp slt i32 %212, %213
br i1 %214, label %215, label %535
215: ; preds = %211
%216 = load i32, i32* %19
%217 = load i32, i32* %19
%218 = load i32, i32* %9
%219 = load double*, double** %30
%220 = load double*, double** %31
%221 = load double*, double** %32
%222 = load double*, double** %33
%223 = load double*, double** %34
%224 = load double*, double** %35
%225 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %216, i32 %217, i32 %218, double* %219, double* %220, double* %221, double* %222, double* %223, double* %224)
%226 = load i32, i32* %19
%227 = load i32, i32* %19
%228 = load i32, i32* %9
%229 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %226, i32 %227, i32 %228)
store i32 %229, i32* %22
%230 = load i32, i32* %19
%231 = load i32, i32* %19
%232 = load i32, i32* %9
%233 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %230, i32 %231, i32 %232)
store i32 %233, i32* %23
%234 = load double*, double** %12
store double* %234, double** %37
%235 = load double*, double** %13
store double* %235, double** %38
%236 = load double*, double** %28
store double* %236, double** %39
%237 = load double*, double** %29
store double* %237, double** %40
%238 = load i32, i32* %22
%239 = load double*, double** %39
%240 = sext i32 %238 to i64
%241 = getelementptr inbounds double, double* %239, i64 %240
store double* %241, double** %39
%242 = load i32, i32* %22
%243 = load double*, double** %40
%244 = sext i32 %242 to i64
%245 = getelementptr inbounds double, double* %243, i64 %244
store double* %245, double** %40
%246 = load i32, i32* %23
%247 = load double*, double** %37
%248 = sext i32 %246 to i64
%249 = getelementptr inbounds double, double* %247, i64 %248
store double* %249, double** %37
%250 = load i32, i32* %23
%251 = load double*, double** %38
%252 = sext i32 %250 to i64
%253 = getelementptr inbounds double, double* %251, i64 %252
store double* %253, double** %38
%254 = load i32, i32* %19
%255 = load i32, i32* %19
%256 = load i32, i32* %9
%257 = load double*, double** %39
%258 = load double*, double** %34
%259 = load double*, double** %36
%260 = load double*, double** %37
%261 = load double*, double** %35
%262 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %254, i32 %255, i32 %256, double* %257, double* %258, double* %259, double* %260, double* %261)
%263 = load i32, i32* %19
%264 = load i32, i32* %19
%265 = load i32, i32* %9
%266 = load double*, double** %40
%267 = load double*, double** %34
%268 = load double*, double** %36
%269 = load double*, double** %38
%270 = load double*, double** %35
%271 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %263, i32 %264, i32 %265, double* %266, double* %267, double* %268, double* %269, double* %270)
%272 = load i32, i32* %16
%273 = icmp eq i32 %272, 0
br i1 %273, label %274, label %329
274: ; preds = %215
%275 = load i32, i32* %19
%276 = sub nsw i32 0, %275
%277 = load i32, i32* %19
%278 = sub nsw i32 0, %277
%279 = load i32, i32* %9
%280 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %276, i32 %278, i32 %279)
store i32 %280, i32* %22
%281 = load i32, i32* %19
%282 = sub nsw i32 0, %281
%283 = load i32, i32* %19
%284 = sub nsw i32 0, %283
%285 = load i32, i32* %9
%286 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %282, i32 %284, i32 %285)
store i32 %286, i32* %23
%287 = load double*, double** %12
store double* %287, double** %37
%288 = load double*, double** %13
store double* %288, double** %38
%289 = load double*, double** %28
store double* %289, double** %39
%290 = load double*, double** %29
store double* %290, double** %40
%291 = load i32, i32* %22
%292 = load double*, double** %39
%293 = sext i32 %291 to i64
%294 = getelementptr inbounds double, double* %292, i64 %293
store double* %294, double** %39
%295 = load i32, i32* %22
%296 = load double*, double** %40
%297 = sext i32 %295 to i64
%298 = getelementptr inbounds double, double* %296, i64 %297
store double* %298, double** %40
%299 = load i32, i32* %23
%300 = load double*, double** %37
%301 = sext i32 %299 to i64
%302 = getelementptr inbounds double, double* %300, i64 %301
store double* %302, double** %37
%303 = load i32, i32* %23
%304 = load double*, double** %38
%305 = sext i32 %303 to i64
%306 = getelementptr inbounds double, double* %304, i64 %305
store double* %306, double** %38
%307 = load i32, i32* %19
%308 = sub nsw i32 0, %307
%309 = load i32, i32* %19
%310 = sub nsw i32 0, %309
%311 = load i32, i32* %9
%312 = load double*, double** %39
%313 = load double*, double** %34
%314 = load double*, double** %36
%315 = load double*, double** %37
%316 = load double*, double** %35
%317 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %308, i32 %310, i32 %311, double* %312, double* %313, double* %314, double* %315, double* %316)
%318 = load i32, i32* %19
%319 = sub nsw i32 0, %318
%320 = load i32, i32* %19
%321 = sub nsw i32 0, %320
%322 = load i32, i32* %9
%323 = load double*, double** %40
%324 = load double*, double** %34
%325 = load double*, double** %36
%326 = load double*, double** %38
%327 = load double*, double** %35
%328 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %319, i32 %321, i32 %322, double* %323, double* %324, double* %325, double* %326, double* %327)
br label %378
329: ; preds = %215
%330 = load i32, i32* %19
%331 = load i32, i32* %19
%332 = load i32, i32* %9
%333 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %330, i32 %331, i32 %332)
store i32 %333, i32* %23
%334 = load i32, i32* %19
%335 = sub nsw i32 0, %334
%336 = load i32, i32* %19
%337 = sub nsw i32 0, %336
%338 = load i32, i32* %9
%339 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %335, i32 %337, i32 %338)
store i32 %339, i32* %24
store i32 0, i32* %17
br label %340
340: ; preds = %374, %329
%341 = load i32, i32* %17
%342 = load i32, i32* %9
%343 = load i32, i32* %19
%344 = sub nsw i32 %342, %343
%345 = icmp slt i32 %341, %344
br i1 %345, label %346, label %377
346: ; preds = %340
%347 = load double*, double** %12
%348 = load i32, i32* %23
%349 = load i32, i32* %17
%350 = add nsw i32 %348, %349
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds double, double* %347, i64 %351
%353 = load double, double* %352
%354 = load double*, double** %12
%355 = load i32, i32* %24
%356 = load i32, i32* %17
%357 = add nsw i32 %355, %356
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds double, double* %354, i64 %358
store double %353, double* %359
%360 = load double*, double** %13
%361 = load i32, i32* %23
%362 = load i32, i32* %17
%363 = add nsw i32 %361, %362
%364 = sext i32 %363 to i64
%365 = getelementptr inbounds double, double* %360, i64 %364
%366 = load double, double* %365
%367 = fneg double %366
%368 = load double*, double** %13
%369 = load i32, i32* %24
%370 = load i32, i32* %17
%371 = add nsw i32 %369, %370
%372 = sext i32 %371 to i64
%373 = getelementptr inbounds double, double* %368, i64 %372
store double %367, double* %373
br label %374
374: ; preds = %346
%375 = load i32, i32* %17
%376 = add nsw i32 %375, 1
store i32 %376, i32* %17
br label %340
377: ; preds = %340
br label %378
378: ; preds = %377, %274
%379 = load i32, i32* %19
%380 = sub nsw i32 0, %379
%381 = load i32, i32* %19
%382 = load i32, i32* %9
%383 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %380, i32 %381, i32 %382)
store i32 %383, i32* %22
%384 = load i32, i32* %19
%385 = sub nsw i32 0, %384
%386 = load i32, i32* %19
%387 = load i32, i32* %9
%388 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %385, i32 %386, i32 %387)
store i32 %388, i32* %23
%389 = load double*, double** %12
store double* %389, double** %37
%390 = load double*, double** %13
store double* %390, double** %38
%391 = load double*, double** %28
store double* %391, double** %39
%392 = load double*, double** %29
store double* %392, double** %40
%393 = load i32, i32* %22
%394 = load double*, double** %39
%395 = sext i32 %393 to i64
%396 = getelementptr inbounds double, double* %394, i64 %395
store double* %396, double** %39
%397 = load i32, i32* %22
%398 = load double*, double** %40
%399 = sext i32 %397 to i64
%400 = getelementptr inbounds double, double* %398, i64 %399
store double* %400, double** %40
%401 = load i32, i32* %23
%402 = load double*, double** %37
%403 = sext i32 %401 to i64
%404 = getelementptr inbounds double, double* %402, i64 %403
store double* %404, double** %37
%405 = load i32, i32* %23
%406 = load double*, double** %38
%407 = sext i32 %405 to i64
%408 = getelementptr inbounds double, double* %406, i64 %407
store double* %408, double** %38
%409 = load i32, i32* %19
%410 = sub nsw i32 0, %409
%411 = load i32, i32* %19
%412 = load i32, i32* %9
%413 = load double*, double** %39
%414 = load double*, double** %34
%415 = load double*, double** %36
%416 = load double*, double** %37
%417 = load double*, double** %35
%418 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %410, i32 %411, i32 %412, double* %413, double* %414, double* %415, double* %416, double* %417)
%419 = load i32, i32* %19
%420 = sub nsw i32 0, %419
%421 = load i32, i32* %19
%422 = load i32, i32* %9
%423 = load double*, double** %40
%424 = load double*, double** %34
%425 = load double*, double** %36
%426 = load double*, double** %38
%427 = load double*, double** %35
%428 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %420, i32 %421, i32 %422, double* %423, double* %424, double* %425, double* %426, double* %427)
%429 = load i32, i32* %16
%430 = icmp eq i32 %429, 0
br i1 %430, label %431, label %482
431: ; preds = %378
%432 = load i32, i32* %19
%433 = load i32, i32* %19
%434 = sub nsw i32 0, %433
%435 = load i32, i32* %9
%436 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %432, i32 %434, i32 %435)
store i32 %436, i32* %22
%437 = load i32, i32* %19
%438 = load i32, i32* %19
%439 = sub nsw i32 0, %438
%440 = load i32, i32* %9
%441 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %437, i32 %439, i32 %440)
store i32 %441, i32* %23
%442 = load double*, double** %12
store double* %442, double** %37
%443 = load double*, double** %13
store double* %443, double** %38
%444 = load double*, double** %28
store double* %444, double** %39
%445 = load double*, double** %29
store double* %445, double** %40
%446 = load i32, i32* %22
%447 = load double*, double** %39
%448 = sext i32 %446 to i64
%449 = getelementptr inbounds double, double* %447, i64 %448
store double* %449, double** %39
%450 = load i32, i32* %22
%451 = load double*, double** %40
%452 = sext i32 %450 to i64
%453 = getelementptr inbounds double, double* %451, i64 %452
store double* %453, double** %40
%454 = load i32, i32* %23
%455 = load double*, double** %37
%456 = sext i32 %454 to i64
%457 = getelementptr inbounds double, double* %455, i64 %456
store double* %457, double** %37
%458 = load i32, i32* %23
%459 = load double*, double** %38
%460 = sext i32 %458 to i64
%461 = getelementptr inbounds double, double* %459, i64 %460
store double* %461, double** %38
%462 = load i32, i32* %19
%463 = load i32, i32* %19
%464 = sub nsw i32 0, %463
%465 = load i32, i32* %9
%466 = load double*, double** %39
%467 = load double*, double** %34
%468 = load double*, double** %36
%469 = load double*, double** %37
%470 = load double*, double** %35
%471 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %462, i32 %464, i32 %465, double* %466, double* %467, double* %468, double* %469, double* %470)
%472 = load i32, i32* %19
%473 = load i32, i32* %19
%474 = sub nsw i32 0, %473
%475 = load i32, i32* %9
%476 = load double*, double** %40
%477 = load double*, double** %34
%478 = load double*, double** %36
%479 = load double*, double** %38
%480 = load double*, double** %35
%481 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %472, i32 %474, i32 %475, double* %476, double* %477, double* %478, double* %479, double* %480)
br label %531
482: ; preds = %378
%483 = load i32, i32* %19
%484 = sub nsw i32 0, %483
%485 = load i32, i32* %19
%486 = load i32, i32* %9
%487 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %484, i32 %485, i32 %486)
store i32 %487, i32* %23
%488 = load i32, i32* %19
%489 = load i32, i32* %19
%490 = sub nsw i32 0, %489
%491 = load i32, i32* %9
%492 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %488, i32 %490, i32 %491)
store i32 %492, i32* %24
store i32 0, i32* %17
br label %493
493: ; preds = %527, %482
%494 = load i32, i32* %17
%495 = load i32, i32* %9
%496 = load i32, i32* %19
%497 = sub nsw i32 %495, %496
%498 = icmp slt i32 %494, %497
br i1 %498, label %499, label %530
499: ; preds = %493
%500 = load double*, double** %12
%501 = load i32, i32* %23
%502 = load i32, i32* %17
%503 = add nsw i32 %501, %502
%504 = sext i32 %503 to i64
%505 = getelementptr inbounds double, double* %500, i64 %504
%506 = load double, double* %505
%507 = load double*, double** %12
%508 = load i32, i32* %24
%509 = load i32, i32* %17
%510 = add nsw i32 %508, %509
%511 = sext i32 %510 to i64
%512 = getelementptr inbounds double, double* %507, i64 %511
store double %506, double* %512
%513 = load double*, double** %13
%514 = load i32, i32* %23
%515 = load i32, i32* %17
%516 = add nsw i32 %514, %515
%517 = sext i32 %516 to i64
%518 = getelementptr inbounds double, double* %513, i64 %517
%519 = load double, double* %518
%520 = fneg double %519
%521 = load double*, double** %13
%522 = load i32, i32* %24
%523 = load i32, i32* %17
%524 = add nsw i32 %522, %523
%525 = sext i32 %524 to i64
%526 = getelementptr inbounds double, double* %521, i64 %525
store double %520, double* %526
br label %527
527: ; preds = %499
%528 = load i32, i32* %17
%529 = add nsw i32 %528, 1
store i32 %529, i32* %17
br label %493
530: ; preds = %493
br label %531
531: ; preds = %530, %431
br label %532
532: ; preds = %531
%533 = load i32, i32* %19
%534 = add nsw i32 %533, 1
store i32 %534, i32* %19
br label %211
535: ; preds = %211
store i32 1, i32* %19
br label %536
536: ; preds = %846, %535
%537 = load i32, i32* %19
%538 = load i32, i32* %9
%539 = icmp slt i32 %537, %538
br i1 %539, label %540, label %849
540: ; preds = %536
%541 = load i32, i32* %19
%542 = load i32, i32* %9
%543 = load double*, double** %30
%544 = load double*, double** %31
%545 = load double*, double** %32
%546 = load double*, double** %33
%547 = load double*, double** %34
%548 = load double*, double** %35
%549 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %541, i32 0, i32 %542, double* %543, double* %544, double* %545, double* %546, double* %547, double* %548)
%550 = load i32, i32* %19
%551 = load i32, i32* %9
%552 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %550, i32 0, i32 %551)
store i32 %552, i32* %22
%553 = load i32, i32* %19
%554 = load i32, i32* %9
%555 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %553, i32 0, i32 %554)
store i32 %555, i32* %23
%556 = load double*, double** %12
store double* %556, double** %37
%557 = load double*, double** %13
store double* %557, double** %38
%558 = load double*, double** %28
store double* %558, double** %39
%559 = load double*, double** %29
store double* %559, double** %40
%560 = load i32, i32* %22
%561 = load double*, double** %39
%562 = sext i32 %560 to i64
%563 = getelementptr inbounds double, double* %561, i64 %562
store double* %563, double** %39
%564 = load i32, i32* %22
%565 = load double*, double** %40
%566 = sext i32 %564 to i64
%567 = getelementptr inbounds double, double* %565, i64 %566
store double* %567, double** %40
%568 = load i32, i32* %23
%569 = load double*, double** %37
%570 = sext i32 %568 to i64
%571 = getelementptr inbounds double, double* %569, i64 %570
store double* %571, double** %37
%572 = load i32, i32* %23
%573 = load double*, double** %38
%574 = sext i32 %572 to i64
%575 = getelementptr inbounds double, double* %573, i64 %574
store double* %575, double** %38
%576 = load i32, i32* %19
%577 = load i32, i32* %9
%578 = load double*, double** %39
%579 = load double*, double** %34
%580 = load double*, double** %36
%581 = load double*, double** %37
%582 = load double*, double** %35
%583 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %576, i32 0, i32 %577, double* %578, double* %579, double* %580, double* %581, double* %582)
%584 = load i32, i32* %19
%585 = load i32, i32* %9
%586 = load double*, double** %40
%587 = load double*, double** %34
%588 = load double*, double** %36
%589 = load double*, double** %38
%590 = load double*, double** %35
%591 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %584, i32 0, i32 %585, double* %586, double* %587, double* %588, double* %589, double* %590)
%592 = load i32, i32* %16
%593 = icmp eq i32 %592, 0
br i1 %593, label %594, label %641
594: ; preds = %540
%595 = load i32, i32* %19
%596 = sub nsw i32 0, %595
%597 = load i32, i32* %9
%598 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %596, i32 0, i32 %597)
store i32 %598, i32* %22
%599 = load i32, i32* %19
%600 = sub nsw i32 0, %599
%601 = load i32, i32* %9
%602 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %600, i32 0, i32 %601)
store i32 %602, i32* %23
%603 = load double*, double** %12
store double* %603, double** %37
%604 = load double*, double** %13
store double* %604, double** %38
%605 = load double*, double** %28
store double* %605, double** %39
%606 = load double*, double** %29
store double* %606, double** %40
%607 = load i32, i32* %22
%608 = load double*, double** %39
%609 = sext i32 %607 to i64
%610 = getelementptr inbounds double, double* %608, i64 %609
store double* %610, double** %39
%611 = load i32, i32* %22
%612 = load double*, double** %40
%613 = sext i32 %611 to i64
%614 = getelementptr inbounds double, double* %612, i64 %613
store double* %614, double** %40
%615 = load i32, i32* %23
%616 = load double*, double** %37
%617 = sext i32 %615 to i64
%618 = getelementptr inbounds double, double* %616, i64 %617
store double* %618, double** %37
%619 = load i32, i32* %23
%620 = load double*, double** %38
%621 = sext i32 %619 to i64
%622 = getelementptr inbounds double, double* %620, i64 %621
store double* %622, double** %38
%623 = load i32, i32* %19
%624 = sub nsw i32 0, %623
%625 = load i32, i32* %9
%626 = load double*, double** %39
%627 = load double*, double** %34
%628 = load double*, double** %36
%629 = load double*, double** %37
%630 = load double*, double** %35
%631 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %624, i32 0, i32 %625, double* %626, double* %627, double* %628, double* %629, double* %630)
%632 = load i32, i32* %19
%633 = sub nsw i32 0, %632
%634 = load i32, i32* %9
%635 = load double*, double** %40
%636 = load double*, double** %34
%637 = load double*, double** %36
%638 = load double*, double** %38
%639 = load double*, double** %35
%640 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %633, i32 0, i32 %634, double* %635, double* %636, double* %637, double* %638, double* %639)
br label %697
641: ; preds = %540
%642 = load i32, i32* %19
%643 = load i32, i32* %9
%644 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %642, i32 0, i32 %643)
store i32 %644, i32* %23
%645 = load i32, i32* %19
%646 = sub nsw i32 0, %645
%647 = load i32, i32* %9
%648 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %646, i32 0, i32 %647)
store i32 %648, i32* %24
%649 = load i32, i32* %19
%650 = srem i32 %649, 2
%651 = icmp eq i32 %650, 0
br i1 %651, label %652, label %653
652: ; preds = %641
store double 1.000000e+00, double* %21
br label %654
653: ; preds = %641
store double -1.000000e+00, double* %21
br label %654
654: ; preds = %653, %652
store i32 0, i32* %17
br label %655
655: ; preds = %693, %654
%656 = load i32, i32* %17
%657 = load i32, i32* %9
%658 = load i32, i32* %19
%659 = sub nsw i32 %657, %658
%660 = icmp slt i32 %656, %659
br i1 %660, label %661, label %696
661: ; preds = %655
%662 = load double, double* %21
%663 = load double*, double** %12
%664 = load i32, i32* %23
%665 = load i32, i32* %17
%666 = add nsw i32 %664, %665
%667 = sext i32 %666 to i64
%668 = getelementptr inbounds double, double* %663, i64 %667
%669 = load double, double* %668
%670 = fmul double %662, %669
%671 = load double*, double** %12
%672 = load i32, i32* %24
%673 = load i32, i32* %17
%674 = add nsw i32 %672, %673
%675 = sext i32 %674 to i64
%676 = getelementptr inbounds double, double* %671, i64 %675
store double %670, double* %676
%677 = load double, double* %21
%678 = fneg double %677
%679 = load double*, double** %13
%680 = load i32, i32* %23
%681 = load i32, i32* %17
%682 = add nsw i32 %680, %681
%683 = sext i32 %682 to i64
%684 = getelementptr inbounds double, double* %679, i64 %683
%685 = load double, double* %684
%686 = fmul double %678, %685
%687 = load double*, double** %13
%688 = load i32, i32* %24
%689 = load i32, i32* %17
%690 = add nsw i32 %688, %689
%691 = sext i32 %690 to i64
%692 = getelementptr inbounds double, double* %687, i64 %691
store double %686, double* %692
br label %693
693: ; preds = %661
%694 = load i32, i32* %17
%695 = add nsw i32 %694, 1
store i32 %695, i32* %17
br label %655
696: ; preds = %655
br label %697
697: ; preds = %696, %594
%698 = load i32, i32* %19
%699 = load i32, i32* %9
%700 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %698, i32 %699)
store i32 %700, i32* %22
%701 = load i32, i32* %19
%702 = load i32, i32* %9
%703 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %701, i32 %702)
store i32 %703, i32* %23
%704 = load double*, double** %12
store double* %704, double** %37
%705 = load double*, double** %13
store double* %705, double** %38
%706 = load double*, double** %28
store double* %706, double** %39
%707 = load double*, double** %29
store double* %707, double** %40
%708 = load i32, i32* %22
%709 = load double*, double** %39
%710 = sext i32 %708 to i64
%711 = getelementptr inbounds double, double* %709, i64 %710
store double* %711, double** %39
%712 = load i32, i32* %22
%713 = load double*, double** %40
%714 = sext i32 %712 to i64
%715 = getelementptr inbounds double, double* %713, i64 %714
store double* %715, double** %40
%716 = load i32, i32* %23
%717 = load double*, double** %37
%718 = sext i32 %716 to i64
%719 = getelementptr inbounds double, double* %717, i64 %718
store double* %719, double** %37
%720 = load i32, i32* %23
%721 = load double*, double** %38
%722 = sext i32 %720 to i64
%723 = getelementptr inbounds double, double* %721, i64 %722
store double* %723, double** %38
%724 = load i32, i32* %19
%725 = load i32, i32* %9
%726 = load double*, double** %39
%727 = load double*, double** %34
%728 = load double*, double** %36
%729 = load double*, double** %37
%730 = load double*, double** %35
%731 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %724, i32 %725, double* %726, double* %727, double* %728, double* %729, double* %730)
%732 = load i32, i32* %19
%733 = load i32, i32* %9
%734 = load double*, double** %40
%735 = load double*, double** %34
%736 = load double*, double** %36
%737 = load double*, double** %38
%738 = load double*, double** %35
%739 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %732, i32 %733, double* %734, double* %735, double* %736, double* %737, double* %738)
%740 = load i32, i32* %16
%741 = icmp eq i32 %740, 0
br i1 %741, label %742, label %789
742: ; preds = %697
%743 = load i32, i32* %19
%744 = sub nsw i32 0, %743
%745 = load i32, i32* %9
%746 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %744, i32 %745)
store i32 %746, i32* %22
%747 = load i32, i32* %19
%748 = sub nsw i32 0, %747
%749 = load i32, i32* %9
%750 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %748, i32 %749)
store i32 %750, i32* %23
%751 = load double*, double** %12
store double* %751, double** %37
%752 = load double*, double** %13
store double* %752, double** %38
%753 = load double*, double** %28
store double* %753, double** %39
%754 = load double*, double** %29
store double* %754, double** %40
%755 = load i32, i32* %22
%756 = load double*, double** %39
%757 = sext i32 %755 to i64
%758 = getelementptr inbounds double, double* %756, i64 %757
store double* %758, double** %39
%759 = load i32, i32* %22
%760 = load double*, double** %40
%761 = sext i32 %759 to i64
%762 = getelementptr inbounds double, double* %760, i64 %761
store double* %762, double** %40
%763 = load i32, i32* %23
%764 = load double*, double** %37
%765 = sext i32 %763 to i64
%766 = getelementptr inbounds double, double* %764, i64 %765
store double* %766, double** %37
%767 = load i32, i32* %23
%768 = load double*, double** %38
%769 = sext i32 %767 to i64
%770 = getelementptr inbounds double, double* %768, i64 %769
store double* %770, double** %38
%771 = load i32, i32* %19
%772 = sub nsw i32 0, %771
%773 = load i32, i32* %9
%774 = load double*, double** %39
%775 = load double*, double** %34
%776 = load double*, double** %36
%777 = load double*, double** %37
%778 = load double*, double** %35
%779 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %772, i32 %773, double* %774, double* %775, double* %776, double* %777, double* %778)
%780 = load i32, i32* %19
%781 = sub nsw i32 0, %780
%782 = load i32, i32* %9
%783 = load double*, double** %40
%784 = load double*, double** %34
%785 = load double*, double** %36
%786 = load double*, double** %38
%787 = load double*, double** %35
%788 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %781, i32 %782, double* %783, double* %784, double* %785, double* %786, double* %787)
br label %845
789: ; preds = %697
%790 = load i32, i32* %19
%791 = load i32, i32* %9
%792 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %790, i32 %791)
store i32 %792, i32* %23
%793 = load i32, i32* %19
%794 = sub nsw i32 0, %793
%795 = load i32, i32* %9
%796 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %794, i32 %795)
store i32 %796, i32* %24
%797 = load i32, i32* %19
%798 = srem i32 %797, 2
%799 = icmp eq i32 %798, 0
br i1 %799, label %800, label %801
800: ; preds = %789
store double 1.000000e+00, double* %21
br label %802
801: ; preds = %789
store double -1.000000e+00, double* %21
br label %802
802: ; preds = %801, %800
store i32 0, i32* %17
br label %803
803: ; preds = %841, %802
%804 = load i32, i32* %17
%805 = load i32, i32* %9
%806 = load i32, i32* %19
%807 = sub nsw i32 %805, %806
%808 = icmp slt i32 %804, %807
br i1 %808, label %809, label %844
809: ; preds = %803
%810 = load double, double* %21
%811 = load double*, double** %12
%812 = load i32, i32* %23
%813 = load i32, i32* %17
%814 = add nsw i32 %812, %813
%815 = sext i32 %814 to i64
%816 = getelementptr inbounds double, double* %811, i64 %815
%817 = load double, double* %816
%818 = fmul double %810, %817
%819 = load double*, double** %12
%820 = load i32, i32* %24
%821 = load i32, i32* %17
%822 = add nsw i32 %820, %821
%823 = sext i32 %822 to i64
%824 = getelementptr inbounds double, double* %819, i64 %823
store double %818, double* %824
%825 = load double, double* %21
%826 = fneg double %825
%827 = load double*, double** %13
%828 = load i32, i32* %23
%829 = load i32, i32* %17
%830 = add nsw i32 %828, %829
%831 = sext i32 %830 to i64
%832 = getelementptr inbounds double, double* %827, i64 %831
%833 = load double, double* %832
%834 = fmul double %826, %833
%835 = load double*, double** %13
%836 = load i32, i32* %24
%837 = load i32, i32* %17
%838 = add nsw i32 %836, %837
%839 = sext i32 %838 to i64
%840 = getelementptr inbounds double, double* %835, i64 %839
store double %834, double* %840
br label %841
841: ; preds = %809
%842 = load i32, i32* %17
%843 = add nsw i32 %842, 1
store i32 %843, i32* %17
br label %803
844: ; preds = %803
br label %845
845: ; preds = %844, %742
br label %846
846: ; preds = %845
%847 = load i32, i32* %19
%848 = add nsw i32 %847, 1
store i32 %848, i32* %19
br label %536
849: ; preds = %536
store i32 1, i32* %19
br label %850
850: ; preds = %1536, %849
%851 = load i32, i32* %19
%852 = load i32, i32* %9
%853 = icmp slt i32 %851, %852
br i1 %853, label %854, label %1539
854: ; preds = %850
%855 = load i32, i32* %19
%856 = add nsw i32 %855, 1
store i32 %856, i32* %20
br label %857
857: ; preds = %1532, %854
%858 = load i32, i32* %20
%859 = load i32, i32* %9
%860 = icmp slt i32 %858, %859
br i1 %860, label %861, label %1535
861: ; preds = %857
%862 = load i32, i32* %19
%863 = load i32, i32* %20
%864 = load i32, i32* %9
%865 = load double*, double** %30
%866 = load double*, double** %31
%867 = load double*, double** %32
%868 = load double*, double** %33
%869 = load double*, double** %34
%870 = load double*, double** %35
%871 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %862, i32 %863, i32 %864, double* %865, double* %866, double* %867, double* %868, double* %869, double* %870)
%872 = load i32, i32* %19
%873 = load i32, i32* %20
%874 = load i32, i32* %9
%875 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %872, i32 %873, i32 %874)
store i32 %875, i32* %22
%876 = load i32, i32* %19
%877 = load i32, i32* %20
%878 = load i32, i32* %9
%879 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %876, i32 %877, i32 %878)
store i32 %879, i32* %23
%880 = load double*, double** %12
store double* %880, double** %37
%881 = load double*, double** %13
store double* %881, double** %38
%882 = load double*, double** %28
store double* %882, double** %39
%883 = load double*, double** %29
store double* %883, double** %40
%884 = load i32, i32* %22
%885 = load double*, double** %39
%886 = sext i32 %884 to i64
%887 = getelementptr inbounds double, double* %885, i64 %886
store double* %887, double** %39
%888 = load i32, i32* %22
%889 = load double*, double** %40
%890 = sext i32 %888 to i64
%891 = getelementptr inbounds double, double* %889, i64 %890
store double* %891, double** %40
%892 = load i32, i32* %23
%893 = load double*, double** %37
%894 = sext i32 %892 to i64
%895 = getelementptr inbounds double, double* %893, i64 %894
store double* %895, double** %37
%896 = load i32, i32* %23
%897 = load double*, double** %38
%898 = sext i32 %896 to i64
%899 = getelementptr inbounds double, double* %897, i64 %898
store double* %899, double** %38
%900 = load i32, i32* %19
%901 = load i32, i32* %20
%902 = load i32, i32* %9
%903 = load double*, double** %39
%904 = load double*, double** %34
%905 = load double*, double** %36
%906 = load double*, double** %37
%907 = load double*, double** %35
%908 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %900, i32 %901, i32 %902, double* %903, double* %904, double* %905, double* %906, double* %907)
%909 = load i32, i32* %19
%910 = load i32, i32* %20
%911 = load i32, i32* %9
%912 = load double*, double** %40
%913 = load double*, double** %34
%914 = load double*, double** %36
%915 = load double*, double** %38
%916 = load double*, double** %35
%917 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %909, i32 %910, i32 %911, double* %912, double* %913, double* %914, double* %915, double* %916)
%918 = load i32, i32* %16
%919 = icmp eq i32 %918, 0
br i1 %919, label %920, label %975
920: ; preds = %861
%921 = load i32, i32* %19
%922 = sub nsw i32 0, %921
%923 = load i32, i32* %20
%924 = sub nsw i32 0, %923
%925 = load i32, i32* %9
%926 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %922, i32 %924, i32 %925)
store i32 %926, i32* %22
%927 = load i32, i32* %19
%928 = sub nsw i32 0, %927
%929 = load i32, i32* %20
%930 = sub nsw i32 0, %929
%931 = load i32, i32* %9
%932 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %928, i32 %930, i32 %931)
store i32 %932, i32* %23
%933 = load double*, double** %12
store double* %933, double** %37
%934 = load double*, double** %13
store double* %934, double** %38
%935 = load double*, double** %28
store double* %935, double** %39
%936 = load double*, double** %29
store double* %936, double** %40
%937 = load i32, i32* %22
%938 = load double*, double** %39
%939 = sext i32 %937 to i64
%940 = getelementptr inbounds double, double* %938, i64 %939
store double* %940, double** %39
%941 = load i32, i32* %22
%942 = load double*, double** %40
%943 = sext i32 %941 to i64
%944 = getelementptr inbounds double, double* %942, i64 %943
store double* %944, double** %40
%945 = load i32, i32* %23
%946 = load double*, double** %37
%947 = sext i32 %945 to i64
%948 = getelementptr inbounds double, double* %946, i64 %947
store double* %948, double** %37
%949 = load i32, i32* %23
%950 = load double*, double** %38
%951 = sext i32 %949 to i64
%952 = getelementptr inbounds double, double* %950, i64 %951
store double* %952, double** %38
%953 = load i32, i32* %19
%954 = sub nsw i32 0, %953
%955 = load i32, i32* %20
%956 = sub nsw i32 0, %955
%957 = load i32, i32* %9
%958 = load double*, double** %39
%959 = load double*, double** %34
%960 = load double*, double** %36
%961 = load double*, double** %37
%962 = load double*, double** %35
%963 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %954, i32 %956, i32 %957, double* %958, double* %959, double* %960, double* %961, double* %962)
%964 = load i32, i32* %19
%965 = sub nsw i32 0, %964
%966 = load i32, i32* %20
%967 = sub nsw i32 0, %966
%968 = load i32, i32* %9
%969 = load double*, double** %40
%970 = load double*, double** %34
%971 = load double*, double** %36
%972 = load double*, double** %38
%973 = load double*, double** %35
%974 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %965, i32 %967, i32 %968, double* %969, double* %970, double* %971, double* %972, double* %973)
br label %1036
975: ; preds = %861
%976 = load i32, i32* %19
%977 = load i32, i32* %20
%978 = load i32, i32* %9
%979 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %976, i32 %977, i32 %978)
store i32 %979, i32* %23
%980 = load i32, i32* %19
%981 = sub nsw i32 0, %980
%982 = load i32, i32* %20
%983 = sub nsw i32 0, %982
%984 = load i32, i32* %9
%985 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %981, i32 %983, i32 %984)
store i32 %985, i32* %24
%986 = load i32, i32* %20
%987 = load i32, i32* %19
%988 = sub nsw i32 %986, %987
%989 = srem i32 %988, 2
%990 = icmp eq i32 %989, 0
br i1 %990, label %991, label %992
991: ; preds = %975
store double 1.000000e+00, double* %21
br label %993
992: ; preds = %975
store double -1.000000e+00, double* %21
br label %993
993: ; preds = %992, %991
store i32 0, i32* %17
br label %994
994: ; preds = %1032, %993
%995 = load i32, i32* %17
%996 = load i32, i32* %9
%997 = load i32, i32* %20
%998 = sub nsw i32 %996, %997
%999 = icmp slt i32 %995, %998
br i1 %999, label %1000, label %1035
1000: ; preds = %994
%1001 = load double, double* %21
%1002 = load double*, double** %12
%1003 = load i32, i32* %23
%1004 = load i32, i32* %17
%1005 = add nsw i32 %1003, %1004
%1006 = sext i32 %1005 to i64
%1007 = getelementptr inbounds double, double* %1002, i64 %1006
%1008 = load double, double* %1007
%1009 = fmul double %1001, %1008
%1010 = load double*, double** %12
%1011 = load i32, i32* %24
%1012 = load i32, i32* %17
%1013 = add nsw i32 %1011, %1012
%1014 = sext i32 %1013 to i64
%1015 = getelementptr inbounds double, double* %1010, i64 %1014
store double %1009, double* %1015
%1016 = load double, double* %21
%1017 = fneg double %1016
%1018 = load double*, double** %13
%1019 = load i32, i32* %23
%1020 = load i32, i32* %17
%1021 = add nsw i32 %1019, %1020
%1022 = sext i32 %1021 to i64
%1023 = getelementptr inbounds double, double* %1018, i64 %1022
%1024 = load double, double* %1023
%1025 = fmul double %1017, %1024
%1026 = load double*, double** %13
%1027 = load i32, i32* %24
%1028 = load i32, i32* %17
%1029 = add nsw i32 %1027, %1028
%1030 = sext i32 %1029 to i64
%1031 = getelementptr inbounds double, double* %1026, i64 %1030
store double %1025, double* %1031
br label %1032
1032: ; preds = %1000
%1033 = load i32, i32* %17
%1034 = add nsw i32 %1033, 1
store i32 %1034, i32* %17
br label %994
1035: ; preds = %994
br label %1036
1036: ; preds = %1035, %920
%1037 = load i32, i32* %19
%1038 = load i32, i32* %20
%1039 = sub nsw i32 0, %1038
%1040 = load i32, i32* %9
%1041 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1037, i32 %1039, i32 %1040)
store i32 %1041, i32* %22
%1042 = load i32, i32* %19
%1043 = load i32, i32* %20
%1044 = sub nsw i32 0, %1043
%1045 = load i32, i32* %9
%1046 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1042, i32 %1044, i32 %1045)
store i32 %1046, i32* %23
%1047 = load double*, double** %12
store double* %1047, double** %37
%1048 = load double*, double** %13
store double* %1048, double** %38
%1049 = load double*, double** %28
store double* %1049, double** %39
%1050 = load double*, double** %29
store double* %1050, double** %40
%1051 = load i32, i32* %22
%1052 = load double*, double** %39
%1053 = sext i32 %1051 to i64
%1054 = getelementptr inbounds double, double* %1052, i64 %1053
store double* %1054, double** %39
%1055 = load i32, i32* %22
%1056 = load double*, double** %40
%1057 = sext i32 %1055 to i64
%1058 = getelementptr inbounds double, double* %1056, i64 %1057
store double* %1058, double** %40
%1059 = load i32, i32* %23
%1060 = load double*, double** %37
%1061 = sext i32 %1059 to i64
%1062 = getelementptr inbounds double, double* %1060, i64 %1061
store double* %1062, double** %37
%1063 = load i32, i32* %23
%1064 = load double*, double** %38
%1065 = sext i32 %1063 to i64
%1066 = getelementptr inbounds double, double* %1064, i64 %1065
store double* %1066, double** %38
%1067 = load i32, i32* %19
%1068 = load i32, i32* %20
%1069 = sub nsw i32 0, %1068
%1070 = load i32, i32* %9
%1071 = load double*, double** %39
%1072 = load double*, double** %34
%1073 = load double*, double** %36
%1074 = load double*, double** %37
%1075 = load double*, double** %35
%1076 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1067, i32 %1069, i32 %1070, double* %1071, double* %1072, double* %1073, double* %1074, double* %1075)
%1077 = load i32, i32* %19
%1078 = load i32, i32* %20
%1079 = sub nsw i32 0, %1078
%1080 = load i32, i32* %9
%1081 = load double*, double** %40
%1082 = load double*, double** %34
%1083 = load double*, double** %36
%1084 = load double*, double** %38
%1085 = load double*, double** %35
%1086 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1077, i32 %1079, i32 %1080, double* %1081, double* %1082, double* %1083, double* %1084, double* %1085)
%1087 = load i32, i32* %16
%1088 = icmp eq i32 %1087, 0
br i1 %1088, label %1089, label %1140
1089: ; preds = %1036
%1090 = load i32, i32* %19
%1091 = sub nsw i32 0, %1090
%1092 = load i32, i32* %20
%1093 = load i32, i32* %9
%1094 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1091, i32 %1092, i32 %1093)
store i32 %1094, i32* %22
%1095 = load i32, i32* %19
%1096 = sub nsw i32 0, %1095
%1097 = load i32, i32* %20
%1098 = load i32, i32* %9
%1099 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1096, i32 %1097, i32 %1098)
store i32 %1099, i32* %23
%1100 = load double*, double** %12
store double* %1100, double** %37
%1101 = load double*, double** %13
store double* %1101, double** %38
%1102 = load double*, double** %28
store double* %1102, double** %39
%1103 = load double*, double** %29
store double* %1103, double** %40
%1104 = load i32, i32* %22
%1105 = load double*, double** %39
%1106 = sext i32 %1104 to i64
%1107 = getelementptr inbounds double, double* %1105, i64 %1106
store double* %1107, double** %39
%1108 = load i32, i32* %22
%1109 = load double*, double** %40
%1110 = sext i32 %1108 to i64
%1111 = getelementptr inbounds double, double* %1109, i64 %1110
store double* %1111, double** %40
%1112 = load i32, i32* %23
%1113 = load double*, double** %37
%1114 = sext i32 %1112 to i64
%1115 = getelementptr inbounds double, double* %1113, i64 %1114
store double* %1115, double** %37
%1116 = load i32, i32* %23
%1117 = load double*, double** %38
%1118 = sext i32 %1116 to i64
%1119 = getelementptr inbounds double, double* %1117, i64 %1118
store double* %1119, double** %38
%1120 = load i32, i32* %19
%1121 = sub nsw i32 0, %1120
%1122 = load i32, i32* %20
%1123 = load i32, i32* %9
%1124 = load double*, double** %39
%1125 = load double*, double** %34
%1126 = load double*, double** %36
%1127 = load double*, double** %37
%1128 = load double*, double** %35
%1129 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1121, i32 %1122, i32 %1123, double* %1124, double* %1125, double* %1126, double* %1127, double* %1128)
%1130 = load i32, i32* %19
%1131 = sub nsw i32 0, %1130
%1132 = load i32, i32* %20
%1133 = load i32, i32* %9
%1134 = load double*, double** %40
%1135 = load double*, double** %34
%1136 = load double*, double** %36
%1137 = load double*, double** %38
%1138 = load double*, double** %35
%1139 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1131, i32 %1132, i32 %1133, double* %1134, double* %1135, double* %1136, double* %1137, double* %1138)
br label %1201
1140: ; preds = %1036
%1141 = load i32, i32* %19
%1142 = load i32, i32* %20
%1143 = sub nsw i32 0, %1142
%1144 = load i32, i32* %9
%1145 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1141, i32 %1143, i32 %1144)
store i32 %1145, i32* %23
%1146 = load i32, i32* %19
%1147 = sub nsw i32 0, %1146
%1148 = load i32, i32* %20
%1149 = load i32, i32* %9
%1150 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1147, i32 %1148, i32 %1149)
store i32 %1150, i32* %24
%1151 = load i32, i32* %20
%1152 = load i32, i32* %19
%1153 = sub nsw i32 %1151, %1152
%1154 = srem i32 %1153, 2
%1155 = icmp eq i32 %1154, 0
br i1 %1155, label %1156, label %1157
1156: ; preds = %1140
store double 1.000000e+00, double* %21
br label %1158
1157: ; preds = %1140
store double -1.000000e+00, double* %21
br label %1158
1158: ; preds = %1157, %1156
store i32 0, i32* %17
br label %1159
1159: ; preds = %1197, %1158
%1160 = load i32, i32* %17
%1161 = load i32, i32* %9
%1162 = load i32, i32* %20
%1163 = sub nsw i32 %1161, %1162
%1164 = icmp slt i32 %1160, %1163
br i1 %1164, label %1165, label %1200
1165: ; preds = %1159
%1166 = load double, double* %21
%1167 = load double*, double** %12
%1168 = load i32, i32* %23
%1169 = load i32, i32* %17
%1170 = add nsw i32 %1168, %1169
%1171 = sext i32 %1170 to i64
%1172 = getelementptr inbounds double, double* %1167, i64 %1171
%1173 = load double, double* %1172
%1174 = fmul double %1166, %1173
%1175 = load double*, double** %12
%1176 = load i32, i32* %24
%1177 = load i32, i32* %17
%1178 = add nsw i32 %1176, %1177
%1179 = sext i32 %1178 to i64
%1180 = getelementptr inbounds double, double* %1175, i64 %1179
store double %1174, double* %1180
%1181 = load double, double* %21
%1182 = fneg double %1181
%1183 = load double*, double** %13
%1184 = load i32, i32* %23
%1185 = load i32, i32* %17
%1186 = add nsw i32 %1184, %1185
%1187 = sext i32 %1186 to i64
%1188 = getelementptr inbounds double, double* %1183, i64 %1187
%1189 = load double, double* %1188
%1190 = fmul double %1182, %1189
%1191 = load double*, double** %13
%1192 = load i32, i32* %24
%1193 = load i32, i32* %17
%1194 = add nsw i32 %1192, %1193
%1195 = sext i32 %1194 to i64
%1196 = getelementptr inbounds double, double* %1191, i64 %1195
store double %1190, double* %1196
br label %1197
1197: ; preds = %1165
%1198 = load i32, i32* %17
%1199 = add nsw i32 %1198, 1
store i32 %1199, i32* %17
br label %1159
1200: ; preds = %1159
br label %1201
1201: ; preds = %1200, %1089
%1202 = load i32, i32* %20
%1203 = load i32, i32* %19
%1204 = load i32, i32* %9
%1205 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1202, i32 %1203, i32 %1204)
store i32 %1205, i32* %22
%1206 = load i32, i32* %20
%1207 = load i32, i32* %19
%1208 = load i32, i32* %9
%1209 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1206, i32 %1207, i32 %1208)
store i32 %1209, i32* %23
%1210 = load double*, double** %12
store double* %1210, double** %37
%1211 = load double*, double** %13
store double* %1211, double** %38
%1212 = load double*, double** %28
store double* %1212, double** %39
%1213 = load double*, double** %29
store double* %1213, double** %40
%1214 = load i32, i32* %22
%1215 = load double*, double** %39
%1216 = sext i32 %1214 to i64
%1217 = getelementptr inbounds double, double* %1215, i64 %1216
store double* %1217, double** %39
%1218 = load i32, i32* %22
%1219 = load double*, double** %40
%1220 = sext i32 %1218 to i64
%1221 = getelementptr inbounds double, double* %1219, i64 %1220
store double* %1221, double** %40
%1222 = load i32, i32* %23
%1223 = load double*, double** %37
%1224 = sext i32 %1222 to i64
%1225 = getelementptr inbounds double, double* %1223, i64 %1224
store double* %1225, double** %37
%1226 = load i32, i32* %23
%1227 = load double*, double** %38
%1228 = sext i32 %1226 to i64
%1229 = getelementptr inbounds double, double* %1227, i64 %1228
store double* %1229, double** %38
%1230 = load i32, i32* %20
%1231 = load i32, i32* %19
%1232 = load i32, i32* %9
%1233 = load double*, double** %39
%1234 = load double*, double** %34
%1235 = load double*, double** %36
%1236 = load double*, double** %37
%1237 = load double*, double** %35
%1238 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1230, i32 %1231, i32 %1232, double* %1233, double* %1234, double* %1235, double* %1236, double* %1237)
%1239 = load i32, i32* %20
%1240 = load i32, i32* %19
%1241 = load i32, i32* %9
%1242 = load double*, double** %40
%1243 = load double*, double** %34
%1244 = load double*, double** %36
%1245 = load double*, double** %38
%1246 = load double*, double** %35
%1247 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1239, i32 %1240, i32 %1241, double* %1242, double* %1243, double* %1244, double* %1245, double* %1246)
%1248 = load i32, i32* %16
%1249 = icmp eq i32 %1248, 0
br i1 %1249, label %1250, label %1305
1250: ; preds = %1201
%1251 = load i32, i32* %20
%1252 = sub nsw i32 0, %1251
%1253 = load i32, i32* %19
%1254 = sub nsw i32 0, %1253
%1255 = load i32, i32* %9
%1256 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1252, i32 %1254, i32 %1255)
store i32 %1256, i32* %22
%1257 = load i32, i32* %20
%1258 = sub nsw i32 0, %1257
%1259 = load i32, i32* %19
%1260 = sub nsw i32 0, %1259
%1261 = load i32, i32* %9
%1262 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1258, i32 %1260, i32 %1261)
store i32 %1262, i32* %23
%1263 = load double*, double** %12
store double* %1263, double** %37
%1264 = load double*, double** %13
store double* %1264, double** %38
%1265 = load double*, double** %28
store double* %1265, double** %39
%1266 = load double*, double** %29
store double* %1266, double** %40
%1267 = load i32, i32* %22
%1268 = load double*, double** %39
%1269 = sext i32 %1267 to i64
%1270 = getelementptr inbounds double, double* %1268, i64 %1269
store double* %1270, double** %39
%1271 = load i32, i32* %22
%1272 = load double*, double** %40
%1273 = sext i32 %1271 to i64
%1274 = getelementptr inbounds double, double* %1272, i64 %1273
store double* %1274, double** %40
%1275 = load i32, i32* %23
%1276 = load double*, double** %37
%1277 = sext i32 %1275 to i64
%1278 = getelementptr inbounds double, double* %1276, i64 %1277
store double* %1278, double** %37
%1279 = load i32, i32* %23
%1280 = load double*, double** %38
%1281 = sext i32 %1279 to i64
%1282 = getelementptr inbounds double, double* %1280, i64 %1281
store double* %1282, double** %38
%1283 = load i32, i32* %20
%1284 = sub nsw i32 0, %1283
%1285 = load i32, i32* %19
%1286 = sub nsw i32 0, %1285
%1287 = load i32, i32* %9
%1288 = load double*, double** %39
%1289 = load double*, double** %34
%1290 = load double*, double** %36
%1291 = load double*, double** %37
%1292 = load double*, double** %35
%1293 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1284, i32 %1286, i32 %1287, double* %1288, double* %1289, double* %1290, double* %1291, double* %1292)
%1294 = load i32, i32* %20
%1295 = sub nsw i32 0, %1294
%1296 = load i32, i32* %19
%1297 = sub nsw i32 0, %1296
%1298 = load i32, i32* %9
%1299 = load double*, double** %40
%1300 = load double*, double** %34
%1301 = load double*, double** %36
%1302 = load double*, double** %38
%1303 = load double*, double** %35
%1304 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1295, i32 %1297, i32 %1298, double* %1299, double* %1300, double* %1301, double* %1302, double* %1303)
br label %1366
1305: ; preds = %1201
%1306 = load i32, i32* %20
%1307 = load i32, i32* %19
%1308 = load i32, i32* %9
%1309 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1306, i32 %1307, i32 %1308)
store i32 %1309, i32* %23
%1310 = load i32, i32* %20
%1311 = sub nsw i32 0, %1310
%1312 = load i32, i32* %19
%1313 = sub nsw i32 0, %1312
%1314 = load i32, i32* %9
%1315 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1311, i32 %1313, i32 %1314)
store i32 %1315, i32* %24
%1316 = load i32, i32* %20
%1317 = load i32, i32* %19
%1318 = sub nsw i32 %1316, %1317
%1319 = srem i32 %1318, 2
%1320 = icmp eq i32 %1319, 0
br i1 %1320, label %1321, label %1322
1321: ; preds = %1305
store double 1.000000e+00, double* %21
br label %1323
1322: ; preds = %1305
store double -1.000000e+00, double* %21
br label %1323
1323: ; preds = %1322, %1321
store i32 0, i32* %17
br label %1324
1324: ; preds = %1362, %1323
%1325 = load i32, i32* %17
%1326 = load i32, i32* %9
%1327 = load i32, i32* %20
%1328 = sub nsw i32 %1326, %1327
%1329 = icmp slt i32 %1325, %1328
br i1 %1329, label %1330, label %1365
1330: ; preds = %1324
%1331 = load double, double* %21
%1332 = load double*, double** %12
%1333 = load i32, i32* %23
%1334 = load i32, i32* %17
%1335 = add nsw i32 %1333, %1334
%1336 = sext i32 %1335 to i64
%1337 = getelementptr inbounds double, double* %1332, i64 %1336
%1338 = load double, double* %1337
%1339 = fmul double %1331, %1338
%1340 = load double*, double** %12
%1341 = load i32, i32* %24
%1342 = load i32, i32* %17
%1343 = add nsw i32 %1341, %1342
%1344 = sext i32 %1343 to i64
%1345 = getelementptr inbounds double, double* %1340, i64 %1344
store double %1339, double* %1345
%1346 = load double, double* %21
%1347 = fneg double %1346
%1348 = load double*, double** %13
%1349 = load i32, i32* %23
%1350 = load i32, i32* %17
%1351 = add nsw i32 %1349, %1350
%1352 = sext i32 %1351 to i64
%1353 = getelementptr inbounds double, double* %1348, i64 %1352
%1354 = load double, double* %1353
%1355 = fmul double %1347, %1354
%1356 = load double*, double** %13
%1357 = load i32, i32* %24
%1358 = load i32, i32* %17
%1359 = add nsw i32 %1357, %1358
%1360 = sext i32 %1359 to i64
%1361 = getelementptr inbounds double, double* %1356, i64 %1360
store double %1355, double* %1361
br label %1362
1362: ; preds = %1330
%1363 = load i32, i32* %17
%1364 = add nsw i32 %1363, 1
store i32 %1364, i32* %17
br label %1324
1365: ; preds = %1324
br label %1366
1366: ; preds = %1365, %1250
%1367 = load i32, i32* %20
%1368 = load i32, i32* %19
%1369 = sub nsw i32 0, %1368
%1370 = load i32, i32* %9
%1371 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1367, i32 %1369, i32 %1370)
store i32 %1371, i32* %22
%1372 = load i32, i32* %20
%1373 = load i32, i32* %19
%1374 = sub nsw i32 0, %1373
%1375 = load i32, i32* %9
%1376 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1372, i32 %1374, i32 %1375)
store i32 %1376, i32* %23
%1377 = load double*, double** %12
store double* %1377, double** %37
%1378 = load double*, double** %13
store double* %1378, double** %38
%1379 = load double*, double** %28
store double* %1379, double** %39
%1380 = load double*, double** %29
store double* %1380, double** %40
%1381 = load i32, i32* %22
%1382 = load double*, double** %39
%1383 = sext i32 %1381 to i64
%1384 = getelementptr inbounds double, double* %1382, i64 %1383
store double* %1384, double** %39
%1385 = load i32, i32* %22
%1386 = load double*, double** %40
%1387 = sext i32 %1385 to i64
%1388 = getelementptr inbounds double, double* %1386, i64 %1387
store double* %1388, double** %40
%1389 = load i32, i32* %23
%1390 = load double*, double** %37
%1391 = sext i32 %1389 to i64
%1392 = getelementptr inbounds double, double* %1390, i64 %1391
store double* %1392, double** %37
%1393 = load i32, i32* %23
%1394 = load double*, double** %38
%1395 = sext i32 %1393 to i64
%1396 = getelementptr inbounds double, double* %1394, i64 %1395
store double* %1396, double** %38
%1397 = load i32, i32* %19
%1398 = load i32, i32* %20
%1399 = sub nsw i32 0, %1398
%1400 = load i32, i32* %9
%1401 = load double*, double** %39
%1402 = load double*, double** %34
%1403 = load double*, double** %36
%1404 = load double*, double** %37
%1405 = load double*, double** %35
%1406 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1397, i32 %1399, i32 %1400, double* %1401, double* %1402, double* %1403, double* %1404, double* %1405)
%1407 = load i32, i32* %19
%1408 = load i32, i32* %20
%1409 = sub nsw i32 0, %1408
%1410 = load i32, i32* %9
%1411 = load double*, double** %40
%1412 = load double*, double** %34
%1413 = load double*, double** %36
%1414 = load double*, double** %38
%1415 = load double*, double** %35
%1416 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1407, i32 %1409, i32 %1410, double* %1411, double* %1412, double* %1413, double* %1414, double* %1415)
%1417 = load i32, i32* %16
%1418 = icmp eq i32 %1417, 0
br i1 %1418, label %1419, label %1470
1419: ; preds = %1366
%1420 = load i32, i32* %20
%1421 = sub nsw i32 0, %1420
%1422 = load i32, i32* %19
%1423 = load i32, i32* %9
%1424 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1421, i32 %1422, i32 %1423)
store i32 %1424, i32* %22
%1425 = load i32, i32* %20
%1426 = sub nsw i32 0, %1425
%1427 = load i32, i32* %19
%1428 = load i32, i32* %9
%1429 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1426, i32 %1427, i32 %1428)
store i32 %1429, i32* %23
%1430 = load double*, double** %12
store double* %1430, double** %37
%1431 = load double*, double** %13
store double* %1431, double** %38
%1432 = load double*, double** %28
store double* %1432, double** %39
%1433 = load double*, double** %29
store double* %1433, double** %40
%1434 = load i32, i32* %22
%1435 = load double*, double** %39
%1436 = sext i32 %1434 to i64
%1437 = getelementptr inbounds double, double* %1435, i64 %1436
store double* %1437, double** %39
%1438 = load i32, i32* %22
%1439 = load double*, double** %40
%1440 = sext i32 %1438 to i64
%1441 = getelementptr inbounds double, double* %1439, i64 %1440
store double* %1441, double** %40
%1442 = load i32, i32* %23
%1443 = load double*, double** %37
%1444 = sext i32 %1442 to i64
%1445 = getelementptr inbounds double, double* %1443, i64 %1444
store double* %1445, double** %37
%1446 = load i32, i32* %23
%1447 = load double*, double** %38
%1448 = sext i32 %1446 to i64
%1449 = getelementptr inbounds double, double* %1447, i64 %1448
store double* %1449, double** %38
%1450 = load i32, i32* %19
%1451 = sub nsw i32 0, %1450
%1452 = load i32, i32* %20
%1453 = load i32, i32* %9
%1454 = load double*, double** %39
%1455 = load double*, double** %34
%1456 = load double*, double** %36
%1457 = load double*, double** %37
%1458 = load double*, double** %35
%1459 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1451, i32 %1452, i32 %1453, double* %1454, double* %1455, double* %1456, double* %1457, double* %1458)
%1460 = load i32, i32* %19
%1461 = sub nsw i32 0, %1460
%1462 = load i32, i32* %20
%1463 = load i32, i32* %9
%1464 = load double*, double** %40
%1465 = load double*, double** %34
%1466 = load double*, double** %36
%1467 = load double*, double** %38
%1468 = load double*, double** %35
%1469 = call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1461, i32 %1462, i32 %1463, double* %1464, double* %1465, double* %1466, double* %1467, double* %1468)
br label %1531
1470: ; preds = %1366
%1471 = load i32, i32* %20
%1472 = load i32, i32* %19
%1473 = sub nsw i32 0, %1472
%1474 = load i32, i32* %9
%1475 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1471, i32 %1473, i32 %1474)
store i32 %1475, i32* %23
%1476 = load i32, i32* %20
%1477 = sub nsw i32 0, %1476
%1478 = load i32, i32* %19
%1479 = load i32, i32* %9
%1480 = call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1477, i32 %1478, i32 %1479)
store i32 %1480, i32* %24
%1481 = load i32, i32* %20
%1482 = load i32, i32* %19
%1483 = sub nsw i32 %1481, %1482
%1484 = srem i32 %1483, 2
%1485 = icmp eq i32 %1484, 0
br i1 %1485, label %1486, label %1487
1486: ; preds = %1470
store double 1.000000e+00, double* %21
br label %1488
1487: ; preds = %1470
store double -1.000000e+00, double* %21
br label %1488
1488: ; preds = %1487, %1486
store i32 0, i32* %17
br label %1489
1489: ; preds = %1527, %1488
%1490 = load i32, i32* %17
%1491 = load i32, i32* %9
%1492 = load i32, i32* %20
%1493 = sub nsw i32 %1491, %1492
%1494 = icmp slt i32 %1490, %1493
br i1 %1494, label %1495, label %1530
1495: ; preds = %1489
%1496 = load double, double* %21
%1497 = load double*, double** %12
%1498 = load i32, i32* %23
%1499 = load i32, i32* %17
%1500 = add nsw i32 %1498, %1499
%1501 = sext i32 %1500 to i64
%1502 = getelementptr inbounds double, double* %1497, i64 %1501
%1503 = load double, double* %1502
%1504 = fmul double %1496, %1503
%1505 = load double*, double** %12
%1506 = load i32, i32* %24
%1507 = load i32, i32* %17
%1508 = add nsw i32 %1506, %1507
%1509 = sext i32 %1508 to i64
%1510 = getelementptr inbounds double, double* %1505, i64 %1509
store double %1504, double* %1510
%1511 = load double, double* %21
%1512 = fneg double %1511
%1513 = load double*, double** %13
%1514 = load i32, i32* %23
%1515 = load i32, i32* %17
%1516 = add nsw i32 %1514, %1515
%1517 = sext i32 %1516 to i64
%1518 = getelementptr inbounds double, double* %1513, i64 %1517
%1519 = load double, double* %1518
%1520 = fmul double %1512, %1519
%1521 = load double*, double** %13
%1522 = load i32, i32* %24
%1523 = load i32, i32* %17
%1524 = add nsw i32 %1522, %1523
%1525 = sext i32 %1524 to i64
%1526 = getelementptr inbounds double, double* %1521, i64 %1525
store double %1520, double* %1526
br label %1527
1527: ; preds = %1495
%1528 = load i32, i32* %17
%1529 = add nsw i32 %1528, 1
store i32 %1529, i32* %17
br label %1489
1530: ; preds = %1489
br label %1531
1531: ; preds = %1530, %1419
br label %1532
1532: ; preds = %1531
%1533 = load i32, i32* %20
%1534 = add nsw i32 %1533, 1
store i32 %1534, i32* %20
br label %857
1535: ; preds = %857
br label %1536
1536: ; preds = %1535
%1537 = load i32, i32* %19
%1538 = add nsw i32 %1537, 1
store i32 %1538, i32* %19
br label %850
1539: ; preds = %850
%1540 = load double*, double** %12
store double* %1540, double** %37
%1541 = load double*, double** %13
store double* %1541, double** %38
%1542 = load i32, i32* %9
%1543 = load i32, i32* %18
%1544 = mul nsw i32 %1542, %1543
%1545 = sitofp i32 %1544 to double
%1546 = fdiv double 0x400921FB54442D18, %1545
store double %1546, double* %41
store i32 0, i32* %17
br label %1547
1547: ; preds = %1566, %1539
%1548 = load i32, i32* %17
%1549 = load i32, i32* %25
%1550 = icmp slt i32 %1548, %1549
br i1 %1550, label %1551, label %1569
1551: ; preds = %1547
%1552 = load double, double* %41
%1553 = load double*, double** %37
%1554 = load i32, i32* %17
%1555 = sext i32 %1554 to i64
%1556 = getelementptr inbounds double, double* %1553, i64 %1555
%1557 = load double, double* %1556
%1558 = fmul double %1557, %1552
store double %1558, double* %1556
%1559 = load double, double* %41
%1560 = load double*, double** %38
%1561 = load i32, i32* %17
%1562 = sext i32 %1561 to i64
%1563 = getelementptr inbounds double, double* %1560, i64 %1562
%1564 = load double, double* %1563
%1565 = fmul double %1564, %1559
store double %1565, double* %1563
br label %1566
1566: ; preds = %1551
%1567 = load i32, i32* %17
%1568 = add nsw i32 %1567, 1
store i32 %1568, i32* %17
br label %1547
1569: ; preds = %1547
ret void
}

LLVM IR (-O2):
define void @Forward_SO3_Naive_sym(i32 %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %6, i32 %7) {
%9 = shl nsw i32 %0, 1
%10 = mul nsw i32 %9, %9
%11 = mul nsw i32 %10, %9
%12 = sext i32 %11 to i64
%13 = getelementptr inbounds double, double* %5, i64 %12
%14 = getelementptr inbounds double, double* %13, i64 %12
%15 = getelementptr inbounds double, double* %14, i64 %12
%16 = sext i32 %9 to i64
%17 = getelementptr inbounds double, double* %6, i64 %16
%18 = getelementptr inbounds double, double* %17, i64 %16
%19 = getelementptr inbounds double, double* %18, i64 %16
%20 = getelementptr inbounds double, double* %19, i64 %16
%21 = getelementptr inbounds double, double* %20, i64 %16
%22 = mul nsw i32 %9, %0
%23 = sext i32 %22 to i64
%24 = getelementptr inbounds double, double* %21, i64 %23
%25 = tail call i32 (i32, ...) bitcast (i32 (...)* @totalCoeffs_so3 to i32 (i32, ...)*)(i32 %0)
%26 = tail call i32 (i32, double*, ...) bitcast (i32 (...)* @SinEvalPts to i32 (i32, double*, ...)*)(i32 %9, double* %17)
%27 = tail call i32 (i32, double*, ...) bitcast (i32 (...)* @CosEvalPts to i32 (i32, double*, ...)*)(i32 %9, double* %18)
%28 = tail call i32 (i32, double*, ...) bitcast (i32 (...)* @SinEvalPts2 to i32 (i32, double*, ...)*)(i32 %9, double* %19)
%29 = tail call i32 (i32, double*, ...) bitcast (i32 (...)* @CosEvalPts2 to i32 (i32, double*, ...)*)(i32 %9, double* %20)
%30 = tail call i32 (i32, double*, ...) bitcast (i32 (...)* @makeweights2 to i32 (i32, double*, ...)*)(i32 %0, double* %6)
%31 = tail call i32 (double*, double*, double*, double*, i32, i32, double*, ...) bitcast (i32 (...)* @grid_invfourier_so3 to i32 (double*, double*, double*, double*, i32, i32, double*, ...)*)(double* %1, double* %2, double* %5, double* %13, i32 %10, i32 %9, double* %24)
%32 = tail call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %5, double* %14, i32 %10, i32 %9)
%33 = tail call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %13, double* %15, i32 %10, i32 %9)
%34 = tail call i32 (double*, double*, double*, double*, i32, i32, double*, ...) bitcast (i32 (...)* @grid_invfourier_so3 to i32 (double*, double*, double*, double*, i32, i32, double*, ...)*)(double* %14, double* %15, double* %5, double* %13, i32 %10, i32 %9, double* %24)
%35 = tail call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %5, double* %14, i32 %10, i32 %9)
%36 = tail call i32 (double*, double*, i32, i32, ...) bitcast (i32 (...)* @transpose_so3 to i32 (double*, double*, i32, i32, ...)*)(double* %13, double* %15, i32 %10, i32 %9)
%37 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %0, double* %17, double* %18, double* %19, double* %20, double* %21, double* %24)
%38 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 0, i32 %0)
%39 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 0, i32 %0)
%40 = sext i32 %38 to i64
%41 = getelementptr inbounds double, double* %14, i64 %40
%42 = getelementptr inbounds double, double* %15, i64 %40
%43 = sext i32 %39 to i64
%44 = getelementptr inbounds double, double* %3, i64 %43
%45 = getelementptr inbounds double, double* %4, i64 %43
%46 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %0, double* %41, double* %21, double* %6, double* %44, double* %24)
%47 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 0, i32 %0, double* %42, double* %21, double* %6, double* %45, double* %24)
%48 = icmp sgt i32 %0, 1
br i1 %48, label %49, label %1541
49: ; preds = %8
%50 = icmp eq i32 %7, 0
%51 = add i32 %0, -1
br label %56
52: ; preds = %478
br i1 %48, label %53, label %1541
53: ; preds = %52
%54 = icmp eq i32 %7, 0
%55 = add i32 %0, -1
br label %495
56: ; preds = %49, %478
%57 = phi i32 [ 0, %49 ], [ %481, %478 ]
%58 = phi i32 [ %0, %49 ], [ %84, %478 ]
%59 = phi i32 [ 1, %49 ], [ %479, %478 ]
%60 = sub i32 %51, %57
%61 = zext i32 %60 to i64
%62 = sub i32 %51, %57
%63 = and i32 %62, -4
%64 = zext i32 %63 to i64
%65 = add nsw i64 %64, -4
%66 = lshr exact i64 %65, 2
%67 = add nuw nsw i64 %66, 1
%68 = sub i32 %51, %57
%69 = zext i32 %68 to i64
%70 = sub i32 %51, %57
%71 = and i32 %70, -4
%72 = zext i32 %71 to i64
%73 = add nsw i64 %72, -4
%74 = lshr exact i64 %73, 2
%75 = add nuw nsw i64 %74, 1
%76 = sub i32 %51, %57
%77 = zext i32 %76 to i64
%78 = sub i32 %51, %57
%79 = zext i32 %78 to i64
%80 = sub i32 %51, %57
%81 = zext i32 %80 to i64
%82 = sub i32 %51, %57
%83 = zext i32 %82 to i64
%84 = add i32 %58, -1
%85 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %59, i32 %59, i32 %0, double* %17, double* %18, double* %19, double* %20, double* %21, double* %24)
%86 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %59, i32 %0)
%87 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %59, i32 %0)
%88 = sext i32 %86 to i64
%89 = getelementptr inbounds double, double* %14, i64 %88
%90 = getelementptr inbounds double, double* %15, i64 %88
%91 = sext i32 %87 to i64
%92 = getelementptr inbounds double, double* %3, i64 %91
%93 = getelementptr inbounds double, double* %4, i64 %91
%94 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %59, i32 %59, i32 %0, double* %89, double* %21, double* %6, double* %92, double* %24)
%95 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %59, i32 %59, i32 %0, double* %90, double* %21, double* %6, double* %93, double* %24)
br i1 %50, label %96, label %108
96: ; preds = %56
%97 = sub nsw i32 0, %59
%98 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %97, i32 %97, i32 %0)
%99 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %97, i32 %97, i32 %0)
%100 = sext i32 %98 to i64
%101 = getelementptr inbounds double, double* %14, i64 %100
%102 = getelementptr inbounds double, double* %15, i64 %100
%103 = sext i32 %99 to i64
%104 = getelementptr inbounds double, double* %3, i64 %103
%105 = getelementptr inbounds double, double* %4, i64 %103
%106 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %97, i32 %97, i32 %0, double* %101, double* %21, double* %6, double* %104, double* %24)
%107 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %97, i32 %97, i32 %0, double* %102, double* %21, double* %6, double* %105, double* %24)
br label %282
108: ; preds = %56
%109 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %59, i32 %0)
%110 = sub nsw i32 0, %59
%111 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %110, i32 %110, i32 %0)
%112 = icmp slt i32 %59, %0
br i1 %112, label %113, label %282
113: ; preds = %108
%114 = sext i32 %109 to i64
%115 = sext i32 %111 to i64
%116 = zext i32 %84 to i64
%117 = icmp ult i32 %76, 4
br i1 %117, label %239, label %118
118: ; preds = %113
%119 = getelementptr double, double* %3, i64 %115
%120 = add nsw i64 %115, %79
%121 = getelementptr double, double* %3, i64 %120
%122 = getelementptr double, double* %4, i64 %115
%123 = getelementptr double, double* %4, i64 %120
%124 = getelementptr double, double* %3, i64 %114
%125 = add nsw i64 %114, %79
%126 = getelementptr double, double* %3, i64 %125
%127 = getelementptr double, double* %4, i64 %114
%128 = getelementptr double, double* %4, i64 %125
%129 = icmp ult double* %119, %123
%130 = icmp ult double* %122, %121
%131 = and i1 %129, %130
%132 = icmp ult double* %119, %126
%133 = icmp ult double* %124, %121
%134 = and i1 %132, %133
%135 = or i1 %131, %134
%136 = icmp ult double* %119, %128
%137 = icmp ult double* %127, %121
%138 = and i1 %136, %137
%139 = or i1 %135, %138
%140 = icmp ult double* %122, %126
%141 = icmp ult double* %124, %123
%142 = and i1 %140, %141
%143 = or i1 %139, %142
%144 = icmp ult double* %122, %128
%145 = icmp ult double* %127, %123
%146 = and i1 %144, %145
%147 = or i1 %143, %146
br i1 %147, label %239, label %148
148: ; preds = %118
%149 = and i64 %77, 4294967292
%150 = and i64 %75, 1
%151 = icmp eq i64 %73, 0
br i1 %151, label %209, label %152
152: ; preds = %148
%153 = and i64 %75, 9223372036854775806
br label %154
154: ; preds = %154, %152
%155 = phi i64 [ 0, %152 ], [ %206, %154 ]
%156 = phi i64 [ 0, %152 ], [ %207, %154 ]
%157 = add nsw i64 %155, %114
%158 = getelementptr inbounds double, double* %3, i64 %157
%159 = bitcast double* %158 to <2 x double>*
%160 = load <2 x double>, <2 x double>* %159
%161 = getelementptr inbounds double, double* %158, i64 2
%162 = bitcast double* %161 to <2 x double>*
%163 = load <2 x double>, <2 x double>* %162
%164 = add nsw i64 %155, %115
%165 = getelementptr inbounds double, double* %3, i64 %164
%166 = bitcast double* %165 to <2 x double>*
store <2 x double> %160, <2 x double>* %166
%167 = getelementptr inbounds double, double* %165, i64 2
%168 = bitcast double* %167 to <2 x double>*
store <2 x double> %163, <2 x double>* %168
%169 = getelementptr inbounds double, double* %4, i64 %157
%170 = bitcast double* %169 to <2 x double>*
%171 = load <2 x double>, <2 x double>* %170
%172 = getelementptr inbounds double, double* %169, i64 2
%173 = bitcast double* %172 to <2 x double>*
%174 = load <2 x double>, <2 x double>* %173
%175 = fneg <2 x double> %171
%176 = fneg <2 x double> %174
%177 = getelementptr inbounds double, double* %4, i64 %164
%178 = bitcast double* %177 to <2 x double>*
store <2 x double> %175, <2 x double>* %178
%179 = getelementptr inbounds double, double* %177, i64 2
%180 = bitcast double* %179 to <2 x double>*
store <2 x double> %176, <2 x double>* %180
%181 = or i64 %155, 4
%182 = add nsw i64 %181, %114
%183 = getelementptr inbounds double, double* %3, i64 %182
%184 = bitcast double* %183 to <2 x double>*
%185 = load <2 x double>, <2 x double>* %184
%186 = getelementptr inbounds double, double* %183, i64 2
%187 = bitcast double* %186 to <2 x double>*
%188 = load <2 x double>, <2 x double>* %187
%189 = add nsw i64 %181, %115
%190 = getelementptr inbounds double, double* %3, i64 %189
%191 = bitcast double* %190 to <2 x double>*
store <2 x double> %185, <2 x double>* %191
%192 = getelementptr inbounds double, double* %190, i64 2
%193 = bitcast double* %192 to <2 x double>*
store <2 x double> %188, <2 x double>* %193
%194 = getelementptr inbounds double, double* %4, i64 %182
%195 = bitcast double* %194 to <2 x double>*
%196 = load <2 x double>, <2 x double>* %195
%197 = getelementptr inbounds double, double* %194, i64 2
%198 = bitcast double* %197 to <2 x double>*
%199 = load <2 x double>, <2 x double>* %198
%200 = fneg <2 x double> %196
%201 = fneg <2 x double> %199
%202 = getelementptr inbounds double, double* %4, i64 %189
%203 = bitcast double* %202 to <2 x double>*
store <2 x double> %200, <2 x double>* %203
%204 = getelementptr inbounds double, double* %202, i64 2
%205 = bitcast double* %204 to <2 x double>*
store <2 x double> %201, <2 x double>* %205
%206 = add nuw i64 %155, 8
%207 = add i64 %156, 2
%208 = icmp eq i64 %207, %153
br i1 %208, label %209, label %154
209: ; preds = %154, %148
%210 = phi i64 [ 0, %148 ], [ %206, %154 ]
%211 = icmp eq i64 %150, 0
br i1 %211, label %237, label %212
212: ; preds = %209
%213 = add nsw i64 %210, %114
%214 = getelementptr inbounds double, double* %3, i64 %213
%215 = bitcast double* %214 to <2 x double>*
%216 = load <2 x double>, <2 x double>* %215
%217 = getelementptr inbounds double, double* %214, i64 2
%218 = bitcast double* %217 to <2 x double>*
%219 = load <2 x double>, <2 x double>* %218
%220 = add nsw i64 %210, %115
%221 = getelementptr inbounds double, double* %3, i64 %220
%222 = bitcast double* %221 to <2 x double>*
store <2 x double> %216, <2 x double>* %222
%223 = getelementptr inbounds double, double* %221, i64 2
%224 = bitcast double* %223 to <2 x double>*
store <2 x double> %219, <2 x double>* %224
%225 = getelementptr inbounds double, double* %4, i64 %213
%226 = bitcast double* %225 to <2 x double>*
%227 = load <2 x double>, <2 x double>* %226
%228 = getelementptr inbounds double, double* %225, i64 2
%229 = bitcast double* %228 to <2 x double>*
%230 = load <2 x double>, <2 x double>* %229
%231 = fneg <2 x double> %227
%232 = fneg <2 x double> %230
%233 = getelementptr inbounds double, double* %4, i64 %220
%234 = bitcast double* %233 to <2 x double>*
store <2 x double> %231, <2 x double>* %234
%235 = getelementptr inbounds double, double* %233, i64 2
%236 = bitcast double* %235 to <2 x double>*
store <2 x double> %232, <2 x double>* %236
br label %237
237: ; preds = %209, %212
%238 = icmp eq i64 %149, %77
br i1 %238, label %282, label %239
239: ; preds = %118, %113, %237
%240 = phi i64 [ 0, %118 ], [ 0, %113 ], [ %149, %237 ]
%241 = xor i64 %240, -1
%242 = and i64 %69, 1
%243 = icmp eq i64 %242, 0
br i1 %243, label %255, label %244
244: ; preds = %239
%245 = add nsw i64 %240, %114
%246 = getelementptr inbounds double, double* %3, i64 %245
%247 = load double, double* %246
%248 = add nsw i64 %240, %115
%249 = getelementptr inbounds double, double* %3, i64 %248
store double %247, double* %249
%250 = getelementptr inbounds double, double* %4, i64 %245
%251 = load double, double* %250
%252 = fneg double %251
%253 = getelementptr inbounds double, double* %4, i64 %248
store double %252, double* %253
%254 = or i64 %240, 1
br label %255
255: ; preds = %244, %239
%256 = phi i64 [ %240, %239 ], [ %254, %244 ]
%257 = sub nsw i64 0, %69
%258 = icmp eq i64 %241, %257
br i1 %258, label %282, label %259
259: ; preds = %255, %259
%260 = phi i64 [ %280, %259 ], [ %256, %255 ]
%261 = add nsw i64 %260, %114
%262 = getelementptr inbounds double, double* %3, i64 %261
%263 = load double, double* %262
%264 = add nsw i64 %260, %115
%265 = getelementptr inbounds double, double* %3, i64 %264
store double %263, double* %265
%266 = getelementptr inbounds double, double* %4, i64 %261
%267 = load double, double* %266
%268 = fneg double %267
%269 = getelementptr inbounds double, double* %4, i64 %264
store double %268, double* %269
%270 = add nuw nsw i64 %260, 1
%271 = add nsw i64 %270, %114
%272 = getelementptr inbounds double, double* %3, i64 %271
%273 = load double, double* %272
%274 = add nsw i64 %270, %115
%275 = getelementptr inbounds double, double* %3, i64 %274
store double %273, double* %275
%276 = getelementptr inbounds double, double* %4, i64 %271
%277 = load double, double* %276
%278 = fneg double %277
%279 = getelementptr inbounds double, double* %4, i64 %274
store double %278, double* %279
%280 = add nuw nsw i64 %260, 2
%281 = icmp eq i64 %280, %116
br i1 %281, label %282, label %259
282: ; preds = %255, %259, %237, %108, %96
%283 = phi i32 [ %110, %108 ], [ %97, %96 ], [ %110, %237 ], [ %110, %259 ], [ %110, %255 ]
%284 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %283, i32 %59, i32 %0)
%285 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %283, i32 %59, i32 %0)
%286 = sext i32 %284 to i64
%287 = getelementptr inbounds double, double* %14, i64 %286
%288 = getelementptr inbounds double, double* %15, i64 %286
%289 = sext i32 %285 to i64
%290 = getelementptr inbounds double, double* %3, i64 %289
%291 = getelementptr inbounds double, double* %4, i64 %289
%292 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %283, i32 %59, i32 %0, double* %287, double* %21, double* %6, double* %290, double* %24)
%293 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %283, i32 %59, i32 %0, double* %288, double* %21, double* %6, double* %291, double* %24)
br i1 %50, label %294, label %305
294: ; preds = %282
%295 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %283, i32 %0)
%296 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %283, i32 %0)
%297 = sext i32 %295 to i64
%298 = getelementptr inbounds double, double* %14, i64 %297
%299 = getelementptr inbounds double, double* %15, i64 %297
%300 = sext i32 %296 to i64
%301 = getelementptr inbounds double, double* %3, i64 %300
%302 = getelementptr inbounds double, double* %4, i64 %300
%303 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %59, i32 %283, i32 %0, double* %298, double* %21, double* %6, double* %301, double* %24)
%304 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %59, i32 %283, i32 %0, double* %299, double* %21, double* %6, double* %302, double* %24)
br label %478
305: ; preds = %282
%306 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %283, i32 %59, i32 %0)
%307 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %59, i32 %283, i32 %0)
%308 = icmp slt i32 %59, %0
br i1 %308, label %309, label %478
309: ; preds = %305
%310 = sext i32 %306 to i64
%311 = sext i32 %307 to i64
%312 = zext i32 %84 to i64
%313 = icmp ult i32 %80, 4
br i1 %313, label %435, label %314
314: ; preds = %309
%315 = getelementptr double, double* %3, i64 %311
%316 = add nsw i64 %311, %83
%317 = getelementptr double, double* %3, i64 %316
%318 = getelementptr double, double* %4, i64 %311
%319 = getelementptr double, double* %4, i64 %316
%320 = getelementptr double, double* %3, i64 %310
%321 = add nsw i64 %310, %83
%322 = getelementptr double, double* %3, i64 %321
%323 = getelementptr double, double* %4, i64 %310
%324 = getelementptr double, double* %4, i64 %321
%325 = icmp ult double* %315, %319
%326 = icmp ult double* %318, %317
%327 = and i1 %325, %326
%328 = icmp ult double* %315, %322
%329 = icmp ult double* %320, %317
%330 = and i1 %328, %329
%331 = or i1 %327, %330
%332 = icmp ult double* %315, %324
%333 = icmp ult double* %323, %317
%334 = and i1 %332, %333
%335 = or i1 %331, %334
%336 = icmp ult double* %318, %322
%337 = icmp ult double* %320, %319
%338 = and i1 %336, %337
%339 = or i1 %335, %338
%340 = icmp ult double* %318, %324
%341 = icmp ult double* %323, %319
%342 = and i1 %340, %341
%343 = or i1 %339, %342
br i1 %343, label %435, label %344
344: ; preds = %314
%345 = and i64 %81, 4294967292
%346 = and i64 %67, 1
%347 = icmp eq i64 %65, 0
br i1 %347, label %405, label %348
348: ; preds = %344
%349 = and i64 %67, 9223372036854775806
br label %350
350: ; preds = %350, %348
%351 = phi i64 [ 0, %348 ], [ %402, %350 ]
%352 = phi i64 [ 0, %348 ], [ %403, %350 ]
%353 = add nsw i64 %351, %310
%354 = getelementptr inbounds double, double* %3, i64 %353
%355 = bitcast double* %354 to <2 x double>*
%356 = load <2 x double>, <2 x double>* %355
%357 = getelementptr inbounds double, double* %354, i64 2
%358 = bitcast double* %357 to <2 x double>*
%359 = load <2 x double>, <2 x double>* %358
%360 = add nsw i64 %351, %311
%361 = getelementptr inbounds double, double* %3, i64 %360
%362 = bitcast double* %361 to <2 x double>*
store <2 x double> %356, <2 x double>* %362
%363 = getelementptr inbounds double, double* %361, i64 2
%364 = bitcast double* %363 to <2 x double>*
store <2 x double> %359, <2 x double>* %364
%365 = getelementptr inbounds double, double* %4, i64 %353
%366 = bitcast double* %365 to <2 x double>*
%367 = load <2 x double>, <2 x double>* %366
%368 = getelementptr inbounds double, double* %365, i64 2
%369 = bitcast double* %368 to <2 x double>*
%370 = load <2 x double>, <2 x double>* %369
%371 = fneg <2 x double> %367
%372 = fneg <2 x double> %370
%373 = getelementptr inbounds double, double* %4, i64 %360
%374 = bitcast double* %373 to <2 x double>*
store <2 x double> %371, <2 x double>* %374
%375 = getelementptr inbounds double, double* %373, i64 2
%376 = bitcast double* %375 to <2 x double>*
store <2 x double> %372, <2 x double>* %376
%377 = or i64 %351, 4
%378 = add nsw i64 %377, %310
%379 = getelementptr inbounds double, double* %3, i64 %378
%380 = bitcast double* %379 to <2 x double>*
%381 = load <2 x double>, <2 x double>* %380
%382 = getelementptr inbounds double, double* %379, i64 2
%383 = bitcast double* %382 to <2 x double>*
%384 = load <2 x double>, <2 x double>* %383
%385 = add nsw i64 %377, %311
%386 = getelementptr inbounds double, double* %3, i64 %385
%387 = bitcast double* %386 to <2 x double>*
store <2 x double> %381, <2 x double>* %387
%388 = getelementptr inbounds double, double* %386, i64 2
%389 = bitcast double* %388 to <2 x double>*
store <2 x double> %384, <2 x double>* %389
%390 = getelementptr inbounds double, double* %4, i64 %378
%391 = bitcast double* %390 to <2 x double>*
%392 = load <2 x double>, <2 x double>* %391
%393 = getelementptr inbounds double, double* %390, i64 2
%394 = bitcast double* %393 to <2 x double>*
%395 = load <2 x double>, <2 x double>* %394
%396 = fneg <2 x double> %392
%397 = fneg <2 x double> %395
%398 = getelementptr inbounds double, double* %4, i64 %385
%399 = bitcast double* %398 to <2 x double>*
store <2 x double> %396, <2 x double>* %399
%400 = getelementptr inbounds double, double* %398, i64 2
%401 = bitcast double* %400 to <2 x double>*
store <2 x double> %397, <2 x double>* %401
%402 = add nuw i64 %351, 8
%403 = add i64 %352, 2
%404 = icmp eq i64 %403, %349
br i1 %404, label %405, label %350
405: ; preds = %350, %344
%406 = phi i64 [ 0, %344 ], [ %402, %350 ]
%407 = icmp eq i64 %346, 0
br i1 %407, label %433, label %408
408: ; preds = %405
%409 = add nsw i64 %406, %310
%410 = getelementptr inbounds double, double* %3, i64 %409
%411 = bitcast double* %410 to <2 x double>*
%412 = load <2 x double>, <2 x double>* %411
%413 = getelementptr inbounds double, double* %410, i64 2
%414 = bitcast double* %413 to <2 x double>*
%415 = load <2 x double>, <2 x double>* %414
%416 = add nsw i64 %406, %311
%417 = getelementptr inbounds double, double* %3, i64 %416
%418 = bitcast double* %417 to <2 x double>*
store <2 x double> %412, <2 x double>* %418
%419 = getelementptr inbounds double, double* %417, i64 2
%420 = bitcast double* %419 to <2 x double>*
store <2 x double> %415, <2 x double>* %420
%421 = getelementptr inbounds double, double* %4, i64 %409
%422 = bitcast double* %421 to <2 x double>*
%423 = load <2 x double>, <2 x double>* %422
%424 = getelementptr inbounds double, double* %421, i64 2
%425 = bitcast double* %424 to <2 x double>*
%426 = load <2 x double>, <2 x double>* %425
%427 = fneg <2 x double> %423
%428 = fneg <2 x double> %426
%429 = getelementptr inbounds double, double* %4, i64 %416
%430 = bitcast double* %429 to <2 x double>*
store <2 x double> %427, <2 x double>* %430
%431 = getelementptr inbounds double, double* %429, i64 2
%432 = bitcast double* %431 to <2 x double>*
store <2 x double> %428, <2 x double>* %432
br label %433
433: ; preds = %405, %408
%434 = icmp eq i64 %345, %81
br i1 %434, label %478, label %435
435: ; preds = %314, %309, %433
%436 = phi i64 [ 0, %314 ], [ 0, %309 ], [ %345, %433 ]
%437 = xor i64 %436, -1
%438 = and i64 %61, 1
%439 = icmp eq i64 %438, 0
br i1 %439, label %451, label %440
440: ; preds = %435
%441 = add nsw i64 %436, %310
%442 = getelementptr inbounds double, double* %3, i64 %441
%443 = load double, double* %442
%444 = add nsw i64 %436, %311
%445 = getelementptr inbounds double, double* %3, i64 %444
store double %443, double* %445
%446 = getelementptr inbounds double, double* %4, i64 %441
%447 = load double, double* %446
%448 = fneg double %447
%449 = getelementptr inbounds double, double* %4, i64 %444
store double %448, double* %449
%450 = or i64 %436, 1
br label %451
451: ; preds = %440, %435
%452 = phi i64 [ %436, %435 ], [ %450, %440 ]
%453 = sub nsw i64 0, %61
%454 = icmp eq i64 %437, %453
br i1 %454, label %478, label %455
455: ; preds = %451, %455
%456 = phi i64 [ %476, %455 ], [ %452, %451 ]
%457 = add nsw i64 %456, %310
%458 = getelementptr inbounds double, double* %3, i64 %457
%459 = load double, double* %458
%460 = add nsw i64 %456, %311
%461 = getelementptr inbounds double, double* %3, i64 %460
store double %459, double* %461
%462 = getelementptr inbounds double, double* %4, i64 %457
%463 = load double, double* %462
%464 = fneg double %463
%465 = getelementptr inbounds double, double* %4, i64 %460
store double %464, double* %465
%466 = add nuw nsw i64 %456, 1
%467 = add nsw i64 %466, %310
%468 = getelementptr inbounds double, double* %3, i64 %467
%469 = load double, double* %468
%470 = add nsw i64 %466, %311
%471 = getelementptr inbounds double, double* %3, i64 %470
store double %469, double* %471
%472 = getelementptr inbounds double, double* %4, i64 %467
%473 = load double, double* %472
%474 = fneg double %473
%475 = getelementptr inbounds double, double* %4, i64 %470
store double %474, double* %475
%476 = add nuw nsw i64 %456, 2
%477 = icmp eq i64 %476, %312
br i1 %477, label %478, label %455
478: ; preds = %451, %455, %433, %305, %294
%479 = add nuw nsw i32 %59, 1
%480 = icmp eq i32 %479, %0
%481 = add i32 %57, 1
br i1 %480, label %52, label %56
482: ; preds = %880
br i1 %48, label %483, label %1541
483: ; preds = %482
%484 = icmp eq i32 %7, 0
%485 = zext i32 %0 to i64
%486 = zext i32 %0 to i64
%487 = add nsw i64 %485, -2
%488 = add nsw i64 %485, -2
%489 = add nsw i64 %485, -2
%490 = add nsw i64 %485, -2
%491 = add nsw i64 %485, -2
%492 = add nsw i64 %485, -2
%493 = add nsw i64 %485, -2
%494 = add nsw i64 %485, -2
br label %888
495: ; preds = %53, %880
%496 = phi i32 [ 0, %53 ], [ %883, %880 ]
%497 = phi i32 [ %0, %53 ], [ %523, %880 ]
%498 = phi i32 [ 1, %53 ], [ %881, %880 ]
%499 = sub i32 %55, %496
%500 = zext i32 %499 to i64
%501 = sub i32 %55, %496
%502 = and i32 %501, -2
%503 = zext i32 %502 to i64
%504 = add nsw i64 %503, -2
%505 = lshr exact i64 %504, 1
%506 = add nuw i64 %505, 1
%507 = sub i32 %55, %496
%508 = zext i32 %507 to i64
%509 = sub i32 %55, %496
%510 = and i32 %509, -2
%511 = zext i32 %510 to i64
%512 = add nsw i64 %511, -2
%513 = lshr exact i64 %512, 1
%514 = add nuw i64 %513, 1
%515 = sub i32 %55, %496
%516 = zext i32 %515 to i64
%517 = sub i32 %55, %496
%518 = zext i32 %517 to i64
%519 = sub i32 %55, %496
%520 = zext i32 %519 to i64
%521 = sub i32 %55, %496
%522 = zext i32 %521 to i64
%523 = add i32 %497, -1
%524 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %498, i32 0, i32 %0, double* %17, double* %18, double* %19, double* %20, double* %21, double* %24)
%525 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %498, i32 0, i32 %0)
%526 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %498, i32 0, i32 %0)
%527 = sext i32 %525 to i64
%528 = getelementptr inbounds double, double* %14, i64 %527
%529 = getelementptr inbounds double, double* %15, i64 %527
%530 = sext i32 %526 to i64
%531 = getelementptr inbounds double, double* %3, i64 %530
%532 = getelementptr inbounds double, double* %4, i64 %530
%533 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %498, i32 0, i32 %0, double* %528, double* %21, double* %6, double* %531, double* %24)
%534 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %498, i32 0, i32 %0, double* %529, double* %21, double* %6, double* %532, double* %24)
br i1 %54, label %535, label %547
535: ; preds = %495
%536 = sub nsw i32 0, %498
%537 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %536, i32 0, i32 %0)
%538 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %536, i32 0, i32 %0)
%539 = sext i32 %537 to i64
%540 = getelementptr inbounds double, double* %14, i64 %539
%541 = getelementptr inbounds double, double* %15, i64 %539
%542 = sext i32 %538 to i64
%543 = getelementptr inbounds double, double* %3, i64 %542
%544 = getelementptr inbounds double, double* %4, i64 %542
%545 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %536, i32 0, i32 %0, double* %540, double* %21, double* %6, double* %543, double* %24)
%546 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %536, i32 0, i32 %0, double* %541, double* %21, double* %6, double* %544, double* %24)
br label %702
547: ; preds = %495
%548 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %498, i32 0, i32 %0)
%549 = sub nsw i32 0, %498
%550 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %549, i32 0, i32 %0)
%551 = and i32 %498, 1
%552 = icmp eq i32 %551, 0
%553 = select i1 %552, double 1.000000e+00, double -1.000000e+00
%554 = icmp slt i32 %498, %0
br i1 %554, label %555, label %702
555: ; preds = %547
%556 = fneg double %553
%557 = sext i32 %548 to i64
%558 = sext i32 %550 to i64
%559 = zext i32 %523 to i64
%560 = icmp ult i32 %515, 2
br i1 %560, label %656, label %561
561: ; preds = %555
%562 = getelementptr double, double* %3, i64 %558
%563 = add nsw i64 %558, %518
%564 = getelementptr double, double* %3, i64 %563
%565 = getelementptr double, double* %4, i64 %558
%566 = getelementptr double, double* %4, i64 %563
%567 = getelementptr double, double* %3, i64 %557
%568 = add nsw i64 %557, %518
%569 = getelementptr double, double* %3, i64 %568
%570 = getelementptr double, double* %4, i64 %557
%571 = getelementptr double, double* %4, i64 %568
%572 = icmp ult double* %562, %566
%573 = icmp ult double* %565, %564
%574 = and i1 %572, %573
%575 = icmp ult double* %562, %569
%576 = icmp ult double* %567, %564
%577 = and i1 %575, %576
%578 = or i1 %574, %577
%579 = icmp ult double* %562, %571
%580 = icmp ult double* %570, %564
%581 = and i1 %579, %580
%582 = or i1 %578, %581
%583 = icmp ult double* %565, %569
%584 = icmp ult double* %567, %566
%585 = and i1 %583, %584
%586 = or i1 %582, %585
%587 = icmp ult double* %565, %571
%588 = icmp ult double* %570, %566
%589 = and i1 %587, %588
%590 = or i1 %586, %589
br i1 %590, label %656, label %591
591: ; preds = %561
%592 = and i64 %516, 4294967294
%593 = insertelement <2 x double> poison, double %553, i64 0
%594 = shufflevector <2 x double> %593, <2 x double> poison, <2 x i32> zeroinitializer
%595 = insertelement <2 x double> poison, double %556, i64 0
%596 = shufflevector <2 x double> %595, <2 x double> poison, <2 x i32> zeroinitializer
%597 = and i64 %514, 1
%598 = icmp eq i64 %512, 0
br i1 %598, label %636, label %599
599: ; preds = %591
%600 = and i64 %514, -2
br label %601
601: ; preds = %601, %599
%602 = phi i64 [ 0, %599 ], [ %633, %601 ]
%603 = phi i64 [ 0, %599 ], [ %634, %601 ]
%604 = add nsw i64 %602, %557
%605 = getelementptr inbounds double, double* %3, i64 %604
%606 = bitcast double* %605 to <2 x double>*
%607 = load <2 x double>, <2 x double>* %606
%608 = fmul <2 x double> %594, %607
%609 = add nsw i64 %602, %558
%610 = getelementptr inbounds double, double* %3, i64 %609
%611 = bitcast double* %610 to <2 x double>*
store <2 x double> %608, <2 x double>* %611
%612 = getelementptr inbounds double, double* %4, i64 %604
%613 = bitcast double* %612 to <2 x double>*
%614 = load <2 x double>, <2 x double>* %613
%615 = fmul <2 x double> %614, %596
%616 = getelementptr inbounds double, double* %4, i64 %609
%617 = bitcast double* %616 to <2 x double>*
store <2 x double> %615, <2 x double>* %617
%618 = or i64 %602, 2
%619 = add nsw i64 %618, %557
%620 = getelementptr inbounds double, double* %3, i64 %619
%621 = bitcast double* %620 to <2 x double>*
%622 = load <2 x double>, <2 x double>* %621
%623 = fmul <2 x double> %594, %622
%624 = add nsw i64 %618, %558
%625 = getelementptr inbounds double, double* %3, i64 %624
%626 = bitcast double* %625 to <2 x double>*
store <2 x double> %623, <2 x double>* %626
%627 = getelementptr inbounds double, double* %4, i64 %619
%628 = bitcast double* %627 to <2 x double>*
%629 = load <2 x double>, <2 x double>* %628
%630 = fmul <2 x double> %629, %596
%631 = getelementptr inbounds double, double* %4, i64 %624
%632 = bitcast double* %631 to <2 x double>*
store <2 x double> %630, <2 x double>* %632
%633 = add nuw i64 %602, 4
%634 = add nuw i64 %603, 2
%635 = icmp eq i64 %634, %600
br i1 %635, label %636, label %601
636: ; preds = %601, %591
%637 = phi i64 [ 0, %591 ], [ %633, %601 ]
%638 = icmp eq i64 %597, 0
br i1 %638, label %654, label %639
639: ; preds = %636
%640 = add nsw i64 %637, %557
%641 = getelementptr inbounds double, double* %3, i64 %640
%642 = bitcast double* %641 to <2 x double>*
%643 = load <2 x double>, <2 x double>* %642
%644 = fmul <2 x double> %594, %643
%645 = add nsw i64 %637, %558
%646 = getelementptr inbounds double, double* %3, i64 %645
%647 = bitcast double* %646 to <2 x double>*
store <2 x double> %644, <2 x double>* %647
%648 = getelementptr inbounds double, double* %4, i64 %640
%649 = bitcast double* %648 to <2 x double>*
%650 = load <2 x double>, <2 x double>* %649
%651 = fmul <2 x double> %650, %596
%652 = getelementptr inbounds double, double* %4, i64 %645
%653 = bitcast double* %652 to <2 x double>*
store <2 x double> %651, <2 x double>* %653
br label %654
654: ; preds = %636, %639
%655 = icmp eq i64 %592, %516
br i1 %655, label %702, label %656
656: ; preds = %561, %555, %654
%657 = phi i64 [ 0, %561 ], [ 0, %555 ], [ %592, %654 ]
%658 = xor i64 %657, -1
%659 = and i64 %508, 1
%660 = icmp eq i64 %659, 0
br i1 %660, label %673, label %661
661: ; preds = %656
%662 = add nsw i64 %657, %557
%663 = getelementptr inbounds double, double* %3, i64 %662
%664 = load double, double* %663
%665 = fmul double %553, %664
%666 = add nsw i64 %657, %558
%667 = getelementptr inbounds double, double* %3, i64 %666
store double %665, double* %667
%668 = getelementptr inbounds double, double* %4, i64 %662
%669 = load double, double* %668
%670 = fmul double %669, %556
%671 = getelementptr inbounds double, double* %4, i64 %666
store double %670, double* %671
%672 = or i64 %657, 1
br label %673
673: ; preds = %661, %656
%674 = phi i64 [ %657, %656 ], [ %672, %661 ]
%675 = sub nsw i64 0, %508
%676 = icmp eq i64 %658, %675
br i1 %676, label %702, label %677
677: ; preds = %673, %677
%678 = phi i64 [ %700, %677 ], [ %674, %673 ]
%679 = add nsw i64 %678, %557
%680 = getelementptr inbounds double, double* %3, i64 %679
%681 = load double, double* %680
%682 = fmul double %553, %681
%683 = add nsw i64 %678, %558
%684 = getelementptr inbounds double, double* %3, i64 %683
store double %682, double* %684
%685 = getelementptr inbounds double, double* %4, i64 %679
%686 = load double, double* %685
%687 = fmul double %686, %556
%688 = getelementptr inbounds double, double* %4, i64 %683
store double %687, double* %688
%689 = add nuw nsw i64 %678, 1
%690 = add nsw i64 %689, %557
%691 = getelementptr inbounds double, double* %3, i64 %690
%692 = load double, double* %691
%693 = fmul double %553, %692
%694 = add nsw i64 %689, %558
%695 = getelementptr inbounds double, double* %3, i64 %694
store double %693, double* %695
%696 = getelementptr inbounds double, double* %4, i64 %690
%697 = load double, double* %696
%698 = fmul double %697, %556
%699 = getelementptr inbounds double, double* %4, i64 %694
store double %698, double* %699
%700 = add nuw nsw i64 %678, 2
%701 = icmp eq i64 %700, %559
br i1 %701, label %702, label %677
702: ; preds = %673, %677, %654, %547, %535
%703 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %498, i32 %0)
%704 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %498, i32 %0)
%705 = sext i32 %703 to i64
%706 = getelementptr inbounds double, double* %14, i64 %705
%707 = getelementptr inbounds double, double* %15, i64 %705
%708 = sext i32 %704 to i64
%709 = getelementptr inbounds double, double* %3, i64 %708
%710 = getelementptr inbounds double, double* %4, i64 %708
%711 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %498, i32 %0, double* %706, double* %21, double* %6, double* %709, double* %24)
%712 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %498, i32 %0, double* %707, double* %21, double* %6, double* %710, double* %24)
br i1 %54, label %713, label %725
713: ; preds = %702
%714 = sub nsw i32 0, %498
%715 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %714, i32 %0)
%716 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %714, i32 %0)
%717 = sext i32 %715 to i64
%718 = getelementptr inbounds double, double* %14, i64 %717
%719 = getelementptr inbounds double, double* %15, i64 %717
%720 = sext i32 %716 to i64
%721 = getelementptr inbounds double, double* %3, i64 %720
%722 = getelementptr inbounds double, double* %4, i64 %720
%723 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %714, i32 %0, double* %718, double* %21, double* %6, double* %721, double* %24)
%724 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 0, i32 %714, i32 %0, double* %719, double* %21, double* %6, double* %722, double* %24)
br label %880
725: ; preds = %702
%726 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %498, i32 %0)
%727 = sub nsw i32 0, %498
%728 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 0, i32 %727, i32 %0)
%729 = and i32 %498, 1
%730 = icmp eq i32 %729, 0
%731 = select i1 %730, double 1.000000e+00, double -1.000000e+00
%732 = icmp slt i32 %498, %0
br i1 %732, label %733, label %880
733: ; preds = %725
%734 = fneg double %731
%735 = sext i32 %726 to i64
%736 = sext i32 %728 to i64
%737 = zext i32 %523 to i64
%738 = icmp ult i32 %519, 2
br i1 %738, label %834, label %739
739: ; preds = %733
%740 = getelementptr double, double* %3, i64 %736
%741 = add nsw i64 %736, %522
%742 = getelementptr double, double* %3, i64 %741
%743 = getelementptr double, double* %4, i64 %736
%744 = getelementptr double, double* %4, i64 %741
%745 = getelementptr double, double* %3, i64 %735
%746 = add nsw i64 %735, %522
%747 = getelementptr double, double* %3, i64 %746
%748 = getelementptr double, double* %4, i64 %735
%749 = getelementptr double, double* %4, i64 %746
%750 = icmp ult double* %740, %744
%751 = icmp ult double* %743, %742
%752 = and i1 %750, %751
%753 = icmp ult double* %740, %747
%754 = icmp ult double* %745, %742
%755 = and i1 %753, %754
%756 = or i1 %752, %755
%757 = icmp ult double* %740, %749
%758 = icmp ult double* %748, %742
%759 = and i1 %757, %758
%760 = or i1 %756, %759
%761 = icmp ult double* %743, %747
%762 = icmp ult double* %745, %744
%763 = and i1 %761, %762
%764 = or i1 %760, %763
%765 = icmp ult double* %743, %749
%766 = icmp ult double* %748, %744
%767 = and i1 %765, %766
%768 = or i1 %764, %767
br i1 %768, label %834, label %769
769: ; preds = %739
%770 = and i64 %520, 4294967294
%771 = insertelement <2 x double> poison, double %731, i64 0
%772 = shufflevector <2 x double> %771, <2 x double> poison, <2 x i32> zeroinitializer
%773 = insertelement <2 x double> poison, double %734, i64 0
%774 = shufflevector <2 x double> %773, <2 x double> poison, <2 x i32> zeroinitializer
%775 = and i64 %506, 1
%776 = icmp eq i64 %504, 0
br i1 %776, label %814, label %777
777: ; preds = %769
%778 = and i64 %506, -2
br label %779
779: ; preds = %779, %777
%780 = phi i64 [ 0, %777 ], [ %811, %779 ]
%781 = phi i64 [ 0, %777 ], [ %812, %779 ]
%782 = add nsw i64 %780, %735
%783 = getelementptr inbounds double, double* %3, i64 %782
%784 = bitcast double* %783 to <2 x double>*
%785 = load <2 x double>, <2 x double>* %784
%786 = fmul <2 x double> %772, %785
%787 = add nsw i64 %780, %736
%788 = getelementptr inbounds double, double* %3, i64 %787
%789 = bitcast double* %788 to <2 x double>*
store <2 x double> %786, <2 x double>* %789
%790 = getelementptr inbounds double, double* %4, i64 %782
%791 = bitcast double* %790 to <2 x double>*
%792 = load <2 x double>, <2 x double>* %791
%793 = fmul <2 x double> %792, %774
%794 = getelementptr inbounds double, double* %4, i64 %787
%795 = bitcast double* %794 to <2 x double>*
store <2 x double> %793, <2 x double>* %795
%796 = or i64 %780, 2
%797 = add nsw i64 %796, %735
%798 = getelementptr inbounds double, double* %3, i64 %797
%799 = bitcast double* %798 to <2 x double>*
%800 = load <2 x double>, <2 x double>* %799
%801 = fmul <2 x double> %772, %800
%802 = add nsw i64 %796, %736
%803 = getelementptr inbounds double, double* %3, i64 %802
%804 = bitcast double* %803 to <2 x double>*
store <2 x double> %801, <2 x double>* %804
%805 = getelementptr inbounds double, double* %4, i64 %797
%806 = bitcast double* %805 to <2 x double>*
%807 = load <2 x double>, <2 x double>* %806
%808 = fmul <2 x double> %807, %774
%809 = getelementptr inbounds double, double* %4, i64 %802
%810 = bitcast double* %809 to <2 x double>*
store <2 x double> %808, <2 x double>* %810
%811 = add nuw i64 %780, 4
%812 = add nuw i64 %781, 2
%813 = icmp eq i64 %812, %778
br i1 %813, label %814, label %779
814: ; preds = %779, %769
%815 = phi i64 [ 0, %769 ], [ %811, %779 ]
%816 = icmp eq i64 %775, 0
br i1 %816, label %832, label %817
817: ; preds = %814
%818 = add nsw i64 %815, %735
%819 = getelementptr inbounds double, double* %3, i64 %818
%820 = bitcast double* %819 to <2 x double>*
%821 = load <2 x double>, <2 x double>* %820
%822 = fmul <2 x double> %772, %821
%823 = add nsw i64 %815, %736
%824 = getelementptr inbounds double, double* %3, i64 %823
%825 = bitcast double* %824 to <2 x double>*
store <2 x double> %822, <2 x double>* %825
%826 = getelementptr inbounds double, double* %4, i64 %818
%827 = bitcast double* %826 to <2 x double>*
%828 = load <2 x double>, <2 x double>* %827
%829 = fmul <2 x double> %828, %774
%830 = getelementptr inbounds double, double* %4, i64 %823
%831 = bitcast double* %830 to <2 x double>*
store <2 x double> %829, <2 x double>* %831
br label %832
832: ; preds = %814, %817
%833 = icmp eq i64 %770, %520
br i1 %833, label %880, label %834
834: ; preds = %739, %733, %832
%835 = phi i64 [ 0, %739 ], [ 0, %733 ], [ %770, %832 ]
%836 = xor i64 %835, -1
%837 = and i64 %500, 1
%838 = icmp eq i64 %837, 0
br i1 %838, label %851, label %839
839: ; preds = %834
%840 = add nsw i64 %835, %735
%841 = getelementptr inbounds double, double* %3, i64 %840
%842 = load double, double* %841
%843 = fmul double %731, %842
%844 = add nsw i64 %835, %736
%845 = getelementptr inbounds double, double* %3, i64 %844
store double %843, double* %845
%846 = getelementptr inbounds double, double* %4, i64 %840
%847 = load double, double* %846
%848 = fmul double %847, %734
%849 = getelementptr inbounds double, double* %4, i64 %844
store double %848, double* %849
%850 = or i64 %835, 1
br label %851
851: ; preds = %839, %834
%852 = phi i64 [ %835, %834 ], [ %850, %839 ]
%853 = sub nsw i64 0, %500
%854 = icmp eq i64 %836, %853
br i1 %854, label %880, label %855
855: ; preds = %851, %855
%856 = phi i64 [ %878, %855 ], [ %852, %851 ]
%857 = add nsw i64 %856, %735
%858 = getelementptr inbounds double, double* %3, i64 %857
%859 = load double, double* %858
%860 = fmul double %731, %859
%861 = add nsw i64 %856, %736
%862 = getelementptr inbounds double, double* %3, i64 %861
store double %860, double* %862
%863 = getelementptr inbounds double, double* %4, i64 %857
%864 = load double, double* %863
%865 = fmul double %864, %734
%866 = getelementptr inbounds double, double* %4, i64 %861
store double %865, double* %866
%867 = add nuw nsw i64 %856, 1
%868 = add nsw i64 %867, %735
%869 = getelementptr inbounds double, double* %3, i64 %868
%870 = load double, double* %869
%871 = fmul double %731, %870
%872 = add nsw i64 %867, %736
%873 = getelementptr inbounds double, double* %3, i64 %872
store double %871, double* %873
%874 = getelementptr inbounds double, double* %4, i64 %868
%875 = load double, double* %874
%876 = fmul double %875, %734
%877 = getelementptr inbounds double, double* %4, i64 %872
store double %876, double* %877
%878 = add nuw nsw i64 %856, 2
%879 = icmp eq i64 %878, %737
br i1 %879, label %880, label %855
880: ; preds = %851, %855, %832, %725, %713
%881 = add nuw nsw i32 %498, 1
%882 = icmp eq i32 %881, %0
%883 = add i32 %496, 1
br i1 %882, label %482, label %495
884: ; preds = %1537, %888
%885 = add nuw nsw i64 %891, 1
%886 = icmp eq i64 %892, %486
%887 = add i64 %889, 1
br i1 %886, label %1541, label %888
888: ; preds = %483, %884
%889 = phi i64 [ 0, %483 ], [ %887, %884 ]
%890 = phi i64 [ 1, %483 ], [ %892, %884 ]
%891 = phi i64 [ 2, %483 ], [ %885, %884 ]
%892 = add nuw nsw i64 %890, 1
%893 = icmp ult i64 %892, %485
br i1 %893, label %894, label %884
894: ; preds = %888
%895 = sub nsw i64 0, %890
%896 = trunc i64 %890 to i32
%897 = trunc i64 %895 to i32
%898 = trunc i64 %895 to i32
%899 = trunc i64 %895 to i32
%900 = trunc i64 %895 to i32
%901 = trunc i64 %895 to i32
%902 = trunc i64 %895 to i32
br label %903
903: ; preds = %894, %1537
%904 = phi i64 [ 0, %894 ], [ %1540, %1537 ]
%905 = phi i64 [ %891, %894 ], [ %1538, %1537 ]
%906 = add i64 %889, %904
%907 = sub i64 %488, %906
%908 = add i64 %907, -2
%909 = lshr i64 %908, 1
%910 = add nuw i64 %909, 1
%911 = add i64 %889, %904
%912 = sub i64 %488, %911
%913 = add i64 %912, -2
%914 = lshr i64 %913, 1
%915 = add nuw i64 %914, 1
%916 = add i64 %889, %904
%917 = sub i64 %488, %916
%918 = add i64 %917, -2
%919 = lshr i64 %918, 1
%920 = add nuw i64 %919, 1
%921 = add i64 %889, %904
%922 = sub i64 %488, %921
%923 = add i64 %922, -2
%924 = lshr i64 %923, 1
%925 = add nuw i64 %924, 1
%926 = add i64 %889, %904
%927 = sub i64 %494, %926
%928 = add i64 %889, %904
%929 = sub i64 %493, %928
%930 = getelementptr double, double* %3, i64 %929
%931 = getelementptr double, double* %4, i64 %929
%932 = add i64 %889, %904
%933 = sub i64 %492, %932
%934 = add i64 %889, %904
%935 = sub i64 %491, %934
%936 = getelementptr double, double* %3, i64 %935
%937 = getelementptr double, double* %4, i64 %935
%938 = add i64 %889, %904
%939 = sub i64 %490, %938
%940 = add i64 %889, %904
%941 = sub i64 %489, %940
%942 = getelementptr double, double* %3, i64 %941
%943 = getelementptr double, double* %4, i64 %941
%944 = add i64 %889, %904
%945 = sub i64 %488, %944
%946 = add i64 %889, %904
%947 = sub i64 %487, %946
%948 = getelementptr double, double* %3, i64 %947
%949 = getelementptr double, double* %4, i64 %947
%950 = trunc i64 %905 to i32
%951 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @genWig_L2 to i32 (i32, i32, i32, double*, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %950, i32 %0, double* %17, double* %18, double* %19, double* %20, double* %21, double* %24)
%952 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %950, i32 %0)
%953 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %950, i32 %0)
%954 = sext i32 %952 to i64
%955 = getelementptr inbounds double, double* %14, i64 %954
%956 = getelementptr inbounds double, double* %15, i64 %954
%957 = sext i32 %953 to i64
%958 = getelementptr inbounds double, double* %3, i64 %957
%959 = getelementptr inbounds double, double* %4, i64 %957
%960 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %950, i32 %0, double* %955, double* %21, double* %6, double* %958, double* %24)
%961 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %950, i32 %0, double* %956, double* %21, double* %6, double* %959, double* %24)
br i1 %484, label %962, label %975
962: ; preds = %903
%963 = trunc i64 %905 to i32
%964 = sub i32 0, %963
%965 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %898, i32 %964, i32 %0)
%966 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %898, i32 %964, i32 %0)
%967 = sext i32 %965 to i64
%968 = getelementptr inbounds double, double* %14, i64 %967
%969 = getelementptr inbounds double, double* %15, i64 %967
%970 = sext i32 %966 to i64
%971 = getelementptr inbounds double, double* %3, i64 %970
%972 = getelementptr inbounds double, double* %4, i64 %970
%973 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %898, i32 %964, i32 %0, double* %968, double* %21, double* %6, double* %971, double* %24)
%974 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %898, i32 %964, i32 %0, double* %969, double* %21, double* %6, double* %972, double* %24)
br label %1100
975: ; preds = %903
%976 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %950, i32 %0)
%977 = trunc i64 %905 to i32
%978 = sub i32 0, %977
%979 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %897, i32 %978, i32 %0)
%980 = sub nuw nsw i64 %905, %890
%981 = and i64 %980, 1
%982 = icmp eq i64 %981, 0
%983 = select i1 %982, double 1.000000e+00, double -1.000000e+00
%984 = sub nsw i64 %485, %905
%985 = icmp sgt i64 %984, 0
br i1 %985, label %986, label %1100
986: ; preds = %975
%987 = fneg double %983
%988 = sext i32 %976 to i64
%989 = sext i32 %979 to i64
%990 = icmp ult i64 %927, 2
br i1 %990, label %1084, label %991
991: ; preds = %986
%992 = getelementptr double, double* %3, i64 %989
%993 = getelementptr double, double* %930, i64 %989
%994 = getelementptr double, double* %4, i64 %989
%995 = getelementptr double, double* %931, i64 %989
%996 = getelementptr double, double* %3, i64 %988
%997 = getelementptr double, double* %930, i64 %988
%998 = getelementptr double, double* %4, i64 %988
%999 = getelementptr double, double* %931, i64 %988
%1000 = icmp ugt double* %931, %3
%1001 = icmp ugt double* %930, %4
%1002 = and i1 %1000, %1001
%1003 = icmp ult double* %992, %997
%1004 = icmp ult double* %996, %993
%1005 = and i1 %1003, %1004
%1006 = or i1 %1002, %1005
%1007 = icmp ult double* %992, %999
%1008 = icmp ult double* %998, %993
%1009 = and i1 %1007, %1008
%1010 = or i1 %1006, %1009
%1011 = icmp ult double* %994, %997
%1012 = icmp ult double* %996, %995
%1013 = and i1 %1011, %1012
%1014 = or i1 %1010, %1013
%1015 = icmp ult double* %994, %999
%1016 = icmp ult double* %998, %995
%1017 = and i1 %1015, %1016
%1018 = or i1 %1014, %1017
br i1 %1018, label %1084, label %1019
1019: ; preds = %991
%1020 = and i64 %927, -2
%1021 = insertelement <2 x double> poison, double %983, i64 0
%1022 = shufflevector <2 x double> %1021, <2 x double> poison, <2 x i32> zeroinitializer
%1023 = insertelement <2 x double> poison, double %987, i64 0
%1024 = shufflevector <2 x double> %1023, <2 x double> poison, <2 x i32> zeroinitializer
%1025 = and i64 %925, 1
%1026 = icmp ult i64 %923, 2
br i1 %1026, label %1064, label %1027
1027: ; preds = %1019
%1028 = and i64 %925, -2
br label %1029
1029: ; preds = %1029, %1027
%1030 = phi i64 [ 0, %1027 ], [ %1061, %1029 ]
%1031 = phi i64 [ 0, %1027 ], [ %1062, %1029 ]
%1032 = add nsw i64 %1030, %988
%1033 = getelementptr inbounds double, double* %3, i64 %1032
%1034 = bitcast double* %1033 to <2 x double>*
%1035 = load <2 x double>, <2 x double>* %1034
%1036 = fmul <2 x double> %1022, %1035
%1037 = add nsw i64 %1030, %989
%1038 = getelementptr inbounds double, double* %3, i64 %1037
%1039 = bitcast double* %1038 to <2 x double>*
store <2 x double> %1036, <2 x double>* %1039
%1040 = getelementptr inbounds double, double* %4, i64 %1032
%1041 = bitcast double* %1040 to <2 x double>*
%1042 = load <2 x double>, <2 x double>* %1041
%1043 = fmul <2 x double> %1042, %1024
%1044 = getelementptr inbounds double, double* %4, i64 %1037
%1045 = bitcast double* %1044 to <2 x double>*
store <2 x double> %1043, <2 x double>* %1045
%1046 = or i64 %1030, 2
%1047 = add nsw i64 %1046, %988
%1048 = getelementptr inbounds double, double* %3, i64 %1047
%1049 = bitcast double* %1048 to <2 x double>*
%1050 = load <2 x double>, <2 x double>* %1049
%1051 = fmul <2 x double> %1022, %1050
%1052 = add nsw i64 %1046, %989
%1053 = getelementptr inbounds double, double* %3, i64 %1052
%1054 = bitcast double* %1053 to <2 x double>*
store <2 x double> %1051, <2 x double>* %1054
%1055 = getelementptr inbounds double, double* %4, i64 %1047
%1056 = bitcast double* %1055 to <2 x double>*
%1057 = load <2 x double>, <2 x double>* %1056
%1058 = fmul <2 x double> %1057, %1024
%1059 = getelementptr inbounds double, double* %4, i64 %1052
%1060 = bitcast double* %1059 to <2 x double>*
store <2 x double> %1058, <2 x double>* %1060
%1061 = add nuw i64 %1030, 4
%1062 = add nuw i64 %1031, 2
%1063 = icmp eq i64 %1062, %1028
br i1 %1063, label %1064, label %1029
1064: ; preds = %1029, %1019
%1065 = phi i64 [ 0, %1019 ], [ %1061, %1029 ]
%1066 = icmp eq i64 %1025, 0
br i1 %1066, label %1082, label %1067
1067: ; preds = %1064
%1068 = add nsw i64 %1065, %988
%1069 = getelementptr inbounds double, double* %3, i64 %1068
%1070 = bitcast double* %1069 to <2 x double>*
%1071 = load <2 x double>, <2 x double>* %1070
%1072 = fmul <2 x double> %1022, %1071
%1073 = add nsw i64 %1065, %989
%1074 = getelementptr inbounds double, double* %3, i64 %1073
%1075 = bitcast double* %1074 to <2 x double>*
store <2 x double> %1072, <2 x double>* %1075
%1076 = getelementptr inbounds double, double* %4, i64 %1068
%1077 = bitcast double* %1076 to <2 x double>*
%1078 = load <2 x double>, <2 x double>* %1077
%1079 = fmul <2 x double> %1078, %1024
%1080 = getelementptr inbounds double, double* %4, i64 %1073
%1081 = bitcast double* %1080 to <2 x double>*
store <2 x double> %1079, <2 x double>* %1081
br label %1082
1082: ; preds = %1064, %1067
%1083 = icmp eq i64 %927, %1020
br i1 %1083, label %1100, label %1084
1084: ; preds = %991, %986, %1082
%1085 = phi i64 [ 0, %991 ], [ 0, %986 ], [ %1020, %1082 ]
br label %1086
1086: ; preds = %1084, %1086
%1087 = phi i64 [ %1098, %1086 ], [ %1085, %1084 ]
%1088 = add nsw i64 %1087, %988
%1089 = getelementptr inbounds double, double* %3, i64 %1088
%1090 = load double, double* %1089
%1091 = fmul double %983, %1090
%1092 = add nsw i64 %1087, %989
%1093 = getelementptr inbounds double, double* %3, i64 %1092
store double %1091, double* %1093
%1094 = getelementptr inbounds double, double* %4, i64 %1088
%1095 = load double, double* %1094
%1096 = fmul double %1095, %987
%1097 = getelementptr inbounds double, double* %4, i64 %1092
store double %1096, double* %1097
%1098 = add nuw nsw i64 %1087, 1
%1099 = icmp slt i64 %1098, %984
br i1 %1099, label %1086, label %1100
1100: ; preds = %1086, %1082, %975, %962
%1101 = phi i32 [ %978, %975 ], [ %964, %962 ], [ %978, %1082 ], [ %978, %1086 ]
%1102 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %1101, i32 %0)
%1103 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %1101, i32 %0)
%1104 = sext i32 %1102 to i64
%1105 = getelementptr inbounds double, double* %14, i64 %1104
%1106 = getelementptr inbounds double, double* %15, i64 %1104
%1107 = sext i32 %1103 to i64
%1108 = getelementptr inbounds double, double* %3, i64 %1107
%1109 = getelementptr inbounds double, double* %4, i64 %1107
%1110 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %1101, i32 %0, double* %1105, double* %21, double* %6, double* %1108, double* %24)
%1111 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %1101, i32 %0, double* %1106, double* %21, double* %6, double* %1109, double* %24)
br i1 %484, label %1112, label %1123
1112: ; preds = %1100
%1113 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %900, i32 %950, i32 %0)
%1114 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %900, i32 %950, i32 %0)
%1115 = sext i32 %1113 to i64
%1116 = getelementptr inbounds double, double* %14, i64 %1115
%1117 = getelementptr inbounds double, double* %15, i64 %1115
%1118 = sext i32 %1114 to i64
%1119 = getelementptr inbounds double, double* %3, i64 %1118
%1120 = getelementptr inbounds double, double* %4, i64 %1118
%1121 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %900, i32 %950, i32 %0, double* %1116, double* %21, double* %6, double* %1119, double* %24)
%1122 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %900, i32 %950, i32 %0, double* %1117, double* %21, double* %6, double* %1120, double* %24)
br label %1246
1123: ; preds = %1100
%1124 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %896, i32 %1101, i32 %0)
%1125 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %899, i32 %950, i32 %0)
%1126 = sub nuw nsw i64 %905, %890
%1127 = and i64 %1126, 1
%1128 = icmp eq i64 %1127, 0
%1129 = select i1 %1128, double 1.000000e+00, double -1.000000e+00
%1130 = sub nsw i64 %485, %905
%1131 = icmp sgt i64 %1130, 0
br i1 %1131, label %1132, label %1246
1132: ; preds = %1123
%1133 = fneg double %1129
%1134 = sext i32 %1124 to i64
%1135 = sext i32 %1125 to i64
%1136 = icmp ult i64 %933, 2
br i1 %1136, label %1230, label %1137
1137: ; preds = %1132
%1138 = getelementptr double, double* %3, i64 %1135
%1139 = getelementptr double, double* %936, i64 %1135
%1140 = getelementptr double, double* %4, i64 %1135
%1141 = getelementptr double, double* %937, i64 %1135
%1142 = getelementptr double, double* %3, i64 %1134
%1143 = getelementptr double, double* %936, i64 %1134
%1144 = getelementptr double, double* %4, i64 %1134
%1145 = getelementptr double, double* %937, i64 %1134
%1146 = icmp ugt double* %937, %3
%1147 = icmp ugt double* %936, %4
%1148 = and i1 %1146, %1147
%1149 = icmp ult double* %1138, %1143
%1150 = icmp ult double* %1142, %1139
%1151 = and i1 %1149, %1150
%1152 = or i1 %1148, %1151
%1153 = icmp ult double* %1138, %1145
%1154 = icmp ult double* %1144, %1139
%1155 = and i1 %1153, %1154
%1156 = or i1 %1152, %1155
%1157 = icmp ult double* %1140, %1143
%1158 = icmp ult double* %1142, %1141
%1159 = and i1 %1157, %1158
%1160 = or i1 %1156, %1159
%1161 = icmp ult double* %1140, %1145
%1162 = icmp ult double* %1144, %1141
%1163 = and i1 %1161, %1162
%1164 = or i1 %1160, %1163
br i1 %1164, label %1230, label %1165
1165: ; preds = %1137
%1166 = and i64 %933, -2
%1167 = insertelement <2 x double> poison, double %1129, i64 0
%1168 = shufflevector <2 x double> %1167, <2 x double> poison, <2 x i32> zeroinitializer
%1169 = insertelement <2 x double> poison, double %1133, i64 0
%1170 = shufflevector <2 x double> %1169, <2 x double> poison, <2 x i32> zeroinitializer
%1171 = and i64 %920, 1
%1172 = icmp ult i64 %918, 2
br i1 %1172, label %1210, label %1173
1173: ; preds = %1165
%1174 = and i64 %920, -2
br label %1175
1175: ; preds = %1175, %1173
%1176 = phi i64 [ 0, %1173 ], [ %1207, %1175 ]
%1177 = phi i64 [ 0, %1173 ], [ %1208, %1175 ]
%1178 = add nsw i64 %1176, %1134
%1179 = getelementptr inbounds double, double* %3, i64 %1178
%1180 = bitcast double* %1179 to <2 x double>*
%1181 = load <2 x double>, <2 x double>* %1180
%1182 = fmul <2 x double> %1168, %1181
%1183 = add nsw i64 %1176, %1135
%1184 = getelementptr inbounds double, double* %3, i64 %1183
%1185 = bitcast double* %1184 to <2 x double>*
store <2 x double> %1182, <2 x double>* %1185
%1186 = getelementptr inbounds double, double* %4, i64 %1178
%1187 = bitcast double* %1186 to <2 x double>*
%1188 = load <2 x double>, <2 x double>* %1187
%1189 = fmul <2 x double> %1188, %1170
%1190 = getelementptr inbounds double, double* %4, i64 %1183
%1191 = bitcast double* %1190 to <2 x double>*
store <2 x double> %1189, <2 x double>* %1191
%1192 = or i64 %1176, 2
%1193 = add nsw i64 %1192, %1134
%1194 = getelementptr inbounds double, double* %3, i64 %1193
%1195 = bitcast double* %1194 to <2 x double>*
%1196 = load <2 x double>, <2 x double>* %1195
%1197 = fmul <2 x double> %1168, %1196
%1198 = add nsw i64 %1192, %1135
%1199 = getelementptr inbounds double, double* %3, i64 %1198
%1200 = bitcast double* %1199 to <2 x double>*
store <2 x double> %1197, <2 x double>* %1200
%1201 = getelementptr inbounds double, double* %4, i64 %1193
%1202 = bitcast double* %1201 to <2 x double>*
%1203 = load <2 x double>, <2 x double>* %1202
%1204 = fmul <2 x double> %1203, %1170
%1205 = getelementptr inbounds double, double* %4, i64 %1198
%1206 = bitcast double* %1205 to <2 x double>*
store <2 x double> %1204, <2 x double>* %1206
%1207 = add nuw i64 %1176, 4
%1208 = add nuw i64 %1177, 2
%1209 = icmp eq i64 %1208, %1174
br i1 %1209, label %1210, label %1175
1210: ; preds = %1175, %1165
%1211 = phi i64 [ 0, %1165 ], [ %1207, %1175 ]
%1212 = icmp eq i64 %1171, 0
br i1 %1212, label %1228, label %1213
1213: ; preds = %1210
%1214 = add nsw i64 %1211, %1134
%1215 = getelementptr inbounds double, double* %3, i64 %1214
%1216 = bitcast double* %1215 to <2 x double>*
%1217 = load <2 x double>, <2 x double>* %1216
%1218 = fmul <2 x double> %1168, %1217
%1219 = add nsw i64 %1211, %1135
%1220 = getelementptr inbounds double, double* %3, i64 %1219
%1221 = bitcast double* %1220 to <2 x double>*
store <2 x double> %1218, <2 x double>* %1221
%1222 = getelementptr inbounds double, double* %4, i64 %1214
%1223 = bitcast double* %1222 to <2 x double>*
%1224 = load <2 x double>, <2 x double>* %1223
%1225 = fmul <2 x double> %1224, %1170
%1226 = getelementptr inbounds double, double* %4, i64 %1219
%1227 = bitcast double* %1226 to <2 x double>*
store <2 x double> %1225, <2 x double>* %1227
br label %1228
1228: ; preds = %1210, %1213
%1229 = icmp eq i64 %933, %1166
br i1 %1229, label %1246, label %1230
1230: ; preds = %1137, %1132, %1228
%1231 = phi i64 [ 0, %1137 ], [ 0, %1132 ], [ %1166, %1228 ]
br label %1232
1232: ; preds = %1230, %1232
%1233 = phi i64 [ %1244, %1232 ], [ %1231, %1230 ]
%1234 = add nsw i64 %1233, %1134
%1235 = getelementptr inbounds double, double* %3, i64 %1234
%1236 = load double, double* %1235
%1237 = fmul double %1129, %1236
%1238 = add nsw i64 %1233, %1135
%1239 = getelementptr inbounds double, double* %3, i64 %1238
store double %1237, double* %1239
%1240 = getelementptr inbounds double, double* %4, i64 %1234
%1241 = load double, double* %1240
%1242 = fmul double %1241, %1133
%1243 = getelementptr inbounds double, double* %4, i64 %1238
store double %1242, double* %1243
%1244 = add nuw nsw i64 %1233, 1
%1245 = icmp slt i64 %1244, %1130
br i1 %1245, label %1232, label %1246
1246: ; preds = %1232, %1228, %1123, %1112
%1247 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %896, i32 %0)
%1248 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %896, i32 %0)
%1249 = sext i32 %1247 to i64
%1250 = getelementptr inbounds double, double* %14, i64 %1249
%1251 = getelementptr inbounds double, double* %15, i64 %1249
%1252 = sext i32 %1248 to i64
%1253 = getelementptr inbounds double, double* %3, i64 %1252
%1254 = getelementptr inbounds double, double* %4, i64 %1252
%1255 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %950, i32 %896, i32 %0, double* %1250, double* %21, double* %6, double* %1253, double* %24)
%1256 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symX to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %950, i32 %896, i32 %0, double* %1251, double* %21, double* %6, double* %1254, double* %24)
br i1 %484, label %1257, label %1268
1257: ; preds = %1246
%1258 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %902, i32 %0)
%1259 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %902, i32 %0)
%1260 = sext i32 %1258 to i64
%1261 = getelementptr inbounds double, double* %14, i64 %1260
%1262 = getelementptr inbounds double, double* %15, i64 %1260
%1263 = sext i32 %1259 to i64
%1264 = getelementptr inbounds double, double* %3, i64 %1263
%1265 = getelementptr inbounds double, double* %4, i64 %1263
%1266 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1101, i32 %902, i32 %0, double* %1261, double* %21, double* %6, double* %1264, double* %24)
%1267 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1101, i32 %902, i32 %0, double* %1262, double* %21, double* %6, double* %1265, double* %24)
br label %1391
1268: ; preds = %1246
%1269 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %896, i32 %0)
%1270 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %901, i32 %0)
%1271 = sub nuw nsw i64 %905, %890
%1272 = and i64 %1271, 1
%1273 = icmp eq i64 %1272, 0
%1274 = select i1 %1273, double 1.000000e+00, double -1.000000e+00
%1275 = sub nsw i64 %485, %905
%1276 = icmp sgt i64 %1275, 0
br i1 %1276, label %1277, label %1391
1277: ; preds = %1268
%1278 = fneg double %1274
%1279 = sext i32 %1269 to i64
%1280 = sext i32 %1270 to i64
%1281 = icmp ult i64 %939, 2
br i1 %1281, label %1375, label %1282
1282: ; preds = %1277
%1283 = getelementptr double, double* %3, i64 %1280
%1284 = getelementptr double, double* %942, i64 %1280
%1285 = getelementptr double, double* %4, i64 %1280
%1286 = getelementptr double, double* %943, i64 %1280
%1287 = getelementptr double, double* %3, i64 %1279
%1288 = getelementptr double, double* %942, i64 %1279
%1289 = getelementptr double, double* %4, i64 %1279
%1290 = getelementptr double, double* %943, i64 %1279
%1291 = icmp ugt double* %943, %3
%1292 = icmp ugt double* %942, %4
%1293 = and i1 %1291, %1292
%1294 = icmp ult double* %1283, %1288
%1295 = icmp ult double* %1287, %1284
%1296 = and i1 %1294, %1295
%1297 = or i1 %1293, %1296
%1298 = icmp ult double* %1283, %1290
%1299 = icmp ult double* %1289, %1284
%1300 = and i1 %1298, %1299
%1301 = or i1 %1297, %1300
%1302 = icmp ult double* %1285, %1288
%1303 = icmp ult double* %1287, %1286
%1304 = and i1 %1302, %1303
%1305 = or i1 %1301, %1304
%1306 = icmp ult double* %1285, %1290
%1307 = icmp ult double* %1289, %1286
%1308 = and i1 %1306, %1307
%1309 = or i1 %1305, %1308
br i1 %1309, label %1375, label %1310
1310: ; preds = %1282
%1311 = and i64 %939, -2
%1312 = insertelement <2 x double> poison, double %1274, i64 0
%1313 = shufflevector <2 x double> %1312, <2 x double> poison, <2 x i32> zeroinitializer
%1314 = insertelement <2 x double> poison, double %1278, i64 0
%1315 = shufflevector <2 x double> %1314, <2 x double> poison, <2 x i32> zeroinitializer
%1316 = and i64 %915, 1
%1317 = icmp ult i64 %913, 2
br i1 %1317, label %1355, label %1318
1318: ; preds = %1310
%1319 = and i64 %915, -2
br label %1320
1320: ; preds = %1320, %1318
%1321 = phi i64 [ 0, %1318 ], [ %1352, %1320 ]
%1322 = phi i64 [ 0, %1318 ], [ %1353, %1320 ]
%1323 = add nsw i64 %1321, %1279
%1324 = getelementptr inbounds double, double* %3, i64 %1323
%1325 = bitcast double* %1324 to <2 x double>*
%1326 = load <2 x double>, <2 x double>* %1325
%1327 = fmul <2 x double> %1313, %1326
%1328 = add nsw i64 %1321, %1280
%1329 = getelementptr inbounds double, double* %3, i64 %1328
%1330 = bitcast double* %1329 to <2 x double>*
store <2 x double> %1327, <2 x double>* %1330
%1331 = getelementptr inbounds double, double* %4, i64 %1323
%1332 = bitcast double* %1331 to <2 x double>*
%1333 = load <2 x double>, <2 x double>* %1332
%1334 = fmul <2 x double> %1333, %1315
%1335 = getelementptr inbounds double, double* %4, i64 %1328
%1336 = bitcast double* %1335 to <2 x double>*
store <2 x double> %1334, <2 x double>* %1336
%1337 = or i64 %1321, 2
%1338 = add nsw i64 %1337, %1279
%1339 = getelementptr inbounds double, double* %3, i64 %1338
%1340 = bitcast double* %1339 to <2 x double>*
%1341 = load <2 x double>, <2 x double>* %1340
%1342 = fmul <2 x double> %1313, %1341
%1343 = add nsw i64 %1337, %1280
%1344 = getelementptr inbounds double, double* %3, i64 %1343
%1345 = bitcast double* %1344 to <2 x double>*
store <2 x double> %1342, <2 x double>* %1345
%1346 = getelementptr inbounds double, double* %4, i64 %1338
%1347 = bitcast double* %1346 to <2 x double>*
%1348 = load <2 x double>, <2 x double>* %1347
%1349 = fmul <2 x double> %1348, %1315
%1350 = getelementptr inbounds double, double* %4, i64 %1343
%1351 = bitcast double* %1350 to <2 x double>*
store <2 x double> %1349, <2 x double>* %1351
%1352 = add nuw i64 %1321, 4
%1353 = add nuw i64 %1322, 2
%1354 = icmp eq i64 %1353, %1319
br i1 %1354, label %1355, label %1320
1355: ; preds = %1320, %1310
%1356 = phi i64 [ 0, %1310 ], [ %1352, %1320 ]
%1357 = icmp eq i64 %1316, 0
br i1 %1357, label %1373, label %1358
1358: ; preds = %1355
%1359 = add nsw i64 %1356, %1279
%1360 = getelementptr inbounds double, double* %3, i64 %1359
%1361 = bitcast double* %1360 to <2 x double>*
%1362 = load <2 x double>, <2 x double>* %1361
%1363 = fmul <2 x double> %1313, %1362
%1364 = add nsw i64 %1356, %1280
%1365 = getelementptr inbounds double, double* %3, i64 %1364
%1366 = bitcast double* %1365 to <2 x double>*
store <2 x double> %1363, <2 x double>* %1366
%1367 = getelementptr inbounds double, double* %4, i64 %1359
%1368 = bitcast double* %1367 to <2 x double>*
%1369 = load <2 x double>, <2 x double>* %1368
%1370 = fmul <2 x double> %1369, %1315
%1371 = getelementptr inbounds double, double* %4, i64 %1364
%1372 = bitcast double* %1371 to <2 x double>*
store <2 x double> %1370, <2 x double>* %1372
br label %1373
1373: ; preds = %1355, %1358
%1374 = icmp eq i64 %939, %1311
br i1 %1374, label %1391, label %1375
1375: ; preds = %1282, %1277, %1373
%1376 = phi i64 [ 0, %1282 ], [ 0, %1277 ], [ %1311, %1373 ]
br label %1377
1377: ; preds = %1375, %1377
%1378 = phi i64 [ %1389, %1377 ], [ %1376, %1375 ]
%1379 = add nsw i64 %1378, %1279
%1380 = getelementptr inbounds double, double* %3, i64 %1379
%1381 = load double, double* %1380
%1382 = fmul double %1274, %1381
%1383 = add nsw i64 %1378, %1280
%1384 = getelementptr inbounds double, double* %3, i64 %1383
store double %1382, double* %1384
%1385 = getelementptr inbounds double, double* %4, i64 %1379
%1386 = load double, double* %1385
%1387 = fmul double %1386, %1278
%1388 = getelementptr inbounds double, double* %4, i64 %1383
store double %1387, double* %1388
%1389 = add nuw nsw i64 %1378, 1
%1390 = icmp slt i64 %1389, %1275
br i1 %1390, label %1377, label %1391
1391: ; preds = %1377, %1373, %1268, %1257
%1392 = phi i32 [ %901, %1268 ], [ %902, %1257 ], [ %901, %1373 ], [ %901, %1377 ]
%1393 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %1392, i32 %0)
%1394 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %1392, i32 %0)
%1395 = sext i32 %1393 to i64
%1396 = getelementptr inbounds double, double* %14, i64 %1395
%1397 = getelementptr inbounds double, double* %15, i64 %1395
%1398 = sext i32 %1394 to i64
%1399 = getelementptr inbounds double, double* %3, i64 %1398
%1400 = getelementptr inbounds double, double* %4, i64 %1398
%1401 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %1101, i32 %0, double* %1396, double* %21, double* %6, double* %1399, double* %24)
%1402 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %896, i32 %1101, i32 %0, double* %1397, double* %21, double* %6, double* %1400, double* %24)
br i1 %484, label %1403, label %1414
1403: ; preds = %1391
%1404 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @sampLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %896, i32 %0)
%1405 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %896, i32 %0)
%1406 = sext i32 %1404 to i64
%1407 = getelementptr inbounds double, double* %14, i64 %1406
%1408 = getelementptr inbounds double, double* %15, i64 %1406
%1409 = sext i32 %1405 to i64
%1410 = getelementptr inbounds double, double* %3, i64 %1409
%1411 = getelementptr inbounds double, double* %4, i64 %1409
%1412 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1392, i32 %950, i32 %0, double* %1407, double* %21, double* %6, double* %1410, double* %24)
%1413 = tail call i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @wigNaiveAnalysis_symY to i32 (i32, i32, i32, double*, double*, double*, double*, double*, ...)*)(i32 %1392, i32 %950, i32 %0, double* %1408, double* %21, double* %6, double* %1411, double* %24)
br label %1537
1414: ; preds = %1391
%1415 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %950, i32 %1392, i32 %0)
%1416 = tail call i32 (i32, i32, i32, ...) bitcast (i32 (...)* @coefLoc_so3 to i32 (i32, i32, i32, ...)*)(i32 %1101, i32 %896, i32 %0)
%1417 = sub nuw nsw i64 %905, %890
%1418 = and i64 %1417, 1
%1419 = icmp eq i64 %1418, 0
%1420 = select i1 %1419, double 1.000000e+00, double -1.000000e+00
%1421 = sub nsw i64 %485, %905
%1422 = icmp sgt i64 %1421, 0
br i1 %1422, label %1423, label %1537
1423: ; preds = %1414
%1424 = fneg double %1420
%1425 = sext i32 %1415 to i64
%1426 = sext i32 %1416 to i64
%1427 = icmp ult i64 %945, 2
br i1 %1427, label %1521, label %1428
1428: ; preds = %1423
%1429 = getelementptr double, double* %3, i64 %1426
%1430 = getelementptr double, double* %948, i64 %1426
%1431 = getelementptr double, double* %4, i64 %1426
%1432 = getelementptr double, double* %949, i64 %1426
%1433 = getelementptr double, double* %3, i64 %1425
%1434 = getelementptr double, double* %948, i64 %1425
%1435 = getelementptr double, double* %4, i64 %1425
%1436 = getelementptr double, double* %949, i64 %1425
%1437 = icmp ugt double* %949, %3
%1438 = icmp ugt double* %948, %4
%1439 = and i1 %1437, %1438
%1440 = icmp ult double* %1429, %1434
%1441 = icmp ult double* %1433, %1430
%1442 = and i1 %1440, %1441
%1443 = or i1 %1439, %1442
%1444 = icmp ult double* %1429, %1436
%1445 = icmp ult double* %1435, %1430
%1446 = and i1 %1444, %1445
%1447 = or i1 %1443, %1446
%1448 = icmp ult double* %1431, %1434
%1449 = icmp ult double* %1433, %1432
%1450 = and i1 %1448, %1449
%1451 = or i1 %1447, %1450
%1452 = icmp ult double* %1431, %1436
%1453 = icmp ult double* %1435, %1432
%1454 = and i1 %1452, %1453
%1455 = or i1 %1451, %1454
br i1 %1455, label %1521, label %1456
1456: ; preds = %1428
%1457 = and i64 %945, -2
%1458 = insertelement <2 x double> poison, double %1420, i64 0
%1459 = shufflevector <2 x double> %1458, <2 x double> poison, <2 x i32> zeroinitializer
%1460 = insertelement <2 x double> poison, double %1424, i64 0
%1461 = shufflevector <2 x double> %1460, <2 x double> poison, <2 x i32> zeroinitializer
%1462 = and i64 %910, 1
%1463 = icmp ult i64 %908, 2
br i1 %1463, label %1501, label %1464
1464: ; preds = %1456
%1465 = and i64 %910, -2
br label %1466
1466: ; preds = %1466, %1464
%1467 = phi i64 [ 0, %1464 ], [ %1498, %1466 ]
%1468 = phi i64 [ 0, %1464 ], [ %1499, %1466 ]
%1469 = add nsw i64 %1467, %1425
%1470 = getelementptr inbounds double, double* %3, i64 %1469
%1471 = bitcast double* %1470 to <2 x double>*
%1472 = load <2 x double>, <2 x double>* %1471
%1473 = fmul <2 x double> %1459, %1472
%1474 = add nsw i64 %1467, %1426
%1475 = getelementptr inbounds double, double* %3, i64 %1474
%1476 = bitcast double* %1475 to <2 x double>*
store <2 x double> %1473, <2 x double>* %1476
%1477 = getelementptr inbounds double, double* %4, i64 %1469
%1478 = bitcast double* %1477 to <2 x double>*
%1479 = load <2 x double>, <2 x double>* %1478
%1480 = fmul <2 x double> %1479, %1461
%1481 = getelementptr inbounds double, double* %4, i64 %1474
%1482 = bitcast double* %1481 to <2 x double>*
store <2 x double> %1480, <2 x double>* %1482
%1483 = or i64 %1467, 2
%1484 = add nsw i64 %1483, %1425
%1485 = getelementptr inbounds double, double* %3, i64 %1484
%1486 = bitcast double* %1485 to <2 x double>*
%1487 = load <2 x double>, <2 x double>* %1486
%1488 = fmul <2 x double> %1459, %1487
%1489 = add nsw i64 %1483, %1426
%1490 = getelementptr inbounds double, double* %3, i64 %1489
%1491 = bitcast double* %1490 to <2 x double>*
store <2 x double> %1488, <2 x double>* %1491
%1492 = getelementptr inbounds double, double* %4, i64 %1484
%1493 = bitcast double* %1492 to <2 x double>*
%1494 = load <2 x double>, <2 x double>* %1493
%1495 = fmul <2 x double> %1494, %1461
%1496 = getelementptr inbounds double, double* %4, i64 %1489
%1497 = bitcast double* %1496 to <2 x double>*
store <2 x double> %1495, <2 x double>* %1497
%1498 = add nuw i64 %1467, 4
%1499 = add nuw i64 %1468, 2
%1500 = icmp eq i64 %1499, %1465
br i1 %1500, label %1501, label %1466
1501: ; preds = %1466, %1456
%1502 = phi i64 [ 0, %1456 ], [ %1498, %1466 ]
%1503 = icmp eq i64 %1462, 0
br i1 %1503, label %1519, label %1504
1504: ; preds = %1501
%1505 = add nsw i64 %1502, %1425
%1506 = getelementptr inbounds double, double* %3, i64 %1505
%1507 = bitcast double* %1506 to <2 x double>*
%1508 = load <2 x double>, <2 x double>* %1507
%1509 = fmul <2 x double> %1459, %1508
%1510 = add nsw i64 %1502, %1426
%1511 = getelementptr inbounds double, double* %3, i64 %1510
%1512 = bitcast double* %1511 to <2 x double>*
store <2 x double> %1509, <2 x double>* %1512
%1513 = getelementptr inbounds double, double* %4, i64 %1505
%1514 = bitcast double* %1513 to <2 x double>*
%1515 = load <2 x double>, <2 x double>* %1514
%1516 = fmul <2 x double> %1515, %1461
%1517 = getelementptr inbounds double, double* %4, i64 %1510
%1518 = bitcast double* %1517 to <2 x double>*
store <2 x double> %1516, <2 x double>* %1518
br label %1519
1519: ; preds = %1501, %1504
%1520 = icmp eq i64 %945, %1457
br i1 %1520, label %1537, label %1521
1521: ; preds = %1428, %1423, %1519
%1522 = phi i64 [ 0, %1428 ], [ 0, %1423 ], [ %1457, %1519 ]
br label %1523
1523: ; preds = %1521, %1523
%1524 = phi i64 [ %1535, %1523 ], [ %1522, %1521 ]
%1525 = add nsw i64 %1524, %1425
%1526 = getelementptr inbounds double, double* %3, i64 %1525
%1527 = load double, double* %1526
%1528 = fmul double %1420, %1527
%1529 = add nsw i64 %1524, %1426
%1530 = getelementptr inbounds double, double* %3, i64 %1529
store double %1528, double* %1530
%1531 = getelementptr inbounds double, double* %4, i64 %1525
%1532 = load double, double* %1531
%1533 = fmul double %1532, %1424
%1534 = getelementptr inbounds double, double* %4, i64 %1529
store double %1533, double* %1534
%1535 = add nuw nsw i64 %1524, 1
%1536 = icmp slt i64 %1535, %1421
br i1 %1536, label %1523, label %1537
1537: ; preds = %1523, %1519, %1414, %1403
%1538 = add nuw nsw i64 %905, 1
%1539 = icmp eq i64 %1538, %486
%1540 = add i64 %904, 1
br i1 %1539, label %884, label %903
1541: ; preds = %884, %8, %52, %482
%1542 = sitofp i32 %22 to double
%1543 = fdiv double 0x400921FB54442D18, %1542
%1544 = icmp sgt i32 %25, 0
br i1 %1544, label %1545, label %1674
1545: ; preds = %1541
%1546 = zext i32 %25 to i64
%1547 = icmp ult i32 %25, 4
br i1 %1547, label %1640, label %1548
1548: ; preds = %1545
%1549 = getelementptr double, double* %3, i64 %1546
%1550 = getelementptr double, double* %4, i64 %1546
%1551 = icmp ugt double* %1550, %3
%1552 = icmp ugt double* %1549, %4
%1553 = and i1 %1551, %1552
br i1 %1553, label %1640, label %1554
1554: ; preds = %1548
%1555 = and i64 %1546, 4294967292
%1556 = insertelement <2 x double> poison, double %1543, i64 0
%1557 = shufflevector <2 x double> %1556, <2 x double> poison, <2 x i32> zeroinitializer
%1558 = insertelement <2 x double> poison, double %1543, i64 0
%1559 = shufflevector <2 x double> %1558, <2 x double> poison, <2 x i32> zeroinitializer
%1560 = add nsw i64 %1555, -4
%1561 = lshr exact i64 %1560, 2
%1562 = add nuw nsw i64 %1561, 1
%1563 = and i64 %1562, 1
%1564 = icmp eq i64 %1560, 0
br i1 %1564, label %1614, label %1565
1565: ; preds = %1554
%1566 = and i64 %1562, 9223372036854775806
br label %1567
1567: ; preds = %1567, %1565
%1568 = phi i64 [ 0, %1565 ], [ %1611, %1567 ]
%1569 = phi i64 [ 0, %1565 ], [ %1612, %1567 ]
%1570 = getelementptr inbounds double, double* %3, i64 %1568
%1571 = bitcast double* %1570 to <2 x double>*
%1572 = load <2 x double>, <2 x double>* %1571
%1573 = getelementptr inbounds double, double* %1570, i64 2
%1574 = bitcast double* %1573 to <2 x double>*
%1575 = load <2 x double>, <2 x double>* %1574
%1576 = fmul <2 x double> %1557, %1572
%1577 = fmul <2 x double> %1559, %1575
%1578 = bitcast double* %1570 to <2 x double>*
store <2 x double> %1576, <2 x double>* %1578
%1579 = bitcast double* %1573 to <2 x double>*
store <2 x double> %1577, <2 x double>* %1579
%1580 = getelementptr inbounds double, double* %4, i64 %1568
%1581 = bitcast double* %1580 to <2 x double>*
%1582 = load <2 x double>, <2 x double>* %1581
%1583 = getelementptr inbounds double, double* %1580, i64 2
%1584 = bitcast double* %1583 to <2 x double>*
%1585 = load <2 x double>, <2 x double>* %1584
%1586 = fmul <2 x double> %1557, %1582
%1587 = fmul <2 x double> %1559, %1585
%1588 = bitcast double* %1580 to <2 x double>*
store <2 x double> %1586, <2 x double>* %1588
%1589 = bitcast double* %1583 to <2 x double>*
store <2 x double> %1587, <2 x double>* %1589
%1590 = or i64 %1568, 4
%1591 = getelementptr inbounds double, double* %3, i64 %1590
%1592 = bitcast double* %1591 to <2 x double>*
%1593 = load <2 x double>, <2 x double>* %1592
%1594 = getelementptr inbounds double, double* %1591, i64 2
%1595 = bitcast double* %1594 to <2 x double>*
%1596 = load <2 x double>, <2 x double>* %1595
%1597 = fmul <2 x double> %1557, %1593
%1598 = fmul <2 x double> %1559, %1596
%1599 = bitcast double* %1591 to <2 x double>*
store <2 x double> %1597, <2 x double>* %1599
%1600 = bitcast double* %1594 to <2 x double>*
store <2 x double> %1598, <2 x double>* %1600
%1601 = getelementptr inbounds double, double* %4, i64 %1590
%1602 = bitcast double* %1601 to <2 x double>*
%1603 = load <2 x double>, <2 x double>* %1602
%1604 = getelementptr inbounds double, double* %1601, i64 2
%1605 = bitcast double* %1604 to <2 x double>*
%1606 = load <2 x double>, <2 x double>* %1605
%1607 = fmul <2 x double> %1557, %1603
%1608 = fmul <2 x double> %1559, %1606
%1609 = bitcast double* %1601 to <2 x double>*
store <2 x double> %1607, <2 x double>* %1609
%1610 = bitcast double* %1604 to <2 x double>*
store <2 x double> %1608, <2 x double>* %1610
%1611 = add nuw i64 %1568, 8
%1612 = add i64 %1569, 2
%1613 = icmp eq i64 %1612, %1566
br i1 %1613, label %1614, label %1567
1614: ; preds = %1567, %1554
%1615 = phi i64 [ 0, %1554 ], [ %1611, %1567 ]
%1616 = icmp eq i64 %1563, 0
br i1 %1616, label %1638, label %1617
1617: ; preds = %1614
%1618 = getelementptr inbounds double, double* %3, i64 %1615
%1619 = bitcast double* %1618 to <2 x double>*
%1620 = load <2 x double>, <2 x double>* %1619
%1621 = getelementptr inbounds double, double* %1618, i64 2
%1622 = bitcast double* %1621 to <2 x double>*
%1623 = load <2 x double>, <2 x double>* %1622
%1624 = fmul <2 x double> %1557, %1620
%1625 = fmul <2 x double> %1559, %1623
%1626 = bitcast double* %1618 to <2 x double>*
store <2 x double> %1624, <2 x double>* %1626
%1627 = bitcast double* %1621 to <2 x double>*
store <2 x double> %1625, <2 x double>* %1627
%1628 = getelementptr inbounds double, double* %4, i64 %1615
%1629 = bitcast double* %1628 to <2 x double>*
%1630 = load <2 x double>, <2 x double>* %1629
%1631 = getelementptr inbounds double, double* %1628, i64 2
%1632 = bitcast double* %1631 to <2 x double>*
%1633 = load <2 x double>, <2 x double>* %1632
%1634 = fmul <2 x double> %1557, %1630
%1635 = fmul <2 x double> %1559, %1633
%1636 = bitcast double* %1628 to <2 x double>*
store <2 x double> %1634, <2 x double>* %1636
%1637 = bitcast double* %1631 to <2 x double>*
store <2 x double> %1635, <2 x double>* %1637
br label %1638
1638: ; preds = %1614, %1617
%1639 = icmp eq i64 %1555, %1546
br i1 %1639, label %1674, label %1640
1640: ; preds = %1548, %1545, %1638
%1641 = phi i64 [ 0, %1548 ], [ 0, %1545 ], [ %1555, %1638 ]
%1642 = xor i64 %1641, -1
%1643 = and i64 %1546, 1
%1644 = icmp eq i64 %1643, 0
br i1 %1644, label %1653, label %1645
1645: ; preds = %1640
%1646 = getelementptr inbounds double, double* %3, i64 %1641
%1647 = load double, double* %1646
%1648 = fmul double %1543, %1647
store double %1648, double* %1646
%1649 = getelementptr inbounds double, double* %4, i64 %1641
%1650 = load double, double* %1649
%1651 = fmul double %1543, %1650
store double %1651, double* %1649
%1652 = or i64 %1641, 1
br label %1653
1653: ; preds = %1645, %1640
%1654 = phi i64 [ %1641, %1640 ], [ %1652, %1645 ]
%1655 = sub nsw i64 0, %1546
%1656 = icmp eq i64 %1642, %1655
br i1 %1656, label %1674, label %1657
1657: ; preds = %1653, %1657
%1658 = phi i64 [ %1672, %1657 ], [ %1654, %1653 ]
%1659 = getelementptr inbounds double, double* %3, i64 %1658
%1660 = load double, double* %1659
%1661 = fmul double %1543, %1660
store double %1661, double* %1659
%1662 = getelementptr inbounds double, double* %4, i64 %1658
%1663 = load double, double* %1662
%1664 = fmul double %1543, %1663
store double %1664, double* %1662
%1665 = add nuw nsw i64 %1658, 1
%1666 = getelementptr inbounds double, double* %3, i64 %1665
%1667 = load double, double* %1666
%1668 = fmul double %1543, %1667
store double %1668, double* %1666
%1669 = getelementptr inbounds double, double* %4, i64 %1665
%1670 = load double, double* %1669
%1671 = fmul double %1543, %1670
store double %1671, double* %1669
%1672 = add nuw nsw i64 %1658, 2
%1673 = icmp eq i64 %1672, %1546
br i1 %1673, label %1674, label %1657
1674: ; preds = %1653, %1657, %1638, %1541
ret void
}