void slasq3(int *n, float *q, float *e, float *qq, float *ee, float *sup,
            float *sigma, int *kend, int *off, int *iphase, int iconv,
            float eps, float tol2, float small2) {
  static int c__1 = 1;
  static int c_n1 = -1;
  int i__1, i__2;
  float r__1, r__2, r__3, r__4;
  static int ldef;
  static int icnt;
  static float tolx, toly, tolz;
  static int k1end, k2end;
  static float d;
  static int i;
  static float qemax;
  static int maxit;
  static int n1, n2;
  static float t1;
  static int ic, ke;
  static float dm;
  static int ip, ks;
  static float xx, yy;
  static int lsplit;
  static int ifl;
  static float tau;
  static int isp;
  icnt = 0;
  tau = 0.f;
  dm = *sup;
  tolx = *sigma * tol2;
  tolz = (((small2) > (*sigma)) ? (small2) : (*sigma)) * tol2;
  maxit = *n * 100;
  ic = 2;
  if (*n > 3) {
    if (*iphase == 1) {
      i__1 = *n - 2;
      for (i = 1; i <= *n - 2; ++i) {
        if (q[(i)-1] > q[(i + 1) - 1]) {
          ++ic;
        }
        if (e[(i)-1] > e[(i + 1) - 1]) {
          ++ic;
        }
      }
      if (q[(*n - 1) - 1] > q[(*n) - 1]) {
        ++ic;
      }
      if (ic < *n) {
        scopy(*n, &q[(1) - 1], c__1, &qq[(1) - 1], c_n1);
        i__1 = *n - 1;
        scopy(i__1, &e[(1) - 1], c__1, &ee[(1) - 1], c_n1);
        if (*kend != 0) {
          *kend = *n - *kend + 1;
        }
        *iphase = 2;
      }
    } else {
      i__1 = *n - 2;
      for (i = 1; i <= *n - 2; ++i) {
        if (qq[(i)-1] > qq[(i + 1) - 1]) {
          ++ic;
        }
        if (ee[(i)-1] > ee[(i + 1) - 1]) {
          ++ic;
        }
      }
      if (qq[(*n - 1) - 1] > qq[(*n) - 1]) {
        ++ic;
      }
      if (ic < *n) {
        scopy(*n, &qq[(1) - 1], c__1, &q[(1) - 1], c_n1);
        i__1 = *n - 1;
        scopy(i__1, &ee[(1) - 1], c__1, &e[(1) - 1], c_n1);
        if (*kend != 0) {
          *kend = *n - *kend + 1;
        }
        *iphase = 1;
      }
    }
  }
  if (iconv == -3) {
    if (*iphase == 1) {
      goto L180;
    } else {
      goto L80;
    }
  }
  if (*iphase == 2) {
    goto L130;
  }
L30:
  ifl = 0;
  if (*kend == 0 || *sup == 0.f) {
    tau = 0.f;
  } else if (icnt > 0 && dm <= tolz) {
    tau = 0.f;
  } else {
    i__1 = 5, i__2 = *n / 32;
    ip = (((i__1) > (i__2)) ? (i__1) : (i__2));
    n2 = (ip << 1) + 1;
    if (n2 >= *n) {
      n1 = 1;
      n2 = *n;
    } else if (*kend + ip > *n) {
      n1 = *n - (ip << 1);
    } else if (*kend - ip < 1) {
      n1 = 1;
    } else {
      n1 = *kend - ip;
    }
    slasq4(n2, &q[(n1)-1], &e[(n1)-1], &tau, sup);
  }
L40:
  ++icnt;
  if (icnt > maxit) {
    *sup = -1.f;
    return;
  }
  if (tau == 0.f) {
    d = q[(1) - 1];
    dm = d;
    ke = 0;
    i__1 = *n - 3;
    for (i = 1; i <= *n - 3; ++i) {
      qq[(i)-1] = d + e[(i)-1];
      d = d / qq[(i)-1] * q[(i + 1) - 1];
      if (dm > d) {
        dm = d;
        ke = i;
      }
    }
    ++ke;
    k2end = ke;
    qq[(*n - 2) - 1] = d + e[(*n - 2) - 1];
    d = d / qq[(*n - 2) - 1] * q[(*n - 1) - 1];
    if (dm > d) {
      dm = d;
      ke = *n - 1;
    }
    k1end = ke;
    qq[(*n - 1) - 1] = d + e[(*n - 1) - 1];
    d = d / qq[(*n - 1) - 1] * q[(*n) - 1];
    if (dm > d) {
      dm = d;
      ke = *n;
    }
    qq[(*n) - 1] = d;
  } else {
    d = q[(1) - 1] - tau;
    dm = d;
    ke = 0;
    if (d < 0.f) {
      goto L120;
    }
    i__1 = *n - 3;
    for (i = 1; i <= *n - 3; ++i) {
      qq[(i)-1] = d + e[(i)-1];
      d = d / qq[(i)-1] * q[(i + 1) - 1] - tau;
      if (dm > d) {
        dm = d;
        ke = i;
        if (d < 0.f) {
          goto L120;
        }
      }
    }
    ++ke;
    k2end = ke;
    qq[(*n - 2) - 1] = d + e[(*n - 2) - 1];
    d = d / qq[(*n - 2) - 1] * q[(*n - 1) - 1] - tau;
    if (dm > d) {
      dm = d;
      ke = *n - 1;
      if (d < 0.f) {
        goto L120;
      }
    }
    k1end = ke;
    qq[(*n - 1) - 1] = d + e[(*n - 1) - 1];
    d = d / qq[(*n - 1) - 1] * q[(*n) - 1] - tau;
    if (dm > d) {
      dm = d;
      ke = *n;
    }
    qq[(*n) - 1] = d;
  }
  if ((r__1 = qq[(*n) - 1], fabs(r__1)) <= *sigma * tol2) {
    qq[(*n) - 1] = 0.f;
    dm = 0.f;
    ke = *n;
  }
  if (qq[(*n) - 1] < 0.f) {
    goto L120;
  }
  i__1 = *n - 1;
  for (i = 1; i <= *n - 1; ++i) {
    ee[(i)-1] = e[(i)-1] / qq[(i)-1] * q[(i + 1) - 1];
  }
  *sigma += tau;
  *iphase = 2;
L80:
  tolx = *sigma * tol2;
  toly = *sigma * eps;
  tolz = (((*sigma) > (small2)) ? (*sigma) : (small2)) * tol2;
L90:
  if (*n <= 2) {
    return;
  }
  ldef = 0;
  if (ee[(*n - 1) - 1] <= tolz) {
    ldef = 1;
  } else if (*sigma > 0.f) {
    if (ee[(*n - 1) - 1] <= eps * (*sigma + qq[(*n) - 1])) {
      if (ee[(*n - 1) - 1] * (qq[(*n) - 1] / (qq[(*n) - 1] + *sigma)) <=
          tol2 * (qq[(*n) - 1] + *sigma)) {
        ldef = 1;
      }
    }
  } else {
    if (ee[(*n - 1) - 1] <= qq[(*n) - 1] * tol2) {
      ldef = 1;
    }
  }
  if (ldef) {
    q[(*n) - 1] = qq[(*n) - 1] + *sigma;
    --(*n);
    ++(iconv);
    goto L90;
  }
  ldef = 0;
  if (ee[(*n - 2) - 1] <= tolz) {
    ldef = 1;
  } else if (*sigma > 0.f) {
    t1 = *sigma + ee[(*n - 1) - 1] * (*sigma / (*sigma + qq[(*n) - 1]));
    if (ee[(*n - 2) - 1] * (t1 / (qq[(*n - 1) - 1] + t1)) <= toly) {
      if (ee[(*n - 2) - 1] * (qq[(*n - 1) - 1] / (qq[(*n - 1) - 1] + t1)) <=
          tolx) {
        ldef = 1;
      }
    }
  } else {
    if (ee[(*n - 2) - 1] <=
        qq[(*n) - 1] / (qq[(*n) - 1] + ee[(*n - 1) - 1] + qq[(*n - 1) - 1]) *
            qq[(*n - 1) - 1] * tol2) {
      ldef = 1;
    }
  }
  if (ldef) {
    r__1 = qq[(*n) - 1], r__2 = qq[(*n - 1) - 1],
    r__1 = (((r__1) > (r__2)) ? (r__1) : (r__2)), r__2 = ee[(*n - 1) - 1];
    qemax = (((r__1) > (r__2)) ? (r__1) : (r__2));
    if (qemax != 0.f) {
      if (qemax == qq[(*n - 1) - 1]) {
        r__1 = (qq[(*n) - 1] - qq[(*n - 1) - 1] + ee[(*n - 1) - 1]) / qemax;
        xx = (qq[(*n) - 1] + qq[(*n - 1) - 1] + ee[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + ee[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      } else if (qemax == qq[(*n) - 1]) {
        r__1 = (qq[(*n - 1) - 1] - qq[(*n) - 1] + ee[(*n - 1) - 1]) / qemax;
        xx = (qq[(*n) - 1] + qq[(*n - 1) - 1] + ee[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + ee[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      } else {
        r__1 = (qq[(*n) - 1] - qq[(*n - 1) - 1] + ee[(*n - 1) - 1]) / qemax;
        xx = (qq[(*n) - 1] + qq[(*n - 1) - 1] + ee[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + qq[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      }
      r__1 = qq[(*n) - 1], r__2 = qq[(*n - 1) - 1];
      r__3 = qq[(*n) - 1], r__4 = qq[(*n - 1) - 1];
      yy = (((r__1) > (r__2)) ? (r__1) : (r__2)) / xx *
           (((r__3) < (r__4)) ? (r__3) : (r__4));
    } else {
      xx = 0.f;
      yy = 0.f;
    }
    q[(*n - 1) - 1] = *sigma + xx;
    q[(*n) - 1] = yy + *sigma;
    *n += -2;
    iconv += 2;
    goto L90;
  }
  if (iconv == 0) {
    *kend = ke;
    r__1 = dm, r__2 = *sup - tau;
    *sup = (((r__1) < (r__2)) ? (r__1) : (r__2));
  } else if (iconv > 0) {
    r__1 = qq[(*n) - 1], r__2 = qq[(*n - 1) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)), r__2 = qq[(*n - 2) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)),
    r__1 = (((r__1) < (qq[(1) - 1])) ? (r__1) : (qq[(1) - 1])),
    r__1 = (((r__1) < (qq[(2) - 1])) ? (r__1) : (qq[(2) - 1]));
    *sup = (((r__1) < (qq[(3) - 1])) ? (r__1) : (qq[(3) - 1]));
    if (iconv == 1) {
      *kend = k1end;
    } else if (iconv == 2) {
      *kend = k2end;
    } else {
      *kend = *n;
    }
    icnt = 0;
    maxit = *n * 100;
  }
  lsplit = 0;
  for (ks = *n - 3; ks >= 3; --ks) {
    if (ee[(ks)-1] <= toly) {
      r__1 = qq[(ks + 1) - 1], r__2 = qq[(ks)-1];
      r__3 = qq[(ks + 1) - 1], r__4 = qq[(ks)-1];
      if (ee[(ks)-1] * ((((r__1) < (r__2)) ? (r__1) : (r__2)) /
                        ((((r__3) < (r__4)) ? (r__3) : (r__4)) + *sigma)) <=
          tolx) {
        lsplit = 1;
        goto L110;
      }
    }
  }
  ks = 2;
  if (ee[(2) - 1] <= tolz) {
    lsplit = 1;
  } else if (*sigma > 0.f) {
    t1 = *sigma + ee[(1) - 1] * (*sigma / (*sigma + qq[(1) - 1]));
    if (ee[(2) - 1] * (t1 / (qq[(1) - 1] + t1)) <= toly) {
      if (ee[(2) - 1] * (qq[(1) - 1] / (qq[(1) - 1] + t1)) <= tolx) {
        lsplit = 1;
      }
    }
  } else {
    if (ee[(2) - 1] <= qq[(1) - 1] / (qq[(1) - 1] + ee[(1) - 1] + qq[(2) - 1]) *
                           qq[(2) - 1] * tol2) {
      lsplit = 1;
    }
  }
  if (lsplit) {
    goto L110;
  }
  ks = 1;
  if (ee[(1) - 1] <= tolz) {
    lsplit = 1;
  } else if (*sigma > 0.f) {
    if (ee[(1) - 1] <= eps * (*sigma + qq[(1) - 1])) {
      if (ee[(1) - 1] * (qq[(1) - 1] / (qq[(1) - 1] + *sigma)) <=
          tol2 * (qq[(1) - 1] + *sigma)) {
        lsplit = 1;
      }
    }
  } else {
    if (ee[(1) - 1] <= qq[(1) - 1] * tol2) {
      lsplit = 1;
    }
  }
L110:
  if (lsplit) {
    r__1 = qq[(*n) - 1], r__2 = qq[(*n - 1) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)), r__2 = qq[(*n - 2) - 1];
    *sup = (((r__1) < (r__2)) ? (r__1) : (r__2));
    isp = -(*off + 1);
    *off += ks;
    *n -= ks;
    i__1 = 1, i__2 = *kend - ks;
    *kend = (((i__1) > (i__2)) ? (i__1) : (i__2));
    e[(ks)-1] = *sigma;
    ee[(ks)-1] = (float)isp;
    iconv = 0;
    return;
  }
  if (tau == 0.f && dm <= tolz && *kend != *n && iconv == 0 && icnt > 0) {
    i__1 = *n - ke;
    scopy(i__1, &e[(ke)-1], c__1, &qq[(ke)-1], c__1);
    qq[(*n) - 1] = 0.f;
    i__1 = *n - ke;
    scopy(i__1, &q[(ke + 1) - 1], c__1, &ee[(ke)-1], c__1);
    *sup = 0.f;
  }
  iconv = 0;
  goto L130;
L120:
  ++ifl;
  *sup = tau;
  if (*sup <= tolz || ifl >= 2) {
    tau = 0.f;
    goto L40;
  } else {
    r__1 = tau + d;
    tau = (((r__1) > (0.f)) ? (r__1) : (0.f));
    if (tau <= tolz) {
      tau = 0.f;
    }
    goto L40;
  }
L130:
  ifl = 0;
  if (*kend == 0 && *sup == 0.f) {
    tau = 0.f;
  } else if (icnt > 0 && dm <= tolz) {
    tau = 0.f;
  } else {
    i__1 = 5, i__2 = *n / 32;
    ip = (((i__1) > (i__2)) ? (i__1) : (i__2));
    n2 = (ip << 1) + 1;
    if (n2 >= *n) {
      n1 = 1;
      n2 = *n;
    } else if (*kend + ip > *n) {
      n1 = *n - (ip << 1);
    } else if (*kend - ip < 1) {
      n1 = 1;
    } else {
      n1 = *kend - ip;
    }
    slasq4(n2, &qq[(n1)-1], &ee[(n1)-1], &tau, sup);
  }
L140:
  ++icnt;
  if (icnt > maxit) {
    *sup = -(double)(*sup);
    return;
  }
  if (tau == 0.f) {
    d = qq[(1) - 1];
    dm = d;
    ke = 0;
    i__1 = *n - 3;
    for (i = 1; i <= *n - 3; ++i) {
      q[(i)-1] = d + ee[(i)-1];
      d = d / q[(i)-1] * qq[(i + 1) - 1];
      if (dm > d) {
        dm = d;
        ke = i;
      }
    }
    ++ke;
    k2end = ke;
    q[(*n - 2) - 1] = d + ee[(*n - 2) - 1];
    d = d / q[(*n - 2) - 1] * qq[(*n - 1) - 1];
    if (dm > d) {
      dm = d;
      ke = *n - 1;
    }
    k1end = ke;
    q[(*n - 1) - 1] = d + ee[(*n - 1) - 1];
    d = d / q[(*n - 1) - 1] * qq[(*n) - 1];
    if (dm > d) {
      dm = d;
      ke = *n;
    }
    q[(*n) - 1] = d;
  } else {
    d = qq[(1) - 1] - tau;
    dm = d;
    ke = 0;
    if (d < 0.f) {
      goto L220;
    }
    i__1 = *n - 3;
    for (i = 1; i <= *n - 3; ++i) {
      q[(i)-1] = d + ee[(i)-1];
      d = d / q[(i)-1] * qq[(i + 1) - 1] - tau;
      if (dm > d) {
        dm = d;
        ke = i;
        if (d < 0.f) {
          goto L220;
        }
      }
    }
    ++ke;
    k2end = ke;
    q[(*n - 2) - 1] = d + ee[(*n - 2) - 1];
    d = d / q[(*n - 2) - 1] * qq[(*n - 1) - 1] - tau;
    if (dm > d) {
      dm = d;
      ke = *n - 1;
      if (d < 0.f) {
        goto L220;
      }
    }
    k1end = ke;
    q[(*n - 1) - 1] = d + ee[(*n - 1) - 1];
    d = d / q[(*n - 1) - 1] * qq[(*n) - 1] - tau;
    if (dm > d) {
      dm = d;
      ke = *n;
    }
    q[(*n) - 1] = d;
  }
  if ((r__1 = q[(*n) - 1], fabs(r__1)) <= *sigma * tol2) {
    q[(*n) - 1] = 0.f;
    dm = 0.f;
    ke = *n;
  }
  if (q[(*n) - 1] < 0.f) {
    goto L220;
  }
  i__1 = *n - 1;
  for (i = 1; i <= *n - 1; ++i) {
    e[(i)-1] = ee[(i)-1] / q[(i)-1] * qq[(i + 1) - 1];
  }
  *sigma += tau;
L180:
  *iphase = 1;
  tolx = *sigma * tol2;
  toly = *sigma * eps;
L190:
  if (*n <= 2) {
    return;
  }
  ldef = 0;
  if (e[(*n - 1) - 1] <= tolz) {
    ldef = 1;
  } else if (*sigma > 0.f) {
    if (e[(*n - 1) - 1] <= eps * (*sigma + q[(*n) - 1])) {
      if (e[(*n - 1) - 1] * (q[(*n) - 1] / (q[(*n) - 1] + *sigma)) <=
          tol2 * (q[(*n) - 1] + *sigma)) {
        ldef = 1;
      }
    }
  } else {
    if (e[(*n - 1) - 1] <= q[(*n) - 1] * tol2) {
      ldef = 1;
    }
  }
  if (ldef) {
    q[(*n) - 1] += *sigma;
    --(*n);
    ++(iconv);
    goto L190;
  }
  ldef = 0;
  if (e[(*n - 2) - 1] <= tolz) {
    ldef = 1;
  } else if (*sigma > 0.f) {
    t1 = *sigma + e[(*n - 1) - 1] * (*sigma / (*sigma + q[(*n) - 1]));
    if (e[(*n - 2) - 1] * (t1 / (q[(*n - 1) - 1] + t1)) <= toly) {
      if (e[(*n - 2) - 1] * (q[(*n - 1) - 1] / (q[(*n - 1) - 1] + t1)) <=
          tolx) {
        ldef = 1;
      }
    }
  } else {
    if (e[(*n - 2) - 1] <=
        q[(*n) - 1] / (q[(*n) - 1] + ee[(*n - 1) - 1] + q[(*n - 1) - 1]) *
            q[(*n - 1) - 1] * tol2) {
      ldef = 1;
    }
  }
  if (ldef) {
    r__1 = q[(*n) - 1], r__2 = q[(*n - 1) - 1],
    r__1 = (((r__1) > (r__2)) ? (r__1) : (r__2)), r__2 = e[(*n - 1) - 1];
    qemax = (((r__1) > (r__2)) ? (r__1) : (r__2));
    if (qemax != 0.f) {
      if (qemax == q[(*n - 1) - 1]) {
        r__1 = (q[(*n) - 1] - q[(*n - 1) - 1] + e[(*n - 1) - 1]) / qemax;
        xx = (q[(*n) - 1] + q[(*n - 1) - 1] + e[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + e[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      } else if (qemax == q[(*n) - 1]) {
        r__1 = (q[(*n - 1) - 1] - q[(*n) - 1] + e[(*n - 1) - 1]) / qemax;
        xx = (q[(*n) - 1] + q[(*n - 1) - 1] + e[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + e[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      } else {
        r__1 = (q[(*n) - 1] - q[(*n - 1) - 1] + e[(*n - 1) - 1]) / qemax;
        xx = (q[(*n) - 1] + q[(*n - 1) - 1] + e[(*n - 1) - 1] +
              qemax * sqrt(r__1 * r__1 + q[(*n - 1) - 1] * 4.f / qemax)) *
             .5f;
      }
      r__1 = q[(*n) - 1], r__2 = q[(*n - 1) - 1];
      r__3 = q[(*n) - 1], r__4 = q[(*n - 1) - 1];
      yy = (((r__1) > (r__2)) ? (r__1) : (r__2)) / xx *
           (((r__3) < (r__4)) ? (r__3) : (r__4));
    } else {
      xx = 0.f;
      yy = 0.f;
    }
    q[(*n - 1) - 1] = *sigma + xx;
    q[(*n) - 1] = yy + *sigma;
    *n += -2;
    iconv += 2;
    goto L190;
  }
  if (iconv == 0) {
    *kend = ke;
    r__1 = dm, r__2 = *sup - tau;
    *sup = (((r__1) < (r__2)) ? (r__1) : (r__2));
  } else if (iconv > 0) {
    r__1 = q[(*n) - 1], r__2 = q[(*n - 1) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)), r__2 = q[(*n - 2) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)),
    r__1 = (((r__1) < (q[(1) - 1])) ? (r__1) : (q[(1) - 1])),
    r__1 = (((r__1) < (q[(2) - 1])) ? (r__1) : (q[(2) - 1]));
    *sup = (((r__1) < (q[(3) - 1])) ? (r__1) : (q[(3) - 1]));
    if (iconv == 1) {
      *kend = k1end;
    } else if (iconv == 2) {
      *kend = k2end;
    } else {
      *kend = *n;
    }
    icnt = 0;
    maxit = *n * 100;
  }
  lsplit = 0;
  for (ks = *n - 3; ks >= 3; --ks) {
    if (e[(ks)-1] <= toly) {
      r__1 = q[(ks + 1) - 1], r__2 = q[(ks)-1];
      r__3 = q[(ks + 1) - 1], r__4 = q[(ks)-1];
      if (e[(ks)-1] * ((((r__1) < (r__2)) ? (r__1) : (r__2)) /
                       ((((r__3) < (r__4)) ? (r__3) : (r__4)) + *sigma)) <=
          tolx) {
        lsplit = 1;
        goto L210;
      }
    }
  }
  ks = 2;
  if (e[(2) - 1] <= tolz) {
    lsplit = 1;
  } else if (*sigma > 0.f) {
    t1 = *sigma + e[(1) - 1] * (*sigma / (*sigma + q[(1) - 1]));
    if (e[(2) - 1] * (t1 / (q[(1) - 1] + t1)) <= toly) {
      if (e[(2) - 1] * (q[(1) - 1] / (q[(1) - 1] + t1)) <= tolx) {
        lsplit = 1;
      }
    }
  } else {
    if (e[(2) - 1] <= q[(1) - 1] / (q[(1) - 1] + e[(1) - 1] + q[(2) - 1]) *
                          q[(2) - 1] * tol2) {
      lsplit = 1;
    }
  }
  if (lsplit) {
    goto L210;
  }
  ks = 1;
  if (e[(1) - 1] <= tolz) {
    lsplit = 1;
  } else if (*sigma > 0.f) {
    if (e[(1) - 1] <= eps * (*sigma + q[(1) - 1])) {
      if (e[(1) - 1] * (q[(1) - 1] / (q[(1) - 1] + *sigma)) <=
          tol2 * (q[(1) - 1] + *sigma)) {
        lsplit = 1;
      }
    }
  } else {
    if (e[(1) - 1] <= q[(1) - 1] * tol2) {
      lsplit = 1;
    }
  }
L210:
  if (lsplit) {
    r__1 = q[(*n) - 1], r__2 = q[(*n - 1) - 1],
    r__1 = (((r__1) < (r__2)) ? (r__1) : (r__2)), r__2 = q[(*n - 2) - 1];
    *sup = (((r__1) < (r__2)) ? (r__1) : (r__2));
    isp = *off + 1;
    *off += ks;
    i__1 = 1, i__2 = *kend - ks;
    *kend = (((i__1) > (i__2)) ? (i__1) : (i__2));
    *n -= ks;
    e[(ks)-1] = *sigma;
    ee[(ks)-1] = (float)isp;
    iconv = 0;
    return;
  }
  if (tau == 0.f && dm <= tolz && *kend != *n && iconv == 0 && icnt > 0) {
    i__1 = *n - ke;
    scopy(i__1, &ee[(ke)-1], c__1, &q[(ke)-1], c__1);
    q[(*n) - 1] = 0.f;
    i__1 = *n - ke;
    scopy(i__1, &qq[(ke + 1) - 1], c__1, &e[(ke)-1], c__1);
    *sup = 0.f;
  }
  iconv = 0;
  goto L30;
L220:
  ++ifl;
  *sup = tau;
  if (*sup <= tolz || ifl >= 2) {
    tau = 0.f;
    goto L140;
  } else {
    r__1 = tau + d;
    tau = (((r__1) > (0.f)) ? (r__1) : (0.f));
    if (tau <= tolz) {
      tau = 0.f;
    }
    goto L140;
  }
}


x86 assembly (clang, -O0):
<slasq3>:
push   %rbp
mov    %rsp,%rbp
sub    $0x160,%rsp
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movss  %xmm0,-0x34(%rbp)
movss  %xmm1,-0x38(%rbp)
movss  %xmm2,-0x3c(%rbp)
movl   $0x0,0x6ec9(%rip)
xorps  %xmm0,%xmm0
movss  %xmm0,0x6f16(%rip)
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,0x6eea(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,0x6e9d(%rip)
movss  -0x3c(%rbp),%xmm0
mov    0x10(%rbp),%rax
ucomiss (%rax),%xmm0
jbe    11d0 <slasq3+0xa0>
movss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x58(%rbp)
jmp    11dd <slasq3+0xad>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x58(%rbp)
movss  -0x58(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,0x6e65(%rip)
mov    -0x8(%rbp),%rax
imul   $0x64,(%rax),%eax
mov    %eax,0x6e70(%rip)
movl   $0x2,0x6e76(%rip)
mov    -0x8(%rbp),%rax
cmpl   $0x3,(%rax)
jle    1557 <slasq3+0x427>
mov    0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    13b9 <slasq3+0x289>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x2,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x6e2e(%rip)
mov    0x6e28(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
cmp    %ecx,%eax
jg     12e8 <slasq3+0x1b8>
mov    -0x10(%rbp),%rax
mov    0x6e0d(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x6df8(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    128e <slasq3+0x15e>
mov    0x6df7(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6dee(%rip)
mov    -0x18(%rbp),%rax
mov    0x6dcc(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    0x6db7(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    12cf <slasq3+0x19f>
mov    0x6db6(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6dad(%rip)
jmp    12d4 <slasq3+0x1a4>
mov    0x6d8a(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6d81(%rip)
jmp    1236 <slasq3+0x106>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    1329 <slasq3+0x1f9>
mov    0x6d5c(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6d53(%rip)
mov    0x6d4d(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    13b4 <slasq3+0x284>
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    -0x10(%rbp),%rsi
mov    0x6ced(%rip),%edx
mov    -0x20(%rbp),%rcx
mov    0x6ce6(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x18(%rbp),%rsi
mov    0x6cc2(%rip),%edx
mov    -0x28(%rbp),%rcx
mov    0x6cbb(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    0x18(%rbp),%rax
cmpl   $0x0,(%rax)
je     13aa <slasq3+0x27a>
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%rax
sub    (%rax),%ecx
add    $0x1,%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    0x28(%rbp),%rax
movl   $0x2,(%rax)
jmp    1552 <slasq3+0x422>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x2,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x6c95(%rip)
mov    0x6c8f(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
cmp    %ecx,%eax
jg     1481 <slasq3+0x351>
mov    -0x20(%rbp),%rax
mov    0x6c74(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x6c5f(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    1427 <slasq3+0x2f7>
mov    0x6c5e(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6c55(%rip)
mov    -0x28(%rbp),%rax
mov    0x6c33(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    0x6c1e(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    1468 <slasq3+0x338>
mov    0x6c1d(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6c14(%rip)
jmp    146d <slasq3+0x33d>
mov    0x6bf1(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6be8(%rip)
jmp    13cf <slasq3+0x29f>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jbe    14c2 <slasq3+0x392>
mov    0x6bc3(%rip),%eax
add    $0x1,%eax
mov    %eax,0x6bba(%rip)
mov    0x6bb4(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jge    154d <slasq3+0x41d>
mov    -0x8(%rbp),%rax
mov    (%rax),%edi
mov    -0x20(%rbp),%rsi
mov    0x6b54(%rip),%edx
mov    -0x10(%rbp),%rcx
mov    0x6b4d(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x28(%rbp),%rsi
mov    0x6b29(%rip),%edx
mov    -0x18(%rbp),%rcx
mov    0x6b22(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    0x18(%rbp),%rax
cmpl   $0x0,(%rax)
je     1543 <slasq3+0x413>
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%rax
sub    (%rax),%ecx
add    $0x1,%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
jmp    1552 <slasq3+0x422>
jmp    1557 <slasq3+0x427>
cmpl   $0xfffffffd,0x30(%rbp)
jne    1578 <slasq3+0x448>
mov    0x28(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1573 <slasq3+0x443>
jmp    3d7c <slasq3+0x2c4c>
jmp    1ede <slasq3+0xdae>
mov    0x28(%rbp),%rax
cmpl   $0x2,(%rax)
jne    158a <slasq3+0x45a>
jmp    340f <slasq3+0x22df>
jmp    158f <slasq3+0x45f>
movl   $0x0,0x6b03(%rip)
mov    0x18(%rbp),%rax
cmpl   $0x0,(%rax)
je     15c0 <slasq3+0x490>
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    15d0 <slasq3+0x4a0>
jp     15d0 <slasq3+0x4a0>
xorps  %xmm0,%xmm0
movss  %xmm0,0x6ad5(%rip)
jmp    1740 <slasq3+0x610>
cmpl   $0x0,0x6a71(%rip)
jle    1606 <slasq3+0x4d6>
movss  0x6a9f(%rip),%xmm1
movss  0x6a67(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     1606 <slasq3+0x4d6>
xorps  %xmm0,%xmm0
movss  %xmm0,0x6a9f(%rip)
jmp    173b <slasq3+0x60b>
movl   $0x5,-0x40(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %eax,-0x44(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x44(%rbp),%eax
jle    1635 <slasq3+0x505>
mov    -0x40(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    163b <slasq3+0x50b>
mov    -0x44(%rbp),%eax
mov    %eax,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
mov    %eax,0x6a44(%rip)
mov    0x6a3e(%rip),%eax
shl    $0x1,%eax
add    $0x1,%eax
mov    %eax,0x6a1e(%rip)
mov    0x6a18(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jl     1683 <slasq3+0x553>
movl   $0x1,0x69fe(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x69f6(%rip)
jmp    16f7 <slasq3+0x5c7>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
add    0x69f9(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jle    16b7 <slasq3+0x587>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    0x69e1(%rip),%ecx
shl    $0x1,%ecx
sub    %ecx,%eax
mov    %eax,0x69be(%rip)
jmp    16f2 <slasq3+0x5c2>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x69c5(%rip),%eax
cmp    $0x1,%eax
jge    16db <slasq3+0x5ab>
movl   $0x1,0x699a(%rip)
jmp    16ed <slasq3+0x5bd>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x69a1(%rip),%eax
mov    %eax,0x6983(%rip)
jmp    16f2 <slasq3+0x5c2>
jmp    16f7 <slasq3+0x5c7>
mov    0x6977(%rip),%edi
mov    -0x10(%rbp),%rsi
mov    0x6969(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    -0x18(%rbp),%rdx
mov    0x6953(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rdx
mov    -0x30(%rbp),%r8
lea    0x696c(%rip),%rcx
mov    $0x0,%al
call   1040 <slasq4@plt>
jmp    1740 <slasq3+0x610>
jmp    1745 <slasq3+0x615>
mov    0x68fd(%rip),%eax
add    $0x1,%eax
mov    %eax,0x68f4(%rip)
mov    0x68ee(%rip),%eax
cmp    0x690c(%rip),%eax
jle    177b <slasq3+0x64b>
mov    -0x30(%rbp),%rax
movss  0x48aa(%rip),%xmm0
movss  %xmm0,(%rax)
jmp    5287 <slasq3+0x4157>
movss  0x691d(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1a40 <slasq3+0x910>
jp     1a40 <slasq3+0x910>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,0x68bb(%rip)
movss  0x68b3(%rip),%xmm0
movss  %xmm0,0x68cf(%rip)
movl   $0x0,0x68c1(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x688f(%rip)
mov    0x6889(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jg     18a5 <slasq3+0x775>
movss  0x686c(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    0x6866(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x6851(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x683a(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    0x6834(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x681f(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x6805(%rip)
movss  0x6821(%rip),%xmm0
ucomiss 0x67f6(%rip),%xmm0
jbe    188c <slasq3+0x75c>
movss  0x67e8(%rip),%xmm0
movss  %xmm0,0x6804(%rip)
mov    0x67de(%rip),%eax
mov    %eax,0x67f4(%rip)
jmp    1891 <slasq3+0x761>
mov    0x67cd(%rip),%eax
add    $0x1,%eax
mov    %eax,0x67c4(%rip)
jmp    17d5 <slasq3+0x6a5>
mov    0x67d5(%rip),%eax
add    $0x1,%eax
mov    %eax,0x67cc(%rip)
mov    0x67c6(%rip),%eax
mov    %eax,0x679c(%rip)
movss  0x6798(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x6760(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x6728(%rip)
movss  0x6744(%rip),%xmm0
ucomiss 0x6719(%rip),%xmm0
jbe    196c <slasq3+0x83c>
movss  0x670b(%rip),%xmm0
movss  %xmm0,0x6727(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x6714(%rip)
mov    0x670e(%rip),%eax
mov    %eax,0x66e0(%rip)
movss  0x66e0(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x66a8(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x6673(%rip)
movss  0x668f(%rip),%xmm0
ucomiss 0x6664(%rip),%xmm0
jbe    1a1e <slasq3+0x8ee>
movss  0x6656(%rip),%xmm0
movss  %xmm0,0x6672(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x6662(%rip)
movss  0x663a(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    1d8e <slasq3+0xc5e>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
subss  0x6650(%rip),%xmm0
movss  %xmm0,0x6608(%rip)
movss  0x6600(%rip),%xmm0
movss  %xmm0,0x661c(%rip)
movl   $0x0,0x660e(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x65e4(%rip),%xmm0
jbe    1a87 <slasq3+0x957>
jmp    3339 <slasq3+0x2209>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x65c7(%rip)
mov    0x65c1(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jg     1ba4 <slasq3+0xa74>
movss  0x65a4(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    0x659e(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x6589(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x6572(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    0x656c(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x6557(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x657d(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x6520(%rip)
movss  0x653c(%rip),%xmm0
ucomiss 0x6511(%rip),%xmm0
jbe    1b8b <slasq3+0xa5b>
movss  0x6503(%rip),%xmm0
movss  %xmm0,0x651f(%rip)
mov    0x64f9(%rip),%eax
mov    %eax,0x650f(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x64e5(%rip),%xmm0
jbe    1b86 <slasq3+0xa56>
jmp    3339 <slasq3+0x2209>
jmp    1b8b <slasq3+0xa5b>
jmp    1b90 <slasq3+0xa60>
mov    0x64ce(%rip),%eax
add    $0x1,%eax
mov    %eax,0x64c5(%rip)
jmp    1a9d <slasq3+0x96d>
mov    0x64d6(%rip),%eax
add    $0x1,%eax
mov    %eax,0x64cd(%rip)
mov    0x64c7(%rip),%eax
mov    %eax,0x649d(%rip)
movss  0x6499(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x6461(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x6469(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x640c(%rip)
movss  0x6428(%rip),%xmm0
ucomiss 0x63fd(%rip),%xmm0
jbe    1ca2 <slasq3+0xb72>
movss  0x63ef(%rip),%xmm0
movss  %xmm0,0x640b(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x63f8(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x63ce(%rip),%xmm0
jbe    1c9d <slasq3+0xb6d>
jmp    3339 <slasq3+0x2209>
jmp    1ca2 <slasq3+0xb72>
mov    0x63d8(%rip),%eax
mov    %eax,0x63aa(%rip)
movss  0x63aa(%rip),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x6372(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x637d(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x6320(%rip)
movss  0x633c(%rip),%xmm0
ucomiss 0x6311(%rip),%xmm0
jbe    1d71 <slasq3+0xc41>
movss  0x6303(%rip),%xmm0
movss  %xmm0,0x631f(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x630f(%rip)
movss  0x62e7(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps 0x4248(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1e06 <slasq3+0xcd6>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
xorps  %xmm0,%xmm0
movss  %xmm0,0x628a(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x627a(%rip)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
ucomiss (%rax,%rcx,4),%xmm0
jbe    1e28 <slasq3+0xcf8>
jmp    3339 <slasq3+0x2209>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x6226(%rip)
mov    0x6220(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     1ec0 <slasq3+0xd90>
mov    -0x18(%rbp),%rax
mov    0x6205(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x61f0(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x61db(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    0x61c3(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    0x61b2(%rip),%eax
add    $0x1,%eax
mov    %eax,0x61a9(%rip)
jmp    1e3e <slasq3+0xd0e>
movss  0x61d8(%rip),%xmm0
mov    0x10(%rbp),%rax
addss  (%rax),%xmm0
movss  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movl   $0x2,(%rax)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,0x6159(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x34(%rbp),%xmm0
movss  %xmm0,0x6148(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
ucomiss -0x3c(%rbp),%xmm0
jbe    1f2c <slasq3+0xdfc>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x60(%rbp)
jmp    1f36 <slasq3+0xe06>
movss  -0x3c(%rbp),%xmm0
movss  %xmm0,-0x60(%rbp)
movss  -0x60(%rbp),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,0x610c(%rip)
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jg     1f5a <slasq3+0xe2a>
jmp    5287 <slasq3+0x4157>
movl   $0x0,0x60e0(%rip)
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x60d0(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     1f9c <slasq3+0xe6c>
movl   $0x1,0x60ad(%rip)
jmp    20db <slasq3+0xfab>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    208c <slasq3+0xf5c>
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  -0x34(%rbp),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     2087 <slasq3+0xf57>
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  -0x38(%rbp),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     2082 <slasq3+0xf52>
movl   $0x1,0x5fc2(%rip)
jmp    2087 <slasq3+0xf57>
jmp    20d6 <slasq3+0xfa6>
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     20d1 <slasq3+0xfa1>
movl   $0x1,0x5f73(%rip)
jmp    20d6 <slasq3+0xfa6>
jmp    20db <slasq3+0xfab>
cmpl   $0x0,0x5f62(%rip)
je     2133 <slasq3+0x1003>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
addss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0xffffffff,%ecx
mov    %ecx,(%rax)
mov    0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,0x30(%rbp)
jmp    1f48 <slasq3+0xe18>
movl   $0x0,0x5f07(%rip)
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x5ef7(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2175 <slasq3+0x1045>
movl   $0x1,0x5ed4(%rip)
jmp    2368 <slasq3+0x1238>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    22b8 <slasq3+0x1188>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
movss  (%rax),%xmm3
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm3
divss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x5e96(%rip)
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x5e76(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
addss  0x5e56(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x5e1e(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     22b3 <slasq3+0x1183>
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
addss  0x5ded(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x5db1(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     22ae <slasq3+0x117e>
movl   $0x1,0x5d96(%rip)
jmp    22b3 <slasq3+0x1183>
jmp    2363 <slasq3+0x1233>
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
divss  %xmm2,%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     235e <slasq3+0x122e>
movl   $0x1,0x5ce6(%rip)
jmp    2363 <slasq3+0x1233>
jmp    2368 <slasq3+0x1238>
cmpl   $0x0,0x5cd5(%rip)
je     29a9 <slasq3+0x1879>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    23ca <slasq3+0x129a>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
jmp    23d4 <slasq3+0x12a4>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x64(%rbp)
movss  -0x64(%rbp),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    2419 <slasq3+0x12e9>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x68(%rbp)
jmp    2423 <slasq3+0x12f3>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x68(%rbp)
movss  -0x68(%rbp),%xmm0
movss  %xmm0,0x5c38(%rip)
movss  0x5c30(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    244f <slasq3+0x131f>
jp     244f <slasq3+0x131f>
jmp    292d <slasq3+0x17fd>
movss  0x5c11(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jne    25a0 <slasq3+0x1470>
jp     25a0 <slasq3+0x1470>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x5ba1(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
movss  0x5b46(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x3ac8(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x5b0b(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0x78(%rbp),%xmm1
movaps %xmm0,%xmm2
movsd  -0x70(%rbp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x3a85(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x5af5(%rip)
jmp    2826 <slasq3+0x16f6>
movss  0x5ac0(%rip),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jne    26f4 <slasq3+0x15c4>
jp     26f4 <slasq3+0x15c4>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x5a53(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movss  0x59f5(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x3977(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x59ba(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0x88(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x80(%rbp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x3931(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x59a1(%rip)
jmp    2821 <slasq3+0x16f1>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x5927(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movss  0x58c9(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x3848(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x588b(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0x98(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x90(%rbp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x37ff(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x586f(%rip)
jmp    2826 <slasq3+0x16f6>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    28b5 <slasq3+0x1785>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
jmp    28c2 <slasq3+0x1792>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x9c(%rbp)
ff
movss  -0x9c(%rbp),%xmm0
ff
divss  0x57be(%rip),%xmm0
movss  %xmm0,-0xa0(%rbp)
ff
movss  -0x50(%rbp),%xmm1
movss  -0x54(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    28ff <slasq3+0x17cf>
movss  -0x50(%rbp),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
jmp    290c <slasq3+0x17dc>
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0xa4(%rbp)
ff
movss  -0xa0(%rbp),%xmm0
ff
movss  -0xa4(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,0x576c(%rip)
jmp    2943 <slasq3+0x1813>
xorps  %xmm0,%xmm0
movss  %xmm0,0x5758(%rip)
xorps  %xmm0,%xmm0
movss  %xmm0,0x5751(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
addss  0x573d(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x5721(%rip),%xmm0
mov    0x10(%rbp),%rax
addss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0xfffffffe,%ecx
mov    %ecx,(%rax)
mov    0x30(%rbp),%eax
add    $0x2,%eax
mov    %eax,0x30(%rbp)
jmp    1f48 <slasq3+0xe18>
cmpl   $0x0,0x30(%rbp)
jne    2a28 <slasq3+0x18f8>
mov    0x56c7(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
movss  0x56bd(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
subss  0x56c4(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    2a06 <slasq3+0x18d6>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xa8(%rbp)
jmp    2a13 <slasq3+0x18e3>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xa8(%rbp)
ff
movss  -0xa8(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
jmp    2c3d <slasq3+0x1b0d>
cmpl   $0x0,0x30(%rbp)
jle    2c38 <slasq3+0x1b08>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    2a8e <slasq3+0x195e>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xac(%rbp)
ff
jmp    2a9b <slasq3+0x196b>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xac(%rbp)
ff
movss  -0xac(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    2aea <slasq3+0x19ba>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
jmp    2af7 <slasq3+0x19c7>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xb0(%rbp)
ff
movss  -0xb0(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    2b2c <slasq3+0x19fc>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
jmp    2b3c <slasq3+0x1a0c>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0xb4(%rbp)
ff
movss  -0xb4(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movss  0x4(%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    2b72 <slasq3+0x1a42>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
jmp    2b83 <slasq3+0x1a53>
mov    -0x20(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0xb8(%rbp)
ff
movss  -0xb8(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x20(%rbp),%rax
movss  0x8(%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    2bb9 <slasq3+0x1a89>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
jmp    2bca <slasq3+0x1a9a>
mov    -0x20(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0xbc(%rbp)
ff
movss  -0xbc(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
cmpl   $0x1,0x30(%rbp)
jne    2bf5 <slasq3+0x1ac5>
mov    0x546e(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    2c21 <slasq3+0x1af1>
cmpl   $0x2,0x30(%rbp)
jne    2c10 <slasq3+0x1ae0>
mov    0x5457(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    2c1c <slasq3+0x1aec>
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    2c21 <slasq3+0x1af1>
movl   $0x0,0x541d(%rip)
mov    -0x8(%rbp),%rax
imul   $0x64,(%rax),%eax
mov    %eax,0x5434(%rip)
jmp    2c3d <slasq3+0x1b0d>
movl   $0x0,0x5451(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,0x5436(%rip)
cmpl   $0x3,0x542f(%rip)
jl     2dee <slasq3+0x1cbe>
mov    -0x28(%rbp),%rax
mov    0x541f(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x53d0(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2dd5 <slasq3+0x1ca5>
mov    -0x20(%rbp),%rax
mov    0x53f9(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    0x53dc(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x20(%rbp),%rax
mov    0x53c2(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x20(%rbp),%rax
mov    0x53a5(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
mov    -0x28(%rbp),%rax
mov    0x538b(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0xc0(%rbp)
ff
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    2d39 <slasq3+0x1c09>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
jmp    2d46 <slasq3+0x1c16>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xc4(%rbp)
ff
movss  -0xc4(%rbp),%xmm0
ff
movss  %xmm0,-0xc8(%rbp)
ff
movss  -0x50(%rbp),%xmm1
movss  -0x54(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    2d7b <slasq3+0x1c4b>
movss  -0x50(%rbp),%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
jmp    2d88 <slasq3+0x1c58>
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0xcc(%rbp)
ff
movss  -0xc0(%rbp),%xmm1
ff
movss  -0xc8(%rbp),%xmm0
ff
movss  -0xcc(%rbp),%xmm2
ff
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x5294(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2dd0 <slasq3+0x1ca0>
movl   $0x1,0x52cd(%rip)
jmp    3069 <slasq3+0x1f39>
jmp    2dd5 <slasq3+0x1ca5>
jmp    2dda <slasq3+0x1caa>
mov    0x52ac(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,0x52a3(%rip)
jmp    2c56 <slasq3+0x1b26>
movl   $0x2,0x5294(%rip)
mov    -0x28(%rbp),%rax
movss  0x4(%rax),%xmm1
movss  0x524b(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2e21 <slasq3+0x1cf1>
movl   $0x1,0x527c(%rip)
jmp    2f52 <slasq3+0x1e22>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    2ef9 <slasq3+0x1dc9>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
movss  (%rax),%xmm3
mov    -0x20(%rbp),%rax
addss  (%rax),%xmm3
divss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x5207(%rip)
mov    -0x28(%rbp),%rax
movss  0x4(%rax),%xmm1
movss  0x51f6(%rip),%xmm0
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm2
addss  0x51e6(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x51ae(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2ef4 <slasq3+0x1dc4>
mov    -0x28(%rbp),%rax
movss  0x4(%rax),%xmm1
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm2
addss  0x51ac(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x5170(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2eef <slasq3+0x1dbf>
movl   $0x1,0x51a9(%rip)
jmp    2ef4 <slasq3+0x1dc4>
jmp    2f4d <slasq3+0x1e1d>
mov    -0x28(%rbp),%rax
movss  0x4(%rax),%xmm1
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x28(%rbp),%rax
addss  (%rax),%xmm2
mov    -0x20(%rbp),%rax
addss  0x4(%rax),%xmm2
divss  %xmm2,%xmm0
mov    -0x20(%rbp),%rax
mulss  0x4(%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     2f48 <slasq3+0x1e18>
movl   $0x1,0x5150(%rip)
jmp    2f4d <slasq3+0x1e1d>
jmp    2f52 <slasq3+0x1e22>
cmpl   $0x0,0x513f(%rip)
je     2f64 <slasq3+0x1e34>
jmp    3069 <slasq3+0x1f39>
movl   $0x1,0x511e(%rip)
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
movss  0x50d6(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     2f96 <slasq3+0x1e66>
movl   $0x1,0x5107(%rip)
jmp    3064 <slasq3+0x1f34>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    3032 <slasq3+0x1f02>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
movss  -0x34(%rbp),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x20(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     302d <slasq3+0x1efd>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  -0x38(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     3028 <slasq3+0x1ef8>
movl   $0x1,0x5070(%rip)
jmp    302d <slasq3+0x1efd>
jmp    305f <slasq3+0x1f2f>
mov    -0x28(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     305a <slasq3+0x1f2a>
movl   $0x1,0x503e(%rip)
jmp    305f <slasq3+0x1f2f>
jmp    3064 <slasq3+0x1f34>
jmp    3069 <slasq3+0x1f39>
cmpl   $0x0,0x5028(%rip)
je     3207 <slasq3+0x20d7>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    30d2 <slasq3+0x1fa2>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
jmp    30df <slasq3+0x1faf>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xd0(%rbp)
ff
movss  -0xd0(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    312e <slasq3+0x1ffe>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
jmp    313b <slasq3+0x200b>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xd4(%rbp)
ff
movss  -0xd4(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
mov    0x20(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
xor    %eax,%eax
sub    %ecx,%eax
mov    %eax,0x4f46(%rip)
mov    0x4f28(%rip),%ecx
mov    0x20(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
mov    0x4f1a(%rip),%edx
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
sub    %edx,%ecx
mov    %ecx,(%rax)
movl   $0x1,-0x40(%rbp)
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x4efd(%rip),%eax
mov    %eax,-0x44(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x44(%rbp),%eax
jle    31ac <slasq3+0x207c>
mov    -0x40(%rbp),%eax
mov    %eax,-0xd8(%rbp)
jmp    31b5 <slasq3+0x2085>
mov    -0x44(%rbp),%eax
mov    %eax,-0xd8(%rbp)
mov    -0xd8(%rbp),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mov    0x4eb9(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
cvtsi2ssl 0x4ebe(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    0x4e9c(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movl   $0x0,0x30(%rbp)
jmp    5287 <slasq3+0x4157>
movss  0x4e91(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    332d <slasq3+0x21fd>
jp     332d <slasq3+0x21fd>
movss  0x4e5b(%rip),%xmm1
movss  0x4e23(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     332d <slasq3+0x21fd>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
je     332d <slasq3+0x21fd>
cmpl   $0x0,0x30(%rbp)
jne    332d <slasq3+0x21fd>
cmpl   $0x0,0x4deb(%rip)
jle    332d <slasq3+0x21fd>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    0x4e11(%rip),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x18(%rbp),%rsi
mov    0x4e01(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    0x4da7(%rip),%edx
mov    -0x20(%rbp),%rcx
mov    0x4de5(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rcx
mov    0x4d8a(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    0x4da7(%rip),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x10(%rbp),%rsi
mov    0x4d97(%rip),%eax
add    $0x1,%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    0x4d3a(%rip),%edx
mov    -0x28(%rbp),%rcx
mov    0x4d78(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rcx
mov    0x4d1d(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax)
movl   $0x0,0x30(%rbp)
jmp    340f <slasq3+0x22df>
mov    0x4d5d(%rip),%eax
add    $0x1,%eax
mov    %eax,0x4d54(%rip)
movss  0x4d50(%rip),%xmm0
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm1
movss  0x4cec(%rip),%xmm0
ucomiss %xmm1,%xmm0
jae    337e <slasq3+0x224e>
cmpl   $0x2,0x4d24(%rip)
jl     338e <slasq3+0x225e>
xorps  %xmm0,%xmm0
movss  %xmm0,0x4d17(%rip)
jmp    1745 <slasq3+0x615>
movss  0x4d0a(%rip),%xmm0
addss  0x4cc2(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    33c6 <slasq3+0x2296>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
jmp    33d6 <slasq3+0x22a6>
xorps  %xmm0,%xmm0
movss  %xmm0,-0xdc(%rbp)
ff
jmp    33d6 <slasq3+0x22a6>
movss  -0xdc(%rbp),%xmm0
ff
movss  %xmm0,0x4cba(%rip)
movss  0x4cb2(%rip),%xmm1
movss  0x4c5e(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     340a <slasq3+0x22da>
xorps  %xmm0,%xmm0
movss  %xmm0,0x4c96(%rip)
jmp    1745 <slasq3+0x615>
movl   $0x0,0x4c83(%rip)
mov    0x18(%rbp),%rax
cmpl   $0x0,(%rax)
jne    3450 <slasq3+0x2320>
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    3450 <slasq3+0x2320>
jp     3450 <slasq3+0x2320>
xorps  %xmm0,%xmm0
movss  %xmm0,0x4c55(%rip)
jmp    35c9 <slasq3+0x2499>
cmpl   $0x0,0x4bf1(%rip)
jle    3486 <slasq3+0x2356>
movss  0x4c1f(%rip),%xmm1
movss  0x4be7(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     3486 <slasq3+0x2356>
xorps  %xmm0,%xmm0
movss  %xmm0,0x4c1f(%rip)
jmp    35c4 <slasq3+0x2494>
movl   $0x5,-0x40(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    $0x20,%ecx
cltd
idiv   %ecx
mov    %eax,-0x44(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x44(%rbp),%eax
jle    34b8 <slasq3+0x2388>
mov    -0x40(%rbp),%eax
mov    %eax,-0xe0(%rbp)
jmp    34c1 <slasq3+0x2391>
mov    -0x44(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0xe0(%rbp),%eax
mov    %eax,0x4bbb(%rip)
mov    0x4bb5(%rip),%eax
shl    $0x1,%eax
add    $0x1,%eax
mov    %eax,0x4b95(%rip)
mov    0x4b8f(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jl     350c <slasq3+0x23dc>
movl   $0x1,0x4b75(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x4b6d(%rip)
jmp    3580 <slasq3+0x2450>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
add    0x4b70(%rip),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jle    3540 <slasq3+0x2410>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    0x4b58(%rip),%ecx
shl    $0x1,%ecx
sub    %ecx,%eax
mov    %eax,0x4b35(%rip)
jmp    357b <slasq3+0x244b>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x4b3c(%rip),%eax
cmp    $0x1,%eax
jge    3564 <slasq3+0x2434>
movl   $0x1,0x4b11(%rip)
jmp    3576 <slasq3+0x2446>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x4b18(%rip),%eax
mov    %eax,0x4afa(%rip)
jmp    357b <slasq3+0x244b>
jmp    3580 <slasq3+0x2450>
mov    0x4aee(%rip),%edi
mov    -0x20(%rbp),%rsi
mov    0x4ae0(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    -0x28(%rbp),%rdx
mov    0x4aca(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rdx
mov    -0x30(%rbp),%r8
lea    0x4ae3(%rip),%rcx
mov    $0x0,%al
call   1040 <slasq4@plt>
jmp    35c9 <slasq3+0x2499>
jmp    35ce <slasq3+0x249e>
mov    0x4a74(%rip),%eax
add    $0x1,%eax
mov    %eax,0x4a6b(%rip)
mov    0x4a65(%rip),%eax
cmp    0x4a83(%rip),%eax
jle    3623 <slasq3+0x24f3>
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
cvtss2sd %xmm0,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
jmp    5287 <slasq3+0x4157>
movss  0x4a75(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    38e8 <slasq3+0x27b8>
jp     38e8 <slasq3+0x27b8>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,0x4a13(%rip)
movss  0x4a0b(%rip),%xmm0
movss  %xmm0,0x4a27(%rip)
movl   $0x0,0x4a19(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x49e7(%rip)
mov    0x49e1(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jg     374d <slasq3+0x261d>
movss  0x49c4(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    0x49be(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x49a9(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x4992(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    0x498c(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x4977(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x495d(%rip)
movss  0x4979(%rip),%xmm0
ucomiss 0x494e(%rip),%xmm0
jbe    3734 <slasq3+0x2604>
movss  0x4940(%rip),%xmm0
movss  %xmm0,0x495c(%rip)
mov    0x4936(%rip),%eax
mov    %eax,0x494c(%rip)
jmp    3739 <slasq3+0x2609>
mov    0x4925(%rip),%eax
add    $0x1,%eax
mov    %eax,0x491c(%rip)
jmp    367d <slasq3+0x254d>
mov    0x492d(%rip),%eax
add    $0x1,%eax
mov    %eax,0x4924(%rip)
mov    0x491e(%rip),%eax
mov    %eax,0x48f4(%rip)
movss  0x48f0(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x48b8(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x4880(%rip)
movss  0x489c(%rip),%xmm0
ucomiss 0x4871(%rip),%xmm0
jbe    3814 <slasq3+0x26e4>
movss  0x4863(%rip),%xmm0
movss  %xmm0,0x487f(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x486c(%rip)
mov    0x4866(%rip),%eax
mov    %eax,0x4838(%rip)
movss  0x4838(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x4800(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
movss  %xmm0,0x47cb(%rip)
movss  0x47e7(%rip),%xmm0
ucomiss 0x47bc(%rip),%xmm0
jbe    38c6 <slasq3+0x2796>
movss  0x47ae(%rip),%xmm0
movss  %xmm0,0x47ca(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x47ba(%rip)
movss  0x4792(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    3c36 <slasq3+0x2b06>
mov    -0x20(%rbp),%rax
movss  (%rax),%xmm0
subss  0x47a8(%rip),%xmm0
movss  %xmm0,0x4760(%rip)
movss  0x4758(%rip),%xmm0
movss  %xmm0,0x4774(%rip)
movl   $0x0,0x4766(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x473c(%rip),%xmm0
jbe    392f <slasq3+0x27ff>
jmp    51b1 <slasq3+0x4081>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x471f(%rip)
mov    0x4719(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jg     3a4c <slasq3+0x291c>
movss  0x46fc(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    0x46f6(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x46e1(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x46ca(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    0x46c4(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x46af(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x46d5(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x4678(%rip)
movss  0x4694(%rip),%xmm0
ucomiss 0x4669(%rip),%xmm0
jbe    3a33 <slasq3+0x2903>
movss  0x465b(%rip),%xmm0
movss  %xmm0,0x4677(%rip)
mov    0x4651(%rip),%eax
mov    %eax,0x4667(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x463d(%rip),%xmm0
jbe    3a2e <slasq3+0x28fe>
jmp    51b1 <slasq3+0x4081>
jmp    3a33 <slasq3+0x2903>
jmp    3a38 <slasq3+0x2908>
mov    0x4626(%rip),%eax
add    $0x1,%eax
mov    %eax,0x461d(%rip)
jmp    3945 <slasq3+0x2815>
mov    0x462e(%rip),%eax
add    $0x1,%eax
mov    %eax,0x4625(%rip)
mov    0x461f(%rip),%eax
mov    %eax,0x45f5(%rip)
movss  0x45f1(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x45b9(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x45c1(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x4564(%rip)
movss  0x4580(%rip),%xmm0
ucomiss 0x4555(%rip),%xmm0
jbe    3b4a <slasq3+0x2a1a>
movss  0x4547(%rip),%xmm0
movss  %xmm0,0x4563(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,0x4550(%rip)
xorps  %xmm0,%xmm0
ucomiss 0x4526(%rip),%xmm0
jbe    3b45 <slasq3+0x2a15>
jmp    51b1 <slasq3+0x4081>
jmp    3b4a <slasq3+0x2a1a>
mov    0x4530(%rip),%eax
mov    %eax,0x4502(%rip)
movss  0x4502(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x44ca(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
movss  0x44d5(%rip),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x4478(%rip)
movss  0x4494(%rip),%xmm0
ucomiss 0x4469(%rip),%xmm0
jbe    3c19 <slasq3+0x2ae9>
movss  0x445b(%rip),%xmm0
movss  %xmm0,0x4477(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x4467(%rip)
movss  0x443f(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movaps 0x23a0(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     3cae <slasq3+0x2b7e>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
xorps  %xmm0,%xmm0
movss  %xmm0,0x43e2(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    %eax,0x43d2(%rip)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
ucomiss (%rax,%rcx,4),%xmm0
jbe    3cd0 <slasq3+0x2ba0>
jmp    51b1 <slasq3+0x4081>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x1,%eax
mov    %eax,-0x40(%rbp)
movl   $0x1,0x437e(%rip)
mov    0x4378(%rip),%eax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jg     3d68 <slasq3+0x2c38>
mov    -0x28(%rbp),%rax
mov    0x435d(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    0x4348(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
divss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
mov    0x4333(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    0x431b(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    0x430a(%rip),%eax
add    $0x1,%eax
mov    %eax,0x4301(%rip)
jmp    3ce6 <slasq3+0x2bb6>
movss  0x4330(%rip),%xmm0
mov    0x10(%rbp),%rax
addss  (%rax),%xmm0
movss  %xmm0,(%rax)
mov    0x28(%rbp),%rax
movl   $0x1,(%rax)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
movss  %xmm0,0x42b1(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x34(%rbp),%xmm0
movss  %xmm0,0x42a0(%rip)
mov    -0x8(%rbp),%rax
cmpl   $0x2,(%rax)
jg     3dc2 <slasq3+0x2c92>
jmp    5287 <slasq3+0x4157>
movl   $0x0,0x4278(%rip)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x4268(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     3e04 <slasq3+0x2cd4>
movl   $0x1,0x4245(%rip)
jmp    3f43 <slasq3+0x2e13>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    3ef4 <slasq3+0x2dc4>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  -0x34(%rbp),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     3eef <slasq3+0x2dbf>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     3eea <slasq3+0x2dba>
movl   $0x1,0x415a(%rip)
jmp    3eef <slasq3+0x2dbf>
jmp    3f3e <slasq3+0x2e0e>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     3f39 <slasq3+0x2e09>
movl   $0x1,0x410b(%rip)
jmp    3f3e <slasq3+0x2e0e>
jmp    3f43 <slasq3+0x2e13>
cmpl   $0x0,0x40fa(%rip)
je     3f8b <slasq3+0x2e5b>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0xffffffff,%ecx
mov    %ecx,(%rax)
mov    0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,0x30(%rbp)
jmp    3db0 <slasq3+0x2c80>
movl   $0x0,0x40af(%rip)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x409f(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     3fcd <slasq3+0x2e9d>
movl   $0x1,0x407c(%rip)
jmp    41c0 <slasq3+0x3090>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    4110 <slasq3+0x2fe0>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
movss  (%rax),%xmm3
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm3
divss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x403e(%rip)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x401e(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
addss  0x3ffe(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x3fc6(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     410b <slasq3+0x2fdb>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
addss  0x3f95(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x3f59(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4106 <slasq3+0x2fd6>
movl   $0x1,0x3f3e(%rip)
jmp    410b <slasq3+0x2fdb>
jmp    41bb <slasq3+0x308b>
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm2
mov    -0x28(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm2
divss  %xmm2,%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
mulss  (%rax,%rcx,4),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     41b6 <slasq3+0x3086>
movl   $0x1,0x3e8e(%rip)
jmp    41bb <slasq3+0x308b>
jmp    41c0 <slasq3+0x3090>
cmpl   $0x0,0x3e7d(%rip)
je     4825 <slasq3+0x36f5>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    4225 <slasq3+0x30f5>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
jmp    4232 <slasq3+0x3102>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xe4(%rbp)
ff
movss  -0xe4(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    427d <slasq3+0x314d>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
jmp    428a <slasq3+0x315a>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0xe8(%rbp)
ff
movss  -0xe8(%rbp),%xmm0
ff
movss  %xmm0,0x3dce(%rip)
movss  0x3dc6(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    42b9 <slasq3+0x3189>
jp     42b9 <slasq3+0x3189>
jmp    47a9 <slasq3+0x3679>
movss  0x3da7(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jne    4416 <slasq3+0x32e6>
jp     4416 <slasq3+0x32e6>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x3d37(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movss  0x3cd9(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x1c58(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x3c9b(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0xf8(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1c0f(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x3c7f(%rip)
jmp    46a2 <slasq3+0x3572>
movss  0x3c4a(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
ucomiss (%rax,%rcx,4),%xmm0
jne    4570 <slasq3+0x3440>
jp     4570 <slasq3+0x3440>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x3bdd(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movss  0x3b7f(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x1afe(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x3b41(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0x108(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x100(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1ab5(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x3b25(%rip)
jmp    469d <slasq3+0x356d>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
subss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
divss  0x3aab(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
mov    -0x18(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movss  0x3a4d(%rip),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movss  -0x48(%rbp),%xmm0
movss  -0x48(%rbp),%xmm2
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  0x19cc(%rip),%xmm1
mulss  (%rax,%rcx,4),%xmm1
divss  0x3a0f(%rip),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvtss2sd %xmm0,%xmm0
call   1050 <sqrt@plt>
movsd  -0x118(%rbp),%xmm1
ff
movaps %xmm0,%xmm2
movsd  -0x110(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1983(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,0x39f3(%rip)
jmp    46a2 <slasq3+0x3572>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
movss  -0x48(%rbp),%xmm0
ucomiss -0x4c(%rbp),%xmm0
jbe    4731 <slasq3+0x3601>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x11c(%rbp)
ff
jmp    473e <slasq3+0x360e>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x11c(%rbp)
ff
movss  -0x11c(%rbp),%xmm0
ff
divss  0x3942(%rip),%xmm0
movss  %xmm0,-0x120(%rbp)
ff
movss  -0x50(%rbp),%xmm1
movss  -0x54(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    477b <slasq3+0x364b>
movss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x124(%rbp)
ff
jmp    4788 <slasq3+0x3658>
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0x124(%rbp)
ff
movss  -0x120(%rbp),%xmm0
ff
movss  -0x124(%rbp),%xmm1
ff
mulss  %xmm1,%xmm0
movss  %xmm0,0x38f0(%rip)
jmp    47bf <slasq3+0x368f>
xorps  %xmm0,%xmm0
movss  %xmm0,0x38dc(%rip)
xorps  %xmm0,%xmm0
movss  %xmm0,0x38d5(%rip)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
addss  0x38c1(%rip),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movss  0x38a5(%rip),%xmm0
mov    0x10(%rbp),%rax
addss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0xfffffffe,%ecx
mov    %ecx,(%rax)
mov    0x30(%rbp),%eax
add    $0x2,%eax
mov    %eax,0x30(%rbp)
jmp    3db0 <slasq3+0x2c80>
cmpl   $0x0,0x30(%rbp)
jne    48a4 <slasq3+0x3774>
mov    0x384b(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
movss  0x3841(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm0
subss  0x3848(%rip),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4882 <slasq3+0x3752>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x128(%rbp)
ff
jmp    488f <slasq3+0x375f>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x128(%rbp)
ff
movss  -0x128(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
jmp    4ab9 <slasq3+0x3989>
cmpl   $0x0,0x30(%rbp)
jle    4ab4 <slasq3+0x3984>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    490a <slasq3+0x37da>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x12c(%rbp)
ff
jmp    4917 <slasq3+0x37e7>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x12c(%rbp)
ff
movss  -0x12c(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4966 <slasq3+0x3836>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x130(%rbp)
ff
jmp    4973 <slasq3+0x3843>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x130(%rbp)
ff
movss  -0x130(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    49a8 <slasq3+0x3878>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x134(%rbp)
ff
jmp    49b8 <slasq3+0x3888>
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0x134(%rbp)
ff
movss  -0x134(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    49ee <slasq3+0x38be>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x138(%rbp)
ff
jmp    49ff <slasq3+0x38cf>
mov    -0x10(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x138(%rbp)
ff
movss  -0x138(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm1
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
ucomiss %xmm1,%xmm0
jbe    4a35 <slasq3+0x3905>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x13c(%rbp)
ff
jmp    4a46 <slasq3+0x3916>
mov    -0x10(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x13c(%rbp)
ff
movss  -0x13c(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
cmpl   $0x1,0x30(%rbp)
jne    4a71 <slasq3+0x3941>
mov    0x35f2(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    4a9d <slasq3+0x396d>
cmpl   $0x2,0x30(%rbp)
jne    4a8c <slasq3+0x395c>
mov    0x35db(%rip),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    4a98 <slasq3+0x3968>
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
jmp    4a9d <slasq3+0x396d>
movl   $0x0,0x35a1(%rip)
mov    -0x8(%rbp),%rax
imul   $0x64,(%rax),%eax
mov    %eax,0x35b8(%rip)
jmp    4ab9 <slasq3+0x3989>
movl   $0x0,0x35d5(%rip)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    $0x3,%eax
mov    %eax,0x35ba(%rip)
cmpl   $0x3,0x35b3(%rip)
jl     4c6a <slasq3+0x3b3a>
mov    -0x18(%rbp),%rax
mov    0x35a3(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm1
movss  0x3554(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4c51 <slasq3+0x3b21>
mov    -0x10(%rbp),%rax
mov    0x357d(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    0x3560(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
mov    -0x10(%rbp),%rax
mov    0x3546(%rip),%ecx
add    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    0x3529(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x54(%rbp)
mov    -0x18(%rbp),%rax
mov    0x350f(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x140(%rbp)
ff
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4bb5 <slasq3+0x3a85>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x144(%rbp)
ff
jmp    4bc2 <slasq3+0x3a92>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x144(%rbp)
ff
movss  -0x144(%rbp),%xmm0
ff
movss  %xmm0,-0x148(%rbp)
ff
movss  -0x50(%rbp),%xmm1
movss  -0x54(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4bf7 <slasq3+0x3ac7>
movss  -0x50(%rbp),%xmm0
movss  %xmm0,-0x14c(%rbp)
ff
jmp    4c04 <slasq3+0x3ad4>
movss  -0x54(%rbp),%xmm0
movss  %xmm0,-0x14c(%rbp)
ff
movss  -0x140(%rbp),%xmm1
ff
movss  -0x148(%rbp),%xmm0
ff
movss  -0x14c(%rbp),%xmm2
ff
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x3418(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4c4c <slasq3+0x3b1c>
movl   $0x1,0x3451(%rip)
jmp    4ee5 <slasq3+0x3db5>
jmp    4c51 <slasq3+0x3b21>
jmp    4c56 <slasq3+0x3b26>
mov    0x3430(%rip),%eax
add    $0xffffffff,%eax
mov    %eax,0x3427(%rip)
jmp    4ad2 <slasq3+0x39a2>
movl   $0x2,0x3418(%rip)
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm1
movss  0x33cf(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4c9d <slasq3+0x3b6d>
movl   $0x1,0x3400(%rip)
jmp    4dce <slasq3+0x3c9e>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    4d75 <slasq3+0x3c45>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
movss  (%rax),%xmm3
mov    -0x10(%rbp),%rax
addss  (%rax),%xmm3
divss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,0x338b(%rip)
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm1
movss  0x337a(%rip),%xmm0
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm2
addss  0x336a(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x3332(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4d70 <slasq3+0x3c40>
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm1
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm2
addss  0x3330(%rip),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  0x32f4(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4d6b <slasq3+0x3c3b>
movl   $0x1,0x332d(%rip)
jmp    4d70 <slasq3+0x3c40>
jmp    4dc9 <slasq3+0x3c99>
mov    -0x18(%rbp),%rax
movss  0x4(%rax),%xmm1
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x18(%rbp),%rax
addss  (%rax),%xmm2
mov    -0x10(%rbp),%rax
addss  0x4(%rax),%xmm2
divss  %xmm2,%xmm0
mov    -0x10(%rbp),%rax
mulss  0x4(%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     4dc4 <slasq3+0x3c94>
movl   $0x1,0x32d4(%rip)
jmp    4dc9 <slasq3+0x3c99>
jmp    4dce <slasq3+0x3c9e>
cmpl   $0x0,0x32c3(%rip)
je     4de0 <slasq3+0x3cb0>
jmp    4ee5 <slasq3+0x3db5>
movl   $0x1,0x32a2(%rip)
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm1
movss  0x325a(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     4e12 <slasq3+0x3ce2>
movl   $0x1,0x328b(%rip)
jmp    4ee0 <slasq3+0x3db0>
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    4eae <slasq3+0x3d7e>
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm1
movss  -0x34(%rbp),%xmm0
mov    0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    -0x10(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     4ea9 <slasq3+0x3d79>
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
divss  %xmm2,%xmm0
mulss  %xmm0,%xmm1
movss  -0x38(%rbp),%xmm0
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm2
mov    0x10(%rbp),%rax
addss  (%rax),%xmm2
mulss  %xmm2,%xmm0
ucomiss %xmm1,%xmm0
jb     4ea4 <slasq3+0x3d74>
movl   $0x1,0x31f4(%rip)
jmp    4ea9 <slasq3+0x3d79>
jmp    4edb <slasq3+0x3dab>
mov    -0x18(%rbp),%rax
movss  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movss  (%rax),%xmm0
mulss  -0x38(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jb     4ed6 <slasq3+0x3da6>
movl   $0x1,0x31c2(%rip)
jmp    4edb <slasq3+0x3dab>
jmp    4ee0 <slasq3+0x3db0>
jmp    4ee5 <slasq3+0x3db5>
cmpl   $0x0,0x31ac(%rip)
je     507f <slasq3+0x3f4f>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4f4e <slasq3+0x3e1e>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x150(%rbp)
ff
jmp    4f5b <slasq3+0x3e2b>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x150(%rbp)
ff
movss  -0x150(%rbp),%xmm0
ff
movss  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x2,%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
movss  %xmm0,-0x4c(%rbp)
movss  -0x48(%rbp),%xmm1
movss  -0x4c(%rbp),%xmm0
ucomiss %xmm1,%xmm0
jbe    4faa <slasq3+0x3e7a>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x154(%rbp)
ff
jmp    4fb7 <slasq3+0x3e87>
movss  -0x4c(%rbp),%xmm0
movss  %xmm0,-0x154(%rbp)
ff
movss  -0x154(%rbp),%xmm0
ff
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
mov    0x20(%rbp),%rax
mov    (%rax),%eax
add    $0x1,%eax
mov    %eax,0x30ce(%rip)
mov    0x30b0(%rip),%ecx
mov    0x20(%rbp),%rax
add    (%rax),%ecx
mov    %ecx,(%rax)
movl   $0x1,-0x40(%rbp)
mov    0x18(%rbp),%rax
mov    (%rax),%eax
sub    0x3095(%rip),%eax
mov    %eax,-0x44(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x44(%rbp),%eax
jle    5014 <slasq3+0x3ee4>
mov    -0x40(%rbp),%eax
mov    %eax,-0x158(%rbp)
jmp    501d <slasq3+0x3eed>
mov    -0x44(%rbp),%eax
mov    %eax,-0x158(%rbp)
mov    -0x158(%rbp),%ecx
mov    0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    0x305d(%rip),%edx
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
sub    %edx,%ecx
mov    %ecx,(%rax)
mov    0x10(%rbp),%rax
movss  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mov    0x3041(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
cvtsi2ssl 0x3046(%rip),%xmm0
mov    -0x28(%rbp),%rax
mov    0x3024(%rip),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
movl   $0x0,0x30(%rbp)
jmp    5287 <slasq3+0x4157>
movss  0x3019(%rip),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    51a5 <slasq3+0x4075>
jp     51a5 <slasq3+0x4075>
movss  0x2fe3(%rip),%xmm1
movss  0x2fab(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     51a5 <slasq3+0x4075>
mov    0x18(%rbp),%rax
mov    (%rax),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
je     51a5 <slasq3+0x4075>
cmpl   $0x0,0x30(%rbp)
jne    51a5 <slasq3+0x4075>
cmpl   $0x0,0x2f73(%rip)
jle    51a5 <slasq3+0x4075>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    0x2f99(%rip),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x28(%rbp),%rsi
mov    0x2f89(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    0x2f2f(%rip),%edx
mov    -0x10(%rbp),%rcx
mov    0x2f6d(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rcx
mov    0x2f12(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x10(%rbp),%rax
mov    -0x8(%rbp),%rcx
mov    (%rcx),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
sub    0x2f2f(%rip),%eax
mov    %eax,-0x40(%rbp)
mov    -0x40(%rbp),%edi
mov    -0x20(%rbp),%rsi
mov    0x2f1f(%rip),%eax
add    $0x1,%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
mov    0x2ec2(%rip),%edx
mov    -0x18(%rbp),%rcx
mov    0x2f00(%rip),%eax
sub    $0x1,%eax
cltq
shl    $0x2,%rax
add    %rax,%rcx
mov    0x2ea5(%rip),%r8d
mov    $0x0,%al
call   1030 <scopy@plt>
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax)
movl   $0x0,0x30(%rbp)
jmp    158f <slasq3+0x45f>
mov    0x2ee5(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2edc(%rip)
movss  0x2ed8(%rip),%xmm0
mov    -0x30(%rbp),%rax
movss  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
movss  (%rax),%xmm1
movss  0x2e74(%rip),%xmm0
ucomiss %xmm1,%xmm0
jae    51f6 <slasq3+0x40c6>
cmpl   $0x2,0x2eac(%rip)
jl     5206 <slasq3+0x40d6>
xorps  %xmm0,%xmm0
movss  %xmm0,0x2e9f(%rip)
jmp    35ce <slasq3+0x249e>
movss  0x2e92(%rip),%xmm0
addss  0x2e4a(%rip),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jbe    523e <slasq3+0x410e>
movss  -0x48(%rbp),%xmm0
movss  %xmm0,-0x15c(%rbp)
ff
jmp    524e <slasq3+0x411e>
xorps  %xmm0,%xmm0
movss  %xmm0,-0x15c(%rbp)
ff
jmp    524e <slasq3+0x411e>
movss  -0x15c(%rbp),%xmm0
ff
movss  %xmm0,0x2e42(%rip)
movss  0x2e3a(%rip),%xmm1
movss  0x2de6(%rip),%xmm0
ucomiss %xmm1,%xmm0
jb     5282 <slasq3+0x4152>
xorps  %xmm0,%xmm0
movss  %xmm0,0x2e1e(%rip)
jmp    35ce <slasq3+0x249e>
add    $0x160,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<slasq3>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x38,%rsp
movaps %xmm1,%xmm9
movaps %xmm0,%xmm10
mov    %r8,%r13
mov    %rcx,%r12
mov    %rdx,%r14
mov    %rsi,%rbp
mov    %rdi,%r11
mov    0x90(%rsp),%ecx
mov    0x88(%rsp),%rbx
mov    0x70(%rsp),%r10
movl   $0x0,0x3ec9(%rip)
movl   $0x0,0x3ee7(%rip)
movss  (%r9),%xmm0
movss  %xmm0,0x3ed2(%rip)
movss  (%r10),%xmm0
movss  %xmm2,0x34(%rsp)
movaps %xmm2,%xmm1
maxss  %xmm0,%xmm1
mulss  %xmm9,%xmm0
movss  %xmm0,0x3e97(%rip)
mulss  %xmm9,%xmm1
movss  %xmm1,0x3e92(%rip)
movslq (%rdi),%rdi
imul   $0x64,%edi,%eax
mov    %eax,0x3e92(%rip)
cmp    $0x4,%rdi
mov    %r9,0x18(%rsp)
mov    %r11,0x10(%rsp)
movss  %xmm9,0xc(%rsp)
movss  %xmm10,0x8(%rsp)
jl     1537 <slasq3+0x407>
lea    -0x2(%rdi),%r8d
lea    -0x1(%rdi),%eax
cmpl   $0x1,(%rbx)
jne    138b <slasq3+0x25b>
movss  0x0(%rbp),%xmm0
lea    -0x1(%rax),%rdx
mov    $0x2,%ebx
mov    $0x1,%ecx
cmp    $0x8,%rdx
jb     12c0 <slasq3+0x190>
mov    %rdx,%rsi
and    $0xfffffffffffffff8,%rsi
lea    0x1(%rsi),%rcx
shufps $0x0,%xmm0,%xmm0
xorps  %xmm1,%xmm1
movdqa 0x1dd5(%rip),%xmm2
xor    %ebx,%ebx
nopl   (%rax)
movups 0x4(%rbp,%rbx,4),%xmm3
shufps $0x3,%xmm3,%xmm0
shufps $0x98,%xmm3,%xmm0
movaps %xmm3,%xmm4
cmpltps %xmm0,%xmm3
movups 0x14(%rbp,%rbx,4),%xmm0
shufps $0x3,%xmm0,%xmm4
shufps $0x98,%xmm0,%xmm4
psubd  %xmm3,%xmm2
movaps %xmm0,%xmm3
cmpltps %xmm4,%xmm3
psubd  %xmm3,%xmm1
movups (%r14,%rbx,4),%xmm3
movups 0x4(%r14,%rbx,4),%xmm4
cmpltps %xmm3,%xmm4
psubd  %xmm4,%xmm2
movups 0x10(%r14,%rbx,4),%xmm3
movups 0x14(%r14,%rbx,4),%xmm4
cmpltps %xmm3,%xmm4
psubd  %xmm4,%xmm1
add    $0x8,%rbx
cmp    %rbx,%rsi
jne    1230 <slasq3+0x100>
paddd  %xmm2,%xmm1
pshufd $0xee,%xmm1,%xmm2
paddd  %xmm1,%xmm2
pshufd $0x55,%xmm2,%xmm1
paddd  %xmm2,%xmm1
movd   %xmm1,%ebx
shufps $0xff,%xmm0,%xmm0
cmp    %rsi,%rdx
je     12ef <slasq3+0x1bf>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movss  0x0(%rbp,%rcx,4),%xmm1
xor    %edx,%edx
ucomiss %xmm1,%xmm0
seta   %dl
add    %ebx,%edx
movss  -0x4(%r14,%rcx,4),%xmm0
xor    %ebx,%ebx
ucomiss (%r14,%rcx,4),%xmm0
seta   %bl
add    %edx,%ebx
add    $0x1,%rcx
movaps %xmm1,%xmm0
cmp    %rcx,%rax
jne    12c0 <slasq3+0x190>
movss  -0x8(%rbp,%rdi,4),%xmm0
cltq
xor    %ecx,%ecx
ucomiss 0x0(%rbp,%rax,4),%xmm0
seta   %cl
add    %ebx,%ecx
cmp    %edi,%ecx
mov    0x88(%rsp),%rbx
mov    0x90(%rsp),%ecx
jge    1537 <slasq3+0x407>
mov    %rbp,%rsi
mov    $0x1,%edx
mov    %r12,%rcx
mov    $0xffffffff,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
mov    0x10(%rsp),%rax
mov    (%rax),%edi
add    $0xffffffff,%edi
mov    %r14,%rsi
mov    $0x1,%edx
mov    %r13,%rcx
mov    $0xffffffff,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mov    0x78(%rsp),%rdx
mov    (%rdx),%eax
mov    $0x2,%r15d
test   %eax,%eax
jne    1523 <slasq3+0x3f3>
jmp    152d <slasq3+0x3fd>
movss  (%r12),%xmm0
lea    -0x1(%rax),%rbx
mov    $0x2,%ecx
mov    $0x1,%edx
cmp    $0x8,%rbx
jb     1460 <slasq3+0x330>
mov    %rbx,%rsi
and    $0xfffffffffffffff8,%rsi
lea    0x1(%rsi),%rdx
shufps $0x0,%xmm0,%xmm0
xorps  %xmm1,%xmm1
movdqa 0x1c3d(%rip),%xmm2
xor    %ecx,%ecx
cs nopw 0x0(%rax,%rax,1)
nop
movups 0x4(%r12,%rcx,4),%xmm3
shufps $0x3,%xmm3,%xmm0
shufps $0x98,%xmm3,%xmm0
movaps %xmm3,%xmm4
cmpltps %xmm0,%xmm3
movups 0x14(%r12,%rcx,4),%xmm0
shufps $0x3,%xmm0,%xmm4
shufps $0x98,%xmm0,%xmm4
psubd  %xmm3,%xmm2
movaps %xmm0,%xmm3
cmpltps %xmm4,%xmm3
psubd  %xmm3,%xmm1
movups 0x0(%r13,%rcx,4),%xmm3
movups 0x4(%r13,%rcx,4),%xmm4
cmpltps %xmm3,%xmm4
psubd  %xmm4,%xmm2
movups 0x10(%r13,%rcx,4),%xmm3
movups 0x14(%r13,%rcx,4),%xmm4
cmpltps %xmm3,%xmm4
psubd  %xmm4,%xmm1
add    $0x8,%rcx
cmp    %rcx,%rsi
jne    13d0 <slasq3+0x2a0>
paddd  %xmm2,%xmm1
pshufd $0xee,%xmm1,%xmm2
paddd  %xmm1,%xmm2
pshufd $0x55,%xmm2,%xmm1
paddd  %xmm2,%xmm1
movd   %xmm1,%ecx
shufps $0xff,%xmm0,%xmm0
cmp    %rsi,%rbx
je     1491 <slasq3+0x361>
cs nopw 0x0(%rax,%rax,1)
movss  (%r12,%rdx,4),%xmm1
xor    %esi,%esi
ucomiss %xmm1,%xmm0
seta   %sil
add    %ecx,%esi
movss  -0x4(%r13,%rdx,4),%xmm0
xor    %ecx,%ecx
ucomiss 0x0(%r13,%rdx,4),%xmm0
seta   %cl
add    %esi,%ecx
add    $0x1,%rdx
movaps %xmm1,%xmm0
cmp    %rdx,%rax
jne    1460 <slasq3+0x330>
movslq %r8d,%rdx
movss  (%r12,%rdx,4),%xmm0
cltq
xor    %edx,%edx
ucomiss (%r12,%rax,4),%xmm0
seta   %dl
add    %ecx,%edx
cmp    %edi,%edx
mov    0x88(%rsp),%rbx
mov    0x90(%rsp),%ecx
jge    1537 <slasq3+0x407>
mov    $0x1,%r15d
mov    %r12,%rsi
mov    $0x1,%edx
mov    %rbp,%rcx
mov    $0xffffffff,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
mov    0x10(%rsp),%rax
mov    (%rax),%edi
add    $0xffffffff,%edi
mov    %r13,%rsi
mov    $0x1,%edx
mov    %r14,%rcx
mov    $0xffffffff,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mov    0x78(%rsp),%rdx
mov    (%rdx),%eax
test   %eax,%eax
je     152d <slasq3+0x3fd>
mov    (%r11),%ecx
sub    %eax,%ecx
add    $0x1,%ecx
mov    %ecx,(%rdx)
mov    %r15d,(%rbx)
mov    0x90(%rsp),%ecx
mov    (%rbx),%eax
cmp    $0xfffffffd,%ecx
jne    1557 <slasq3+0x427>
movss  (%r10),%xmm8
mov    $0xfffffffd,%r15d
cmp    $0x1,%eax
je     1b8d <slasq3+0xa5d>
jmp    28a3 <slasq3+0x1773>
cmp    $0x2,%eax
jne    2263 <slasq3+0x1133>
mov    %ecx,0x20(%rsp)
movl   $0x0,0x3af2(%rip)
mov    0x78(%rsp),%rax
mov    (%rax),%eax
test   %eax,%eax
jne    1588 <slasq3+0x458>
movss  (%r9),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    1588 <slasq3+0x458>
jnp    15d9 <slasq3+0x4a9>
cmpl   $0x0,0x3aad(%rip)
jle    15a2 <slasq3+0x472>
movss  0x3aaf(%rip),%xmm0
ucomiss 0x3abc(%rip),%xmm0
jae    15d9 <slasq3+0x4a9>
mov    (%r11),%ecx
lea    0x1f(%rcx),%esi
test   %ecx,%ecx
cmovns %ecx,%esi
sar    $0x5,%esi
cmp    $0x6,%esi
mov    $0x5,%edx
cmovge %esi,%edx
lea    (%rdx,%rdx,1),%edi
add    $0x1,%edi
mov    $0x1,%esi
cmp    %ecx,%edi
jge    15e5 <slasq3+0x4b5>
lea    (%rdx,%rax,1),%esi
cmp    %ecx,%esi
jle    15e9 <slasq3+0x4b9>
add    %edx,%edx
sub    %edx,%ecx
mov    %ecx,%esi
jmp    15f5 <slasq3+0x4c5>
movl   $0x0,0x3a81(%rip)
jmp    1634 <slasq3+0x504>
mov    %ecx,%edi
jmp    15f5 <slasq3+0x4c5>
sub    %edx,%eax
test   %eax,%eax
mov    $0x1,%esi
cmovg  %eax,%esi
movslq %esi,%rax
lea    (%r12,%rax,4),%rsi
add    $0xfffffffffffffffc,%rsi
lea    -0x4(,%rax,4),%rdx
ff
add    %r13,%rdx
lea    0x3a52(%rip),%rcx
mov    %r9,%r8
xor    %eax,%eax
call   1040 <slasq4@plt>
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
movss  0xc(%rsp),%xmm9
movss  0x8(%rsp),%xmm10
mov    0x3a19(%rip),%r11d
mov    0x39fb(%rip),%ecx
lea    0x1(%rcx),%eax
cmp    %r11d,%ecx
jge    1966 <slasq3+0x836>
mov    0x3a0d(%rip),%ecx
movss  0x39ed(%rip),%xmm0
lea    0x1(%r11),%r8d
movss  0x39fd(%rip),%xmm4
xorps  %xmm1,%xmm1
movaps 0x199f(%rip),%xmm2
jmp    1696 <slasq3+0x566>
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movss  %xmm4,0x39dc(%rip)
lea    0x1(%rax),%edx
cmp    %r11d,%eax
mov    %edx,%eax
je     1963 <slasq3+0x833>
mov    %ecx,%esi
ucomiss %xmm1,%xmm4
movss  (%r12),%xmm3
jne    1720 <slasq3+0x5f0>
jp     1720 <slasq3+0x5f0>
movss  %xmm3,0x39af(%rip)
mov    0x10(%rsp),%rcx
movslq (%rcx),%rdi
lea    -0x2(%rdi),%ecx
xor    %ebx,%ebx
cmp    $0x4,%rdi
jge    17c0 <slasq3+0x690>
movaps %xmm3,%xmm4
add    $0x1,%ebx
mov    %ebx,0x3988(%rip)
mov    %ebx,0x397a(%rip)
movss  -0xc(%r13,%rdi,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0xc(%rbp,%rdi,4)
divss  %xmm5,%xmm3
mulss  -0x8(%r12,%rdi,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    1810 <slasq3+0x6e0>
movss  %xmm3,0x3959(%rip)
lea    -0x1(%rdi),%ecx
mov    %ecx,0x394c(%rip)
mov    %ecx,%ebx
movaps %xmm3,%xmm4
jmp    1813 <slasq3+0x6e3>
cs nopw 0x0(%rax,%rax,1)
subss  %xmm4,%xmm3
movss  %xmm3,0x3930(%rip)
movl   $0x0,0x3922(%rip)
ucomiss %xmm3,%xmm1
ja     187a <slasq3+0x74a>
mov    0x10(%rsp),%rcx
movslq (%rcx),%rdi
lea    -0x2(%rdi),%ecx
xor    %ebx,%ebx
cmp    $0x4,%rdi
jge    18b8 <slasq3+0x788>
movaps %xmm3,%xmm5
add    $0x1,%ebx
mov    %ebx,0x38f6(%rip)
mov    %ebx,0x38e8(%rip)
movss  -0xc(%r13,%rdi,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0xc(%rbp,%rdi,4)
divss  %xmm4,%xmm3
mulss  -0x8(%r12,%rdi,4),%xmm3
movss  0x38d8(%rip),%xmm4
subss  %xmm4,%xmm3
ucomiss %xmm3,%xmm5
jbe    1926 <slasq3+0x7f6>
movss  %xmm3,0x38bb(%rip)
lea    -0x1(%rdi),%ecx
mov    %ecx,0x38ae(%rip)
ucomiss %xmm3,%xmm1
mov    %ecx,%ebx
movaps %xmm3,%xmm5
ja     187a <slasq3+0x74a>
jmp    1929 <slasq3+0x7f9>
nopl   (%rax)
mov    %ecx,%ecx
xor    %ebx,%ebx
mov    $0x1,%edx
movaps %xmm3,%xmm4
jmp    17dd <slasq3+0x6ad>
xchg   %ax,%ax
add    $0x1,%rdx
cmp    %rdx,%rcx
je     16c7 <slasq3+0x597>
movss  -0x4(%r13,%rdx,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0x4(%rbp,%rdx,4)
divss  %xmm5,%xmm3
mulss  (%r12,%rdx,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    17d0 <slasq3+0x6a0>
movss  %xmm3,0x3857(%rip)
mov    %edx,%ebx
movaps %xmm3,%xmm4
jmp    17d0 <slasq3+0x6a0>
nopl   0x0(%rax)
lea    -0x1(%rdi),%ecx
mov    %ebx,0x3833(%rip)
movss  -0x8(%r13,%rdi,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0x8(%rbp,%rdi,4)
divss  %xmm5,%xmm3
movslq %ecx,%rcx
mulss  (%r12,%rcx,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    184a <slasq3+0x71a>
movss  %xmm3,0x3818(%rip)
mov    %edi,0x380e(%rip)
movss  %xmm3,0x0(%rbp,%rcx,4)
movaps %xmm3,%xmm4
andps  %xmm2,%xmm4
movss  (%r10),%xmm5
mulss  %xmm9,%xmm5
ucomiss %xmm4,%xmm5
jae    1982 <slasq3+0x852>
ucomiss %xmm3,%xmm1
jbe    199a <slasq3+0x86a>
movss  0x37ea(%rip),%xmm4
lea    0x1(%rsi),%ecx
mov    %ecx,0x37dd(%rip)
movss  %xmm4,(%r9)
ucomiss %xmm4,%xmm0
xorps  %xmm4,%xmm4
jae    1680 <slasq3+0x550>
test   %esi,%esi
jg     1680 <slasq3+0x550>
addss  0x37c0(%rip),%xmm3
maxss  %xmm1,%xmm3
movaps %xmm3,%xmm4
cmpnless %xmm0,%xmm4
andps  %xmm3,%xmm4
jmp    1680 <slasq3+0x550>
mov    %ecx,%edx
xor    %ebx,%ebx
mov    $0x1,%ecx
movaps %xmm3,%xmm5
jmp    18e2 <slasq3+0x7b2>
cs nopw 0x0(%rax,%rax,1)
mov    %ecx,%ebx
movaps %xmm3,%xmm5
add    $0x1,%rcx
cmp    %rcx,%rdx
je     1759 <slasq3+0x629>
movss  -0x4(%r13,%rcx,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0x4(%rbp,%rcx,4)
divss  %xmm4,%xmm3
mulss  (%r12,%rcx,4),%xmm3
movss  0x375f(%rip),%xmm4
subss  %xmm4,%xmm3
ucomiss %xmm3,%xmm5
jbe    18d5 <slasq3+0x7a5>
movss  %xmm3,0x3746(%rip)
mov    %ecx,0x373c(%rip)
ucomiss %xmm3,%xmm1
jbe    18d0 <slasq3+0x7a0>
jmp    187a <slasq3+0x74a>
lea    -0x1(%rdi),%ecx
mov    %ebx,0x371d(%rip)
movss  -0x8(%r13,%rdi,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0x8(%rbp,%rdi,4)
divss  %xmm4,%xmm3
movslq %ecx,%rcx
mulss  (%r12,%rcx,4),%xmm3
subss  0x370f(%rip),%xmm3
ucomiss %xmm3,%xmm5
ja     183c <slasq3+0x70c>
jmp    184a <slasq3+0x71a>
mov    %r8d,%eax
mov    %eax,0x36d0(%rip)
movss  (%r9),%xmm0
xorps  0x16a8(%rip),%xmm0
movss  %xmm0,(%r9)
jmp    25d5 <slasq3+0x14a5>
movl   $0x0,0x0(%rbp,%rcx,4)
movl   $0x0,0x36c8(%rip)
mov    %edi,0x36be(%rip)
mov    %eax,0x369c(%rip)
cmp    $0x2,%edi
mov    0x10(%rsp),%r11
jl     1b6d <slasq3+0xa3d>
mov    %edi,%eax
lea    -0x1(%rax),%r15
mov    $0x1,%ecx
cmp    $0x4,%r15
jb     1af9 <slasq3+0x9c9>
lea    (%r14,%rax,4),%rdx
add    $0xfffffffffffffffc,%rdx
lea    -0x4(,%rax,4),%rsi
ff
add    %r13,%rsi
cmp    %r14,%rsi
seta   %r10b
lea    -0x4(,%rax,4),%rdi
ff
add    %rbp,%rdi
cmp    %r13,%rdx
seta   %r8b
lea    0x4(%r12),%r11
cmp    %r14,%rdi
seta   %dil
lea    (%r12,%rax,4),%rsi
cmp    %rbp,%rdx
seta   %bl
and    %dil,%bl
cmp    %r14,%rsi
seta   %sil
cmp    %rdx,%r11
setb   %dl
and    %sil,%dl
test   %r8b,%r10b
jne    1aea <slasq3+0x9ba>
test   %bl,%bl
mov    0x70(%rsp),%r10
mov    0x18(%rsp),%r9
mov    0x10(%rsp),%r11
jne    1af9 <slasq3+0x9c9>
test   %dl,%dl
jne    1af9 <slasq3+0x9c9>
mov    %r15,%r8
and    $0xfffffffffffffffc,%r8
lea    0x1(%r8),%rcx
lea    -0x4(%r8),%rdx
mov    %rdx,%rsi
shr    $0x2,%rsi
add    $0x1,%rsi
xor    %edi,%edi
test   %rdx,%rdx
je     1ab3 <slasq3+0x983>
mov    %rsi,%rbx
and    $0xfffffffffffffffe,%rbx
xor    %edi,%edi
nopw   0x0(%rax,%rax,1)
movups 0x0(%r13,%rdi,4),%xmm0
movups 0x0(%rbp,%rdi,4),%xmm1
divps  %xmm1,%xmm0
movups 0x4(%r12,%rdi,4),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,(%r14,%rdi,4)
movups 0x10(%r13,%rdi,4),%xmm0
movups 0x10(%rbp,%rdi,4),%xmm1
divps  %xmm1,%xmm0
movups 0x14(%r12,%rdi,4),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,0x10(%r14,%rdi,4)
add    $0x8,%rdi
add    $0xfffffffffffffffe,%rbx
jne    1a70 <slasq3+0x940>
test   $0x1,%sil
je     1ae0 <slasq3+0x9b0>
lea    0x0(,%rdi,4),%rdx
movups 0x0(%r13,%rdi,4),%xmm0
movups 0x0(%rbp,%rdi,4),%xmm1
divps  %xmm1,%xmm0
or     $0x4,%rdx
movups (%r12,%rdx,1),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,(%r14,%rdi,4)
cmp    %r8,%r15
jne    1af9 <slasq3+0x9c9>
jmp    1b6d <slasq3+0xa3d>
mov    0x70(%rsp),%r10
mov    0x18(%rsp),%r9
mov    0x10(%rsp),%r11
mov    %rcx,%rdx
not    %rdx
test   $0x1,%al
jne    1b21 <slasq3+0x9f1>
movss  -0x4(%r13,%rcx,4),%xmm0
divss  -0x4(%rbp,%rcx,4),%xmm0
mulss  (%r12,%rcx,4),%xmm0
movss  %xmm0,-0x4(%r14,%rcx,4)
add    $0x1,%rcx
add    %rax,%rdx
je     1b6d <slasq3+0xa3d>
cs nopw 0x0(%rax,%rax,1)
movss  -0x4(%r13,%rcx,4),%xmm0
divss  -0x4(%rbp,%rcx,4),%xmm0
mulss  (%r12,%rcx,4),%xmm0
movss  %xmm0,-0x4(%r14,%rcx,4)
movss  0x0(%r13,%rcx,4),%xmm0
divss  0x0(%rbp,%rcx,4),%xmm0
mulss  0x4(%r12,%rcx,4),%xmm0
movss  %xmm0,(%r14,%rcx,4)
add    $0x2,%rcx
cmp    %rcx,%rax
jne    1b30 <slasq3+0xa00>
movss  0x34ee(%rip),%xmm8
addss  (%r10),%xmm8
movss  %xmm8,(%r10)
mov    0x88(%rsp),%rbx
mov    0x20(%rsp),%r15d
movl   $0x1,(%rbx)
movaps %xmm8,%xmm0
mulss  %xmm9,%xmm0
movss  %xmm0,0x349c(%rip)
mulss  %xmm10,%xmm8
movss  %xmm8,0x3492(%rip)
mov    (%r11),%edi
cmp    $0x3,%edi
jl     25d5 <slasq3+0x14a5>
xorps  %xmm11,%xmm11
movss  0x1465(%rip),%xmm12
xorpd  %xmm13,%xmm13
movsd  0x145f(%rip),%xmm14
jmp    1c08 <slasq3+0xad8>
nopl   0x0(%rax,%rax,1)
mov    %edx,%eax
movss  0x0(%rbp,%rax,4),%xmm1
addss  %xmm1,%xmm3
movss  %xmm3,0x0(%rbp,%rax,4)
mov    $0x1,%eax
mov    %edx,(%r11)
add    %eax,%r15d
mov    %edx,%edi
cmp    $0x3,%edx
jl     25d5 <slasq3+0x14a5>
lea    -0x1(%rdi),%edx
lea    -0x2(%rdi),%ecx
movss  (%r14,%rcx,4),%xmm2
movss  0x342b(%rip),%xmm8
ucomiss %xmm2,%xmm8
movss  (%r10),%xmm3
jae    1be0 <slasq3+0xab0>
ucomiss %xmm11,%xmm3
mov    %edx,%eax
movss  0x0(%rbp,%rax,4),%xmm1
jbe    1ce0 <slasq3+0xbb0>
movaps %xmm3,%xmm4
addss  %xmm1,%xmm4
movaps %xmm4,%xmm5
mulss  %xmm10,%xmm5
ucomiss %xmm2,%xmm5
jb     1c66 <slasq3+0xb36>
movaps %xmm1,%xmm5
divss  %xmm4,%xmm5
mulss  %xmm2,%xmm5
movaps %xmm4,%xmm6
mulss  %xmm9,%xmm6
ucomiss %xmm5,%xmm6
jae    1be8 <slasq3+0xab8>
lea    -0x3(%rdi),%edx
movss  (%r14,%rdx,4),%xmm5
ucomiss %xmm5,%xmm8
jae    1d2f <slasq3+0xbff>
ucomiss %xmm11,%xmm3
jbe    1d00 <slasq3+0xbd0>
movaps %xmm3,%xmm7
divss  %xmm4,%xmm7
mulss  %xmm2,%xmm7
addss  %xmm3,%xmm7
movss  0x0(%rbp,%rcx,4),%xmm4
movaps %xmm4,%xmm6
addss  %xmm7,%xmm6
divss  %xmm6,%xmm7
mulss  %xmm5,%xmm7
movss  0x3395(%rip),%xmm0
ucomiss %xmm7,%xmm0
jb     1f2f <slasq3+0xdff>
movaps %xmm4,%xmm0
divss  %xmm6,%xmm0
mulss  %xmm0,%xmm5
movss  0x3375(%rip),%xmm0
ucomiss %xmm5,%xmm0
jae    1d35 <slasq3+0xc05>
jmp    1f2f <slasq3+0xdff>
cs nopw 0x0(%rax,%rax,1)
nop
movaps %xmm1,%xmm4
mulss  %xmm9,%xmm4
ucomiss %xmm2,%xmm4
jae    1be8 <slasq3+0xab8>
lea    -0x3(%rdi),%edx
movss  (%r14,%rdx,4),%xmm5
ucomiss %xmm5,%xmm8
jae    1d2f <slasq3+0xbff>
movss  0x0(%r13,%rcx,4),%xmm0
addss  %xmm1,%xmm0
movss  0x0(%rbp,%rcx,4),%xmm4
addss  %xmm4,%xmm0
movaps %xmm1,%xmm6
divss  %xmm0,%xmm6
mulss  %xmm4,%xmm6
mulss  %xmm9,%xmm6
ucomiss %xmm5,%xmm6
jae    1d35 <slasq3+0xc05>
jmp    1f2f <slasq3+0xdff>
movss  0x0(%rbp,%rcx,4),%xmm4
movaps %xmm1,%xmm0
maxss  %xmm4,%xmm0
maxss  %xmm2,%xmm0
ucomiss %xmm11,%xmm0
jne    1d48 <slasq3+0xc18>
jnp    1d58 <slasq3+0xc28>
ucomiss %xmm4,%xmm0
jne    1d65 <slasq3+0xc35>
jp     1d65 <slasq3+0xc35>
movaps %xmm1,%xmm3
subss  %xmm4,%xmm3
jmp    1d7b <slasq3+0xc4b>
mov    %ecx,%edx
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
jmp    1e5d <slasq3+0xd2d>
ucomiss %xmm1,%xmm0
jne    1e7e <slasq3+0xd4e>
jp     1e7e <slasq3+0xd4e>
movaps %xmm4,%xmm3
subss  %xmm1,%xmm3
addss  %xmm2,%xmm3
divss  %xmm0,%xmm3
addss  %xmm4,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm4,%xmm4
cvtss2sd %xmm1,%xmm4
xorps  %xmm5,%xmm5
cvtss2sd %xmm0,%xmm5
mulss  %xmm12,%xmm2
divss  %xmm0,%xmm2
mulss  %xmm3,%xmm3
addss  %xmm2,%xmm3
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
ucomisd %xmm13,%xmm1
jae    1e18 <slasq3+0xce8>
movapd %xmm1,%xmm0
movsd  %xmm5,0x20(%rsp)
movsd  %xmm4,0x28(%rsp)
call   1050 <sqrt@plt>
movsd  0x28(%rsp),%xmm4
movsd  0x20(%rsp),%xmm5
movsd  0x124f(%rip),%xmm14
xorpd  %xmm13,%xmm13
movss  0x1239(%rip),%xmm12
xorps  %xmm11,%xmm11
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mulsd  %xmm0,%xmm5
addsd  %xmm4,%xmm5
mulsd  %xmm14,%xmm5
xorps  %xmm0,%xmm0
cvtsd2ss %xmm5,%xmm0
movslq (%r11),%rdx
lea    -0x1(%rdx),%rax
movss  -0x8(%rbp,%rdx,4),%xmm2
movss  -0x4(%rbp,%rdx,4),%xmm1
add    $0xfffffffffffffffe,%rdx
movaps %xmm1,%xmm3
maxss  %xmm2,%xmm3
divss  %xmm0,%xmm3
minss  %xmm2,%xmm1
mulss  %xmm3,%xmm1
movss  (%r10),%xmm3
mov    %edx,%ecx
addss  %xmm3,%xmm0
movss  %xmm0,0x0(%rbp,%rdx,4)
addss  (%r10),%xmm1
movss  %xmm1,0x0(%rbp,%rax,4)
mov    $0x2,%eax
mov    %ecx,%edx
jmp    1bf7 <slasq3+0xac7>
movaps %xmm1,%xmm3
subss  %xmm4,%xmm3
addss  %xmm2,%xmm3
divss  %xmm0,%xmm3
addss  %xmm4,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtss2sd %xmm1,%xmm2
xorps  %xmm5,%xmm5
cvtss2sd %xmm0,%xmm5
mulss  %xmm12,%xmm4
divss  %xmm0,%xmm4
mulss  %xmm3,%xmm3
addss  %xmm4,%xmm3
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
ucomisd %xmm13,%xmm1
jae    1f22 <slasq3+0xdf2>
movapd %xmm1,%xmm0
movsd  %xmm5,0x20(%rsp)
movsd  %xmm2,0x28(%rsp)
call   1050 <sqrt@plt>
movsd  0x28(%rsp),%xmm2
movsd  0x20(%rsp),%xmm5
movsd  0x1145(%rip),%xmm14
xorpd  %xmm13,%xmm13
movss  0x112f(%rip),%xmm12
xorps  %xmm11,%xmm11
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mulsd  %xmm0,%xmm5
addsd  %xmm2,%xmm5
jmp    1e20 <slasq3+0xcf0>
test   %r15d,%r15d
je     1f71 <slasq3+0xe41>
jle    1fc4 <slasq3+0xe94>
minss  %xmm4,%xmm1
minss  0x0(%rbp,%rdx,4),%xmm1
minss  0x0(%rbp),%xmm1
minss  0x4(%rbp),%xmm1
minss  0x8(%rbp),%xmm1
movss  %xmm1,(%r9)
cmp    $0x2,%r15d
je     1fa1 <slasq3+0xe71>
cmp    $0x1,%r15d
mov    0x78(%rsp),%rax
jne    1fac <slasq3+0xe7c>
mov    0x30dd(%rip),%edi
jmp    1fac <slasq3+0xe7c>
mov    0x30e1(%rip),%eax
mov    0x78(%rsp),%rcx
mov    %eax,(%rcx)
movss  (%r9),%xmm0
subss  0x30d9(%rip),%xmm0
movss  0x30c9(%rip),%xmm1
minss  %xmm0,%xmm1
movss  %xmm1,(%r9)
mov    (%r11),%edi
jmp    1fc4 <slasq3+0xe94>
mov    0x30a9(%rip),%edi
mov    0x78(%rsp),%rax
mov    %edi,(%rax)
movl   $0x0,0x3084(%rip)
mov    (%r11),%edi
imul   $0x64,%edi,%eax
mov    %eax,0x3090(%rip)
lea    -0x3(%rdi),%eax
cmp    $0x6,%edi
jl     207b <slasq3+0xf4b>
movss  0x306c(%rip),%xmm1
movss  0x3060(%rip),%xmm2
mov    %eax,%ecx
jmp    1ffd <slasq3+0xecd>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    0x1(%rdx),%rsi
mov    %rdx,%rcx
cmp    $0x3,%rsi
jbe    207b <slasq3+0xf4b>
lea    -0x1(%rcx),%rdx
mov    %edx,%esi
movss  (%r14,%rsi,4),%xmm3
ucomiss %xmm3,%xmm1
jb     1ff0 <slasq3+0xec0>
movss  0x0(%rbp,%rcx,4),%xmm0
minss  0x0(%rbp,%rsi,4),%xmm0
movss  (%r10),%xmm4
addss  %xmm0,%xmm4
divss  %xmm4,%xmm0
mulss  %xmm0,%xmm3
ucomiss %xmm3,%xmm2
jb     1ff0 <slasq3+0xec0>
movslq %edi,%rdx
movss  -0x4(%rbp,%rdx,4),%xmm0
minss  -0x8(%rbp,%rdx,4),%xmm0
cltq
minss  0x0(%rbp,%rax,4),%xmm0
movss  %xmm0,(%r9)
mov    0x80(%rsp),%rsi
mov    (%rsi),%eax
lea    (%rcx,%rax,1),%edx
add    $0x1,%eax
mov    %edx,(%rsi)
mov    0x78(%rsp),%rdi
mov    (%rdi),%edx
sub    %ecx,%edx
test   %edx,%edx
mov    $0x1,%esi
cmovg  %edx,%esi
mov    %esi,(%rdi)
sub    %ecx,(%r11)
jmp    2dcc <slasq3+0x1c9c>
movss  0x4(%r14),%xmm3
mov    $0x2,%ecx
ucomiss %xmm3,%xmm8
jae    2030 <slasq3+0xf00>
movss  (%r10),%xmm5
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm5
jbe    2130 <slasq3+0x1000>
movss  (%r14),%xmm1
movss  0x0(%rbp),%xmm2
movaps %xmm5,%xmm4
addss  %xmm2,%xmm4
movaps %xmm5,%xmm0
divss  %xmm4,%xmm0
mulss  %xmm1,%xmm0
addss  %xmm5,%xmm0
movaps %xmm2,%xmm6
addss  %xmm0,%xmm6
divss  %xmm6,%xmm0
mulss  %xmm3,%xmm0
movss  0x2f70(%rip),%xmm7
ucomiss %xmm0,%xmm7
jb     20f5 <slasq3+0xfc5>
movaps %xmm2,%xmm0
divss  %xmm6,%xmm0
mulss  %xmm0,%xmm3
movss  0x2f54(%rip),%xmm0
ucomiss %xmm3,%xmm0
jae    2030 <slasq3+0xf00>
mov    $0x1,%ecx
ucomiss %xmm1,%xmm8
jae    2030 <slasq3+0xf00>
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm5
jbe    2172 <slasq3+0x1042>
movaps %xmm4,%xmm0
mulss  %xmm10,%xmm0
ucomiss %xmm1,%xmm0
jb     2185 <slasq3+0x1055>
divss  %xmm4,%xmm2
mulss  %xmm2,%xmm1
mulss  %xmm9,%xmm4
ucomiss %xmm1,%xmm4
jb     2185 <slasq3+0x1055>
jmp    2030 <slasq3+0xf00>
movss  0x0(%rbp),%xmm2
movss  0x4(%rbp),%xmm0
movss  (%r14),%xmm1
movaps %xmm2,%xmm4
addss  %xmm1,%xmm4
addss  %xmm0,%xmm4
movaps %xmm2,%xmm5
divss  %xmm4,%xmm5
mulss  %xmm0,%xmm5
mulss  %xmm9,%xmm5
ucomiss %xmm3,%xmm5
jae    2030 <slasq3+0xf00>
mov    $0x1,%ecx
ucomiss %xmm1,%xmm8
jae    2030 <slasq3+0xf00>
mulss  %xmm9,%xmm2
mov    $0x1,%ecx
ucomiss %xmm1,%xmm2
jae    2030 <slasq3+0xf00>
movss  0x2ed7(%rip),%xmm0
xor    %ecx,%ecx
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
movss  0x2ebf(%rip),%xmm1
jne    2263 <slasq3+0x1133>
jp     2263 <slasq3+0x1133>
ucomiss %xmm1,%xmm8
jb     2263 <slasq3+0x1133>
mov    0x2e83(%rip),%eax
mov    0x78(%rsp),%rcx
cmp    %edi,(%rcx)
je     2261 <slasq3+0x1131>
test   %r15d,%r15d
jne    2261 <slasq3+0x1131>
test   %eax,%eax
mov    $0x0,%ecx
jle    2263 <slasq3+0x1133>
movslq 0x2e75(%rip),%rax
sub    %eax,%edi
lea    -0x4(,%rax,4),%rsi
ff
add    %r13,%rsi
lea    -0x4(%rbp,%rax,4),%rcx
mov    $0x1,%edx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
mov    0x10(%rsp),%rax
movslq (%rax),%rdi
movl   $0x0,-0x4(%rbp,%rdi,4)
movslq 0x2e3a(%rip),%rax
sub    %eax,%edi
lea    (%r12,%rax,4),%rsi
lea    (%r14,%rax,4),%rcx
add    $0xfffffffffffffffc,%rcx
mov    $0x1,%edx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
xor    %ecx,%ecx
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
movl   $0x0,(%r9)
jmp    2263 <slasq3+0x1133>
xor    %ecx,%ecx
mov    %ecx,0x20(%rsp)
movl   $0x0,0x2def(%rip)
mov    0x78(%rsp),%rax
mov    (%rax),%eax
test   %eax,%eax
je     2293 <slasq3+0x1163>
movss  (%r9),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
jne    274d <slasq3+0x161d>
jp     274d <slasq3+0x161d>
movl   $0x0,0x2dc7(%rip)
mov    0x2db0(%rip),%r11d
mov    0x2d92(%rip),%ecx
lea    0x1(%rcx),%eax
cmp    %r11d,%ecx
jge    25c8 <slasq3+0x1498>
mov    0x2da4(%rip),%ecx
movss  0x2d84(%rip),%xmm0
lea    0x1(%r11),%r8d
movss  0x2d94(%rip),%xmm4
xorps  %xmm1,%xmm1
movaps 0xd36(%rip),%xmm2
jmp    22f6 <slasq3+0x11c6>
nopl   0x0(%rax)
movss  %xmm4,0x2d7c(%rip)
lea    0x1(%rax),%edx
cmp    %r11d,%eax
mov    %edx,%eax
je     25c5 <slasq3+0x1495>
mov    %ecx,%esi
ucomiss %xmm1,%xmm4
movss  0x0(%rbp),%xmm3
jne    2380 <slasq3+0x1250>
jp     2380 <slasq3+0x1250>
movss  %xmm3,0x2d50(%rip)
mov    0x10(%rsp),%rcx
movslq (%rcx),%rdi
lea    -0x2(%rdi),%ecx
xor    %ebx,%ebx
cmp    $0x4,%rdi
jge    2420 <slasq3+0x12f0>
movaps %xmm3,%xmm4
add    $0x1,%ebx
mov    %ebx,0x2d29(%rip)
mov    %ebx,0x2d1b(%rip)
movss  -0xc(%r14,%rdi,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0xc(%r12,%rdi,4)
divss  %xmm5,%xmm3
mulss  -0x8(%rbp,%rdi,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    2470 <slasq3+0x1340>
movss  %xmm3,0x2cfa(%rip)
lea    -0x1(%rdi),%ecx
mov    %ecx,0x2ced(%rip)
mov    %ecx,%ebx
movaps %xmm3,%xmm4
jmp    2473 <slasq3+0x1343>
cs nopw 0x0(%rax,%rax,1)
nop
subss  %xmm4,%xmm3
movss  %xmm3,0x2cd0(%rip)
movl   $0x0,0x2cc2(%rip)
ucomiss %xmm3,%xmm1
ja     24db <slasq3+0x13ab>
mov    0x10(%rsp),%rcx
movslq (%rcx),%rdi
lea    -0x2(%rdi),%ecx
xor    %ebx,%ebx
cmp    $0x4,%rdi
jge    2519 <slasq3+0x13e9>
movaps %xmm3,%xmm5
add    $0x1,%ebx
mov    %ebx,0x2c96(%rip)
mov    %ebx,0x2c88(%rip)
movss  -0xc(%r14,%rdi,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0xc(%r12,%rdi,4)
divss  %xmm4,%xmm3
mulss  -0x8(%rbp,%rdi,4),%xmm3
movss  0x2c78(%rip),%xmm4
subss  %xmm4,%xmm3
ucomiss %xmm3,%xmm5
jbe    2587 <slasq3+0x1457>
movss  %xmm3,0x2c5b(%rip)
lea    -0x1(%rdi),%ecx
mov    %ecx,0x2c4e(%rip)
ucomiss %xmm3,%xmm1
mov    %ecx,%ebx
movaps %xmm3,%xmm5
ja     24db <slasq3+0x13ab>
jmp    258a <slasq3+0x145a>
nopl   (%rax)
mov    %ecx,%ecx
xor    %ebx,%ebx
mov    $0x1,%edx
movaps %xmm3,%xmm4
jmp    243d <slasq3+0x130d>
xchg   %ax,%ax
add    $0x1,%rdx
cmp    %rdx,%rcx
je     2326 <slasq3+0x11f6>
movss  -0x4(%r14,%rdx,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0x4(%r12,%rdx,4)
divss  %xmm5,%xmm3
mulss  0x0(%rbp,%rdx,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    2430 <slasq3+0x1300>
movss  %xmm3,0x2bf6(%rip)
mov    %edx,%ebx
movaps %xmm3,%xmm4
jmp    2430 <slasq3+0x1300>
nopl   (%rax)
lea    -0x1(%rdi),%ecx
mov    %ebx,0x2bd3(%rip)
movss  -0x8(%r14,%rdi,4),%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,-0x8(%r12,%rdi,4)
divss  %xmm5,%xmm3
movslq %ecx,%rcx
mulss  0x0(%rbp,%rcx,4),%xmm3
ucomiss %xmm3,%xmm4
jbe    24ab <slasq3+0x137b>
movss  %xmm3,0x2bb7(%rip)
mov    %edi,0x2bad(%rip)
movss  %xmm3,(%r12,%rcx,4)
movaps %xmm3,%xmm4
andps  %xmm2,%xmm4
movss  (%r10),%xmm5
mulss  %xmm9,%xmm5
ucomiss %xmm4,%xmm5
jae    25e4 <slasq3+0x14b4>
ucomiss %xmm3,%xmm1
jbe    25fc <slasq3+0x14cc>
movss  0x2b89(%rip),%xmm4
lea    0x1(%rsi),%ecx
mov    %ecx,0x2b7c(%rip)
movss  %xmm4,(%r9)
ucomiss %xmm4,%xmm0
xorps  %xmm4,%xmm4
jae    22e0 <slasq3+0x11b0>
test   %esi,%esi
jg     22e0 <slasq3+0x11b0>
addss  0x2b5f(%rip),%xmm3
maxss  %xmm1,%xmm3
movaps %xmm3,%xmm4
cmpnless %xmm0,%xmm4
andps  %xmm3,%xmm4
jmp    22e0 <slasq3+0x11b0>
mov    %ecx,%edx
xor    %ebx,%ebx
mov    $0x1,%ecx
movaps %xmm3,%xmm5
jmp    2542 <slasq3+0x1412>
nopw   0x0(%rax,%rax,1)
mov    %ecx,%ebx
movaps %xmm3,%xmm5
add    $0x1,%rcx
cmp    %rcx,%rdx
je     23b9 <slasq3+0x1289>
movss  -0x4(%r14,%rcx,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0x4(%r12,%rcx,4)
divss  %xmm4,%xmm3
mulss  0x0(%rbp,%rcx,4),%xmm3
movss  0x2afe(%rip),%xmm4
subss  %xmm4,%xmm3
ucomiss %xmm3,%xmm5
jbe    2535 <slasq3+0x1405>
movss  %xmm3,0x2ae5(%rip)
mov    %ecx,0x2adb(%rip)
ucomiss %xmm3,%xmm1
jbe    2530 <slasq3+0x1400>
jmp    24db <slasq3+0x13ab>
lea    -0x1(%rdi),%ecx
mov    %ebx,0x2abc(%rip)
movss  -0x8(%r14,%rdi,4),%xmm4
addss  %xmm3,%xmm4
movss  %xmm4,-0x8(%r12,%rdi,4)
divss  %xmm4,%xmm3
movslq %ecx,%rcx
mulss  0x0(%rbp,%rcx,4),%xmm3
subss  0x2aad(%rip),%xmm3
ucomiss %xmm3,%xmm5
ja     249d <slasq3+0x136d>
jmp    24ab <slasq3+0x137b>
mov    %r8d,%eax
mov    %eax,0x2a6e(%rip)
movl   $0xbf800000,(%r9)
add    $0x38,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movl   $0x0,(%r12,%rcx,4)
movl   $0x0,0x2a66(%rip)
mov    %edi,0x2a5c(%rip)
mov    %eax,0x2a3a(%rip)
cmp    $0x2,%edi
mov    0x10(%rsp),%r11
jl     287d <slasq3+0x174d>
mov    %edi,%eax
lea    -0x1(%rax),%r15
mov    $0x1,%ecx
cmp    $0x4,%r15
jb     2809 <slasq3+0x16d9>
lea    -0x4(,%rax,4),%rdx
ff
add    %r13,%rdx
lea    (%r14,%rax,4),%rsi
add    $0xfffffffffffffffc,%rsi
cmp    %r13,%rsi
seta   %r10b
lea    (%r12,%rax,4),%rdi
add    $0xfffffffffffffffc,%rdi
cmp    %r14,%rdx
seta   %r8b
lea    0x4(%rbp),%r11
cmp    %r13,%rdi
seta   %dil
lea    0x0(,%rax,4),%rsi
add    %rbp,%rsi
cmp    %r12,%rdx
seta   %bl
and    %dil,%bl
cmp    %r13,%rsi
seta   %sil
cmp    %rdx,%r11
setb   %dl
and    %sil,%dl
test   %r8b,%r10b
jne    27fa <slasq3+0x16ca>
test   %bl,%bl
mov    0x70(%rsp),%r10
mov    0x18(%rsp),%r9
mov    0x10(%rsp),%r11
jne    2809 <slasq3+0x16d9>
test   %dl,%dl
jne    2809 <slasq3+0x16d9>
mov    %r15,%r8
and    $0xfffffffffffffffc,%r8
lea    0x1(%r8),%rcx
lea    -0x4(%r8),%rdx
mov    %rdx,%rsi
shr    $0x2,%rsi
add    $0x1,%rsi
xor    %edi,%edi
test   %rdx,%rdx
je     2712 <slasq3+0x15e2>
mov    %rsi,%rbx
and    $0xfffffffffffffffe,%rbx
xor    %edi,%edi
nop
movups (%r14,%rdi,4),%xmm0
movups (%r12,%rdi,4),%xmm1
divps  %xmm1,%xmm0
movups 0x4(%rbp,%rdi,4),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,0x0(%r13,%rdi,4)
movups 0x10(%r14,%rdi,4),%xmm0
movups 0x10(%r12,%rdi,4),%xmm1
divps  %xmm1,%xmm0
movups 0x14(%rbp,%rdi,4),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,0x10(%r13,%rdi,4)
add    $0x8,%rdi
add    $0xfffffffffffffffe,%rbx
jne    26d0 <slasq3+0x15a0>
test   $0x1,%sil
je     273f <slasq3+0x160f>
lea    0x0(,%rdi,4),%rdx
movups (%r14,%rdi,4),%xmm0
movups (%r12,%rdi,4),%xmm1
divps  %xmm1,%xmm0
or     $0x4,%rdx
movups 0x0(%rbp,%rdx,1),%xmm1
mulps  %xmm0,%xmm1
movups %xmm1,0x0(%r13,%rdi,4)
cmp    %r8,%r15
jne    2809 <slasq3+0x16d9>
jmp    287d <slasq3+0x174d>
cmpl   $0x0,0x28e8(%rip)
jle    276b <slasq3+0x163b>
movss  0x28ea(%rip),%xmm0
ucomiss 0x28f7(%rip),%xmm0
jae    2293 <slasq3+0x1163>
mov    0x10(%rsp),%rcx
mov    (%rcx),%ecx
lea    0x1f(%rcx),%esi
test   %ecx,%ecx
cmovns %ecx,%esi
sar    $0x5,%esi
cmp    $0x6,%esi
mov    $0x5,%edx
cmovge %esi,%edx
lea    (%rdx,%rdx,1),%edi
add    $0x1,%edi
mov    $0x1,%esi
cmp    %ecx,%edi
jge    27a6 <slasq3+0x1676>
lea    (%rdx,%rax,1),%esi
cmp    %ecx,%esi
jle    27aa <slasq3+0x167a>
add    %edx,%edx
sub    %edx,%ecx
mov    %ecx,%esi
jmp    27b6 <slasq3+0x1686>
mov    %ecx,%edi
jmp    27b6 <slasq3+0x1686>
sub    %edx,%eax
test   %eax,%eax
mov    $0x1,%esi
cmovg  %eax,%esi
movslq %esi,%rax
lea    -0x4(,%rax,4),%rsi
ff
add    %rbp,%rsi
lea    (%r14,%rax,4),%rdx
add    $0xfffffffffffffffc,%rdx
lea    0x2891(%rip),%rcx
mov    %r9,%r8
xor    %eax,%eax
call   1040 <slasq4@plt>
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
movss  0xc(%rsp),%xmm9
movss  0x8(%rsp),%xmm10
jmp    229d <slasq3+0x116d>
mov    0x70(%rsp),%r10
mov    0x18(%rsp),%r9
mov    0x10(%rsp),%r11
mov    %rcx,%rdx
not    %rdx
test   $0x1,%al
jne    2832 <slasq3+0x1702>
movss  -0x4(%r14,%rcx,4),%xmm0
divss  -0x4(%r12,%rcx,4),%xmm0
mulss  0x0(%rbp,%rcx,4),%xmm0
movss  %xmm0,-0x4(%r13,%rcx,4)
add    $0x1,%rcx
add    %rax,%rdx
je     287d <slasq3+0x174d>
nopw   0x0(%rax,%rax,1)
movss  -0x4(%r14,%rcx,4),%xmm0
divss  -0x4(%r12,%rcx,4),%xmm0
mulss  0x0(%rbp,%rcx,4),%xmm0
movss  %xmm0,-0x4(%r13,%rcx,4)
movss  (%r14,%rcx,4),%xmm0
divss  (%r12,%rcx,4),%xmm0
mulss  0x4(%rbp,%rcx,4),%xmm0
movss  %xmm0,0x0(%r13,%rcx,4)
add    $0x2,%rcx
cmp    %rcx,%rax
jne    2840 <slasq3+0x1710>
movss  0x27de(%rip),%xmm8
addss  (%r10),%xmm8
movss  %xmm8,(%r10)
mov    0x88(%rsp),%rax
movl   $0x2,(%rax)
mov    0x20(%rsp),%r15d
movaps %xmm8,%xmm1
mulss  %xmm9,%xmm1
movss  %xmm1,0x278c(%rip)
movaps %xmm8,%xmm1
mulss  %xmm10,%xmm1
movss  %xmm1,0x277f(%rip)
maxss  0x34(%rsp),%xmm8
mulss  %xmm9,%xmm8
movss  %xmm8,0x276e(%rip)
mov    (%r11),%edi
cmp    $0x3,%edi
jl     25d5 <slasq3+0x14a5>
xorps  %xmm11,%xmm11
movss  0x73d(%rip),%xmm12
xorpd  %xmm13,%xmm13
movsd  0x737(%rip),%xmm14
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
lea    -0x1(%rdi),%edx
lea    -0x2(%rdi),%ecx
movss  0x0(%r13,%rcx,4),%xmm2
ucomiss %xmm2,%xmm8
jae    29f0 <slasq3+0x18c0>
movss  (%r10),%xmm3
ucomiss %xmm11,%xmm3
mov    %edx,%eax
movss  (%r12,%rax,4),%xmm1
jbe    2a00 <slasq3+0x18d0>
movaps %xmm3,%xmm4
addss  %xmm1,%xmm4
movaps %xmm4,%xmm5
mulss  %xmm10,%xmm5
ucomiss %xmm2,%xmm5
jb     296e <slasq3+0x183e>
movaps %xmm1,%xmm5
divss  %xmm4,%xmm5
mulss  %xmm2,%xmm5
movaps %xmm4,%xmm6
mulss  %xmm9,%xmm6
ucomiss %xmm5,%xmm6
jae    2a50 <slasq3+0x1920>
lea    -0x3(%rdi),%edx
movss  0x0(%r13,%rdx,4),%xmm5
ucomiss %xmm5,%xmm8
jae    2a5e <slasq3+0x192e>
ucomiss %xmm11,%xmm3
jbe    2a1d <slasq3+0x18ed>
movaps %xmm3,%xmm7
divss  %xmm4,%xmm7
mulss  %xmm2,%xmm7
addss  %xmm3,%xmm7
movss  (%r12,%rcx,4),%xmm4
movaps %xmm4,%xmm6
addss  %xmm7,%xmm6
divss  %xmm6,%xmm7
mulss  %xmm5,%xmm7
movss  0x268c(%rip),%xmm0
ucomiss %xmm7,%xmm0
jb     2c7d <slasq3+0x1b4d>
movaps %xmm4,%xmm0
divss  %xmm6,%xmm0
mulss  %xmm0,%xmm5
movss  0x266c(%rip),%xmm0
ucomiss %xmm5,%xmm0
jae    2a64 <slasq3+0x1934>
jmp    2c7d <slasq3+0x1b4d>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    %edx,%eax
movss  (%r12,%rax,4),%xmm1
movss  (%r10),%xmm3
jmp    2a50 <slasq3+0x1920>
nop
movaps %xmm1,%xmm4
mulss  %xmm9,%xmm4
ucomiss %xmm2,%xmm4
jae    2a50 <slasq3+0x1920>
lea    -0x3(%rdi),%edx
movss  0x0(%r13,%rdx,4),%xmm5
ucomiss %xmm5,%xmm8
jae    2a5e <slasq3+0x192e>
movaps %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  (%r12,%rcx,4),%xmm4
addss  %xmm4,%xmm0
movaps %xmm1,%xmm6
divss  %xmm0,%xmm6
mulss  %xmm4,%xmm6
mulss  %xmm9,%xmm6
ucomiss %xmm5,%xmm6
jae    2a64 <slasq3+0x1934>
jmp    2c7d <slasq3+0x1b4d>
nopl   0x0(%rax,%rax,1)
addss  %xmm1,%xmm3
mov    $0x1,%esi
jmp    2ba7 <slasq3+0x1a77>
movss  (%r12,%rcx,4),%xmm4
movaps %xmm1,%xmm0
maxss  %xmm4,%xmm0
maxss  %xmm2,%xmm0
ucomiss %xmm11,%xmm0
jne    2a77 <slasq3+0x1947>
jnp    2a87 <slasq3+0x1957>
ucomiss %xmm4,%xmm0
jne    2a94 <slasq3+0x1964>
jp     2a94 <slasq3+0x1964>
movaps %xmm1,%xmm3
subss  %xmm4,%xmm3
jmp    2aaa <slasq3+0x197a>
mov    %ecx,%edx
xorps  %xmm0,%xmm0
xorps  %xmm1,%xmm1
jmp    2b8e <slasq3+0x1a5e>
ucomiss %xmm1,%xmm0
jne    2bcc <slasq3+0x1a9c>
jp     2bcc <slasq3+0x1a9c>
movaps %xmm4,%xmm3
subss  %xmm1,%xmm3
addss  %xmm2,%xmm3
divss  %xmm0,%xmm3
addss  %xmm4,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm4,%xmm4
cvtss2sd %xmm1,%xmm4
xorps  %xmm5,%xmm5
cvtss2sd %xmm0,%xmm5
mulss  %xmm12,%xmm2
divss  %xmm0,%xmm2
mulss  %xmm3,%xmm3
addss  %xmm2,%xmm3
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
ucomisd %xmm13,%xmm1
jae    2b47 <slasq3+0x1a17>
movapd %xmm1,%xmm0
movsd  %xmm5,0x20(%rsp)
movsd  %xmm4,0x28(%rsp)
call   1050 <sqrt@plt>
movsd  0x28(%rsp),%xmm4
movsd  0x20(%rsp),%xmm5
movsd  0x520(%rip),%xmm14
xorpd  %xmm13,%xmm13
movss  0x50a(%rip),%xmm12
xorps  %xmm11,%xmm11
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mulsd  %xmm0,%xmm5
addsd  %xmm4,%xmm5
mulsd  %xmm14,%xmm5
xorps  %xmm0,%xmm0
cvtsd2ss %xmm5,%xmm0
movslq (%r11),%rdx
lea    -0x1(%rdx),%rax
movss  -0x8(%r12,%rdx,4),%xmm2
movss  -0x4(%r12,%rdx,4),%xmm1
add    $0xfffffffffffffffe,%rdx
movaps %xmm1,%xmm3
maxss  %xmm2,%xmm3
divss  %xmm0,%xmm3
minss  %xmm2,%xmm1
mulss  %xmm3,%xmm1
movss  (%r10),%xmm3
mov    %edx,%ecx
addss  %xmm3,%xmm0
movss  %xmm0,0x0(%rbp,%rdx,4)
addss  (%r10),%xmm1
mov    $0x2,%esi
movaps %xmm1,%xmm3
mov    %ecx,%edx
movss  %xmm3,0x0(%rbp,%rax,4)
mov    %edx,(%r11)
cmp    $0x3,%edx
jl     25d5 <slasq3+0x14a5>
add    %esi,%r15d
movss  0x2483(%rip),%xmm8
mov    %edx,%edi
jmp    2910 <slasq3+0x17e0>
movaps %xmm1,%xmm3
subss  %xmm4,%xmm3
addss  %xmm2,%xmm3
divss  %xmm0,%xmm3
addss  %xmm4,%xmm1
addss  %xmm2,%xmm1
xorps  %xmm2,%xmm2
cvtss2sd %xmm1,%xmm2
xorps  %xmm5,%xmm5
cvtss2sd %xmm0,%xmm5
mulss  %xmm12,%xmm4
divss  %xmm0,%xmm4
mulss  %xmm3,%xmm3
addss  %xmm4,%xmm3
xorps  %xmm1,%xmm1
cvtss2sd %xmm3,%xmm1
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
ucomisd %xmm13,%xmm1
jae    2c70 <slasq3+0x1b40>
movapd %xmm1,%xmm0
movsd  %xmm5,0x20(%rsp)
movsd  %xmm2,0x28(%rsp)
call   1050 <sqrt@plt>
movsd  0x28(%rsp),%xmm2
movsd  0x20(%rsp),%xmm5
movsd  0x3f7(%rip),%xmm14
xorpd  %xmm13,%xmm13
movss  0x3e1(%rip),%xmm12
xorps  %xmm11,%xmm11
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
mulsd  %xmm0,%xmm5
addsd  %xmm2,%xmm5
jmp    2b4f <slasq3+0x1a1f>
test   %r15d,%r15d
je     2cc4 <slasq3+0x1b94>
jle    2d17 <slasq3+0x1be7>
minss  %xmm4,%xmm1
minss  (%r12,%rdx,4),%xmm1
minss  (%r12),%xmm1
minss  0x4(%r12),%xmm1
minss  0x8(%r12),%xmm1
movss  %xmm1,(%r9)
cmp    $0x2,%r15d
je     2cf4 <slasq3+0x1bc4>
cmp    $0x1,%r15d
mov    0x78(%rsp),%rax
jne    2cff <slasq3+0x1bcf>
mov    0x238a(%rip),%edi
jmp    2cff <slasq3+0x1bcf>
mov    0x238e(%rip),%eax
mov    0x78(%rsp),%rcx
mov    %eax,(%rcx)
movss  (%r9),%xmm0
subss  0x2386(%rip),%xmm0
movss  0x2376(%rip),%xmm1
minss  %xmm0,%xmm1
movss  %xmm1,(%r9)
mov    (%r11),%edi
jmp    2d17 <slasq3+0x1be7>
mov    0x2356(%rip),%edi
mov    0x78(%rsp),%rax
mov    %edi,(%rax)
movl   $0x0,0x2331(%rip)
mov    (%r11),%edi
imul   $0x64,%edi,%eax
mov    %eax,0x233d(%rip)
lea    -0x3(%rdi),%eax
cmp    $0x6,%edi
jl     2dee <slasq3+0x1cbe>
movss  0x2319(%rip),%xmm1
movss  0x230d(%rip),%xmm2
mov    %eax,%ecx
jmp    2d51 <slasq3+0x1c21>
nopw   0x0(%rax,%rax,1)
lea    0x1(%rdx),%rsi
mov    %rdx,%rcx
cmp    $0x3,%rsi
jbe    2dee <slasq3+0x1cbe>
lea    -0x1(%rcx),%rdx
mov    %edx,%esi
movss  0x0(%r13,%rsi,4),%xmm3
ucomiss %xmm3,%xmm1
jb     2d40 <slasq3+0x1c10>
movss  (%r12,%rcx,4),%xmm0
minss  (%r12,%rsi,4),%xmm0
movss  (%r10),%xmm4
addss  %xmm0,%xmm4
divss  %xmm4,%xmm0
mulss  %xmm0,%xmm3
ucomiss %xmm3,%xmm2
jb     2d40 <slasq3+0x1c10>
movslq %edi,%rdx
movss  -0x4(%r12,%rdx,4),%xmm0
minss  -0x8(%r12,%rdx,4),%xmm0
cltq
minss  (%r12,%rax,4),%xmm0
movss  %xmm0,(%r9)
mov    0x80(%rsp),%rsi
mov    (%rsi),%eax
lea    (%rcx,%rax,1),%edx
mov    %edx,(%rsi)
sub    %ecx,(%r11)
not    %eax
mov    0x78(%rsp),%rdi
mov    (%rdi),%edx
sub    %ecx,%edx
test   %edx,%edx
mov    $0x1,%esi
cmovg  %edx,%esi
mov    %esi,(%rdi)
movss  (%r10),%xmm0
movslq %ecx,%rcx
movss  %xmm0,-0x4(%r14,%rcx,4)
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,-0x4(%r13,%rcx,4)
jmp    25d5 <slasq3+0x14a5>
movss  0x4(%r13),%xmm3
mov    $0x2,%ecx
ucomiss %xmm3,%xmm8
jae    2d85 <slasq3+0x1c55>
movss  (%r10),%xmm5
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm5
jbe    2ea5 <slasq3+0x1d75>
movss  0x0(%r13),%xmm1
movss  (%r12),%xmm2
movaps %xmm5,%xmm4
addss  %xmm2,%xmm4
movaps %xmm5,%xmm0
divss  %xmm4,%xmm0
mulss  %xmm1,%xmm0
addss  %xmm5,%xmm0
movaps %xmm2,%xmm6
addss  %xmm0,%xmm6
divss  %xmm6,%xmm0
mulss  %xmm3,%xmm0
movss  0x21fb(%rip),%xmm7
ucomiss %xmm0,%xmm7
jb     2e6a <slasq3+0x1d3a>
movaps %xmm2,%xmm0
divss  %xmm6,%xmm0
mulss  %xmm0,%xmm3
movss  0x21df(%rip),%xmm0
ucomiss %xmm3,%xmm0
jae    2d85 <slasq3+0x1c55>
mov    $0x1,%ecx
ucomiss %xmm1,%xmm8
jae    2d85 <slasq3+0x1c55>
xorps  %xmm0,%xmm0
ucomiss %xmm0,%xmm5
jbe    2eeb <slasq3+0x1dbb>
movaps %xmm4,%xmm0
mulss  %xmm10,%xmm0
ucomiss %xmm1,%xmm0
jb     2efe <slasq3+0x1dce>
divss  %xmm4,%xmm2
mulss  %xmm2,%xmm1
mulss  %xmm9,%xmm4
ucomiss %xmm1,%xmm4
jb     2efe <slasq3+0x1dce>
jmp    2d85 <slasq3+0x1c55>
movss  (%r12),%xmm2
movss  0x4(%r12),%xmm0
movss  0x0(%r13),%xmm1
movaps %xmm2,%xmm4
addss  %xmm1,%xmm4
addss  %xmm0,%xmm4
movaps %xmm2,%xmm5
divss  %xmm4,%xmm5
mulss  %xmm0,%xmm5
mulss  %xmm9,%xmm5
ucomiss %xmm3,%xmm5
jae    2d85 <slasq3+0x1c55>
mov    $0x1,%ecx
ucomiss %xmm1,%xmm8
jae    2d85 <slasq3+0x1c55>
mulss  %xmm9,%xmm2
mov    $0x1,%ecx
ucomiss %xmm1,%xmm2
jae    2d85 <slasq3+0x1c55>
movss  0x215e(%rip),%xmm0
xor    %ecx,%ecx
xorps  %xmm1,%xmm1
ucomiss %xmm1,%xmm0
movss  0x2146(%rip),%xmm1
jne    1560 <slasq3+0x430>
jp     1560 <slasq3+0x430>
ucomiss %xmm1,%xmm8
jb     1560 <slasq3+0x430>
mov    0x210a(%rip),%eax
mov    0x78(%rsp),%rcx
cmp    %edi,(%rcx)
je     2fe4 <slasq3+0x1eb4>
test   %r15d,%r15d
jne    2fe4 <slasq3+0x1eb4>
test   %eax,%eax
mov    $0x0,%ecx
jle    1560 <slasq3+0x430>
movslq 0x20fc(%rip),%rax
sub    %eax,%edi
lea    (%r14,%rax,4),%rsi
add    $0xfffffffffffffffc,%rsi
lea    -0x4(%r12,%rax,4),%rcx
mov    $0x1,%edx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
mov    0x10(%rsp),%rax
movslq (%rax),%rdi
movl   $0x0,-0x4(%r12,%rdi,4)
movslq 0x20c3(%rip),%rax
sub    %eax,%edi
lea    0x0(,%rax,4),%rsi
add    %rbp,%rsi
lea    -0x4(%r13,%rax,4),%rcx
mov    $0x1,%edx
mov    $0x1,%r8d
xor    %eax,%eax
call   1030 <scopy@plt>
xor    %ecx,%ecx
movss  0x8(%rsp),%xmm10
movss  0xc(%rsp),%xmm9
mov    0x10(%rsp),%r11
mov    0x18(%rsp),%r9
mov    0x70(%rsp),%r10
movl   $0x0,(%r9)
jmp    1560 <slasq3+0x430>
xor    %ecx,%ecx
jmp    1560 <slasq3+0x430>

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

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