int tri_tri_overlap_test_3d(double p1[3], double q1[3], double r1[3],
                            double p2[3], double q2[3], double r2[3]) {
  double dp1, dq1, dr1, dp2, dq2, dr2;
  double v1[3], v2[3];
  double N1[3], N2[3];
  v1[0] = p2[0] - r2[0];
  v1[1] = p2[1] - r2[1];
  v1[2] = p2[2] - r2[2];
  v2[0] = q2[0] - r2[0];
  v2[1] = q2[1] - r2[1];
  v2[2] = q2[2] - r2[2];
  N2[0] = v1[1] * v2[2] - v1[2] * v2[1];
  N2[1] = v1[2] * v2[0] - v1[0] * v2[2];
  N2[2] = v1[0] * v2[1] - v1[1] * v2[0];
  v1[0] = p1[0] - r2[0];
  v1[1] = p1[1] - r2[1];
  v1[2] = p1[2] - r2[2];
  dp1 = (v1[0] * N2[0] + v1[1] * N2[1] + v1[2] * N2[2]);
  v1[0] = q1[0] - r2[0];
  v1[1] = q1[1] - r2[1];
  v1[2] = q1[2] - r2[2];
  dq1 = (v1[0] * N2[0] + v1[1] * N2[1] + v1[2] * N2[2]);
  v1[0] = r1[0] - r2[0];
  v1[1] = r1[1] - r2[1];
  v1[2] = r1[2] - r2[2];
  dr1 = (v1[0] * N2[0] + v1[1] * N2[1] + v1[2] * N2[2]);
  if (((dp1 * dq1) > 0.0f) && ((dp1 * dr1) > 0.0f))
    return 0;
  v1[0] = q1[0] - p1[0];
  v1[1] = q1[1] - p1[1];
  v1[2] = q1[2] - p1[2];
  v2[0] = r1[0] - p1[0];
  v2[1] = r1[1] - p1[1];
  v2[2] = r1[2] - p1[2];
  N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
  N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
  N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
  v1[0] = p2[0] - r1[0];
  v1[1] = p2[1] - r1[1];
  v1[2] = p2[2] - r1[2];
  dp2 = (v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]);
  v1[0] = q2[0] - r1[0];
  v1[1] = q2[1] - r1[1];
  v1[2] = q2[2] - r1[2];
  dq2 = (v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]);
  v1[0] = r2[0] - r1[0];
  v1[1] = r2[1] - r1[1];
  v1[2] = r2[2] - r1[2];
  dr2 = (v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]);
  if (((dp2 * dq2) > 0.0f) && ((dp2 * dr2) > 0.0f))
    return 0;
  if (dp1 > 0.0f) {
    if (dq1 > 0.0f) {
      if (dp2 > 0.0f) {
        if (dr2 > 0.0f) {
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 > 0.0f) {
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dr2 < 0.0f) {
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 < 0.0f) {
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dr2 < 0.0f) {
          if (dq2 >= 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dr2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 > 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(r1, p1, q1, p2, r2, q2, N1);
        }
      }
    } else if (dr1 > 0.0f) {
      if (dp2 > 0.0f) {
        if (dr2 > 0.0f) {
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 > 0.0f) {
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dr2 < 0.0f) {
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 < 0.0f) {
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dr2 < 0.0f) {
          if (dq2 >= 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dr2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 > 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(q1, r1, p1, p2, r2, q2, N1);
        }
      }
    } else {
      if (dp2 > 0.0f) {
        if (dq2 > 0.0f) {
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 > 0.0f) {
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dq2 < 0.0f) {
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 < 0.0f) {
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dq2 < 0.0f) {
          if (dr2 >= 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dq2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 > 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(p1, q1, r1, p2, q2, r2, N1);
        }
      }
    }
  } else if (dp1 < 0.0f) {
    if (dq1 < 0.0f) {
      if (dp2 > 0.0f) {
        if (dq2 > 0.0f) {
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 > 0.0f) {
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dq2 < 0.0f) {
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 < 0.0f) {
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dq2 < 0.0f) {
          if (dr2 >= 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dq2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 > 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(r1, p1, q1, p2, q2, r2, N1);
        }
      }
    } else if (dr1 < 0.0f) {
      if (dp2 > 0.0f) {
        if (dq2 > 0.0f) {
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 > 0.0f) {
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dq2 < 0.0f) {
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dr2 < 0.0f) {
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = q1[0] - r1[0];
          v2[1] = q1[1] - r1[1];
          v2[2] = q1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = r1[0] - q1[0];
          v2[1] = r1[1] - q1[1];
          v2[2] = r1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dq2 < 0.0f) {
          if (dr2 >= 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dq2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 > 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(q1, r1, p1, p2, q2, r2, N1);
        }
      }
    } else {
      if (dp2 > 0.0f) {
        if (dr2 > 0.0f) {
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 > 0.0f) {
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - r1[0];
          v1[1] = q2[1] - r1[1];
          v1[2] = q2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else if (dp2 < 0.0f) {
        if (dr2 < 0.0f) {
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - q1[0];
          v1[1] = p2[1] - q1[1];
          v1[2] = p2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else if (dq2 < 0.0f) {
          v1[0] = r2[0] - q1[0];
          v1[1] = r2[1] - q1[1];
          v1[2] = r2[2] - q1[2];
          v2[0] = p1[0] - q1[0];
          v2[1] = p1[1] - q1[1];
          v2[2] = p1[2] - q1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - q1[0];
          v1[1] = q2[1] - q1[1];
          v1[2] = q2[2] - q1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = r2[0] - p1[0];
          v1[1] = r2[1] - p1[1];
          v1[2] = r2[2] - p1[2];
          v2[0] = r1[0] - p1[0];
          v2[1] = r1[1] - p1[1];
          v2[2] = r1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        } else {
          v1[0] = p2[0] - r1[0];
          v1[1] = p2[1] - r1[1];
          v1[2] = p2[2] - r1[2];
          v2[0] = p1[0] - r1[0];
          v2[1] = p1[1] - r1[1];
          v2[2] = p1[2] - r1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = r2[0] - r1[0];
          v1[1] = r2[1] - r1[1];
          v1[2] = r2[2] - r1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          v1[0] = p2[0] - p1[0];
          v1[1] = p2[1] - p1[1];
          v1[2] = p2[2] - p1[2];
          v2[0] = q1[0] - p1[0];
          v2[1] = q1[1] - p1[1];
          v2[2] = q1[2] - p1[2];
          N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
          N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
          N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
          v1[0] = q2[0] - p1[0];
          v1[1] = q2[1] - p1[1];
          v1[2] = q2[2] - p1[2];
          if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
            return 0;
          else
            return 1;
        }
      } else {
        if (dr2 < 0.0f) {
          if (dq2 >= 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dr2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 > 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else
            return coplanar_tri_tri3d(p1, q1, r1, p2, r2, q2, N1);
        }
      }
    }
  } else {
    if (dq1 < 0.0f) {
      if (dr1 >= 0.0f) {
        if (dp2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 > 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dr2 < 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 < 0.0f) {
            if (dq2 >= 0.0f) {
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dr2 > 0.0f) {
            if (dq2 > 0.0f) {
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dq2 > 0.0f) {
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dq2 < 0.0f) {
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(q1, r1, p1, p2, r2, q2, N1);
          }
        }
      } else {
        if (dp2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 > 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dq2 < 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 < 0.0f) {
            if (dr2 >= 0.0f) {
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dq2 > 0.0f) {
            if (dr2 > 0.0f) {
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dr2 > 0.0f) {
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dr2 < 0.0f) {
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(p1, q1, r1, p2, q2, r2, N1);
          }
        }
      }
    } else if (dq1 > 0.0f) {
      if (dr1 > 0.0f) {
        if (dp2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 > 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dr2 < 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 < 0.0f) {
            if (dq2 >= 0.0f) {
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dr2 > 0.0f) {
            if (dq2 > 0.0f) {
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dq2 > 0.0f) {
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dq2 < 0.0f) {
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(p1, q1, r1, p2, r2, q2, N1);
          }
        }
      } else {
        if (dp2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 > 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dq2 < 0.0f) {
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = p1[0] - q1[0];
            v2[1] = p1[1] - q1[1];
            v2[2] = p1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = q1[0] - p1[0];
            v2[1] = q1[1] - p1[1];
            v2[2] = q1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 < 0.0f) {
            if (dr2 >= 0.0f) {
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dq2 > 0.0f) {
            if (dr2 > 0.0f) {
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dr2 > 0.0f) {
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = p1[0] - q1[0];
              v2[1] = p1[1] - q1[1];
              v2[2] = p1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dr2 < 0.0f) {
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = q1[0] - p1[0];
              v2[1] = q1[1] - p1[1];
              v2[2] = q1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(q1, r1, p1, p2, q2, r2, N1);
          }
        }
      }
    } else {
      if (dr1 > 0.0f) {
        if (dp2 > 0.0f) {
          if (dq2 > 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 > 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dq2 < 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dr2 < 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dq2 < 0.0f) {
            if (dr2 >= 0.0f) {
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dq2 > 0.0f) {
            if (dr2 > 0.0f) {
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dr2 > 0.0f) {
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dr2 < 0.0f) {
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(r1, p1, q1, p2, q2, r2, N1);
          }
        }
      } else if (dr1 < 0.0f) {
        if (dp2 > 0.0f) {
          if (dr2 > 0.0f) {
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 > 0.0f) {
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - q1[0];
            v1[1] = q2[1] - q1[1];
            v1[2] = q2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else if (dp2 < 0.0f) {
          if (dr2 < 0.0f) {
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - p1[0];
            v1[1] = p2[1] - p1[1];
            v1[2] = p2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else if (dq2 < 0.0f) {
            v1[0] = r2[0] - p1[0];
            v1[1] = r2[1] - p1[1];
            v1[2] = r2[2] - p1[2];
            v2[0] = r1[0] - p1[0];
            v2[1] = r1[1] - p1[1];
            v2[2] = r1[2] - p1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - p1[0];
            v1[1] = q2[1] - p1[1];
            v1[2] = q2[2] - p1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = r2[0] - r1[0];
            v1[1] = r2[1] - r1[1];
            v1[2] = r2[2] - r1[2];
            v2[0] = q1[0] - r1[0];
            v2[1] = q1[1] - r1[1];
            v2[2] = q1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          } else {
            v1[0] = p2[0] - q1[0];
            v1[1] = p2[1] - q1[1];
            v1[2] = p2[2] - q1[2];
            v2[0] = r1[0] - q1[0];
            v2[1] = r1[1] - q1[1];
            v2[2] = r1[2] - q1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = r2[0] - q1[0];
            v1[1] = r2[1] - q1[1];
            v1[2] = r2[2] - q1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            v1[0] = p2[0] - r1[0];
            v1[1] = p2[1] - r1[1];
            v1[2] = p2[2] - r1[2];
            v2[0] = p1[0] - r1[0];
            v2[1] = p1[1] - r1[1];
            v2[2] = p1[2] - r1[2];
            N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
            N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
            N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
            v1[0] = q2[0] - r1[0];
            v1[1] = q2[1] - r1[1];
            v1[2] = q2[2] - r1[2];
            if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
              return 0;
            else
              return 1;
          }
        } else {
          if (dr2 < 0.0f) {
            if (dq2 >= 0.0f) {
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else if (dr2 > 0.0f) {
            if (dq2 > 0.0f) {
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - q1[0];
              v1[1] = r2[1] - q1[1];
              v1[2] = r2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else {
              v1[0] = r2[0] - p1[0];
              v1[1] = r2[1] - p1[1];
              v1[2] = r2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - r1[0];
              v1[1] = p2[1] - r1[1];
              v1[2] = p2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            }
          } else {
            if (dq2 > 0.0f) {
              v1[0] = q2[0] - p1[0];
              v1[1] = q2[1] - p1[1];
              v1[2] = q2[2] - p1[2];
              v2[0] = r1[0] - p1[0];
              v2[1] = r1[1] - p1[1];
              v2[2] = r1[2] - p1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - p1[0];
              v1[1] = p2[1] - p1[1];
              v1[2] = p2[2] - p1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = q1[0] - r1[0];
              v2[1] = q1[1] - r1[1];
              v2[2] = q1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else if (dq2 < 0.0f) {
              v1[0] = q2[0] - q1[0];
              v1[1] = q2[1] - q1[1];
              v1[2] = q2[2] - q1[2];
              v2[0] = r1[0] - q1[0];
              v2[1] = r1[1] - q1[1];
              v2[2] = r1[2] - q1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = p2[0] - q1[0];
              v1[1] = p2[1] - q1[1];
              v1[2] = p2[2] - q1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              v1[0] = q2[0] - r1[0];
              v1[1] = q2[1] - r1[1];
              v1[2] = q2[2] - r1[2];
              v2[0] = p1[0] - r1[0];
              v2[1] = p1[1] - r1[1];
              v2[2] = p1[2] - r1[2];
              N1[0] = v1[1] * v2[2] - v1[2] * v2[1];
              N1[1] = v1[2] * v2[0] - v1[0] * v2[2];
              N1[2] = v1[0] * v2[1] - v1[1] * v2[0];
              v1[0] = r2[0] - r1[0];
              v1[1] = r2[1] - r1[1];
              v1[2] = r2[2] - r1[2];
              if ((v1[0] * N1[0] + v1[1] * N1[1] + v1[2] * N1[2]) > 0.0f)
                return 0;
              else
                return 1;
            } else
              return coplanar_tri_tri3d(r1, p1, q1, p2, r2, q2, N1);
          }
        }
      } else
        return coplanar_tri_tri3d(p1, q1, r1, p2, q2, r2, N1);
    }
  }
}


x86 assembly (clang, -O0):
<tri_tri_overlap_test_3d>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
mov    %rdi,-0x10(%rbp)
mov    %rsi,-0x18(%rbp)
mov    %rdx,-0x20(%rbp)
mov    %rcx,-0x28(%rbp)
mov    %r8,-0x30(%rbp)
mov    %r9,-0x38(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xe0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xe0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x38(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xe0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xd8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xd0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x40(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    143c <tri_tri_overlap_test_3d+0x32c>
movsd  -0x40(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    143c <tri_tri_overlap_test_3d+0x32c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x58(%rbp),%xmm0
mulsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1745 <tri_tri_overlap_test_3d+0x635>
movsd  -0x58(%rbp),%xmm0
mulsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1745 <tri_tri_overlap_test_3d+0x635>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x40(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a475 <tri_tri_overlap_test_3d+0x9365>
movsd  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4667 <tri_tri_overlap_test_3d+0x3557>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2321 <tri_tri_overlap_test_3d+0x1211>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b63 <tri_tri_overlap_test_3d+0xa53>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1972 <tri_tri_overlap_test_3d+0x862>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b57 <tri_tri_overlap_test_3d+0xa47>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f4b <tri_tri_overlap_test_3d+0xe3b>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d5a <tri_tri_overlap_test_3d+0xc4a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f3f <tri_tri_overlap_test_3d+0xe2f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2130 <tri_tri_overlap_test_3d+0x1020>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2315 <tri_tri_overlap_test_3d+0x1205>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    2ecd <tri_tri_overlap_test_3d+0x1dbd>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    2713 <tri_tri_overlap_test_3d+0x1603>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2522 <tri_tri_overlap_test_3d+0x1412>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2707 <tri_tri_overlap_test_3d+0x15f7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    2af7 <tri_tri_overlap_test_3d+0x19e7>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2906 <tri_tri_overlap_test_3d+0x17f6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2aeb <tri_tri_overlap_test_3d+0x19db>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2cdc <tri_tri_overlap_test_3d+0x1bcc>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2ec1 <tri_tri_overlap_test_3d+0x1db1>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    3699 <tri_tri_overlap_test_3d+0x2589>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     32c3 <tri_tri_overlap_test_3d+0x21b3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    30d2 <tri_tri_overlap_test_3d+0x1fc2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    32b7 <tri_tri_overlap_test_3d+0x21a7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    34a8 <tri_tri_overlap_test_3d+0x2398>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    368d <tri_tri_overlap_test_3d+0x257d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3e69 <tri_tri_overlap_test_3d+0x2d59>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3a93 <tri_tri_overlap_test_3d+0x2983>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    38a2 <tri_tri_overlap_test_3d+0x2792>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3a87 <tri_tri_overlap_test_3d+0x2977>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3c78 <tri_tri_overlap_test_3d+0x2b68>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3e5d <tri_tri_overlap_test_3d+0x2d4d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4251 <tri_tri_overlap_test_3d+0x3141>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4060 <tri_tri_overlap_test_3d+0x2f50>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4245 <tri_tri_overlap_test_3d+0x3135>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    4635 <tri_tri_overlap_test_3d+0x3525>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4444 <tri_tri_overlap_test_3d+0x3334>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4629 <tri_tri_overlap_test_3d+0x3519>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x20(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7577 <tri_tri_overlap_test_3d+0x6467>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5231 <tri_tri_overlap_test_3d+0x4121>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4a73 <tri_tri_overlap_test_3d+0x3963>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4882 <tri_tri_overlap_test_3d+0x3772>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4a67 <tri_tri_overlap_test_3d+0x3957>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4e5b <tri_tri_overlap_test_3d+0x3d4b>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4c6a <tri_tri_overlap_test_3d+0x3b5a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4e4f <tri_tri_overlap_test_3d+0x3d3f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5040 <tri_tri_overlap_test_3d+0x3f30>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5225 <tri_tri_overlap_test_3d+0x4115>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    5ddd <tri_tri_overlap_test_3d+0x4ccd>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    5623 <tri_tri_overlap_test_3d+0x4513>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5432 <tri_tri_overlap_test_3d+0x4322>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5617 <tri_tri_overlap_test_3d+0x4507>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    5a07 <tri_tri_overlap_test_3d+0x48f7>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5816 <tri_tri_overlap_test_3d+0x4706>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    59fb <tri_tri_overlap_test_3d+0x48eb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5bec <tri_tri_overlap_test_3d+0x4adc>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5dd1 <tri_tri_overlap_test_3d+0x4cc1>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    65a9 <tri_tri_overlap_test_3d+0x5499>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     61d3 <tri_tri_overlap_test_3d+0x50c3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    5fe2 <tri_tri_overlap_test_3d+0x4ed2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    61c7 <tri_tri_overlap_test_3d+0x50b7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    63b8 <tri_tri_overlap_test_3d+0x52a8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    659d <tri_tri_overlap_test_3d+0x548d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    6d79 <tri_tri_overlap_test_3d+0x5c69>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    69a3 <tri_tri_overlap_test_3d+0x5893>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    67b2 <tri_tri_overlap_test_3d+0x56a2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    6997 <tri_tri_overlap_test_3d+0x5887>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    6b88 <tri_tri_overlap_test_3d+0x5a78>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    6d6d <tri_tri_overlap_test_3d+0x5c5d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7161 <tri_tri_overlap_test_3d+0x6051>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    6f70 <tri_tri_overlap_test_3d+0x5e60>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7155 <tri_tri_overlap_test_3d+0x6045>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    7545 <tri_tri_overlap_test_3d+0x6435>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7354 <tri_tri_overlap_test_3d+0x6244>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7539 <tri_tri_overlap_test_3d+0x6429>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x10(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    812f <tri_tri_overlap_test_3d+0x701f>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7971 <tri_tri_overlap_test_3d+0x6861>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7780 <tri_tri_overlap_test_3d+0x6670>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7965 <tri_tri_overlap_test_3d+0x6855>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7d59 <tri_tri_overlap_test_3d+0x6c49>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7b68 <tri_tri_overlap_test_3d+0x6a58>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7d4d <tri_tri_overlap_test_3d+0x6c3d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    7f3e <tri_tri_overlap_test_3d+0x6e2e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8123 <tri_tri_overlap_test_3d+0x7013>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    8cdb <tri_tri_overlap_test_3d+0x7bcb>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    8521 <tri_tri_overlap_test_3d+0x7411>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8330 <tri_tri_overlap_test_3d+0x7220>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8515 <tri_tri_overlap_test_3d+0x7405>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    8905 <tri_tri_overlap_test_3d+0x77f5>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8714 <tri_tri_overlap_test_3d+0x7604>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    88f9 <tri_tri_overlap_test_3d+0x77e9>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8aea <tri_tri_overlap_test_3d+0x79da>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8ccf <tri_tri_overlap_test_3d+0x7bbf>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    94a7 <tri_tri_overlap_test_3d+0x8397>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     90d1 <tri_tri_overlap_test_3d+0x7fc1>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    8ee0 <tri_tri_overlap_test_3d+0x7dd0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    90c5 <tri_tri_overlap_test_3d+0x7fb5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    92b6 <tri_tri_overlap_test_3d+0x81a6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    949b <tri_tri_overlap_test_3d+0x838b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    9c77 <tri_tri_overlap_test_3d+0x8b67>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    98a1 <tri_tri_overlap_test_3d+0x8791>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    96b0 <tri_tri_overlap_test_3d+0x85a0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    9895 <tri_tri_overlap_test_3d+0x8785>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    9a86 <tri_tri_overlap_test_3d+0x8976>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    9c6b <tri_tri_overlap_test_3d+0x8b5b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a05f <tri_tri_overlap_test_3d+0x8f4f>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    9e6e <tri_tri_overlap_test_3d+0x8d5e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a053 <tri_tri_overlap_test_3d+0x8f43>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    a443 <tri_tri_overlap_test_3d+0x9333>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a252 <tri_tri_overlap_test_3d+0x9142>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a437 <tri_tri_overlap_test_3d+0x9327>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x40(%rbp),%xmm0
jbe    13199 <tri_tri_overlap_test_3d+0x12089>
xorps  %xmm0,%xmm0
ucomisd -0x48(%rbp),%xmm0
jbe    d38f <tri_tri_overlap_test_3d+0xc27f>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b049 <tri_tri_overlap_test_3d+0x9f39>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a88b <tri_tri_overlap_test_3d+0x977b>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a69a <tri_tri_overlap_test_3d+0x958a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    a87f <tri_tri_overlap_test_3d+0x976f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    ac73 <tri_tri_overlap_test_3d+0x9b63>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    aa82 <tri_tri_overlap_test_3d+0x9972>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    ac67 <tri_tri_overlap_test_3d+0x9b57>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    ae58 <tri_tri_overlap_test_3d+0x9d48>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b03d <tri_tri_overlap_test_3d+0x9f2d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    bbf5 <tri_tri_overlap_test_3d+0xaae5>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    b43b <tri_tri_overlap_test_3d+0xa32b>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b24a <tri_tri_overlap_test_3d+0xa13a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b42f <tri_tri_overlap_test_3d+0xa31f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    b81f <tri_tri_overlap_test_3d+0xa70f>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b62e <tri_tri_overlap_test_3d+0xa51e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    b813 <tri_tri_overlap_test_3d+0xa703>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    ba04 <tri_tri_overlap_test_3d+0xa8f4>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    bbe9 <tri_tri_overlap_test_3d+0xaad9>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    c3c1 <tri_tri_overlap_test_3d+0xb2b1>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     bfeb <tri_tri_overlap_test_3d+0xaedb>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    bdfa <tri_tri_overlap_test_3d+0xacea>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    bfdf <tri_tri_overlap_test_3d+0xaecf>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c1d0 <tri_tri_overlap_test_3d+0xb0c0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c3b5 <tri_tri_overlap_test_3d+0xb2a5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    cb91 <tri_tri_overlap_test_3d+0xba81>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c7bb <tri_tri_overlap_test_3d+0xb6ab>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c5ca <tri_tri_overlap_test_3d+0xb4ba>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c7af <tri_tri_overlap_test_3d+0xb69f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    c9a0 <tri_tri_overlap_test_3d+0xb890>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    cb85 <tri_tri_overlap_test_3d+0xba75>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    cf79 <tri_tri_overlap_test_3d+0xbe69>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    cd88 <tri_tri_overlap_test_3d+0xbc78>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    cf6d <tri_tri_overlap_test_3d+0xbe5d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    d35d <tri_tri_overlap_test_3d+0xc24d>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d16c <tri_tri_overlap_test_3d+0xc05c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d351 <tri_tri_overlap_test_3d+0xc241>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x20(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x50(%rbp),%xmm0
jbe    1029b <tri_tri_overlap_test_3d+0xf18b>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    df55 <tri_tri_overlap_test_3d+0xce45>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d797 <tri_tri_overlap_test_3d+0xc687>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d5a6 <tri_tri_overlap_test_3d+0xc496>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d78b <tri_tri_overlap_test_3d+0xc67b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    db7f <tri_tri_overlap_test_3d+0xca6f>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    d98e <tri_tri_overlap_test_3d+0xc87e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    db73 <tri_tri_overlap_test_3d+0xca63>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    dd64 <tri_tri_overlap_test_3d+0xcc54>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    df49 <tri_tri_overlap_test_3d+0xce39>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    eb01 <tri_tri_overlap_test_3d+0xd9f1>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    e347 <tri_tri_overlap_test_3d+0xd237>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    e156 <tri_tri_overlap_test_3d+0xd046>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    e33b <tri_tri_overlap_test_3d+0xd22b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    e72b <tri_tri_overlap_test_3d+0xd61b>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    e53a <tri_tri_overlap_test_3d+0xd42a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    e71f <tri_tri_overlap_test_3d+0xd60f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    e910 <tri_tri_overlap_test_3d+0xd800>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    eaf5 <tri_tri_overlap_test_3d+0xd9e5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    f2cd <tri_tri_overlap_test_3d+0xe1bd>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     eef7 <tri_tri_overlap_test_3d+0xdde7>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    ed06 <tri_tri_overlap_test_3d+0xdbf6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    eeeb <tri_tri_overlap_test_3d+0xdddb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f0dc <tri_tri_overlap_test_3d+0xdfcc>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f2c1 <tri_tri_overlap_test_3d+0xe1b1>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    fa9d <tri_tri_overlap_test_3d+0xe98d>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f6c7 <tri_tri_overlap_test_3d+0xe5b7>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f4d6 <tri_tri_overlap_test_3d+0xe3c6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f6bb <tri_tri_overlap_test_3d+0xe5ab>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    f8ac <tri_tri_overlap_test_3d+0xe79c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    fa91 <tri_tri_overlap_test_3d+0xe981>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    fe85 <tri_tri_overlap_test_3d+0xed75>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    fc94 <tri_tri_overlap_test_3d+0xeb84>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    fe79 <tri_tri_overlap_test_3d+0xed69>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    10269 <tri_tri_overlap_test_3d+0xf159>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10078 <tri_tri_overlap_test_3d+0xef68>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1025d <tri_tri_overlap_test_3d+0xf14d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x10(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10e53 <tri_tri_overlap_test_3d+0xfd43>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10695 <tri_tri_overlap_test_3d+0xf585>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    104a4 <tri_tri_overlap_test_3d+0xf394>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10689 <tri_tri_overlap_test_3d+0xf579>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10a7d <tri_tri_overlap_test_3d+0xf96d>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1088c <tri_tri_overlap_test_3d+0xf77c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10a71 <tri_tri_overlap_test_3d+0xf961>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10c62 <tri_tri_overlap_test_3d+0xfb52>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    10e47 <tri_tri_overlap_test_3d+0xfd37>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    119ff <tri_tri_overlap_test_3d+0x108ef>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    11245 <tri_tri_overlap_test_3d+0x10135>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11054 <tri_tri_overlap_test_3d+0xff44>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11239 <tri_tri_overlap_test_3d+0x10129>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    11629 <tri_tri_overlap_test_3d+0x10519>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11438 <tri_tri_overlap_test_3d+0x10328>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1161d <tri_tri_overlap_test_3d+0x1050d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1180e <tri_tri_overlap_test_3d+0x106fe>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    119f3 <tri_tri_overlap_test_3d+0x108e3>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    121cb <tri_tri_overlap_test_3d+0x110bb>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     11df5 <tri_tri_overlap_test_3d+0x10ce5>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11c04 <tri_tri_overlap_test_3d+0x10af4>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11de9 <tri_tri_overlap_test_3d+0x10cd9>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    11fda <tri_tri_overlap_test_3d+0x10eca>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    121bf <tri_tri_overlap_test_3d+0x110af>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1299b <tri_tri_overlap_test_3d+0x1188b>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    125c5 <tri_tri_overlap_test_3d+0x114b5>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    123d4 <tri_tri_overlap_test_3d+0x112c4>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    125b9 <tri_tri_overlap_test_3d+0x114a9>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    127aa <tri_tri_overlap_test_3d+0x1169a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1298f <tri_tri_overlap_test_3d+0x1187f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    12d83 <tri_tri_overlap_test_3d+0x11c73>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    12b92 <tri_tri_overlap_test_3d+0x11a82>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    12d77 <tri_tri_overlap_test_3d+0x11c67>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    13167 <tri_tri_overlap_test_3d+0x12057>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    12f76 <tri_tri_overlap_test_3d+0x11e66>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1315b <tri_tri_overlap_test_3d+0x1204b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x48(%rbp),%xmm0
jbe    18fb5 <tri_tri_overlap_test_3d+0x17ea5>
movsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     160b7 <tri_tri_overlap_test_3d+0x14fa7>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    13d71 <tri_tri_overlap_test_3d+0x12c61>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    135b3 <tri_tri_overlap_test_3d+0x124a3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    133c2 <tri_tri_overlap_test_3d+0x122b2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    135a7 <tri_tri_overlap_test_3d+0x12497>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1399b <tri_tri_overlap_test_3d+0x1288b>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    137aa <tri_tri_overlap_test_3d+0x1269a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1398f <tri_tri_overlap_test_3d+0x1287f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    13b80 <tri_tri_overlap_test_3d+0x12a70>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    13d65 <tri_tri_overlap_test_3d+0x12c55>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    1491d <tri_tri_overlap_test_3d+0x1380d>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    14163 <tri_tri_overlap_test_3d+0x13053>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    13f72 <tri_tri_overlap_test_3d+0x12e62>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14157 <tri_tri_overlap_test_3d+0x13047>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    14547 <tri_tri_overlap_test_3d+0x13437>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14356 <tri_tri_overlap_test_3d+0x13246>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1453b <tri_tri_overlap_test_3d+0x1342b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1472c <tri_tri_overlap_test_3d+0x1361c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14911 <tri_tri_overlap_test_3d+0x13801>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    150e9 <tri_tri_overlap_test_3d+0x13fd9>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14d13 <tri_tri_overlap_test_3d+0x13c03>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14b22 <tri_tri_overlap_test_3d+0x13a12>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14d07 <tri_tri_overlap_test_3d+0x13bf7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14ef8 <tri_tri_overlap_test_3d+0x13de8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    150dd <tri_tri_overlap_test_3d+0x13fcd>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    158b9 <tri_tri_overlap_test_3d+0x147a9>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    154e3 <tri_tri_overlap_test_3d+0x143d3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    152f2 <tri_tri_overlap_test_3d+0x141e2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    154d7 <tri_tri_overlap_test_3d+0x143c7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    156c8 <tri_tri_overlap_test_3d+0x145b8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    158ad <tri_tri_overlap_test_3d+0x1479d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    15ca1 <tri_tri_overlap_test_3d+0x14b91>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    15ab0 <tri_tri_overlap_test_3d+0x149a0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    15c95 <tri_tri_overlap_test_3d+0x14b85>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    16085 <tri_tri_overlap_test_3d+0x14f75>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    15e94 <tri_tri_overlap_test_3d+0x14d84>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16079 <tri_tri_overlap_test_3d+0x14f69>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x10(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16c6f <tri_tri_overlap_test_3d+0x15b5f>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    164b1 <tri_tri_overlap_test_3d+0x153a1>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    162c0 <tri_tri_overlap_test_3d+0x151b0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    164a5 <tri_tri_overlap_test_3d+0x15395>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16899 <tri_tri_overlap_test_3d+0x15789>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    166a8 <tri_tri_overlap_test_3d+0x15598>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1688d <tri_tri_overlap_test_3d+0x1577d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16a7e <tri_tri_overlap_test_3d+0x1596e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16c63 <tri_tri_overlap_test_3d+0x15b53>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    1781b <tri_tri_overlap_test_3d+0x1670b>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    17061 <tri_tri_overlap_test_3d+0x15f51>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    16e70 <tri_tri_overlap_test_3d+0x15d60>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17055 <tri_tri_overlap_test_3d+0x15f45>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    17445 <tri_tri_overlap_test_3d+0x16335>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17254 <tri_tri_overlap_test_3d+0x16144>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17439 <tri_tri_overlap_test_3d+0x16329>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1762a <tri_tri_overlap_test_3d+0x1651a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1780f <tri_tri_overlap_test_3d+0x166ff>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    17fe7 <tri_tri_overlap_test_3d+0x16ed7>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     17c11 <tri_tri_overlap_test_3d+0x16b01>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17a20 <tri_tri_overlap_test_3d+0x16910>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17c05 <tri_tri_overlap_test_3d+0x16af5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17df6 <tri_tri_overlap_test_3d+0x16ce6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    17fdb <tri_tri_overlap_test_3d+0x16ecb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    187b7 <tri_tri_overlap_test_3d+0x176a7>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    183e1 <tri_tri_overlap_test_3d+0x172d1>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    181f0 <tri_tri_overlap_test_3d+0x170e0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    183d5 <tri_tri_overlap_test_3d+0x172c5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    185c6 <tri_tri_overlap_test_3d+0x174b6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    187ab <tri_tri_overlap_test_3d+0x1769b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    18b9f <tri_tri_overlap_test_3d+0x17a8f>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    189ae <tri_tri_overlap_test_3d+0x1789e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    18b93 <tri_tri_overlap_test_3d+0x17a83>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    18f83 <tri_tri_overlap_test_3d+0x17e73>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    18d92 <tri_tri_overlap_test_3d+0x17c82>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    18f77 <tri_tri_overlap_test_3d+0x17e67>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x48(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1edd5 <tri_tri_overlap_test_3d+0x1dcc5>
movsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1bed7 <tri_tri_overlap_test_3d+0x1adc7>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19b91 <tri_tri_overlap_test_3d+0x18a81>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    193d3 <tri_tri_overlap_test_3d+0x182c3>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    191e2 <tri_tri_overlap_test_3d+0x180d2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    193c7 <tri_tri_overlap_test_3d+0x182b7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    197bb <tri_tri_overlap_test_3d+0x186ab>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    195ca <tri_tri_overlap_test_3d+0x184ba>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    197af <tri_tri_overlap_test_3d+0x1869f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    199a0 <tri_tri_overlap_test_3d+0x18890>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19b85 <tri_tri_overlap_test_3d+0x18a75>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    1a73d <tri_tri_overlap_test_3d+0x1962d>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    19f83 <tri_tri_overlap_test_3d+0x18e73>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19d92 <tri_tri_overlap_test_3d+0x18c82>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19f77 <tri_tri_overlap_test_3d+0x18e67>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    1a367 <tri_tri_overlap_test_3d+0x19257>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a176 <tri_tri_overlap_test_3d+0x19066>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a35b <tri_tri_overlap_test_3d+0x1924b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a54c <tri_tri_overlap_test_3d+0x1943c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a731 <tri_tri_overlap_test_3d+0x19621>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    1af09 <tri_tri_overlap_test_3d+0x19df9>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1ab33 <tri_tri_overlap_test_3d+0x19a23>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1a942 <tri_tri_overlap_test_3d+0x19832>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ab27 <tri_tri_overlap_test_3d+0x19a17>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ad18 <tri_tri_overlap_test_3d+0x19c08>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1aefd <tri_tri_overlap_test_3d+0x19ded>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b6d9 <tri_tri_overlap_test_3d+0x1a5c9>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b303 <tri_tri_overlap_test_3d+0x1a1f3>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b112 <tri_tri_overlap_test_3d+0x1a002>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b2f7 <tri_tri_overlap_test_3d+0x1a1e7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b4e8 <tri_tri_overlap_test_3d+0x1a3d8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b6cd <tri_tri_overlap_test_3d+0x1a5bd>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1bac1 <tri_tri_overlap_test_3d+0x1a9b1>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b8d0 <tri_tri_overlap_test_3d+0x1a7c0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1bab5 <tri_tri_overlap_test_3d+0x1a9a5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    1bea5 <tri_tri_overlap_test_3d+0x1ad95>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1bcb4 <tri_tri_overlap_test_3d+0x1aba4>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1be99 <tri_tri_overlap_test_3d+0x1ad89>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ca8f <tri_tri_overlap_test_3d+0x1b97f>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c2d1 <tri_tri_overlap_test_3d+0x1b1c1>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c0e0 <tri_tri_overlap_test_3d+0x1afd0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c2c5 <tri_tri_overlap_test_3d+0x1b1b5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c6b9 <tri_tri_overlap_test_3d+0x1b5a9>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c4c8 <tri_tri_overlap_test_3d+0x1b3b8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c6ad <tri_tri_overlap_test_3d+0x1b59d>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1c89e <tri_tri_overlap_test_3d+0x1b78e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ca83 <tri_tri_overlap_test_3d+0x1b973>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    1d63b <tri_tri_overlap_test_3d+0x1c52b>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    1ce81 <tri_tri_overlap_test_3d+0x1bd71>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1cc90 <tri_tri_overlap_test_3d+0x1bb80>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ce75 <tri_tri_overlap_test_3d+0x1bd65>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    1d265 <tri_tri_overlap_test_3d+0x1c155>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d074 <tri_tri_overlap_test_3d+0x1bf64>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d259 <tri_tri_overlap_test_3d+0x1c149>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d44a <tri_tri_overlap_test_3d+0x1c33a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d62f <tri_tri_overlap_test_3d+0x1c51f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    1de07 <tri_tri_overlap_test_3d+0x1ccf7>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1da31 <tri_tri_overlap_test_3d+0x1c921>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1d840 <tri_tri_overlap_test_3d+0x1c730>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1da25 <tri_tri_overlap_test_3d+0x1c915>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1dc16 <tri_tri_overlap_test_3d+0x1cb06>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ddfb <tri_tri_overlap_test_3d+0x1cceb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e5d7 <tri_tri_overlap_test_3d+0x1d4c7>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e201 <tri_tri_overlap_test_3d+0x1d0f1>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e010 <tri_tri_overlap_test_3d+0x1cf00>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e1f5 <tri_tri_overlap_test_3d+0x1d0e5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e3e6 <tri_tri_overlap_test_3d+0x1d2d6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e5cb <tri_tri_overlap_test_3d+0x1d4bb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e9bf <tri_tri_overlap_test_3d+0x1d8af>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e7ce <tri_tri_overlap_test_3d+0x1d6be>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e9b3 <tri_tri_overlap_test_3d+0x1d8a3>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    1eda3 <tri_tri_overlap_test_3d+0x1dc93>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ebb2 <tri_tri_overlap_test_3d+0x1daa2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ed97 <tri_tri_overlap_test_3d+0x1dc87>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x18(%rbp),%rdi
mov    -0x20(%rbp),%rsi
mov    -0x10(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x50(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21ce5 <tri_tri_overlap_test_3d+0x20bd5>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f99f <tri_tri_overlap_test_3d+0x1e88f>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f1e1 <tri_tri_overlap_test_3d+0x1e0d1>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1eff0 <tri_tri_overlap_test_3d+0x1dee0>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f1d5 <tri_tri_overlap_test_3d+0x1e0c5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f5c9 <tri_tri_overlap_test_3d+0x1e4b9>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f3d8 <tri_tri_overlap_test_3d+0x1e2c8>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f5bd <tri_tri_overlap_test_3d+0x1e4ad>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f7ae <tri_tri_overlap_test_3d+0x1e69e>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1f993 <tri_tri_overlap_test_3d+0x1e883>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    2054b <tri_tri_overlap_test_3d+0x1f43b>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    1fd91 <tri_tri_overlap_test_3d+0x1ec81>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1fba0 <tri_tri_overlap_test_3d+0x1ea90>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1fd85 <tri_tri_overlap_test_3d+0x1ec75>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    20175 <tri_tri_overlap_test_3d+0x1f065>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1ff84 <tri_tri_overlap_test_3d+0x1ee74>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20169 <tri_tri_overlap_test_3d+0x1f059>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2035a <tri_tri_overlap_test_3d+0x1f24a>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2053f <tri_tri_overlap_test_3d+0x1f42f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    20d17 <tri_tri_overlap_test_3d+0x1fc07>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     20941 <tri_tri_overlap_test_3d+0x1f831>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20750 <tri_tri_overlap_test_3d+0x1f640>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20935 <tri_tri_overlap_test_3d+0x1f825>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20b26 <tri_tri_overlap_test_3d+0x1fa16>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20d0b <tri_tri_overlap_test_3d+0x1fbfb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    214e7 <tri_tri_overlap_test_3d+0x203d7>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21111 <tri_tri_overlap_test_3d+0x20001>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    20f20 <tri_tri_overlap_test_3d+0x1fe10>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21105 <tri_tri_overlap_test_3d+0x1fff5>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    212f6 <tri_tri_overlap_test_3d+0x201e6>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    214db <tri_tri_overlap_test_3d+0x203cb>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    218cf <tri_tri_overlap_test_3d+0x207bf>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    216de <tri_tri_overlap_test_3d+0x205ce>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    218c3 <tri_tri_overlap_test_3d+0x207b3>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    21cb3 <tri_tri_overlap_test_3d+0x20ba3>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21ac2 <tri_tri_overlap_test_3d+0x209b2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21ca7 <tri_tri_overlap_test_3d+0x20b97>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x20(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x50(%rbp),%xmm0
jbe    24bf1 <tri_tri_overlap_test_3d+0x23ae1>
movsd  -0x58(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    228ab <tri_tri_overlap_test_3d+0x2179b>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    220ed <tri_tri_overlap_test_3d+0x20fdd>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    21efc <tri_tri_overlap_test_3d+0x20dec>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    220e1 <tri_tri_overlap_test_3d+0x20fd1>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    224d5 <tri_tri_overlap_test_3d+0x213c5>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    222e4 <tri_tri_overlap_test_3d+0x211d4>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    224c9 <tri_tri_overlap_test_3d+0x213b9>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    226ba <tri_tri_overlap_test_3d+0x215aa>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2289f <tri_tri_overlap_test_3d+0x2178f>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x58(%rbp),%xmm0
jbe    23457 <tri_tri_overlap_test_3d+0x22347>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    22c9d <tri_tri_overlap_test_3d+0x21b8d>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    22aac <tri_tri_overlap_test_3d+0x2199c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    22c91 <tri_tri_overlap_test_3d+0x21b81>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    23081 <tri_tri_overlap_test_3d+0x21f71>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    22e90 <tri_tri_overlap_test_3d+0x21d80>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23075 <tri_tri_overlap_test_3d+0x21f65>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23266 <tri_tri_overlap_test_3d+0x22156>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2344b <tri_tri_overlap_test_3d+0x2233b>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x68(%rbp),%xmm0
jbe    23c23 <tri_tri_overlap_test_3d+0x22b13>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     2384d <tri_tri_overlap_test_3d+0x2273d>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2365c <tri_tri_overlap_test_3d+0x2254c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23841 <tri_tri_overlap_test_3d+0x22731>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23a32 <tri_tri_overlap_test_3d+0x22922>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23c17 <tri_tri_overlap_test_3d+0x22b07>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x68(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    243f3 <tri_tri_overlap_test_3d+0x232e3>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2401d <tri_tri_overlap_test_3d+0x22f0d>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    23e2c <tri_tri_overlap_test_3d+0x22d1c>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    24011 <tri_tri_overlap_test_3d+0x22f01>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    24202 <tri_tri_overlap_test_3d+0x230f2>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    243e7 <tri_tri_overlap_test_3d+0x232d7>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movsd  -0x60(%rbp),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    247db <tri_tri_overlap_test_3d+0x236cb>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    245ea <tri_tri_overlap_test_3d+0x234da>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    247cf <tri_tri_overlap_test_3d+0x236bf>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
xorps  %xmm0,%xmm0
ucomisd -0x60(%rbp),%xmm0
jbe    24bbf <tri_tri_overlap_test_3d+0x23aaf>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x18(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    249ce <tri_tri_overlap_test_3d+0x238be>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x70(%rbp),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0x80(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
mulsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x38(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x20(%rbp),%rax
subsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm1
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    24bb3 <tri_tri_overlap_test_3d+0x23aa3>
movl   $0x0,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
movl   $0x1,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x20(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x18(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x38(%rbp),%r8
mov    -0x30(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
jmp    24c1e <tri_tri_overlap_test_3d+0x23b0e>
mov    -0x10(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0x20(%rbp),%rdx
mov    -0x28(%rbp),%rcx
mov    -0x30(%rbp),%r8
mov    -0x38(%rbp),%r9
lea    -0xc0(%rbp),%rax
mov    %rax,(%rsp)
mov    $0x0,%al
call   1030 <coplanar_tri_tri3d@plt>
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0xf0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<tri_tri_overlap_test_3d>:
sub    $0x248,%rsp
mov    %r8,%r10
mov    %rsi,%r8
mov    %rdi,%r11
movsd  (%rcx),%xmm15
movsd  (%r9),%xmm6
movapd %xmm15,%xmm2
subsd  %xmm6,%xmm2
movupd 0x8(%r9),%xmm7
movupd 0x8(%rcx),%xmm0
movapd %xmm0,%xmm1
subsd  %xmm7,%xmm1
movapd %xmm7,%xmm12
unpckhpd %xmm7,%xmm12
movapd %xmm0,0x70(%rsp)
movapd %xmm0,%xmm8
unpckhpd %xmm0,%xmm8
movapd %xmm8,%xmm0
subsd  %xmm12,%xmm0
movsd  (%r10),%xmm3
movapd %xmm3,0x80(%rsp)
subsd  %xmm6,%xmm3
movupd 0x8(%r10),%xmm4
movapd %xmm4,%xmm13
subsd  %xmm7,%xmm13
movapd %xmm4,0x90(%rsp)
unpckhpd %xmm4,%xmm4
movapd %xmm4,0xc0(%rsp)
subsd  %xmm12,%xmm4
movapd %xmm13,%xmm5
mulsd  %xmm0,%xmm5
mulsd  %xmm3,%xmm0
mulsd  %xmm1,%xmm3
mulsd  %xmm4,%xmm1
subsd  %xmm5,%xmm1
mulsd  %xmm2,%xmm4
subsd  %xmm4,%xmm0
mulsd  %xmm2,%xmm13
subsd  %xmm3,%xmm13
movsd  (%rdi),%xmm3
movapd %xmm3,0x220(%rsp)
subsd  %xmm6,%xmm3
movupd 0x8(%rdi),%xmm10
movapd %xmm10,%xmm2
subsd  %xmm7,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
movapd %xmm10,%xmm2
unpckhpd %xmm10,%xmm2
movapd %xmm2,%xmm9
subsd  %xmm12,%xmm9
mulsd  %xmm13,%xmm9
addsd  %xmm3,%xmm9
movsd  (%rsi),%xmm14
movsd  (%rdx),%xmm4
movapd %xmm4,0xf0(%rsp)
unpcklpd %xmm14,%xmm4
movapd %xmm6,0x60(%rsp)
movapd %xmm6,%xmm3
unpcklpd %xmm6,%xmm3
subpd  %xmm3,%xmm4
movupd 0x8(%rsi),%xmm11
movupd 0x8(%rdx),%xmm6
movapd %xmm6,%xmm5
unpcklpd %xmm11,%xmm5
movapd %xmm7,0x50(%rsp)
movapd %xmm7,%xmm3
unpcklpd %xmm7,%xmm3
subpd  %xmm3,%xmm5
unpcklpd %xmm0,%xmm0
mulpd  %xmm5,%xmm0
unpcklpd %xmm1,%xmm1
mulpd  %xmm4,%xmm1
addpd  %xmm0,%xmm1
movapd %xmm6,%xmm0
unpckhpd %xmm11,%xmm0
movapd %xmm12,0xb0(%rsp)
subpd  %xmm12,%xmm0
unpcklpd %xmm13,%xmm13
mulpd  %xmm0,%xmm13
addpd  %xmm1,%xmm13
movapd %xmm13,%xmm0
unpckhpd %xmm13,%xmm0
movapd %xmm9,%xmm1
mulsd  %xmm0,%xmm1
xor    %eax,%eax
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
jbe    12d9 <tri_tri_overlap_test_3d+0x1c9>
movapd %xmm9,%xmm1
mulsd  %xmm13,%xmm1
ucomisd %xmm3,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd %xmm0,0x230(%rsp)
movapd %xmm8,0xd0(%rsp)
movapd %xmm6,%xmm3
unpckhpd %xmm6,%xmm3
movapd %xmm11,%xmm0
subpd  %xmm10,%xmm0
movapd %xmm11,0x30(%rsp)
movapd %xmm14,0x210(%rsp)
movsd  %xmm14,%xmm11
movapd %xmm10,%xmm4
movapd 0x220(%rsp),%xmm1
movsd  %xmm1,%xmm4
movapd %xmm11,%xmm12
movapd %xmm4,0x170(%rsp)
subpd  %xmm4,%xmm12
movapd %xmm12,%xmm7
shufpd $0x1,%xmm12,%xmm7
movapd %xmm6,%xmm5
subpd  %xmm10,%xmm5
movapd %xmm3,0x100(%rsp)
movapd 0xf0(%rsp),%xmm14
unpcklpd %xmm14,%xmm3
movapd %xmm2,0x200(%rsp)
unpcklpd %xmm1,%xmm2
movapd %xmm3,0x110(%rsp)
movapd %xmm3,%xmm4
movapd %xmm2,0x1d0(%rsp)
subpd  %xmm2,%xmm4
movapd %xmm5,%xmm3
unpcklpd %xmm4,%xmm3
movapd %xmm3,0x1e0(%rsp)
movapd %xmm7,0x1f0(%rsp)
mulpd  %xmm7,%xmm3
movapd %xmm12,%xmm7
movsd  %xmm0,%xmm7
movapd %xmm7,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm3,%xmm1
movapd %xmm4,0x1c0(%rsp)
movapd %xmm4,%xmm3
unpckhpd %xmm4,%xmm3
movapd %xmm3,0x1a0(%rsp)
movapd %xmm0,0x190(%rsp)
mulsd  %xmm0,%xmm3
movapd %xmm12,0x180(%rsp)
movapd %xmm5,0x1b0(%rsp)
mulsd  %xmm5,%xmm12
subsd  %xmm3,%xmm12
movapd %xmm15,0xa0(%rsp)
subsd  %xmm14,%xmm15
movapd 0x70(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm1,%xmm8
unpckhpd %xmm1,%xmm8
movapd %xmm3,%xmm4
mulsd  %xmm8,%xmm4
movapd %xmm6,%xmm2
movapd %xmm15,0x160(%rsp)
movapd %xmm15,%xmm6
mulsd  %xmm1,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm3,0x140(%rsp)
movapd %xmm3,%xmm15
unpckhpd %xmm3,%xmm15
movapd %xmm15,0x150(%rsp)
mulsd  %xmm12,%xmm15
addsd  %xmm6,%xmm15
movapd 0x80(%rsp),%xmm5
unpcklpd 0x60(%rsp),%xmm5
unpcklpd %xmm14,%xmm14
subpd  %xmm14,%xmm5
movapd 0x90(%rsp),%xmm3
subpd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm6
movapd %xmm2,0x40(%rsp)
subpd  %xmm2,%xmm6
movapd %xmm6,%xmm2
movapd %xmm3,%xmm6
unpcklpd %xmm2,%xmm6
mulpd  %xmm8,%xmm6
movapd %xmm1,0x10(%rsp)
unpcklpd %xmm1,%xmm1
mulpd  %xmm5,%xmm1
addpd  %xmm6,%xmm1
movsd  %xmm12,0x20(%rsp)
movapd %xmm3,0x120(%rsp)
unpckhpd %xmm2,%xmm3
unpcklpd %xmm12,%xmm12
mulpd  %xmm3,%xmm12
addpd  %xmm1,%xmm12
movapd %xmm15,%xmm1
mulsd  %xmm12,%xmm1
ucomisd 0xab01(%rip),%xmm1
movapd %xmm12,%xmm1
unpckhpd %xmm12,%xmm1
jbe    1526 <tri_tri_overlap_test_3d+0x416>
movapd %xmm15,%xmm0
mulsd  %xmm1,%xmm0
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm0
jbe    1526 <tri_tri_overlap_test_3d+0x416>
add    $0x248,%rsp
ret
movapd %xmm5,0xe0(%rsp)
movapd %xmm10,%xmm6
movapd 0x30(%rsp),%xmm4
unpckhpd %xmm4,%xmm4
movapd 0x180(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
movaps 0x120(%rsp),%xmm3
movhlps %xmm3,%xmm3
movaps %xmm3,0x130(%rsp)
movapd %xmm2,%xmm3
unpckhpd %xmm2,%xmm3
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm9
jbe    1728 <tri_tri_overlap_test_3d+0x618>
movapd 0x230(%rsp),%xmm5
ucomisd %xmm10,%xmm5
jbe    18e5 <tri_tri_overlap_test_3d+0x7d5>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm15
jbe    1c4c <tri_tri_overlap_test_3d+0xb3c>
ucomisd %xmm0,%xmm1
jbe    222c <tri_tri_overlap_test_3d+0x111c>
movapd %xmm3,%xmm12
movapd %xmm2,%xmm10
movapd 0x210(%rsp),%xmm8
movapd 0x80(%rsp),%xmm13
subsd  %xmm8,%xmm13
movapd 0x30(%rsp),%xmm11
movapd 0x90(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd %xmm4,%xmm9
movapd 0xc0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm1
subsd  %xmm8,%xmm1
movapd 0x40(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm9,%xmm5
movapd %xmm0,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm7,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm13,%xmm5
mulsd  %xmm1,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm1
mulsd  %xmm13,%xmm0
subsd  %xmm1,%xmm0
movapd 0xa0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm3,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x40(%rsp),%xmm1
subpd  %xmm1,%xmm6
movapd 0xf0(%rsp),%xmm2
shufpd $0x2,%xmm1,%xmm2
movapd 0x170(%rsp),%xmm7
subpd  %xmm2,%xmm7
movapd %xmm7,%xmm1
shufpd $0x1,%xmm7,%xmm1
movapd 0x130(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm3
movapd %xmm7,%xmm2
movsd  %xmm6,%xmm2
mulpd  %xmm3,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm2,%xmm3
movapd %xmm3,0x10(%rsp)
mulsd  %xmm5,%xmm7
mulsd  %xmm4,%xmm6
subsd  %xmm7,%xmm6
unpckhpd %xmm4,%xmm4
mulsd  %xmm3,%xmm4
unpckhpd %xmm3,%xmm3
mulsd  %xmm3,%xmm10
addsd  %xmm10,%xmm4
mulsd  %xmm6,%xmm12
addsd  %xmm4,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
movapd %xmm2,0x170(%rsp)
xorpd  %xmm2,%xmm2
ucomisd %xmm9,%xmm10
jbe    1ab7 <tri_tri_overlap_test_3d+0x9a7>
ucomisd 0x230(%rsp),%xmm2
movapd 0x210(%rsp),%xmm11
movapd 0x220(%rsp),%xmm14
jbe    1de5 <tri_tri_overlap_test_3d+0xcd5>
ucomisd %xmm2,%xmm15
movapd 0x200(%rsp),%xmm13
jbe    23ad <tri_tri_overlap_test_3d+0x129d>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm12
jbe    2da1 <tri_tri_overlap_test_3d+0x1c91>
movapd 0x60(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm10
movapd %xmm4,%xmm8
movapd 0x50(%rsp),%xmm4
subsd  %xmm10,%xmm4
movapd 0xb0(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm10,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm4,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm0
subsd  %xmm7,%xmm0
mulsd  %xmm4,%xmm5
mulsd  %xmm12,%xmm1
subsd  %xmm5,%xmm1
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x70(%rsp),%xmm3
subsd  %xmm10,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movapd 0xd0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm3,%xmm2
ucomisd %xmm9,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm4
movapd %xmm4,%xmm0
unpckhpd %xmm4,%xmm0
movapd 0x170(%rsp),%xmm2
movapd %xmm2,%xmm1
unpckhpd %xmm4,%xmm1
mulsd  %xmm6,%xmm0
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x120(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  0x130(%rsp),%xmm0
jmp    77de <tri_tri_overlap_test_3d+0x66ce>
movapd %xmm2,%xmm10
movapd 0xe0(%rsp),%xmm14
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm13
movapd 0x210(%rsp),%xmm13
jbe    1f7e <tri_tri_overlap_test_3d+0xe6e>
ucomisd %xmm2,%xmm15
movapd 0x200(%rsp),%xmm8
movapd 0x220(%rsp),%xmm9
jbe    2494 <tri_tri_overlap_test_3d+0x1384>
xorpd  %xmm15,%xmm15
ucomisd %xmm15,%xmm1
jbe    2f1c <tri_tri_overlap_test_3d+0x1e0c>
movapd %xmm4,%xmm10
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x80(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm2
mulsd  %xmm2,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm2,%xmm1
mulsd  %xmm5,%xmm3
subsd  %xmm1,%xmm3
movapd 0xa0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm15,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm13,%xmm7
movapd 0x30(%rsp),%xmm4
movapd 0x90(%rsp),%xmm6
subpd  %xmm4,%xmm6
movapd 0x40(%rsp),%xmm1
movapd %xmm1,%xmm0
subpd  %xmm4,%xmm0
movapd 0xf0(%rsp),%xmm5
shufpd $0x2,%xmm1,%xmm5
subpd  %xmm11,%xmm5
movapd %xmm5,%xmm1
shufpd $0x1,%xmm5,%xmm1
movapd %xmm6,%xmm2
shufpd $0x1,%xmm7,%xmm2
movapd %xmm5,%xmm3
movsd  %xmm0,%xmm3
mulpd  %xmm2,%xmm3
mulpd  %xmm6,%xmm1
subpd  %xmm3,%xmm1
movapd %xmm1,0x10(%rsp)
mulsd  %xmm6,%xmm5
mulsd  %xmm7,%xmm0
subsd  %xmm5,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x60(%rsp),%xmm2
subsd  %xmm13,%xmm2
movapd 0xb0(%rsp),%xmm6
subsd  %xmm10,%xmm6
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x50(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
mulsd  %xmm0,%xmm6
addsd  %xmm3,%xmm6
xorpd  %xmm0,%xmm0
xor    %eax,%eax
ucomisd %xmm0,%xmm6
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd 0x230(%rsp),%xmm2
movapd 0x210(%rsp),%xmm11
movapd 0x220(%rsp),%xmm14
jbe    20df <tri_tri_overlap_test_3d+0xfcf>
ucomisd %xmm2,%xmm13
movapd 0x200(%rsp),%xmm8
jae    2610 <tri_tri_overlap_test_3d+0x1500>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm15
jbe    3091 <tri_tri_overlap_test_3d+0x1f81>
ucomisd %xmm0,%xmm12
jbe    4332 <tri_tri_overlap_test_3d+0x3222>
movapd %xmm7,%xmm9
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm4
movapd %xmm3,%xmm7
movapd %xmm4,%xmm3
mulsd  %xmm2,%xmm3
movapd 0xe0(%rsp),%xmm5
unpckhpd %xmm5,%xmm5
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm5
mulsd  %xmm7,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x140(%rsp),%xmm7
movapd 0x160(%rsp),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm7,%xmm0
movapd 0x150(%rsp),%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm3,%xmm1
mulpd  %xmm1,%xmm9
subpd  %xmm9,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x190(%rsp),%xmm3
subsd  %xmm2,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x80(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm5,%xmm4
unpckhpd %xmm5,%xmm5
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
jmp    8e46 <tri_tri_overlap_test_3d+0x7d36>
ucomisd %xmm15,%xmm0
movapd 0x220(%rsp),%xmm9
jbe    27a0 <tri_tri_overlap_test_3d+0x1690>
xorpd  %xmm13,%xmm13
ucomisd %xmm1,%xmm13
movapd 0x210(%rsp),%xmm8
jbe    31f2 <tri_tri_overlap_test_3d+0x20e2>
movapd %xmm3,%xmm11
movapd %xmm2,%xmm10
movapd %xmm4,%xmm15
movapd 0x80(%rsp),%xmm3
subsd  %xmm9,%xmm3
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0x200(%rsp),%xmm12
movapd 0xc0(%rsp),%xmm7
subsd  %xmm12,%xmm7
movapd 0x1b0(%rsp),%xmm5
movapd %xmm5,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm4,%xmm2
movapd 0x1c0(%rsp),%xmm0
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm0
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm1,%xmm4
mulsd  %xmm5,%xmm3
subsd  %xmm4,%xmm3
movapd 0xa0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm12,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
ucomisd %xmm13,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm15,%xmm3
unpcklpd %xmm8,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm1
movapd %xmm4,%xmm0
mulsd  %xmm2,%xmm0
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm0
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
mulsd  %xmm1,%xmm10
addsd  %xmm10,%xmm4
mulsd  %xmm0,%xmm11
addsd  %xmm4,%xmm11
xorpd  %xmm0,%xmm0
xor    %eax,%eax
ucomisd %xmm0,%xmm11
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd %xmm13,%xmm2
movapd 0x200(%rsp),%xmm8
jbe    2920 <tri_tri_overlap_test_3d+0x1810>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm15
jbe    3360 <tri_tri_overlap_test_3d+0x2250>
ucomisd %xmm2,%xmm12
jbe    4486 <tri_tri_overlap_test_3d+0x3376>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm6
subsd  %xmm11,%xmm6
movapd 0x30(%rsp),%xmm4
movapd 0x50(%rsp),%xmm2
subpd  %xmm4,%xmm2
movapd 0x40(%rsp),%xmm7
subpd  %xmm4,%xmm7
movapd %xmm9,%xmm3
movapd %xmm9,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm1
shufpd $0x1,%xmm6,%xmm1
mulsd  %xmm7,%xmm6
unpcklpd %xmm5,%xmm7
mulpd  %xmm1,%xmm7
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm7,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm1,%xmm5
unpckhpd %xmm1,%xmm1
movapd 0x90(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm5,%xmm3
mulsd  %xmm6,%xmm2
jmp    8f95 <tri_tri_overlap_test_3d+0x7e85>
ucomisd %xmm2,%xmm15
movapd 0x200(%rsp),%xmm8
movapd 0x220(%rsp),%xmm11
jbe    2a88 <tri_tri_overlap_test_3d+0x1978>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm12
jbe    34a6 <tri_tri_overlap_test_3d+0x2396>
movapd %xmm7,%xmm12
movapd %xmm11,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm0
subsd  0x100(%rsp),%xmm0
movapd %xmm10,%xmm4
mulsd  %xmm0,%xmm4
movapd %xmm14,%xmm7
unpckhpd %xmm14,%xmm7
mulsd  %xmm7,%xmm0
mulsd  %xmm2,%xmm7
mulsd  %xmm3,%xmm2
subsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm10,%xmm1
subsd  %xmm1,%xmm7
mulsd  0x140(%rsp),%xmm3
movapd 0x160(%rsp),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movapd 0x150(%rsp),%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
ucomisd %xmm9,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x50(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm0
shufpd $0x1,%xmm1,%xmm0
mulpd  %xmm0,%xmm12
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm12,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x180(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x190(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0xc0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm3
unpckhpd %xmm4,%xmm4
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm0
jmp    77de <tri_tri_overlap_test_3d+0x66ce>
xorpd  %xmm2,%xmm2
cmpltpd %xmm13,%xmm2
pextrw $0x4,%xmm2,%esi
test   $0x1,%sil
movapd 0x200(%rsp),%xmm8
je     2bfe <tri_tri_overlap_test_3d+0x1aee>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm13
jbe    35f0 <tri_tri_overlap_test_3d+0x24e0>
ucomisd %xmm2,%xmm15
jbe    45d7 <tri_tri_overlap_test_3d+0x34c7>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm1
jbe    6316 <tri_tri_overlap_test_3d+0x5206>
movapd %xmm7,%xmm10
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x120(%rsp),%xmm0
movapd %xmm0,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0xe0(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm0,%xmm1
mulsd  %xmm4,%xmm2
subsd  %xmm1,%xmm2
mulsd  0x140(%rsp),%xmm7
movapd 0x160(%rsp),%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm7,%xmm1
movapd 0x150(%rsp),%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
ucomisd %xmm9,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
mulpd  %xmm1,%xmm10
subpd  %xmm10,%xmm3
movapd %xmm3,0x10(%rsp)
mulsd  0x190(%rsp),%xmm0
jmp    727d <tri_tri_overlap_test_3d+0x616d>
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm12
jbe    377a <tri_tri_overlap_test_3d+0x266a>
movapd %xmm2,%xmm11
movapd 0x60(%rsp),%xmm13
movapd 0x210(%rsp),%xmm8
subsd  %xmm8,%xmm13
movapd 0x30(%rsp),%xmm12
movapd 0x50(%rsp),%xmm0
subsd  %xmm12,%xmm0
movapd %xmm4,%xmm9
movapd 0xb0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm12,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm13,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm13,%xmm1
subsd  %xmm5,%xmm1
movapd 0x80(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
movapd 0x90(%rsp),%xmm2
subsd  %xmm12,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm2
subpd  0x110(%rsp),%xmm2
movapd %xmm11,%xmm1
movapd %xmm11,%xmm0
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm3
mulsd  %xmm6,%xmm3
unpcklpd %xmm2,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm11,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm2,%xmm2
mulsd  %xmm11,%xmm2
subsd  %xmm2,%xmm3
movapd 0x160(%rsp),%xmm1
mulsd  %xmm0,%xmm1
unpckhpd %xmm0,%xmm0
movapd 0x140(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movapd 0x150(%rsp),%xmm1
mulsd  %xmm3,%xmm1
jmp    6d83 <tri_tri_overlap_test_3d+0x5c73>
xorpd  %xmm0,%xmm0
ucomisd %xmm15,%xmm0
jbe    38e4 <tri_tri_overlap_test_3d+0x27d4>
ucomisd %xmm12,%xmm0
jbe    4eb2 <tri_tri_overlap_test_3d+0x3da2>
movapd %xmm4,%xmm8
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xb0(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0x1b0(%rsp),%xmm7
movapd %xmm7,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm3
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm7,%xmm2
subsd  %xmm4,%xmm2
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
movapd 0xd0(%rsp),%xmm4
subsd  %xmm13,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm4
subpd  0x40(%rsp),%xmm4
movapd %xmm8,%xmm3
jmp    4e2b <tri_tri_overlap_test_3d+0x3d1b>
xorpd  %xmm2,%xmm2
ucomisd %xmm15,%xmm2
jbe    3a65 <tri_tri_overlap_test_3d+0x2955>
ucomisd %xmm1,%xmm2
jbe    46ca <tri_tri_overlap_test_3d+0x35ba>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x130(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd %xmm14,%xmm7
mulsd  %xmm14,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
mulsd  %xmm14,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x140(%rsp),%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
movapd 0x150(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm13,%xmm7
movapd 0x30(%rsp),%xmm3
movapd 0x90(%rsp),%xmm4
subpd  %xmm3,%xmm4
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm4,%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm4,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0x60(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0xb0(%rsp),%xmm5
subsd  %xmm8,%xmm5
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm7,%xmm5
jmp    52b8 <tri_tri_overlap_test_3d+0x41a8>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm15
jbe    3bd8 <tri_tri_overlap_test_3d+0x2ac8>
ucomisd %xmm2,%xmm1
jbe    4828 <tri_tri_overlap_test_3d+0x3718>
movapd %xmm4,%xmm9
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
movapd 0x40(%rsp),%xmm6
subpd  %xmm4,%xmm6
movapd %xmm9,%xmm3
movapd %xmm9,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm7,%xmm2
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xb0(%rsp),%xmm12
subsd  %xmm9,%xmm12
mulsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd 0x50(%rsp),%xmm1
subsd  %xmm4,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm5,%xmm1
mulsd  %xmm7,%xmm12
addsd  %xmm1,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
xorpd  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
movapd 0x210(%rsp),%xmm10
jbe    3d59 <tri_tri_overlap_test_3d+0x2c49>
ucomisd %xmm0,%xmm12
movapd 0x200(%rsp),%xmm11
movapd 0xd0(%rsp),%xmm7
jae    499f <tri_tri_overlap_test_3d+0x388f>
movapd %xmm4,%xmm8
movapd 0xa0(%rsp),%xmm2
subsd  %xmm9,%xmm2
movapd 0x70(%rsp),%xmm4
subsd  %xmm6,%xmm4
subsd  %xmm11,%xmm7
movapd 0x1b0(%rsp),%xmm5
movapd %xmm5,%xmm0
mulsd  %xmm7,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm3
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm0,%xmm4
mulsd  %xmm5,%xmm2
subsd  %xmm4,%xmm2
movapd 0x60(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm3
unpcklpd %xmm10,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm4
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm4,%xmm1
mulsd  %xmm2,%xmm4
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm4
movapd 0xe0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x120(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
mulsd  0x130(%rsp),%xmm4
addsd  %xmm3,%xmm4
jmp    67e4 <tri_tri_overlap_test_3d+0x56d4>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm15
jbe    3ee5 <tri_tri_overlap_test_3d+0x2dd5>
ucomisd %xmm0,%xmm1
jbe    4ad6 <tri_tri_overlap_test_3d+0x39c6>
movapd %xmm7,%xmm9
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x130(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x120(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0xe0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x140(%rsp),%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
movapd 0x150(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x90(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm1
shufpd $0x1,%xmm3,%xmm1
mulpd  %xmm1,%xmm9
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm9,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x180(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  0x190(%rsp),%xmm3
subsd  %xmm1,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm12
addsd  %xmm2,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
xorpd  %xmm0,%xmm0
ucomisd %xmm15,%xmm0
jbe    4067 <tri_tri_overlap_test_3d+0x2f57>
ucomisd %xmm12,%xmm0
jbe    4c1d <tri_tri_overlap_test_3d+0x3b0d>
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xb0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm11,%xmm2
subsd  %xmm13,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x60(%rsp),%xmm4
subsd  %xmm13,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0xa0(%rsp),%xmm2
subsd  %xmm13,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x70(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xd0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0x50(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,%xmm1
shufpd $0x1,%xmm2,%xmm1
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm3,%xmm5
subpd  %xmm4,%xmm5
movapd %xmm5,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm3,%xmm1
mulsd  0x1b0(%rsp),%xmm2
subsd  %xmm1,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x80(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm5,%xmm4
unpckhpd %xmm5,%xmm5
movapd 0x90(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm2,%xmm1
jmp    8e42 <tri_tri_overlap_test_3d+0x7d32>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm13
jbe    419e <tri_tri_overlap_test_3d+0x308e>
ucomisd %xmm0,%xmm15
jbe    4d49 <tri_tri_overlap_test_3d+0x3c39>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm12
ja     1788 <tri_tri_overlap_test_3d+0x678>
ucomisd %xmm9,%xmm1
ja     2dac <tri_tri_overlap_test_3d+0x1c9c>
movapd %xmm3,%xmm9
movapd %xmm4,%xmm10
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x70(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xd0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm7
mulsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm7
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm7,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
movapd 0x80(%rsp),%xmm4
subsd  %xmm14,%xmm4
mulsd  %xmm1,%xmm4
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm10,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm4
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm4,%xmm1
mulsd  %xmm2,%xmm4
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm3
mulsd  %xmm1,%xmm3
unpckhpd %xmm1,%xmm1
movapd 0x170(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm2,%xmm3
movapd %xmm9,%xmm7
mulsd  %xmm4,%xmm7
addsd  %xmm3,%xmm7
xor    %eax,%eax
ucomisd %xmm0,%xmm7
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd %xmm9,%xmm1
jbe    4ff0 <tri_tri_overlap_test_3d+0x3ee0>
movapd 0x80(%rsp),%xmm10
subsd  %xmm11,%xmm10
movapd 0x30(%rsp),%xmm8
movapd 0x90(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd 0xf0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm3
subsd  %xmm9,%xmm3
movapd %xmm0,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm10,%xmm3
mulsd  %xmm4,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm5,%xmm4
mulsd  %xmm10,%xmm0
subsd  %xmm4,%xmm0
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
movapd 0xb0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm2
subpd  0x110(%rsp),%xmm2
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm3
unpcklpd %xmm3,%xmm1
mulsd  %xmm6,%xmm3
unpcklpd %xmm2,%xmm6
mulpd  %xmm1,%xmm6
movapd 0x120(%rsp),%xmm4
movapd %xmm4,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm2,%xmm2
mulsd  %xmm4,%xmm2
subsd  %xmm2,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x160(%rsp),%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x140(%rsp),%xmm4
mulsd  %xmm1,%xmm4
addsd  %xmm2,%xmm4
movapd 0x150(%rsp),%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm4,%xmm1
jmp    8e46 <tri_tri_overlap_test_3d+0x7d36>
ucomisd %xmm15,%xmm12
jbe    515c <tri_tri_overlap_test_3d+0x404c>
movapd %xmm4,%xmm10
movapd 0x60(%rsp),%xmm1
subsd  %xmm9,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x80(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm4,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm6
subsd  %xmm13,%xmm6
movapd 0x30(%rsp),%xmm3
movapd 0x50(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd 0x40(%rsp),%xmm7
subpd  %xmm3,%xmm7
movapd %xmm10,%xmm2
movapd %xmm10,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm4,%xmm1
shufpd $0x1,%xmm6,%xmm1
mulsd  %xmm7,%xmm6
unpcklpd %xmm5,%xmm7
mulpd  %xmm1,%xmm7
movapd %xmm4,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm7,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0xd0(%rsp),%xmm5
subsd  %xmm10,%xmm5
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm6,%xmm5
jmp    52b8 <tri_tri_overlap_test_3d+0x41a8>
ucomisd %xmm15,%xmm0
jbe    52c7 <tri_tri_overlap_test_3d+0x41b7>
xorpd  %xmm10,%xmm10
ucomisd %xmm12,%xmm10
jbe    6404 <tri_tri_overlap_test_3d+0x52f4>
movapd 0x50(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0xa0(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x70(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xd0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x1a0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
movapd 0x1e0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x90(%rsp),%xmm3
jmp    a8ae <tri_tri_overlap_test_3d+0x979e>
ucomisd %xmm12,%xmm13
jbe    53fa <tri_tri_overlap_test_3d+0x42ea>
movapd %xmm2,%xmm10
movapd %xmm4,%xmm11
movapd 0x60(%rsp),%xmm2
subsd  %xmm9,%xmm2
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0x200(%rsp),%xmm12
movapd 0xb0(%rsp),%xmm7
subsd  %xmm12,%xmm7
movapd 0x1b0(%rsp),%xmm5
movapd %xmm5,%xmm0
mulsd  %xmm7,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm3
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm0,%xmm4
mulsd  %xmm5,%xmm2
subsd  %xmm4,%xmm2
movapd 0x80(%rsp),%xmm4
subsd  %xmm9,%xmm4
mulsd  %xmm1,%xmm4
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm4,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm12,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm11,%xmm3
unpcklpd %xmm8,%xmm3
subpd  0x110(%rsp),%xmm3
movapd %xmm10,%xmm4
movapd %xmm10,%xmm1
movapd 0xe0(%rsp),%xmm5
unpckhpd %xmm5,%xmm1
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd %xmm10,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm10,%xmm3
subsd  %xmm3,%xmm5
movapd 0x160(%rsp),%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x140(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
movapd 0x150(%rsp),%xmm1
mulsd  %xmm5,%xmm1
jmp    8e42 <tri_tri_overlap_test_3d+0x7d32>
ucomisd %xmm15,%xmm2
jbe    555e <tri_tri_overlap_test_3d+0x444e>
xorpd  %xmm9,%xmm9
ucomisd %xmm12,%xmm9
jbe    6529 <tri_tri_overlap_test_3d+0x5419>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm3,%xmm2
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd 0x170(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm3,%xmm4
movapd 0xe0(%rsp),%xmm5
unpckhpd %xmm5,%xmm5
mulsd  %xmm5,%xmm3
mulsd  %xmm1,%xmm5
mulsd  %xmm2,%xmm1
subsd  %xmm1,%xmm4
mulsd  %xmm0,%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x140(%rsp),%xmm2
movapd 0x160(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm2,%xmm0
movapd 0x150(%rsp),%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x30(%rsp),%xmm3
movapd 0x50(%rsp),%xmm1
subpd  %xmm3,%xmm1
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm0
unpcklpd %xmm11,%xmm0
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm1,%xmm0
shufpd $0x1,%xmm4,%xmm0
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm1,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
jmp    3ba8 <tri_tri_overlap_test_3d+0x2a98>
ucomisd %xmm9,%xmm1
jbe    56b5 <tri_tri_overlap_test_3d+0x45a5>
movapd %xmm7,%xmm13
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm14,%xmm5
movapd %xmm3,%xmm12
movapd %xmm14,%xmm3
mulsd  %xmm1,%xmm3
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm1
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm1,%xmm4
mulsd  %xmm14,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm3
mulsd  %xmm10,%xmm7
unpckhpd %xmm14,%xmm5
mulsd  %xmm4,%xmm5
addsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm12
addsd  %xmm5,%xmm12
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm12
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x90(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulpd  %xmm1,%xmm13
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
subpd  %xmm13,%xmm5
movapd %xmm5,0x10(%rsp)
movapd 0x180(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  0x190(%rsp),%xmm4
subsd  %xmm1,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
movapd 0x70(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm5,%xmm3
addsd  %xmm2,%xmm3
jmp    8e3e <tri_tri_overlap_test_3d+0x7d2e>
ucomisd %xmm2,%xmm15
jbe    581b <tri_tri_overlap_test_3d+0x470b>
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm12
jbe    666a <tri_tri_overlap_test_3d+0x555a>
movapd %xmm4,%xmm9
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x60(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm2
mulsd  %xmm2,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm2,%xmm1
mulsd  %xmm5,%xmm3
subsd  %xmm1,%xmm3
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm6
subpd  %xmm6,%xmm1
movapd 0x40(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm9,%xmm4
movapd %xmm9,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm2
mulsd  %xmm3,%xmm0
unpcklpd %xmm5,%xmm3
mulpd  %xmm2,%xmm3
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm3,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x80(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xc0(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
mulsd  %xmm0,%xmm3
addsd  %xmm4,%xmm3
xorpd  %xmm0,%xmm0
jmp    9f67 <tri_tri_overlap_test_3d+0x8e57>
movapd %xmm4,%xmm11
movapd 0xa0(%rsp),%xmm4
movapd 0x220(%rsp),%xmm8
subsd  %xmm8,%xmm4
movapd 0x70(%rsp),%xmm5
subsd  %xmm6,%xmm5
movapd 0x200(%rsp),%xmm9
movapd 0xd0(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd 0x1b0(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm1,%xmm5
mulsd  %xmm0,%xmm4
subsd  %xmm5,%xmm4
movapd 0x60(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xb0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm10,%xmm1
movapd 0x210(%rsp),%xmm8
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm11,%xmm3
unpcklpd %xmm8,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm2,%xmm0
mulsd  %xmm1,%xmm2
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movapd 0xe0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
unpckhpd %xmm0,%xmm0
movapd 0x120(%rsp),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm1,%xmm3
mulsd  0x130(%rsp),%xmm2
jmp    a8be <tri_tri_overlap_test_3d+0x97ae>
ucomisd %xmm12,%xmm0
movapd 0xd0(%rsp),%xmm0
jbe    5982 <tri_tri_overlap_test_3d+0x4872>
xorpd  %xmm8,%xmm8
ucomisd %xmm8,%xmm1
jae    67ef <tri_tri_overlap_test_3d+0x56df>
movapd %xmm3,%xmm9
movapd %xmm4,%xmm10
movapd 0xa0(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x70(%rsp),%xmm5
subsd  %xmm6,%xmm5
subsd  %xmm13,%xmm0
movapd 0x1b0(%rsp),%xmm7
movapd %xmm7,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm5,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm0
subsd  %xmm3,%xmm0
mulsd  %xmm1,%xmm5
mulsd  %xmm7,%xmm4
subsd  %xmm5,%xmm4
movapd 0x80(%rsp),%xmm5
subsd  %xmm14,%xmm5
mulsd  %xmm2,%xmm5
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm5,%xmm1
movapd 0xc0(%rsp),%xmm0
subsd  %xmm13,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm8,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm10,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm2,%xmm0
mulsd  %xmm1,%xmm2
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm3
mulsd  %xmm0,%xmm3
unpckhpd %xmm0,%xmm0
movapd 0x170(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm1,%xmm3
mulsd  %xmm2,%xmm9
addsd  %xmm3,%xmm9
xorpd  %xmm0,%xmm0
jmp    5b02 <tri_tri_overlap_test_3d+0x49f2>
ucomisd %xmm1,%xmm2
jbe    5b0e <tri_tri_overlap_test_3d+0x49fe>
xorpd  %xmm11,%xmm11
ucomisd %xmm11,%xmm12
jae    695c <tri_tri_overlap_test_3d+0x584c>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm4,%xmm8
movapd %xmm3,%xmm9
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm1
mulsd  %xmm1,%xmm4
movapd 0x140(%rsp),%xmm7
movapd %xmm7,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm1
subsd  %xmm3,%xmm1
mulsd  %xmm7,%xmm0
mulsd  %xmm4,%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm10,%xmm1
movapd %xmm14,%xmm7
unpckhpd %xmm14,%xmm7
mulsd  %xmm5,%xmm7
addsd  %xmm1,%xmm7
mulsd  %xmm2,%xmm9
addsd  %xmm7,%xmm9
ucomisd %xmm11,%xmm9
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0x30(%rsp),%xmm3
movapd 0x70(%rsp),%xmm1
subpd  %xmm3,%xmm1
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm0
unpcklpd %xmm13,%xmm0
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm1,%xmm0
shufpd $0x1,%xmm4,%xmm0
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm1,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm0,%xmm5
unpckhpd %xmm0,%xmm0
movapd 0x90(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm5,%xmm2
jmp    6d7f <tri_tri_overlap_test_3d+0x5c6f>
ucomisd %xmm15,%xmm2
jbe    5c73 <tri_tri_overlap_test_3d+0x4b63>
xorpd  %xmm9,%xmm9
ucomisd %xmm1,%xmm9
jbe    6ac3 <tri_tri_overlap_test_3d+0x59b3>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm1,%xmm4
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x120(%rsp),%xmm2
movapd %xmm2,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0xe0(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm0
mulsd  %xmm4,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x140(%rsp),%xmm7
movapd 0x160(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
movapd 0x150(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm0,%xmm3
ucomisd %xmm9,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x90(%rsp),%xmm0
movapd 0x30(%rsp),%xmm3
subpd  %xmm3,%xmm0
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x1d0(%rsp),%xmm4
subpd  %xmm1,%xmm4
movapd %xmm0,%xmm1
shufpd $0x1,%xmm5,%xmm1
mulsd  %xmm6,%xmm5
unpcklpd %xmm4,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm0,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm4,%xmm5
movsd  %xmm5,0x20(%rsp)
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x50(%rsp),%xmm0
subsd  %xmm3,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm4,%xmm0
mulsd  %xmm5,%xmm12
addsd  %xmm0,%xmm12
jmp    7a5b <tri_tri_overlap_test_3d+0x694b>
xorpd  %xmm0,%xmm0
cmpltpd %xmm12,%xmm0
pextrw $0x4,%xmm0,%esi
xorpd  %xmm8,%xmm8
test   $0x1,%sil
je     5de3 <tri_tri_overlap_test_3d+0x4cd3>
ucomisd %xmm8,%xmm12
jbe    6c22 <tri_tri_overlap_test_3d+0x5b12>
movapd 0xa0(%rsp),%xmm12
subsd  %xmm10,%xmm12
movapd 0x30(%rsp),%xmm11
movapd 0x70(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd %xmm4,%xmm9
movapd 0xd0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm10,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm12,%xmm1
subsd  %xmm5,%xmm1
movapd 0x60(%rsp),%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x50(%rsp),%xmm0
subsd  %xmm11,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm2,%xmm0
movapd 0xb0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
ucomisd %xmm8,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm2
subpd  0x110(%rsp),%xmm2
movapd 0x160(%rsp),%xmm1
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm1,%xmm0
mulsd  %xmm6,%xmm1
unpcklpd %xmm2,%xmm6
mulpd  %xmm0,%xmm6
movapd 0x140(%rsp),%xmm3
movapd %xmm3,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm2,%xmm2
mulsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xe0(%rsp),%xmm2
mulsd  %xmm0,%xmm2
unpckhpd %xmm0,%xmm0
movapd 0x120(%rsp),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
mulsd  0x130(%rsp),%xmm1
jmp    6953 <tri_tri_overlap_test_3d+0x5843>
ucomisd %xmm15,%xmm0
jbe    5f56 <tri_tri_overlap_test_3d+0x4e46>
xorpd  %xmm10,%xmm10
ucomisd %xmm1,%xmm10
jbe    6d90 <tri_tri_overlap_test_3d+0x5c80>
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0xa0(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x70(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xd0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,%xmm0
shufpd $0x1,%xmm2,%xmm0
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
movapd 0x1c0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x1b0(%rsp),%xmm2
subsd  %xmm0,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm3,%xmm1
unpckhpd %xmm3,%xmm3
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
mulsd  %xmm2,%xmm12
addsd  %xmm0,%xmm12
jmp    7a5b <tri_tri_overlap_test_3d+0x694b>
ucomisd %xmm12,%xmm0
jbe    6083 <tri_tri_overlap_test_3d+0x4f73>
xorpd  %xmm12,%xmm12
ucomisd %xmm12,%xmm1
jae    6eaf <tri_tri_overlap_test_3d+0x5d9f>
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm11,%xmm3
subsd  %xmm13,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0xa0(%rsp),%xmm5
subsd  %xmm13,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x80(%rsp),%xmm3
subsd  %xmm13,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm12,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm0
shufpd $0x1,%xmm1,%xmm0
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
movapd 0x1c0(%rsp),%xmm3
mulpd  %xmm2,%xmm3
subpd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x1b0(%rsp),%xmm1
jmp    7a13 <tri_tri_overlap_test_3d+0x6903>
ucomisd %xmm13,%xmm0
jbe    9f72 <tri_tri_overlap_test_3d+0x8e62>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm15
jbe    6fee <tri_tri_overlap_test_3d+0x5ede>
ucomisd %xmm0,%xmm1
jbe    86da <tri_tri_overlap_test_3d+0x75ca>
movapd %xmm3,%xmm8
movapd 0x80(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm9
movapd 0x90(%rsp),%xmm5
subsd  %xmm9,%xmm5
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm10
movapd 0xf0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x40(%rsp),%xmm0
subsd  %xmm9,%xmm0
movapd 0x100(%rsp),%xmm3
subsd  %xmm10,%xmm3
movapd %xmm0,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm3
mulsd  %xmm4,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm5,%xmm4
mulsd  %xmm12,%xmm0
subsd  %xmm4,%xmm0
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm2
movapd %xmm4,%xmm1
mulsd  %xmm6,%xmm1
unpcklpd %xmm3,%xmm6
mulpd  %xmm2,%xmm6
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm2,%xmm4
unpckhpd %xmm2,%xmm2
movapd 0x170(%rsp),%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm8
addsd  %xmm4,%xmm8
jmp    5150 <tri_tri_overlap_test_3d+0x4040>
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm1
jbe    7166 <tri_tri_overlap_test_3d+0x6056>
movapd %xmm7,%xmm12
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm3,%xmm11
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
movapd 0x130(%rsp),%xmm0
mulsd  %xmm0,%xmm2
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm3
mulsd  %xmm1,%xmm0
subsd  %xmm3,%xmm0
mulsd  %xmm9,%xmm1
subsd  %xmm1,%xmm4
mulsd  0x170(%rsp),%xmm0
unpckhpd %xmm7,%xmm7
mulsd  %xmm5,%xmm7
addsd  %xmm0,%xmm7
mulsd  %xmm4,%xmm11
addsd  %xmm7,%xmm11
ucomisd %xmm10,%xmm11
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x90(%rsp),%xmm0
subpd  %xmm6,%xmm0
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
movapd 0x180(%rsp),%xmm1
mulsd  %xmm0,%xmm1
shufpd $0x1,%xmm3,%xmm0
mulpd  %xmm0,%xmm12
subpd  %xmm12,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm3
subsd  %xmm1,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm2
unpckhpd %xmm4,%xmm4
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
jmp    77e2 <tri_tri_overlap_test_3d+0x66d2>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm1
jbe    72c5 <tri_tri_overlap_test_3d+0x61b5>
movapd %xmm4,%xmm10
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm1
mulsd  %xmm2,%xmm3
subsd  %xmm1,%xmm3
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm9,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm6
subsd  %xmm11,%xmm6
movapd 0x30(%rsp),%xmm3
movapd 0x90(%rsp),%xmm1
subpd  %xmm3,%xmm1
movapd 0x40(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd %xmm10,%xmm2
movapd %xmm10,%xmm0
unpcklpd %xmm11,%xmm0
movapd 0x110(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm1,%xmm0
shufpd $0x1,%xmm6,%xmm0
mulsd  %xmm4,%xmm6
unpcklpd %xmm5,%xmm4
mulpd  %xmm0,%xmm4
movapd %xmm1,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm4,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
jmp    6a92 <tri_tri_overlap_test_3d+0x5982>
xorpd  %xmm0,%xmm0
ucomisd %xmm15,%xmm0
jbe    7424 <tri_tri_overlap_test_3d+0x6314>
ucomisd %xmm1,%xmm0
jbe    8824 <tri_tri_overlap_test_3d+0x7714>
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xc0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x80(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x70(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xd0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
jmp    53b2 <tri_tri_overlap_test_3d+0x42a2>
xorpd  %xmm11,%xmm11
ucomisd %xmm12,%xmm11
jbe    750d <tri_tri_overlap_test_3d+0x63fd>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm4,%xmm8
movapd %xmm3,%xmm1
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm10,%xmm4
mulsd  %xmm3,%xmm4
movapd %xmm14,%xmm7
movapd %xmm14,%xmm5
unpckhpd %xmm14,%xmm5
mulsd  %xmm5,%xmm3
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
subsd  %xmm2,%xmm4
mulsd  %xmm0,%xmm1
subsd  %xmm3,%xmm1
mulsd  %xmm10,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x120(%rsp),%xmm1
mulsd  %xmm14,%xmm4
addsd  %xmm1,%xmm4
mulsd  0x130(%rsp),%xmm5
addsd  %xmm4,%xmm5
ucomisd %xmm11,%xmm5
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0x30(%rsp),%xmm2
movapd 0x50(%rsp),%xmm3
subpd  %xmm2,%xmm3
subpd  %xmm2,%xmm6
movapd %xmm8,%xmm1
movapd %xmm8,%xmm0
unpcklpd %xmm13,%xmm0
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm3,%xmm0
shufpd $0x1,%xmm4,%xmm0
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm3,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0xa0(%rsp),%xmm3
subsd  %xmm13,%xmm3
movapd 0xd0(%rsp),%xmm5
subsd  %xmm8,%xmm5
mulsd  %xmm0,%xmm3
unpckhpd %xmm0,%xmm0
movapd 0x70(%rsp),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm4,%xmm5
movapd %xmm5,%xmm0
addsd  %xmm1,%xmm0
jmp    77e2 <tri_tri_overlap_test_3d+0x66d2>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm12
jbe    767f <tri_tri_overlap_test_3d+0x656f>
movapd %xmm4,%xmm10
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x60(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm3
subsd  %xmm2,%xmm3
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
mulsd  %xmm4,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
ucomisd %xmm9,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm6
subsd  %xmm11,%xmm6
movapd 0x50(%rsp),%xmm0
movapd 0x30(%rsp),%xmm3
subpd  %xmm3,%xmm0
movapd 0x40(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd %xmm10,%xmm2
movapd %xmm10,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm0,%xmm1
shufpd $0x1,%xmm6,%xmm1
mulsd  %xmm4,%xmm6
unpcklpd %xmm5,%xmm4
mulpd  %xmm1,%xmm4
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm4,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xd0(%rsp),%xmm0
subsd  %xmm10,%xmm0
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm6,%xmm0
jmp    77de <tri_tri_overlap_test_3d+0x66ce>
movapd %xmm2,%xmm9
movapd 0x60(%rsp),%xmm12
subsd  %xmm10,%xmm12
movapd 0x30(%rsp),%xmm8
movapd 0x50(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd %xmm4,%xmm11
movapd 0xb0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm10,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm3
mulsd  %xmm12,%xmm0
subsd  %xmm3,%xmm0
movapd 0x80(%rsp),%xmm3
subsd  %xmm10,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd %xmm9,%xmm2
movapd %xmm9,%xmm1
movapd 0xe0(%rsp),%xmm4
unpckhpd %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
mulsd  %xmm6,%xmm4
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm9,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm9,%xmm3
jmp    8e09 <tri_tri_overlap_test_3d+0x7cf9>
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm12
jbe    77f1 <tri_tri_overlap_test_3d+0x66e1>
movapd %xmm7,%xmm11
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm0
subsd  0x100(%rsp),%xmm0
movapd 0x170(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm0,%xmm4
movapd 0xe0(%rsp),%xmm7
movapd %xmm7,%xmm5
unpckhpd %xmm7,%xmm5
mulsd  %xmm5,%xmm0
mulsd  %xmm2,%xmm5
mulsd  %xmm3,%xmm2
subsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm9,%xmm1
subsd  %xmm1,%xmm5
mulsd  0x120(%rsp),%xmm3
mulsd  %xmm7,%xmm4
addsd  %xmm3,%xmm4
mulsd  0x130(%rsp),%xmm5
addsd  %xmm4,%xmm5
ucomisd %xmm10,%xmm5
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,%xmm0
shufpd $0x1,%xmm2,%xmm0
mulpd  %xmm0,%xmm11
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
subpd  %xmm11,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x180(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x190(%rsp),%xmm2
subsd  %xmm0,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x70(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm2,%xmm0
addsd  %xmm3,%xmm0
jmp    77e2 <tri_tri_overlap_test_3d+0x66d2>
xorpd  %xmm10,%xmm10
ucomisd %xmm1,%xmm10
jbe    791f <tri_tri_overlap_test_3d+0x680f>
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm11,%xmm3
subsd  %xmm13,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x80(%rsp),%xmm5
subsd  %xmm13,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x60(%rsp),%xmm3
subsd  %xmm13,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,%xmm0
shufpd $0x1,%xmm3,%xmm0
movapd 0x1e0(%rsp),%xmm2
mulpd  %xmm0,%xmm2
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
subpd  %xmm2,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x1b0(%rsp),%xmm3
jmp    6fa5 <tri_tri_overlap_test_3d+0x5e95>
xorpd  %xmm0,%xmm0
ucomisd %xmm15,%xmm0
jbe    7a6b <tri_tri_overlap_test_3d+0x695b>
ucomisd %xmm12,%xmm0
jbe    4eb2 <tri_tri_overlap_test_3d+0x3da2>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xb0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm7
mulsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm7
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm7,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
movapd 0xd0(%rsp),%xmm4
subsd  %xmm8,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm4
subpd  0x40(%rsp),%xmm4
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm6
movapd %xmm6,%xmm1
unpckhpd %xmm6,%xmm1
movapd 0x170(%rsp),%xmm5
movapd %xmm5,%xmm2
unpckhpd %xmm6,%xmm2
mulsd  %xmm4,%xmm1
unpcklpd %xmm3,%xmm4
mulpd  %xmm2,%xmm4
movapd %xmm5,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm4,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
mulsd  %xmm2,%xmm6
unpckhpd %xmm2,%xmm2
movapd 0x120(%rsp),%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm6,%xmm3
mulsd  0x130(%rsp),%xmm1
jmp    8e42 <tri_tri_overlap_test_3d+0x7d32>
xorpd  %xmm8,%xmm8
ucomisd %xmm1,%xmm8
jbe    6198 <tri_tri_overlap_test_3d+0x5088>
movapd %xmm4,%xmm9
movapd 0x80(%rsp),%xmm7
subsd  %xmm14,%xmm7
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
movapd 0x200(%rsp),%xmm10
movapd 0xc0(%rsp),%xmm5
subsd  %xmm10,%xmm5
movapd 0x1b0(%rsp),%xmm4
movapd %xmm4,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm0,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm7,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm1,%xmm0
mulsd  %xmm4,%xmm7
subsd  %xmm0,%xmm7
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm1,%xmm0
movapd 0xb0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm8,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm0
movapd 0xe0(%rsp),%xmm2
unpcklpd %xmm2,%xmm0
mulsd  %xmm1,%xmm2
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x120(%rsp),%xmm4
movapd %xmm4,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
jmp    691e <tri_tri_overlap_test_3d+0x580e>
movapd %xmm3,%xmm8
movapd %xmm4,%xmm9
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x70(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xd0(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0x1b0(%rsp),%xmm7
movapd %xmm7,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm3
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm7,%xmm2
subsd  %xmm4,%xmm2
movapd 0x80(%rsp),%xmm4
subsd  %xmm14,%xmm4
mulsd  %xmm1,%xmm4
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm13,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm4
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm4,%xmm1
mulsd  %xmm2,%xmm4
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm3
mulsd  %xmm1,%xmm3
unpckhpd %xmm1,%xmm1
movapd 0x170(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm8
addsd  %xmm3,%xmm8
xor    %eax,%eax
ucomisd %xmm0,%xmm8
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm9
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x140(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm10,%xmm5
movapd %xmm14,%xmm7
unpckhpd %xmm14,%xmm7
mulsd  %xmm4,%xmm7
addsd  %xmm5,%xmm7
mulsd  %xmm1,%xmm9
addsd  %xmm7,%xmm9
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm9
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0x30(%rsp),%xmm3
movapd 0x70(%rsp),%xmm7
subpd  %xmm3,%xmm7
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm7,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm7,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm7,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x80(%rsp),%xmm6
subsd  %xmm13,%xmm6
movapd 0xc0(%rsp),%xmm5
subsd  %xmm8,%xmm5
mulsd  %xmm1,%xmm6
unpckhpd %xmm1,%xmm1
movapd 0x90(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm6,%xmm2
mulsd  %xmm4,%xmm5
addsd  %xmm2,%xmm5
xor    %eax,%eax
ucomisd %xmm0,%xmm5
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
xorpd  %xmm0,%xmm0
ucomisd %xmm12,%xmm0
jbe    7be3 <tri_tri_overlap_test_3d+0x6ad3>
ucomisd %xmm0,%xmm1
jae    8903 <tri_tri_overlap_test_3d+0x77f3>
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xd0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x80(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x90(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
movapd 0x1a0(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
movapd 0x1e0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
subpd  %xmm5,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm1
jmp    955b <tri_tri_overlap_test_3d+0x844b>
movapd 0xa0(%rsp),%xmm11
subsd  %xmm8,%xmm11
movapd 0x30(%rsp),%xmm9
movapd 0x70(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm4,%xmm10
movapd 0xd0(%rsp),%xmm4
subsd  %xmm10,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm8,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm9,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm10,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm11,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm3
mulsd  %xmm11,%xmm0
subsd  %xmm3,%xmm0
movapd 0x60(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
movapd 0xb0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm2,%xmm1
mulsd  %xmm6,%xmm2
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movapd 0xe0(%rsp),%xmm3
mulsd  %xmm1,%xmm3
unpckhpd %xmm1,%xmm1
movapd 0x120(%rsp),%xmm4
mulsd  %xmm1,%xmm4
addsd  %xmm3,%xmm4
mulsd  0x130(%rsp),%xmm2
addsd  %xmm4,%xmm2
jmp    a8c6 <tri_tri_overlap_test_3d+0x97b6>
xorpd  %xmm2,%xmm2
ucomisd %xmm12,%xmm2
jbe    7ceb <tri_tri_overlap_test_3d+0x6bdb>
ucomisd %xmm2,%xmm1
jae    8a37 <tri_tri_overlap_test_3d+0x7927>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm3
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm5,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm7,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x30(%rsp),%xmm3
movapd 0x70(%rsp),%xmm7
subpd  %xmm3,%xmm7
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm7,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm7,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm7,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
jmp    96f3 <tri_tri_overlap_test_3d+0x85e3>
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xd0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm11,%xmm2
subsd  %xmm13,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0xa0(%rsp),%xmm4
subsd  %xmm13,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x80(%rsp),%xmm2
subsd  %xmm13,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x90(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0x70(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,%xmm1
shufpd $0x1,%xmm2,%xmm1
movapd 0x1e0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm3,%xmm4
subpd  %xmm5,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm3,%xmm1
mulsd  0x1b0(%rsp),%xmm2
subsd  %xmm1,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x50(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm2,%xmm12
addsd  %xmm3,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
xorpd  %xmm2,%xmm2
ucomisd %xmm15,%xmm2
jbe    7e53 <tri_tri_overlap_test_3d+0x6d43>
ucomisd %xmm12,%xmm2
jbe    8b89 <tri_tri_overlap_test_3d+0x7a79>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm4
movapd %xmm4,%xmm5
mulsd  %xmm2,%xmm5
movapd 0xe0(%rsp),%xmm7
unpckhpd %xmm7,%xmm7
mulsd  %xmm7,%xmm2
mulsd  %xmm1,%xmm7
mulsd  %xmm3,%xmm1
subsd  %xmm1,%xmm5
mulsd  %xmm0,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm7
mulsd  0x140(%rsp),%xmm3
movapd 0x160(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm3,%xmm0
movapd 0x150(%rsp),%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x50(%rsp),%xmm2
movapd 0x30(%rsp),%xmm7
subpd  %xmm7,%xmm2
subpd  %xmm7,%xmm6
movapd %xmm8,%xmm5
movapd %xmm8,%xmm3
unpcklpd %xmm11,%xmm3
movapd 0x1d0(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm3
mulsd  %xmm6,%xmm1
unpcklpd %xmm4,%xmm6
mulpd  %xmm3,%xmm6
movapd %xmm2,%xmm3
mulpd  %xmm4,%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,0x10(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm4,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x80(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xc0(%rsp),%xmm4
subsd  %xmm8,%xmm4
mulsd  %xmm3,%xmm2
unpckhpd %xmm3,%xmm3
movapd 0x90(%rsp),%xmm5
subsd  %xmm7,%xmm5
jmp    67d4 <tri_tri_overlap_test_3d+0x56c4>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm12
jbe    7fa9 <tri_tri_overlap_test_3d+0x6e99>
ucomisd %xmm2,%xmm1
jbe    8ceb <tri_tri_overlap_test_3d+0x7bdb>
movapd %xmm3,%xmm9
movapd 0xa0(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm8
movapd 0x70(%rsp),%xmm7
subsd  %xmm8,%xmm7
subsd  %xmm4,%xmm0
movapd 0xf0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd %xmm4,%xmm10
movapd 0x40(%rsp),%xmm4
subsd  %xmm8,%xmm4
movapd 0x100(%rsp),%xmm5
subsd  %xmm10,%xmm5
movapd %xmm4,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm5
mulsd  %xmm3,%xmm0
subsd  %xmm5,%xmm0
mulsd  %xmm7,%xmm3
mulsd  %xmm12,%xmm4
subsd  %xmm3,%xmm4
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm2,%xmm1
mulsd  %xmm6,%xmm2
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0xe0(%rsp),%xmm4
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x170(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm3,%xmm4
mulsd  %xmm2,%xmm9
addsd  %xmm4,%xmm9
xor    %eax,%eax
ucomisd %xmm0,%xmm9
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
jbe    8108 <tri_tri_overlap_test_3d+0x6ff8>
ucomisd %xmm2,%xmm12
jbe    8e51 <tri_tri_overlap_test_3d+0x7d41>
movapd %xmm4,%xmm10
movapd 0xa0(%rsp),%xmm1
subsd  %xmm9,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x60(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm6
subsd  %xmm13,%xmm6
movapd 0x30(%rsp),%xmm4
movapd 0x70(%rsp),%xmm2
subpd  %xmm4,%xmm2
movapd 0x40(%rsp),%xmm7
subpd  %xmm4,%xmm7
movapd %xmm10,%xmm3
movapd %xmm10,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm1
shufpd $0x1,%xmm6,%xmm1
mulsd  %xmm7,%xmm6
unpcklpd %xmm5,%xmm7
mulpd  %xmm1,%xmm7
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm7,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0xc0(%rsp),%xmm2
subsd  %xmm10,%xmm2
jmp    1f58 <tri_tri_overlap_test_3d+0xe48>
xorpd  %xmm2,%xmm2
ucomisd %xmm1,%xmm2
jbe    827d <tri_tri_overlap_test_3d+0x716d>
ucomisd %xmm2,%xmm12
jae    8f9e <tri_tri_overlap_test_3d+0x7e8e>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm5
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm3
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm9,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x170(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm7,%xmm0
mulsd  %xmm1,%xmm5
addsd  %xmm0,%xmm5
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm5
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
subpd  %xmm4,%xmm6
movapd %xmm8,%xmm3
movapd %xmm8,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm7,%xmm2
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd 0x90(%rsp),%xmm3
jmp    6c0d <tri_tri_overlap_test_3d+0x5afd>
ucomisd %xmm8,%xmm12
movapd 0x200(%rsp),%xmm13
movapd 0xd0(%rsp),%xmm7
jbe    83e0 <tri_tri_overlap_test_3d+0x72d0>
movapd %xmm3,%xmm12
movapd %xmm2,%xmm11
movapd %xmm4,%xmm15
movapd 0x80(%rsp),%xmm3
subsd  %xmm9,%xmm3
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xc0(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0x1b0(%rsp),%xmm14
movapd %xmm14,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm4,%xmm2
movapd 0x1c0(%rsp),%xmm0
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm0
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm5
subsd  %xmm0,%xmm5
mulsd  %xmm1,%xmm4
mulsd  %xmm14,%xmm3
subsd  %xmm4,%xmm3
movapd 0xa0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
subsd  %xmm13,%xmm7
mulsd  %xmm3,%xmm7
addsd  %xmm2,%xmm7
ucomisd %xmm8,%xmm7
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm15,%xmm3
unpcklpd %xmm10,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm1
movapd %xmm4,%xmm0
mulsd  %xmm2,%xmm0
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
mulsd  %xmm1,%xmm11
addsd  %xmm11,%xmm4
mulsd  %xmm0,%xmm12
addsd  %xmm4,%xmm12
jmp    7a5b <tri_tri_overlap_test_3d+0x694b>
xorpd  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    8554 <tri_tri_overlap_test_3d+0x7444>
ucomisd %xmm0,%xmm12
jae    90f8 <tri_tri_overlap_test_3d+0x7fe8>
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xd0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x50(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x70(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x1a0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm3,%xmm1
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm3
jmp    1bfc <tri_tri_overlap_test_3d+0xaec>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm12
jbe    86bb <tri_tri_overlap_test_3d+0x75ab>
ucomisd %xmm0,%xmm1
jbe    9232 <tri_tri_overlap_test_3d+0x8122>
movapd %xmm7,%xmm9
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x140(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm5
movapd %xmm14,%xmm7
mulsd  %xmm4,%xmm7
addsd  %xmm5,%xmm7
mulsd  0x130(%rsp),%xmm1
addsd  %xmm7,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0x70(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,%xmm1
shufpd $0x1,%xmm2,%xmm1
mulpd  %xmm1,%xmm9
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm3,%xmm4
subpd  %xmm9,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x180(%rsp),%xmm1
mulsd  %xmm3,%xmm1
mulsd  0x190(%rsp),%xmm2
jmp    57ce <tri_tri_overlap_test_3d+0x46be>
movapd %xmm3,%xmm10
movapd 0xa0(%rsp),%xmm13
subsd  %xmm11,%xmm13
movapd 0x30(%rsp),%xmm12
movapd 0x70(%rsp),%xmm0
subsd  %xmm12,%xmm0
movapd %xmm4,%xmm9
movapd 0xd0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm12,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm13,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm13,%xmm1
subsd  %xmm5,%xmm1
movapd 0x80(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm12,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
ucomisd %xmm8,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm2
subpd  0x110(%rsp),%xmm2
movapd 0x160(%rsp),%xmm1
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm1,%xmm0
mulsd  %xmm6,%xmm1
unpcklpd %xmm2,%xmm6
mulpd  %xmm0,%xmm6
movapd 0x140(%rsp),%xmm3
movapd %xmm3,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm2,%xmm2
mulsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm3
mulsd  %xmm0,%xmm3
unpckhpd %xmm0,%xmm0
movapd 0x170(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm2,%xmm3
mulsd  %xmm1,%xmm10
addsd  %xmm3,%xmm10
xorpd  %xmm0,%xmm0
xor    %eax,%eax
ucomisd %xmm0,%xmm10
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd %xmm9,%xmm12
jbe    9350 <tri_tri_overlap_test_3d+0x8240>
movapd %xmm7,%xmm10
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm9
movapd %xmm3,%xmm5
movapd %xmm9,%xmm3
mulsd  %xmm2,%xmm3
movapd 0xe0(%rsp),%xmm7
movapd %xmm7,%xmm4
unpckhpd %xmm7,%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm1,%xmm4
mulsd  %xmm5,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm4
mulsd  0x120(%rsp),%xmm5
mulsd  %xmm7,%xmm3
addsd  %xmm5,%xmm3
mulsd  0x130(%rsp),%xmm4
addsd  %xmm3,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x50(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x180(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
mulpd  %xmm2,%xmm10
subpd  %xmm10,%xmm5
jmp    89ef <tri_tri_overlap_test_3d+0x78df>
ucomisd %xmm1,%xmm10
jbe    9464 <tri_tri_overlap_test_3d+0x8354>
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xc0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x80(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x50(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x1a0(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm1
jmp    89fe <tri_tri_overlap_test_3d+0x78ee>
ucomisd %xmm1,%xmm9
jbe    95a8 <tri_tri_overlap_test_3d+0x8498>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm10
movapd 0xe0(%rsp),%xmm3
movapd %xmm3,%xmm5
mulsd  %xmm1,%xmm5
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm1
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm1,%xmm4
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x170(%rsp),%xmm7
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm7,%xmm3
mulsd  %xmm5,%xmm10
addsd  %xmm3,%xmm10
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm10
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd 0x30(%rsp),%xmm4
movapd 0x90(%rsp),%xmm2
subpd  %xmm4,%xmm2
subpd  %xmm4,%xmm6
movapd %xmm8,%xmm3
movapd %xmm8,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
jmp    8f69 <tri_tri_overlap_test_3d+0x7e59>
ucomisd %xmm10,%xmm1
jbe    971c <tri_tri_overlap_test_3d+0x860c>
movapd %xmm4,%xmm9
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm6
subpd  %xmm6,%xmm2
movapd 0x40(%rsp),%xmm4
subpd  %xmm6,%xmm4
movapd %xmm9,%xmm5
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
movapd 0x110(%rsp),%xmm7
subpd  %xmm3,%xmm7
movapd %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm3
mulsd  %xmm4,%xmm1
unpcklpd %xmm7,%xmm4
mulpd  %xmm3,%xmm4
movapd %xmm2,%xmm3
mulpd  %xmm7,%xmm3
subpd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
unpckhpd %xmm7,%xmm7
mulsd  %xmm2,%xmm7
subsd  %xmm7,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xd0(%rsp),%xmm4
subsd  %xmm9,%xmm4
mulsd  %xmm3,%xmm2
unpckhpd %xmm3,%xmm3
movapd 0x70(%rsp),%xmm5
subsd  %xmm6,%xmm5
mulsd  %xmm3,%xmm5
addsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm4
addsd  %xmm5,%xmm4
xor    %eax,%eax
ucomisd %xmm0,%xmm4
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
movapd %xmm4,%xmm15
movapd 0x80(%rsp),%xmm10
subsd  %xmm11,%xmm10
movapd 0x30(%rsp),%xmm9
movapd 0x90(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd 0xc0(%rsp),%xmm0
subsd  %xmm4,%xmm0
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm9,%xmm1
movapd 0x100(%rsp),%xmm4
subsd  %xmm15,%xmm4
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm7,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm10,%xmm4
mulsd  %xmm5,%xmm0
subsd  %xmm4,%xmm0
mulsd  %xmm7,%xmm5
mulsd  %xmm10,%xmm1
subsd  %xmm5,%xmm1
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x50(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movapd 0xb0(%rsp),%xmm0
subsd  %xmm15,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm8,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm1
subpd  0x110(%rsp),%xmm1
movapd 0x130(%rsp),%xmm0
movapd 0xe0(%rsp),%xmm2
unpcklpd %xmm2,%xmm0
mulsd  %xmm6,%xmm2
unpcklpd %xmm1,%xmm6
mulpd  %xmm0,%xmm6
movapd 0x120(%rsp),%xmm3
movapd %xmm3,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm1,%xmm1
mulsd  %xmm3,%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x160(%rsp),%xmm1
mulsd  %xmm0,%xmm1
unpckhpd %xmm0,%xmm0
movapd 0x140(%rsp),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm1,%xmm3
movapd 0x150(%rsp),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm3,%xmm1
jmp    6d87 <tri_tri_overlap_test_3d+0x5c77>
movapd %xmm4,%xmm10
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x60(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm3
subsd  %xmm2,%xmm3
movapd 0x80(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm1
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
ucomisd %xmm11,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm6
subsd  %xmm13,%xmm6
movapd 0x30(%rsp),%xmm3
movapd 0x50(%rsp),%xmm1
subpd  %xmm3,%xmm1
movapd 0x40(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd %xmm10,%xmm2
movapd %xmm10,%xmm0
unpcklpd %xmm13,%xmm0
movapd 0x110(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm1,%xmm0
shufpd $0x1,%xmm6,%xmm0
mulsd  %xmm4,%xmm6
unpcklpd %xmm5,%xmm4
mulpd  %xmm0,%xmm4
movapd %xmm1,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm4,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0xd0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm0,%xmm4
unpckhpd %xmm0,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm6,%xmm1
jmp    6d83 <tri_tri_overlap_test_3d+0x5c73>
ucomisd %xmm12,%xmm9
jbe    987e <tri_tri_overlap_test_3d+0x876e>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm9
movapd %xmm3,%xmm7
movapd %xmm9,%xmm3
mulsd  %xmm2,%xmm3
movapd 0xe0(%rsp),%xmm5
movapd %xmm5,%xmm4
unpckhpd %xmm5,%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm1,%xmm4
mulsd  %xmm7,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm4
mulsd  0x120(%rsp),%xmm7
mulsd  %xmm5,%xmm3
addsd  %xmm7,%xmm3
mulsd  0x130(%rsp),%xmm4
addsd  %xmm3,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
subpd  %xmm4,%xmm6
movapd %xmm8,%xmm3
movapd %xmm8,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm7,%xmm2
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd 0x70(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm5,%xmm3
mulsd  %xmm7,%xmm1
jmp    8e42 <tri_tri_overlap_test_3d+0x7d32>
movapd %xmm2,%xmm11
movapd %xmm4,%xmm12
movapd 0x60(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
movapd 0x200(%rsp),%xmm13
movapd 0xb0(%rsp),%xmm7
subsd  %xmm13,%xmm7
movapd 0x1b0(%rsp),%xmm5
movapd %xmm5,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm0,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm1,%xmm0
mulsd  %xmm5,%xmm4
subsd  %xmm0,%xmm4
movapd 0x80(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm13,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm8,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm12,%xmm3
unpcklpd %xmm10,%xmm3
subpd  0x110(%rsp),%xmm3
movapd %xmm11,%xmm2
movapd %xmm11,%xmm0
movapd 0xe0(%rsp),%xmm4
unpckhpd %xmm4,%xmm0
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd %xmm11,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm11,%xmm3
subsd  %xmm3,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x160(%rsp),%xmm1
mulsd  %xmm0,%xmm1
unpckhpd %xmm0,%xmm0
movapd 0x140(%rsp),%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movapd 0x150(%rsp),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
jmp    8e46 <tri_tri_overlap_test_3d+0x7d36>
ucomisd %xmm12,%xmm10
jbe    99eb <tri_tri_overlap_test_3d+0x88db>
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xb0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x80(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x90(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x1a0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm4,%xmm1
movapd 0x1e0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm4
jmp    91e5 <tri_tri_overlap_test_3d+0x80d5>
movapd %xmm7,%xmm15
movapd %xmm11,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm3,%xmm13
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm14,%xmm0
movapd %xmm14,%xmm4
mulsd  %xmm2,%xmm4
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm2
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm14,%xmm3
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm9,%xmm1
subsd  %xmm1,%xmm4
mulsd  %xmm10,%xmm7
unpckhpd %xmm14,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  %xmm4,%xmm13
addsd  %xmm0,%xmm13
ucomisd %xmm12,%xmm13
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,%xmm0
shufpd $0x1,%xmm3,%xmm0
mulpd  %xmm0,%xmm15
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
subpd  %xmm15,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x180(%rsp),%xmm0
mulsd  %xmm1,%xmm0
mulsd  0x190(%rsp),%xmm3
subsd  %xmm0,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm0
jmp    77de <tri_tri_overlap_test_3d+0x66ce>
ucomisd %xmm15,%xmm0
jbe    9ade <tri_tri_overlap_test_3d+0x89ce>
xorpd  %xmm13,%xmm13
ucomisd %xmm1,%xmm13
jbe    a472 <tri_tri_overlap_test_3d+0x9362>
movapd %xmm3,%xmm9
movapd %xmm4,%xmm10
movapd 0x80(%rsp),%xmm7
subsd  %xmm14,%xmm7
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xc0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm4,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm7,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm1,%xmm4
mulsd  %xmm0,%xmm7
subsd  %xmm4,%xmm7
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm2,%xmm1
ucomisd %xmm13,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm10,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm1
movapd %xmm4,%xmm0
mulsd  %xmm2,%xmm0
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x170(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm2,%xmm4
mulsd  %xmm0,%xmm9
addsd  %xmm4,%xmm9
jmp    3a5c <tri_tri_overlap_test_3d+0x294c>
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm0
subpd  %xmm6,%xmm0
movapd 0x1c0(%rsp),%xmm3
mulpd  %xmm0,%xmm3
movapd 0x1a0(%rsp),%xmm2
mulsd  %xmm0,%xmm2
shufpd $0x1,%xmm1,%xmm0
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
movapd %xmm1,%xmm0
mulsd  0x1b0(%rsp),%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm3,%xmm1
unpckhpd %xmm3,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm12
jmp    7a56 <tri_tri_overlap_test_3d+0x6946>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm1,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm2
movapd %xmm2,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm0
mulsd  %xmm4,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x30(%rsp),%xmm2
movapd 0x70(%rsp),%xmm4
subpd  %xmm2,%xmm4
subpd  %xmm2,%xmm6
movapd %xmm8,%xmm1
movapd %xmm8,%xmm0
unpcklpd %xmm11,%xmm0
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm4,%xmm0
shufpd $0x1,%xmm3,%xmm0
mulsd  %xmm6,%xmm3
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm4,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm0,%xmm4
unpckhpd %xmm0,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm12
addsd  %xmm1,%xmm12
jmp    7a5b <tri_tri_overlap_test_3d+0x694b>
ucomisd %xmm1,%xmm0
jbe    9c21 <tri_tri_overlap_test_3d+0x8b11>
xorpd  %xmm10,%xmm10
ucomisd %xmm10,%xmm12
jae    a5a9 <tri_tri_overlap_test_3d+0x9499>
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x60(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x70(%rsp),%xmm1
jmp    3173 <tri_tri_overlap_test_3d+0x2063>
movapd %xmm4,%xmm10
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0xa0(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm3
subsd  %xmm2,%xmm3
movapd 0x60(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm11,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm3
subsd  %xmm13,%xmm3
movapd 0x30(%rsp),%xmm2
movapd 0x70(%rsp),%xmm4
subpd  %xmm2,%xmm4
movapd 0x40(%rsp),%xmm6
subpd  %xmm2,%xmm6
movapd %xmm10,%xmm1
movapd %xmm10,%xmm0
unpcklpd %xmm13,%xmm0
movapd 0x110(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm4,%xmm0
shufpd $0x1,%xmm3,%xmm0
mulsd  %xmm6,%xmm3
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm4,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0xc0(%rsp),%xmm4
subsd  %xmm10,%xmm4
mulsd  %xmm0,%xmm5
unpckhpd %xmm0,%xmm0
movapd 0x90(%rsp),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm5,%xmm1
mulsd  %xmm3,%xmm4
movapd %xmm4,%xmm0
addsd  %xmm1,%xmm0
jmp    77e2 <tri_tri_overlap_test_3d+0x66d2>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm4,%xmm8
movapd %xmm3,%xmm1
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm10
movapd %xmm10,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm10,%xmm0
mulsd  %xmm4,%xmm2
subsd  %xmm0,%xmm2
mulsd  0x170(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x70(%rsp),%xmm0
movapd 0x30(%rsp),%xmm3
subpd  %xmm3,%xmm0
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm0,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xc0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm1,%xmm5
unpckhpd %xmm1,%xmm1
movapd 0x90(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm0
addsd  %xmm2,%xmm0
xorpd  %xmm1,%xmm1
xor    %eax,%eax
ucomisd %xmm1,%xmm0
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x60(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm0
shufpd $0x1,%xmm1,%xmm0
movapd 0x1e0(%rsp),%xmm3
mulpd  %xmm0,%xmm3
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm3,%xmm4
movapd %xmm4,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x1b0(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
jmp    20ab <tri_tri_overlap_test_3d+0xf9b>
movapd %xmm7,%xmm9
movapd %xmm11,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm0
mulsd  %xmm0,%xmm4
movapd 0x140(%rsp),%xmm7
movapd %xmm7,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm0
subsd  %xmm3,%xmm0
mulsd  %xmm7,%xmm1
mulsd  %xmm4,%xmm2
subsd  %xmm1,%xmm2
mulsd  0x120(%rsp),%xmm0
movapd %xmm14,%xmm7
mulsd  %xmm5,%xmm7
addsd  %xmm0,%xmm7
mulsd  0x130(%rsp),%xmm2
addsd  %xmm7,%xmm2
ucomisd %xmm10,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm0
shufpd $0x1,%xmm1,%xmm0
mulpd  %xmm0,%xmm9
movapd 0x1f0(%rsp),%xmm3
mulpd  %xmm2,%xmm3
subpd  %xmm9,%xmm3
movapd %xmm3,0x10(%rsp)
movapd 0x180(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0x190(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x60(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm3,%xmm0
unpckhpd %xmm3,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm3,%xmm2
addsd  %xmm0,%xmm2
mulsd  %xmm1,%xmm12
addsd  %xmm2,%xmm12
xorpd  %xmm0,%xmm0
xor    %eax,%eax
ucomisd %xmm0,%xmm12
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd %xmm12,%xmm0
jbe    9d2d <tri_tri_overlap_test_3d+0x8c1d>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm1
jae    a694 <tri_tri_overlap_test_3d+0x9584>
movapd %xmm3,%xmm10
movapd %xmm4,%xmm12
movapd 0xa0(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x70(%rsp),%xmm5
subsd  %xmm6,%xmm5
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
movapd 0x1c0(%rsp),%xmm0
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm0
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm1,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
movapd 0x80(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm2,%xmm0
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xc0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm9,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm12,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm2,%xmm0
mulsd  %xmm1,%xmm2
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm3
mulsd  %xmm0,%xmm3
unpckhpd %xmm0,%xmm0
movapd 0x170(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm1,%xmm3
mulsd  %xmm2,%xmm10
jmp    6301 <tri_tri_overlap_test_3d+0x51f1>
xorpd  %xmm10,%xmm10
ucomisd %xmm0,%xmm12
jbe    9e13 <tri_tri_overlap_test_3d+0x8d03>
ucomisd %xmm10,%xmm1
jbe    a767 <tri_tri_overlap_test_3d+0x9657>
movapd %xmm7,%xmm11
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm0,%xmm3
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  0x120(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  0x130(%rsp),%xmm2
addsd  %xmm0,%xmm2
ucomisd %xmm10,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x70(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
mulpd  %xmm1,%xmm11
subpd  %xmm11,%xmm3
jmp    2218 <tri_tri_overlap_test_3d+0x1108>
xorpd  %xmm9,%xmm9
ucomisd %xmm2,%xmm12
jbe    9f89 <tri_tri_overlap_test_3d+0x8e79>
ucomisd %xmm9,%xmm1
jbe    a8d7 <tri_tri_overlap_test_3d+0x97c7>
movapd %xmm4,%xmm10
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm1
mulsd  %xmm2,%xmm3
subsd  %xmm1,%xmm3
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm4,%xmm1
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x30(%rsp),%xmm2
movapd 0x70(%rsp),%xmm4
subpd  %xmm2,%xmm4
movapd 0x40(%rsp),%xmm6
subpd  %xmm2,%xmm6
movapd %xmm10,%xmm1
movapd %xmm10,%xmm0
unpcklpd %xmm11,%xmm0
movapd 0x110(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm4,%xmm0
shufpd $0x1,%xmm3,%xmm0
mulsd  %xmm6,%xmm3
unpcklpd %xmm5,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm4,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xb0(%rsp),%xmm12
subsd  %xmm10,%xmm12
jmp    73fb <tri_tri_overlap_test_3d+0x62eb>
ucomisd %xmm12,%xmm2
jbe    9fa4 <tri_tri_overlap_test_3d+0x8e94>
xorpd  %xmm9,%xmm9
ucomisd %xmm9,%xmm1
jae    aa35 <tri_tri_overlap_test_3d+0x9925>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm1,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm2
movapd %xmm2,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm0
mulsd  %xmm4,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
subpd  %xmm4,%xmm6
movapd %xmm8,%xmm3
movapd %xmm8,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm2
mulsd  %xmm6,%xmm0
unpcklpd %xmm5,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
jmp    b170 <tri_tri_overlap_test_3d+0xa060>
ucomisd %xmm2,%xmm1
jbe    b285 <tri_tri_overlap_test_3d+0xa175>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xb0(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0x1b0(%rsp),%xmm10
movapd %xmm10,%xmm8
mulsd  %xmm5,%xmm8
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm3
movapd 0x1a0(%rsp),%xmm7
mulsd  %xmm7,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm7,%xmm4
mulsd  %xmm10,%xmm2
subsd  %xmm4,%xmm2
movapd 0xa0(%rsp),%xmm4
subsd  %xmm14,%xmm4
mulsd  %xmm1,%xmm4
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm4,%xmm1
subsd  %xmm13,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm4
subpd  0x40(%rsp),%xmm4
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm6
movapd %xmm6,%xmm1
unpckhpd %xmm6,%xmm1
movapd 0x170(%rsp),%xmm0
movapd %xmm0,%xmm2
unpckhpd %xmm6,%xmm2
mulsd  %xmm4,%xmm1
unpcklpd %xmm3,%xmm4
mulpd  %xmm2,%xmm4
movapd %xmm0,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm4,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
mulsd  %xmm2,%xmm6
unpckhpd %xmm2,%xmm2
movapd 0x120(%rsp),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm6,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
xor    %eax,%eax
ucomisd %xmm5,%xmm1
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
ucomisd %xmm2,%xmm12
jbe    a11f <tri_tri_overlap_test_3d+0x900f>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x130(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd %xmm14,%xmm7
mulsd  %xmm14,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
mulsd  %xmm14,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x140(%rsp),%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
movapd 0x150(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm13,%xmm7
movapd 0x30(%rsp),%xmm3
movapd 0x90(%rsp),%xmm4
subpd  %xmm3,%xmm4
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm4,%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm4,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm4,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0x60(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm7,%xmm12
addsd  %xmm2,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
xorpd  %xmm9,%xmm9
ucomisd %xmm2,%xmm1
jbe    a29e <tri_tri_overlap_test_3d+0x918e>
ucomisd %xmm9,%xmm12
jbe    ab92 <tri_tri_overlap_test_3d+0x9a82>
movapd %xmm4,%xmm10
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm1
movapd %xmm1,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm3
subsd  %xmm2,%xmm3
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm9,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x70(%rsp),%xmm0
movapd 0x30(%rsp),%xmm3
subpd  %xmm3,%xmm0
movapd 0x40(%rsp),%xmm6
subpd  %xmm3,%xmm6
movapd %xmm10,%xmm2
movapd %xmm10,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm0,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulsd  %xmm6,%xmm4
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xc0(%rsp),%xmm0
subsd  %xmm10,%xmm0
jmp    77bd <tri_tri_overlap_test_3d+0x66ad>
ucomisd %xmm12,%xmm8
jbe    bef1 <tri_tri_overlap_test_3d+0xade1>
movapd %xmm3,%xmm11
movapd %xmm2,%xmm9
movapd 0x80(%rsp),%xmm12
subsd  %xmm10,%xmm12
movapd 0x30(%rsp),%xmm8
movapd 0x90(%rsp),%xmm14
subsd  %xmm8,%xmm14
movapd %xmm4,%xmm13
movapd 0xc0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm10,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm14,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm14,%xmm3
mulsd  %xmm12,%xmm0
subsd  %xmm3,%xmm0
movapd 0xa0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
subsd  %xmm13,%xmm7
mulsd  %xmm0,%xmm7
addsd  %xmm2,%xmm7
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm7
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm2
movapd %xmm4,%xmm1
mulsd  %xmm6,%xmm1
unpcklpd %xmm3,%xmm6
mulpd  %xmm2,%xmm6
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm2,%xmm4
unpckhpd %xmm2,%xmm2
mulsd  %xmm2,%xmm9
addsd  %xmm9,%xmm4
mulsd  %xmm1,%xmm11
addsd  %xmm4,%xmm11
jmp    1dd9 <tri_tri_overlap_test_3d+0xcc9>
xorpd  %xmm10,%xmm10
ucomisd %xmm0,%xmm1
jbe    a348 <tri_tri_overlap_test_3d+0x9238>
ucomisd %xmm10,%xmm12
jbe    ace3 <tri_tri_overlap_test_3d+0x9bd3>
movapd %xmm7,%xmm12
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm3,%xmm11
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm0,%xmm3
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  0x170(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  %xmm2,%xmm11
addsd  %xmm0,%xmm11
ucomisd %xmm10,%xmm11
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x70(%rsp),%xmm0
subpd  %xmm6,%xmm0
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
movapd 0x180(%rsp),%xmm1
mulsd  %xmm0,%xmm1
shufpd $0x1,%xmm2,%xmm0
mulpd  %xmm0,%xmm12
subpd  %xmm12,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm2
subsd  %xmm1,%xmm2
movsd  %xmm2,0x20(%rsp)
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0xc0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm4,%xmm3
unpckhpd %xmm4,%xmm4
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
jmp    77e2 <tri_tri_overlap_test_3d+0x66d2>
ucomisd %xmm0,%xmm1
ja     2aa2 <tri_tri_overlap_test_3d+0x1992>
xorpd  %xmm9,%xmm9
ucomisd %xmm1,%xmm9
ja     1fad <tri_tri_overlap_test_3d+0xe9d>
jmp    9f72 <tri_tri_overlap_test_3d+0x8e62>
xorpd  %xmm8,%xmm8
ucomisd %xmm8,%xmm12
jbe    adf5 <tri_tri_overlap_test_3d+0x9ce5>
movapd 0x60(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm10
movapd 0x50(%rsp),%xmm0
subsd  %xmm10,%xmm0
movapd %xmm4,%xmm9
movapd 0xb0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm10,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm12,%xmm1
subsd  %xmm5,%xmm1
movapd 0x80(%rsp),%xmm0
subsd  %xmm11,%xmm0
mulsd  %xmm3,%xmm0
movapd 0x90(%rsp),%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm8,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm2
subpd  0x110(%rsp),%xmm2
movapd 0x170(%rsp),%xmm1
movapd %xmm1,%xmm0
movapd 0xe0(%rsp),%xmm3
unpckhpd %xmm3,%xmm0
unpckhpd %xmm3,%xmm3
mulsd  %xmm6,%xmm3
unpcklpd %xmm2,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm1,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm2,%xmm2
mulsd  %xmm1,%xmm2
subsd  %xmm2,%xmm3
movsd  %xmm3,0x20(%rsp)
jmp    2379 <tri_tri_overlap_test_3d+0x1269>
xorpd  %xmm10,%xmm10
ucomisd %xmm12,%xmm10
jbe    af26 <tri_tri_overlap_test_3d+0x9e16>
movapd 0x50(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x50(%rsp),%xmm1
jmp    a837 <tri_tri_overlap_test_3d+0x9727>
movapd %xmm7,%xmm11
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm7
movapd %xmm3,%xmm10
movapd %xmm7,%xmm3
mulsd  %xmm1,%xmm3
movapd 0x130(%rsp),%xmm5
mulsd  %xmm5,%xmm1
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm1,%xmm4
mulsd  %xmm7,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm3
mulsd  0x170(%rsp),%xmm5
unpckhpd %xmm7,%xmm7
mulsd  %xmm4,%xmm7
addsd  %xmm5,%xmm7
mulsd  %xmm3,%xmm10
addsd  %xmm7,%xmm10
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm10
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x180(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
mulpd  %xmm2,%xmm11
subpd  %xmm11,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x190(%rsp),%xmm1
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0xd0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
movapd 0x70(%rsp),%xmm4
jmp    9f53 <tri_tri_overlap_test_3d+0x8e43>
movapd %xmm4,%xmm9
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm7
subsd  %xmm11,%xmm7
movapd 0x30(%rsp),%xmm4
movapd 0x90(%rsp),%xmm2
subpd  %xmm4,%xmm2
movapd 0x40(%rsp),%xmm6
subpd  %xmm4,%xmm6
movapd %xmm9,%xmm3
movapd %xmm9,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xd0(%rsp),%xmm2
subsd  %xmm9,%xmm2
jmp    8f77 <tri_tri_overlap_test_3d+0x7e67>
xorpd  %xmm9,%xmm9
ucomisd %xmm1,%xmm9
jbe    b028 <tri_tri_overlap_test_3d+0x9f18>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm3,%xmm12
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm4
movapd %xmm4,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm1
movapd 0x120(%rsp),%xmm10
movapd %xmm10,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm1,%xmm5
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm10,%xmm0
subsd  %xmm0,%xmm2
mulsd  0x170(%rsp),%xmm7
unpckhpd %xmm4,%xmm4
mulsd  %xmm5,%xmm4
addsd  %xmm7,%xmm4
mulsd  %xmm2,%xmm12
addsd  %xmm4,%xmm12
ucomisd %xmm9,%xmm12
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm5
subpd  %xmm5,%xmm1
subpd  %xmm5,%xmm6
movapd %xmm8,%xmm4
movapd %xmm8,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x1d0(%rsp),%xmm3
subpd  %xmm2,%xmm3
movapd %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm2
mulsd  %xmm6,%xmm0
unpcklpd %xmm3,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm1,%xmm3
subsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xd0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
movapd 0x70(%rsp),%xmm4
subsd  %xmm5,%xmm4
jmp    3761 <tri_tri_overlap_test_3d+0x2651>
movapd %xmm4,%xmm8
movapd 0x80(%rsp),%xmm5
subsd  %xmm14,%xmm5
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm4
subsd  %xmm13,%xmm4
movapd 0x1b0(%rsp),%xmm7
movapd %xmm7,%xmm0
mulsd  %xmm4,%xmm0
movapd %xmm2,%xmm1
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm5,%xmm3
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm5
subsd  %xmm2,%xmm5
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm13,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm1
mulsd  %xmm2,%xmm4
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x160(%rsp),%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x140(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
movapd 0x150(%rsp),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
xor    %eax,%eax
ucomisd %xmm0,%xmm1
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
movapd %xmm13,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm5
movapd %xmm10,%xmm3
mulsd  %xmm2,%xmm3
movapd %xmm14,%xmm7
movapd %xmm14,%xmm4
unpckhpd %xmm14,%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm1,%xmm4
mulsd  %xmm5,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm10,%xmm0
subsd  %xmm0,%xmm4
mulsd  0x120(%rsp),%xmm5
mulsd  %xmm14,%xmm3
addsd  %xmm5,%xmm3
mulsd  0x130(%rsp),%xmm4
addsd  %xmm3,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm7
subsd  %xmm13,%xmm7
movapd 0x30(%rsp),%xmm4
movapd 0x50(%rsp),%xmm2
subpd  %xmm4,%xmm2
subpd  %xmm4,%xmm6
movapd %xmm8,%xmm3
movapd %xmm8,%xmm1
unpcklpd %xmm13,%xmm1
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm2,%xmm1
shufpd $0x1,%xmm7,%xmm1
mulsd  %xmm6,%xmm7
unpcklpd %xmm5,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm7
movsd  %xmm7,0x20(%rsp)
movapd 0xa0(%rsp),%xmm5
subsd  %xmm13,%xmm5
movapd 0xd0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm5
unpckhpd %xmm1,%xmm1
movapd 0x70(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm5,%xmm3
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
jmp    a8c6 <tri_tri_overlap_test_3d+0x97b6>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
mulsd  %xmm4,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm6
subsd  %xmm11,%xmm6
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
movapd 0x40(%rsp),%xmm7
subpd  %xmm4,%xmm7
movapd %xmm9,%xmm3
movapd %xmm9,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm6,%xmm2
mulsd  %xmm7,%xmm6
unpcklpd %xmm5,%xmm7
mulpd  %xmm2,%xmm7
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm7,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0xa0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xd0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd 0x70(%rsp),%xmm3
jmp    99d6 <tri_tri_overlap_test_3d+0x88c6>
movapd %xmm7,%xmm10
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm9
movapd %xmm3,%xmm5
movapd %xmm9,%xmm3
mulsd  %xmm2,%xmm3
movapd 0xe0(%rsp),%xmm7
movapd %xmm7,%xmm4
unpckhpd %xmm7,%xmm4
mulsd  %xmm4,%xmm2
mulsd  %xmm1,%xmm4
mulsd  %xmm5,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm4
mulsd  0x120(%rsp),%xmm5
mulsd  %xmm7,%xmm3
addsd  %xmm5,%xmm3
mulsd  0x130(%rsp),%xmm4
addsd  %xmm3,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm4,%xmm1
mulpd  %xmm1,%xmm10
subpd  %xmm10,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x190(%rsp),%xmm4
subsd  %xmm2,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm5,%xmm3
unpckhpd %xmm5,%xmm5
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm4,%xmm1
addsd  %xmm2,%xmm1
jmp    8e46 <tri_tri_overlap_test_3d+0x7d36>
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xc0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm11,%xmm2
subsd  %xmm13,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x80(%rsp),%xmm4
subsd  %xmm13,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x60(%rsp),%xmm2
subsd  %xmm13,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x50(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x90(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,%xmm1
shufpd $0x1,%xmm4,%xmm1
movapd 0x1e0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
subpd  %xmm3,%xmm5
movapd %xmm5,0x10(%rsp)
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  0x1b0(%rsp),%xmm4
jmp    35ab <tri_tri_overlap_test_3d+0x249b>
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xd0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x50(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1c0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x1a0(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm1
jmp    9f1c <tri_tri_overlap_test_3d+0x8e0c>
movapd %xmm7,%xmm9
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x140(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm5
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm2,%xmm4
movapd 0x180(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
mulpd  %xmm2,%xmm9
subpd  %xmm9,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm1
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm4,%xmm2
unpckhpd %xmm4,%xmm4
movapd 0x50(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
mulsd  %xmm1,%xmm12
addsd  %xmm3,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
movapd %xmm4,%xmm9
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
mulsd  %xmm4,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x30(%rsp),%xmm3
movapd 0x70(%rsp),%xmm6
subpd  %xmm3,%xmm6
movapd 0x40(%rsp),%xmm7
subpd  %xmm3,%xmm7
movapd %xmm9,%xmm2
movapd %xmm9,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x110(%rsp),%xmm5
subpd  %xmm1,%xmm5
movapd %xmm6,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulsd  %xmm7,%xmm4
unpcklpd %xmm5,%xmm7
mulpd  %xmm1,%xmm7
movapd %xmm6,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm7,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm6,%xmm5
subsd  %xmm5,%xmm4
movsd  %xmm4,0x20(%rsp)
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xb0(%rsp),%xmm12
subsd  %xmm9,%xmm12
mulsd  %xmm1,%xmm5
unpckhpd %xmm1,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm5,%xmm2
mulsd  %xmm4,%xmm12
addsd  %xmm2,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm3
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm5,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x120(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm7,%xmm0
mulsd  0x130(%rsp),%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm7
subpd  %xmm7,%xmm2
subpd  %xmm7,%xmm6
movapd %xmm8,%xmm4
movapd %xmm8,%xmm3
unpcklpd %xmm11,%xmm3
movapd 0x1d0(%rsp),%xmm5
subpd  %xmm3,%xmm5
movapd %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm3
mulsd  %xmm6,%xmm1
unpcklpd %xmm5,%xmm6
mulpd  %xmm3,%xmm6
movapd %xmm2,%xmm3
mulpd  %xmm5,%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm3,%xmm2
unpckhpd %xmm3,%xmm3
movapd 0x50(%rsp),%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm3,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm12
addsd  %xmm4,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
movapd %xmm4,%xmm9
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm3
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm6
subsd  %xmm11,%xmm6
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
movapd 0x40(%rsp),%xmm7
subpd  %xmm4,%xmm7
movapd %xmm9,%xmm3
movapd %xmm9,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm6,%xmm2
mulsd  %xmm7,%xmm6
unpcklpd %xmm5,%xmm7
mulpd  %xmm2,%xmm7
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm7,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0xc0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm2,%xmm5
unpckhpd %xmm2,%xmm2
movapd 0x90(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm5,%xmm3
mulsd  %xmm6,%xmm1
jmp    8e42 <tri_tri_overlap_test_3d+0x7d32>
movapd %xmm7,%xmm10
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm7
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x170(%rsp),%xmm5
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
mulsd  %xmm1,%xmm7
addsd  %xmm0,%xmm7
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm7
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x70(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm1,%xmm5
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm3,%xmm1
mulpd  %xmm1,%xmm10
subpd  %xmm10,%xmm5
jmp    1bed <tri_tri_overlap_test_3d+0xadd>
xorpd  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    b199 <tri_tri_overlap_test_3d+0xa089>
ucomisd %xmm0,%xmm12
jae    b53a <tri_tri_overlap_test_3d+0xa42a>
movapd %xmm4,%xmm9
movapd 0xa0(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x70(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xd0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm7
mulsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm7
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm7,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm4
subsd  %xmm8,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm1,%xmm4
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm4
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm4
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm4,%xmm1
mulsd  %xmm2,%xmm4
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x140(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm4
movsd  %xmm4,0x20(%rsp)
jmp    28ec <tri_tri_overlap_test_3d+0x17dc>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jbe    b25b <tri_tri_overlap_test_3d+0xa14b>
ucomisd %xmm0,%xmm12
jbe    b66d <tri_tri_overlap_test_3d+0xa55d>
movapd %xmm7,%xmm10
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm7
movapd %xmm1,%xmm3
movapd 0x150(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0x160(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm9,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x170(%rsp),%xmm5
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
mulsd  %xmm1,%xmm7
addsd  %xmm0,%xmm7
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm7
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x180(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
mulpd  %xmm2,%xmm10
subpd  %xmm10,%xmm5
jmp    9f0d <tri_tri_overlap_test_3d+0x8dfd>
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm12
jbe    b27b <tri_tri_overlap_test_3d+0xa16b>
ucomisd %xmm0,%xmm1
jbe    b73e <tri_tri_overlap_test_3d+0xa62e>
movapd %xmm3,%xmm9
movapd 0xa0(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm8
movapd 0x70(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd %xmm4,%xmm10
movapd 0xd0(%rsp),%xmm4
subsd  %xmm10,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm10,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm3
mulsd  %xmm12,%xmm0
subsd  %xmm3,%xmm0
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm10,%xmm2
mulsd  %xmm0,%xmm2
jmp    5a59 <tri_tri_overlap_test_3d+0x4949>
ucomisd %xmm10,%xmm1
ja     30ac <tri_tri_overlap_test_3d+0x1f9c>
ucomisd %xmm1,%xmm10
jbe    9f72 <tri_tri_overlap_test_3d+0x8e62>
movapd %xmm7,%xmm9
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd 0x170(%rsp),%xmm4
movapd %xmm3,%xmm7
movapd %xmm4,%xmm3
mulsd  %xmm2,%xmm3
movapd 0xe0(%rsp),%xmm5
unpckhpd %xmm5,%xmm5
mulsd  %xmm5,%xmm2
mulsd  %xmm1,%xmm5
mulsd  %xmm7,%xmm1
subsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm4,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x140(%rsp),%xmm7
movapd 0x160(%rsp),%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm7,%xmm0
movapd 0x150(%rsp),%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x50(%rsp),%xmm2
subpd  %xmm6,%xmm2
movapd 0x1f0(%rsp),%xmm5
mulpd  %xmm2,%xmm5
movapd 0x180(%rsp),%xmm3
mulsd  %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm2
mulpd  %xmm2,%xmm9
subpd  %xmm9,%xmm5
movapd %xmm5,0x10(%rsp)
mulsd  0x190(%rsp),%xmm1
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0xc0(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm5,%xmm2
unpckhpd %xmm5,%xmm5
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
mulsd  %xmm5,%xmm4
addsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm3
addsd  %xmm4,%xmm3
xor    %eax,%eax
ucomisd %xmm0,%xmm3
jmp    a8cc <tri_tri_overlap_test_3d+0x97bc>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %r11,%rdi
mov    %r8,%rsi
mov    %r10,%r8
jmp    bf09 <tri_tri_overlap_test_3d+0xadf9>
ucomisd %xmm9,%xmm1
ja     337b <tri_tri_overlap_test_3d+0x226b>
ucomisd %xmm1,%xmm9
ja     1e14 <tri_tri_overlap_test_3d+0xd04>
jmp    b397 <tri_tri_overlap_test_3d+0xa287>
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm12
jbe    b37d <tri_tri_overlap_test_3d+0xa26d>
ucomisd %xmm2,%xmm1
jbe    b80e <tri_tri_overlap_test_3d+0xa6fe>
movapd %xmm4,%xmm9
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
mulsd  %xmm1,%xmm0
movapd 0x180(%rsp),%xmm3
mulsd  %xmm3,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm1
subsd  %xmm2,%xmm1
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
mulsd  %xmm4,%xmm2
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm2,%xmm0
movapd 0xc0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x70(%rsp),%xmm2
movapd 0x30(%rsp),%xmm6
subpd  %xmm6,%xmm2
movapd 0x40(%rsp),%xmm7
subpd  %xmm6,%xmm7
movapd %xmm9,%xmm4
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
movapd 0x110(%rsp),%xmm5
subpd  %xmm3,%xmm5
movapd %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm3
mulsd  %xmm7,%xmm1
unpcklpd %xmm5,%xmm7
mulpd  %xmm3,%xmm7
movapd %xmm2,%xmm3
mulpd  %xmm5,%xmm3
subpd  %xmm7,%xmm3
movapd %xmm3,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
subsd  %xmm5,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xb0(%rsp),%xmm12
subsd  %xmm9,%xmm12
mulsd  %xmm3,%xmm2
unpckhpd %xmm3,%xmm3
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
jmp    9867 <tri_tri_overlap_test_3d+0x8757>
xorpd  %xmm11,%xmm11
ucomisd %xmm12,%xmm11
jbe    b3b9 <tri_tri_overlap_test_3d+0xa2a9>
movapd %xmm4,%xmm10
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm2,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x80(%rsp),%xmm3
subsd  %xmm9,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm1,%xmm2
mulsd  %xmm5,%xmm3
subsd  %xmm2,%xmm3
movapd 0xa0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm0,%xmm2
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm11,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm6
subsd  %xmm13,%xmm6
movapd 0x30(%rsp),%xmm2
movapd 0x90(%rsp),%xmm3
subpd  %xmm2,%xmm3
movapd 0x40(%rsp),%xmm4
subpd  %xmm2,%xmm4
movapd %xmm10,%xmm1
movapd %xmm10,%xmm0
unpcklpd %xmm13,%xmm0
movapd 0x110(%rsp),%xmm5
subpd  %xmm0,%xmm5
movapd %xmm3,%xmm0
shufpd $0x1,%xmm6,%xmm0
mulsd  %xmm4,%xmm6
unpcklpd %xmm5,%xmm4
mulpd  %xmm0,%xmm4
movapd %xmm3,%xmm0
mulpd  %xmm5,%xmm0
subpd  %xmm4,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm5,%xmm6
movsd  %xmm6,0x20(%rsp)
movapd 0x60(%rsp),%xmm3
subsd  %xmm13,%xmm3
movapd 0xb0(%rsp),%xmm12
subsd  %xmm10,%xmm12
mulsd  %xmm0,%xmm3
unpckhpd %xmm0,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm3,%xmm1
mulsd  %xmm6,%xmm12
jmp    741a <tri_tri_overlap_test_3d+0x630a>
ucomisd %xmm9,%xmm12
jbe    b3ae <tri_tri_overlap_test_3d+0xa29e>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm4,%xmm8
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x120(%rsp),%xmm1
movapd %xmm1,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0xe0(%rsp),%xmm4
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm1,%xmm0
mulsd  %xmm4,%xmm2
subsd  %xmm0,%xmm2
mulsd  0x140(%rsp),%xmm7
movapd 0x160(%rsp),%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
movapd 0x150(%rsp),%xmm3
mulsd  %xmm2,%xmm3
jmp    3c8d <tri_tri_overlap_test_3d+0x2b7d>
ucomisd %xmm10,%xmm12
jbe    b3d0 <tri_tri_overlap_test_3d+0xa2c0>
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0xa0(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x70(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xd0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x90(%rsp),%xmm0
subpd  %xmm6,%xmm0
movapd 0x1c0(%rsp),%xmm3
mulpd  %xmm0,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
shufpd $0x1,%xmm2,%xmm0
movapd 0x1e0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm3
movapd %xmm3,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm2
subsd  %xmm1,%xmm2
jmp    401e <tri_tri_overlap_test_3d+0x2f0e>
ucomisd %xmm12,%xmm13
jbe    b960 <tri_tri_overlap_test_3d+0xa850>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0x50(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xb0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm4,%xmm1
movapd 0x1c0(%rsp),%xmm7
mulsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm7
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm5
subsd  %xmm7,%xmm5
mulsd  %xmm0,%xmm4
mulsd  %xmm3,%xmm2
subsd  %xmm4,%xmm2
movapd 0x80(%rsp),%xmm4
subsd  %xmm14,%xmm4
mulsd  %xmm1,%xmm4
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x170(%rsp),%xmm4
movapd %xmm4,%xmm1
movapd 0xe0(%rsp),%xmm5
unpckhpd %xmm5,%xmm1
unpckhpd %xmm5,%xmm5
mulsd  %xmm2,%xmm5
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd %xmm4,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
movsd  %xmm5,0x20(%rsp)
jmp    332c <tri_tri_overlap_test_3d+0x221c>
movapd %xmm7,%xmm11
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm8,%xmm0
subsd  0x100(%rsp),%xmm0
movapd 0x170(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm0,%xmm4
movapd 0xe0(%rsp),%xmm7
movapd %xmm7,%xmm5
unpckhpd %xmm7,%xmm5
mulsd  %xmm5,%xmm0
mulsd  %xmm2,%xmm5
mulsd  %xmm3,%xmm2
subsd  %xmm2,%xmm4
mulsd  %xmm1,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm9,%xmm1
subsd  %xmm1,%xmm5
mulsd  0x120(%rsp),%xmm3
mulsd  %xmm7,%xmm4
addsd  %xmm3,%xmm4
mulsd  0x130(%rsp),%xmm5
addsd  %xmm4,%xmm5
ucomisd %xmm10,%xmm5
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x50(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
mulpd  %xmm1,%xmm11
subpd  %xmm11,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm0
jmp    a87a <tri_tri_overlap_test_3d+0x976a>
movapd %xmm4,%xmm15
movapd 0x80(%rsp),%xmm10
subsd  %xmm11,%xmm10
movapd 0x30(%rsp),%xmm8
movapd 0x90(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0xc0(%rsp),%xmm0
subsd  %xmm4,%xmm0
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm8,%xmm1
movapd 0x100(%rsp),%xmm4
subsd  %xmm15,%xmm4
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm7,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm10,%xmm4
mulsd  %xmm5,%xmm0
subsd  %xmm4,%xmm0
mulsd  %xmm7,%xmm5
mulsd  %xmm10,%xmm1
subsd  %xmm5,%xmm1
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x50(%rsp),%xmm3
subsd  %xmm8,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movapd 0xb0(%rsp),%xmm0
subsd  %xmm15,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm9,%xmm0
jbe    68bd <tri_tri_overlap_test_3d+0x57ad>
jmp    151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x60(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xb0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x1a0(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
movapd 0x1e0(%rsp),%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm0
subsd  %xmm2,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0xd0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
movapd 0x70(%rsp),%xmm3
subsd  %xmm6,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm2
addsd  %xmm3,%xmm2
xorpd  %xmm0,%xmm0
xor    %eax,%eax
ucomisd %xmm0,%xmm2
setbe  %al
add    $0x248,%rsp
ret
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm3,%xmm12
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd 0xe0(%rsp),%xmm4
movapd %xmm4,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm1
movapd 0x120(%rsp),%xmm10
movapd %xmm10,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm1,%xmm5
mulsd  %xmm4,%xmm3
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm10,%xmm0
subsd  %xmm0,%xmm2
mulsd  0x170(%rsp),%xmm7
unpckhpd %xmm4,%xmm4
mulsd  %xmm5,%xmm4
addsd  %xmm7,%xmm4
mulsd  %xmm2,%xmm12
addsd  %xmm4,%xmm12
ucomisd %xmm9,%xmm12
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x30(%rsp),%xmm3
movapd 0x90(%rsp),%xmm1
subpd  %xmm3,%xmm1
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm0
unpcklpd %xmm11,%xmm0
movapd 0x1d0(%rsp),%xmm4
subpd  %xmm0,%xmm4
movapd %xmm1,%xmm0
shufpd $0x1,%xmm5,%xmm0
mulsd  %xmm6,%xmm5
unpcklpd %xmm4,%xmm6
mulpd  %xmm0,%xmm6
movapd %xmm1,%xmm0
mulpd  %xmm4,%xmm0
subpd  %xmm6,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
subsd  %xmm4,%xmm5
movsd  %xmm5,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm0,%xmm4
unpckhpd %xmm0,%xmm0
movapd 0x70(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm5,%xmm1
jmp    6d83 <tri_tri_overlap_test_3d+0x5c73>
movapd %xmm4,%xmm10
movapd 0x90(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xc0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm1
mulsd  %xmm2,%xmm3
subsd  %xmm1,%xmm3
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm4,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm1,%xmm0
ucomisd %xmm9,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x90(%rsp),%xmm1
movapd 0x30(%rsp),%xmm6
subpd  %xmm6,%xmm1
movapd 0x40(%rsp),%xmm3
subpd  %xmm6,%xmm3
movapd %xmm10,%xmm4
movapd %xmm10,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm2
mulsd  %xmm3,%xmm0
unpcklpd %xmm5,%xmm3
mulpd  %xmm2,%xmm3
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm3,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xd0(%rsp),%xmm3
subsd  %xmm10,%xmm3
mulsd  %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
movapd 0x70(%rsp),%xmm4
jmp    375d <tri_tri_overlap_test_3d+0x264d>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm4,%xmm8
movapd %xmm3,%xmm7
movapd %xmm4,%xmm3
subsd  0x100(%rsp),%xmm3
movapd 0x170(%rsp),%xmm10
movapd %xmm10,%xmm4
mulsd  %xmm3,%xmm4
movapd 0xe0(%rsp),%xmm1
movapd %xmm1,%xmm5
unpckhpd %xmm1,%xmm5
mulsd  %xmm5,%xmm3
mulsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm2
subsd  %xmm2,%xmm4
mulsd  %xmm0,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm10,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x120(%rsp),%xmm7
mulsd  %xmm1,%xmm4
addsd  %xmm7,%xmm4
mulsd  0x130(%rsp),%xmm5
addsd  %xmm4,%xmm5
ucomisd %xmm9,%xmm5
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x50(%rsp),%xmm0
movapd 0x30(%rsp),%xmm3
subpd  %xmm3,%xmm0
subpd  %xmm3,%xmm6
movapd %xmm8,%xmm2
movapd %xmm8,%xmm1
unpcklpd %xmm11,%xmm1
movapd 0x1d0(%rsp),%xmm4
subpd  %xmm1,%xmm4
movapd %xmm0,%xmm1
shufpd $0x1,%xmm5,%xmm1
mulsd  %xmm6,%xmm5
unpcklpd %xmm4,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm0,%xmm1
mulpd  %xmm4,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm4,%xmm5
movsd  %xmm5,0x20(%rsp)
movapd 0xa0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0xd0(%rsp),%xmm0
subsd  %xmm8,%xmm0
mulsd  %xmm1,%xmm4
unpckhpd %xmm1,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm4,%xmm2
mulsd  %xmm5,%xmm0
jmp    77de <tri_tri_overlap_test_3d+0x66ce>
movapd 0x50(%rsp),%xmm2
movapd 0x30(%rsp),%xmm0
subsd  %xmm0,%xmm2
movapd 0xb0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm9
movapd %xmm14,%xmm3
subsd  %xmm11,%xmm3
movapd %xmm6,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm8,%xmm4
subsd  %xmm9,%xmm4
movapd %xmm1,%xmm5
mulsd  %xmm7,%xmm5
mulsd  %xmm3,%xmm7
mulsd  %xmm2,%xmm3
mulsd  %xmm4,%xmm2
subsd  %xmm5,%xmm2
movapd 0x60(%rsp),%xmm5
subsd  %xmm11,%xmm5
mulsd  %xmm5,%xmm4
subsd  %xmm4,%xmm7
mulsd  %xmm5,%xmm1
subsd  %xmm3,%xmm1
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm2
subsd  %xmm0,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm3,%xmm2
movapd 0xc0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
ucomisd %xmm10,%xmm0
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x50(%rsp),%xmm0
subpd  %xmm6,%xmm0
movapd 0x1c0(%rsp),%xmm4
mulpd  %xmm0,%xmm4
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
shufpd $0x1,%xmm3,%xmm0
movapd 0x1e0(%rsp),%xmm2
mulpd  %xmm0,%xmm2
subpd  %xmm2,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x1b0(%rsp),%xmm3
jmp    4439 <tri_tri_overlap_test_3d+0x3329>
movapd %xmm4,%xmm10
movapd 0xa0(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x70(%rsp),%xmm5
subsd  %xmm6,%xmm5
movapd 0x200(%rsp),%xmm9
movapd 0xd0(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
movapd 0x1c0(%rsp),%xmm0
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm0
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm1,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xb0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm8,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm10,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm0
unpcklpd %xmm2,%xmm0
mulsd  %xmm1,%xmm2
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
jmp    38b4 <tri_tri_overlap_test_3d+0x27a4>
movapd %xmm7,%xmm12
movapd %xmm14,%xmm1
subsd  0xf0(%rsp),%xmm1
movapd %xmm6,%xmm2
subsd  0x40(%rsp),%xmm2
movapd %xmm3,%xmm11
movapd %xmm8,%xmm3
subsd  0x100(%rsp),%xmm3
movapd %xmm2,%xmm4
movapd 0x150(%rsp),%xmm7
mulsd  %xmm7,%xmm4
movapd 0x140(%rsp),%xmm9
movapd %xmm9,%xmm5
mulsd  %xmm3,%xmm5
subsd  %xmm4,%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm0,%xmm3
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm2
subsd  %xmm1,%xmm2
mulsd  0x170(%rsp),%xmm7
movapd 0xe0(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm5,%xmm0
addsd  %xmm7,%xmm0
mulsd  %xmm2,%xmm11
addsd  %xmm0,%xmm11
ucomisd %xmm10,%xmm11
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm0
subsd  %xmm14,%xmm0
movapd 0x70(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm1
mulpd  %xmm1,%xmm12
subpd  %xmm12,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm0
jmp    31b6 <tri_tri_overlap_test_3d+0x20a6>
movapd %xmm4,%xmm10
movapd 0x70(%rsp),%xmm1
subsd  %xmm6,%xmm1
movapd 0xd0(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd 0x190(%rsp),%xmm2
movapd %xmm2,%xmm3
mulsd  %xmm7,%xmm3
movapd %xmm1,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm3,%xmm4
movapd 0xa0(%rsp),%xmm3
subsd  %xmm14,%xmm3
mulsd  %xmm3,%xmm0
movapd 0x180(%rsp),%xmm5
mulsd  %xmm5,%xmm7
subsd  %xmm0,%xmm7
mulsd  %xmm5,%xmm1
mulsd  %xmm2,%xmm3
subsd  %xmm1,%xmm3
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm4,%xmm1
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm9,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0xa0(%rsp),%xmm0
subsd  %xmm11,%xmm0
movapd 0x70(%rsp),%xmm1
movapd 0x30(%rsp),%xmm4
subpd  %xmm4,%xmm1
movapd 0x40(%rsp),%xmm6
subpd  %xmm4,%xmm6
movapd %xmm10,%xmm3
movapd %xmm10,%xmm2
unpcklpd %xmm11,%xmm2
movapd 0x110(%rsp),%xmm5
subpd  %xmm2,%xmm5
movapd %xmm1,%xmm2
shufpd $0x1,%xmm0,%xmm2
mulsd  %xmm6,%xmm0
unpcklpd %xmm5,%xmm6
mulpd  %xmm2,%xmm6
movapd %xmm1,%xmm2
mulpd  %xmm5,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm5,%xmm5
mulsd  %xmm1,%xmm5
subsd  %xmm5,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0xb0(%rsp),%xmm12
subsd  %xmm10,%xmm12
mulsd  %xmm2,%xmm1
unpckhpd %xmm2,%xmm2
movapd 0x50(%rsp),%xmm3
subsd  %xmm4,%xmm3
mulsd  %xmm2,%xmm3
addsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm12
addsd  %xmm3,%xmm12
jmp    7a5b <tri_tri_overlap_test_3d+0x694b>
ucomisd %xmm0,%xmm1
jbe    ba9b <tri_tri_overlap_test_3d+0xa98b>
xorpd  %xmm8,%xmm8
ucomisd %xmm8,%xmm12
jbe    bc0c <tri_tri_overlap_test_3d+0xaafc>
movapd 0xa0(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm10
movapd 0x70(%rsp),%xmm0
subsd  %xmm10,%xmm0
movapd %xmm4,%xmm9
movapd 0xd0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm10,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm12,%xmm1
subsd  %xmm5,%xmm1
movapd 0x60(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x50(%rsp),%xmm0
subsd  %xmm10,%xmm0
jmp    3e25 <tri_tri_overlap_test_3d+0x2d15>
ucomisd %xmm0,%xmm12
ja     45f0 <tri_tri_overlap_test_3d+0x34e0>
xorpd  %xmm9,%xmm9
ucomisd %xmm12,%xmm9
ja     212c <tri_tri_overlap_test_3d+0x101c>
jmp    b526 <tri_tri_overlap_test_3d+0xa416>
ucomisd %xmm0,%xmm1
ja     4d63 <tri_tri_overlap_test_3d+0x3c53>
xorpd  %xmm8,%xmm8
ucomisd %xmm1,%xmm8
jbe    b366 <tri_tri_overlap_test_3d+0xa256>
movapd 0x60(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm10
movapd 0x50(%rsp),%xmm0
subsd  %xmm10,%xmm0
movapd %xmm4,%xmm9
movapd 0xb0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm5
subsd  %xmm11,%xmm5
movapd 0x40(%rsp),%xmm1
subsd  %xmm10,%xmm1
movapd 0x100(%rsp),%xmm7
subsd  %xmm9,%xmm7
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm7,%xmm3
subsd  %xmm2,%xmm3
mulsd  %xmm12,%xmm7
mulsd  %xmm5,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm5
mulsd  %xmm12,%xmm1
subsd  %xmm5,%xmm1
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm3,%xmm2
movapd 0x70(%rsp),%xmm3
subsd  %xmm10,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm2,%xmm3
movapd 0xd0(%rsp),%xmm0
subsd  %xmm9,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm3,%xmm0
ucomisd %xmm8,%xmm0
jbe    1854 <tri_tri_overlap_test_3d+0x744>
jmp    151e <tri_tri_overlap_test_3d+0x40e>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %rdx,%rdi
mov    %r11,%rsi
mov    %r8,%rdx
jmp    9f81 <tri_tri_overlap_test_3d+0x8e71>
ucomisd %xmm2,%xmm1
ja     5835 <tri_tri_overlap_test_3d+0x4725>
xorpd  %xmm10,%xmm10
ucomisd %xmm1,%xmm10
ja     360b <tri_tri_overlap_test_3d+0x24fb>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %r8,%rdi
mov    %rdx,%rsi
mov    %r11,%rdx
jmp    9f81 <tri_tri_overlap_test_3d+0x8e71>
ucomisd %xmm12,%xmm9
ja     2629 <tri_tri_overlap_test_3d+0x1519>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %r8,%rdi
mov    %rdx,%rsi
mov    %r11,%rdx
jmp    bf03 <tri_tri_overlap_test_3d+0xadf3>
ucomisd %xmm12,%xmm10
jbe    b526 <tri_tri_overlap_test_3d+0xa416>
movapd %xmm7,%xmm9
movapd %xmm14,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd %xmm6,%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm8,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm1,%xmm3
movapd 0x130(%rsp),%xmm5
mulsd  %xmm5,%xmm3
movapd 0x120(%rsp),%xmm7
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm3,%xmm4
movapd 0xe0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm5
subsd  %xmm2,%xmm5
mulsd  %xmm7,%xmm0
mulsd  %xmm3,%xmm1
subsd  %xmm0,%xmm1
mulsd  0x140(%rsp),%xmm5
movapd 0x160(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm5,%xmm0
movapd 0x150(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm3
subsd  %xmm14,%xmm3
movapd 0x90(%rsp),%xmm1
subpd  %xmm6,%xmm1
movapd 0x1f0(%rsp),%xmm4
mulpd  %xmm1,%xmm4
movapd 0x180(%rsp),%xmm2
mulsd  %xmm1,%xmm2
shufpd $0x1,%xmm3,%xmm1
mulpd  %xmm1,%xmm9
subpd  %xmm9,%xmm4
movapd %xmm4,0x10(%rsp)
mulsd  0x190(%rsp),%xmm3
subsd  %xmm2,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd 0x60(%rsp),%xmm2
subsd  %xmm14,%xmm2
movapd 0xb0(%rsp),%xmm12
subsd  %xmm8,%xmm12
mulsd  %xmm4,%xmm2
unpckhpd %xmm4,%xmm4
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm3,%xmm12
addsd  %xmm1,%xmm12
jmp    7a5f <tri_tri_overlap_test_3d+0x694f>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %r11,%rdi
mov    %r8,%rsi
jmp    bf03 <tri_tri_overlap_test_3d+0xadf3>
movapd 0x60(%rsp),%xmm10
subsd  %xmm11,%xmm10
movapd 0x30(%rsp),%xmm8
movapd 0x50(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd %xmm4,%xmm9
movapd 0xb0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm9,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm10,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm3
mulsd  %xmm10,%xmm0
subsd  %xmm3,%xmm0
movapd 0x80(%rsp),%xmm3
subsd  %xmm11,%xmm3
mulsd  %xmm2,%xmm3
movapd 0x90(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm3,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x170(%rsp),%xmm2
movapd %xmm2,%xmm1
movapd 0xe0(%rsp),%xmm4
unpckhpd %xmm4,%xmm1
unpckhpd %xmm4,%xmm4
mulsd  %xmm6,%xmm4
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm2,%xmm3
jmp    8e09 <tri_tri_overlap_test_3d+0x7cf9>
movapd 0x50(%rsp),%xmm1
movapd 0x30(%rsp),%xmm7
subsd  %xmm7,%xmm1
movapd 0xb0(%rsp),%xmm5
subsd  %xmm4,%xmm5
movapd %xmm14,%xmm2
subsd  %xmm11,%xmm2
movapd %xmm6,%xmm0
subsd  %xmm7,%xmm0
movapd %xmm4,%xmm9
movapd %xmm8,%xmm3
subsd  %xmm4,%xmm3
movapd %xmm0,%xmm4
mulsd  %xmm5,%xmm4
mulsd  %xmm2,%xmm5
mulsd  %xmm1,%xmm2
mulsd  %xmm3,%xmm1
subsd  %xmm4,%xmm1
movapd 0x60(%rsp),%xmm4
subsd  %xmm11,%xmm4
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm5
mulsd  %xmm4,%xmm0
subsd  %xmm2,%xmm0
movapd 0x80(%rsp),%xmm2
subsd  %xmm11,%xmm2
mulsd  %xmm1,%xmm2
movapd 0x90(%rsp),%xmm1
subsd  %xmm7,%xmm1
mulsd  %xmm5,%xmm1
addsd  %xmm2,%xmm1
movapd 0xc0(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x60(%rsp),%xmm1
subsd  %xmm14,%xmm1
movapd 0x50(%rsp),%xmm2
jmp    64e1 <tri_tri_overlap_test_3d+0x53d1>
movapd %xmm4,%xmm9
movapd 0x80(%rsp),%xmm5
subsd  %xmm14,%xmm5
movapd 0x90(%rsp),%xmm2
subsd  %xmm6,%xmm2
movapd 0xc0(%rsp),%xmm4
subsd  %xmm8,%xmm4
movapd 0x1b0(%rsp),%xmm3
movapd %xmm3,%xmm0
mulsd  %xmm4,%xmm0
movapd %xmm2,%xmm1
movapd 0x1c0(%rsp),%xmm7
mulsd  %xmm7,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm5,%xmm7
movapd 0x1a0(%rsp),%xmm0
mulsd  %xmm0,%xmm4
subsd  %xmm7,%xmm4
mulsd  %xmm0,%xmm2
mulsd  %xmm3,%xmm5
subsd  %xmm2,%xmm5
movapd 0x60(%rsp),%xmm0
subsd  %xmm14,%xmm0
mulsd  %xmm1,%xmm0
movapd 0x50(%rsp),%xmm1
subsd  %xmm6,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movapd 0xb0(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm2
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm9,%xmm3
jmp    8db6 <tri_tri_overlap_test_3d+0x7ca6>
movapd %xmm11,%xmm0
subsd  0xf0(%rsp),%xmm0
movapd 0x30(%rsp),%xmm1
subsd  0x40(%rsp),%xmm1
movapd %xmm4,%xmm8
movapd %xmm4,%xmm2
subsd  0x100(%rsp),%xmm2
movapd %xmm3,%xmm10
movapd 0xe0(%rsp),%xmm3
movapd %xmm3,%xmm5
mulsd  %xmm1,%xmm5
movapd 0x130(%rsp),%xmm7
mulsd  %xmm7,%xmm1
movapd 0x120(%rsp),%xmm9
movapd %xmm9,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm1,%xmm4
mulsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm7
subsd  %xmm2,%xmm7
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm5
mulsd  0x170(%rsp),%xmm7
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
addsd  %xmm7,%xmm3
mulsd  %xmm5,%xmm10
addsd  %xmm3,%xmm10
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm10
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x80(%rsp),%xmm1
subsd  %xmm11,%xmm1
movapd 0x90(%rsp),%xmm2
movapd 0x30(%rsp),%xmm7
subpd  %xmm7,%xmm2
subpd  %xmm7,%xmm6
movapd %xmm8,%xmm5
movapd %xmm8,%xmm3
unpcklpd %xmm11,%xmm3
movapd 0x1d0(%rsp),%xmm4
subpd  %xmm3,%xmm4
movapd %xmm2,%xmm3
shufpd $0x1,%xmm1,%xmm3
mulsd  %xmm6,%xmm1
unpcklpd %xmm4,%xmm6
mulpd  %xmm3,%xmm6
movapd %xmm2,%xmm3
mulpd  %xmm4,%xmm3
subpd  %xmm6,%xmm3
movapd %xmm3,0x10(%rsp)
unpckhpd %xmm4,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm4,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0xa0(%rsp),%xmm2
subsd  %xmm11,%xmm2
movapd 0xd0(%rsp),%xmm4
subsd  %xmm8,%xmm4
mulsd  %xmm3,%xmm2
unpckhpd %xmm3,%xmm3
movapd 0x70(%rsp),%xmm5
jmp    5979 <tri_tri_overlap_test_3d+0x4869>
movapd 0xa0(%rsp),%xmm10
subsd  %xmm11,%xmm10
movapd 0x30(%rsp),%xmm8
movapd 0x70(%rsp),%xmm7
subsd  %xmm8,%xmm7
movapd %xmm4,%xmm9
movapd 0xd0(%rsp),%xmm4
subsd  %xmm9,%xmm4
movapd 0xf0(%rsp),%xmm3
subsd  %xmm11,%xmm3
movapd 0x40(%rsp),%xmm0
subsd  %xmm8,%xmm0
movapd 0x100(%rsp),%xmm5
subsd  %xmm9,%xmm5
movapd %xmm0,%xmm1
mulsd  %xmm4,%xmm1
movapd %xmm7,%xmm2
mulsd  %xmm5,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm10,%xmm5
mulsd  %xmm3,%xmm4
subsd  %xmm5,%xmm4
mulsd  %xmm7,%xmm3
mulsd  %xmm10,%xmm0
subsd  %xmm3,%xmm0
movapd 0x60(%rsp),%xmm1
subsd  %xmm11,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x50(%rsp),%xmm2
subsd  %xmm8,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm1,%xmm2
movapd 0xb0(%rsp),%xmm1
subsd  %xmm9,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x160(%rsp),%xmm2
movapd 0x150(%rsp),%xmm1
unpcklpd %xmm2,%xmm1
mulsd  %xmm6,%xmm2
unpcklpd %xmm3,%xmm6
mulpd  %xmm1,%xmm6
movapd 0x140(%rsp),%xmm4
movapd %xmm4,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm6,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm4,%xmm3
subsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
jmp    552a <tri_tri_overlap_test_3d+0x441a>
xorpd  %xmm13,%xmm13
ucomisd %xmm13,%xmm12
jbe    bd72 <tri_tri_overlap_test_3d+0xac62>
movapd %xmm3,%xmm9
movapd %xmm4,%xmm10
movapd 0x80(%rsp),%xmm7
subsd  %xmm14,%xmm7
movapd 0x90(%rsp),%xmm4
subsd  %xmm6,%xmm4
movapd 0xc0(%rsp),%xmm5
subsd  %xmm8,%xmm5
movapd 0x1b0(%rsp),%xmm0
movapd %xmm0,%xmm1
mulsd  %xmm5,%xmm1
movapd %xmm4,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm7,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm5
subsd  %xmm3,%xmm5
mulsd  %xmm1,%xmm4
mulsd  %xmm0,%xmm7
subsd  %xmm4,%xmm7
movapd 0xa0(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm6,%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm8,%xmm1
mulsd  %xmm7,%xmm1
addsd  %xmm2,%xmm1
ucomisd %xmm13,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm2
subpd  0x40(%rsp),%xmm2
movapd %xmm10,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm1
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm1
movapd %xmm4,%xmm0
mulsd  %xmm2,%xmm0
unpcklpd %xmm3,%xmm2
mulpd  %xmm1,%xmm2
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm2,%xmm1
movapd %xmm1,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm0
movsd  %xmm0,0x20(%rsp)
movapd %xmm4,%xmm2
unpckhpd %xmm4,%xmm2
mulsd  %xmm1,%xmm2
unpckhpd %xmm1,%xmm1
movapd 0x170(%rsp),%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm0,%xmm9
addsd  %xmm2,%xmm9
jmp    3a5c <tri_tri_overlap_test_3d+0x294c>
movapd %xmm4,%xmm9
movapd 0x60(%rsp),%xmm4
subsd  %xmm14,%xmm4
movapd 0x50(%rsp),%xmm0
subsd  %xmm6,%xmm0
movapd 0x200(%rsp),%xmm10
movapd 0xb0(%rsp),%xmm7
subsd  %xmm10,%xmm7
movapd 0x1b0(%rsp),%xmm5
movapd %xmm5,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm0,%xmm2
movapd 0x1c0(%rsp),%xmm3
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm4,%xmm3
movapd 0x1a0(%rsp),%xmm1
mulsd  %xmm1,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm1,%xmm0
mulsd  %xmm5,%xmm4
subsd  %xmm0,%xmm4
movapd 0x80(%rsp),%xmm1
subsd  %xmm14,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x90(%rsp),%xmm0
subsd  %xmm6,%xmm0
mulsd  %xmm7,%xmm0
addsd  %xmm1,%xmm0
movapd 0xc0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
ucomisd %xmm8,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
movapd 0x30(%rsp),%xmm1
subpd  0x40(%rsp),%xmm1
movapd %xmm9,%xmm3
unpcklpd %xmm11,%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x170(%rsp),%xmm2
movapd %xmm2,%xmm0
movapd 0xe0(%rsp),%xmm4
unpckhpd %xmm4,%xmm0
unpckhpd %xmm4,%xmm4
mulsd  %xmm1,%xmm4
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
movapd %xmm2,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm0,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm2,%xmm3
movapd %xmm4,%xmm1
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd 0x160(%rsp),%xmm2
mulsd  %xmm0,%xmm2
unpckhpd %xmm0,%xmm0
movapd 0x140(%rsp),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
movapd 0x150(%rsp),%xmm2
mulsd  %xmm1,%xmm2
jmp    a8be <tri_tri_overlap_test_3d+0x97ae>
ucomisd %xmm12,%xmm13
jbe    bef1 <tri_tri_overlap_test_3d+0xade1>
movapd %xmm3,%xmm8
movapd 0x80(%rsp),%xmm12
subsd  %xmm11,%xmm12
movapd 0x30(%rsp),%xmm9
movapd 0x90(%rsp),%xmm5
subsd  %xmm9,%xmm5
movapd 0xc0(%rsp),%xmm7
subsd  %xmm4,%xmm7
movapd %xmm4,%xmm10
movapd 0xf0(%rsp),%xmm4
subsd  %xmm11,%xmm4
movapd 0x40(%rsp),%xmm0
subsd  %xmm9,%xmm0
movapd 0x100(%rsp),%xmm3
subsd  %xmm10,%xmm3
movapd %xmm0,%xmm1
mulsd  %xmm7,%xmm1
movapd %xmm5,%xmm2
mulsd  %xmm3,%xmm2
subsd  %xmm1,%xmm2
mulsd  %xmm12,%xmm3
mulsd  %xmm4,%xmm7
subsd  %xmm3,%xmm7
mulsd  %xmm5,%xmm4
mulsd  %xmm12,%xmm0
subsd  %xmm4,%xmm0
movapd 0xa0(%rsp),%xmm1
subsd  %xmm11,%xmm1
mulsd  %xmm2,%xmm1
movapd 0x70(%rsp),%xmm2
subsd  %xmm9,%xmm2
mulsd  %xmm7,%xmm2
addsd  %xmm1,%xmm2
movapd 0xd0(%rsp),%xmm1
subsd  %xmm10,%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
ja     151e <tri_tri_overlap_test_3d+0x40e>
subpd  0x40(%rsp),%xmm6
movapd 0x1d0(%rsp),%xmm3
subpd  0x110(%rsp),%xmm3
movapd 0x130(%rsp),%xmm2
movapd 0xe0(%rsp),%xmm4
unpcklpd %xmm4,%xmm2
movapd %xmm4,%xmm1
mulsd  %xmm6,%xmm1
unpcklpd %xmm3,%xmm6
mulpd  %xmm2,%xmm6
movapd 0x120(%rsp),%xmm5
movapd %xmm5,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm6,%xmm2
movapd %xmm2,0x10(%rsp)
unpckhpd %xmm3,%xmm3
mulsd  %xmm5,%xmm3
subsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd %xmm4,%xmm3
unpckhpd %xmm4,%xmm3
mulsd  %xmm2,%xmm3
unpckhpd %xmm2,%xmm2
movapd 0x170(%rsp),%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm4,%xmm3
mulsd  %xmm1,%xmm8
addsd  %xmm3,%xmm8
jmp    5150 <tri_tri_overlap_test_3d+0x4040>
lea    0x10(%rsp),%rax
mov    %rax,(%rsp)
mov    %rdx,%rdi
mov    %r11,%rsi
mov    %r8,%rdx
mov    %r9,%r8
mov    %r10,%r9
xor    %eax,%eax
call   1030 <coplanar_tri_tri3d@plt>
add    $0x248,%rsp
ret

LLVM IR (-O0):
define i32 @tri_tri_overlap_test_3d(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5) {
%7 = alloca i32
%8 = alloca double*
%9 = alloca double*
%10 = alloca double*
%11 = alloca double*
%12 = alloca double*
%13 = alloca double*
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca [3 x double]
%21 = alloca [3 x double]
%22 = alloca [3 x double]
%23 = alloca [3 x double]
store double* %0, double** %8
store double* %1, double** %9
store double* %2, double** %10
store double* %3, double** %11
store double* %4, double** %12
store double* %5, double** %13
%24 = load double*, double** %11
%25 = getelementptr inbounds double, double* %24, i64 0
%26 = load double, double* %25
%27 = load double*, double** %13
%28 = getelementptr inbounds double, double* %27, i64 0
%29 = load double, double* %28
%30 = fsub double %26, %29
%31 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30, double* %31
%32 = load double*, double** %11
%33 = getelementptr inbounds double, double* %32, i64 1
%34 = load double, double* %33
%35 = load double*, double** %13
%36 = getelementptr inbounds double, double* %35, i64 1
%37 = load double, double* %36
%38 = fsub double %34, %37
%39 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %38, double* %39
%40 = load double*, double** %11
%41 = getelementptr inbounds double, double* %40, i64 2
%42 = load double, double* %41
%43 = load double*, double** %13
%44 = getelementptr inbounds double, double* %43, i64 2
%45 = load double, double* %44
%46 = fsub double %42, %45
%47 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %46, double* %47
%48 = load double*, double** %12
%49 = getelementptr inbounds double, double* %48, i64 0
%50 = load double, double* %49
%51 = load double*, double** %13
%52 = getelementptr inbounds double, double* %51, i64 0
%53 = load double, double* %52
%54 = fsub double %50, %53
%55 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %54, double* %55
%56 = load double*, double** %12
%57 = getelementptr inbounds double, double* %56, i64 1
%58 = load double, double* %57
%59 = load double*, double** %13
%60 = getelementptr inbounds double, double* %59, i64 1
%61 = load double, double* %60
%62 = fsub double %58, %61
%63 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %62, double* %63
%64 = load double*, double** %12
%65 = getelementptr inbounds double, double* %64, i64 2
%66 = load double, double* %65
%67 = load double*, double** %13
%68 = getelementptr inbounds double, double* %67, i64 2
%69 = load double, double* %68
%70 = fsub double %66, %69
%71 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %70, double* %71
%72 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%73 = load double, double* %72
%74 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%75 = load double, double* %74
%76 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%77 = load double, double* %76
%78 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%79 = load double, double* %78
%80 = fmul double %77, %79
%81 = fneg double %80
%82 = call double @llvm.fmuladd.f64(double %73, double %75, double %81)
%83 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
store double %82, double* %83
%84 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%85 = load double, double* %84
%86 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%87 = load double, double* %86
%88 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%89 = load double, double* %88
%90 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%91 = load double, double* %90
%92 = fmul double %89, %91
%93 = fneg double %92
%94 = call double @llvm.fmuladd.f64(double %85, double %87, double %93)
%95 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 1
store double %94, double* %95
%96 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%97 = load double, double* %96
%98 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%99 = load double, double* %98
%100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%101 = load double, double* %100
%102 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%103 = load double, double* %102
%104 = fmul double %101, %103
%105 = fneg double %104
%106 = call double @llvm.fmuladd.f64(double %97, double %99, double %105)
%107 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 2
store double %106, double* %107
%108 = load double*, double** %8
%109 = getelementptr inbounds double, double* %108, i64 0
%110 = load double, double* %109
%111 = load double*, double** %13
%112 = getelementptr inbounds double, double* %111, i64 0
%113 = load double, double* %112
%114 = fsub double %110, %113
%115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %114, double* %115
%116 = load double*, double** %8
%117 = getelementptr inbounds double, double* %116, i64 1
%118 = load double, double* %117
%119 = load double*, double** %13
%120 = getelementptr inbounds double, double* %119, i64 1
%121 = load double, double* %120
%122 = fsub double %118, %121
%123 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %122, double* %123
%124 = load double*, double** %8
%125 = getelementptr inbounds double, double* %124, i64 2
%126 = load double, double* %125
%127 = load double*, double** %13
%128 = getelementptr inbounds double, double* %127, i64 2
%129 = load double, double* %128
%130 = fsub double %126, %129
%131 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %130, double* %131
%132 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%133 = load double, double* %132
%134 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%135 = load double, double* %134
%136 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%137 = load double, double* %136
%138 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 1
%139 = load double, double* %138
%140 = fmul double %137, %139
%141 = call double @llvm.fmuladd.f64(double %133, double %135, double %140)
%142 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%143 = load double, double* %142
%144 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 2
%145 = load double, double* %144
%146 = call double @llvm.fmuladd.f64(double %143, double %145, double %141)
store double %146, double* %14
%147 = load double*, double** %9
%148 = getelementptr inbounds double, double* %147, i64 0
%149 = load double, double* %148
%150 = load double*, double** %13
%151 = getelementptr inbounds double, double* %150, i64 0
%152 = load double, double* %151
%153 = fsub double %149, %152
%154 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %153, double* %154
%155 = load double*, double** %9
%156 = getelementptr inbounds double, double* %155, i64 1
%157 = load double, double* %156
%158 = load double*, double** %13
%159 = getelementptr inbounds double, double* %158, i64 1
%160 = load double, double* %159
%161 = fsub double %157, %160
%162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %161, double* %162
%163 = load double*, double** %9
%164 = getelementptr inbounds double, double* %163, i64 2
%165 = load double, double* %164
%166 = load double*, double** %13
%167 = getelementptr inbounds double, double* %166, i64 2
%168 = load double, double* %167
%169 = fsub double %165, %168
%170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %169, double* %170
%171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%172 = load double, double* %171
%173 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%174 = load double, double* %173
%175 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%176 = load double, double* %175
%177 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 1
%178 = load double, double* %177
%179 = fmul double %176, %178
%180 = call double @llvm.fmuladd.f64(double %172, double %174, double %179)
%181 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%182 = load double, double* %181
%183 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 2
%184 = load double, double* %183
%185 = call double @llvm.fmuladd.f64(double %182, double %184, double %180)
store double %185, double* %15
%186 = load double*, double** %10
%187 = getelementptr inbounds double, double* %186, i64 0
%188 = load double, double* %187
%189 = load double*, double** %13
%190 = getelementptr inbounds double, double* %189, i64 0
%191 = load double, double* %190
%192 = fsub double %188, %191
%193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %192, double* %193
%194 = load double*, double** %10
%195 = getelementptr inbounds double, double* %194, i64 1
%196 = load double, double* %195
%197 = load double*, double** %13
%198 = getelementptr inbounds double, double* %197, i64 1
%199 = load double, double* %198
%200 = fsub double %196, %199
%201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %200, double* %201
%202 = load double*, double** %10
%203 = getelementptr inbounds double, double* %202, i64 2
%204 = load double, double* %203
%205 = load double*, double** %13
%206 = getelementptr inbounds double, double* %205, i64 2
%207 = load double, double* %206
%208 = fsub double %204, %207
%209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %208, double* %209
%210 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%211 = load double, double* %210
%212 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 0
%213 = load double, double* %212
%214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%215 = load double, double* %214
%216 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 1
%217 = load double, double* %216
%218 = fmul double %215, %217
%219 = call double @llvm.fmuladd.f64(double %211, double %213, double %218)
%220 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%221 = load double, double* %220
%222 = getelementptr inbounds [3 x double], [3 x double]* %23, i64 0, i64 2
%223 = load double, double* %222
%224 = call double @llvm.fmuladd.f64(double %221, double %223, double %219)
store double %224, double* %16
%225 = load double, double* %14
%226 = load double, double* %15
%227 = fmul double %225, %226
%228 = fcmp ogt double %227, 0.000000e+00
br i1 %228, label %229, label %235
229: ; preds = %6
%230 = load double, double* %14
%231 = load double, double* %16
%232 = fmul double %230, %231
%233 = fcmp ogt double %232, 0.000000e+00
br i1 %233, label %234, label %235
234: ; preds = %229
store i32 0, i32* %7
br label %37464
235: ; preds = %229, %6
%236 = load double*, double** %9
%237 = getelementptr inbounds double, double* %236, i64 0
%238 = load double, double* %237
%239 = load double*, double** %8
%240 = getelementptr inbounds double, double* %239, i64 0
%241 = load double, double* %240
%242 = fsub double %238, %241
%243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %242, double* %243
%244 = load double*, double** %9
%245 = getelementptr inbounds double, double* %244, i64 1
%246 = load double, double* %245
%247 = load double*, double** %8
%248 = getelementptr inbounds double, double* %247, i64 1
%249 = load double, double* %248
%250 = fsub double %246, %249
%251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %250, double* %251
%252 = load double*, double** %9
%253 = getelementptr inbounds double, double* %252, i64 2
%254 = load double, double* %253
%255 = load double*, double** %8
%256 = getelementptr inbounds double, double* %255, i64 2
%257 = load double, double* %256
%258 = fsub double %254, %257
%259 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %258, double* %259
%260 = load double*, double** %10
%261 = getelementptr inbounds double, double* %260, i64 0
%262 = load double, double* %261
%263 = load double*, double** %8
%264 = getelementptr inbounds double, double* %263, i64 0
%265 = load double, double* %264
%266 = fsub double %262, %265
%267 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %266, double* %267
%268 = load double*, double** %10
%269 = getelementptr inbounds double, double* %268, i64 1
%270 = load double, double* %269
%271 = load double*, double** %8
%272 = getelementptr inbounds double, double* %271, i64 1
%273 = load double, double* %272
%274 = fsub double %270, %273
%275 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %274, double* %275
%276 = load double*, double** %10
%277 = getelementptr inbounds double, double* %276, i64 2
%278 = load double, double* %277
%279 = load double*, double** %8
%280 = getelementptr inbounds double, double* %279, i64 2
%281 = load double, double* %280
%282 = fsub double %278, %281
%283 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %282, double* %283
%284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%285 = load double, double* %284
%286 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%287 = load double, double* %286
%288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%289 = load double, double* %288
%290 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%291 = load double, double* %290
%292 = fmul double %289, %291
%293 = fneg double %292
%294 = call double @llvm.fmuladd.f64(double %285, double %287, double %293)
%295 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %294, double* %295
%296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%297 = load double, double* %296
%298 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%299 = load double, double* %298
%300 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%301 = load double, double* %300
%302 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%303 = load double, double* %302
%304 = fmul double %301, %303
%305 = fneg double %304
%306 = call double @llvm.fmuladd.f64(double %297, double %299, double %305)
%307 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %306, double* %307
%308 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%309 = load double, double* %308
%310 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%311 = load double, double* %310
%312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%313 = load double, double* %312
%314 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%315 = load double, double* %314
%316 = fmul double %313, %315
%317 = fneg double %316
%318 = call double @llvm.fmuladd.f64(double %309, double %311, double %317)
%319 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %318, double* %319
%320 = load double*, double** %11
%321 = getelementptr inbounds double, double* %320, i64 0
%322 = load double, double* %321
%323 = load double*, double** %10
%324 = getelementptr inbounds double, double* %323, i64 0
%325 = load double, double* %324
%326 = fsub double %322, %325
%327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %326, double* %327
%328 = load double*, double** %11
%329 = getelementptr inbounds double, double* %328, i64 1
%330 = load double, double* %329
%331 = load double*, double** %10
%332 = getelementptr inbounds double, double* %331, i64 1
%333 = load double, double* %332
%334 = fsub double %330, %333
%335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %334, double* %335
%336 = load double*, double** %11
%337 = getelementptr inbounds double, double* %336, i64 2
%338 = load double, double* %337
%339 = load double*, double** %10
%340 = getelementptr inbounds double, double* %339, i64 2
%341 = load double, double* %340
%342 = fsub double %338, %341
%343 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %342, double* %343
%344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%345 = load double, double* %344
%346 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%347 = load double, double* %346
%348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%349 = load double, double* %348
%350 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%351 = load double, double* %350
%352 = fmul double %349, %351
%353 = call double @llvm.fmuladd.f64(double %345, double %347, double %352)
%354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%355 = load double, double* %354
%356 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%357 = load double, double* %356
%358 = call double @llvm.fmuladd.f64(double %355, double %357, double %353)
store double %358, double* %17
%359 = load double*, double** %12
%360 = getelementptr inbounds double, double* %359, i64 0
%361 = load double, double* %360
%362 = load double*, double** %10
%363 = getelementptr inbounds double, double* %362, i64 0
%364 = load double, double* %363
%365 = fsub double %361, %364
%366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %365, double* %366
%367 = load double*, double** %12
%368 = getelementptr inbounds double, double* %367, i64 1
%369 = load double, double* %368
%370 = load double*, double** %10
%371 = getelementptr inbounds double, double* %370, i64 1
%372 = load double, double* %371
%373 = fsub double %369, %372
%374 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %373, double* %374
%375 = load double*, double** %12
%376 = getelementptr inbounds double, double* %375, i64 2
%377 = load double, double* %376
%378 = load double*, double** %10
%379 = getelementptr inbounds double, double* %378, i64 2
%380 = load double, double* %379
%381 = fsub double %377, %380
%382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %381, double* %382
%383 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%384 = load double, double* %383
%385 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%386 = load double, double* %385
%387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%388 = load double, double* %387
%389 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%390 = load double, double* %389
%391 = fmul double %388, %390
%392 = call double @llvm.fmuladd.f64(double %384, double %386, double %391)
%393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%394 = load double, double* %393
%395 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%396 = load double, double* %395
%397 = call double @llvm.fmuladd.f64(double %394, double %396, double %392)
store double %397, double* %18
%398 = load double*, double** %13
%399 = getelementptr inbounds double, double* %398, i64 0
%400 = load double, double* %399
%401 = load double*, double** %10
%402 = getelementptr inbounds double, double* %401, i64 0
%403 = load double, double* %402
%404 = fsub double %400, %403
%405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %404, double* %405
%406 = load double*, double** %13
%407 = getelementptr inbounds double, double* %406, i64 1
%408 = load double, double* %407
%409 = load double*, double** %10
%410 = getelementptr inbounds double, double* %409, i64 1
%411 = load double, double* %410
%412 = fsub double %408, %411
%413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %412, double* %413
%414 = load double*, double** %13
%415 = getelementptr inbounds double, double* %414, i64 2
%416 = load double, double* %415
%417 = load double*, double** %10
%418 = getelementptr inbounds double, double* %417, i64 2
%419 = load double, double* %418
%420 = fsub double %416, %419
%421 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %420, double* %421
%422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%423 = load double, double* %422
%424 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%425 = load double, double* %424
%426 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%427 = load double, double* %426
%428 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%429 = load double, double* %428
%430 = fmul double %427, %429
%431 = call double @llvm.fmuladd.f64(double %423, double %425, double %430)
%432 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%433 = load double, double* %432
%434 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%435 = load double, double* %434
%436 = call double @llvm.fmuladd.f64(double %433, double %435, double %431)
store double %436, double* %19
%437 = load double, double* %17
%438 = load double, double* %18
%439 = fmul double %437, %438
%440 = fcmp ogt double %439, 0.000000e+00
br i1 %440, label %441, label %447
441: ; preds = %235
%442 = load double, double* %17
%443 = load double, double* %19
%444 = fmul double %442, %443
%445 = fcmp ogt double %444, 0.000000e+00
br i1 %445, label %446, label %447
446: ; preds = %441
store i32 0, i32* %7
br label %37464
447: ; preds = %441, %235
%448 = load double, double* %14
%449 = fcmp ogt double %448, 0.000000e+00
br i1 %449, label %450, label %9699
450: ; preds = %447
%451 = load double, double* %15
%452 = fcmp ogt double %451, 0.000000e+00
br i1 %452, label %453, label %3534
453: ; preds = %450
%454 = load double, double* %17
%455 = fcmp ogt double %454, 0.000000e+00
br i1 %455, label %456, label %1221
456: ; preds = %453
%457 = load double, double* %19
%458 = fcmp ogt double %457, 0.000000e+00
br i1 %458, label %459, label %712
459: ; preds = %456
%460 = load double*, double** %12
%461 = getelementptr inbounds double, double* %460, i64 0
%462 = load double, double* %461
%463 = load double*, double** %9
%464 = getelementptr inbounds double, double* %463, i64 0
%465 = load double, double* %464
%466 = fsub double %462, %465
%467 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %466, double* %467
%468 = load double*, double** %12
%469 = getelementptr inbounds double, double* %468, i64 1
%470 = load double, double* %469
%471 = load double*, double** %9
%472 = getelementptr inbounds double, double* %471, i64 1
%473 = load double, double* %472
%474 = fsub double %470, %473
%475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %474, double* %475
%476 = load double*, double** %12
%477 = getelementptr inbounds double, double* %476, i64 2
%478 = load double, double* %477
%479 = load double*, double** %9
%480 = getelementptr inbounds double, double* %479, i64 2
%481 = load double, double* %480
%482 = fsub double %478, %481
%483 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %482, double* %483
%484 = load double*, double** %10
%485 = getelementptr inbounds double, double* %484, i64 0
%486 = load double, double* %485
%487 = load double*, double** %9
%488 = getelementptr inbounds double, double* %487, i64 0
%489 = load double, double* %488
%490 = fsub double %486, %489
%491 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %490, double* %491
%492 = load double*, double** %10
%493 = getelementptr inbounds double, double* %492, i64 1
%494 = load double, double* %493
%495 = load double*, double** %9
%496 = getelementptr inbounds double, double* %495, i64 1
%497 = load double, double* %496
%498 = fsub double %494, %497
%499 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %498, double* %499
%500 = load double*, double** %10
%501 = getelementptr inbounds double, double* %500, i64 2
%502 = load double, double* %501
%503 = load double*, double** %9
%504 = getelementptr inbounds double, double* %503, i64 2
%505 = load double, double* %504
%506 = fsub double %502, %505
%507 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %506, double* %507
%508 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%509 = load double, double* %508
%510 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%511 = load double, double* %510
%512 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%513 = load double, double* %512
%514 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%515 = load double, double* %514
%516 = fmul double %513, %515
%517 = fneg double %516
%518 = call double @llvm.fmuladd.f64(double %509, double %511, double %517)
%519 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %518, double* %519
%520 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%521 = load double, double* %520
%522 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%523 = load double, double* %522
%524 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%525 = load double, double* %524
%526 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%527 = load double, double* %526
%528 = fmul double %525, %527
%529 = fneg double %528
%530 = call double @llvm.fmuladd.f64(double %521, double %523, double %529)
%531 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %530, double* %531
%532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%533 = load double, double* %532
%534 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%535 = load double, double* %534
%536 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%537 = load double, double* %536
%538 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%539 = load double, double* %538
%540 = fmul double %537, %539
%541 = fneg double %540
%542 = call double @llvm.fmuladd.f64(double %533, double %535, double %541)
%543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %542, double* %543
%544 = load double*, double** %11
%545 = getelementptr inbounds double, double* %544, i64 0
%546 = load double, double* %545
%547 = load double*, double** %9
%548 = getelementptr inbounds double, double* %547, i64 0
%549 = load double, double* %548
%550 = fsub double %546, %549
%551 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %550, double* %551
%552 = load double*, double** %11
%553 = getelementptr inbounds double, double* %552, i64 1
%554 = load double, double* %553
%555 = load double*, double** %9
%556 = getelementptr inbounds double, double* %555, i64 1
%557 = load double, double* %556
%558 = fsub double %554, %557
%559 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %558, double* %559
%560 = load double*, double** %11
%561 = getelementptr inbounds double, double* %560, i64 2
%562 = load double, double* %561
%563 = load double*, double** %9
%564 = getelementptr inbounds double, double* %563, i64 2
%565 = load double, double* %564
%566 = fsub double %562, %565
%567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %566, double* %567
%568 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%569 = load double, double* %568
%570 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%571 = load double, double* %570
%572 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%573 = load double, double* %572
%574 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%575 = load double, double* %574
%576 = fmul double %573, %575
%577 = call double @llvm.fmuladd.f64(double %569, double %571, double %576)
%578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%579 = load double, double* %578
%580 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%581 = load double, double* %580
%582 = call double @llvm.fmuladd.f64(double %579, double %581, double %577)
%583 = fcmp ogt double %582, 0.000000e+00
br i1 %583, label %584, label %585
584: ; preds = %459
store i32 0, i32* %7
br label %37464
585: ; preds = %459
%586 = load double*, double** %12
%587 = getelementptr inbounds double, double* %586, i64 0
%588 = load double, double* %587
%589 = load double*, double** %10
%590 = getelementptr inbounds double, double* %589, i64 0
%591 = load double, double* %590
%592 = fsub double %588, %591
%593 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %592, double* %593
%594 = load double*, double** %12
%595 = getelementptr inbounds double, double* %594, i64 1
%596 = load double, double* %595
%597 = load double*, double** %10
%598 = getelementptr inbounds double, double* %597, i64 1
%599 = load double, double* %598
%600 = fsub double %596, %599
%601 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %600, double* %601
%602 = load double*, double** %12
%603 = getelementptr inbounds double, double* %602, i64 2
%604 = load double, double* %603
%605 = load double*, double** %10
%606 = getelementptr inbounds double, double* %605, i64 2
%607 = load double, double* %606
%608 = fsub double %604, %607
%609 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %608, double* %609
%610 = load double*, double** %8
%611 = getelementptr inbounds double, double* %610, i64 0
%612 = load double, double* %611
%613 = load double*, double** %10
%614 = getelementptr inbounds double, double* %613, i64 0
%615 = load double, double* %614
%616 = fsub double %612, %615
%617 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %616, double* %617
%618 = load double*, double** %8
%619 = getelementptr inbounds double, double* %618, i64 1
%620 = load double, double* %619
%621 = load double*, double** %10
%622 = getelementptr inbounds double, double* %621, i64 1
%623 = load double, double* %622
%624 = fsub double %620, %623
%625 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %624, double* %625
%626 = load double*, double** %8
%627 = getelementptr inbounds double, double* %626, i64 2
%628 = load double, double* %627
%629 = load double*, double** %10
%630 = getelementptr inbounds double, double* %629, i64 2
%631 = load double, double* %630
%632 = fsub double %628, %631
%633 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %632, double* %633
%634 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%635 = load double, double* %634
%636 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%637 = load double, double* %636
%638 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%639 = load double, double* %638
%640 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%641 = load double, double* %640
%642 = fmul double %639, %641
%643 = fneg double %642
%644 = call double @llvm.fmuladd.f64(double %635, double %637, double %643)
%645 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %644, double* %645
%646 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%647 = load double, double* %646
%648 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%649 = load double, double* %648
%650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%651 = load double, double* %650
%652 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%653 = load double, double* %652
%654 = fmul double %651, %653
%655 = fneg double %654
%656 = call double @llvm.fmuladd.f64(double %647, double %649, double %655)
%657 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %656, double* %657
%658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%659 = load double, double* %658
%660 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%661 = load double, double* %660
%662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%663 = load double, double* %662
%664 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%665 = load double, double* %664
%666 = fmul double %663, %665
%667 = fneg double %666
%668 = call double @llvm.fmuladd.f64(double %659, double %661, double %667)
%669 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %668, double* %669
%670 = load double*, double** %13
%671 = getelementptr inbounds double, double* %670, i64 0
%672 = load double, double* %671
%673 = load double*, double** %10
%674 = getelementptr inbounds double, double* %673, i64 0
%675 = load double, double* %674
%676 = fsub double %672, %675
%677 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %676, double* %677
%678 = load double*, double** %13
%679 = getelementptr inbounds double, double* %678, i64 1
%680 = load double, double* %679
%681 = load double*, double** %10
%682 = getelementptr inbounds double, double* %681, i64 1
%683 = load double, double* %682
%684 = fsub double %680, %683
%685 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %684, double* %685
%686 = load double*, double** %13
%687 = getelementptr inbounds double, double* %686, i64 2
%688 = load double, double* %687
%689 = load double*, double** %10
%690 = getelementptr inbounds double, double* %689, i64 2
%691 = load double, double* %690
%692 = fsub double %688, %691
%693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %692, double* %693
%694 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%695 = load double, double* %694
%696 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%697 = load double, double* %696
%698 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%699 = load double, double* %698
%700 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%701 = load double, double* %700
%702 = fmul double %699, %701
%703 = call double @llvm.fmuladd.f64(double %695, double %697, double %702)
%704 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%705 = load double, double* %704
%706 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%707 = load double, double* %706
%708 = call double @llvm.fmuladd.f64(double %705, double %707, double %703)
%709 = fcmp ogt double %708, 0.000000e+00
br i1 %709, label %710, label %711
710: ; preds = %585
store i32 0, i32* %7
br label %37464
711: ; preds = %585
store i32 1, i32* %7
br label %37464
712: ; preds = %456
%713 = load double, double* %18
%714 = fcmp ogt double %713, 0.000000e+00
br i1 %714, label %715, label %968
715: ; preds = %712
%716 = load double*, double** %13
%717 = getelementptr inbounds double, double* %716, i64 0
%718 = load double, double* %717
%719 = load double*, double** %9
%720 = getelementptr inbounds double, double* %719, i64 0
%721 = load double, double* %720
%722 = fsub double %718, %721
%723 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %722, double* %723
%724 = load double*, double** %13
%725 = getelementptr inbounds double, double* %724, i64 1
%726 = load double, double* %725
%727 = load double*, double** %9
%728 = getelementptr inbounds double, double* %727, i64 1
%729 = load double, double* %728
%730 = fsub double %726, %729
%731 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %730, double* %731
%732 = load double*, double** %13
%733 = getelementptr inbounds double, double* %732, i64 2
%734 = load double, double* %733
%735 = load double*, double** %9
%736 = getelementptr inbounds double, double* %735, i64 2
%737 = load double, double* %736
%738 = fsub double %734, %737
%739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %738, double* %739
%740 = load double*, double** %10
%741 = getelementptr inbounds double, double* %740, i64 0
%742 = load double, double* %741
%743 = load double*, double** %9
%744 = getelementptr inbounds double, double* %743, i64 0
%745 = load double, double* %744
%746 = fsub double %742, %745
%747 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %746, double* %747
%748 = load double*, double** %10
%749 = getelementptr inbounds double, double* %748, i64 1
%750 = load double, double* %749
%751 = load double*, double** %9
%752 = getelementptr inbounds double, double* %751, i64 1
%753 = load double, double* %752
%754 = fsub double %750, %753
%755 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %754, double* %755
%756 = load double*, double** %10
%757 = getelementptr inbounds double, double* %756, i64 2
%758 = load double, double* %757
%759 = load double*, double** %9
%760 = getelementptr inbounds double, double* %759, i64 2
%761 = load double, double* %760
%762 = fsub double %758, %761
%763 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %762, double* %763
%764 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%765 = load double, double* %764
%766 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%767 = load double, double* %766
%768 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%769 = load double, double* %768
%770 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%771 = load double, double* %770
%772 = fmul double %769, %771
%773 = fneg double %772
%774 = call double @llvm.fmuladd.f64(double %765, double %767, double %773)
%775 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %774, double* %775
%776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%777 = load double, double* %776
%778 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%779 = load double, double* %778
%780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%781 = load double, double* %780
%782 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%783 = load double, double* %782
%784 = fmul double %781, %783
%785 = fneg double %784
%786 = call double @llvm.fmuladd.f64(double %777, double %779, double %785)
%787 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %786, double* %787
%788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%789 = load double, double* %788
%790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%791 = load double, double* %790
%792 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%793 = load double, double* %792
%794 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%795 = load double, double* %794
%796 = fmul double %793, %795
%797 = fneg double %796
%798 = call double @llvm.fmuladd.f64(double %789, double %791, double %797)
%799 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %798, double* %799
%800 = load double*, double** %12
%801 = getelementptr inbounds double, double* %800, i64 0
%802 = load double, double* %801
%803 = load double*, double** %9
%804 = getelementptr inbounds double, double* %803, i64 0
%805 = load double, double* %804
%806 = fsub double %802, %805
%807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %806, double* %807
%808 = load double*, double** %12
%809 = getelementptr inbounds double, double* %808, i64 1
%810 = load double, double* %809
%811 = load double*, double** %9
%812 = getelementptr inbounds double, double* %811, i64 1
%813 = load double, double* %812
%814 = fsub double %810, %813
%815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %814, double* %815
%816 = load double*, double** %12
%817 = getelementptr inbounds double, double* %816, i64 2
%818 = load double, double* %817
%819 = load double*, double** %9
%820 = getelementptr inbounds double, double* %819, i64 2
%821 = load double, double* %820
%822 = fsub double %818, %821
%823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %822, double* %823
%824 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%825 = load double, double* %824
%826 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%827 = load double, double* %826
%828 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%829 = load double, double* %828
%830 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%831 = load double, double* %830
%832 = fmul double %829, %831
%833 = call double @llvm.fmuladd.f64(double %825, double %827, double %832)
%834 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%835 = load double, double* %834
%836 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%837 = load double, double* %836
%838 = call double @llvm.fmuladd.f64(double %835, double %837, double %833)
%839 = fcmp ogt double %838, 0.000000e+00
br i1 %839, label %840, label %841
840: ; preds = %715
store i32 0, i32* %7
br label %37464
841: ; preds = %715
%842 = load double*, double** %13
%843 = getelementptr inbounds double, double* %842, i64 0
%844 = load double, double* %843
%845 = load double*, double** %10
%846 = getelementptr inbounds double, double* %845, i64 0
%847 = load double, double* %846
%848 = fsub double %844, %847
%849 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %848, double* %849
%850 = load double*, double** %13
%851 = getelementptr inbounds double, double* %850, i64 1
%852 = load double, double* %851
%853 = load double*, double** %10
%854 = getelementptr inbounds double, double* %853, i64 1
%855 = load double, double* %854
%856 = fsub double %852, %855
%857 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %856, double* %857
%858 = load double*, double** %13
%859 = getelementptr inbounds double, double* %858, i64 2
%860 = load double, double* %859
%861 = load double*, double** %10
%862 = getelementptr inbounds double, double* %861, i64 2
%863 = load double, double* %862
%864 = fsub double %860, %863
%865 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %864, double* %865
%866 = load double*, double** %8
%867 = getelementptr inbounds double, double* %866, i64 0
%868 = load double, double* %867
%869 = load double*, double** %10
%870 = getelementptr inbounds double, double* %869, i64 0
%871 = load double, double* %870
%872 = fsub double %868, %871
%873 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %872, double* %873
%874 = load double*, double** %8
%875 = getelementptr inbounds double, double* %874, i64 1
%876 = load double, double* %875
%877 = load double*, double** %10
%878 = getelementptr inbounds double, double* %877, i64 1
%879 = load double, double* %878
%880 = fsub double %876, %879
%881 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %880, double* %881
%882 = load double*, double** %8
%883 = getelementptr inbounds double, double* %882, i64 2
%884 = load double, double* %883
%885 = load double*, double** %10
%886 = getelementptr inbounds double, double* %885, i64 2
%887 = load double, double* %886
%888 = fsub double %884, %887
%889 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %888, double* %889
%890 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%891 = load double, double* %890
%892 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%893 = load double, double* %892
%894 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%895 = load double, double* %894
%896 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%897 = load double, double* %896
%898 = fmul double %895, %897
%899 = fneg double %898
%900 = call double @llvm.fmuladd.f64(double %891, double %893, double %899)
%901 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %900, double* %901
%902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%903 = load double, double* %902
%904 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%905 = load double, double* %904
%906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%907 = load double, double* %906
%908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%909 = load double, double* %908
%910 = fmul double %907, %909
%911 = fneg double %910
%912 = call double @llvm.fmuladd.f64(double %903, double %905, double %911)
%913 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %912, double* %913
%914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%915 = load double, double* %914
%916 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%917 = load double, double* %916
%918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%919 = load double, double* %918
%920 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%921 = load double, double* %920
%922 = fmul double %919, %921
%923 = fneg double %922
%924 = call double @llvm.fmuladd.f64(double %915, double %917, double %923)
%925 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %924, double* %925
%926 = load double*, double** %11
%927 = getelementptr inbounds double, double* %926, i64 0
%928 = load double, double* %927
%929 = load double*, double** %10
%930 = getelementptr inbounds double, double* %929, i64 0
%931 = load double, double* %930
%932 = fsub double %928, %931
%933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %932, double* %933
%934 = load double*, double** %11
%935 = getelementptr inbounds double, double* %934, i64 1
%936 = load double, double* %935
%937 = load double*, double** %10
%938 = getelementptr inbounds double, double* %937, i64 1
%939 = load double, double* %938
%940 = fsub double %936, %939
%941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %940, double* %941
%942 = load double*, double** %11
%943 = getelementptr inbounds double, double* %942, i64 2
%944 = load double, double* %943
%945 = load double*, double** %10
%946 = getelementptr inbounds double, double* %945, i64 2
%947 = load double, double* %946
%948 = fsub double %944, %947
%949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %948, double* %949
%950 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%951 = load double, double* %950
%952 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%953 = load double, double* %952
%954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%955 = load double, double* %954
%956 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%957 = load double, double* %956
%958 = fmul double %955, %957
%959 = call double @llvm.fmuladd.f64(double %951, double %953, double %958)
%960 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%961 = load double, double* %960
%962 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%963 = load double, double* %962
%964 = call double @llvm.fmuladd.f64(double %961, double %963, double %959)
%965 = fcmp ogt double %964, 0.000000e+00
br i1 %965, label %966, label %967
966: ; preds = %841
store i32 0, i32* %7
br label %37464
967: ; preds = %841
store i32 1, i32* %7
br label %37464
968: ; preds = %712
%969 = load double*, double** %11
%970 = getelementptr inbounds double, double* %969, i64 0
%971 = load double, double* %970
%972 = load double*, double** %8
%973 = getelementptr inbounds double, double* %972, i64 0
%974 = load double, double* %973
%975 = fsub double %971, %974
%976 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %975, double* %976
%977 = load double*, double** %11
%978 = getelementptr inbounds double, double* %977, i64 1
%979 = load double, double* %978
%980 = load double*, double** %8
%981 = getelementptr inbounds double, double* %980, i64 1
%982 = load double, double* %981
%983 = fsub double %979, %982
%984 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %983, double* %984
%985 = load double*, double** %11
%986 = getelementptr inbounds double, double* %985, i64 2
%987 = load double, double* %986
%988 = load double*, double** %8
%989 = getelementptr inbounds double, double* %988, i64 2
%990 = load double, double* %989
%991 = fsub double %987, %990
%992 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %991, double* %992
%993 = load double*, double** %10
%994 = getelementptr inbounds double, double* %993, i64 0
%995 = load double, double* %994
%996 = load double*, double** %8
%997 = getelementptr inbounds double, double* %996, i64 0
%998 = load double, double* %997
%999 = fsub double %995, %998
%1000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %999, double* %1000
%1001 = load double*, double** %10
%1002 = getelementptr inbounds double, double* %1001, i64 1
%1003 = load double, double* %1002
%1004 = load double*, double** %8
%1005 = getelementptr inbounds double, double* %1004, i64 1
%1006 = load double, double* %1005
%1007 = fsub double %1003, %1006
%1008 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1007, double* %1008
%1009 = load double*, double** %10
%1010 = getelementptr inbounds double, double* %1009, i64 2
%1011 = load double, double* %1010
%1012 = load double*, double** %8
%1013 = getelementptr inbounds double, double* %1012, i64 2
%1014 = load double, double* %1013
%1015 = fsub double %1011, %1014
%1016 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1015, double* %1016
%1017 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1018 = load double, double* %1017
%1019 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1020 = load double, double* %1019
%1021 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1022 = load double, double* %1021
%1023 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1024 = load double, double* %1023
%1025 = fmul double %1022, %1024
%1026 = fneg double %1025
%1027 = call double @llvm.fmuladd.f64(double %1018, double %1020, double %1026)
%1028 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1027, double* %1028
%1029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1030 = load double, double* %1029
%1031 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1032 = load double, double* %1031
%1033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1034 = load double, double* %1033
%1035 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1036 = load double, double* %1035
%1037 = fmul double %1034, %1036
%1038 = fneg double %1037
%1039 = call double @llvm.fmuladd.f64(double %1030, double %1032, double %1038)
%1040 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1039, double* %1040
%1041 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1042 = load double, double* %1041
%1043 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1044 = load double, double* %1043
%1045 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1046 = load double, double* %1045
%1047 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1048 = load double, double* %1047
%1049 = fmul double %1046, %1048
%1050 = fneg double %1049
%1051 = call double @llvm.fmuladd.f64(double %1042, double %1044, double %1050)
%1052 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1051, double* %1052
%1053 = load double*, double** %13
%1054 = getelementptr inbounds double, double* %1053, i64 0
%1055 = load double, double* %1054
%1056 = load double*, double** %8
%1057 = getelementptr inbounds double, double* %1056, i64 0
%1058 = load double, double* %1057
%1059 = fsub double %1055, %1058
%1060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1059, double* %1060
%1061 = load double*, double** %13
%1062 = getelementptr inbounds double, double* %1061, i64 1
%1063 = load double, double* %1062
%1064 = load double*, double** %8
%1065 = getelementptr inbounds double, double* %1064, i64 1
%1066 = load double, double* %1065
%1067 = fsub double %1063, %1066
%1068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1067, double* %1068
%1069 = load double*, double** %13
%1070 = getelementptr inbounds double, double* %1069, i64 2
%1071 = load double, double* %1070
%1072 = load double*, double** %8
%1073 = getelementptr inbounds double, double* %1072, i64 2
%1074 = load double, double* %1073
%1075 = fsub double %1071, %1074
%1076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1075, double* %1076
%1077 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1078 = load double, double* %1077
%1079 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1080 = load double, double* %1079
%1081 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1082 = load double, double* %1081
%1083 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1084 = load double, double* %1083
%1085 = fmul double %1082, %1084
%1086 = call double @llvm.fmuladd.f64(double %1078, double %1080, double %1085)
%1087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1088 = load double, double* %1087
%1089 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1090 = load double, double* %1089
%1091 = call double @llvm.fmuladd.f64(double %1088, double %1090, double %1086)
%1092 = fcmp ogt double %1091, 0.000000e+00
br i1 %1092, label %1093, label %1094
1093: ; preds = %968
store i32 0, i32* %7
br label %37464
1094: ; preds = %968
%1095 = load double*, double** %11
%1096 = getelementptr inbounds double, double* %1095, i64 0
%1097 = load double, double* %1096
%1098 = load double*, double** %10
%1099 = getelementptr inbounds double, double* %1098, i64 0
%1100 = load double, double* %1099
%1101 = fsub double %1097, %1100
%1102 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1101, double* %1102
%1103 = load double*, double** %11
%1104 = getelementptr inbounds double, double* %1103, i64 1
%1105 = load double, double* %1104
%1106 = load double*, double** %10
%1107 = getelementptr inbounds double, double* %1106, i64 1
%1108 = load double, double* %1107
%1109 = fsub double %1105, %1108
%1110 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1109, double* %1110
%1111 = load double*, double** %11
%1112 = getelementptr inbounds double, double* %1111, i64 2
%1113 = load double, double* %1112
%1114 = load double*, double** %10
%1115 = getelementptr inbounds double, double* %1114, i64 2
%1116 = load double, double* %1115
%1117 = fsub double %1113, %1116
%1118 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1117, double* %1118
%1119 = load double*, double** %9
%1120 = getelementptr inbounds double, double* %1119, i64 0
%1121 = load double, double* %1120
%1122 = load double*, double** %10
%1123 = getelementptr inbounds double, double* %1122, i64 0
%1124 = load double, double* %1123
%1125 = fsub double %1121, %1124
%1126 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1125, double* %1126
%1127 = load double*, double** %9
%1128 = getelementptr inbounds double, double* %1127, i64 1
%1129 = load double, double* %1128
%1130 = load double*, double** %10
%1131 = getelementptr inbounds double, double* %1130, i64 1
%1132 = load double, double* %1131
%1133 = fsub double %1129, %1132
%1134 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1133, double* %1134
%1135 = load double*, double** %9
%1136 = getelementptr inbounds double, double* %1135, i64 2
%1137 = load double, double* %1136
%1138 = load double*, double** %10
%1139 = getelementptr inbounds double, double* %1138, i64 2
%1140 = load double, double* %1139
%1141 = fsub double %1137, %1140
%1142 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1141, double* %1142
%1143 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1144 = load double, double* %1143
%1145 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1146 = load double, double* %1145
%1147 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1148 = load double, double* %1147
%1149 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1150 = load double, double* %1149
%1151 = fmul double %1148, %1150
%1152 = fneg double %1151
%1153 = call double @llvm.fmuladd.f64(double %1144, double %1146, double %1152)
%1154 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1153, double* %1154
%1155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1156 = load double, double* %1155
%1157 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1158 = load double, double* %1157
%1159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1160 = load double, double* %1159
%1161 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1162 = load double, double* %1161
%1163 = fmul double %1160, %1162
%1164 = fneg double %1163
%1165 = call double @llvm.fmuladd.f64(double %1156, double %1158, double %1164)
%1166 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1165, double* %1166
%1167 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1168 = load double, double* %1167
%1169 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1170 = load double, double* %1169
%1171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1172 = load double, double* %1171
%1173 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1174 = load double, double* %1173
%1175 = fmul double %1172, %1174
%1176 = fneg double %1175
%1177 = call double @llvm.fmuladd.f64(double %1168, double %1170, double %1176)
%1178 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1177, double* %1178
%1179 = load double*, double** %12
%1180 = getelementptr inbounds double, double* %1179, i64 0
%1181 = load double, double* %1180
%1182 = load double*, double** %10
%1183 = getelementptr inbounds double, double* %1182, i64 0
%1184 = load double, double* %1183
%1185 = fsub double %1181, %1184
%1186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1185, double* %1186
%1187 = load double*, double** %12
%1188 = getelementptr inbounds double, double* %1187, i64 1
%1189 = load double, double* %1188
%1190 = load double*, double** %10
%1191 = getelementptr inbounds double, double* %1190, i64 1
%1192 = load double, double* %1191
%1193 = fsub double %1189, %1192
%1194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1193, double* %1194
%1195 = load double*, double** %12
%1196 = getelementptr inbounds double, double* %1195, i64 2
%1197 = load double, double* %1196
%1198 = load double*, double** %10
%1199 = getelementptr inbounds double, double* %1198, i64 2
%1200 = load double, double* %1199
%1201 = fsub double %1197, %1200
%1202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1201, double* %1202
%1203 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1204 = load double, double* %1203
%1205 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1206 = load double, double* %1205
%1207 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1208 = load double, double* %1207
%1209 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1210 = load double, double* %1209
%1211 = fmul double %1208, %1210
%1212 = call double @llvm.fmuladd.f64(double %1204, double %1206, double %1211)
%1213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1214 = load double, double* %1213
%1215 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1216 = load double, double* %1215
%1217 = call double @llvm.fmuladd.f64(double %1214, double %1216, double %1212)
%1218 = fcmp ogt double %1217, 0.000000e+00
br i1 %1218, label %1219, label %1220
1219: ; preds = %1094
store i32 0, i32* %7
br label %37464
1220: ; preds = %1094
store i32 1, i32* %7
br label %37464
1221: ; preds = %453
%1222 = load double, double* %17
%1223 = fcmp olt double %1222, 0.000000e+00
br i1 %1223, label %1224, label %1989
1224: ; preds = %1221
%1225 = load double, double* %19
%1226 = fcmp olt double %1225, 0.000000e+00
br i1 %1226, label %1227, label %1480
1227: ; preds = %1224
%1228 = load double*, double** %12
%1229 = getelementptr inbounds double, double* %1228, i64 0
%1230 = load double, double* %1229
%1231 = load double*, double** %8
%1232 = getelementptr inbounds double, double* %1231, i64 0
%1233 = load double, double* %1232
%1234 = fsub double %1230, %1233
%1235 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1234, double* %1235
%1236 = load double*, double** %12
%1237 = getelementptr inbounds double, double* %1236, i64 1
%1238 = load double, double* %1237
%1239 = load double*, double** %8
%1240 = getelementptr inbounds double, double* %1239, i64 1
%1241 = load double, double* %1240
%1242 = fsub double %1238, %1241
%1243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1242, double* %1243
%1244 = load double*, double** %12
%1245 = getelementptr inbounds double, double* %1244, i64 2
%1246 = load double, double* %1245
%1247 = load double*, double** %8
%1248 = getelementptr inbounds double, double* %1247, i64 2
%1249 = load double, double* %1248
%1250 = fsub double %1246, %1249
%1251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1250, double* %1251
%1252 = load double*, double** %10
%1253 = getelementptr inbounds double, double* %1252, i64 0
%1254 = load double, double* %1253
%1255 = load double*, double** %8
%1256 = getelementptr inbounds double, double* %1255, i64 0
%1257 = load double, double* %1256
%1258 = fsub double %1254, %1257
%1259 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1258, double* %1259
%1260 = load double*, double** %10
%1261 = getelementptr inbounds double, double* %1260, i64 1
%1262 = load double, double* %1261
%1263 = load double*, double** %8
%1264 = getelementptr inbounds double, double* %1263, i64 1
%1265 = load double, double* %1264
%1266 = fsub double %1262, %1265
%1267 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1266, double* %1267
%1268 = load double*, double** %10
%1269 = getelementptr inbounds double, double* %1268, i64 2
%1270 = load double, double* %1269
%1271 = load double*, double** %8
%1272 = getelementptr inbounds double, double* %1271, i64 2
%1273 = load double, double* %1272
%1274 = fsub double %1270, %1273
%1275 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1274, double* %1275
%1276 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1277 = load double, double* %1276
%1278 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1279 = load double, double* %1278
%1280 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1281 = load double, double* %1280
%1282 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1283 = load double, double* %1282
%1284 = fmul double %1281, %1283
%1285 = fneg double %1284
%1286 = call double @llvm.fmuladd.f64(double %1277, double %1279, double %1285)
%1287 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1286, double* %1287
%1288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1289 = load double, double* %1288
%1290 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1291 = load double, double* %1290
%1292 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1293 = load double, double* %1292
%1294 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1295 = load double, double* %1294
%1296 = fmul double %1293, %1295
%1297 = fneg double %1296
%1298 = call double @llvm.fmuladd.f64(double %1289, double %1291, double %1297)
%1299 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1298, double* %1299
%1300 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1301 = load double, double* %1300
%1302 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1303 = load double, double* %1302
%1304 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1305 = load double, double* %1304
%1306 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1307 = load double, double* %1306
%1308 = fmul double %1305, %1307
%1309 = fneg double %1308
%1310 = call double @llvm.fmuladd.f64(double %1301, double %1303, double %1309)
%1311 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1310, double* %1311
%1312 = load double*, double** %11
%1313 = getelementptr inbounds double, double* %1312, i64 0
%1314 = load double, double* %1313
%1315 = load double*, double** %8
%1316 = getelementptr inbounds double, double* %1315, i64 0
%1317 = load double, double* %1316
%1318 = fsub double %1314, %1317
%1319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1318, double* %1319
%1320 = load double*, double** %11
%1321 = getelementptr inbounds double, double* %1320, i64 1
%1322 = load double, double* %1321
%1323 = load double*, double** %8
%1324 = getelementptr inbounds double, double* %1323, i64 1
%1325 = load double, double* %1324
%1326 = fsub double %1322, %1325
%1327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1326, double* %1327
%1328 = load double*, double** %11
%1329 = getelementptr inbounds double, double* %1328, i64 2
%1330 = load double, double* %1329
%1331 = load double*, double** %8
%1332 = getelementptr inbounds double, double* %1331, i64 2
%1333 = load double, double* %1332
%1334 = fsub double %1330, %1333
%1335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1334, double* %1335
%1336 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1337 = load double, double* %1336
%1338 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1339 = load double, double* %1338
%1340 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1341 = load double, double* %1340
%1342 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1343 = load double, double* %1342
%1344 = fmul double %1341, %1343
%1345 = call double @llvm.fmuladd.f64(double %1337, double %1339, double %1344)
%1346 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1347 = load double, double* %1346
%1348 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1349 = load double, double* %1348
%1350 = call double @llvm.fmuladd.f64(double %1347, double %1349, double %1345)
%1351 = fcmp ogt double %1350, 0.000000e+00
br i1 %1351, label %1352, label %1353
1352: ; preds = %1227
store i32 0, i32* %7
br label %37464
1353: ; preds = %1227
%1354 = load double*, double** %12
%1355 = getelementptr inbounds double, double* %1354, i64 0
%1356 = load double, double* %1355
%1357 = load double*, double** %10
%1358 = getelementptr inbounds double, double* %1357, i64 0
%1359 = load double, double* %1358
%1360 = fsub double %1356, %1359
%1361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1360, double* %1361
%1362 = load double*, double** %12
%1363 = getelementptr inbounds double, double* %1362, i64 1
%1364 = load double, double* %1363
%1365 = load double*, double** %10
%1366 = getelementptr inbounds double, double* %1365, i64 1
%1367 = load double, double* %1366
%1368 = fsub double %1364, %1367
%1369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1368, double* %1369
%1370 = load double*, double** %12
%1371 = getelementptr inbounds double, double* %1370, i64 2
%1372 = load double, double* %1371
%1373 = load double*, double** %10
%1374 = getelementptr inbounds double, double* %1373, i64 2
%1375 = load double, double* %1374
%1376 = fsub double %1372, %1375
%1377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1376, double* %1377
%1378 = load double*, double** %9
%1379 = getelementptr inbounds double, double* %1378, i64 0
%1380 = load double, double* %1379
%1381 = load double*, double** %10
%1382 = getelementptr inbounds double, double* %1381, i64 0
%1383 = load double, double* %1382
%1384 = fsub double %1380, %1383
%1385 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1384, double* %1385
%1386 = load double*, double** %9
%1387 = getelementptr inbounds double, double* %1386, i64 1
%1388 = load double, double* %1387
%1389 = load double*, double** %10
%1390 = getelementptr inbounds double, double* %1389, i64 1
%1391 = load double, double* %1390
%1392 = fsub double %1388, %1391
%1393 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1392, double* %1393
%1394 = load double*, double** %9
%1395 = getelementptr inbounds double, double* %1394, i64 2
%1396 = load double, double* %1395
%1397 = load double*, double** %10
%1398 = getelementptr inbounds double, double* %1397, i64 2
%1399 = load double, double* %1398
%1400 = fsub double %1396, %1399
%1401 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1400, double* %1401
%1402 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1403 = load double, double* %1402
%1404 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1405 = load double, double* %1404
%1406 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1407 = load double, double* %1406
%1408 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1409 = load double, double* %1408
%1410 = fmul double %1407, %1409
%1411 = fneg double %1410
%1412 = call double @llvm.fmuladd.f64(double %1403, double %1405, double %1411)
%1413 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1412, double* %1413
%1414 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1415 = load double, double* %1414
%1416 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1417 = load double, double* %1416
%1418 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1419 = load double, double* %1418
%1420 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1421 = load double, double* %1420
%1422 = fmul double %1419, %1421
%1423 = fneg double %1422
%1424 = call double @llvm.fmuladd.f64(double %1415, double %1417, double %1423)
%1425 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1424, double* %1425
%1426 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1427 = load double, double* %1426
%1428 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1429 = load double, double* %1428
%1430 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1431 = load double, double* %1430
%1432 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1433 = load double, double* %1432
%1434 = fmul double %1431, %1433
%1435 = fneg double %1434
%1436 = call double @llvm.fmuladd.f64(double %1427, double %1429, double %1435)
%1437 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1436, double* %1437
%1438 = load double*, double** %13
%1439 = getelementptr inbounds double, double* %1438, i64 0
%1440 = load double, double* %1439
%1441 = load double*, double** %10
%1442 = getelementptr inbounds double, double* %1441, i64 0
%1443 = load double, double* %1442
%1444 = fsub double %1440, %1443
%1445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1444, double* %1445
%1446 = load double*, double** %13
%1447 = getelementptr inbounds double, double* %1446, i64 1
%1448 = load double, double* %1447
%1449 = load double*, double** %10
%1450 = getelementptr inbounds double, double* %1449, i64 1
%1451 = load double, double* %1450
%1452 = fsub double %1448, %1451
%1453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1452, double* %1453
%1454 = load double*, double** %13
%1455 = getelementptr inbounds double, double* %1454, i64 2
%1456 = load double, double* %1455
%1457 = load double*, double** %10
%1458 = getelementptr inbounds double, double* %1457, i64 2
%1459 = load double, double* %1458
%1460 = fsub double %1456, %1459
%1461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1460, double* %1461
%1462 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1463 = load double, double* %1462
%1464 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1465 = load double, double* %1464
%1466 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1467 = load double, double* %1466
%1468 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1469 = load double, double* %1468
%1470 = fmul double %1467, %1469
%1471 = call double @llvm.fmuladd.f64(double %1463, double %1465, double %1470)
%1472 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1473 = load double, double* %1472
%1474 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1475 = load double, double* %1474
%1476 = call double @llvm.fmuladd.f64(double %1473, double %1475, double %1471)
%1477 = fcmp ogt double %1476, 0.000000e+00
br i1 %1477, label %1478, label %1479
1478: ; preds = %1353
store i32 0, i32* %7
br label %37464
1479: ; preds = %1353
store i32 1, i32* %7
br label %37464
1480: ; preds = %1224
%1481 = load double, double* %18
%1482 = fcmp olt double %1481, 0.000000e+00
br i1 %1482, label %1483, label %1736
1483: ; preds = %1480
%1484 = load double*, double** %13
%1485 = getelementptr inbounds double, double* %1484, i64 0
%1486 = load double, double* %1485
%1487 = load double*, double** %8
%1488 = getelementptr inbounds double, double* %1487, i64 0
%1489 = load double, double* %1488
%1490 = fsub double %1486, %1489
%1491 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1490, double* %1491
%1492 = load double*, double** %13
%1493 = getelementptr inbounds double, double* %1492, i64 1
%1494 = load double, double* %1493
%1495 = load double*, double** %8
%1496 = getelementptr inbounds double, double* %1495, i64 1
%1497 = load double, double* %1496
%1498 = fsub double %1494, %1497
%1499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1498, double* %1499
%1500 = load double*, double** %13
%1501 = getelementptr inbounds double, double* %1500, i64 2
%1502 = load double, double* %1501
%1503 = load double*, double** %8
%1504 = getelementptr inbounds double, double* %1503, i64 2
%1505 = load double, double* %1504
%1506 = fsub double %1502, %1505
%1507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1506, double* %1507
%1508 = load double*, double** %10
%1509 = getelementptr inbounds double, double* %1508, i64 0
%1510 = load double, double* %1509
%1511 = load double*, double** %8
%1512 = getelementptr inbounds double, double* %1511, i64 0
%1513 = load double, double* %1512
%1514 = fsub double %1510, %1513
%1515 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1514, double* %1515
%1516 = load double*, double** %10
%1517 = getelementptr inbounds double, double* %1516, i64 1
%1518 = load double, double* %1517
%1519 = load double*, double** %8
%1520 = getelementptr inbounds double, double* %1519, i64 1
%1521 = load double, double* %1520
%1522 = fsub double %1518, %1521
%1523 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1522, double* %1523
%1524 = load double*, double** %10
%1525 = getelementptr inbounds double, double* %1524, i64 2
%1526 = load double, double* %1525
%1527 = load double*, double** %8
%1528 = getelementptr inbounds double, double* %1527, i64 2
%1529 = load double, double* %1528
%1530 = fsub double %1526, %1529
%1531 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1530, double* %1531
%1532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1533 = load double, double* %1532
%1534 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1535 = load double, double* %1534
%1536 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1537 = load double, double* %1536
%1538 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1539 = load double, double* %1538
%1540 = fmul double %1537, %1539
%1541 = fneg double %1540
%1542 = call double @llvm.fmuladd.f64(double %1533, double %1535, double %1541)
%1543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1542, double* %1543
%1544 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1545 = load double, double* %1544
%1546 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1547 = load double, double* %1546
%1548 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1549 = load double, double* %1548
%1550 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1551 = load double, double* %1550
%1552 = fmul double %1549, %1551
%1553 = fneg double %1552
%1554 = call double @llvm.fmuladd.f64(double %1545, double %1547, double %1553)
%1555 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1554, double* %1555
%1556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1557 = load double, double* %1556
%1558 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1559 = load double, double* %1558
%1560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1561 = load double, double* %1560
%1562 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1563 = load double, double* %1562
%1564 = fmul double %1561, %1563
%1565 = fneg double %1564
%1566 = call double @llvm.fmuladd.f64(double %1557, double %1559, double %1565)
%1567 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1566, double* %1567
%1568 = load double*, double** %12
%1569 = getelementptr inbounds double, double* %1568, i64 0
%1570 = load double, double* %1569
%1571 = load double*, double** %8
%1572 = getelementptr inbounds double, double* %1571, i64 0
%1573 = load double, double* %1572
%1574 = fsub double %1570, %1573
%1575 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1574, double* %1575
%1576 = load double*, double** %12
%1577 = getelementptr inbounds double, double* %1576, i64 1
%1578 = load double, double* %1577
%1579 = load double*, double** %8
%1580 = getelementptr inbounds double, double* %1579, i64 1
%1581 = load double, double* %1580
%1582 = fsub double %1578, %1581
%1583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1582, double* %1583
%1584 = load double*, double** %12
%1585 = getelementptr inbounds double, double* %1584, i64 2
%1586 = load double, double* %1585
%1587 = load double*, double** %8
%1588 = getelementptr inbounds double, double* %1587, i64 2
%1589 = load double, double* %1588
%1590 = fsub double %1586, %1589
%1591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1590, double* %1591
%1592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1593 = load double, double* %1592
%1594 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1595 = load double, double* %1594
%1596 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1597 = load double, double* %1596
%1598 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1599 = load double, double* %1598
%1600 = fmul double %1597, %1599
%1601 = call double @llvm.fmuladd.f64(double %1593, double %1595, double %1600)
%1602 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1603 = load double, double* %1602
%1604 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1605 = load double, double* %1604
%1606 = call double @llvm.fmuladd.f64(double %1603, double %1605, double %1601)
%1607 = fcmp ogt double %1606, 0.000000e+00
br i1 %1607, label %1608, label %1609
1608: ; preds = %1483
store i32 0, i32* %7
br label %37464
1609: ; preds = %1483
%1610 = load double*, double** %13
%1611 = getelementptr inbounds double, double* %1610, i64 0
%1612 = load double, double* %1611
%1613 = load double*, double** %10
%1614 = getelementptr inbounds double, double* %1613, i64 0
%1615 = load double, double* %1614
%1616 = fsub double %1612, %1615
%1617 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1616, double* %1617
%1618 = load double*, double** %13
%1619 = getelementptr inbounds double, double* %1618, i64 1
%1620 = load double, double* %1619
%1621 = load double*, double** %10
%1622 = getelementptr inbounds double, double* %1621, i64 1
%1623 = load double, double* %1622
%1624 = fsub double %1620, %1623
%1625 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1624, double* %1625
%1626 = load double*, double** %13
%1627 = getelementptr inbounds double, double* %1626, i64 2
%1628 = load double, double* %1627
%1629 = load double*, double** %10
%1630 = getelementptr inbounds double, double* %1629, i64 2
%1631 = load double, double* %1630
%1632 = fsub double %1628, %1631
%1633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1632, double* %1633
%1634 = load double*, double** %9
%1635 = getelementptr inbounds double, double* %1634, i64 0
%1636 = load double, double* %1635
%1637 = load double*, double** %10
%1638 = getelementptr inbounds double, double* %1637, i64 0
%1639 = load double, double* %1638
%1640 = fsub double %1636, %1639
%1641 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1640, double* %1641
%1642 = load double*, double** %9
%1643 = getelementptr inbounds double, double* %1642, i64 1
%1644 = load double, double* %1643
%1645 = load double*, double** %10
%1646 = getelementptr inbounds double, double* %1645, i64 1
%1647 = load double, double* %1646
%1648 = fsub double %1644, %1647
%1649 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1648, double* %1649
%1650 = load double*, double** %9
%1651 = getelementptr inbounds double, double* %1650, i64 2
%1652 = load double, double* %1651
%1653 = load double*, double** %10
%1654 = getelementptr inbounds double, double* %1653, i64 2
%1655 = load double, double* %1654
%1656 = fsub double %1652, %1655
%1657 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1656, double* %1657
%1658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1659 = load double, double* %1658
%1660 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1661 = load double, double* %1660
%1662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1663 = load double, double* %1662
%1664 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1665 = load double, double* %1664
%1666 = fmul double %1663, %1665
%1667 = fneg double %1666
%1668 = call double @llvm.fmuladd.f64(double %1659, double %1661, double %1667)
%1669 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1668, double* %1669
%1670 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1671 = load double, double* %1670
%1672 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1673 = load double, double* %1672
%1674 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1675 = load double, double* %1674
%1676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1677 = load double, double* %1676
%1678 = fmul double %1675, %1677
%1679 = fneg double %1678
%1680 = call double @llvm.fmuladd.f64(double %1671, double %1673, double %1679)
%1681 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1680, double* %1681
%1682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1683 = load double, double* %1682
%1684 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1685 = load double, double* %1684
%1686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1687 = load double, double* %1686
%1688 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1689 = load double, double* %1688
%1690 = fmul double %1687, %1689
%1691 = fneg double %1690
%1692 = call double @llvm.fmuladd.f64(double %1683, double %1685, double %1691)
%1693 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1692, double* %1693
%1694 = load double*, double** %11
%1695 = getelementptr inbounds double, double* %1694, i64 0
%1696 = load double, double* %1695
%1697 = load double*, double** %10
%1698 = getelementptr inbounds double, double* %1697, i64 0
%1699 = load double, double* %1698
%1700 = fsub double %1696, %1699
%1701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1700, double* %1701
%1702 = load double*, double** %11
%1703 = getelementptr inbounds double, double* %1702, i64 1
%1704 = load double, double* %1703
%1705 = load double*, double** %10
%1706 = getelementptr inbounds double, double* %1705, i64 1
%1707 = load double, double* %1706
%1708 = fsub double %1704, %1707
%1709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1708, double* %1709
%1710 = load double*, double** %11
%1711 = getelementptr inbounds double, double* %1710, i64 2
%1712 = load double, double* %1711
%1713 = load double*, double** %10
%1714 = getelementptr inbounds double, double* %1713, i64 2
%1715 = load double, double* %1714
%1716 = fsub double %1712, %1715
%1717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1716, double* %1717
%1718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1719 = load double, double* %1718
%1720 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1721 = load double, double* %1720
%1722 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1723 = load double, double* %1722
%1724 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1725 = load double, double* %1724
%1726 = fmul double %1723, %1725
%1727 = call double @llvm.fmuladd.f64(double %1719, double %1721, double %1726)
%1728 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1729 = load double, double* %1728
%1730 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1731 = load double, double* %1730
%1732 = call double @llvm.fmuladd.f64(double %1729, double %1731, double %1727)
%1733 = fcmp ogt double %1732, 0.000000e+00
br i1 %1733, label %1734, label %1735
1734: ; preds = %1609
store i32 0, i32* %7
br label %37464
1735: ; preds = %1609
store i32 1, i32* %7
br label %37464
1736: ; preds = %1480
%1737 = load double*, double** %11
%1738 = getelementptr inbounds double, double* %1737, i64 0
%1739 = load double, double* %1738
%1740 = load double*, double** %9
%1741 = getelementptr inbounds double, double* %1740, i64 0
%1742 = load double, double* %1741
%1743 = fsub double %1739, %1742
%1744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1743, double* %1744
%1745 = load double*, double** %11
%1746 = getelementptr inbounds double, double* %1745, i64 1
%1747 = load double, double* %1746
%1748 = load double*, double** %9
%1749 = getelementptr inbounds double, double* %1748, i64 1
%1750 = load double, double* %1749
%1751 = fsub double %1747, %1750
%1752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1751, double* %1752
%1753 = load double*, double** %11
%1754 = getelementptr inbounds double, double* %1753, i64 2
%1755 = load double, double* %1754
%1756 = load double*, double** %9
%1757 = getelementptr inbounds double, double* %1756, i64 2
%1758 = load double, double* %1757
%1759 = fsub double %1755, %1758
%1760 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1759, double* %1760
%1761 = load double*, double** %10
%1762 = getelementptr inbounds double, double* %1761, i64 0
%1763 = load double, double* %1762
%1764 = load double*, double** %9
%1765 = getelementptr inbounds double, double* %1764, i64 0
%1766 = load double, double* %1765
%1767 = fsub double %1763, %1766
%1768 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1767, double* %1768
%1769 = load double*, double** %10
%1770 = getelementptr inbounds double, double* %1769, i64 1
%1771 = load double, double* %1770
%1772 = load double*, double** %9
%1773 = getelementptr inbounds double, double* %1772, i64 1
%1774 = load double, double* %1773
%1775 = fsub double %1771, %1774
%1776 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1775, double* %1776
%1777 = load double*, double** %10
%1778 = getelementptr inbounds double, double* %1777, i64 2
%1779 = load double, double* %1778
%1780 = load double*, double** %9
%1781 = getelementptr inbounds double, double* %1780, i64 2
%1782 = load double, double* %1781
%1783 = fsub double %1779, %1782
%1784 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1783, double* %1784
%1785 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1786 = load double, double* %1785
%1787 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1788 = load double, double* %1787
%1789 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1790 = load double, double* %1789
%1791 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1792 = load double, double* %1791
%1793 = fmul double %1790, %1792
%1794 = fneg double %1793
%1795 = call double @llvm.fmuladd.f64(double %1786, double %1788, double %1794)
%1796 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1795, double* %1796
%1797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1798 = load double, double* %1797
%1799 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1800 = load double, double* %1799
%1801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1802 = load double, double* %1801
%1803 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1804 = load double, double* %1803
%1805 = fmul double %1802, %1804
%1806 = fneg double %1805
%1807 = call double @llvm.fmuladd.f64(double %1798, double %1800, double %1806)
%1808 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1807, double* %1808
%1809 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1810 = load double, double* %1809
%1811 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1812 = load double, double* %1811
%1813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1814 = load double, double* %1813
%1815 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1816 = load double, double* %1815
%1817 = fmul double %1814, %1816
%1818 = fneg double %1817
%1819 = call double @llvm.fmuladd.f64(double %1810, double %1812, double %1818)
%1820 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1819, double* %1820
%1821 = load double*, double** %13
%1822 = getelementptr inbounds double, double* %1821, i64 0
%1823 = load double, double* %1822
%1824 = load double*, double** %9
%1825 = getelementptr inbounds double, double* %1824, i64 0
%1826 = load double, double* %1825
%1827 = fsub double %1823, %1826
%1828 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1827, double* %1828
%1829 = load double*, double** %13
%1830 = getelementptr inbounds double, double* %1829, i64 1
%1831 = load double, double* %1830
%1832 = load double*, double** %9
%1833 = getelementptr inbounds double, double* %1832, i64 1
%1834 = load double, double* %1833
%1835 = fsub double %1831, %1834
%1836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1835, double* %1836
%1837 = load double*, double** %13
%1838 = getelementptr inbounds double, double* %1837, i64 2
%1839 = load double, double* %1838
%1840 = load double*, double** %9
%1841 = getelementptr inbounds double, double* %1840, i64 2
%1842 = load double, double* %1841
%1843 = fsub double %1839, %1842
%1844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1843, double* %1844
%1845 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1846 = load double, double* %1845
%1847 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1848 = load double, double* %1847
%1849 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1850 = load double, double* %1849
%1851 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1852 = load double, double* %1851
%1853 = fmul double %1850, %1852
%1854 = call double @llvm.fmuladd.f64(double %1846, double %1848, double %1853)
%1855 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1856 = load double, double* %1855
%1857 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1858 = load double, double* %1857
%1859 = call double @llvm.fmuladd.f64(double %1856, double %1858, double %1854)
%1860 = fcmp ogt double %1859, 0.000000e+00
br i1 %1860, label %1861, label %1862
1861: ; preds = %1736
store i32 0, i32* %7
br label %37464
1862: ; preds = %1736
%1863 = load double*, double** %11
%1864 = getelementptr inbounds double, double* %1863, i64 0
%1865 = load double, double* %1864
%1866 = load double*, double** %10
%1867 = getelementptr inbounds double, double* %1866, i64 0
%1868 = load double, double* %1867
%1869 = fsub double %1865, %1868
%1870 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1869, double* %1870
%1871 = load double*, double** %11
%1872 = getelementptr inbounds double, double* %1871, i64 1
%1873 = load double, double* %1872
%1874 = load double*, double** %10
%1875 = getelementptr inbounds double, double* %1874, i64 1
%1876 = load double, double* %1875
%1877 = fsub double %1873, %1876
%1878 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1877, double* %1878
%1879 = load double*, double** %11
%1880 = getelementptr inbounds double, double* %1879, i64 2
%1881 = load double, double* %1880
%1882 = load double*, double** %10
%1883 = getelementptr inbounds double, double* %1882, i64 2
%1884 = load double, double* %1883
%1885 = fsub double %1881, %1884
%1886 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1885, double* %1886
%1887 = load double*, double** %8
%1888 = getelementptr inbounds double, double* %1887, i64 0
%1889 = load double, double* %1888
%1890 = load double*, double** %10
%1891 = getelementptr inbounds double, double* %1890, i64 0
%1892 = load double, double* %1891
%1893 = fsub double %1889, %1892
%1894 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %1893, double* %1894
%1895 = load double*, double** %8
%1896 = getelementptr inbounds double, double* %1895, i64 1
%1897 = load double, double* %1896
%1898 = load double*, double** %10
%1899 = getelementptr inbounds double, double* %1898, i64 1
%1900 = load double, double* %1899
%1901 = fsub double %1897, %1900
%1902 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %1901, double* %1902
%1903 = load double*, double** %8
%1904 = getelementptr inbounds double, double* %1903, i64 2
%1905 = load double, double* %1904
%1906 = load double*, double** %10
%1907 = getelementptr inbounds double, double* %1906, i64 2
%1908 = load double, double* %1907
%1909 = fsub double %1905, %1908
%1910 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %1909, double* %1910
%1911 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1912 = load double, double* %1911
%1913 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1914 = load double, double* %1913
%1915 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1916 = load double, double* %1915
%1917 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1918 = load double, double* %1917
%1919 = fmul double %1916, %1918
%1920 = fneg double %1919
%1921 = call double @llvm.fmuladd.f64(double %1912, double %1914, double %1920)
%1922 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %1921, double* %1922
%1923 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1924 = load double, double* %1923
%1925 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1926 = load double, double* %1925
%1927 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1928 = load double, double* %1927
%1929 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%1930 = load double, double* %1929
%1931 = fmul double %1928, %1930
%1932 = fneg double %1931
%1933 = call double @llvm.fmuladd.f64(double %1924, double %1926, double %1932)
%1934 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %1933, double* %1934
%1935 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1936 = load double, double* %1935
%1937 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%1938 = load double, double* %1937
%1939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1940 = load double, double* %1939
%1941 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%1942 = load double, double* %1941
%1943 = fmul double %1940, %1942
%1944 = fneg double %1943
%1945 = call double @llvm.fmuladd.f64(double %1936, double %1938, double %1944)
%1946 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %1945, double* %1946
%1947 = load double*, double** %12
%1948 = getelementptr inbounds double, double* %1947, i64 0
%1949 = load double, double* %1948
%1950 = load double*, double** %10
%1951 = getelementptr inbounds double, double* %1950, i64 0
%1952 = load double, double* %1951
%1953 = fsub double %1949, %1952
%1954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %1953, double* %1954
%1955 = load double*, double** %12
%1956 = getelementptr inbounds double, double* %1955, i64 1
%1957 = load double, double* %1956
%1958 = load double*, double** %10
%1959 = getelementptr inbounds double, double* %1958, i64 1
%1960 = load double, double* %1959
%1961 = fsub double %1957, %1960
%1962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %1961, double* %1962
%1963 = load double*, double** %12
%1964 = getelementptr inbounds double, double* %1963, i64 2
%1965 = load double, double* %1964
%1966 = load double*, double** %10
%1967 = getelementptr inbounds double, double* %1966, i64 2
%1968 = load double, double* %1967
%1969 = fsub double %1965, %1968
%1970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %1969, double* %1970
%1971 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%1972 = load double, double* %1971
%1973 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%1974 = load double, double* %1973
%1975 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%1976 = load double, double* %1975
%1977 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%1978 = load double, double* %1977
%1979 = fmul double %1976, %1978
%1980 = call double @llvm.fmuladd.f64(double %1972, double %1974, double %1979)
%1981 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%1982 = load double, double* %1981
%1983 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%1984 = load double, double* %1983
%1985 = call double @llvm.fmuladd.f64(double %1982, double %1984, double %1980)
%1986 = fcmp ogt double %1985, 0.000000e+00
br i1 %1986, label %1987, label %1988
1987: ; preds = %1862
store i32 0, i32* %7
br label %37464
1988: ; preds = %1862
store i32 1, i32* %7
br label %37464
1989: ; preds = %1221
%1990 = load double, double* %19
%1991 = fcmp olt double %1990, 0.000000e+00
br i1 %1991, label %1992, label %2501
1992: ; preds = %1989
%1993 = load double, double* %18
%1994 = fcmp oge double %1993, 0.000000e+00
br i1 %1994, label %1995, label %2248
1995: ; preds = %1992
%1996 = load double*, double** %13
%1997 = getelementptr inbounds double, double* %1996, i64 0
%1998 = load double, double* %1997
%1999 = load double*, double** %9
%2000 = getelementptr inbounds double, double* %1999, i64 0
%2001 = load double, double* %2000
%2002 = fsub double %1998, %2001
%2003 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2002, double* %2003
%2004 = load double*, double** %13
%2005 = getelementptr inbounds double, double* %2004, i64 1
%2006 = load double, double* %2005
%2007 = load double*, double** %9
%2008 = getelementptr inbounds double, double* %2007, i64 1
%2009 = load double, double* %2008
%2010 = fsub double %2006, %2009
%2011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2010, double* %2011
%2012 = load double*, double** %13
%2013 = getelementptr inbounds double, double* %2012, i64 2
%2014 = load double, double* %2013
%2015 = load double*, double** %9
%2016 = getelementptr inbounds double, double* %2015, i64 2
%2017 = load double, double* %2016
%2018 = fsub double %2014, %2017
%2019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2018, double* %2019
%2020 = load double*, double** %10
%2021 = getelementptr inbounds double, double* %2020, i64 0
%2022 = load double, double* %2021
%2023 = load double*, double** %9
%2024 = getelementptr inbounds double, double* %2023, i64 0
%2025 = load double, double* %2024
%2026 = fsub double %2022, %2025
%2027 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2026, double* %2027
%2028 = load double*, double** %10
%2029 = getelementptr inbounds double, double* %2028, i64 1
%2030 = load double, double* %2029
%2031 = load double*, double** %9
%2032 = getelementptr inbounds double, double* %2031, i64 1
%2033 = load double, double* %2032
%2034 = fsub double %2030, %2033
%2035 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2034, double* %2035
%2036 = load double*, double** %10
%2037 = getelementptr inbounds double, double* %2036, i64 2
%2038 = load double, double* %2037
%2039 = load double*, double** %9
%2040 = getelementptr inbounds double, double* %2039, i64 2
%2041 = load double, double* %2040
%2042 = fsub double %2038, %2041
%2043 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2042, double* %2043
%2044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2045 = load double, double* %2044
%2046 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2047 = load double, double* %2046
%2048 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2049 = load double, double* %2048
%2050 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2051 = load double, double* %2050
%2052 = fmul double %2049, %2051
%2053 = fneg double %2052
%2054 = call double @llvm.fmuladd.f64(double %2045, double %2047, double %2053)
%2055 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2054, double* %2055
%2056 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2057 = load double, double* %2056
%2058 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2059 = load double, double* %2058
%2060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2061 = load double, double* %2060
%2062 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2063 = load double, double* %2062
%2064 = fmul double %2061, %2063
%2065 = fneg double %2064
%2066 = call double @llvm.fmuladd.f64(double %2057, double %2059, double %2065)
%2067 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2066, double* %2067
%2068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2069 = load double, double* %2068
%2070 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2071 = load double, double* %2070
%2072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2073 = load double, double* %2072
%2074 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2075 = load double, double* %2074
%2076 = fmul double %2073, %2075
%2077 = fneg double %2076
%2078 = call double @llvm.fmuladd.f64(double %2069, double %2071, double %2077)
%2079 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2078, double* %2079
%2080 = load double*, double** %12
%2081 = getelementptr inbounds double, double* %2080, i64 0
%2082 = load double, double* %2081
%2083 = load double*, double** %9
%2084 = getelementptr inbounds double, double* %2083, i64 0
%2085 = load double, double* %2084
%2086 = fsub double %2082, %2085
%2087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2086, double* %2087
%2088 = load double*, double** %12
%2089 = getelementptr inbounds double, double* %2088, i64 1
%2090 = load double, double* %2089
%2091 = load double*, double** %9
%2092 = getelementptr inbounds double, double* %2091, i64 1
%2093 = load double, double* %2092
%2094 = fsub double %2090, %2093
%2095 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2094, double* %2095
%2096 = load double*, double** %12
%2097 = getelementptr inbounds double, double* %2096, i64 2
%2098 = load double, double* %2097
%2099 = load double*, double** %9
%2100 = getelementptr inbounds double, double* %2099, i64 2
%2101 = load double, double* %2100
%2102 = fsub double %2098, %2101
%2103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2102, double* %2103
%2104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2105 = load double, double* %2104
%2106 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2107 = load double, double* %2106
%2108 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2109 = load double, double* %2108
%2110 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2111 = load double, double* %2110
%2112 = fmul double %2109, %2111
%2113 = call double @llvm.fmuladd.f64(double %2105, double %2107, double %2112)
%2114 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2115 = load double, double* %2114
%2116 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2117 = load double, double* %2116
%2118 = call double @llvm.fmuladd.f64(double %2115, double %2117, double %2113)
%2119 = fcmp ogt double %2118, 0.000000e+00
br i1 %2119, label %2120, label %2121
2120: ; preds = %1995
store i32 0, i32* %7
br label %37464
2121: ; preds = %1995
%2122 = load double*, double** %13
%2123 = getelementptr inbounds double, double* %2122, i64 0
%2124 = load double, double* %2123
%2125 = load double*, double** %10
%2126 = getelementptr inbounds double, double* %2125, i64 0
%2127 = load double, double* %2126
%2128 = fsub double %2124, %2127
%2129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2128, double* %2129
%2130 = load double*, double** %13
%2131 = getelementptr inbounds double, double* %2130, i64 1
%2132 = load double, double* %2131
%2133 = load double*, double** %10
%2134 = getelementptr inbounds double, double* %2133, i64 1
%2135 = load double, double* %2134
%2136 = fsub double %2132, %2135
%2137 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2136, double* %2137
%2138 = load double*, double** %13
%2139 = getelementptr inbounds double, double* %2138, i64 2
%2140 = load double, double* %2139
%2141 = load double*, double** %10
%2142 = getelementptr inbounds double, double* %2141, i64 2
%2143 = load double, double* %2142
%2144 = fsub double %2140, %2143
%2145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2144, double* %2145
%2146 = load double*, double** %8
%2147 = getelementptr inbounds double, double* %2146, i64 0
%2148 = load double, double* %2147
%2149 = load double*, double** %10
%2150 = getelementptr inbounds double, double* %2149, i64 0
%2151 = load double, double* %2150
%2152 = fsub double %2148, %2151
%2153 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2152, double* %2153
%2154 = load double*, double** %8
%2155 = getelementptr inbounds double, double* %2154, i64 1
%2156 = load double, double* %2155
%2157 = load double*, double** %10
%2158 = getelementptr inbounds double, double* %2157, i64 1
%2159 = load double, double* %2158
%2160 = fsub double %2156, %2159
%2161 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2160, double* %2161
%2162 = load double*, double** %8
%2163 = getelementptr inbounds double, double* %2162, i64 2
%2164 = load double, double* %2163
%2165 = load double*, double** %10
%2166 = getelementptr inbounds double, double* %2165, i64 2
%2167 = load double, double* %2166
%2168 = fsub double %2164, %2167
%2169 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2168, double* %2169
%2170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2171 = load double, double* %2170
%2172 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2173 = load double, double* %2172
%2174 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2175 = load double, double* %2174
%2176 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2177 = load double, double* %2176
%2178 = fmul double %2175, %2177
%2179 = fneg double %2178
%2180 = call double @llvm.fmuladd.f64(double %2171, double %2173, double %2179)
%2181 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2180, double* %2181
%2182 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2183 = load double, double* %2182
%2184 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2185 = load double, double* %2184
%2186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2187 = load double, double* %2186
%2188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2189 = load double, double* %2188
%2190 = fmul double %2187, %2189
%2191 = fneg double %2190
%2192 = call double @llvm.fmuladd.f64(double %2183, double %2185, double %2191)
%2193 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2192, double* %2193
%2194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2195 = load double, double* %2194
%2196 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2197 = load double, double* %2196
%2198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2199 = load double, double* %2198
%2200 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2201 = load double, double* %2200
%2202 = fmul double %2199, %2201
%2203 = fneg double %2202
%2204 = call double @llvm.fmuladd.f64(double %2195, double %2197, double %2203)
%2205 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2204, double* %2205
%2206 = load double*, double** %11
%2207 = getelementptr inbounds double, double* %2206, i64 0
%2208 = load double, double* %2207
%2209 = load double*, double** %10
%2210 = getelementptr inbounds double, double* %2209, i64 0
%2211 = load double, double* %2210
%2212 = fsub double %2208, %2211
%2213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2212, double* %2213
%2214 = load double*, double** %11
%2215 = getelementptr inbounds double, double* %2214, i64 1
%2216 = load double, double* %2215
%2217 = load double*, double** %10
%2218 = getelementptr inbounds double, double* %2217, i64 1
%2219 = load double, double* %2218
%2220 = fsub double %2216, %2219
%2221 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2220, double* %2221
%2222 = load double*, double** %11
%2223 = getelementptr inbounds double, double* %2222, i64 2
%2224 = load double, double* %2223
%2225 = load double*, double** %10
%2226 = getelementptr inbounds double, double* %2225, i64 2
%2227 = load double, double* %2226
%2228 = fsub double %2224, %2227
%2229 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2228, double* %2229
%2230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2231 = load double, double* %2230
%2232 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2233 = load double, double* %2232
%2234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2235 = load double, double* %2234
%2236 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2237 = load double, double* %2236
%2238 = fmul double %2235, %2237
%2239 = call double @llvm.fmuladd.f64(double %2231, double %2233, double %2238)
%2240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2241 = load double, double* %2240
%2242 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2243 = load double, double* %2242
%2244 = call double @llvm.fmuladd.f64(double %2241, double %2243, double %2239)
%2245 = fcmp ogt double %2244, 0.000000e+00
br i1 %2245, label %2246, label %2247
2246: ; preds = %2121
store i32 0, i32* %7
br label %37464
2247: ; preds = %2121
store i32 1, i32* %7
br label %37464
2248: ; preds = %1992
%2249 = load double*, double** %11
%2250 = getelementptr inbounds double, double* %2249, i64 0
%2251 = load double, double* %2250
%2252 = load double*, double** %8
%2253 = getelementptr inbounds double, double* %2252, i64 0
%2254 = load double, double* %2253
%2255 = fsub double %2251, %2254
%2256 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2255, double* %2256
%2257 = load double*, double** %11
%2258 = getelementptr inbounds double, double* %2257, i64 1
%2259 = load double, double* %2258
%2260 = load double*, double** %8
%2261 = getelementptr inbounds double, double* %2260, i64 1
%2262 = load double, double* %2261
%2263 = fsub double %2259, %2262
%2264 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2263, double* %2264
%2265 = load double*, double** %11
%2266 = getelementptr inbounds double, double* %2265, i64 2
%2267 = load double, double* %2266
%2268 = load double*, double** %8
%2269 = getelementptr inbounds double, double* %2268, i64 2
%2270 = load double, double* %2269
%2271 = fsub double %2267, %2270
%2272 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2271, double* %2272
%2273 = load double*, double** %10
%2274 = getelementptr inbounds double, double* %2273, i64 0
%2275 = load double, double* %2274
%2276 = load double*, double** %8
%2277 = getelementptr inbounds double, double* %2276, i64 0
%2278 = load double, double* %2277
%2279 = fsub double %2275, %2278
%2280 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2279, double* %2280
%2281 = load double*, double** %10
%2282 = getelementptr inbounds double, double* %2281, i64 1
%2283 = load double, double* %2282
%2284 = load double*, double** %8
%2285 = getelementptr inbounds double, double* %2284, i64 1
%2286 = load double, double* %2285
%2287 = fsub double %2283, %2286
%2288 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2287, double* %2288
%2289 = load double*, double** %10
%2290 = getelementptr inbounds double, double* %2289, i64 2
%2291 = load double, double* %2290
%2292 = load double*, double** %8
%2293 = getelementptr inbounds double, double* %2292, i64 2
%2294 = load double, double* %2293
%2295 = fsub double %2291, %2294
%2296 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2295, double* %2296
%2297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2298 = load double, double* %2297
%2299 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2300 = load double, double* %2299
%2301 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2302 = load double, double* %2301
%2303 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2304 = load double, double* %2303
%2305 = fmul double %2302, %2304
%2306 = fneg double %2305
%2307 = call double @llvm.fmuladd.f64(double %2298, double %2300, double %2306)
%2308 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2307, double* %2308
%2309 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2310 = load double, double* %2309
%2311 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2312 = load double, double* %2311
%2313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2314 = load double, double* %2313
%2315 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2316 = load double, double* %2315
%2317 = fmul double %2314, %2316
%2318 = fneg double %2317
%2319 = call double @llvm.fmuladd.f64(double %2310, double %2312, double %2318)
%2320 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2319, double* %2320
%2321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2322 = load double, double* %2321
%2323 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2324 = load double, double* %2323
%2325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2326 = load double, double* %2325
%2327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2328 = load double, double* %2327
%2329 = fmul double %2326, %2328
%2330 = fneg double %2329
%2331 = call double @llvm.fmuladd.f64(double %2322, double %2324, double %2330)
%2332 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2331, double* %2332
%2333 = load double*, double** %13
%2334 = getelementptr inbounds double, double* %2333, i64 0
%2335 = load double, double* %2334
%2336 = load double*, double** %8
%2337 = getelementptr inbounds double, double* %2336, i64 0
%2338 = load double, double* %2337
%2339 = fsub double %2335, %2338
%2340 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2339, double* %2340
%2341 = load double*, double** %13
%2342 = getelementptr inbounds double, double* %2341, i64 1
%2343 = load double, double* %2342
%2344 = load double*, double** %8
%2345 = getelementptr inbounds double, double* %2344, i64 1
%2346 = load double, double* %2345
%2347 = fsub double %2343, %2346
%2348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2347, double* %2348
%2349 = load double*, double** %13
%2350 = getelementptr inbounds double, double* %2349, i64 2
%2351 = load double, double* %2350
%2352 = load double*, double** %8
%2353 = getelementptr inbounds double, double* %2352, i64 2
%2354 = load double, double* %2353
%2355 = fsub double %2351, %2354
%2356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2355, double* %2356
%2357 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2358 = load double, double* %2357
%2359 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2360 = load double, double* %2359
%2361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2362 = load double, double* %2361
%2363 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2364 = load double, double* %2363
%2365 = fmul double %2362, %2364
%2366 = call double @llvm.fmuladd.f64(double %2358, double %2360, double %2365)
%2367 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2368 = load double, double* %2367
%2369 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2370 = load double, double* %2369
%2371 = call double @llvm.fmuladd.f64(double %2368, double %2370, double %2366)
%2372 = fcmp ogt double %2371, 0.000000e+00
br i1 %2372, label %2373, label %2374
2373: ; preds = %2248
store i32 0, i32* %7
br label %37464
2374: ; preds = %2248
%2375 = load double*, double** %11
%2376 = getelementptr inbounds double, double* %2375, i64 0
%2377 = load double, double* %2376
%2378 = load double*, double** %10
%2379 = getelementptr inbounds double, double* %2378, i64 0
%2380 = load double, double* %2379
%2381 = fsub double %2377, %2380
%2382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2381, double* %2382
%2383 = load double*, double** %11
%2384 = getelementptr inbounds double, double* %2383, i64 1
%2385 = load double, double* %2384
%2386 = load double*, double** %10
%2387 = getelementptr inbounds double, double* %2386, i64 1
%2388 = load double, double* %2387
%2389 = fsub double %2385, %2388
%2390 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2389, double* %2390
%2391 = load double*, double** %11
%2392 = getelementptr inbounds double, double* %2391, i64 2
%2393 = load double, double* %2392
%2394 = load double*, double** %10
%2395 = getelementptr inbounds double, double* %2394, i64 2
%2396 = load double, double* %2395
%2397 = fsub double %2393, %2396
%2398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2397, double* %2398
%2399 = load double*, double** %9
%2400 = getelementptr inbounds double, double* %2399, i64 0
%2401 = load double, double* %2400
%2402 = load double*, double** %10
%2403 = getelementptr inbounds double, double* %2402, i64 0
%2404 = load double, double* %2403
%2405 = fsub double %2401, %2404
%2406 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2405, double* %2406
%2407 = load double*, double** %9
%2408 = getelementptr inbounds double, double* %2407, i64 1
%2409 = load double, double* %2408
%2410 = load double*, double** %10
%2411 = getelementptr inbounds double, double* %2410, i64 1
%2412 = load double, double* %2411
%2413 = fsub double %2409, %2412
%2414 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2413, double* %2414
%2415 = load double*, double** %9
%2416 = getelementptr inbounds double, double* %2415, i64 2
%2417 = load double, double* %2416
%2418 = load double*, double** %10
%2419 = getelementptr inbounds double, double* %2418, i64 2
%2420 = load double, double* %2419
%2421 = fsub double %2417, %2420
%2422 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2421, double* %2422
%2423 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2424 = load double, double* %2423
%2425 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2426 = load double, double* %2425
%2427 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2428 = load double, double* %2427
%2429 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2430 = load double, double* %2429
%2431 = fmul double %2428, %2430
%2432 = fneg double %2431
%2433 = call double @llvm.fmuladd.f64(double %2424, double %2426, double %2432)
%2434 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2433, double* %2434
%2435 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2436 = load double, double* %2435
%2437 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2438 = load double, double* %2437
%2439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2440 = load double, double* %2439
%2441 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2442 = load double, double* %2441
%2443 = fmul double %2440, %2442
%2444 = fneg double %2443
%2445 = call double @llvm.fmuladd.f64(double %2436, double %2438, double %2444)
%2446 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2445, double* %2446
%2447 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2448 = load double, double* %2447
%2449 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2450 = load double, double* %2449
%2451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2452 = load double, double* %2451
%2453 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2454 = load double, double* %2453
%2455 = fmul double %2452, %2454
%2456 = fneg double %2455
%2457 = call double @llvm.fmuladd.f64(double %2448, double %2450, double %2456)
%2458 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2457, double* %2458
%2459 = load double*, double** %12
%2460 = getelementptr inbounds double, double* %2459, i64 0
%2461 = load double, double* %2460
%2462 = load double*, double** %10
%2463 = getelementptr inbounds double, double* %2462, i64 0
%2464 = load double, double* %2463
%2465 = fsub double %2461, %2464
%2466 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2465, double* %2466
%2467 = load double*, double** %12
%2468 = getelementptr inbounds double, double* %2467, i64 1
%2469 = load double, double* %2468
%2470 = load double*, double** %10
%2471 = getelementptr inbounds double, double* %2470, i64 1
%2472 = load double, double* %2471
%2473 = fsub double %2469, %2472
%2474 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2473, double* %2474
%2475 = load double*, double** %12
%2476 = getelementptr inbounds double, double* %2475, i64 2
%2477 = load double, double* %2476
%2478 = load double*, double** %10
%2479 = getelementptr inbounds double, double* %2478, i64 2
%2480 = load double, double* %2479
%2481 = fsub double %2477, %2480
%2482 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2481, double* %2482
%2483 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2484 = load double, double* %2483
%2485 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2486 = load double, double* %2485
%2487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2488 = load double, double* %2487
%2489 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2490 = load double, double* %2489
%2491 = fmul double %2488, %2490
%2492 = call double @llvm.fmuladd.f64(double %2484, double %2486, double %2491)
%2493 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2494 = load double, double* %2493
%2495 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2496 = load double, double* %2495
%2497 = call double @llvm.fmuladd.f64(double %2494, double %2496, double %2492)
%2498 = fcmp ogt double %2497, 0.000000e+00
br i1 %2498, label %2499, label %2500
2499: ; preds = %2374
store i32 0, i32* %7
br label %37464
2500: ; preds = %2374
store i32 1, i32* %7
br label %37464
2501: ; preds = %1989
%2502 = load double, double* %19
%2503 = fcmp ogt double %2502, 0.000000e+00
br i1 %2503, label %2504, label %3013
2504: ; preds = %2501
%2505 = load double, double* %18
%2506 = fcmp ogt double %2505, 0.000000e+00
br i1 %2506, label %2507, label %2760
2507: ; preds = %2504
%2508 = load double*, double** %11
%2509 = getelementptr inbounds double, double* %2508, i64 0
%2510 = load double, double* %2509
%2511 = load double*, double** %9
%2512 = getelementptr inbounds double, double* %2511, i64 0
%2513 = load double, double* %2512
%2514 = fsub double %2510, %2513
%2515 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2514, double* %2515
%2516 = load double*, double** %11
%2517 = getelementptr inbounds double, double* %2516, i64 1
%2518 = load double, double* %2517
%2519 = load double*, double** %9
%2520 = getelementptr inbounds double, double* %2519, i64 1
%2521 = load double, double* %2520
%2522 = fsub double %2518, %2521
%2523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2522, double* %2523
%2524 = load double*, double** %11
%2525 = getelementptr inbounds double, double* %2524, i64 2
%2526 = load double, double* %2525
%2527 = load double*, double** %9
%2528 = getelementptr inbounds double, double* %2527, i64 2
%2529 = load double, double* %2528
%2530 = fsub double %2526, %2529
%2531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2530, double* %2531
%2532 = load double*, double** %10
%2533 = getelementptr inbounds double, double* %2532, i64 0
%2534 = load double, double* %2533
%2535 = load double*, double** %9
%2536 = getelementptr inbounds double, double* %2535, i64 0
%2537 = load double, double* %2536
%2538 = fsub double %2534, %2537
%2539 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2538, double* %2539
%2540 = load double*, double** %10
%2541 = getelementptr inbounds double, double* %2540, i64 1
%2542 = load double, double* %2541
%2543 = load double*, double** %9
%2544 = getelementptr inbounds double, double* %2543, i64 1
%2545 = load double, double* %2544
%2546 = fsub double %2542, %2545
%2547 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2546, double* %2547
%2548 = load double*, double** %10
%2549 = getelementptr inbounds double, double* %2548, i64 2
%2550 = load double, double* %2549
%2551 = load double*, double** %9
%2552 = getelementptr inbounds double, double* %2551, i64 2
%2553 = load double, double* %2552
%2554 = fsub double %2550, %2553
%2555 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2554, double* %2555
%2556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2557 = load double, double* %2556
%2558 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2559 = load double, double* %2558
%2560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2561 = load double, double* %2560
%2562 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2563 = load double, double* %2562
%2564 = fmul double %2561, %2563
%2565 = fneg double %2564
%2566 = call double @llvm.fmuladd.f64(double %2557, double %2559, double %2565)
%2567 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2566, double* %2567
%2568 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2569 = load double, double* %2568
%2570 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2571 = load double, double* %2570
%2572 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2573 = load double, double* %2572
%2574 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2575 = load double, double* %2574
%2576 = fmul double %2573, %2575
%2577 = fneg double %2576
%2578 = call double @llvm.fmuladd.f64(double %2569, double %2571, double %2577)
%2579 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2578, double* %2579
%2580 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2581 = load double, double* %2580
%2582 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2583 = load double, double* %2582
%2584 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2585 = load double, double* %2584
%2586 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2587 = load double, double* %2586
%2588 = fmul double %2585, %2587
%2589 = fneg double %2588
%2590 = call double @llvm.fmuladd.f64(double %2581, double %2583, double %2589)
%2591 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2590, double* %2591
%2592 = load double*, double** %13
%2593 = getelementptr inbounds double, double* %2592, i64 0
%2594 = load double, double* %2593
%2595 = load double*, double** %9
%2596 = getelementptr inbounds double, double* %2595, i64 0
%2597 = load double, double* %2596
%2598 = fsub double %2594, %2597
%2599 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2598, double* %2599
%2600 = load double*, double** %13
%2601 = getelementptr inbounds double, double* %2600, i64 1
%2602 = load double, double* %2601
%2603 = load double*, double** %9
%2604 = getelementptr inbounds double, double* %2603, i64 1
%2605 = load double, double* %2604
%2606 = fsub double %2602, %2605
%2607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2606, double* %2607
%2608 = load double*, double** %13
%2609 = getelementptr inbounds double, double* %2608, i64 2
%2610 = load double, double* %2609
%2611 = load double*, double** %9
%2612 = getelementptr inbounds double, double* %2611, i64 2
%2613 = load double, double* %2612
%2614 = fsub double %2610, %2613
%2615 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2614, double* %2615
%2616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2617 = load double, double* %2616
%2618 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2619 = load double, double* %2618
%2620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2621 = load double, double* %2620
%2622 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2623 = load double, double* %2622
%2624 = fmul double %2621, %2623
%2625 = call double @llvm.fmuladd.f64(double %2617, double %2619, double %2624)
%2626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2627 = load double, double* %2626
%2628 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2629 = load double, double* %2628
%2630 = call double @llvm.fmuladd.f64(double %2627, double %2629, double %2625)
%2631 = fcmp ogt double %2630, 0.000000e+00
br i1 %2631, label %2632, label %2633
2632: ; preds = %2507
store i32 0, i32* %7
br label %37464
2633: ; preds = %2507
%2634 = load double*, double** %11
%2635 = getelementptr inbounds double, double* %2634, i64 0
%2636 = load double, double* %2635
%2637 = load double*, double** %10
%2638 = getelementptr inbounds double, double* %2637, i64 0
%2639 = load double, double* %2638
%2640 = fsub double %2636, %2639
%2641 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2640, double* %2641
%2642 = load double*, double** %11
%2643 = getelementptr inbounds double, double* %2642, i64 1
%2644 = load double, double* %2643
%2645 = load double*, double** %10
%2646 = getelementptr inbounds double, double* %2645, i64 1
%2647 = load double, double* %2646
%2648 = fsub double %2644, %2647
%2649 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2648, double* %2649
%2650 = load double*, double** %11
%2651 = getelementptr inbounds double, double* %2650, i64 2
%2652 = load double, double* %2651
%2653 = load double*, double** %10
%2654 = getelementptr inbounds double, double* %2653, i64 2
%2655 = load double, double* %2654
%2656 = fsub double %2652, %2655
%2657 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2656, double* %2657
%2658 = load double*, double** %8
%2659 = getelementptr inbounds double, double* %2658, i64 0
%2660 = load double, double* %2659
%2661 = load double*, double** %10
%2662 = getelementptr inbounds double, double* %2661, i64 0
%2663 = load double, double* %2662
%2664 = fsub double %2660, %2663
%2665 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2664, double* %2665
%2666 = load double*, double** %8
%2667 = getelementptr inbounds double, double* %2666, i64 1
%2668 = load double, double* %2667
%2669 = load double*, double** %10
%2670 = getelementptr inbounds double, double* %2669, i64 1
%2671 = load double, double* %2670
%2672 = fsub double %2668, %2671
%2673 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2672, double* %2673
%2674 = load double*, double** %8
%2675 = getelementptr inbounds double, double* %2674, i64 2
%2676 = load double, double* %2675
%2677 = load double*, double** %10
%2678 = getelementptr inbounds double, double* %2677, i64 2
%2679 = load double, double* %2678
%2680 = fsub double %2676, %2679
%2681 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2680, double* %2681
%2682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2683 = load double, double* %2682
%2684 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2685 = load double, double* %2684
%2686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2687 = load double, double* %2686
%2688 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2689 = load double, double* %2688
%2690 = fmul double %2687, %2689
%2691 = fneg double %2690
%2692 = call double @llvm.fmuladd.f64(double %2683, double %2685, double %2691)
%2693 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2692, double* %2693
%2694 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2695 = load double, double* %2694
%2696 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2697 = load double, double* %2696
%2698 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2699 = load double, double* %2698
%2700 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2701 = load double, double* %2700
%2702 = fmul double %2699, %2701
%2703 = fneg double %2702
%2704 = call double @llvm.fmuladd.f64(double %2695, double %2697, double %2703)
%2705 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2704, double* %2705
%2706 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2707 = load double, double* %2706
%2708 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2709 = load double, double* %2708
%2710 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2711 = load double, double* %2710
%2712 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2713 = load double, double* %2712
%2714 = fmul double %2711, %2713
%2715 = fneg double %2714
%2716 = call double @llvm.fmuladd.f64(double %2707, double %2709, double %2715)
%2717 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2716, double* %2717
%2718 = load double*, double** %12
%2719 = getelementptr inbounds double, double* %2718, i64 0
%2720 = load double, double* %2719
%2721 = load double*, double** %10
%2722 = getelementptr inbounds double, double* %2721, i64 0
%2723 = load double, double* %2722
%2724 = fsub double %2720, %2723
%2725 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2724, double* %2725
%2726 = load double*, double** %12
%2727 = getelementptr inbounds double, double* %2726, i64 1
%2728 = load double, double* %2727
%2729 = load double*, double** %10
%2730 = getelementptr inbounds double, double* %2729, i64 1
%2731 = load double, double* %2730
%2732 = fsub double %2728, %2731
%2733 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2732, double* %2733
%2734 = load double*, double** %12
%2735 = getelementptr inbounds double, double* %2734, i64 2
%2736 = load double, double* %2735
%2737 = load double*, double** %10
%2738 = getelementptr inbounds double, double* %2737, i64 2
%2739 = load double, double* %2738
%2740 = fsub double %2736, %2739
%2741 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2740, double* %2741
%2742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2743 = load double, double* %2742
%2744 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2745 = load double, double* %2744
%2746 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2747 = load double, double* %2746
%2748 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2749 = load double, double* %2748
%2750 = fmul double %2747, %2749
%2751 = call double @llvm.fmuladd.f64(double %2743, double %2745, double %2750)
%2752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2753 = load double, double* %2752
%2754 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2755 = load double, double* %2754
%2756 = call double @llvm.fmuladd.f64(double %2753, double %2755, double %2751)
%2757 = fcmp ogt double %2756, 0.000000e+00
br i1 %2757, label %2758, label %2759
2758: ; preds = %2633
store i32 0, i32* %7
br label %37464
2759: ; preds = %2633
store i32 1, i32* %7
br label %37464
2760: ; preds = %2504
%2761 = load double*, double** %13
%2762 = getelementptr inbounds double, double* %2761, i64 0
%2763 = load double, double* %2762
%2764 = load double*, double** %8
%2765 = getelementptr inbounds double, double* %2764, i64 0
%2766 = load double, double* %2765
%2767 = fsub double %2763, %2766
%2768 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2767, double* %2768
%2769 = load double*, double** %13
%2770 = getelementptr inbounds double, double* %2769, i64 1
%2771 = load double, double* %2770
%2772 = load double*, double** %8
%2773 = getelementptr inbounds double, double* %2772, i64 1
%2774 = load double, double* %2773
%2775 = fsub double %2771, %2774
%2776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2775, double* %2776
%2777 = load double*, double** %13
%2778 = getelementptr inbounds double, double* %2777, i64 2
%2779 = load double, double* %2778
%2780 = load double*, double** %8
%2781 = getelementptr inbounds double, double* %2780, i64 2
%2782 = load double, double* %2781
%2783 = fsub double %2779, %2782
%2784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2783, double* %2784
%2785 = load double*, double** %10
%2786 = getelementptr inbounds double, double* %2785, i64 0
%2787 = load double, double* %2786
%2788 = load double*, double** %8
%2789 = getelementptr inbounds double, double* %2788, i64 0
%2790 = load double, double* %2789
%2791 = fsub double %2787, %2790
%2792 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2791, double* %2792
%2793 = load double*, double** %10
%2794 = getelementptr inbounds double, double* %2793, i64 1
%2795 = load double, double* %2794
%2796 = load double*, double** %8
%2797 = getelementptr inbounds double, double* %2796, i64 1
%2798 = load double, double* %2797
%2799 = fsub double %2795, %2798
%2800 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2799, double* %2800
%2801 = load double*, double** %10
%2802 = getelementptr inbounds double, double* %2801, i64 2
%2803 = load double, double* %2802
%2804 = load double*, double** %8
%2805 = getelementptr inbounds double, double* %2804, i64 2
%2806 = load double, double* %2805
%2807 = fsub double %2803, %2806
%2808 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2807, double* %2808
%2809 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2810 = load double, double* %2809
%2811 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2812 = load double, double* %2811
%2813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2814 = load double, double* %2813
%2815 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2816 = load double, double* %2815
%2817 = fmul double %2814, %2816
%2818 = fneg double %2817
%2819 = call double @llvm.fmuladd.f64(double %2810, double %2812, double %2818)
%2820 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2819, double* %2820
%2821 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2822 = load double, double* %2821
%2823 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2824 = load double, double* %2823
%2825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2826 = load double, double* %2825
%2827 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2828 = load double, double* %2827
%2829 = fmul double %2826, %2828
%2830 = fneg double %2829
%2831 = call double @llvm.fmuladd.f64(double %2822, double %2824, double %2830)
%2832 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2831, double* %2832
%2833 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2834 = load double, double* %2833
%2835 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2836 = load double, double* %2835
%2837 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2838 = load double, double* %2837
%2839 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2840 = load double, double* %2839
%2841 = fmul double %2838, %2840
%2842 = fneg double %2841
%2843 = call double @llvm.fmuladd.f64(double %2834, double %2836, double %2842)
%2844 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2843, double* %2844
%2845 = load double*, double** %12
%2846 = getelementptr inbounds double, double* %2845, i64 0
%2847 = load double, double* %2846
%2848 = load double*, double** %8
%2849 = getelementptr inbounds double, double* %2848, i64 0
%2850 = load double, double* %2849
%2851 = fsub double %2847, %2850
%2852 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2851, double* %2852
%2853 = load double*, double** %12
%2854 = getelementptr inbounds double, double* %2853, i64 1
%2855 = load double, double* %2854
%2856 = load double*, double** %8
%2857 = getelementptr inbounds double, double* %2856, i64 1
%2858 = load double, double* %2857
%2859 = fsub double %2855, %2858
%2860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2859, double* %2860
%2861 = load double*, double** %12
%2862 = getelementptr inbounds double, double* %2861, i64 2
%2863 = load double, double* %2862
%2864 = load double*, double** %8
%2865 = getelementptr inbounds double, double* %2864, i64 2
%2866 = load double, double* %2865
%2867 = fsub double %2863, %2866
%2868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2867, double* %2868
%2869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2870 = load double, double* %2869
%2871 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2872 = load double, double* %2871
%2873 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2874 = load double, double* %2873
%2875 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%2876 = load double, double* %2875
%2877 = fmul double %2874, %2876
%2878 = call double @llvm.fmuladd.f64(double %2870, double %2872, double %2877)
%2879 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2880 = load double, double* %2879
%2881 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%2882 = load double, double* %2881
%2883 = call double @llvm.fmuladd.f64(double %2880, double %2882, double %2878)
%2884 = fcmp ogt double %2883, 0.000000e+00
br i1 %2884, label %2885, label %2886
2885: ; preds = %2760
store i32 0, i32* %7
br label %37464
2886: ; preds = %2760
%2887 = load double*, double** %13
%2888 = getelementptr inbounds double, double* %2887, i64 0
%2889 = load double, double* %2888
%2890 = load double*, double** %10
%2891 = getelementptr inbounds double, double* %2890, i64 0
%2892 = load double, double* %2891
%2893 = fsub double %2889, %2892
%2894 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2893, double* %2894
%2895 = load double*, double** %13
%2896 = getelementptr inbounds double, double* %2895, i64 1
%2897 = load double, double* %2896
%2898 = load double*, double** %10
%2899 = getelementptr inbounds double, double* %2898, i64 1
%2900 = load double, double* %2899
%2901 = fsub double %2897, %2900
%2902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2901, double* %2902
%2903 = load double*, double** %13
%2904 = getelementptr inbounds double, double* %2903, i64 2
%2905 = load double, double* %2904
%2906 = load double*, double** %10
%2907 = getelementptr inbounds double, double* %2906, i64 2
%2908 = load double, double* %2907
%2909 = fsub double %2905, %2908
%2910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2909, double* %2910
%2911 = load double*, double** %9
%2912 = getelementptr inbounds double, double* %2911, i64 0
%2913 = load double, double* %2912
%2914 = load double*, double** %10
%2915 = getelementptr inbounds double, double* %2914, i64 0
%2916 = load double, double* %2915
%2917 = fsub double %2913, %2916
%2918 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %2917, double* %2918
%2919 = load double*, double** %9
%2920 = getelementptr inbounds double, double* %2919, i64 1
%2921 = load double, double* %2920
%2922 = load double*, double** %10
%2923 = getelementptr inbounds double, double* %2922, i64 1
%2924 = load double, double* %2923
%2925 = fsub double %2921, %2924
%2926 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %2925, double* %2926
%2927 = load double*, double** %9
%2928 = getelementptr inbounds double, double* %2927, i64 2
%2929 = load double, double* %2928
%2930 = load double*, double** %10
%2931 = getelementptr inbounds double, double* %2930, i64 2
%2932 = load double, double* %2931
%2933 = fsub double %2929, %2932
%2934 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %2933, double* %2934
%2935 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2936 = load double, double* %2935
%2937 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2938 = load double, double* %2937
%2939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2940 = load double, double* %2939
%2941 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2942 = load double, double* %2941
%2943 = fmul double %2940, %2942
%2944 = fneg double %2943
%2945 = call double @llvm.fmuladd.f64(double %2936, double %2938, double %2944)
%2946 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %2945, double* %2946
%2947 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%2948 = load double, double* %2947
%2949 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2950 = load double, double* %2949
%2951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2952 = load double, double* %2951
%2953 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%2954 = load double, double* %2953
%2955 = fmul double %2952, %2954
%2956 = fneg double %2955
%2957 = call double @llvm.fmuladd.f64(double %2948, double %2950, double %2956)
%2958 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %2957, double* %2958
%2959 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2960 = load double, double* %2959
%2961 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%2962 = load double, double* %2961
%2963 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%2964 = load double, double* %2963
%2965 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%2966 = load double, double* %2965
%2967 = fmul double %2964, %2966
%2968 = fneg double %2967
%2969 = call double @llvm.fmuladd.f64(double %2960, double %2962, double %2968)
%2970 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %2969, double* %2970
%2971 = load double*, double** %11
%2972 = getelementptr inbounds double, double* %2971, i64 0
%2973 = load double, double* %2972
%2974 = load double*, double** %10
%2975 = getelementptr inbounds double, double* %2974, i64 0
%2976 = load double, double* %2975
%2977 = fsub double %2973, %2976
%2978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %2977, double* %2978
%2979 = load double*, double** %11
%2980 = getelementptr inbounds double, double* %2979, i64 1
%2981 = load double, double* %2980
%2982 = load double*, double** %10
%2983 = getelementptr inbounds double, double* %2982, i64 1
%2984 = load double, double* %2983
%2985 = fsub double %2981, %2984
%2986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %2985, double* %2986
%2987 = load double*, double** %11
%2988 = getelementptr inbounds double, double* %2987, i64 2
%2989 = load double, double* %2988
%2990 = load double*, double** %10
%2991 = getelementptr inbounds double, double* %2990, i64 2
%2992 = load double, double* %2991
%2993 = fsub double %2989, %2992
%2994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %2993, double* %2994
%2995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%2996 = load double, double* %2995
%2997 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%2998 = load double, double* %2997
%2999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3000 = load double, double* %2999
%3001 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3002 = load double, double* %3001
%3003 = fmul double %3000, %3002
%3004 = call double @llvm.fmuladd.f64(double %2996, double %2998, double %3003)
%3005 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3006 = load double, double* %3005
%3007 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3008 = load double, double* %3007
%3009 = call double @llvm.fmuladd.f64(double %3006, double %3008, double %3004)
%3010 = fcmp ogt double %3009, 0.000000e+00
br i1 %3010, label %3011, label %3012
3011: ; preds = %2886
store i32 0, i32* %7
br label %37464
3012: ; preds = %2886
store i32 1, i32* %7
br label %37464
3013: ; preds = %2501
%3014 = load double, double* %18
%3015 = fcmp ogt double %3014, 0.000000e+00
br i1 %3015, label %3016, label %3269
3016: ; preds = %3013
%3017 = load double*, double** %12
%3018 = getelementptr inbounds double, double* %3017, i64 0
%3019 = load double, double* %3018
%3020 = load double*, double** %8
%3021 = getelementptr inbounds double, double* %3020, i64 0
%3022 = load double, double* %3021
%3023 = fsub double %3019, %3022
%3024 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3023, double* %3024
%3025 = load double*, double** %12
%3026 = getelementptr inbounds double, double* %3025, i64 1
%3027 = load double, double* %3026
%3028 = load double*, double** %8
%3029 = getelementptr inbounds double, double* %3028, i64 1
%3030 = load double, double* %3029
%3031 = fsub double %3027, %3030
%3032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3031, double* %3032
%3033 = load double*, double** %12
%3034 = getelementptr inbounds double, double* %3033, i64 2
%3035 = load double, double* %3034
%3036 = load double*, double** %8
%3037 = getelementptr inbounds double, double* %3036, i64 2
%3038 = load double, double* %3037
%3039 = fsub double %3035, %3038
%3040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3039, double* %3040
%3041 = load double*, double** %10
%3042 = getelementptr inbounds double, double* %3041, i64 0
%3043 = load double, double* %3042
%3044 = load double*, double** %8
%3045 = getelementptr inbounds double, double* %3044, i64 0
%3046 = load double, double* %3045
%3047 = fsub double %3043, %3046
%3048 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3047, double* %3048
%3049 = load double*, double** %10
%3050 = getelementptr inbounds double, double* %3049, i64 1
%3051 = load double, double* %3050
%3052 = load double*, double** %8
%3053 = getelementptr inbounds double, double* %3052, i64 1
%3054 = load double, double* %3053
%3055 = fsub double %3051, %3054
%3056 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3055, double* %3056
%3057 = load double*, double** %10
%3058 = getelementptr inbounds double, double* %3057, i64 2
%3059 = load double, double* %3058
%3060 = load double*, double** %8
%3061 = getelementptr inbounds double, double* %3060, i64 2
%3062 = load double, double* %3061
%3063 = fsub double %3059, %3062
%3064 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3063, double* %3064
%3065 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3066 = load double, double* %3065
%3067 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3068 = load double, double* %3067
%3069 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3070 = load double, double* %3069
%3071 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3072 = load double, double* %3071
%3073 = fmul double %3070, %3072
%3074 = fneg double %3073
%3075 = call double @llvm.fmuladd.f64(double %3066, double %3068, double %3074)
%3076 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3075, double* %3076
%3077 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3078 = load double, double* %3077
%3079 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3080 = load double, double* %3079
%3081 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3082 = load double, double* %3081
%3083 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3084 = load double, double* %3083
%3085 = fmul double %3082, %3084
%3086 = fneg double %3085
%3087 = call double @llvm.fmuladd.f64(double %3078, double %3080, double %3086)
%3088 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3087, double* %3088
%3089 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3090 = load double, double* %3089
%3091 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3092 = load double, double* %3091
%3093 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3094 = load double, double* %3093
%3095 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3096 = load double, double* %3095
%3097 = fmul double %3094, %3096
%3098 = fneg double %3097
%3099 = call double @llvm.fmuladd.f64(double %3090, double %3092, double %3098)
%3100 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3099, double* %3100
%3101 = load double*, double** %11
%3102 = getelementptr inbounds double, double* %3101, i64 0
%3103 = load double, double* %3102
%3104 = load double*, double** %8
%3105 = getelementptr inbounds double, double* %3104, i64 0
%3106 = load double, double* %3105
%3107 = fsub double %3103, %3106
%3108 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3107, double* %3108
%3109 = load double*, double** %11
%3110 = getelementptr inbounds double, double* %3109, i64 1
%3111 = load double, double* %3110
%3112 = load double*, double** %8
%3113 = getelementptr inbounds double, double* %3112, i64 1
%3114 = load double, double* %3113
%3115 = fsub double %3111, %3114
%3116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3115, double* %3116
%3117 = load double*, double** %11
%3118 = getelementptr inbounds double, double* %3117, i64 2
%3119 = load double, double* %3118
%3120 = load double*, double** %8
%3121 = getelementptr inbounds double, double* %3120, i64 2
%3122 = load double, double* %3121
%3123 = fsub double %3119, %3122
%3124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3123, double* %3124
%3125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3126 = load double, double* %3125
%3127 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3128 = load double, double* %3127
%3129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3130 = load double, double* %3129
%3131 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3132 = load double, double* %3131
%3133 = fmul double %3130, %3132
%3134 = call double @llvm.fmuladd.f64(double %3126, double %3128, double %3133)
%3135 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3136 = load double, double* %3135
%3137 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3138 = load double, double* %3137
%3139 = call double @llvm.fmuladd.f64(double %3136, double %3138, double %3134)
%3140 = fcmp ogt double %3139, 0.000000e+00
br i1 %3140, label %3141, label %3142
3141: ; preds = %3016
store i32 0, i32* %7
br label %37464
3142: ; preds = %3016
%3143 = load double*, double** %12
%3144 = getelementptr inbounds double, double* %3143, i64 0
%3145 = load double, double* %3144
%3146 = load double*, double** %10
%3147 = getelementptr inbounds double, double* %3146, i64 0
%3148 = load double, double* %3147
%3149 = fsub double %3145, %3148
%3150 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3149, double* %3150
%3151 = load double*, double** %12
%3152 = getelementptr inbounds double, double* %3151, i64 1
%3153 = load double, double* %3152
%3154 = load double*, double** %10
%3155 = getelementptr inbounds double, double* %3154, i64 1
%3156 = load double, double* %3155
%3157 = fsub double %3153, %3156
%3158 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3157, double* %3158
%3159 = load double*, double** %12
%3160 = getelementptr inbounds double, double* %3159, i64 2
%3161 = load double, double* %3160
%3162 = load double*, double** %10
%3163 = getelementptr inbounds double, double* %3162, i64 2
%3164 = load double, double* %3163
%3165 = fsub double %3161, %3164
%3166 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3165, double* %3166
%3167 = load double*, double** %9
%3168 = getelementptr inbounds double, double* %3167, i64 0
%3169 = load double, double* %3168
%3170 = load double*, double** %10
%3171 = getelementptr inbounds double, double* %3170, i64 0
%3172 = load double, double* %3171
%3173 = fsub double %3169, %3172
%3174 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3173, double* %3174
%3175 = load double*, double** %9
%3176 = getelementptr inbounds double, double* %3175, i64 1
%3177 = load double, double* %3176
%3178 = load double*, double** %10
%3179 = getelementptr inbounds double, double* %3178, i64 1
%3180 = load double, double* %3179
%3181 = fsub double %3177, %3180
%3182 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3181, double* %3182
%3183 = load double*, double** %9
%3184 = getelementptr inbounds double, double* %3183, i64 2
%3185 = load double, double* %3184
%3186 = load double*, double** %10
%3187 = getelementptr inbounds double, double* %3186, i64 2
%3188 = load double, double* %3187
%3189 = fsub double %3185, %3188
%3190 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3189, double* %3190
%3191 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3192 = load double, double* %3191
%3193 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3194 = load double, double* %3193
%3195 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3196 = load double, double* %3195
%3197 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3198 = load double, double* %3197
%3199 = fmul double %3196, %3198
%3200 = fneg double %3199
%3201 = call double @llvm.fmuladd.f64(double %3192, double %3194, double %3200)
%3202 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3201, double* %3202
%3203 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3204 = load double, double* %3203
%3205 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3206 = load double, double* %3205
%3207 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3208 = load double, double* %3207
%3209 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3210 = load double, double* %3209
%3211 = fmul double %3208, %3210
%3212 = fneg double %3211
%3213 = call double @llvm.fmuladd.f64(double %3204, double %3206, double %3212)
%3214 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3213, double* %3214
%3215 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3216 = load double, double* %3215
%3217 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3218 = load double, double* %3217
%3219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3220 = load double, double* %3219
%3221 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3222 = load double, double* %3221
%3223 = fmul double %3220, %3222
%3224 = fneg double %3223
%3225 = call double @llvm.fmuladd.f64(double %3216, double %3218, double %3224)
%3226 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3225, double* %3226
%3227 = load double*, double** %13
%3228 = getelementptr inbounds double, double* %3227, i64 0
%3229 = load double, double* %3228
%3230 = load double*, double** %10
%3231 = getelementptr inbounds double, double* %3230, i64 0
%3232 = load double, double* %3231
%3233 = fsub double %3229, %3232
%3234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3233, double* %3234
%3235 = load double*, double** %13
%3236 = getelementptr inbounds double, double* %3235, i64 1
%3237 = load double, double* %3236
%3238 = load double*, double** %10
%3239 = getelementptr inbounds double, double* %3238, i64 1
%3240 = load double, double* %3239
%3241 = fsub double %3237, %3240
%3242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3241, double* %3242
%3243 = load double*, double** %13
%3244 = getelementptr inbounds double, double* %3243, i64 2
%3245 = load double, double* %3244
%3246 = load double*, double** %10
%3247 = getelementptr inbounds double, double* %3246, i64 2
%3248 = load double, double* %3247
%3249 = fsub double %3245, %3248
%3250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3249, double* %3250
%3251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3252 = load double, double* %3251
%3253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3254 = load double, double* %3253
%3255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3256 = load double, double* %3255
%3257 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3258 = load double, double* %3257
%3259 = fmul double %3256, %3258
%3260 = call double @llvm.fmuladd.f64(double %3252, double %3254, double %3259)
%3261 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3262 = load double, double* %3261
%3263 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3264 = load double, double* %3263
%3265 = call double @llvm.fmuladd.f64(double %3262, double %3264, double %3260)
%3266 = fcmp ogt double %3265, 0.000000e+00
br i1 %3266, label %3267, label %3268
3267: ; preds = %3142
store i32 0, i32* %7
br label %37464
3268: ; preds = %3142
store i32 1, i32* %7
br label %37464
3269: ; preds = %3013
%3270 = load double, double* %18
%3271 = fcmp olt double %3270, 0.000000e+00
br i1 %3271, label %3272, label %3525
3272: ; preds = %3269
%3273 = load double*, double** %12
%3274 = getelementptr inbounds double, double* %3273, i64 0
%3275 = load double, double* %3274
%3276 = load double*, double** %9
%3277 = getelementptr inbounds double, double* %3276, i64 0
%3278 = load double, double* %3277
%3279 = fsub double %3275, %3278
%3280 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3279, double* %3280
%3281 = load double*, double** %12
%3282 = getelementptr inbounds double, double* %3281, i64 1
%3283 = load double, double* %3282
%3284 = load double*, double** %9
%3285 = getelementptr inbounds double, double* %3284, i64 1
%3286 = load double, double* %3285
%3287 = fsub double %3283, %3286
%3288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3287, double* %3288
%3289 = load double*, double** %12
%3290 = getelementptr inbounds double, double* %3289, i64 2
%3291 = load double, double* %3290
%3292 = load double*, double** %9
%3293 = getelementptr inbounds double, double* %3292, i64 2
%3294 = load double, double* %3293
%3295 = fsub double %3291, %3294
%3296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3295, double* %3296
%3297 = load double*, double** %10
%3298 = getelementptr inbounds double, double* %3297, i64 0
%3299 = load double, double* %3298
%3300 = load double*, double** %9
%3301 = getelementptr inbounds double, double* %3300, i64 0
%3302 = load double, double* %3301
%3303 = fsub double %3299, %3302
%3304 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3303, double* %3304
%3305 = load double*, double** %10
%3306 = getelementptr inbounds double, double* %3305, i64 1
%3307 = load double, double* %3306
%3308 = load double*, double** %9
%3309 = getelementptr inbounds double, double* %3308, i64 1
%3310 = load double, double* %3309
%3311 = fsub double %3307, %3310
%3312 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3311, double* %3312
%3313 = load double*, double** %10
%3314 = getelementptr inbounds double, double* %3313, i64 2
%3315 = load double, double* %3314
%3316 = load double*, double** %9
%3317 = getelementptr inbounds double, double* %3316, i64 2
%3318 = load double, double* %3317
%3319 = fsub double %3315, %3318
%3320 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3319, double* %3320
%3321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3322 = load double, double* %3321
%3323 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3324 = load double, double* %3323
%3325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3326 = load double, double* %3325
%3327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3328 = load double, double* %3327
%3329 = fmul double %3326, %3328
%3330 = fneg double %3329
%3331 = call double @llvm.fmuladd.f64(double %3322, double %3324, double %3330)
%3332 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3331, double* %3332
%3333 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3334 = load double, double* %3333
%3335 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3336 = load double, double* %3335
%3337 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3338 = load double, double* %3337
%3339 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3340 = load double, double* %3339
%3341 = fmul double %3338, %3340
%3342 = fneg double %3341
%3343 = call double @llvm.fmuladd.f64(double %3334, double %3336, double %3342)
%3344 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3343, double* %3344
%3345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3346 = load double, double* %3345
%3347 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3348 = load double, double* %3347
%3349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3350 = load double, double* %3349
%3351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3352 = load double, double* %3351
%3353 = fmul double %3350, %3352
%3354 = fneg double %3353
%3355 = call double @llvm.fmuladd.f64(double %3346, double %3348, double %3354)
%3356 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3355, double* %3356
%3357 = load double*, double** %11
%3358 = getelementptr inbounds double, double* %3357, i64 0
%3359 = load double, double* %3358
%3360 = load double*, double** %9
%3361 = getelementptr inbounds double, double* %3360, i64 0
%3362 = load double, double* %3361
%3363 = fsub double %3359, %3362
%3364 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3363, double* %3364
%3365 = load double*, double** %11
%3366 = getelementptr inbounds double, double* %3365, i64 1
%3367 = load double, double* %3366
%3368 = load double*, double** %9
%3369 = getelementptr inbounds double, double* %3368, i64 1
%3370 = load double, double* %3369
%3371 = fsub double %3367, %3370
%3372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3371, double* %3372
%3373 = load double*, double** %11
%3374 = getelementptr inbounds double, double* %3373, i64 2
%3375 = load double, double* %3374
%3376 = load double*, double** %9
%3377 = getelementptr inbounds double, double* %3376, i64 2
%3378 = load double, double* %3377
%3379 = fsub double %3375, %3378
%3380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3379, double* %3380
%3381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3382 = load double, double* %3381
%3383 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3384 = load double, double* %3383
%3385 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3386 = load double, double* %3385
%3387 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3388 = load double, double* %3387
%3389 = fmul double %3386, %3388
%3390 = call double @llvm.fmuladd.f64(double %3382, double %3384, double %3389)
%3391 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3392 = load double, double* %3391
%3393 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3394 = load double, double* %3393
%3395 = call double @llvm.fmuladd.f64(double %3392, double %3394, double %3390)
%3396 = fcmp ogt double %3395, 0.000000e+00
br i1 %3396, label %3397, label %3398
3397: ; preds = %3272
store i32 0, i32* %7
br label %37464
3398: ; preds = %3272
%3399 = load double*, double** %12
%3400 = getelementptr inbounds double, double* %3399, i64 0
%3401 = load double, double* %3400
%3402 = load double*, double** %10
%3403 = getelementptr inbounds double, double* %3402, i64 0
%3404 = load double, double* %3403
%3405 = fsub double %3401, %3404
%3406 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3405, double* %3406
%3407 = load double*, double** %12
%3408 = getelementptr inbounds double, double* %3407, i64 1
%3409 = load double, double* %3408
%3410 = load double*, double** %10
%3411 = getelementptr inbounds double, double* %3410, i64 1
%3412 = load double, double* %3411
%3413 = fsub double %3409, %3412
%3414 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3413, double* %3414
%3415 = load double*, double** %12
%3416 = getelementptr inbounds double, double* %3415, i64 2
%3417 = load double, double* %3416
%3418 = load double*, double** %10
%3419 = getelementptr inbounds double, double* %3418, i64 2
%3420 = load double, double* %3419
%3421 = fsub double %3417, %3420
%3422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3421, double* %3422
%3423 = load double*, double** %8
%3424 = getelementptr inbounds double, double* %3423, i64 0
%3425 = load double, double* %3424
%3426 = load double*, double** %10
%3427 = getelementptr inbounds double, double* %3426, i64 0
%3428 = load double, double* %3427
%3429 = fsub double %3425, %3428
%3430 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3429, double* %3430
%3431 = load double*, double** %8
%3432 = getelementptr inbounds double, double* %3431, i64 1
%3433 = load double, double* %3432
%3434 = load double*, double** %10
%3435 = getelementptr inbounds double, double* %3434, i64 1
%3436 = load double, double* %3435
%3437 = fsub double %3433, %3436
%3438 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3437, double* %3438
%3439 = load double*, double** %8
%3440 = getelementptr inbounds double, double* %3439, i64 2
%3441 = load double, double* %3440
%3442 = load double*, double** %10
%3443 = getelementptr inbounds double, double* %3442, i64 2
%3444 = load double, double* %3443
%3445 = fsub double %3441, %3444
%3446 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3445, double* %3446
%3447 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3448 = load double, double* %3447
%3449 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3450 = load double, double* %3449
%3451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3452 = load double, double* %3451
%3453 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3454 = load double, double* %3453
%3455 = fmul double %3452, %3454
%3456 = fneg double %3455
%3457 = call double @llvm.fmuladd.f64(double %3448, double %3450, double %3456)
%3458 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3457, double* %3458
%3459 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3460 = load double, double* %3459
%3461 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3462 = load double, double* %3461
%3463 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3464 = load double, double* %3463
%3465 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3466 = load double, double* %3465
%3467 = fmul double %3464, %3466
%3468 = fneg double %3467
%3469 = call double @llvm.fmuladd.f64(double %3460, double %3462, double %3468)
%3470 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3469, double* %3470
%3471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3472 = load double, double* %3471
%3473 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3474 = load double, double* %3473
%3475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3476 = load double, double* %3475
%3477 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3478 = load double, double* %3477
%3479 = fmul double %3476, %3478
%3480 = fneg double %3479
%3481 = call double @llvm.fmuladd.f64(double %3472, double %3474, double %3480)
%3482 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3481, double* %3482
%3483 = load double*, double** %13
%3484 = getelementptr inbounds double, double* %3483, i64 0
%3485 = load double, double* %3484
%3486 = load double*, double** %10
%3487 = getelementptr inbounds double, double* %3486, i64 0
%3488 = load double, double* %3487
%3489 = fsub double %3485, %3488
%3490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3489, double* %3490
%3491 = load double*, double** %13
%3492 = getelementptr inbounds double, double* %3491, i64 1
%3493 = load double, double* %3492
%3494 = load double*, double** %10
%3495 = getelementptr inbounds double, double* %3494, i64 1
%3496 = load double, double* %3495
%3497 = fsub double %3493, %3496
%3498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3497, double* %3498
%3499 = load double*, double** %13
%3500 = getelementptr inbounds double, double* %3499, i64 2
%3501 = load double, double* %3500
%3502 = load double*, double** %10
%3503 = getelementptr inbounds double, double* %3502, i64 2
%3504 = load double, double* %3503
%3505 = fsub double %3501, %3504
%3506 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3505, double* %3506
%3507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3508 = load double, double* %3507
%3509 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3510 = load double, double* %3509
%3511 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3512 = load double, double* %3511
%3513 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3514 = load double, double* %3513
%3515 = fmul double %3512, %3514
%3516 = call double @llvm.fmuladd.f64(double %3508, double %3510, double %3515)
%3517 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3518 = load double, double* %3517
%3519 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3520 = load double, double* %3519
%3521 = call double @llvm.fmuladd.f64(double %3518, double %3520, double %3516)
%3522 = fcmp ogt double %3521, 0.000000e+00
br i1 %3522, label %3523, label %3524
3523: ; preds = %3398
store i32 0, i32* %7
br label %37464
3524: ; preds = %3398
store i32 1, i32* %7
br label %37464
3525: ; preds = %3269
%3526 = load double*, double** %10
%3527 = load double*, double** %8
%3528 = load double*, double** %9
%3529 = load double*, double** %11
%3530 = load double*, double** %13
%3531 = load double*, double** %12
%3532 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3533 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %3526, double* %3527, double* %3528, double* %3529, double* %3530, double* %3531, double* %3532)
store i32 %3533, i32* %7
br label %37464
3534: ; preds = %450
%3535 = load double, double* %16
%3536 = fcmp ogt double %3535, 0.000000e+00
br i1 %3536, label %3537, label %6618
3537: ; preds = %3534
%3538 = load double, double* %17
%3539 = fcmp ogt double %3538, 0.000000e+00
br i1 %3539, label %3540, label %4305
3540: ; preds = %3537
%3541 = load double, double* %19
%3542 = fcmp ogt double %3541, 0.000000e+00
br i1 %3542, label %3543, label %3796
3543: ; preds = %3540
%3544 = load double*, double** %12
%3545 = getelementptr inbounds double, double* %3544, i64 0
%3546 = load double, double* %3545
%3547 = load double*, double** %8
%3548 = getelementptr inbounds double, double* %3547, i64 0
%3549 = load double, double* %3548
%3550 = fsub double %3546, %3549
%3551 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3550, double* %3551
%3552 = load double*, double** %12
%3553 = getelementptr inbounds double, double* %3552, i64 1
%3554 = load double, double* %3553
%3555 = load double*, double** %8
%3556 = getelementptr inbounds double, double* %3555, i64 1
%3557 = load double, double* %3556
%3558 = fsub double %3554, %3557
%3559 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3558, double* %3559
%3560 = load double*, double** %12
%3561 = getelementptr inbounds double, double* %3560, i64 2
%3562 = load double, double* %3561
%3563 = load double*, double** %8
%3564 = getelementptr inbounds double, double* %3563, i64 2
%3565 = load double, double* %3564
%3566 = fsub double %3562, %3565
%3567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3566, double* %3567
%3568 = load double*, double** %9
%3569 = getelementptr inbounds double, double* %3568, i64 0
%3570 = load double, double* %3569
%3571 = load double*, double** %8
%3572 = getelementptr inbounds double, double* %3571, i64 0
%3573 = load double, double* %3572
%3574 = fsub double %3570, %3573
%3575 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3574, double* %3575
%3576 = load double*, double** %9
%3577 = getelementptr inbounds double, double* %3576, i64 1
%3578 = load double, double* %3577
%3579 = load double*, double** %8
%3580 = getelementptr inbounds double, double* %3579, i64 1
%3581 = load double, double* %3580
%3582 = fsub double %3578, %3581
%3583 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3582, double* %3583
%3584 = load double*, double** %9
%3585 = getelementptr inbounds double, double* %3584, i64 2
%3586 = load double, double* %3585
%3587 = load double*, double** %8
%3588 = getelementptr inbounds double, double* %3587, i64 2
%3589 = load double, double* %3588
%3590 = fsub double %3586, %3589
%3591 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3590, double* %3591
%3592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3593 = load double, double* %3592
%3594 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3595 = load double, double* %3594
%3596 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3597 = load double, double* %3596
%3598 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3599 = load double, double* %3598
%3600 = fmul double %3597, %3599
%3601 = fneg double %3600
%3602 = call double @llvm.fmuladd.f64(double %3593, double %3595, double %3601)
%3603 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3602, double* %3603
%3604 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3605 = load double, double* %3604
%3606 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3607 = load double, double* %3606
%3608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3609 = load double, double* %3608
%3610 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3611 = load double, double* %3610
%3612 = fmul double %3609, %3611
%3613 = fneg double %3612
%3614 = call double @llvm.fmuladd.f64(double %3605, double %3607, double %3613)
%3615 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3614, double* %3615
%3616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3617 = load double, double* %3616
%3618 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3619 = load double, double* %3618
%3620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3621 = load double, double* %3620
%3622 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3623 = load double, double* %3622
%3624 = fmul double %3621, %3623
%3625 = fneg double %3624
%3626 = call double @llvm.fmuladd.f64(double %3617, double %3619, double %3625)
%3627 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3626, double* %3627
%3628 = load double*, double** %11
%3629 = getelementptr inbounds double, double* %3628, i64 0
%3630 = load double, double* %3629
%3631 = load double*, double** %8
%3632 = getelementptr inbounds double, double* %3631, i64 0
%3633 = load double, double* %3632
%3634 = fsub double %3630, %3633
%3635 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3634, double* %3635
%3636 = load double*, double** %11
%3637 = getelementptr inbounds double, double* %3636, i64 1
%3638 = load double, double* %3637
%3639 = load double*, double** %8
%3640 = getelementptr inbounds double, double* %3639, i64 1
%3641 = load double, double* %3640
%3642 = fsub double %3638, %3641
%3643 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3642, double* %3643
%3644 = load double*, double** %11
%3645 = getelementptr inbounds double, double* %3644, i64 2
%3646 = load double, double* %3645
%3647 = load double*, double** %8
%3648 = getelementptr inbounds double, double* %3647, i64 2
%3649 = load double, double* %3648
%3650 = fsub double %3646, %3649
%3651 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3650, double* %3651
%3652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3653 = load double, double* %3652
%3654 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3655 = load double, double* %3654
%3656 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3657 = load double, double* %3656
%3658 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3659 = load double, double* %3658
%3660 = fmul double %3657, %3659
%3661 = call double @llvm.fmuladd.f64(double %3653, double %3655, double %3660)
%3662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3663 = load double, double* %3662
%3664 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3665 = load double, double* %3664
%3666 = call double @llvm.fmuladd.f64(double %3663, double %3665, double %3661)
%3667 = fcmp ogt double %3666, 0.000000e+00
br i1 %3667, label %3668, label %3669
3668: ; preds = %3543
store i32 0, i32* %7
br label %37464
3669: ; preds = %3543
%3670 = load double*, double** %12
%3671 = getelementptr inbounds double, double* %3670, i64 0
%3672 = load double, double* %3671
%3673 = load double*, double** %9
%3674 = getelementptr inbounds double, double* %3673, i64 0
%3675 = load double, double* %3674
%3676 = fsub double %3672, %3675
%3677 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3676, double* %3677
%3678 = load double*, double** %12
%3679 = getelementptr inbounds double, double* %3678, i64 1
%3680 = load double, double* %3679
%3681 = load double*, double** %9
%3682 = getelementptr inbounds double, double* %3681, i64 1
%3683 = load double, double* %3682
%3684 = fsub double %3680, %3683
%3685 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3684, double* %3685
%3686 = load double*, double** %12
%3687 = getelementptr inbounds double, double* %3686, i64 2
%3688 = load double, double* %3687
%3689 = load double*, double** %9
%3690 = getelementptr inbounds double, double* %3689, i64 2
%3691 = load double, double* %3690
%3692 = fsub double %3688, %3691
%3693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3692, double* %3693
%3694 = load double*, double** %10
%3695 = getelementptr inbounds double, double* %3694, i64 0
%3696 = load double, double* %3695
%3697 = load double*, double** %9
%3698 = getelementptr inbounds double, double* %3697, i64 0
%3699 = load double, double* %3698
%3700 = fsub double %3696, %3699
%3701 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3700, double* %3701
%3702 = load double*, double** %10
%3703 = getelementptr inbounds double, double* %3702, i64 1
%3704 = load double, double* %3703
%3705 = load double*, double** %9
%3706 = getelementptr inbounds double, double* %3705, i64 1
%3707 = load double, double* %3706
%3708 = fsub double %3704, %3707
%3709 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3708, double* %3709
%3710 = load double*, double** %10
%3711 = getelementptr inbounds double, double* %3710, i64 2
%3712 = load double, double* %3711
%3713 = load double*, double** %9
%3714 = getelementptr inbounds double, double* %3713, i64 2
%3715 = load double, double* %3714
%3716 = fsub double %3712, %3715
%3717 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3716, double* %3717
%3718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3719 = load double, double* %3718
%3720 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3721 = load double, double* %3720
%3722 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3723 = load double, double* %3722
%3724 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3725 = load double, double* %3724
%3726 = fmul double %3723, %3725
%3727 = fneg double %3726
%3728 = call double @llvm.fmuladd.f64(double %3719, double %3721, double %3727)
%3729 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3728, double* %3729
%3730 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3731 = load double, double* %3730
%3732 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3733 = load double, double* %3732
%3734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3735 = load double, double* %3734
%3736 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3737 = load double, double* %3736
%3738 = fmul double %3735, %3737
%3739 = fneg double %3738
%3740 = call double @llvm.fmuladd.f64(double %3731, double %3733, double %3739)
%3741 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3740, double* %3741
%3742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3743 = load double, double* %3742
%3744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3745 = load double, double* %3744
%3746 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3747 = load double, double* %3746
%3748 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3749 = load double, double* %3748
%3750 = fmul double %3747, %3749
%3751 = fneg double %3750
%3752 = call double @llvm.fmuladd.f64(double %3743, double %3745, double %3751)
%3753 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3752, double* %3753
%3754 = load double*, double** %13
%3755 = getelementptr inbounds double, double* %3754, i64 0
%3756 = load double, double* %3755
%3757 = load double*, double** %9
%3758 = getelementptr inbounds double, double* %3757, i64 0
%3759 = load double, double* %3758
%3760 = fsub double %3756, %3759
%3761 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3760, double* %3761
%3762 = load double*, double** %13
%3763 = getelementptr inbounds double, double* %3762, i64 1
%3764 = load double, double* %3763
%3765 = load double*, double** %9
%3766 = getelementptr inbounds double, double* %3765, i64 1
%3767 = load double, double* %3766
%3768 = fsub double %3764, %3767
%3769 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3768, double* %3769
%3770 = load double*, double** %13
%3771 = getelementptr inbounds double, double* %3770, i64 2
%3772 = load double, double* %3771
%3773 = load double*, double** %9
%3774 = getelementptr inbounds double, double* %3773, i64 2
%3775 = load double, double* %3774
%3776 = fsub double %3772, %3775
%3777 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3776, double* %3777
%3778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3779 = load double, double* %3778
%3780 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3781 = load double, double* %3780
%3782 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3783 = load double, double* %3782
%3784 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3785 = load double, double* %3784
%3786 = fmul double %3783, %3785
%3787 = call double @llvm.fmuladd.f64(double %3779, double %3781, double %3786)
%3788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3789 = load double, double* %3788
%3790 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3791 = load double, double* %3790
%3792 = call double @llvm.fmuladd.f64(double %3789, double %3791, double %3787)
%3793 = fcmp ogt double %3792, 0.000000e+00
br i1 %3793, label %3794, label %3795
3794: ; preds = %3669
store i32 0, i32* %7
br label %37464
3795: ; preds = %3669
store i32 1, i32* %7
br label %37464
3796: ; preds = %3540
%3797 = load double, double* %18
%3798 = fcmp ogt double %3797, 0.000000e+00
br i1 %3798, label %3799, label %4052
3799: ; preds = %3796
%3800 = load double*, double** %13
%3801 = getelementptr inbounds double, double* %3800, i64 0
%3802 = load double, double* %3801
%3803 = load double*, double** %8
%3804 = getelementptr inbounds double, double* %3803, i64 0
%3805 = load double, double* %3804
%3806 = fsub double %3802, %3805
%3807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3806, double* %3807
%3808 = load double*, double** %13
%3809 = getelementptr inbounds double, double* %3808, i64 1
%3810 = load double, double* %3809
%3811 = load double*, double** %8
%3812 = getelementptr inbounds double, double* %3811, i64 1
%3813 = load double, double* %3812
%3814 = fsub double %3810, %3813
%3815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3814, double* %3815
%3816 = load double*, double** %13
%3817 = getelementptr inbounds double, double* %3816, i64 2
%3818 = load double, double* %3817
%3819 = load double*, double** %8
%3820 = getelementptr inbounds double, double* %3819, i64 2
%3821 = load double, double* %3820
%3822 = fsub double %3818, %3821
%3823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3822, double* %3823
%3824 = load double*, double** %9
%3825 = getelementptr inbounds double, double* %3824, i64 0
%3826 = load double, double* %3825
%3827 = load double*, double** %8
%3828 = getelementptr inbounds double, double* %3827, i64 0
%3829 = load double, double* %3828
%3830 = fsub double %3826, %3829
%3831 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3830, double* %3831
%3832 = load double*, double** %9
%3833 = getelementptr inbounds double, double* %3832, i64 1
%3834 = load double, double* %3833
%3835 = load double*, double** %8
%3836 = getelementptr inbounds double, double* %3835, i64 1
%3837 = load double, double* %3836
%3838 = fsub double %3834, %3837
%3839 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3838, double* %3839
%3840 = load double*, double** %9
%3841 = getelementptr inbounds double, double* %3840, i64 2
%3842 = load double, double* %3841
%3843 = load double*, double** %8
%3844 = getelementptr inbounds double, double* %3843, i64 2
%3845 = load double, double* %3844
%3846 = fsub double %3842, %3845
%3847 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3846, double* %3847
%3848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3849 = load double, double* %3848
%3850 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3851 = load double, double* %3850
%3852 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3853 = load double, double* %3852
%3854 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3855 = load double, double* %3854
%3856 = fmul double %3853, %3855
%3857 = fneg double %3856
%3858 = call double @llvm.fmuladd.f64(double %3849, double %3851, double %3857)
%3859 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3858, double* %3859
%3860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3861 = load double, double* %3860
%3862 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3863 = load double, double* %3862
%3864 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3865 = load double, double* %3864
%3866 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3867 = load double, double* %3866
%3868 = fmul double %3865, %3867
%3869 = fneg double %3868
%3870 = call double @llvm.fmuladd.f64(double %3861, double %3863, double %3869)
%3871 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3870, double* %3871
%3872 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3873 = load double, double* %3872
%3874 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3875 = load double, double* %3874
%3876 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3877 = load double, double* %3876
%3878 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3879 = load double, double* %3878
%3880 = fmul double %3877, %3879
%3881 = fneg double %3880
%3882 = call double @llvm.fmuladd.f64(double %3873, double %3875, double %3881)
%3883 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %3882, double* %3883
%3884 = load double*, double** %12
%3885 = getelementptr inbounds double, double* %3884, i64 0
%3886 = load double, double* %3885
%3887 = load double*, double** %8
%3888 = getelementptr inbounds double, double* %3887, i64 0
%3889 = load double, double* %3888
%3890 = fsub double %3886, %3889
%3891 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3890, double* %3891
%3892 = load double*, double** %12
%3893 = getelementptr inbounds double, double* %3892, i64 1
%3894 = load double, double* %3893
%3895 = load double*, double** %8
%3896 = getelementptr inbounds double, double* %3895, i64 1
%3897 = load double, double* %3896
%3898 = fsub double %3894, %3897
%3899 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3898, double* %3899
%3900 = load double*, double** %12
%3901 = getelementptr inbounds double, double* %3900, i64 2
%3902 = load double, double* %3901
%3903 = load double*, double** %8
%3904 = getelementptr inbounds double, double* %3903, i64 2
%3905 = load double, double* %3904
%3906 = fsub double %3902, %3905
%3907 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3906, double* %3907
%3908 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3909 = load double, double* %3908
%3910 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%3911 = load double, double* %3910
%3912 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3913 = load double, double* %3912
%3914 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%3915 = load double, double* %3914
%3916 = fmul double %3913, %3915
%3917 = call double @llvm.fmuladd.f64(double %3909, double %3911, double %3916)
%3918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3919 = load double, double* %3918
%3920 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%3921 = load double, double* %3920
%3922 = call double @llvm.fmuladd.f64(double %3919, double %3921, double %3917)
%3923 = fcmp ogt double %3922, 0.000000e+00
br i1 %3923, label %3924, label %3925
3924: ; preds = %3799
store i32 0, i32* %7
br label %37464
3925: ; preds = %3799
%3926 = load double*, double** %13
%3927 = getelementptr inbounds double, double* %3926, i64 0
%3928 = load double, double* %3927
%3929 = load double*, double** %9
%3930 = getelementptr inbounds double, double* %3929, i64 0
%3931 = load double, double* %3930
%3932 = fsub double %3928, %3931
%3933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %3932, double* %3933
%3934 = load double*, double** %13
%3935 = getelementptr inbounds double, double* %3934, i64 1
%3936 = load double, double* %3935
%3937 = load double*, double** %9
%3938 = getelementptr inbounds double, double* %3937, i64 1
%3939 = load double, double* %3938
%3940 = fsub double %3936, %3939
%3941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %3940, double* %3941
%3942 = load double*, double** %13
%3943 = getelementptr inbounds double, double* %3942, i64 2
%3944 = load double, double* %3943
%3945 = load double*, double** %9
%3946 = getelementptr inbounds double, double* %3945, i64 2
%3947 = load double, double* %3946
%3948 = fsub double %3944, %3947
%3949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %3948, double* %3949
%3950 = load double*, double** %10
%3951 = getelementptr inbounds double, double* %3950, i64 0
%3952 = load double, double* %3951
%3953 = load double*, double** %9
%3954 = getelementptr inbounds double, double* %3953, i64 0
%3955 = load double, double* %3954
%3956 = fsub double %3952, %3955
%3957 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %3956, double* %3957
%3958 = load double*, double** %10
%3959 = getelementptr inbounds double, double* %3958, i64 1
%3960 = load double, double* %3959
%3961 = load double*, double** %9
%3962 = getelementptr inbounds double, double* %3961, i64 1
%3963 = load double, double* %3962
%3964 = fsub double %3960, %3963
%3965 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %3964, double* %3965
%3966 = load double*, double** %10
%3967 = getelementptr inbounds double, double* %3966, i64 2
%3968 = load double, double* %3967
%3969 = load double*, double** %9
%3970 = getelementptr inbounds double, double* %3969, i64 2
%3971 = load double, double* %3970
%3972 = fsub double %3968, %3971
%3973 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %3972, double* %3973
%3974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%3975 = load double, double* %3974
%3976 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3977 = load double, double* %3976
%3978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3979 = load double, double* %3978
%3980 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%3981 = load double, double* %3980
%3982 = fmul double %3979, %3981
%3983 = fneg double %3982
%3984 = call double @llvm.fmuladd.f64(double %3975, double %3977, double %3983)
%3985 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %3984, double* %3985
%3986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%3987 = load double, double* %3986
%3988 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%3989 = load double, double* %3988
%3990 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3991 = load double, double* %3990
%3992 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%3993 = load double, double* %3992
%3994 = fmul double %3991, %3993
%3995 = fneg double %3994
%3996 = call double @llvm.fmuladd.f64(double %3987, double %3989, double %3995)
%3997 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %3996, double* %3997
%3998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%3999 = load double, double* %3998
%4000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4001 = load double, double* %4000
%4002 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4003 = load double, double* %4002
%4004 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4005 = load double, double* %4004
%4006 = fmul double %4003, %4005
%4007 = fneg double %4006
%4008 = call double @llvm.fmuladd.f64(double %3999, double %4001, double %4007)
%4009 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4008, double* %4009
%4010 = load double*, double** %11
%4011 = getelementptr inbounds double, double* %4010, i64 0
%4012 = load double, double* %4011
%4013 = load double*, double** %9
%4014 = getelementptr inbounds double, double* %4013, i64 0
%4015 = load double, double* %4014
%4016 = fsub double %4012, %4015
%4017 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4016, double* %4017
%4018 = load double*, double** %11
%4019 = getelementptr inbounds double, double* %4018, i64 1
%4020 = load double, double* %4019
%4021 = load double*, double** %9
%4022 = getelementptr inbounds double, double* %4021, i64 1
%4023 = load double, double* %4022
%4024 = fsub double %4020, %4023
%4025 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4024, double* %4025
%4026 = load double*, double** %11
%4027 = getelementptr inbounds double, double* %4026, i64 2
%4028 = load double, double* %4027
%4029 = load double*, double** %9
%4030 = getelementptr inbounds double, double* %4029, i64 2
%4031 = load double, double* %4030
%4032 = fsub double %4028, %4031
%4033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4032, double* %4033
%4034 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4035 = load double, double* %4034
%4036 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4037 = load double, double* %4036
%4038 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4039 = load double, double* %4038
%4040 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4041 = load double, double* %4040
%4042 = fmul double %4039, %4041
%4043 = call double @llvm.fmuladd.f64(double %4035, double %4037, double %4042)
%4044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4045 = load double, double* %4044
%4046 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4047 = load double, double* %4046
%4048 = call double @llvm.fmuladd.f64(double %4045, double %4047, double %4043)
%4049 = fcmp ogt double %4048, 0.000000e+00
br i1 %4049, label %4050, label %4051
4050: ; preds = %3925
store i32 0, i32* %7
br label %37464
4051: ; preds = %3925
store i32 1, i32* %7
br label %37464
4052: ; preds = %3796
%4053 = load double*, double** %11
%4054 = getelementptr inbounds double, double* %4053, i64 0
%4055 = load double, double* %4054
%4056 = load double*, double** %10
%4057 = getelementptr inbounds double, double* %4056, i64 0
%4058 = load double, double* %4057
%4059 = fsub double %4055, %4058
%4060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4059, double* %4060
%4061 = load double*, double** %11
%4062 = getelementptr inbounds double, double* %4061, i64 1
%4063 = load double, double* %4062
%4064 = load double*, double** %10
%4065 = getelementptr inbounds double, double* %4064, i64 1
%4066 = load double, double* %4065
%4067 = fsub double %4063, %4066
%4068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4067, double* %4068
%4069 = load double*, double** %11
%4070 = getelementptr inbounds double, double* %4069, i64 2
%4071 = load double, double* %4070
%4072 = load double*, double** %10
%4073 = getelementptr inbounds double, double* %4072, i64 2
%4074 = load double, double* %4073
%4075 = fsub double %4071, %4074
%4076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4075, double* %4076
%4077 = load double*, double** %9
%4078 = getelementptr inbounds double, double* %4077, i64 0
%4079 = load double, double* %4078
%4080 = load double*, double** %10
%4081 = getelementptr inbounds double, double* %4080, i64 0
%4082 = load double, double* %4081
%4083 = fsub double %4079, %4082
%4084 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4083, double* %4084
%4085 = load double*, double** %9
%4086 = getelementptr inbounds double, double* %4085, i64 1
%4087 = load double, double* %4086
%4088 = load double*, double** %10
%4089 = getelementptr inbounds double, double* %4088, i64 1
%4090 = load double, double* %4089
%4091 = fsub double %4087, %4090
%4092 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4091, double* %4092
%4093 = load double*, double** %9
%4094 = getelementptr inbounds double, double* %4093, i64 2
%4095 = load double, double* %4094
%4096 = load double*, double** %10
%4097 = getelementptr inbounds double, double* %4096, i64 2
%4098 = load double, double* %4097
%4099 = fsub double %4095, %4098
%4100 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4099, double* %4100
%4101 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4102 = load double, double* %4101
%4103 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4104 = load double, double* %4103
%4105 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4106 = load double, double* %4105
%4107 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4108 = load double, double* %4107
%4109 = fmul double %4106, %4108
%4110 = fneg double %4109
%4111 = call double @llvm.fmuladd.f64(double %4102, double %4104, double %4110)
%4112 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4111, double* %4112
%4113 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4114 = load double, double* %4113
%4115 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4116 = load double, double* %4115
%4117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4118 = load double, double* %4117
%4119 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4120 = load double, double* %4119
%4121 = fmul double %4118, %4120
%4122 = fneg double %4121
%4123 = call double @llvm.fmuladd.f64(double %4114, double %4116, double %4122)
%4124 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4123, double* %4124
%4125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4126 = load double, double* %4125
%4127 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4128 = load double, double* %4127
%4129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4130 = load double, double* %4129
%4131 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4132 = load double, double* %4131
%4133 = fmul double %4130, %4132
%4134 = fneg double %4133
%4135 = call double @llvm.fmuladd.f64(double %4126, double %4128, double %4134)
%4136 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4135, double* %4136
%4137 = load double*, double** %13
%4138 = getelementptr inbounds double, double* %4137, i64 0
%4139 = load double, double* %4138
%4140 = load double*, double** %10
%4141 = getelementptr inbounds double, double* %4140, i64 0
%4142 = load double, double* %4141
%4143 = fsub double %4139, %4142
%4144 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4143, double* %4144
%4145 = load double*, double** %13
%4146 = getelementptr inbounds double, double* %4145, i64 1
%4147 = load double, double* %4146
%4148 = load double*, double** %10
%4149 = getelementptr inbounds double, double* %4148, i64 1
%4150 = load double, double* %4149
%4151 = fsub double %4147, %4150
%4152 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4151, double* %4152
%4153 = load double*, double** %13
%4154 = getelementptr inbounds double, double* %4153, i64 2
%4155 = load double, double* %4154
%4156 = load double*, double** %10
%4157 = getelementptr inbounds double, double* %4156, i64 2
%4158 = load double, double* %4157
%4159 = fsub double %4155, %4158
%4160 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4159, double* %4160
%4161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4162 = load double, double* %4161
%4163 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4164 = load double, double* %4163
%4165 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4166 = load double, double* %4165
%4167 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4168 = load double, double* %4167
%4169 = fmul double %4166, %4168
%4170 = call double @llvm.fmuladd.f64(double %4162, double %4164, double %4169)
%4171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4172 = load double, double* %4171
%4173 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4174 = load double, double* %4173
%4175 = call double @llvm.fmuladd.f64(double %4172, double %4174, double %4170)
%4176 = fcmp ogt double %4175, 0.000000e+00
br i1 %4176, label %4177, label %4178
4177: ; preds = %4052
store i32 0, i32* %7
br label %37464
4178: ; preds = %4052
%4179 = load double*, double** %11
%4180 = getelementptr inbounds double, double* %4179, i64 0
%4181 = load double, double* %4180
%4182 = load double*, double** %9
%4183 = getelementptr inbounds double, double* %4182, i64 0
%4184 = load double, double* %4183
%4185 = fsub double %4181, %4184
%4186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4185, double* %4186
%4187 = load double*, double** %11
%4188 = getelementptr inbounds double, double* %4187, i64 1
%4189 = load double, double* %4188
%4190 = load double*, double** %9
%4191 = getelementptr inbounds double, double* %4190, i64 1
%4192 = load double, double* %4191
%4193 = fsub double %4189, %4192
%4194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4193, double* %4194
%4195 = load double*, double** %11
%4196 = getelementptr inbounds double, double* %4195, i64 2
%4197 = load double, double* %4196
%4198 = load double*, double** %9
%4199 = getelementptr inbounds double, double* %4198, i64 2
%4200 = load double, double* %4199
%4201 = fsub double %4197, %4200
%4202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4201, double* %4202
%4203 = load double*, double** %8
%4204 = getelementptr inbounds double, double* %4203, i64 0
%4205 = load double, double* %4204
%4206 = load double*, double** %9
%4207 = getelementptr inbounds double, double* %4206, i64 0
%4208 = load double, double* %4207
%4209 = fsub double %4205, %4208
%4210 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4209, double* %4210
%4211 = load double*, double** %8
%4212 = getelementptr inbounds double, double* %4211, i64 1
%4213 = load double, double* %4212
%4214 = load double*, double** %9
%4215 = getelementptr inbounds double, double* %4214, i64 1
%4216 = load double, double* %4215
%4217 = fsub double %4213, %4216
%4218 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4217, double* %4218
%4219 = load double*, double** %8
%4220 = getelementptr inbounds double, double* %4219, i64 2
%4221 = load double, double* %4220
%4222 = load double*, double** %9
%4223 = getelementptr inbounds double, double* %4222, i64 2
%4224 = load double, double* %4223
%4225 = fsub double %4221, %4224
%4226 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4225, double* %4226
%4227 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4228 = load double, double* %4227
%4229 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4230 = load double, double* %4229
%4231 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4232 = load double, double* %4231
%4233 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4234 = load double, double* %4233
%4235 = fmul double %4232, %4234
%4236 = fneg double %4235
%4237 = call double @llvm.fmuladd.f64(double %4228, double %4230, double %4236)
%4238 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4237, double* %4238
%4239 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4240 = load double, double* %4239
%4241 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4242 = load double, double* %4241
%4243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4244 = load double, double* %4243
%4245 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4246 = load double, double* %4245
%4247 = fmul double %4244, %4246
%4248 = fneg double %4247
%4249 = call double @llvm.fmuladd.f64(double %4240, double %4242, double %4248)
%4250 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4249, double* %4250
%4251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4252 = load double, double* %4251
%4253 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4254 = load double, double* %4253
%4255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4256 = load double, double* %4255
%4257 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4258 = load double, double* %4257
%4259 = fmul double %4256, %4258
%4260 = fneg double %4259
%4261 = call double @llvm.fmuladd.f64(double %4252, double %4254, double %4260)
%4262 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4261, double* %4262
%4263 = load double*, double** %12
%4264 = getelementptr inbounds double, double* %4263, i64 0
%4265 = load double, double* %4264
%4266 = load double*, double** %9
%4267 = getelementptr inbounds double, double* %4266, i64 0
%4268 = load double, double* %4267
%4269 = fsub double %4265, %4268
%4270 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4269, double* %4270
%4271 = load double*, double** %12
%4272 = getelementptr inbounds double, double* %4271, i64 1
%4273 = load double, double* %4272
%4274 = load double*, double** %9
%4275 = getelementptr inbounds double, double* %4274, i64 1
%4276 = load double, double* %4275
%4277 = fsub double %4273, %4276
%4278 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4277, double* %4278
%4279 = load double*, double** %12
%4280 = getelementptr inbounds double, double* %4279, i64 2
%4281 = load double, double* %4280
%4282 = load double*, double** %9
%4283 = getelementptr inbounds double, double* %4282, i64 2
%4284 = load double, double* %4283
%4285 = fsub double %4281, %4284
%4286 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4285, double* %4286
%4287 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4288 = load double, double* %4287
%4289 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4290 = load double, double* %4289
%4291 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4292 = load double, double* %4291
%4293 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4294 = load double, double* %4293
%4295 = fmul double %4292, %4294
%4296 = call double @llvm.fmuladd.f64(double %4288, double %4290, double %4295)
%4297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4298 = load double, double* %4297
%4299 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4300 = load double, double* %4299
%4301 = call double @llvm.fmuladd.f64(double %4298, double %4300, double %4296)
%4302 = fcmp ogt double %4301, 0.000000e+00
br i1 %4302, label %4303, label %4304
4303: ; preds = %4178
store i32 0, i32* %7
br label %37464
4304: ; preds = %4178
store i32 1, i32* %7
br label %37464
4305: ; preds = %3537
%4306 = load double, double* %17
%4307 = fcmp olt double %4306, 0.000000e+00
br i1 %4307, label %4308, label %5073
4308: ; preds = %4305
%4309 = load double, double* %19
%4310 = fcmp olt double %4309, 0.000000e+00
br i1 %4310, label %4311, label %4564
4311: ; preds = %4308
%4312 = load double*, double** %12
%4313 = getelementptr inbounds double, double* %4312, i64 0
%4314 = load double, double* %4313
%4315 = load double*, double** %10
%4316 = getelementptr inbounds double, double* %4315, i64 0
%4317 = load double, double* %4316
%4318 = fsub double %4314, %4317
%4319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4318, double* %4319
%4320 = load double*, double** %12
%4321 = getelementptr inbounds double, double* %4320, i64 1
%4322 = load double, double* %4321
%4323 = load double*, double** %10
%4324 = getelementptr inbounds double, double* %4323, i64 1
%4325 = load double, double* %4324
%4326 = fsub double %4322, %4325
%4327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4326, double* %4327
%4328 = load double*, double** %12
%4329 = getelementptr inbounds double, double* %4328, i64 2
%4330 = load double, double* %4329
%4331 = load double*, double** %10
%4332 = getelementptr inbounds double, double* %4331, i64 2
%4333 = load double, double* %4332
%4334 = fsub double %4330, %4333
%4335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4334, double* %4335
%4336 = load double*, double** %9
%4337 = getelementptr inbounds double, double* %4336, i64 0
%4338 = load double, double* %4337
%4339 = load double*, double** %10
%4340 = getelementptr inbounds double, double* %4339, i64 0
%4341 = load double, double* %4340
%4342 = fsub double %4338, %4341
%4343 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4342, double* %4343
%4344 = load double*, double** %9
%4345 = getelementptr inbounds double, double* %4344, i64 1
%4346 = load double, double* %4345
%4347 = load double*, double** %10
%4348 = getelementptr inbounds double, double* %4347, i64 1
%4349 = load double, double* %4348
%4350 = fsub double %4346, %4349
%4351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4350, double* %4351
%4352 = load double*, double** %9
%4353 = getelementptr inbounds double, double* %4352, i64 2
%4354 = load double, double* %4353
%4355 = load double*, double** %10
%4356 = getelementptr inbounds double, double* %4355, i64 2
%4357 = load double, double* %4356
%4358 = fsub double %4354, %4357
%4359 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4358, double* %4359
%4360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4361 = load double, double* %4360
%4362 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4363 = load double, double* %4362
%4364 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4365 = load double, double* %4364
%4366 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4367 = load double, double* %4366
%4368 = fmul double %4365, %4367
%4369 = fneg double %4368
%4370 = call double @llvm.fmuladd.f64(double %4361, double %4363, double %4369)
%4371 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4370, double* %4371
%4372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4373 = load double, double* %4372
%4374 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4375 = load double, double* %4374
%4376 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4377 = load double, double* %4376
%4378 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4379 = load double, double* %4378
%4380 = fmul double %4377, %4379
%4381 = fneg double %4380
%4382 = call double @llvm.fmuladd.f64(double %4373, double %4375, double %4381)
%4383 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4382, double* %4383
%4384 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4385 = load double, double* %4384
%4386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4387 = load double, double* %4386
%4388 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4389 = load double, double* %4388
%4390 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4391 = load double, double* %4390
%4392 = fmul double %4389, %4391
%4393 = fneg double %4392
%4394 = call double @llvm.fmuladd.f64(double %4385, double %4387, double %4393)
%4395 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4394, double* %4395
%4396 = load double*, double** %11
%4397 = getelementptr inbounds double, double* %4396, i64 0
%4398 = load double, double* %4397
%4399 = load double*, double** %10
%4400 = getelementptr inbounds double, double* %4399, i64 0
%4401 = load double, double* %4400
%4402 = fsub double %4398, %4401
%4403 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4402, double* %4403
%4404 = load double*, double** %11
%4405 = getelementptr inbounds double, double* %4404, i64 1
%4406 = load double, double* %4405
%4407 = load double*, double** %10
%4408 = getelementptr inbounds double, double* %4407, i64 1
%4409 = load double, double* %4408
%4410 = fsub double %4406, %4409
%4411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4410, double* %4411
%4412 = load double*, double** %11
%4413 = getelementptr inbounds double, double* %4412, i64 2
%4414 = load double, double* %4413
%4415 = load double*, double** %10
%4416 = getelementptr inbounds double, double* %4415, i64 2
%4417 = load double, double* %4416
%4418 = fsub double %4414, %4417
%4419 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4418, double* %4419
%4420 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4421 = load double, double* %4420
%4422 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4423 = load double, double* %4422
%4424 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4425 = load double, double* %4424
%4426 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4427 = load double, double* %4426
%4428 = fmul double %4425, %4427
%4429 = call double @llvm.fmuladd.f64(double %4421, double %4423, double %4428)
%4430 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4431 = load double, double* %4430
%4432 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4433 = load double, double* %4432
%4434 = call double @llvm.fmuladd.f64(double %4431, double %4433, double %4429)
%4435 = fcmp ogt double %4434, 0.000000e+00
br i1 %4435, label %4436, label %4437
4436: ; preds = %4311
store i32 0, i32* %7
br label %37464
4437: ; preds = %4311
%4438 = load double*, double** %12
%4439 = getelementptr inbounds double, double* %4438, i64 0
%4440 = load double, double* %4439
%4441 = load double*, double** %9
%4442 = getelementptr inbounds double, double* %4441, i64 0
%4443 = load double, double* %4442
%4444 = fsub double %4440, %4443
%4445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4444, double* %4445
%4446 = load double*, double** %12
%4447 = getelementptr inbounds double, double* %4446, i64 1
%4448 = load double, double* %4447
%4449 = load double*, double** %9
%4450 = getelementptr inbounds double, double* %4449, i64 1
%4451 = load double, double* %4450
%4452 = fsub double %4448, %4451
%4453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4452, double* %4453
%4454 = load double*, double** %12
%4455 = getelementptr inbounds double, double* %4454, i64 2
%4456 = load double, double* %4455
%4457 = load double*, double** %9
%4458 = getelementptr inbounds double, double* %4457, i64 2
%4459 = load double, double* %4458
%4460 = fsub double %4456, %4459
%4461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4460, double* %4461
%4462 = load double*, double** %8
%4463 = getelementptr inbounds double, double* %4462, i64 0
%4464 = load double, double* %4463
%4465 = load double*, double** %9
%4466 = getelementptr inbounds double, double* %4465, i64 0
%4467 = load double, double* %4466
%4468 = fsub double %4464, %4467
%4469 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4468, double* %4469
%4470 = load double*, double** %8
%4471 = getelementptr inbounds double, double* %4470, i64 1
%4472 = load double, double* %4471
%4473 = load double*, double** %9
%4474 = getelementptr inbounds double, double* %4473, i64 1
%4475 = load double, double* %4474
%4476 = fsub double %4472, %4475
%4477 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4476, double* %4477
%4478 = load double*, double** %8
%4479 = getelementptr inbounds double, double* %4478, i64 2
%4480 = load double, double* %4479
%4481 = load double*, double** %9
%4482 = getelementptr inbounds double, double* %4481, i64 2
%4483 = load double, double* %4482
%4484 = fsub double %4480, %4483
%4485 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4484, double* %4485
%4486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4487 = load double, double* %4486
%4488 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4489 = load double, double* %4488
%4490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4491 = load double, double* %4490
%4492 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4493 = load double, double* %4492
%4494 = fmul double %4491, %4493
%4495 = fneg double %4494
%4496 = call double @llvm.fmuladd.f64(double %4487, double %4489, double %4495)
%4497 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4496, double* %4497
%4498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4499 = load double, double* %4498
%4500 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4501 = load double, double* %4500
%4502 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4503 = load double, double* %4502
%4504 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4505 = load double, double* %4504
%4506 = fmul double %4503, %4505
%4507 = fneg double %4506
%4508 = call double @llvm.fmuladd.f64(double %4499, double %4501, double %4507)
%4509 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4508, double* %4509
%4510 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4511 = load double, double* %4510
%4512 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4513 = load double, double* %4512
%4514 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4515 = load double, double* %4514
%4516 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4517 = load double, double* %4516
%4518 = fmul double %4515, %4517
%4519 = fneg double %4518
%4520 = call double @llvm.fmuladd.f64(double %4511, double %4513, double %4519)
%4521 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4520, double* %4521
%4522 = load double*, double** %13
%4523 = getelementptr inbounds double, double* %4522, i64 0
%4524 = load double, double* %4523
%4525 = load double*, double** %9
%4526 = getelementptr inbounds double, double* %4525, i64 0
%4527 = load double, double* %4526
%4528 = fsub double %4524, %4527
%4529 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4528, double* %4529
%4530 = load double*, double** %13
%4531 = getelementptr inbounds double, double* %4530, i64 1
%4532 = load double, double* %4531
%4533 = load double*, double** %9
%4534 = getelementptr inbounds double, double* %4533, i64 1
%4535 = load double, double* %4534
%4536 = fsub double %4532, %4535
%4537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4536, double* %4537
%4538 = load double*, double** %13
%4539 = getelementptr inbounds double, double* %4538, i64 2
%4540 = load double, double* %4539
%4541 = load double*, double** %9
%4542 = getelementptr inbounds double, double* %4541, i64 2
%4543 = load double, double* %4542
%4544 = fsub double %4540, %4543
%4545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4544, double* %4545
%4546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4547 = load double, double* %4546
%4548 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4549 = load double, double* %4548
%4550 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4551 = load double, double* %4550
%4552 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4553 = load double, double* %4552
%4554 = fmul double %4551, %4553
%4555 = call double @llvm.fmuladd.f64(double %4547, double %4549, double %4554)
%4556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4557 = load double, double* %4556
%4558 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4559 = load double, double* %4558
%4560 = call double @llvm.fmuladd.f64(double %4557, double %4559, double %4555)
%4561 = fcmp ogt double %4560, 0.000000e+00
br i1 %4561, label %4562, label %4563
4562: ; preds = %4437
store i32 0, i32* %7
br label %37464
4563: ; preds = %4437
store i32 1, i32* %7
br label %37464
4564: ; preds = %4308
%4565 = load double, double* %18
%4566 = fcmp olt double %4565, 0.000000e+00
br i1 %4566, label %4567, label %4820
4567: ; preds = %4564
%4568 = load double*, double** %13
%4569 = getelementptr inbounds double, double* %4568, i64 0
%4570 = load double, double* %4569
%4571 = load double*, double** %10
%4572 = getelementptr inbounds double, double* %4571, i64 0
%4573 = load double, double* %4572
%4574 = fsub double %4570, %4573
%4575 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4574, double* %4575
%4576 = load double*, double** %13
%4577 = getelementptr inbounds double, double* %4576, i64 1
%4578 = load double, double* %4577
%4579 = load double*, double** %10
%4580 = getelementptr inbounds double, double* %4579, i64 1
%4581 = load double, double* %4580
%4582 = fsub double %4578, %4581
%4583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4582, double* %4583
%4584 = load double*, double** %13
%4585 = getelementptr inbounds double, double* %4584, i64 2
%4586 = load double, double* %4585
%4587 = load double*, double** %10
%4588 = getelementptr inbounds double, double* %4587, i64 2
%4589 = load double, double* %4588
%4590 = fsub double %4586, %4589
%4591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4590, double* %4591
%4592 = load double*, double** %9
%4593 = getelementptr inbounds double, double* %4592, i64 0
%4594 = load double, double* %4593
%4595 = load double*, double** %10
%4596 = getelementptr inbounds double, double* %4595, i64 0
%4597 = load double, double* %4596
%4598 = fsub double %4594, %4597
%4599 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4598, double* %4599
%4600 = load double*, double** %9
%4601 = getelementptr inbounds double, double* %4600, i64 1
%4602 = load double, double* %4601
%4603 = load double*, double** %10
%4604 = getelementptr inbounds double, double* %4603, i64 1
%4605 = load double, double* %4604
%4606 = fsub double %4602, %4605
%4607 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4606, double* %4607
%4608 = load double*, double** %9
%4609 = getelementptr inbounds double, double* %4608, i64 2
%4610 = load double, double* %4609
%4611 = load double*, double** %10
%4612 = getelementptr inbounds double, double* %4611, i64 2
%4613 = load double, double* %4612
%4614 = fsub double %4610, %4613
%4615 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4614, double* %4615
%4616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4617 = load double, double* %4616
%4618 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4619 = load double, double* %4618
%4620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4621 = load double, double* %4620
%4622 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4623 = load double, double* %4622
%4624 = fmul double %4621, %4623
%4625 = fneg double %4624
%4626 = call double @llvm.fmuladd.f64(double %4617, double %4619, double %4625)
%4627 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4626, double* %4627
%4628 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4629 = load double, double* %4628
%4630 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4631 = load double, double* %4630
%4632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4633 = load double, double* %4632
%4634 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4635 = load double, double* %4634
%4636 = fmul double %4633, %4635
%4637 = fneg double %4636
%4638 = call double @llvm.fmuladd.f64(double %4629, double %4631, double %4637)
%4639 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4638, double* %4639
%4640 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4641 = load double, double* %4640
%4642 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4643 = load double, double* %4642
%4644 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4645 = load double, double* %4644
%4646 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4647 = load double, double* %4646
%4648 = fmul double %4645, %4647
%4649 = fneg double %4648
%4650 = call double @llvm.fmuladd.f64(double %4641, double %4643, double %4649)
%4651 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4650, double* %4651
%4652 = load double*, double** %12
%4653 = getelementptr inbounds double, double* %4652, i64 0
%4654 = load double, double* %4653
%4655 = load double*, double** %10
%4656 = getelementptr inbounds double, double* %4655, i64 0
%4657 = load double, double* %4656
%4658 = fsub double %4654, %4657
%4659 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4658, double* %4659
%4660 = load double*, double** %12
%4661 = getelementptr inbounds double, double* %4660, i64 1
%4662 = load double, double* %4661
%4663 = load double*, double** %10
%4664 = getelementptr inbounds double, double* %4663, i64 1
%4665 = load double, double* %4664
%4666 = fsub double %4662, %4665
%4667 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4666, double* %4667
%4668 = load double*, double** %12
%4669 = getelementptr inbounds double, double* %4668, i64 2
%4670 = load double, double* %4669
%4671 = load double*, double** %10
%4672 = getelementptr inbounds double, double* %4671, i64 2
%4673 = load double, double* %4672
%4674 = fsub double %4670, %4673
%4675 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4674, double* %4675
%4676 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4677 = load double, double* %4676
%4678 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4679 = load double, double* %4678
%4680 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4681 = load double, double* %4680
%4682 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4683 = load double, double* %4682
%4684 = fmul double %4681, %4683
%4685 = call double @llvm.fmuladd.f64(double %4677, double %4679, double %4684)
%4686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4687 = load double, double* %4686
%4688 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4689 = load double, double* %4688
%4690 = call double @llvm.fmuladd.f64(double %4687, double %4689, double %4685)
%4691 = fcmp ogt double %4690, 0.000000e+00
br i1 %4691, label %4692, label %4693
4692: ; preds = %4567
store i32 0, i32* %7
br label %37464
4693: ; preds = %4567
%4694 = load double*, double** %13
%4695 = getelementptr inbounds double, double* %4694, i64 0
%4696 = load double, double* %4695
%4697 = load double*, double** %9
%4698 = getelementptr inbounds double, double* %4697, i64 0
%4699 = load double, double* %4698
%4700 = fsub double %4696, %4699
%4701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4700, double* %4701
%4702 = load double*, double** %13
%4703 = getelementptr inbounds double, double* %4702, i64 1
%4704 = load double, double* %4703
%4705 = load double*, double** %9
%4706 = getelementptr inbounds double, double* %4705, i64 1
%4707 = load double, double* %4706
%4708 = fsub double %4704, %4707
%4709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4708, double* %4709
%4710 = load double*, double** %13
%4711 = getelementptr inbounds double, double* %4710, i64 2
%4712 = load double, double* %4711
%4713 = load double*, double** %9
%4714 = getelementptr inbounds double, double* %4713, i64 2
%4715 = load double, double* %4714
%4716 = fsub double %4712, %4715
%4717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4716, double* %4717
%4718 = load double*, double** %8
%4719 = getelementptr inbounds double, double* %4718, i64 0
%4720 = load double, double* %4719
%4721 = load double*, double** %9
%4722 = getelementptr inbounds double, double* %4721, i64 0
%4723 = load double, double* %4722
%4724 = fsub double %4720, %4723
%4725 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4724, double* %4725
%4726 = load double*, double** %8
%4727 = getelementptr inbounds double, double* %4726, i64 1
%4728 = load double, double* %4727
%4729 = load double*, double** %9
%4730 = getelementptr inbounds double, double* %4729, i64 1
%4731 = load double, double* %4730
%4732 = fsub double %4728, %4731
%4733 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4732, double* %4733
%4734 = load double*, double** %8
%4735 = getelementptr inbounds double, double* %4734, i64 2
%4736 = load double, double* %4735
%4737 = load double*, double** %9
%4738 = getelementptr inbounds double, double* %4737, i64 2
%4739 = load double, double* %4738
%4740 = fsub double %4736, %4739
%4741 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4740, double* %4741
%4742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4743 = load double, double* %4742
%4744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4745 = load double, double* %4744
%4746 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4747 = load double, double* %4746
%4748 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4749 = load double, double* %4748
%4750 = fmul double %4747, %4749
%4751 = fneg double %4750
%4752 = call double @llvm.fmuladd.f64(double %4743, double %4745, double %4751)
%4753 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4752, double* %4753
%4754 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4755 = load double, double* %4754
%4756 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4757 = load double, double* %4756
%4758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4759 = load double, double* %4758
%4760 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4761 = load double, double* %4760
%4762 = fmul double %4759, %4761
%4763 = fneg double %4762
%4764 = call double @llvm.fmuladd.f64(double %4755, double %4757, double %4763)
%4765 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4764, double* %4765
%4766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4767 = load double, double* %4766
%4768 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4769 = load double, double* %4768
%4770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4771 = load double, double* %4770
%4772 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4773 = load double, double* %4772
%4774 = fmul double %4771, %4773
%4775 = fneg double %4774
%4776 = call double @llvm.fmuladd.f64(double %4767, double %4769, double %4775)
%4777 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4776, double* %4777
%4778 = load double*, double** %11
%4779 = getelementptr inbounds double, double* %4778, i64 0
%4780 = load double, double* %4779
%4781 = load double*, double** %9
%4782 = getelementptr inbounds double, double* %4781, i64 0
%4783 = load double, double* %4782
%4784 = fsub double %4780, %4783
%4785 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4784, double* %4785
%4786 = load double*, double** %11
%4787 = getelementptr inbounds double, double* %4786, i64 1
%4788 = load double, double* %4787
%4789 = load double*, double** %9
%4790 = getelementptr inbounds double, double* %4789, i64 1
%4791 = load double, double* %4790
%4792 = fsub double %4788, %4791
%4793 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4792, double* %4793
%4794 = load double*, double** %11
%4795 = getelementptr inbounds double, double* %4794, i64 2
%4796 = load double, double* %4795
%4797 = load double*, double** %9
%4798 = getelementptr inbounds double, double* %4797, i64 2
%4799 = load double, double* %4798
%4800 = fsub double %4796, %4799
%4801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4800, double* %4801
%4802 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4803 = load double, double* %4802
%4804 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4805 = load double, double* %4804
%4806 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4807 = load double, double* %4806
%4808 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4809 = load double, double* %4808
%4810 = fmul double %4807, %4809
%4811 = call double @llvm.fmuladd.f64(double %4803, double %4805, double %4810)
%4812 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4813 = load double, double* %4812
%4814 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4815 = load double, double* %4814
%4816 = call double @llvm.fmuladd.f64(double %4813, double %4815, double %4811)
%4817 = fcmp ogt double %4816, 0.000000e+00
br i1 %4817, label %4818, label %4819
4818: ; preds = %4693
store i32 0, i32* %7
br label %37464
4819: ; preds = %4693
store i32 1, i32* %7
br label %37464
4820: ; preds = %4564
%4821 = load double*, double** %11
%4822 = getelementptr inbounds double, double* %4821, i64 0
%4823 = load double, double* %4822
%4824 = load double*, double** %8
%4825 = getelementptr inbounds double, double* %4824, i64 0
%4826 = load double, double* %4825
%4827 = fsub double %4823, %4826
%4828 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4827, double* %4828
%4829 = load double*, double** %11
%4830 = getelementptr inbounds double, double* %4829, i64 1
%4831 = load double, double* %4830
%4832 = load double*, double** %8
%4833 = getelementptr inbounds double, double* %4832, i64 1
%4834 = load double, double* %4833
%4835 = fsub double %4831, %4834
%4836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4835, double* %4836
%4837 = load double*, double** %11
%4838 = getelementptr inbounds double, double* %4837, i64 2
%4839 = load double, double* %4838
%4840 = load double*, double** %8
%4841 = getelementptr inbounds double, double* %4840, i64 2
%4842 = load double, double* %4841
%4843 = fsub double %4839, %4842
%4844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4843, double* %4844
%4845 = load double*, double** %9
%4846 = getelementptr inbounds double, double* %4845, i64 0
%4847 = load double, double* %4846
%4848 = load double*, double** %8
%4849 = getelementptr inbounds double, double* %4848, i64 0
%4850 = load double, double* %4849
%4851 = fsub double %4847, %4850
%4852 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4851, double* %4852
%4853 = load double*, double** %9
%4854 = getelementptr inbounds double, double* %4853, i64 1
%4855 = load double, double* %4854
%4856 = load double*, double** %8
%4857 = getelementptr inbounds double, double* %4856, i64 1
%4858 = load double, double* %4857
%4859 = fsub double %4855, %4858
%4860 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4859, double* %4860
%4861 = load double*, double** %9
%4862 = getelementptr inbounds double, double* %4861, i64 2
%4863 = load double, double* %4862
%4864 = load double*, double** %8
%4865 = getelementptr inbounds double, double* %4864, i64 2
%4866 = load double, double* %4865
%4867 = fsub double %4863, %4866
%4868 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4867, double* %4868
%4869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4870 = load double, double* %4869
%4871 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4872 = load double, double* %4871
%4873 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4874 = load double, double* %4873
%4875 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4876 = load double, double* %4875
%4877 = fmul double %4874, %4876
%4878 = fneg double %4877
%4879 = call double @llvm.fmuladd.f64(double %4870, double %4872, double %4878)
%4880 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %4879, double* %4880
%4881 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4882 = load double, double* %4881
%4883 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4884 = load double, double* %4883
%4885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4886 = load double, double* %4885
%4887 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4888 = load double, double* %4887
%4889 = fmul double %4886, %4888
%4890 = fneg double %4889
%4891 = call double @llvm.fmuladd.f64(double %4882, double %4884, double %4890)
%4892 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %4891, double* %4892
%4893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4894 = load double, double* %4893
%4895 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%4896 = load double, double* %4895
%4897 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4898 = load double, double* %4897
%4899 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%4900 = load double, double* %4899
%4901 = fmul double %4898, %4900
%4902 = fneg double %4901
%4903 = call double @llvm.fmuladd.f64(double %4894, double %4896, double %4902)
%4904 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %4903, double* %4904
%4905 = load double*, double** %13
%4906 = getelementptr inbounds double, double* %4905, i64 0
%4907 = load double, double* %4906
%4908 = load double*, double** %8
%4909 = getelementptr inbounds double, double* %4908, i64 0
%4910 = load double, double* %4909
%4911 = fsub double %4907, %4910
%4912 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4911, double* %4912
%4913 = load double*, double** %13
%4914 = getelementptr inbounds double, double* %4913, i64 1
%4915 = load double, double* %4914
%4916 = load double*, double** %8
%4917 = getelementptr inbounds double, double* %4916, i64 1
%4918 = load double, double* %4917
%4919 = fsub double %4915, %4918
%4920 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4919, double* %4920
%4921 = load double*, double** %13
%4922 = getelementptr inbounds double, double* %4921, i64 2
%4923 = load double, double* %4922
%4924 = load double*, double** %8
%4925 = getelementptr inbounds double, double* %4924, i64 2
%4926 = load double, double* %4925
%4927 = fsub double %4923, %4926
%4928 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4927, double* %4928
%4929 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%4930 = load double, double* %4929
%4931 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%4932 = load double, double* %4931
%4933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4934 = load double, double* %4933
%4935 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%4936 = load double, double* %4935
%4937 = fmul double %4934, %4936
%4938 = call double @llvm.fmuladd.f64(double %4930, double %4932, double %4937)
%4939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%4940 = load double, double* %4939
%4941 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%4942 = load double, double* %4941
%4943 = call double @llvm.fmuladd.f64(double %4940, double %4942, double %4938)
%4944 = fcmp ogt double %4943, 0.000000e+00
br i1 %4944, label %4945, label %4946
4945: ; preds = %4820
store i32 0, i32* %7
br label %37464
4946: ; preds = %4820
%4947 = load double*, double** %11
%4948 = getelementptr inbounds double, double* %4947, i64 0
%4949 = load double, double* %4948
%4950 = load double*, double** %9
%4951 = getelementptr inbounds double, double* %4950, i64 0
%4952 = load double, double* %4951
%4953 = fsub double %4949, %4952
%4954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %4953, double* %4954
%4955 = load double*, double** %11
%4956 = getelementptr inbounds double, double* %4955, i64 1
%4957 = load double, double* %4956
%4958 = load double*, double** %9
%4959 = getelementptr inbounds double, double* %4958, i64 1
%4960 = load double, double* %4959
%4961 = fsub double %4957, %4960
%4962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %4961, double* %4962
%4963 = load double*, double** %11
%4964 = getelementptr inbounds double, double* %4963, i64 2
%4965 = load double, double* %4964
%4966 = load double*, double** %9
%4967 = getelementptr inbounds double, double* %4966, i64 2
%4968 = load double, double* %4967
%4969 = fsub double %4965, %4968
%4970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %4969, double* %4970
%4971 = load double*, double** %10
%4972 = getelementptr inbounds double, double* %4971, i64 0
%4973 = load double, double* %4972
%4974 = load double*, double** %9
%4975 = getelementptr inbounds double, double* %4974, i64 0
%4976 = load double, double* %4975
%4977 = fsub double %4973, %4976
%4978 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %4977, double* %4978
%4979 = load double*, double** %10
%4980 = getelementptr inbounds double, double* %4979, i64 1
%4981 = load double, double* %4980
%4982 = load double*, double** %9
%4983 = getelementptr inbounds double, double* %4982, i64 1
%4984 = load double, double* %4983
%4985 = fsub double %4981, %4984
%4986 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %4985, double* %4986
%4987 = load double*, double** %10
%4988 = getelementptr inbounds double, double* %4987, i64 2
%4989 = load double, double* %4988
%4990 = load double*, double** %9
%4991 = getelementptr inbounds double, double* %4990, i64 2
%4992 = load double, double* %4991
%4993 = fsub double %4989, %4992
%4994 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %4993, double* %4994
%4995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%4996 = load double, double* %4995
%4997 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%4998 = load double, double* %4997
%4999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5000 = load double, double* %4999
%5001 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5002 = load double, double* %5001
%5003 = fmul double %5000, %5002
%5004 = fneg double %5003
%5005 = call double @llvm.fmuladd.f64(double %4996, double %4998, double %5004)
%5006 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5005, double* %5006
%5007 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5008 = load double, double* %5007
%5009 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5010 = load double, double* %5009
%5011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5012 = load double, double* %5011
%5013 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5014 = load double, double* %5013
%5015 = fmul double %5012, %5014
%5016 = fneg double %5015
%5017 = call double @llvm.fmuladd.f64(double %5008, double %5010, double %5016)
%5018 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5017, double* %5018
%5019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5020 = load double, double* %5019
%5021 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5022 = load double, double* %5021
%5023 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5024 = load double, double* %5023
%5025 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5026 = load double, double* %5025
%5027 = fmul double %5024, %5026
%5028 = fneg double %5027
%5029 = call double @llvm.fmuladd.f64(double %5020, double %5022, double %5028)
%5030 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5029, double* %5030
%5031 = load double*, double** %12
%5032 = getelementptr inbounds double, double* %5031, i64 0
%5033 = load double, double* %5032
%5034 = load double*, double** %9
%5035 = getelementptr inbounds double, double* %5034, i64 0
%5036 = load double, double* %5035
%5037 = fsub double %5033, %5036
%5038 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5037, double* %5038
%5039 = load double*, double** %12
%5040 = getelementptr inbounds double, double* %5039, i64 1
%5041 = load double, double* %5040
%5042 = load double*, double** %9
%5043 = getelementptr inbounds double, double* %5042, i64 1
%5044 = load double, double* %5043
%5045 = fsub double %5041, %5044
%5046 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5045, double* %5046
%5047 = load double*, double** %12
%5048 = getelementptr inbounds double, double* %5047, i64 2
%5049 = load double, double* %5048
%5050 = load double*, double** %9
%5051 = getelementptr inbounds double, double* %5050, i64 2
%5052 = load double, double* %5051
%5053 = fsub double %5049, %5052
%5054 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5053, double* %5054
%5055 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5056 = load double, double* %5055
%5057 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5058 = load double, double* %5057
%5059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5060 = load double, double* %5059
%5061 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5062 = load double, double* %5061
%5063 = fmul double %5060, %5062
%5064 = call double @llvm.fmuladd.f64(double %5056, double %5058, double %5063)
%5065 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5066 = load double, double* %5065
%5067 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5068 = load double, double* %5067
%5069 = call double @llvm.fmuladd.f64(double %5066, double %5068, double %5064)
%5070 = fcmp ogt double %5069, 0.000000e+00
br i1 %5070, label %5071, label %5072
5071: ; preds = %4946
store i32 0, i32* %7
br label %37464
5072: ; preds = %4946
store i32 1, i32* %7
br label %37464
5073: ; preds = %4305
%5074 = load double, double* %19
%5075 = fcmp olt double %5074, 0.000000e+00
br i1 %5075, label %5076, label %5585
5076: ; preds = %5073
%5077 = load double, double* %18
%5078 = fcmp oge double %5077, 0.000000e+00
br i1 %5078, label %5079, label %5332
5079: ; preds = %5076
%5080 = load double*, double** %13
%5081 = getelementptr inbounds double, double* %5080, i64 0
%5082 = load double, double* %5081
%5083 = load double*, double** %8
%5084 = getelementptr inbounds double, double* %5083, i64 0
%5085 = load double, double* %5084
%5086 = fsub double %5082, %5085
%5087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5086, double* %5087
%5088 = load double*, double** %13
%5089 = getelementptr inbounds double, double* %5088, i64 1
%5090 = load double, double* %5089
%5091 = load double*, double** %8
%5092 = getelementptr inbounds double, double* %5091, i64 1
%5093 = load double, double* %5092
%5094 = fsub double %5090, %5093
%5095 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5094, double* %5095
%5096 = load double*, double** %13
%5097 = getelementptr inbounds double, double* %5096, i64 2
%5098 = load double, double* %5097
%5099 = load double*, double** %8
%5100 = getelementptr inbounds double, double* %5099, i64 2
%5101 = load double, double* %5100
%5102 = fsub double %5098, %5101
%5103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5102, double* %5103
%5104 = load double*, double** %9
%5105 = getelementptr inbounds double, double* %5104, i64 0
%5106 = load double, double* %5105
%5107 = load double*, double** %8
%5108 = getelementptr inbounds double, double* %5107, i64 0
%5109 = load double, double* %5108
%5110 = fsub double %5106, %5109
%5111 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5110, double* %5111
%5112 = load double*, double** %9
%5113 = getelementptr inbounds double, double* %5112, i64 1
%5114 = load double, double* %5113
%5115 = load double*, double** %8
%5116 = getelementptr inbounds double, double* %5115, i64 1
%5117 = load double, double* %5116
%5118 = fsub double %5114, %5117
%5119 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5118, double* %5119
%5120 = load double*, double** %9
%5121 = getelementptr inbounds double, double* %5120, i64 2
%5122 = load double, double* %5121
%5123 = load double*, double** %8
%5124 = getelementptr inbounds double, double* %5123, i64 2
%5125 = load double, double* %5124
%5126 = fsub double %5122, %5125
%5127 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5126, double* %5127
%5128 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5129 = load double, double* %5128
%5130 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5131 = load double, double* %5130
%5132 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5133 = load double, double* %5132
%5134 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5135 = load double, double* %5134
%5136 = fmul double %5133, %5135
%5137 = fneg double %5136
%5138 = call double @llvm.fmuladd.f64(double %5129, double %5131, double %5137)
%5139 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5138, double* %5139
%5140 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5141 = load double, double* %5140
%5142 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5143 = load double, double* %5142
%5144 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5145 = load double, double* %5144
%5146 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5147 = load double, double* %5146
%5148 = fmul double %5145, %5147
%5149 = fneg double %5148
%5150 = call double @llvm.fmuladd.f64(double %5141, double %5143, double %5149)
%5151 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5150, double* %5151
%5152 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5153 = load double, double* %5152
%5154 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5155 = load double, double* %5154
%5156 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5157 = load double, double* %5156
%5158 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5159 = load double, double* %5158
%5160 = fmul double %5157, %5159
%5161 = fneg double %5160
%5162 = call double @llvm.fmuladd.f64(double %5153, double %5155, double %5161)
%5163 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5162, double* %5163
%5164 = load double*, double** %12
%5165 = getelementptr inbounds double, double* %5164, i64 0
%5166 = load double, double* %5165
%5167 = load double*, double** %8
%5168 = getelementptr inbounds double, double* %5167, i64 0
%5169 = load double, double* %5168
%5170 = fsub double %5166, %5169
%5171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5170, double* %5171
%5172 = load double*, double** %12
%5173 = getelementptr inbounds double, double* %5172, i64 1
%5174 = load double, double* %5173
%5175 = load double*, double** %8
%5176 = getelementptr inbounds double, double* %5175, i64 1
%5177 = load double, double* %5176
%5178 = fsub double %5174, %5177
%5179 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5178, double* %5179
%5180 = load double*, double** %12
%5181 = getelementptr inbounds double, double* %5180, i64 2
%5182 = load double, double* %5181
%5183 = load double*, double** %8
%5184 = getelementptr inbounds double, double* %5183, i64 2
%5185 = load double, double* %5184
%5186 = fsub double %5182, %5185
%5187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5186, double* %5187
%5188 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5189 = load double, double* %5188
%5190 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5191 = load double, double* %5190
%5192 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5193 = load double, double* %5192
%5194 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5195 = load double, double* %5194
%5196 = fmul double %5193, %5195
%5197 = call double @llvm.fmuladd.f64(double %5189, double %5191, double %5196)
%5198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5199 = load double, double* %5198
%5200 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5201 = load double, double* %5200
%5202 = call double @llvm.fmuladd.f64(double %5199, double %5201, double %5197)
%5203 = fcmp ogt double %5202, 0.000000e+00
br i1 %5203, label %5204, label %5205
5204: ; preds = %5079
store i32 0, i32* %7
br label %37464
5205: ; preds = %5079
%5206 = load double*, double** %13
%5207 = getelementptr inbounds double, double* %5206, i64 0
%5208 = load double, double* %5207
%5209 = load double*, double** %9
%5210 = getelementptr inbounds double, double* %5209, i64 0
%5211 = load double, double* %5210
%5212 = fsub double %5208, %5211
%5213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5212, double* %5213
%5214 = load double*, double** %13
%5215 = getelementptr inbounds double, double* %5214, i64 1
%5216 = load double, double* %5215
%5217 = load double*, double** %9
%5218 = getelementptr inbounds double, double* %5217, i64 1
%5219 = load double, double* %5218
%5220 = fsub double %5216, %5219
%5221 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5220, double* %5221
%5222 = load double*, double** %13
%5223 = getelementptr inbounds double, double* %5222, i64 2
%5224 = load double, double* %5223
%5225 = load double*, double** %9
%5226 = getelementptr inbounds double, double* %5225, i64 2
%5227 = load double, double* %5226
%5228 = fsub double %5224, %5227
%5229 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5228, double* %5229
%5230 = load double*, double** %10
%5231 = getelementptr inbounds double, double* %5230, i64 0
%5232 = load double, double* %5231
%5233 = load double*, double** %9
%5234 = getelementptr inbounds double, double* %5233, i64 0
%5235 = load double, double* %5234
%5236 = fsub double %5232, %5235
%5237 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5236, double* %5237
%5238 = load double*, double** %10
%5239 = getelementptr inbounds double, double* %5238, i64 1
%5240 = load double, double* %5239
%5241 = load double*, double** %9
%5242 = getelementptr inbounds double, double* %5241, i64 1
%5243 = load double, double* %5242
%5244 = fsub double %5240, %5243
%5245 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5244, double* %5245
%5246 = load double*, double** %10
%5247 = getelementptr inbounds double, double* %5246, i64 2
%5248 = load double, double* %5247
%5249 = load double*, double** %9
%5250 = getelementptr inbounds double, double* %5249, i64 2
%5251 = load double, double* %5250
%5252 = fsub double %5248, %5251
%5253 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5252, double* %5253
%5254 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5255 = load double, double* %5254
%5256 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5257 = load double, double* %5256
%5258 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5259 = load double, double* %5258
%5260 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5261 = load double, double* %5260
%5262 = fmul double %5259, %5261
%5263 = fneg double %5262
%5264 = call double @llvm.fmuladd.f64(double %5255, double %5257, double %5263)
%5265 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5264, double* %5265
%5266 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5267 = load double, double* %5266
%5268 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5269 = load double, double* %5268
%5270 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5271 = load double, double* %5270
%5272 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5273 = load double, double* %5272
%5274 = fmul double %5271, %5273
%5275 = fneg double %5274
%5276 = call double @llvm.fmuladd.f64(double %5267, double %5269, double %5275)
%5277 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5276, double* %5277
%5278 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5279 = load double, double* %5278
%5280 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5281 = load double, double* %5280
%5282 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5283 = load double, double* %5282
%5284 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5285 = load double, double* %5284
%5286 = fmul double %5283, %5285
%5287 = fneg double %5286
%5288 = call double @llvm.fmuladd.f64(double %5279, double %5281, double %5287)
%5289 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5288, double* %5289
%5290 = load double*, double** %11
%5291 = getelementptr inbounds double, double* %5290, i64 0
%5292 = load double, double* %5291
%5293 = load double*, double** %9
%5294 = getelementptr inbounds double, double* %5293, i64 0
%5295 = load double, double* %5294
%5296 = fsub double %5292, %5295
%5297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5296, double* %5297
%5298 = load double*, double** %11
%5299 = getelementptr inbounds double, double* %5298, i64 1
%5300 = load double, double* %5299
%5301 = load double*, double** %9
%5302 = getelementptr inbounds double, double* %5301, i64 1
%5303 = load double, double* %5302
%5304 = fsub double %5300, %5303
%5305 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5304, double* %5305
%5306 = load double*, double** %11
%5307 = getelementptr inbounds double, double* %5306, i64 2
%5308 = load double, double* %5307
%5309 = load double*, double** %9
%5310 = getelementptr inbounds double, double* %5309, i64 2
%5311 = load double, double* %5310
%5312 = fsub double %5308, %5311
%5313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5312, double* %5313
%5314 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5315 = load double, double* %5314
%5316 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5317 = load double, double* %5316
%5318 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5319 = load double, double* %5318
%5320 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5321 = load double, double* %5320
%5322 = fmul double %5319, %5321
%5323 = call double @llvm.fmuladd.f64(double %5315, double %5317, double %5322)
%5324 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5325 = load double, double* %5324
%5326 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5327 = load double, double* %5326
%5328 = call double @llvm.fmuladd.f64(double %5325, double %5327, double %5323)
%5329 = fcmp ogt double %5328, 0.000000e+00
br i1 %5329, label %5330, label %5331
5330: ; preds = %5205
store i32 0, i32* %7
br label %37464
5331: ; preds = %5205
store i32 1, i32* %7
br label %37464
5332: ; preds = %5076
%5333 = load double*, double** %11
%5334 = getelementptr inbounds double, double* %5333, i64 0
%5335 = load double, double* %5334
%5336 = load double*, double** %10
%5337 = getelementptr inbounds double, double* %5336, i64 0
%5338 = load double, double* %5337
%5339 = fsub double %5335, %5338
%5340 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5339, double* %5340
%5341 = load double*, double** %11
%5342 = getelementptr inbounds double, double* %5341, i64 1
%5343 = load double, double* %5342
%5344 = load double*, double** %10
%5345 = getelementptr inbounds double, double* %5344, i64 1
%5346 = load double, double* %5345
%5347 = fsub double %5343, %5346
%5348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5347, double* %5348
%5349 = load double*, double** %11
%5350 = getelementptr inbounds double, double* %5349, i64 2
%5351 = load double, double* %5350
%5352 = load double*, double** %10
%5353 = getelementptr inbounds double, double* %5352, i64 2
%5354 = load double, double* %5353
%5355 = fsub double %5351, %5354
%5356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5355, double* %5356
%5357 = load double*, double** %9
%5358 = getelementptr inbounds double, double* %5357, i64 0
%5359 = load double, double* %5358
%5360 = load double*, double** %10
%5361 = getelementptr inbounds double, double* %5360, i64 0
%5362 = load double, double* %5361
%5363 = fsub double %5359, %5362
%5364 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5363, double* %5364
%5365 = load double*, double** %9
%5366 = getelementptr inbounds double, double* %5365, i64 1
%5367 = load double, double* %5366
%5368 = load double*, double** %10
%5369 = getelementptr inbounds double, double* %5368, i64 1
%5370 = load double, double* %5369
%5371 = fsub double %5367, %5370
%5372 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5371, double* %5372
%5373 = load double*, double** %9
%5374 = getelementptr inbounds double, double* %5373, i64 2
%5375 = load double, double* %5374
%5376 = load double*, double** %10
%5377 = getelementptr inbounds double, double* %5376, i64 2
%5378 = load double, double* %5377
%5379 = fsub double %5375, %5378
%5380 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5379, double* %5380
%5381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5382 = load double, double* %5381
%5383 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5384 = load double, double* %5383
%5385 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5386 = load double, double* %5385
%5387 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5388 = load double, double* %5387
%5389 = fmul double %5386, %5388
%5390 = fneg double %5389
%5391 = call double @llvm.fmuladd.f64(double %5382, double %5384, double %5390)
%5392 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5391, double* %5392
%5393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5394 = load double, double* %5393
%5395 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5396 = load double, double* %5395
%5397 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5398 = load double, double* %5397
%5399 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5400 = load double, double* %5399
%5401 = fmul double %5398, %5400
%5402 = fneg double %5401
%5403 = call double @llvm.fmuladd.f64(double %5394, double %5396, double %5402)
%5404 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5403, double* %5404
%5405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5406 = load double, double* %5405
%5407 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5408 = load double, double* %5407
%5409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5410 = load double, double* %5409
%5411 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5412 = load double, double* %5411
%5413 = fmul double %5410, %5412
%5414 = fneg double %5413
%5415 = call double @llvm.fmuladd.f64(double %5406, double %5408, double %5414)
%5416 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5415, double* %5416
%5417 = load double*, double** %13
%5418 = getelementptr inbounds double, double* %5417, i64 0
%5419 = load double, double* %5418
%5420 = load double*, double** %10
%5421 = getelementptr inbounds double, double* %5420, i64 0
%5422 = load double, double* %5421
%5423 = fsub double %5419, %5422
%5424 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5423, double* %5424
%5425 = load double*, double** %13
%5426 = getelementptr inbounds double, double* %5425, i64 1
%5427 = load double, double* %5426
%5428 = load double*, double** %10
%5429 = getelementptr inbounds double, double* %5428, i64 1
%5430 = load double, double* %5429
%5431 = fsub double %5427, %5430
%5432 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5431, double* %5432
%5433 = load double*, double** %13
%5434 = getelementptr inbounds double, double* %5433, i64 2
%5435 = load double, double* %5434
%5436 = load double*, double** %10
%5437 = getelementptr inbounds double, double* %5436, i64 2
%5438 = load double, double* %5437
%5439 = fsub double %5435, %5438
%5440 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5439, double* %5440
%5441 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5442 = load double, double* %5441
%5443 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5444 = load double, double* %5443
%5445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5446 = load double, double* %5445
%5447 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5448 = load double, double* %5447
%5449 = fmul double %5446, %5448
%5450 = call double @llvm.fmuladd.f64(double %5442, double %5444, double %5449)
%5451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5452 = load double, double* %5451
%5453 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5454 = load double, double* %5453
%5455 = call double @llvm.fmuladd.f64(double %5452, double %5454, double %5450)
%5456 = fcmp ogt double %5455, 0.000000e+00
br i1 %5456, label %5457, label %5458
5457: ; preds = %5332
store i32 0, i32* %7
br label %37464
5458: ; preds = %5332
%5459 = load double*, double** %11
%5460 = getelementptr inbounds double, double* %5459, i64 0
%5461 = load double, double* %5460
%5462 = load double*, double** %9
%5463 = getelementptr inbounds double, double* %5462, i64 0
%5464 = load double, double* %5463
%5465 = fsub double %5461, %5464
%5466 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5465, double* %5466
%5467 = load double*, double** %11
%5468 = getelementptr inbounds double, double* %5467, i64 1
%5469 = load double, double* %5468
%5470 = load double*, double** %9
%5471 = getelementptr inbounds double, double* %5470, i64 1
%5472 = load double, double* %5471
%5473 = fsub double %5469, %5472
%5474 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5473, double* %5474
%5475 = load double*, double** %11
%5476 = getelementptr inbounds double, double* %5475, i64 2
%5477 = load double, double* %5476
%5478 = load double*, double** %9
%5479 = getelementptr inbounds double, double* %5478, i64 2
%5480 = load double, double* %5479
%5481 = fsub double %5477, %5480
%5482 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5481, double* %5482
%5483 = load double*, double** %8
%5484 = getelementptr inbounds double, double* %5483, i64 0
%5485 = load double, double* %5484
%5486 = load double*, double** %9
%5487 = getelementptr inbounds double, double* %5486, i64 0
%5488 = load double, double* %5487
%5489 = fsub double %5485, %5488
%5490 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5489, double* %5490
%5491 = load double*, double** %8
%5492 = getelementptr inbounds double, double* %5491, i64 1
%5493 = load double, double* %5492
%5494 = load double*, double** %9
%5495 = getelementptr inbounds double, double* %5494, i64 1
%5496 = load double, double* %5495
%5497 = fsub double %5493, %5496
%5498 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5497, double* %5498
%5499 = load double*, double** %8
%5500 = getelementptr inbounds double, double* %5499, i64 2
%5501 = load double, double* %5500
%5502 = load double*, double** %9
%5503 = getelementptr inbounds double, double* %5502, i64 2
%5504 = load double, double* %5503
%5505 = fsub double %5501, %5504
%5506 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5505, double* %5506
%5507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5508 = load double, double* %5507
%5509 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5510 = load double, double* %5509
%5511 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5512 = load double, double* %5511
%5513 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5514 = load double, double* %5513
%5515 = fmul double %5512, %5514
%5516 = fneg double %5515
%5517 = call double @llvm.fmuladd.f64(double %5508, double %5510, double %5516)
%5518 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5517, double* %5518
%5519 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5520 = load double, double* %5519
%5521 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5522 = load double, double* %5521
%5523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5524 = load double, double* %5523
%5525 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5526 = load double, double* %5525
%5527 = fmul double %5524, %5526
%5528 = fneg double %5527
%5529 = call double @llvm.fmuladd.f64(double %5520, double %5522, double %5528)
%5530 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5529, double* %5530
%5531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5532 = load double, double* %5531
%5533 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5534 = load double, double* %5533
%5535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5536 = load double, double* %5535
%5537 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5538 = load double, double* %5537
%5539 = fmul double %5536, %5538
%5540 = fneg double %5539
%5541 = call double @llvm.fmuladd.f64(double %5532, double %5534, double %5540)
%5542 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5541, double* %5542
%5543 = load double*, double** %12
%5544 = getelementptr inbounds double, double* %5543, i64 0
%5545 = load double, double* %5544
%5546 = load double*, double** %9
%5547 = getelementptr inbounds double, double* %5546, i64 0
%5548 = load double, double* %5547
%5549 = fsub double %5545, %5548
%5550 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5549, double* %5550
%5551 = load double*, double** %12
%5552 = getelementptr inbounds double, double* %5551, i64 1
%5553 = load double, double* %5552
%5554 = load double*, double** %9
%5555 = getelementptr inbounds double, double* %5554, i64 1
%5556 = load double, double* %5555
%5557 = fsub double %5553, %5556
%5558 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5557, double* %5558
%5559 = load double*, double** %12
%5560 = getelementptr inbounds double, double* %5559, i64 2
%5561 = load double, double* %5560
%5562 = load double*, double** %9
%5563 = getelementptr inbounds double, double* %5562, i64 2
%5564 = load double, double* %5563
%5565 = fsub double %5561, %5564
%5566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5565, double* %5566
%5567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5568 = load double, double* %5567
%5569 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5570 = load double, double* %5569
%5571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5572 = load double, double* %5571
%5573 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5574 = load double, double* %5573
%5575 = fmul double %5572, %5574
%5576 = call double @llvm.fmuladd.f64(double %5568, double %5570, double %5575)
%5577 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5578 = load double, double* %5577
%5579 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5580 = load double, double* %5579
%5581 = call double @llvm.fmuladd.f64(double %5578, double %5580, double %5576)
%5582 = fcmp ogt double %5581, 0.000000e+00
br i1 %5582, label %5583, label %5584
5583: ; preds = %5458
store i32 0, i32* %7
br label %37464
5584: ; preds = %5458
store i32 1, i32* %7
br label %37464
5585: ; preds = %5073
%5586 = load double, double* %19
%5587 = fcmp ogt double %5586, 0.000000e+00
br i1 %5587, label %5588, label %6097
5588: ; preds = %5585
%5589 = load double, double* %18
%5590 = fcmp ogt double %5589, 0.000000e+00
br i1 %5590, label %5591, label %5844
5591: ; preds = %5588
%5592 = load double*, double** %11
%5593 = getelementptr inbounds double, double* %5592, i64 0
%5594 = load double, double* %5593
%5595 = load double*, double** %8
%5596 = getelementptr inbounds double, double* %5595, i64 0
%5597 = load double, double* %5596
%5598 = fsub double %5594, %5597
%5599 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5598, double* %5599
%5600 = load double*, double** %11
%5601 = getelementptr inbounds double, double* %5600, i64 1
%5602 = load double, double* %5601
%5603 = load double*, double** %8
%5604 = getelementptr inbounds double, double* %5603, i64 1
%5605 = load double, double* %5604
%5606 = fsub double %5602, %5605
%5607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5606, double* %5607
%5608 = load double*, double** %11
%5609 = getelementptr inbounds double, double* %5608, i64 2
%5610 = load double, double* %5609
%5611 = load double*, double** %8
%5612 = getelementptr inbounds double, double* %5611, i64 2
%5613 = load double, double* %5612
%5614 = fsub double %5610, %5613
%5615 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5614, double* %5615
%5616 = load double*, double** %9
%5617 = getelementptr inbounds double, double* %5616, i64 0
%5618 = load double, double* %5617
%5619 = load double*, double** %8
%5620 = getelementptr inbounds double, double* %5619, i64 0
%5621 = load double, double* %5620
%5622 = fsub double %5618, %5621
%5623 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5622, double* %5623
%5624 = load double*, double** %9
%5625 = getelementptr inbounds double, double* %5624, i64 1
%5626 = load double, double* %5625
%5627 = load double*, double** %8
%5628 = getelementptr inbounds double, double* %5627, i64 1
%5629 = load double, double* %5628
%5630 = fsub double %5626, %5629
%5631 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5630, double* %5631
%5632 = load double*, double** %9
%5633 = getelementptr inbounds double, double* %5632, i64 2
%5634 = load double, double* %5633
%5635 = load double*, double** %8
%5636 = getelementptr inbounds double, double* %5635, i64 2
%5637 = load double, double* %5636
%5638 = fsub double %5634, %5637
%5639 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5638, double* %5639
%5640 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5641 = load double, double* %5640
%5642 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5643 = load double, double* %5642
%5644 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5645 = load double, double* %5644
%5646 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5647 = load double, double* %5646
%5648 = fmul double %5645, %5647
%5649 = fneg double %5648
%5650 = call double @llvm.fmuladd.f64(double %5641, double %5643, double %5649)
%5651 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5650, double* %5651
%5652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5653 = load double, double* %5652
%5654 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5655 = load double, double* %5654
%5656 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5657 = load double, double* %5656
%5658 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5659 = load double, double* %5658
%5660 = fmul double %5657, %5659
%5661 = fneg double %5660
%5662 = call double @llvm.fmuladd.f64(double %5653, double %5655, double %5661)
%5663 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5662, double* %5663
%5664 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5665 = load double, double* %5664
%5666 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5667 = load double, double* %5666
%5668 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5669 = load double, double* %5668
%5670 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5671 = load double, double* %5670
%5672 = fmul double %5669, %5671
%5673 = fneg double %5672
%5674 = call double @llvm.fmuladd.f64(double %5665, double %5667, double %5673)
%5675 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5674, double* %5675
%5676 = load double*, double** %13
%5677 = getelementptr inbounds double, double* %5676, i64 0
%5678 = load double, double* %5677
%5679 = load double*, double** %8
%5680 = getelementptr inbounds double, double* %5679, i64 0
%5681 = load double, double* %5680
%5682 = fsub double %5678, %5681
%5683 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5682, double* %5683
%5684 = load double*, double** %13
%5685 = getelementptr inbounds double, double* %5684, i64 1
%5686 = load double, double* %5685
%5687 = load double*, double** %8
%5688 = getelementptr inbounds double, double* %5687, i64 1
%5689 = load double, double* %5688
%5690 = fsub double %5686, %5689
%5691 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5690, double* %5691
%5692 = load double*, double** %13
%5693 = getelementptr inbounds double, double* %5692, i64 2
%5694 = load double, double* %5693
%5695 = load double*, double** %8
%5696 = getelementptr inbounds double, double* %5695, i64 2
%5697 = load double, double* %5696
%5698 = fsub double %5694, %5697
%5699 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5698, double* %5699
%5700 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5701 = load double, double* %5700
%5702 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5703 = load double, double* %5702
%5704 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5705 = load double, double* %5704
%5706 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5707 = load double, double* %5706
%5708 = fmul double %5705, %5707
%5709 = call double @llvm.fmuladd.f64(double %5701, double %5703, double %5708)
%5710 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5711 = load double, double* %5710
%5712 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5713 = load double, double* %5712
%5714 = call double @llvm.fmuladd.f64(double %5711, double %5713, double %5709)
%5715 = fcmp ogt double %5714, 0.000000e+00
br i1 %5715, label %5716, label %5717
5716: ; preds = %5591
store i32 0, i32* %7
br label %37464
5717: ; preds = %5591
%5718 = load double*, double** %11
%5719 = getelementptr inbounds double, double* %5718, i64 0
%5720 = load double, double* %5719
%5721 = load double*, double** %9
%5722 = getelementptr inbounds double, double* %5721, i64 0
%5723 = load double, double* %5722
%5724 = fsub double %5720, %5723
%5725 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5724, double* %5725
%5726 = load double*, double** %11
%5727 = getelementptr inbounds double, double* %5726, i64 1
%5728 = load double, double* %5727
%5729 = load double*, double** %9
%5730 = getelementptr inbounds double, double* %5729, i64 1
%5731 = load double, double* %5730
%5732 = fsub double %5728, %5731
%5733 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5732, double* %5733
%5734 = load double*, double** %11
%5735 = getelementptr inbounds double, double* %5734, i64 2
%5736 = load double, double* %5735
%5737 = load double*, double** %9
%5738 = getelementptr inbounds double, double* %5737, i64 2
%5739 = load double, double* %5738
%5740 = fsub double %5736, %5739
%5741 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5740, double* %5741
%5742 = load double*, double** %10
%5743 = getelementptr inbounds double, double* %5742, i64 0
%5744 = load double, double* %5743
%5745 = load double*, double** %9
%5746 = getelementptr inbounds double, double* %5745, i64 0
%5747 = load double, double* %5746
%5748 = fsub double %5744, %5747
%5749 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5748, double* %5749
%5750 = load double*, double** %10
%5751 = getelementptr inbounds double, double* %5750, i64 1
%5752 = load double, double* %5751
%5753 = load double*, double** %9
%5754 = getelementptr inbounds double, double* %5753, i64 1
%5755 = load double, double* %5754
%5756 = fsub double %5752, %5755
%5757 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5756, double* %5757
%5758 = load double*, double** %10
%5759 = getelementptr inbounds double, double* %5758, i64 2
%5760 = load double, double* %5759
%5761 = load double*, double** %9
%5762 = getelementptr inbounds double, double* %5761, i64 2
%5763 = load double, double* %5762
%5764 = fsub double %5760, %5763
%5765 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5764, double* %5765
%5766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5767 = load double, double* %5766
%5768 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5769 = load double, double* %5768
%5770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5771 = load double, double* %5770
%5772 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5773 = load double, double* %5772
%5774 = fmul double %5771, %5773
%5775 = fneg double %5774
%5776 = call double @llvm.fmuladd.f64(double %5767, double %5769, double %5775)
%5777 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5776, double* %5777
%5778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5779 = load double, double* %5778
%5780 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5781 = load double, double* %5780
%5782 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5783 = load double, double* %5782
%5784 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5785 = load double, double* %5784
%5786 = fmul double %5783, %5785
%5787 = fneg double %5786
%5788 = call double @llvm.fmuladd.f64(double %5779, double %5781, double %5787)
%5789 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5788, double* %5789
%5790 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5791 = load double, double* %5790
%5792 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5793 = load double, double* %5792
%5794 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5795 = load double, double* %5794
%5796 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5797 = load double, double* %5796
%5798 = fmul double %5795, %5797
%5799 = fneg double %5798
%5800 = call double @llvm.fmuladd.f64(double %5791, double %5793, double %5799)
%5801 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5800, double* %5801
%5802 = load double*, double** %12
%5803 = getelementptr inbounds double, double* %5802, i64 0
%5804 = load double, double* %5803
%5805 = load double*, double** %9
%5806 = getelementptr inbounds double, double* %5805, i64 0
%5807 = load double, double* %5806
%5808 = fsub double %5804, %5807
%5809 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5808, double* %5809
%5810 = load double*, double** %12
%5811 = getelementptr inbounds double, double* %5810, i64 1
%5812 = load double, double* %5811
%5813 = load double*, double** %9
%5814 = getelementptr inbounds double, double* %5813, i64 1
%5815 = load double, double* %5814
%5816 = fsub double %5812, %5815
%5817 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5816, double* %5817
%5818 = load double*, double** %12
%5819 = getelementptr inbounds double, double* %5818, i64 2
%5820 = load double, double* %5819
%5821 = load double*, double** %9
%5822 = getelementptr inbounds double, double* %5821, i64 2
%5823 = load double, double* %5822
%5824 = fsub double %5820, %5823
%5825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5824, double* %5825
%5826 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5827 = load double, double* %5826
%5828 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5829 = load double, double* %5828
%5830 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5831 = load double, double* %5830
%5832 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5833 = load double, double* %5832
%5834 = fmul double %5831, %5833
%5835 = call double @llvm.fmuladd.f64(double %5827, double %5829, double %5834)
%5836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5837 = load double, double* %5836
%5838 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5839 = load double, double* %5838
%5840 = call double @llvm.fmuladd.f64(double %5837, double %5839, double %5835)
%5841 = fcmp ogt double %5840, 0.000000e+00
br i1 %5841, label %5842, label %5843
5842: ; preds = %5717
store i32 0, i32* %7
br label %37464
5843: ; preds = %5717
store i32 1, i32* %7
br label %37464
5844: ; preds = %5588
%5845 = load double*, double** %13
%5846 = getelementptr inbounds double, double* %5845, i64 0
%5847 = load double, double* %5846
%5848 = load double*, double** %10
%5849 = getelementptr inbounds double, double* %5848, i64 0
%5850 = load double, double* %5849
%5851 = fsub double %5847, %5850
%5852 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5851, double* %5852
%5853 = load double*, double** %13
%5854 = getelementptr inbounds double, double* %5853, i64 1
%5855 = load double, double* %5854
%5856 = load double*, double** %10
%5857 = getelementptr inbounds double, double* %5856, i64 1
%5858 = load double, double* %5857
%5859 = fsub double %5855, %5858
%5860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5859, double* %5860
%5861 = load double*, double** %13
%5862 = getelementptr inbounds double, double* %5861, i64 2
%5863 = load double, double* %5862
%5864 = load double*, double** %10
%5865 = getelementptr inbounds double, double* %5864, i64 2
%5866 = load double, double* %5865
%5867 = fsub double %5863, %5866
%5868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5867, double* %5868
%5869 = load double*, double** %9
%5870 = getelementptr inbounds double, double* %5869, i64 0
%5871 = load double, double* %5870
%5872 = load double*, double** %10
%5873 = getelementptr inbounds double, double* %5872, i64 0
%5874 = load double, double* %5873
%5875 = fsub double %5871, %5874
%5876 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %5875, double* %5876
%5877 = load double*, double** %9
%5878 = getelementptr inbounds double, double* %5877, i64 1
%5879 = load double, double* %5878
%5880 = load double*, double** %10
%5881 = getelementptr inbounds double, double* %5880, i64 1
%5882 = load double, double* %5881
%5883 = fsub double %5879, %5882
%5884 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %5883, double* %5884
%5885 = load double*, double** %9
%5886 = getelementptr inbounds double, double* %5885, i64 2
%5887 = load double, double* %5886
%5888 = load double*, double** %10
%5889 = getelementptr inbounds double, double* %5888, i64 2
%5890 = load double, double* %5889
%5891 = fsub double %5887, %5890
%5892 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %5891, double* %5892
%5893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5894 = load double, double* %5893
%5895 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5896 = load double, double* %5895
%5897 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5898 = load double, double* %5897
%5899 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5900 = load double, double* %5899
%5901 = fmul double %5898, %5900
%5902 = fneg double %5901
%5903 = call double @llvm.fmuladd.f64(double %5894, double %5896, double %5902)
%5904 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %5903, double* %5904
%5905 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5906 = load double, double* %5905
%5907 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5908 = load double, double* %5907
%5909 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5910 = load double, double* %5909
%5911 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%5912 = load double, double* %5911
%5913 = fmul double %5910, %5912
%5914 = fneg double %5913
%5915 = call double @llvm.fmuladd.f64(double %5906, double %5908, double %5914)
%5916 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %5915, double* %5916
%5917 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5918 = load double, double* %5917
%5919 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%5920 = load double, double* %5919
%5921 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5922 = load double, double* %5921
%5923 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%5924 = load double, double* %5923
%5925 = fmul double %5922, %5924
%5926 = fneg double %5925
%5927 = call double @llvm.fmuladd.f64(double %5918, double %5920, double %5926)
%5928 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %5927, double* %5928
%5929 = load double*, double** %12
%5930 = getelementptr inbounds double, double* %5929, i64 0
%5931 = load double, double* %5930
%5932 = load double*, double** %10
%5933 = getelementptr inbounds double, double* %5932, i64 0
%5934 = load double, double* %5933
%5935 = fsub double %5931, %5934
%5936 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5935, double* %5936
%5937 = load double*, double** %12
%5938 = getelementptr inbounds double, double* %5937, i64 1
%5939 = load double, double* %5938
%5940 = load double*, double** %10
%5941 = getelementptr inbounds double, double* %5940, i64 1
%5942 = load double, double* %5941
%5943 = fsub double %5939, %5942
%5944 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5943, double* %5944
%5945 = load double*, double** %12
%5946 = getelementptr inbounds double, double* %5945, i64 2
%5947 = load double, double* %5946
%5948 = load double*, double** %10
%5949 = getelementptr inbounds double, double* %5948, i64 2
%5950 = load double, double* %5949
%5951 = fsub double %5947, %5950
%5952 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5951, double* %5952
%5953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%5954 = load double, double* %5953
%5955 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%5956 = load double, double* %5955
%5957 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%5958 = load double, double* %5957
%5959 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%5960 = load double, double* %5959
%5961 = fmul double %5958, %5960
%5962 = call double @llvm.fmuladd.f64(double %5954, double %5956, double %5961)
%5963 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%5964 = load double, double* %5963
%5965 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%5966 = load double, double* %5965
%5967 = call double @llvm.fmuladd.f64(double %5964, double %5966, double %5962)
%5968 = fcmp ogt double %5967, 0.000000e+00
br i1 %5968, label %5969, label %5970
5969: ; preds = %5844
store i32 0, i32* %7
br label %37464
5970: ; preds = %5844
%5971 = load double*, double** %13
%5972 = getelementptr inbounds double, double* %5971, i64 0
%5973 = load double, double* %5972
%5974 = load double*, double** %9
%5975 = getelementptr inbounds double, double* %5974, i64 0
%5976 = load double, double* %5975
%5977 = fsub double %5973, %5976
%5978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %5977, double* %5978
%5979 = load double*, double** %13
%5980 = getelementptr inbounds double, double* %5979, i64 1
%5981 = load double, double* %5980
%5982 = load double*, double** %9
%5983 = getelementptr inbounds double, double* %5982, i64 1
%5984 = load double, double* %5983
%5985 = fsub double %5981, %5984
%5986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %5985, double* %5986
%5987 = load double*, double** %13
%5988 = getelementptr inbounds double, double* %5987, i64 2
%5989 = load double, double* %5988
%5990 = load double*, double** %9
%5991 = getelementptr inbounds double, double* %5990, i64 2
%5992 = load double, double* %5991
%5993 = fsub double %5989, %5992
%5994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %5993, double* %5994
%5995 = load double*, double** %8
%5996 = getelementptr inbounds double, double* %5995, i64 0
%5997 = load double, double* %5996
%5998 = load double*, double** %9
%5999 = getelementptr inbounds double, double* %5998, i64 0
%6000 = load double, double* %5999
%6001 = fsub double %5997, %6000
%6002 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6001, double* %6002
%6003 = load double*, double** %8
%6004 = getelementptr inbounds double, double* %6003, i64 1
%6005 = load double, double* %6004
%6006 = load double*, double** %9
%6007 = getelementptr inbounds double, double* %6006, i64 1
%6008 = load double, double* %6007
%6009 = fsub double %6005, %6008
%6010 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6009, double* %6010
%6011 = load double*, double** %8
%6012 = getelementptr inbounds double, double* %6011, i64 2
%6013 = load double, double* %6012
%6014 = load double*, double** %9
%6015 = getelementptr inbounds double, double* %6014, i64 2
%6016 = load double, double* %6015
%6017 = fsub double %6013, %6016
%6018 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6017, double* %6018
%6019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6020 = load double, double* %6019
%6021 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6022 = load double, double* %6021
%6023 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6024 = load double, double* %6023
%6025 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6026 = load double, double* %6025
%6027 = fmul double %6024, %6026
%6028 = fneg double %6027
%6029 = call double @llvm.fmuladd.f64(double %6020, double %6022, double %6028)
%6030 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6029, double* %6030
%6031 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6032 = load double, double* %6031
%6033 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6034 = load double, double* %6033
%6035 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6036 = load double, double* %6035
%6037 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6038 = load double, double* %6037
%6039 = fmul double %6036, %6038
%6040 = fneg double %6039
%6041 = call double @llvm.fmuladd.f64(double %6032, double %6034, double %6040)
%6042 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6041, double* %6042
%6043 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6044 = load double, double* %6043
%6045 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6046 = load double, double* %6045
%6047 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6048 = load double, double* %6047
%6049 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6050 = load double, double* %6049
%6051 = fmul double %6048, %6050
%6052 = fneg double %6051
%6053 = call double @llvm.fmuladd.f64(double %6044, double %6046, double %6052)
%6054 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6053, double* %6054
%6055 = load double*, double** %11
%6056 = getelementptr inbounds double, double* %6055, i64 0
%6057 = load double, double* %6056
%6058 = load double*, double** %9
%6059 = getelementptr inbounds double, double* %6058, i64 0
%6060 = load double, double* %6059
%6061 = fsub double %6057, %6060
%6062 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6061, double* %6062
%6063 = load double*, double** %11
%6064 = getelementptr inbounds double, double* %6063, i64 1
%6065 = load double, double* %6064
%6066 = load double*, double** %9
%6067 = getelementptr inbounds double, double* %6066, i64 1
%6068 = load double, double* %6067
%6069 = fsub double %6065, %6068
%6070 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6069, double* %6070
%6071 = load double*, double** %11
%6072 = getelementptr inbounds double, double* %6071, i64 2
%6073 = load double, double* %6072
%6074 = load double*, double** %9
%6075 = getelementptr inbounds double, double* %6074, i64 2
%6076 = load double, double* %6075
%6077 = fsub double %6073, %6076
%6078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6077, double* %6078
%6079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6080 = load double, double* %6079
%6081 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6082 = load double, double* %6081
%6083 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6084 = load double, double* %6083
%6085 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6086 = load double, double* %6085
%6087 = fmul double %6084, %6086
%6088 = call double @llvm.fmuladd.f64(double %6080, double %6082, double %6087)
%6089 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6090 = load double, double* %6089
%6091 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6092 = load double, double* %6091
%6093 = call double @llvm.fmuladd.f64(double %6090, double %6092, double %6088)
%6094 = fcmp ogt double %6093, 0.000000e+00
br i1 %6094, label %6095, label %6096
6095: ; preds = %5970
store i32 0, i32* %7
br label %37464
6096: ; preds = %5970
store i32 1, i32* %7
br label %37464
6097: ; preds = %5585
%6098 = load double, double* %18
%6099 = fcmp ogt double %6098, 0.000000e+00
br i1 %6099, label %6100, label %6353
6100: ; preds = %6097
%6101 = load double*, double** %12
%6102 = getelementptr inbounds double, double* %6101, i64 0
%6103 = load double, double* %6102
%6104 = load double*, double** %10
%6105 = getelementptr inbounds double, double* %6104, i64 0
%6106 = load double, double* %6105
%6107 = fsub double %6103, %6106
%6108 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6107, double* %6108
%6109 = load double*, double** %12
%6110 = getelementptr inbounds double, double* %6109, i64 1
%6111 = load double, double* %6110
%6112 = load double*, double** %10
%6113 = getelementptr inbounds double, double* %6112, i64 1
%6114 = load double, double* %6113
%6115 = fsub double %6111, %6114
%6116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6115, double* %6116
%6117 = load double*, double** %12
%6118 = getelementptr inbounds double, double* %6117, i64 2
%6119 = load double, double* %6118
%6120 = load double*, double** %10
%6121 = getelementptr inbounds double, double* %6120, i64 2
%6122 = load double, double* %6121
%6123 = fsub double %6119, %6122
%6124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6123, double* %6124
%6125 = load double*, double** %9
%6126 = getelementptr inbounds double, double* %6125, i64 0
%6127 = load double, double* %6126
%6128 = load double*, double** %10
%6129 = getelementptr inbounds double, double* %6128, i64 0
%6130 = load double, double* %6129
%6131 = fsub double %6127, %6130
%6132 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6131, double* %6132
%6133 = load double*, double** %9
%6134 = getelementptr inbounds double, double* %6133, i64 1
%6135 = load double, double* %6134
%6136 = load double*, double** %10
%6137 = getelementptr inbounds double, double* %6136, i64 1
%6138 = load double, double* %6137
%6139 = fsub double %6135, %6138
%6140 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6139, double* %6140
%6141 = load double*, double** %9
%6142 = getelementptr inbounds double, double* %6141, i64 2
%6143 = load double, double* %6142
%6144 = load double*, double** %10
%6145 = getelementptr inbounds double, double* %6144, i64 2
%6146 = load double, double* %6145
%6147 = fsub double %6143, %6146
%6148 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6147, double* %6148
%6149 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6150 = load double, double* %6149
%6151 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6152 = load double, double* %6151
%6153 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6154 = load double, double* %6153
%6155 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6156 = load double, double* %6155
%6157 = fmul double %6154, %6156
%6158 = fneg double %6157
%6159 = call double @llvm.fmuladd.f64(double %6150, double %6152, double %6158)
%6160 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6159, double* %6160
%6161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6162 = load double, double* %6161
%6163 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6164 = load double, double* %6163
%6165 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6166 = load double, double* %6165
%6167 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6168 = load double, double* %6167
%6169 = fmul double %6166, %6168
%6170 = fneg double %6169
%6171 = call double @llvm.fmuladd.f64(double %6162, double %6164, double %6170)
%6172 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6171, double* %6172
%6173 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6174 = load double, double* %6173
%6175 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6176 = load double, double* %6175
%6177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6178 = load double, double* %6177
%6179 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6180 = load double, double* %6179
%6181 = fmul double %6178, %6180
%6182 = fneg double %6181
%6183 = call double @llvm.fmuladd.f64(double %6174, double %6176, double %6182)
%6184 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6183, double* %6184
%6185 = load double*, double** %11
%6186 = getelementptr inbounds double, double* %6185, i64 0
%6187 = load double, double* %6186
%6188 = load double*, double** %10
%6189 = getelementptr inbounds double, double* %6188, i64 0
%6190 = load double, double* %6189
%6191 = fsub double %6187, %6190
%6192 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6191, double* %6192
%6193 = load double*, double** %11
%6194 = getelementptr inbounds double, double* %6193, i64 1
%6195 = load double, double* %6194
%6196 = load double*, double** %10
%6197 = getelementptr inbounds double, double* %6196, i64 1
%6198 = load double, double* %6197
%6199 = fsub double %6195, %6198
%6200 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6199, double* %6200
%6201 = load double*, double** %11
%6202 = getelementptr inbounds double, double* %6201, i64 2
%6203 = load double, double* %6202
%6204 = load double*, double** %10
%6205 = getelementptr inbounds double, double* %6204, i64 2
%6206 = load double, double* %6205
%6207 = fsub double %6203, %6206
%6208 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6207, double* %6208
%6209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6210 = load double, double* %6209
%6211 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6212 = load double, double* %6211
%6213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6214 = load double, double* %6213
%6215 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6216 = load double, double* %6215
%6217 = fmul double %6214, %6216
%6218 = call double @llvm.fmuladd.f64(double %6210, double %6212, double %6217)
%6219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6220 = load double, double* %6219
%6221 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6222 = load double, double* %6221
%6223 = call double @llvm.fmuladd.f64(double %6220, double %6222, double %6218)
%6224 = fcmp ogt double %6223, 0.000000e+00
br i1 %6224, label %6225, label %6226
6225: ; preds = %6100
store i32 0, i32* %7
br label %37464
6226: ; preds = %6100
%6227 = load double*, double** %12
%6228 = getelementptr inbounds double, double* %6227, i64 0
%6229 = load double, double* %6228
%6230 = load double*, double** %9
%6231 = getelementptr inbounds double, double* %6230, i64 0
%6232 = load double, double* %6231
%6233 = fsub double %6229, %6232
%6234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6233, double* %6234
%6235 = load double*, double** %12
%6236 = getelementptr inbounds double, double* %6235, i64 1
%6237 = load double, double* %6236
%6238 = load double*, double** %9
%6239 = getelementptr inbounds double, double* %6238, i64 1
%6240 = load double, double* %6239
%6241 = fsub double %6237, %6240
%6242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6241, double* %6242
%6243 = load double*, double** %12
%6244 = getelementptr inbounds double, double* %6243, i64 2
%6245 = load double, double* %6244
%6246 = load double*, double** %9
%6247 = getelementptr inbounds double, double* %6246, i64 2
%6248 = load double, double* %6247
%6249 = fsub double %6245, %6248
%6250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6249, double* %6250
%6251 = load double*, double** %8
%6252 = getelementptr inbounds double, double* %6251, i64 0
%6253 = load double, double* %6252
%6254 = load double*, double** %9
%6255 = getelementptr inbounds double, double* %6254, i64 0
%6256 = load double, double* %6255
%6257 = fsub double %6253, %6256
%6258 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6257, double* %6258
%6259 = load double*, double** %8
%6260 = getelementptr inbounds double, double* %6259, i64 1
%6261 = load double, double* %6260
%6262 = load double*, double** %9
%6263 = getelementptr inbounds double, double* %6262, i64 1
%6264 = load double, double* %6263
%6265 = fsub double %6261, %6264
%6266 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6265, double* %6266
%6267 = load double*, double** %8
%6268 = getelementptr inbounds double, double* %6267, i64 2
%6269 = load double, double* %6268
%6270 = load double*, double** %9
%6271 = getelementptr inbounds double, double* %6270, i64 2
%6272 = load double, double* %6271
%6273 = fsub double %6269, %6272
%6274 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6273, double* %6274
%6275 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6276 = load double, double* %6275
%6277 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6278 = load double, double* %6277
%6279 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6280 = load double, double* %6279
%6281 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6282 = load double, double* %6281
%6283 = fmul double %6280, %6282
%6284 = fneg double %6283
%6285 = call double @llvm.fmuladd.f64(double %6276, double %6278, double %6284)
%6286 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6285, double* %6286
%6287 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6288 = load double, double* %6287
%6289 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6290 = load double, double* %6289
%6291 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6292 = load double, double* %6291
%6293 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6294 = load double, double* %6293
%6295 = fmul double %6292, %6294
%6296 = fneg double %6295
%6297 = call double @llvm.fmuladd.f64(double %6288, double %6290, double %6296)
%6298 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6297, double* %6298
%6299 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6300 = load double, double* %6299
%6301 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6302 = load double, double* %6301
%6303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6304 = load double, double* %6303
%6305 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6306 = load double, double* %6305
%6307 = fmul double %6304, %6306
%6308 = fneg double %6307
%6309 = call double @llvm.fmuladd.f64(double %6300, double %6302, double %6308)
%6310 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6309, double* %6310
%6311 = load double*, double** %13
%6312 = getelementptr inbounds double, double* %6311, i64 0
%6313 = load double, double* %6312
%6314 = load double*, double** %9
%6315 = getelementptr inbounds double, double* %6314, i64 0
%6316 = load double, double* %6315
%6317 = fsub double %6313, %6316
%6318 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6317, double* %6318
%6319 = load double*, double** %13
%6320 = getelementptr inbounds double, double* %6319, i64 1
%6321 = load double, double* %6320
%6322 = load double*, double** %9
%6323 = getelementptr inbounds double, double* %6322, i64 1
%6324 = load double, double* %6323
%6325 = fsub double %6321, %6324
%6326 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6325, double* %6326
%6327 = load double*, double** %13
%6328 = getelementptr inbounds double, double* %6327, i64 2
%6329 = load double, double* %6328
%6330 = load double*, double** %9
%6331 = getelementptr inbounds double, double* %6330, i64 2
%6332 = load double, double* %6331
%6333 = fsub double %6329, %6332
%6334 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6333, double* %6334
%6335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6336 = load double, double* %6335
%6337 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6338 = load double, double* %6337
%6339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6340 = load double, double* %6339
%6341 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6342 = load double, double* %6341
%6343 = fmul double %6340, %6342
%6344 = call double @llvm.fmuladd.f64(double %6336, double %6338, double %6343)
%6345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6346 = load double, double* %6345
%6347 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6348 = load double, double* %6347
%6349 = call double @llvm.fmuladd.f64(double %6346, double %6348, double %6344)
%6350 = fcmp ogt double %6349, 0.000000e+00
br i1 %6350, label %6351, label %6352
6351: ; preds = %6226
store i32 0, i32* %7
br label %37464
6352: ; preds = %6226
store i32 1, i32* %7
br label %37464
6353: ; preds = %6097
%6354 = load double, double* %18
%6355 = fcmp olt double %6354, 0.000000e+00
br i1 %6355, label %6356, label %6609
6356: ; preds = %6353
%6357 = load double*, double** %12
%6358 = getelementptr inbounds double, double* %6357, i64 0
%6359 = load double, double* %6358
%6360 = load double*, double** %8
%6361 = getelementptr inbounds double, double* %6360, i64 0
%6362 = load double, double* %6361
%6363 = fsub double %6359, %6362
%6364 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6363, double* %6364
%6365 = load double*, double** %12
%6366 = getelementptr inbounds double, double* %6365, i64 1
%6367 = load double, double* %6366
%6368 = load double*, double** %8
%6369 = getelementptr inbounds double, double* %6368, i64 1
%6370 = load double, double* %6369
%6371 = fsub double %6367, %6370
%6372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6371, double* %6372
%6373 = load double*, double** %12
%6374 = getelementptr inbounds double, double* %6373, i64 2
%6375 = load double, double* %6374
%6376 = load double*, double** %8
%6377 = getelementptr inbounds double, double* %6376, i64 2
%6378 = load double, double* %6377
%6379 = fsub double %6375, %6378
%6380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6379, double* %6380
%6381 = load double*, double** %9
%6382 = getelementptr inbounds double, double* %6381, i64 0
%6383 = load double, double* %6382
%6384 = load double*, double** %8
%6385 = getelementptr inbounds double, double* %6384, i64 0
%6386 = load double, double* %6385
%6387 = fsub double %6383, %6386
%6388 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6387, double* %6388
%6389 = load double*, double** %9
%6390 = getelementptr inbounds double, double* %6389, i64 1
%6391 = load double, double* %6390
%6392 = load double*, double** %8
%6393 = getelementptr inbounds double, double* %6392, i64 1
%6394 = load double, double* %6393
%6395 = fsub double %6391, %6394
%6396 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6395, double* %6396
%6397 = load double*, double** %9
%6398 = getelementptr inbounds double, double* %6397, i64 2
%6399 = load double, double* %6398
%6400 = load double*, double** %8
%6401 = getelementptr inbounds double, double* %6400, i64 2
%6402 = load double, double* %6401
%6403 = fsub double %6399, %6402
%6404 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6403, double* %6404
%6405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6406 = load double, double* %6405
%6407 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6408 = load double, double* %6407
%6409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6410 = load double, double* %6409
%6411 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6412 = load double, double* %6411
%6413 = fmul double %6410, %6412
%6414 = fneg double %6413
%6415 = call double @llvm.fmuladd.f64(double %6406, double %6408, double %6414)
%6416 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6415, double* %6416
%6417 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6418 = load double, double* %6417
%6419 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6420 = load double, double* %6419
%6421 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6422 = load double, double* %6421
%6423 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6424 = load double, double* %6423
%6425 = fmul double %6422, %6424
%6426 = fneg double %6425
%6427 = call double @llvm.fmuladd.f64(double %6418, double %6420, double %6426)
%6428 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6427, double* %6428
%6429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6430 = load double, double* %6429
%6431 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6432 = load double, double* %6431
%6433 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6434 = load double, double* %6433
%6435 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6436 = load double, double* %6435
%6437 = fmul double %6434, %6436
%6438 = fneg double %6437
%6439 = call double @llvm.fmuladd.f64(double %6430, double %6432, double %6438)
%6440 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6439, double* %6440
%6441 = load double*, double** %11
%6442 = getelementptr inbounds double, double* %6441, i64 0
%6443 = load double, double* %6442
%6444 = load double*, double** %8
%6445 = getelementptr inbounds double, double* %6444, i64 0
%6446 = load double, double* %6445
%6447 = fsub double %6443, %6446
%6448 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6447, double* %6448
%6449 = load double*, double** %11
%6450 = getelementptr inbounds double, double* %6449, i64 1
%6451 = load double, double* %6450
%6452 = load double*, double** %8
%6453 = getelementptr inbounds double, double* %6452, i64 1
%6454 = load double, double* %6453
%6455 = fsub double %6451, %6454
%6456 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6455, double* %6456
%6457 = load double*, double** %11
%6458 = getelementptr inbounds double, double* %6457, i64 2
%6459 = load double, double* %6458
%6460 = load double*, double** %8
%6461 = getelementptr inbounds double, double* %6460, i64 2
%6462 = load double, double* %6461
%6463 = fsub double %6459, %6462
%6464 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6463, double* %6464
%6465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6466 = load double, double* %6465
%6467 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6468 = load double, double* %6467
%6469 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6470 = load double, double* %6469
%6471 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6472 = load double, double* %6471
%6473 = fmul double %6470, %6472
%6474 = call double @llvm.fmuladd.f64(double %6466, double %6468, double %6473)
%6475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6476 = load double, double* %6475
%6477 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6478 = load double, double* %6477
%6479 = call double @llvm.fmuladd.f64(double %6476, double %6478, double %6474)
%6480 = fcmp ogt double %6479, 0.000000e+00
br i1 %6480, label %6481, label %6482
6481: ; preds = %6356
store i32 0, i32* %7
br label %37464
6482: ; preds = %6356
%6483 = load double*, double** %12
%6484 = getelementptr inbounds double, double* %6483, i64 0
%6485 = load double, double* %6484
%6486 = load double*, double** %9
%6487 = getelementptr inbounds double, double* %6486, i64 0
%6488 = load double, double* %6487
%6489 = fsub double %6485, %6488
%6490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6489, double* %6490
%6491 = load double*, double** %12
%6492 = getelementptr inbounds double, double* %6491, i64 1
%6493 = load double, double* %6492
%6494 = load double*, double** %9
%6495 = getelementptr inbounds double, double* %6494, i64 1
%6496 = load double, double* %6495
%6497 = fsub double %6493, %6496
%6498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6497, double* %6498
%6499 = load double*, double** %12
%6500 = getelementptr inbounds double, double* %6499, i64 2
%6501 = load double, double* %6500
%6502 = load double*, double** %9
%6503 = getelementptr inbounds double, double* %6502, i64 2
%6504 = load double, double* %6503
%6505 = fsub double %6501, %6504
%6506 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6505, double* %6506
%6507 = load double*, double** %10
%6508 = getelementptr inbounds double, double* %6507, i64 0
%6509 = load double, double* %6508
%6510 = load double*, double** %9
%6511 = getelementptr inbounds double, double* %6510, i64 0
%6512 = load double, double* %6511
%6513 = fsub double %6509, %6512
%6514 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6513, double* %6514
%6515 = load double*, double** %10
%6516 = getelementptr inbounds double, double* %6515, i64 1
%6517 = load double, double* %6516
%6518 = load double*, double** %9
%6519 = getelementptr inbounds double, double* %6518, i64 1
%6520 = load double, double* %6519
%6521 = fsub double %6517, %6520
%6522 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6521, double* %6522
%6523 = load double*, double** %10
%6524 = getelementptr inbounds double, double* %6523, i64 2
%6525 = load double, double* %6524
%6526 = load double*, double** %9
%6527 = getelementptr inbounds double, double* %6526, i64 2
%6528 = load double, double* %6527
%6529 = fsub double %6525, %6528
%6530 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6529, double* %6530
%6531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6532 = load double, double* %6531
%6533 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6534 = load double, double* %6533
%6535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6536 = load double, double* %6535
%6537 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6538 = load double, double* %6537
%6539 = fmul double %6536, %6538
%6540 = fneg double %6539
%6541 = call double @llvm.fmuladd.f64(double %6532, double %6534, double %6540)
%6542 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6541, double* %6542
%6543 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6544 = load double, double* %6543
%6545 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6546 = load double, double* %6545
%6547 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6548 = load double, double* %6547
%6549 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6550 = load double, double* %6549
%6551 = fmul double %6548, %6550
%6552 = fneg double %6551
%6553 = call double @llvm.fmuladd.f64(double %6544, double %6546, double %6552)
%6554 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6553, double* %6554
%6555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6556 = load double, double* %6555
%6557 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6558 = load double, double* %6557
%6559 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6560 = load double, double* %6559
%6561 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6562 = load double, double* %6561
%6563 = fmul double %6560, %6562
%6564 = fneg double %6563
%6565 = call double @llvm.fmuladd.f64(double %6556, double %6558, double %6564)
%6566 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6565, double* %6566
%6567 = load double*, double** %13
%6568 = getelementptr inbounds double, double* %6567, i64 0
%6569 = load double, double* %6568
%6570 = load double*, double** %9
%6571 = getelementptr inbounds double, double* %6570, i64 0
%6572 = load double, double* %6571
%6573 = fsub double %6569, %6572
%6574 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6573, double* %6574
%6575 = load double*, double** %13
%6576 = getelementptr inbounds double, double* %6575, i64 1
%6577 = load double, double* %6576
%6578 = load double*, double** %9
%6579 = getelementptr inbounds double, double* %6578, i64 1
%6580 = load double, double* %6579
%6581 = fsub double %6577, %6580
%6582 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6581, double* %6582
%6583 = load double*, double** %13
%6584 = getelementptr inbounds double, double* %6583, i64 2
%6585 = load double, double* %6584
%6586 = load double*, double** %9
%6587 = getelementptr inbounds double, double* %6586, i64 2
%6588 = load double, double* %6587
%6589 = fsub double %6585, %6588
%6590 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6589, double* %6590
%6591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6592 = load double, double* %6591
%6593 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6594 = load double, double* %6593
%6595 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6596 = load double, double* %6595
%6597 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6598 = load double, double* %6597
%6599 = fmul double %6596, %6598
%6600 = call double @llvm.fmuladd.f64(double %6592, double %6594, double %6599)
%6601 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6602 = load double, double* %6601
%6603 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6604 = load double, double* %6603
%6605 = call double @llvm.fmuladd.f64(double %6602, double %6604, double %6600)
%6606 = fcmp ogt double %6605, 0.000000e+00
br i1 %6606, label %6607, label %6608
6607: ; preds = %6482
store i32 0, i32* %7
br label %37464
6608: ; preds = %6482
store i32 1, i32* %7
br label %37464
6609: ; preds = %6353
%6610 = load double*, double** %9
%6611 = load double*, double** %10
%6612 = load double*, double** %8
%6613 = load double*, double** %11
%6614 = load double*, double** %13
%6615 = load double*, double** %12
%6616 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6617 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %6610, double* %6611, double* %6612, double* %6613, double* %6614, double* %6615, double* %6616)
store i32 %6617, i32* %7
br label %37464
6618: ; preds = %3534
%6619 = load double, double* %17
%6620 = fcmp ogt double %6619, 0.000000e+00
br i1 %6620, label %6621, label %7386
6621: ; preds = %6618
%6622 = load double, double* %18
%6623 = fcmp ogt double %6622, 0.000000e+00
br i1 %6623, label %6624, label %6877
6624: ; preds = %6621
%6625 = load double*, double** %13
%6626 = getelementptr inbounds double, double* %6625, i64 0
%6627 = load double, double* %6626
%6628 = load double*, double** %10
%6629 = getelementptr inbounds double, double* %6628, i64 0
%6630 = load double, double* %6629
%6631 = fsub double %6627, %6630
%6632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6631, double* %6632
%6633 = load double*, double** %13
%6634 = getelementptr inbounds double, double* %6633, i64 1
%6635 = load double, double* %6634
%6636 = load double*, double** %10
%6637 = getelementptr inbounds double, double* %6636, i64 1
%6638 = load double, double* %6637
%6639 = fsub double %6635, %6638
%6640 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6639, double* %6640
%6641 = load double*, double** %13
%6642 = getelementptr inbounds double, double* %6641, i64 2
%6643 = load double, double* %6642
%6644 = load double*, double** %10
%6645 = getelementptr inbounds double, double* %6644, i64 2
%6646 = load double, double* %6645
%6647 = fsub double %6643, %6646
%6648 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6647, double* %6648
%6649 = load double*, double** %8
%6650 = getelementptr inbounds double, double* %6649, i64 0
%6651 = load double, double* %6650
%6652 = load double*, double** %10
%6653 = getelementptr inbounds double, double* %6652, i64 0
%6654 = load double, double* %6653
%6655 = fsub double %6651, %6654
%6656 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6655, double* %6656
%6657 = load double*, double** %8
%6658 = getelementptr inbounds double, double* %6657, i64 1
%6659 = load double, double* %6658
%6660 = load double*, double** %10
%6661 = getelementptr inbounds double, double* %6660, i64 1
%6662 = load double, double* %6661
%6663 = fsub double %6659, %6662
%6664 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6663, double* %6664
%6665 = load double*, double** %8
%6666 = getelementptr inbounds double, double* %6665, i64 2
%6667 = load double, double* %6666
%6668 = load double*, double** %10
%6669 = getelementptr inbounds double, double* %6668, i64 2
%6670 = load double, double* %6669
%6671 = fsub double %6667, %6670
%6672 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6671, double* %6672
%6673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6674 = load double, double* %6673
%6675 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6676 = load double, double* %6675
%6677 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6678 = load double, double* %6677
%6679 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6680 = load double, double* %6679
%6681 = fmul double %6678, %6680
%6682 = fneg double %6681
%6683 = call double @llvm.fmuladd.f64(double %6674, double %6676, double %6682)
%6684 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6683, double* %6684
%6685 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6686 = load double, double* %6685
%6687 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6688 = load double, double* %6687
%6689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6690 = load double, double* %6689
%6691 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6692 = load double, double* %6691
%6693 = fmul double %6690, %6692
%6694 = fneg double %6693
%6695 = call double @llvm.fmuladd.f64(double %6686, double %6688, double %6694)
%6696 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6695, double* %6696
%6697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6698 = load double, double* %6697
%6699 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6700 = load double, double* %6699
%6701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6702 = load double, double* %6701
%6703 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6704 = load double, double* %6703
%6705 = fmul double %6702, %6704
%6706 = fneg double %6705
%6707 = call double @llvm.fmuladd.f64(double %6698, double %6700, double %6706)
%6708 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6707, double* %6708
%6709 = load double*, double** %11
%6710 = getelementptr inbounds double, double* %6709, i64 0
%6711 = load double, double* %6710
%6712 = load double*, double** %10
%6713 = getelementptr inbounds double, double* %6712, i64 0
%6714 = load double, double* %6713
%6715 = fsub double %6711, %6714
%6716 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6715, double* %6716
%6717 = load double*, double** %11
%6718 = getelementptr inbounds double, double* %6717, i64 1
%6719 = load double, double* %6718
%6720 = load double*, double** %10
%6721 = getelementptr inbounds double, double* %6720, i64 1
%6722 = load double, double* %6721
%6723 = fsub double %6719, %6722
%6724 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6723, double* %6724
%6725 = load double*, double** %11
%6726 = getelementptr inbounds double, double* %6725, i64 2
%6727 = load double, double* %6726
%6728 = load double*, double** %10
%6729 = getelementptr inbounds double, double* %6728, i64 2
%6730 = load double, double* %6729
%6731 = fsub double %6727, %6730
%6732 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6731, double* %6732
%6733 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6734 = load double, double* %6733
%6735 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6736 = load double, double* %6735
%6737 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6738 = load double, double* %6737
%6739 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6740 = load double, double* %6739
%6741 = fmul double %6738, %6740
%6742 = call double @llvm.fmuladd.f64(double %6734, double %6736, double %6741)
%6743 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6744 = load double, double* %6743
%6745 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6746 = load double, double* %6745
%6747 = call double @llvm.fmuladd.f64(double %6744, double %6746, double %6742)
%6748 = fcmp ogt double %6747, 0.000000e+00
br i1 %6748, label %6749, label %6750
6749: ; preds = %6624
store i32 0, i32* %7
br label %37464
6750: ; preds = %6624
%6751 = load double*, double** %13
%6752 = getelementptr inbounds double, double* %6751, i64 0
%6753 = load double, double* %6752
%6754 = load double*, double** %8
%6755 = getelementptr inbounds double, double* %6754, i64 0
%6756 = load double, double* %6755
%6757 = fsub double %6753, %6756
%6758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6757, double* %6758
%6759 = load double*, double** %13
%6760 = getelementptr inbounds double, double* %6759, i64 1
%6761 = load double, double* %6760
%6762 = load double*, double** %8
%6763 = getelementptr inbounds double, double* %6762, i64 1
%6764 = load double, double* %6763
%6765 = fsub double %6761, %6764
%6766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6765, double* %6766
%6767 = load double*, double** %13
%6768 = getelementptr inbounds double, double* %6767, i64 2
%6769 = load double, double* %6768
%6770 = load double*, double** %8
%6771 = getelementptr inbounds double, double* %6770, i64 2
%6772 = load double, double* %6771
%6773 = fsub double %6769, %6772
%6774 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6773, double* %6774
%6775 = load double*, double** %9
%6776 = getelementptr inbounds double, double* %6775, i64 0
%6777 = load double, double* %6776
%6778 = load double*, double** %8
%6779 = getelementptr inbounds double, double* %6778, i64 0
%6780 = load double, double* %6779
%6781 = fsub double %6777, %6780
%6782 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6781, double* %6782
%6783 = load double*, double** %9
%6784 = getelementptr inbounds double, double* %6783, i64 1
%6785 = load double, double* %6784
%6786 = load double*, double** %8
%6787 = getelementptr inbounds double, double* %6786, i64 1
%6788 = load double, double* %6787
%6789 = fsub double %6785, %6788
%6790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6789, double* %6790
%6791 = load double*, double** %9
%6792 = getelementptr inbounds double, double* %6791, i64 2
%6793 = load double, double* %6792
%6794 = load double*, double** %8
%6795 = getelementptr inbounds double, double* %6794, i64 2
%6796 = load double, double* %6795
%6797 = fsub double %6793, %6796
%6798 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6797, double* %6798
%6799 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6800 = load double, double* %6799
%6801 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6802 = load double, double* %6801
%6803 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6804 = load double, double* %6803
%6805 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6806 = load double, double* %6805
%6807 = fmul double %6804, %6806
%6808 = fneg double %6807
%6809 = call double @llvm.fmuladd.f64(double %6800, double %6802, double %6808)
%6810 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6809, double* %6810
%6811 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6812 = load double, double* %6811
%6813 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6814 = load double, double* %6813
%6815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6816 = load double, double* %6815
%6817 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6818 = load double, double* %6817
%6819 = fmul double %6816, %6818
%6820 = fneg double %6819
%6821 = call double @llvm.fmuladd.f64(double %6812, double %6814, double %6820)
%6822 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6821, double* %6822
%6823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6824 = load double, double* %6823
%6825 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6826 = load double, double* %6825
%6827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6828 = load double, double* %6827
%6829 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6830 = load double, double* %6829
%6831 = fmul double %6828, %6830
%6832 = fneg double %6831
%6833 = call double @llvm.fmuladd.f64(double %6824, double %6826, double %6832)
%6834 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6833, double* %6834
%6835 = load double*, double** %12
%6836 = getelementptr inbounds double, double* %6835, i64 0
%6837 = load double, double* %6836
%6838 = load double*, double** %8
%6839 = getelementptr inbounds double, double* %6838, i64 0
%6840 = load double, double* %6839
%6841 = fsub double %6837, %6840
%6842 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6841, double* %6842
%6843 = load double*, double** %12
%6844 = getelementptr inbounds double, double* %6843, i64 1
%6845 = load double, double* %6844
%6846 = load double*, double** %8
%6847 = getelementptr inbounds double, double* %6846, i64 1
%6848 = load double, double* %6847
%6849 = fsub double %6845, %6848
%6850 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6849, double* %6850
%6851 = load double*, double** %12
%6852 = getelementptr inbounds double, double* %6851, i64 2
%6853 = load double, double* %6852
%6854 = load double*, double** %8
%6855 = getelementptr inbounds double, double* %6854, i64 2
%6856 = load double, double* %6855
%6857 = fsub double %6853, %6856
%6858 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6857, double* %6858
%6859 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6860 = load double, double* %6859
%6861 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6862 = load double, double* %6861
%6863 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6864 = load double, double* %6863
%6865 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6866 = load double, double* %6865
%6867 = fmul double %6864, %6866
%6868 = call double @llvm.fmuladd.f64(double %6860, double %6862, double %6867)
%6869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6870 = load double, double* %6869
%6871 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%6872 = load double, double* %6871
%6873 = call double @llvm.fmuladd.f64(double %6870, double %6872, double %6868)
%6874 = fcmp ogt double %6873, 0.000000e+00
br i1 %6874, label %6875, label %6876
6875: ; preds = %6750
store i32 0, i32* %7
br label %37464
6876: ; preds = %6750
store i32 1, i32* %7
br label %37464
6877: ; preds = %6621
%6878 = load double, double* %19
%6879 = fcmp ogt double %6878, 0.000000e+00
br i1 %6879, label %6880, label %7133
6880: ; preds = %6877
%6881 = load double*, double** %12
%6882 = getelementptr inbounds double, double* %6881, i64 0
%6883 = load double, double* %6882
%6884 = load double*, double** %10
%6885 = getelementptr inbounds double, double* %6884, i64 0
%6886 = load double, double* %6885
%6887 = fsub double %6883, %6886
%6888 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6887, double* %6888
%6889 = load double*, double** %12
%6890 = getelementptr inbounds double, double* %6889, i64 1
%6891 = load double, double* %6890
%6892 = load double*, double** %10
%6893 = getelementptr inbounds double, double* %6892, i64 1
%6894 = load double, double* %6893
%6895 = fsub double %6891, %6894
%6896 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6895, double* %6896
%6897 = load double*, double** %12
%6898 = getelementptr inbounds double, double* %6897, i64 2
%6899 = load double, double* %6898
%6900 = load double*, double** %10
%6901 = getelementptr inbounds double, double* %6900, i64 2
%6902 = load double, double* %6901
%6903 = fsub double %6899, %6902
%6904 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6903, double* %6904
%6905 = load double*, double** %8
%6906 = getelementptr inbounds double, double* %6905, i64 0
%6907 = load double, double* %6906
%6908 = load double*, double** %10
%6909 = getelementptr inbounds double, double* %6908, i64 0
%6910 = load double, double* %6909
%6911 = fsub double %6907, %6910
%6912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %6911, double* %6912
%6913 = load double*, double** %8
%6914 = getelementptr inbounds double, double* %6913, i64 1
%6915 = load double, double* %6914
%6916 = load double*, double** %10
%6917 = getelementptr inbounds double, double* %6916, i64 1
%6918 = load double, double* %6917
%6919 = fsub double %6915, %6918
%6920 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %6919, double* %6920
%6921 = load double*, double** %8
%6922 = getelementptr inbounds double, double* %6921, i64 2
%6923 = load double, double* %6922
%6924 = load double*, double** %10
%6925 = getelementptr inbounds double, double* %6924, i64 2
%6926 = load double, double* %6925
%6927 = fsub double %6923, %6926
%6928 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %6927, double* %6928
%6929 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6930 = load double, double* %6929
%6931 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6932 = load double, double* %6931
%6933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6934 = load double, double* %6933
%6935 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6936 = load double, double* %6935
%6937 = fmul double %6934, %6936
%6938 = fneg double %6937
%6939 = call double @llvm.fmuladd.f64(double %6930, double %6932, double %6938)
%6940 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %6939, double* %6940
%6941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%6942 = load double, double* %6941
%6943 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6944 = load double, double* %6943
%6945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6946 = load double, double* %6945
%6947 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%6948 = load double, double* %6947
%6949 = fmul double %6946, %6948
%6950 = fneg double %6949
%6951 = call double @llvm.fmuladd.f64(double %6942, double %6944, double %6950)
%6952 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %6951, double* %6952
%6953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6954 = load double, double* %6953
%6955 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%6956 = load double, double* %6955
%6957 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6958 = load double, double* %6957
%6959 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%6960 = load double, double* %6959
%6961 = fmul double %6958, %6960
%6962 = fneg double %6961
%6963 = call double @llvm.fmuladd.f64(double %6954, double %6956, double %6962)
%6964 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %6963, double* %6964
%6965 = load double*, double** %13
%6966 = getelementptr inbounds double, double* %6965, i64 0
%6967 = load double, double* %6966
%6968 = load double*, double** %10
%6969 = getelementptr inbounds double, double* %6968, i64 0
%6970 = load double, double* %6969
%6971 = fsub double %6967, %6970
%6972 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %6971, double* %6972
%6973 = load double*, double** %13
%6974 = getelementptr inbounds double, double* %6973, i64 1
%6975 = load double, double* %6974
%6976 = load double*, double** %10
%6977 = getelementptr inbounds double, double* %6976, i64 1
%6978 = load double, double* %6977
%6979 = fsub double %6975, %6978
%6980 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %6979, double* %6980
%6981 = load double*, double** %13
%6982 = getelementptr inbounds double, double* %6981, i64 2
%6983 = load double, double* %6982
%6984 = load double*, double** %10
%6985 = getelementptr inbounds double, double* %6984, i64 2
%6986 = load double, double* %6985
%6987 = fsub double %6983, %6986
%6988 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %6987, double* %6988
%6989 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%6990 = load double, double* %6989
%6991 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%6992 = load double, double* %6991
%6993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%6994 = load double, double* %6993
%6995 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%6996 = load double, double* %6995
%6997 = fmul double %6994, %6996
%6998 = call double @llvm.fmuladd.f64(double %6990, double %6992, double %6997)
%6999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7000 = load double, double* %6999
%7001 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7002 = load double, double* %7001
%7003 = call double @llvm.fmuladd.f64(double %7000, double %7002, double %6998)
%7004 = fcmp ogt double %7003, 0.000000e+00
br i1 %7004, label %7005, label %7006
7005: ; preds = %6880
store i32 0, i32* %7
br label %37464
7006: ; preds = %6880
%7007 = load double*, double** %12
%7008 = getelementptr inbounds double, double* %7007, i64 0
%7009 = load double, double* %7008
%7010 = load double*, double** %8
%7011 = getelementptr inbounds double, double* %7010, i64 0
%7012 = load double, double* %7011
%7013 = fsub double %7009, %7012
%7014 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7013, double* %7014
%7015 = load double*, double** %12
%7016 = getelementptr inbounds double, double* %7015, i64 1
%7017 = load double, double* %7016
%7018 = load double*, double** %8
%7019 = getelementptr inbounds double, double* %7018, i64 1
%7020 = load double, double* %7019
%7021 = fsub double %7017, %7020
%7022 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7021, double* %7022
%7023 = load double*, double** %12
%7024 = getelementptr inbounds double, double* %7023, i64 2
%7025 = load double, double* %7024
%7026 = load double*, double** %8
%7027 = getelementptr inbounds double, double* %7026, i64 2
%7028 = load double, double* %7027
%7029 = fsub double %7025, %7028
%7030 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7029, double* %7030
%7031 = load double*, double** %9
%7032 = getelementptr inbounds double, double* %7031, i64 0
%7033 = load double, double* %7032
%7034 = load double*, double** %8
%7035 = getelementptr inbounds double, double* %7034, i64 0
%7036 = load double, double* %7035
%7037 = fsub double %7033, %7036
%7038 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7037, double* %7038
%7039 = load double*, double** %9
%7040 = getelementptr inbounds double, double* %7039, i64 1
%7041 = load double, double* %7040
%7042 = load double*, double** %8
%7043 = getelementptr inbounds double, double* %7042, i64 1
%7044 = load double, double* %7043
%7045 = fsub double %7041, %7044
%7046 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7045, double* %7046
%7047 = load double*, double** %9
%7048 = getelementptr inbounds double, double* %7047, i64 2
%7049 = load double, double* %7048
%7050 = load double*, double** %8
%7051 = getelementptr inbounds double, double* %7050, i64 2
%7052 = load double, double* %7051
%7053 = fsub double %7049, %7052
%7054 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7053, double* %7054
%7055 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7056 = load double, double* %7055
%7057 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7058 = load double, double* %7057
%7059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7060 = load double, double* %7059
%7061 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7062 = load double, double* %7061
%7063 = fmul double %7060, %7062
%7064 = fneg double %7063
%7065 = call double @llvm.fmuladd.f64(double %7056, double %7058, double %7064)
%7066 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7065, double* %7066
%7067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7068 = load double, double* %7067
%7069 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7070 = load double, double* %7069
%7071 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7072 = load double, double* %7071
%7073 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7074 = load double, double* %7073
%7075 = fmul double %7072, %7074
%7076 = fneg double %7075
%7077 = call double @llvm.fmuladd.f64(double %7068, double %7070, double %7076)
%7078 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7077, double* %7078
%7079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7080 = load double, double* %7079
%7081 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7082 = load double, double* %7081
%7083 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7084 = load double, double* %7083
%7085 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7086 = load double, double* %7085
%7087 = fmul double %7084, %7086
%7088 = fneg double %7087
%7089 = call double @llvm.fmuladd.f64(double %7080, double %7082, double %7088)
%7090 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7089, double* %7090
%7091 = load double*, double** %11
%7092 = getelementptr inbounds double, double* %7091, i64 0
%7093 = load double, double* %7092
%7094 = load double*, double** %8
%7095 = getelementptr inbounds double, double* %7094, i64 0
%7096 = load double, double* %7095
%7097 = fsub double %7093, %7096
%7098 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7097, double* %7098
%7099 = load double*, double** %11
%7100 = getelementptr inbounds double, double* %7099, i64 1
%7101 = load double, double* %7100
%7102 = load double*, double** %8
%7103 = getelementptr inbounds double, double* %7102, i64 1
%7104 = load double, double* %7103
%7105 = fsub double %7101, %7104
%7106 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7105, double* %7106
%7107 = load double*, double** %11
%7108 = getelementptr inbounds double, double* %7107, i64 2
%7109 = load double, double* %7108
%7110 = load double*, double** %8
%7111 = getelementptr inbounds double, double* %7110, i64 2
%7112 = load double, double* %7111
%7113 = fsub double %7109, %7112
%7114 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7113, double* %7114
%7115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7116 = load double, double* %7115
%7117 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7118 = load double, double* %7117
%7119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7120 = load double, double* %7119
%7121 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7122 = load double, double* %7121
%7123 = fmul double %7120, %7122
%7124 = call double @llvm.fmuladd.f64(double %7116, double %7118, double %7123)
%7125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7126 = load double, double* %7125
%7127 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7128 = load double, double* %7127
%7129 = call double @llvm.fmuladd.f64(double %7126, double %7128, double %7124)
%7130 = fcmp ogt double %7129, 0.000000e+00
br i1 %7130, label %7131, label %7132
7131: ; preds = %7006
store i32 0, i32* %7
br label %37464
7132: ; preds = %7006
store i32 1, i32* %7
br label %37464
7133: ; preds = %6877
%7134 = load double*, double** %11
%7135 = getelementptr inbounds double, double* %7134, i64 0
%7136 = load double, double* %7135
%7137 = load double*, double** %9
%7138 = getelementptr inbounds double, double* %7137, i64 0
%7139 = load double, double* %7138
%7140 = fsub double %7136, %7139
%7141 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7140, double* %7141
%7142 = load double*, double** %11
%7143 = getelementptr inbounds double, double* %7142, i64 1
%7144 = load double, double* %7143
%7145 = load double*, double** %9
%7146 = getelementptr inbounds double, double* %7145, i64 1
%7147 = load double, double* %7146
%7148 = fsub double %7144, %7147
%7149 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7148, double* %7149
%7150 = load double*, double** %11
%7151 = getelementptr inbounds double, double* %7150, i64 2
%7152 = load double, double* %7151
%7153 = load double*, double** %9
%7154 = getelementptr inbounds double, double* %7153, i64 2
%7155 = load double, double* %7154
%7156 = fsub double %7152, %7155
%7157 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7156, double* %7157
%7158 = load double*, double** %8
%7159 = getelementptr inbounds double, double* %7158, i64 0
%7160 = load double, double* %7159
%7161 = load double*, double** %9
%7162 = getelementptr inbounds double, double* %7161, i64 0
%7163 = load double, double* %7162
%7164 = fsub double %7160, %7163
%7165 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7164, double* %7165
%7166 = load double*, double** %8
%7167 = getelementptr inbounds double, double* %7166, i64 1
%7168 = load double, double* %7167
%7169 = load double*, double** %9
%7170 = getelementptr inbounds double, double* %7169, i64 1
%7171 = load double, double* %7170
%7172 = fsub double %7168, %7171
%7173 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7172, double* %7173
%7174 = load double*, double** %8
%7175 = getelementptr inbounds double, double* %7174, i64 2
%7176 = load double, double* %7175
%7177 = load double*, double** %9
%7178 = getelementptr inbounds double, double* %7177, i64 2
%7179 = load double, double* %7178
%7180 = fsub double %7176, %7179
%7181 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7180, double* %7181
%7182 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7183 = load double, double* %7182
%7184 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7185 = load double, double* %7184
%7186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7187 = load double, double* %7186
%7188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7189 = load double, double* %7188
%7190 = fmul double %7187, %7189
%7191 = fneg double %7190
%7192 = call double @llvm.fmuladd.f64(double %7183, double %7185, double %7191)
%7193 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7192, double* %7193
%7194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7195 = load double, double* %7194
%7196 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7197 = load double, double* %7196
%7198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7199 = load double, double* %7198
%7200 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7201 = load double, double* %7200
%7202 = fmul double %7199, %7201
%7203 = fneg double %7202
%7204 = call double @llvm.fmuladd.f64(double %7195, double %7197, double %7203)
%7205 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7204, double* %7205
%7206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7207 = load double, double* %7206
%7208 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7209 = load double, double* %7208
%7210 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7211 = load double, double* %7210
%7212 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7213 = load double, double* %7212
%7214 = fmul double %7211, %7213
%7215 = fneg double %7214
%7216 = call double @llvm.fmuladd.f64(double %7207, double %7209, double %7215)
%7217 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7216, double* %7217
%7218 = load double*, double** %12
%7219 = getelementptr inbounds double, double* %7218, i64 0
%7220 = load double, double* %7219
%7221 = load double*, double** %9
%7222 = getelementptr inbounds double, double* %7221, i64 0
%7223 = load double, double* %7222
%7224 = fsub double %7220, %7223
%7225 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7224, double* %7225
%7226 = load double*, double** %12
%7227 = getelementptr inbounds double, double* %7226, i64 1
%7228 = load double, double* %7227
%7229 = load double*, double** %9
%7230 = getelementptr inbounds double, double* %7229, i64 1
%7231 = load double, double* %7230
%7232 = fsub double %7228, %7231
%7233 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7232, double* %7233
%7234 = load double*, double** %12
%7235 = getelementptr inbounds double, double* %7234, i64 2
%7236 = load double, double* %7235
%7237 = load double*, double** %9
%7238 = getelementptr inbounds double, double* %7237, i64 2
%7239 = load double, double* %7238
%7240 = fsub double %7236, %7239
%7241 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7240, double* %7241
%7242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7243 = load double, double* %7242
%7244 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7245 = load double, double* %7244
%7246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7247 = load double, double* %7246
%7248 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7249 = load double, double* %7248
%7250 = fmul double %7247, %7249
%7251 = call double @llvm.fmuladd.f64(double %7243, double %7245, double %7250)
%7252 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7253 = load double, double* %7252
%7254 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7255 = load double, double* %7254
%7256 = call double @llvm.fmuladd.f64(double %7253, double %7255, double %7251)
%7257 = fcmp ogt double %7256, 0.000000e+00
br i1 %7257, label %7258, label %7259
7258: ; preds = %7133
store i32 0, i32* %7
br label %37464
7259: ; preds = %7133
%7260 = load double*, double** %11
%7261 = getelementptr inbounds double, double* %7260, i64 0
%7262 = load double, double* %7261
%7263 = load double*, double** %8
%7264 = getelementptr inbounds double, double* %7263, i64 0
%7265 = load double, double* %7264
%7266 = fsub double %7262, %7265
%7267 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7266, double* %7267
%7268 = load double*, double** %11
%7269 = getelementptr inbounds double, double* %7268, i64 1
%7270 = load double, double* %7269
%7271 = load double*, double** %8
%7272 = getelementptr inbounds double, double* %7271, i64 1
%7273 = load double, double* %7272
%7274 = fsub double %7270, %7273
%7275 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7274, double* %7275
%7276 = load double*, double** %11
%7277 = getelementptr inbounds double, double* %7276, i64 2
%7278 = load double, double* %7277
%7279 = load double*, double** %8
%7280 = getelementptr inbounds double, double* %7279, i64 2
%7281 = load double, double* %7280
%7282 = fsub double %7278, %7281
%7283 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7282, double* %7283
%7284 = load double*, double** %10
%7285 = getelementptr inbounds double, double* %7284, i64 0
%7286 = load double, double* %7285
%7287 = load double*, double** %8
%7288 = getelementptr inbounds double, double* %7287, i64 0
%7289 = load double, double* %7288
%7290 = fsub double %7286, %7289
%7291 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7290, double* %7291
%7292 = load double*, double** %10
%7293 = getelementptr inbounds double, double* %7292, i64 1
%7294 = load double, double* %7293
%7295 = load double*, double** %8
%7296 = getelementptr inbounds double, double* %7295, i64 1
%7297 = load double, double* %7296
%7298 = fsub double %7294, %7297
%7299 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7298, double* %7299
%7300 = load double*, double** %10
%7301 = getelementptr inbounds double, double* %7300, i64 2
%7302 = load double, double* %7301
%7303 = load double*, double** %8
%7304 = getelementptr inbounds double, double* %7303, i64 2
%7305 = load double, double* %7304
%7306 = fsub double %7302, %7305
%7307 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7306, double* %7307
%7308 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7309 = load double, double* %7308
%7310 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7311 = load double, double* %7310
%7312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7313 = load double, double* %7312
%7314 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7315 = load double, double* %7314
%7316 = fmul double %7313, %7315
%7317 = fneg double %7316
%7318 = call double @llvm.fmuladd.f64(double %7309, double %7311, double %7317)
%7319 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7318, double* %7319
%7320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7321 = load double, double* %7320
%7322 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7323 = load double, double* %7322
%7324 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7325 = load double, double* %7324
%7326 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7327 = load double, double* %7326
%7328 = fmul double %7325, %7327
%7329 = fneg double %7328
%7330 = call double @llvm.fmuladd.f64(double %7321, double %7323, double %7329)
%7331 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7330, double* %7331
%7332 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7333 = load double, double* %7332
%7334 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7335 = load double, double* %7334
%7336 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7337 = load double, double* %7336
%7338 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7339 = load double, double* %7338
%7340 = fmul double %7337, %7339
%7341 = fneg double %7340
%7342 = call double @llvm.fmuladd.f64(double %7333, double %7335, double %7341)
%7343 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7342, double* %7343
%7344 = load double*, double** %13
%7345 = getelementptr inbounds double, double* %7344, i64 0
%7346 = load double, double* %7345
%7347 = load double*, double** %8
%7348 = getelementptr inbounds double, double* %7347, i64 0
%7349 = load double, double* %7348
%7350 = fsub double %7346, %7349
%7351 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7350, double* %7351
%7352 = load double*, double** %13
%7353 = getelementptr inbounds double, double* %7352, i64 1
%7354 = load double, double* %7353
%7355 = load double*, double** %8
%7356 = getelementptr inbounds double, double* %7355, i64 1
%7357 = load double, double* %7356
%7358 = fsub double %7354, %7357
%7359 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7358, double* %7359
%7360 = load double*, double** %13
%7361 = getelementptr inbounds double, double* %7360, i64 2
%7362 = load double, double* %7361
%7363 = load double*, double** %8
%7364 = getelementptr inbounds double, double* %7363, i64 2
%7365 = load double, double* %7364
%7366 = fsub double %7362, %7365
%7367 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7366, double* %7367
%7368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7369 = load double, double* %7368
%7370 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7371 = load double, double* %7370
%7372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7373 = load double, double* %7372
%7374 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7375 = load double, double* %7374
%7376 = fmul double %7373, %7375
%7377 = call double @llvm.fmuladd.f64(double %7369, double %7371, double %7376)
%7378 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7379 = load double, double* %7378
%7380 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7381 = load double, double* %7380
%7382 = call double @llvm.fmuladd.f64(double %7379, double %7381, double %7377)
%7383 = fcmp ogt double %7382, 0.000000e+00
br i1 %7383, label %7384, label %7385
7384: ; preds = %7259
store i32 0, i32* %7
br label %37464
7385: ; preds = %7259
store i32 1, i32* %7
br label %37464
7386: ; preds = %6618
%7387 = load double, double* %17
%7388 = fcmp olt double %7387, 0.000000e+00
br i1 %7388, label %7389, label %8154
7389: ; preds = %7386
%7390 = load double, double* %18
%7391 = fcmp olt double %7390, 0.000000e+00
br i1 %7391, label %7392, label %7645
7392: ; preds = %7389
%7393 = load double*, double** %13
%7394 = getelementptr inbounds double, double* %7393, i64 0
%7395 = load double, double* %7394
%7396 = load double*, double** %9
%7397 = getelementptr inbounds double, double* %7396, i64 0
%7398 = load double, double* %7397
%7399 = fsub double %7395, %7398
%7400 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7399, double* %7400
%7401 = load double*, double** %13
%7402 = getelementptr inbounds double, double* %7401, i64 1
%7403 = load double, double* %7402
%7404 = load double*, double** %9
%7405 = getelementptr inbounds double, double* %7404, i64 1
%7406 = load double, double* %7405
%7407 = fsub double %7403, %7406
%7408 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7407, double* %7408
%7409 = load double*, double** %13
%7410 = getelementptr inbounds double, double* %7409, i64 2
%7411 = load double, double* %7410
%7412 = load double*, double** %9
%7413 = getelementptr inbounds double, double* %7412, i64 2
%7414 = load double, double* %7413
%7415 = fsub double %7411, %7414
%7416 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7415, double* %7416
%7417 = load double*, double** %8
%7418 = getelementptr inbounds double, double* %7417, i64 0
%7419 = load double, double* %7418
%7420 = load double*, double** %9
%7421 = getelementptr inbounds double, double* %7420, i64 0
%7422 = load double, double* %7421
%7423 = fsub double %7419, %7422
%7424 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7423, double* %7424
%7425 = load double*, double** %8
%7426 = getelementptr inbounds double, double* %7425, i64 1
%7427 = load double, double* %7426
%7428 = load double*, double** %9
%7429 = getelementptr inbounds double, double* %7428, i64 1
%7430 = load double, double* %7429
%7431 = fsub double %7427, %7430
%7432 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7431, double* %7432
%7433 = load double*, double** %8
%7434 = getelementptr inbounds double, double* %7433, i64 2
%7435 = load double, double* %7434
%7436 = load double*, double** %9
%7437 = getelementptr inbounds double, double* %7436, i64 2
%7438 = load double, double* %7437
%7439 = fsub double %7435, %7438
%7440 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7439, double* %7440
%7441 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7442 = load double, double* %7441
%7443 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7444 = load double, double* %7443
%7445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7446 = load double, double* %7445
%7447 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7448 = load double, double* %7447
%7449 = fmul double %7446, %7448
%7450 = fneg double %7449
%7451 = call double @llvm.fmuladd.f64(double %7442, double %7444, double %7450)
%7452 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7451, double* %7452
%7453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7454 = load double, double* %7453
%7455 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7456 = load double, double* %7455
%7457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7458 = load double, double* %7457
%7459 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7460 = load double, double* %7459
%7461 = fmul double %7458, %7460
%7462 = fneg double %7461
%7463 = call double @llvm.fmuladd.f64(double %7454, double %7456, double %7462)
%7464 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7463, double* %7464
%7465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7466 = load double, double* %7465
%7467 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7468 = load double, double* %7467
%7469 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7470 = load double, double* %7469
%7471 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7472 = load double, double* %7471
%7473 = fmul double %7470, %7472
%7474 = fneg double %7473
%7475 = call double @llvm.fmuladd.f64(double %7466, double %7468, double %7474)
%7476 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7475, double* %7476
%7477 = load double*, double** %11
%7478 = getelementptr inbounds double, double* %7477, i64 0
%7479 = load double, double* %7478
%7480 = load double*, double** %9
%7481 = getelementptr inbounds double, double* %7480, i64 0
%7482 = load double, double* %7481
%7483 = fsub double %7479, %7482
%7484 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7483, double* %7484
%7485 = load double*, double** %11
%7486 = getelementptr inbounds double, double* %7485, i64 1
%7487 = load double, double* %7486
%7488 = load double*, double** %9
%7489 = getelementptr inbounds double, double* %7488, i64 1
%7490 = load double, double* %7489
%7491 = fsub double %7487, %7490
%7492 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7491, double* %7492
%7493 = load double*, double** %11
%7494 = getelementptr inbounds double, double* %7493, i64 2
%7495 = load double, double* %7494
%7496 = load double*, double** %9
%7497 = getelementptr inbounds double, double* %7496, i64 2
%7498 = load double, double* %7497
%7499 = fsub double %7495, %7498
%7500 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7499, double* %7500
%7501 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7502 = load double, double* %7501
%7503 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7504 = load double, double* %7503
%7505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7506 = load double, double* %7505
%7507 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7508 = load double, double* %7507
%7509 = fmul double %7506, %7508
%7510 = call double @llvm.fmuladd.f64(double %7502, double %7504, double %7509)
%7511 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7512 = load double, double* %7511
%7513 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7514 = load double, double* %7513
%7515 = call double @llvm.fmuladd.f64(double %7512, double %7514, double %7510)
%7516 = fcmp ogt double %7515, 0.000000e+00
br i1 %7516, label %7517, label %7518
7517: ; preds = %7392
store i32 0, i32* %7
br label %37464
7518: ; preds = %7392
%7519 = load double*, double** %13
%7520 = getelementptr inbounds double, double* %7519, i64 0
%7521 = load double, double* %7520
%7522 = load double*, double** %8
%7523 = getelementptr inbounds double, double* %7522, i64 0
%7524 = load double, double* %7523
%7525 = fsub double %7521, %7524
%7526 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7525, double* %7526
%7527 = load double*, double** %13
%7528 = getelementptr inbounds double, double* %7527, i64 1
%7529 = load double, double* %7528
%7530 = load double*, double** %8
%7531 = getelementptr inbounds double, double* %7530, i64 1
%7532 = load double, double* %7531
%7533 = fsub double %7529, %7532
%7534 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7533, double* %7534
%7535 = load double*, double** %13
%7536 = getelementptr inbounds double, double* %7535, i64 2
%7537 = load double, double* %7536
%7538 = load double*, double** %8
%7539 = getelementptr inbounds double, double* %7538, i64 2
%7540 = load double, double* %7539
%7541 = fsub double %7537, %7540
%7542 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7541, double* %7542
%7543 = load double*, double** %10
%7544 = getelementptr inbounds double, double* %7543, i64 0
%7545 = load double, double* %7544
%7546 = load double*, double** %8
%7547 = getelementptr inbounds double, double* %7546, i64 0
%7548 = load double, double* %7547
%7549 = fsub double %7545, %7548
%7550 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7549, double* %7550
%7551 = load double*, double** %10
%7552 = getelementptr inbounds double, double* %7551, i64 1
%7553 = load double, double* %7552
%7554 = load double*, double** %8
%7555 = getelementptr inbounds double, double* %7554, i64 1
%7556 = load double, double* %7555
%7557 = fsub double %7553, %7556
%7558 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7557, double* %7558
%7559 = load double*, double** %10
%7560 = getelementptr inbounds double, double* %7559, i64 2
%7561 = load double, double* %7560
%7562 = load double*, double** %8
%7563 = getelementptr inbounds double, double* %7562, i64 2
%7564 = load double, double* %7563
%7565 = fsub double %7561, %7564
%7566 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7565, double* %7566
%7567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7568 = load double, double* %7567
%7569 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7570 = load double, double* %7569
%7571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7572 = load double, double* %7571
%7573 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7574 = load double, double* %7573
%7575 = fmul double %7572, %7574
%7576 = fneg double %7575
%7577 = call double @llvm.fmuladd.f64(double %7568, double %7570, double %7576)
%7578 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7577, double* %7578
%7579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7580 = load double, double* %7579
%7581 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7582 = load double, double* %7581
%7583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7584 = load double, double* %7583
%7585 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7586 = load double, double* %7585
%7587 = fmul double %7584, %7586
%7588 = fneg double %7587
%7589 = call double @llvm.fmuladd.f64(double %7580, double %7582, double %7588)
%7590 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7589, double* %7590
%7591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7592 = load double, double* %7591
%7593 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7594 = load double, double* %7593
%7595 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7596 = load double, double* %7595
%7597 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7598 = load double, double* %7597
%7599 = fmul double %7596, %7598
%7600 = fneg double %7599
%7601 = call double @llvm.fmuladd.f64(double %7592, double %7594, double %7600)
%7602 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7601, double* %7602
%7603 = load double*, double** %12
%7604 = getelementptr inbounds double, double* %7603, i64 0
%7605 = load double, double* %7604
%7606 = load double*, double** %8
%7607 = getelementptr inbounds double, double* %7606, i64 0
%7608 = load double, double* %7607
%7609 = fsub double %7605, %7608
%7610 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7609, double* %7610
%7611 = load double*, double** %12
%7612 = getelementptr inbounds double, double* %7611, i64 1
%7613 = load double, double* %7612
%7614 = load double*, double** %8
%7615 = getelementptr inbounds double, double* %7614, i64 1
%7616 = load double, double* %7615
%7617 = fsub double %7613, %7616
%7618 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7617, double* %7618
%7619 = load double*, double** %12
%7620 = getelementptr inbounds double, double* %7619, i64 2
%7621 = load double, double* %7620
%7622 = load double*, double** %8
%7623 = getelementptr inbounds double, double* %7622, i64 2
%7624 = load double, double* %7623
%7625 = fsub double %7621, %7624
%7626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7625, double* %7626
%7627 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7628 = load double, double* %7627
%7629 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7630 = load double, double* %7629
%7631 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7632 = load double, double* %7631
%7633 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7634 = load double, double* %7633
%7635 = fmul double %7632, %7634
%7636 = call double @llvm.fmuladd.f64(double %7628, double %7630, double %7635)
%7637 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7638 = load double, double* %7637
%7639 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7640 = load double, double* %7639
%7641 = call double @llvm.fmuladd.f64(double %7638, double %7640, double %7636)
%7642 = fcmp ogt double %7641, 0.000000e+00
br i1 %7642, label %7643, label %7644
7643: ; preds = %7518
store i32 0, i32* %7
br label %37464
7644: ; preds = %7518
store i32 1, i32* %7
br label %37464
7645: ; preds = %7389
%7646 = load double, double* %19
%7647 = fcmp olt double %7646, 0.000000e+00
br i1 %7647, label %7648, label %7901
7648: ; preds = %7645
%7649 = load double*, double** %12
%7650 = getelementptr inbounds double, double* %7649, i64 0
%7651 = load double, double* %7650
%7652 = load double*, double** %9
%7653 = getelementptr inbounds double, double* %7652, i64 0
%7654 = load double, double* %7653
%7655 = fsub double %7651, %7654
%7656 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7655, double* %7656
%7657 = load double*, double** %12
%7658 = getelementptr inbounds double, double* %7657, i64 1
%7659 = load double, double* %7658
%7660 = load double*, double** %9
%7661 = getelementptr inbounds double, double* %7660, i64 1
%7662 = load double, double* %7661
%7663 = fsub double %7659, %7662
%7664 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7663, double* %7664
%7665 = load double*, double** %12
%7666 = getelementptr inbounds double, double* %7665, i64 2
%7667 = load double, double* %7666
%7668 = load double*, double** %9
%7669 = getelementptr inbounds double, double* %7668, i64 2
%7670 = load double, double* %7669
%7671 = fsub double %7667, %7670
%7672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7671, double* %7672
%7673 = load double*, double** %8
%7674 = getelementptr inbounds double, double* %7673, i64 0
%7675 = load double, double* %7674
%7676 = load double*, double** %9
%7677 = getelementptr inbounds double, double* %7676, i64 0
%7678 = load double, double* %7677
%7679 = fsub double %7675, %7678
%7680 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7679, double* %7680
%7681 = load double*, double** %8
%7682 = getelementptr inbounds double, double* %7681, i64 1
%7683 = load double, double* %7682
%7684 = load double*, double** %9
%7685 = getelementptr inbounds double, double* %7684, i64 1
%7686 = load double, double* %7685
%7687 = fsub double %7683, %7686
%7688 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7687, double* %7688
%7689 = load double*, double** %8
%7690 = getelementptr inbounds double, double* %7689, i64 2
%7691 = load double, double* %7690
%7692 = load double*, double** %9
%7693 = getelementptr inbounds double, double* %7692, i64 2
%7694 = load double, double* %7693
%7695 = fsub double %7691, %7694
%7696 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7695, double* %7696
%7697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7698 = load double, double* %7697
%7699 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7700 = load double, double* %7699
%7701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7702 = load double, double* %7701
%7703 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7704 = load double, double* %7703
%7705 = fmul double %7702, %7704
%7706 = fneg double %7705
%7707 = call double @llvm.fmuladd.f64(double %7698, double %7700, double %7706)
%7708 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7707, double* %7708
%7709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7710 = load double, double* %7709
%7711 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7712 = load double, double* %7711
%7713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7714 = load double, double* %7713
%7715 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7716 = load double, double* %7715
%7717 = fmul double %7714, %7716
%7718 = fneg double %7717
%7719 = call double @llvm.fmuladd.f64(double %7710, double %7712, double %7718)
%7720 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7719, double* %7720
%7721 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7722 = load double, double* %7721
%7723 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7724 = load double, double* %7723
%7725 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7726 = load double, double* %7725
%7727 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7728 = load double, double* %7727
%7729 = fmul double %7726, %7728
%7730 = fneg double %7729
%7731 = call double @llvm.fmuladd.f64(double %7722, double %7724, double %7730)
%7732 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7731, double* %7732
%7733 = load double*, double** %13
%7734 = getelementptr inbounds double, double* %7733, i64 0
%7735 = load double, double* %7734
%7736 = load double*, double** %9
%7737 = getelementptr inbounds double, double* %7736, i64 0
%7738 = load double, double* %7737
%7739 = fsub double %7735, %7738
%7740 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7739, double* %7740
%7741 = load double*, double** %13
%7742 = getelementptr inbounds double, double* %7741, i64 1
%7743 = load double, double* %7742
%7744 = load double*, double** %9
%7745 = getelementptr inbounds double, double* %7744, i64 1
%7746 = load double, double* %7745
%7747 = fsub double %7743, %7746
%7748 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7747, double* %7748
%7749 = load double*, double** %13
%7750 = getelementptr inbounds double, double* %7749, i64 2
%7751 = load double, double* %7750
%7752 = load double*, double** %9
%7753 = getelementptr inbounds double, double* %7752, i64 2
%7754 = load double, double* %7753
%7755 = fsub double %7751, %7754
%7756 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7755, double* %7756
%7757 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7758 = load double, double* %7757
%7759 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7760 = load double, double* %7759
%7761 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7762 = load double, double* %7761
%7763 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7764 = load double, double* %7763
%7765 = fmul double %7762, %7764
%7766 = call double @llvm.fmuladd.f64(double %7758, double %7760, double %7765)
%7767 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7768 = load double, double* %7767
%7769 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7770 = load double, double* %7769
%7771 = call double @llvm.fmuladd.f64(double %7768, double %7770, double %7766)
%7772 = fcmp ogt double %7771, 0.000000e+00
br i1 %7772, label %7773, label %7774
7773: ; preds = %7648
store i32 0, i32* %7
br label %37464
7774: ; preds = %7648
%7775 = load double*, double** %12
%7776 = getelementptr inbounds double, double* %7775, i64 0
%7777 = load double, double* %7776
%7778 = load double*, double** %8
%7779 = getelementptr inbounds double, double* %7778, i64 0
%7780 = load double, double* %7779
%7781 = fsub double %7777, %7780
%7782 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7781, double* %7782
%7783 = load double*, double** %12
%7784 = getelementptr inbounds double, double* %7783, i64 1
%7785 = load double, double* %7784
%7786 = load double*, double** %8
%7787 = getelementptr inbounds double, double* %7786, i64 1
%7788 = load double, double* %7787
%7789 = fsub double %7785, %7788
%7790 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7789, double* %7790
%7791 = load double*, double** %12
%7792 = getelementptr inbounds double, double* %7791, i64 2
%7793 = load double, double* %7792
%7794 = load double*, double** %8
%7795 = getelementptr inbounds double, double* %7794, i64 2
%7796 = load double, double* %7795
%7797 = fsub double %7793, %7796
%7798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7797, double* %7798
%7799 = load double*, double** %10
%7800 = getelementptr inbounds double, double* %7799, i64 0
%7801 = load double, double* %7800
%7802 = load double*, double** %8
%7803 = getelementptr inbounds double, double* %7802, i64 0
%7804 = load double, double* %7803
%7805 = fsub double %7801, %7804
%7806 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7805, double* %7806
%7807 = load double*, double** %10
%7808 = getelementptr inbounds double, double* %7807, i64 1
%7809 = load double, double* %7808
%7810 = load double*, double** %8
%7811 = getelementptr inbounds double, double* %7810, i64 1
%7812 = load double, double* %7811
%7813 = fsub double %7809, %7812
%7814 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7813, double* %7814
%7815 = load double*, double** %10
%7816 = getelementptr inbounds double, double* %7815, i64 2
%7817 = load double, double* %7816
%7818 = load double*, double** %8
%7819 = getelementptr inbounds double, double* %7818, i64 2
%7820 = load double, double* %7819
%7821 = fsub double %7817, %7820
%7822 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7821, double* %7822
%7823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7824 = load double, double* %7823
%7825 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7826 = load double, double* %7825
%7827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7828 = load double, double* %7827
%7829 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7830 = load double, double* %7829
%7831 = fmul double %7828, %7830
%7832 = fneg double %7831
%7833 = call double @llvm.fmuladd.f64(double %7824, double %7826, double %7832)
%7834 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7833, double* %7834
%7835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7836 = load double, double* %7835
%7837 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7838 = load double, double* %7837
%7839 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7840 = load double, double* %7839
%7841 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7842 = load double, double* %7841
%7843 = fmul double %7840, %7842
%7844 = fneg double %7843
%7845 = call double @llvm.fmuladd.f64(double %7836, double %7838, double %7844)
%7846 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7845, double* %7846
%7847 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7848 = load double, double* %7847
%7849 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7850 = load double, double* %7849
%7851 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7852 = load double, double* %7851
%7853 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7854 = load double, double* %7853
%7855 = fmul double %7852, %7854
%7856 = fneg double %7855
%7857 = call double @llvm.fmuladd.f64(double %7848, double %7850, double %7856)
%7858 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7857, double* %7858
%7859 = load double*, double** %11
%7860 = getelementptr inbounds double, double* %7859, i64 0
%7861 = load double, double* %7860
%7862 = load double*, double** %8
%7863 = getelementptr inbounds double, double* %7862, i64 0
%7864 = load double, double* %7863
%7865 = fsub double %7861, %7864
%7866 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7865, double* %7866
%7867 = load double*, double** %11
%7868 = getelementptr inbounds double, double* %7867, i64 1
%7869 = load double, double* %7868
%7870 = load double*, double** %8
%7871 = getelementptr inbounds double, double* %7870, i64 1
%7872 = load double, double* %7871
%7873 = fsub double %7869, %7872
%7874 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7873, double* %7874
%7875 = load double*, double** %11
%7876 = getelementptr inbounds double, double* %7875, i64 2
%7877 = load double, double* %7876
%7878 = load double*, double** %8
%7879 = getelementptr inbounds double, double* %7878, i64 2
%7880 = load double, double* %7879
%7881 = fsub double %7877, %7880
%7882 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7881, double* %7882
%7883 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7884 = load double, double* %7883
%7885 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%7886 = load double, double* %7885
%7887 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7888 = load double, double* %7887
%7889 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%7890 = load double, double* %7889
%7891 = fmul double %7888, %7890
%7892 = call double @llvm.fmuladd.f64(double %7884, double %7886, double %7891)
%7893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7894 = load double, double* %7893
%7895 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%7896 = load double, double* %7895
%7897 = call double @llvm.fmuladd.f64(double %7894, double %7896, double %7892)
%7898 = fcmp ogt double %7897, 0.000000e+00
br i1 %7898, label %7899, label %7900
7899: ; preds = %7774
store i32 0, i32* %7
br label %37464
7900: ; preds = %7774
store i32 1, i32* %7
br label %37464
7901: ; preds = %7645
%7902 = load double*, double** %11
%7903 = getelementptr inbounds double, double* %7902, i64 0
%7904 = load double, double* %7903
%7905 = load double*, double** %10
%7906 = getelementptr inbounds double, double* %7905, i64 0
%7907 = load double, double* %7906
%7908 = fsub double %7904, %7907
%7909 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7908, double* %7909
%7910 = load double*, double** %11
%7911 = getelementptr inbounds double, double* %7910, i64 1
%7912 = load double, double* %7911
%7913 = load double*, double** %10
%7914 = getelementptr inbounds double, double* %7913, i64 1
%7915 = load double, double* %7914
%7916 = fsub double %7912, %7915
%7917 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %7916, double* %7917
%7918 = load double*, double** %11
%7919 = getelementptr inbounds double, double* %7918, i64 2
%7920 = load double, double* %7919
%7921 = load double*, double** %10
%7922 = getelementptr inbounds double, double* %7921, i64 2
%7923 = load double, double* %7922
%7924 = fsub double %7920, %7923
%7925 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %7924, double* %7925
%7926 = load double*, double** %8
%7927 = getelementptr inbounds double, double* %7926, i64 0
%7928 = load double, double* %7927
%7929 = load double*, double** %10
%7930 = getelementptr inbounds double, double* %7929, i64 0
%7931 = load double, double* %7930
%7932 = fsub double %7928, %7931
%7933 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %7932, double* %7933
%7934 = load double*, double** %8
%7935 = getelementptr inbounds double, double* %7934, i64 1
%7936 = load double, double* %7935
%7937 = load double*, double** %10
%7938 = getelementptr inbounds double, double* %7937, i64 1
%7939 = load double, double* %7938
%7940 = fsub double %7936, %7939
%7941 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %7940, double* %7941
%7942 = load double*, double** %8
%7943 = getelementptr inbounds double, double* %7942, i64 2
%7944 = load double, double* %7943
%7945 = load double*, double** %10
%7946 = getelementptr inbounds double, double* %7945, i64 2
%7947 = load double, double* %7946
%7948 = fsub double %7944, %7947
%7949 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %7948, double* %7949
%7950 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7951 = load double, double* %7950
%7952 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7953 = load double, double* %7952
%7954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7955 = load double, double* %7954
%7956 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7957 = load double, double* %7956
%7958 = fmul double %7955, %7957
%7959 = fneg double %7958
%7960 = call double @llvm.fmuladd.f64(double %7951, double %7953, double %7959)
%7961 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %7960, double* %7961
%7962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%7963 = load double, double* %7962
%7964 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7965 = load double, double* %7964
%7966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7967 = load double, double* %7966
%7968 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%7969 = load double, double* %7968
%7970 = fmul double %7967, %7969
%7971 = fneg double %7970
%7972 = call double @llvm.fmuladd.f64(double %7963, double %7965, double %7971)
%7973 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %7972, double* %7973
%7974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%7975 = load double, double* %7974
%7976 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%7977 = load double, double* %7976
%7978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%7979 = load double, double* %7978
%7980 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%7981 = load double, double* %7980
%7982 = fmul double %7979, %7981
%7983 = fneg double %7982
%7984 = call double @llvm.fmuladd.f64(double %7975, double %7977, double %7983)
%7985 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %7984, double* %7985
%7986 = load double*, double** %12
%7987 = getelementptr inbounds double, double* %7986, i64 0
%7988 = load double, double* %7987
%7989 = load double*, double** %10
%7990 = getelementptr inbounds double, double* %7989, i64 0
%7991 = load double, double* %7990
%7992 = fsub double %7988, %7991
%7993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %7992, double* %7993
%7994 = load double*, double** %12
%7995 = getelementptr inbounds double, double* %7994, i64 1
%7996 = load double, double* %7995
%7997 = load double*, double** %10
%7998 = getelementptr inbounds double, double* %7997, i64 1
%7999 = load double, double* %7998
%8000 = fsub double %7996, %7999
%8001 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8000, double* %8001
%8002 = load double*, double** %12
%8003 = getelementptr inbounds double, double* %8002, i64 2
%8004 = load double, double* %8003
%8005 = load double*, double** %10
%8006 = getelementptr inbounds double, double* %8005, i64 2
%8007 = load double, double* %8006
%8008 = fsub double %8004, %8007
%8009 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8008, double* %8009
%8010 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8011 = load double, double* %8010
%8012 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8013 = load double, double* %8012
%8014 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8015 = load double, double* %8014
%8016 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8017 = load double, double* %8016
%8018 = fmul double %8015, %8017
%8019 = call double @llvm.fmuladd.f64(double %8011, double %8013, double %8018)
%8020 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8021 = load double, double* %8020
%8022 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8023 = load double, double* %8022
%8024 = call double @llvm.fmuladd.f64(double %8021, double %8023, double %8019)
%8025 = fcmp ogt double %8024, 0.000000e+00
br i1 %8025, label %8026, label %8027
8026: ; preds = %7901
store i32 0, i32* %7
br label %37464
8027: ; preds = %7901
%8028 = load double*, double** %11
%8029 = getelementptr inbounds double, double* %8028, i64 0
%8030 = load double, double* %8029
%8031 = load double*, double** %8
%8032 = getelementptr inbounds double, double* %8031, i64 0
%8033 = load double, double* %8032
%8034 = fsub double %8030, %8033
%8035 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8034, double* %8035
%8036 = load double*, double** %11
%8037 = getelementptr inbounds double, double* %8036, i64 1
%8038 = load double, double* %8037
%8039 = load double*, double** %8
%8040 = getelementptr inbounds double, double* %8039, i64 1
%8041 = load double, double* %8040
%8042 = fsub double %8038, %8041
%8043 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8042, double* %8043
%8044 = load double*, double** %11
%8045 = getelementptr inbounds double, double* %8044, i64 2
%8046 = load double, double* %8045
%8047 = load double*, double** %8
%8048 = getelementptr inbounds double, double* %8047, i64 2
%8049 = load double, double* %8048
%8050 = fsub double %8046, %8049
%8051 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8050, double* %8051
%8052 = load double*, double** %9
%8053 = getelementptr inbounds double, double* %8052, i64 0
%8054 = load double, double* %8053
%8055 = load double*, double** %8
%8056 = getelementptr inbounds double, double* %8055, i64 0
%8057 = load double, double* %8056
%8058 = fsub double %8054, %8057
%8059 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8058, double* %8059
%8060 = load double*, double** %9
%8061 = getelementptr inbounds double, double* %8060, i64 1
%8062 = load double, double* %8061
%8063 = load double*, double** %8
%8064 = getelementptr inbounds double, double* %8063, i64 1
%8065 = load double, double* %8064
%8066 = fsub double %8062, %8065
%8067 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8066, double* %8067
%8068 = load double*, double** %9
%8069 = getelementptr inbounds double, double* %8068, i64 2
%8070 = load double, double* %8069
%8071 = load double*, double** %8
%8072 = getelementptr inbounds double, double* %8071, i64 2
%8073 = load double, double* %8072
%8074 = fsub double %8070, %8073
%8075 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8074, double* %8075
%8076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8077 = load double, double* %8076
%8078 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8079 = load double, double* %8078
%8080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8081 = load double, double* %8080
%8082 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8083 = load double, double* %8082
%8084 = fmul double %8081, %8083
%8085 = fneg double %8084
%8086 = call double @llvm.fmuladd.f64(double %8077, double %8079, double %8085)
%8087 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8086, double* %8087
%8088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8089 = load double, double* %8088
%8090 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8091 = load double, double* %8090
%8092 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8093 = load double, double* %8092
%8094 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8095 = load double, double* %8094
%8096 = fmul double %8093, %8095
%8097 = fneg double %8096
%8098 = call double @llvm.fmuladd.f64(double %8089, double %8091, double %8097)
%8099 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8098, double* %8099
%8100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8101 = load double, double* %8100
%8102 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8103 = load double, double* %8102
%8104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8105 = load double, double* %8104
%8106 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8107 = load double, double* %8106
%8108 = fmul double %8105, %8107
%8109 = fneg double %8108
%8110 = call double @llvm.fmuladd.f64(double %8101, double %8103, double %8109)
%8111 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8110, double* %8111
%8112 = load double*, double** %13
%8113 = getelementptr inbounds double, double* %8112, i64 0
%8114 = load double, double* %8113
%8115 = load double*, double** %8
%8116 = getelementptr inbounds double, double* %8115, i64 0
%8117 = load double, double* %8116
%8118 = fsub double %8114, %8117
%8119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8118, double* %8119
%8120 = load double*, double** %13
%8121 = getelementptr inbounds double, double* %8120, i64 1
%8122 = load double, double* %8121
%8123 = load double*, double** %8
%8124 = getelementptr inbounds double, double* %8123, i64 1
%8125 = load double, double* %8124
%8126 = fsub double %8122, %8125
%8127 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8126, double* %8127
%8128 = load double*, double** %13
%8129 = getelementptr inbounds double, double* %8128, i64 2
%8130 = load double, double* %8129
%8131 = load double*, double** %8
%8132 = getelementptr inbounds double, double* %8131, i64 2
%8133 = load double, double* %8132
%8134 = fsub double %8130, %8133
%8135 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8134, double* %8135
%8136 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8137 = load double, double* %8136
%8138 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8139 = load double, double* %8138
%8140 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8141 = load double, double* %8140
%8142 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8143 = load double, double* %8142
%8144 = fmul double %8141, %8143
%8145 = call double @llvm.fmuladd.f64(double %8137, double %8139, double %8144)
%8146 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8147 = load double, double* %8146
%8148 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8149 = load double, double* %8148
%8150 = call double @llvm.fmuladd.f64(double %8147, double %8149, double %8145)
%8151 = fcmp ogt double %8150, 0.000000e+00
br i1 %8151, label %8152, label %8153
8152: ; preds = %8027
store i32 0, i32* %7
br label %37464
8153: ; preds = %8027
store i32 1, i32* %7
br label %37464
8154: ; preds = %7386
%8155 = load double, double* %18
%8156 = fcmp olt double %8155, 0.000000e+00
br i1 %8156, label %8157, label %8666
8157: ; preds = %8154
%8158 = load double, double* %19
%8159 = fcmp oge double %8158, 0.000000e+00
br i1 %8159, label %8160, label %8413
8160: ; preds = %8157
%8161 = load double*, double** %12
%8162 = getelementptr inbounds double, double* %8161, i64 0
%8163 = load double, double* %8162
%8164 = load double*, double** %10
%8165 = getelementptr inbounds double, double* %8164, i64 0
%8166 = load double, double* %8165
%8167 = fsub double %8163, %8166
%8168 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8167, double* %8168
%8169 = load double*, double** %12
%8170 = getelementptr inbounds double, double* %8169, i64 1
%8171 = load double, double* %8170
%8172 = load double*, double** %10
%8173 = getelementptr inbounds double, double* %8172, i64 1
%8174 = load double, double* %8173
%8175 = fsub double %8171, %8174
%8176 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8175, double* %8176
%8177 = load double*, double** %12
%8178 = getelementptr inbounds double, double* %8177, i64 2
%8179 = load double, double* %8178
%8180 = load double*, double** %10
%8181 = getelementptr inbounds double, double* %8180, i64 2
%8182 = load double, double* %8181
%8183 = fsub double %8179, %8182
%8184 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8183, double* %8184
%8185 = load double*, double** %8
%8186 = getelementptr inbounds double, double* %8185, i64 0
%8187 = load double, double* %8186
%8188 = load double*, double** %10
%8189 = getelementptr inbounds double, double* %8188, i64 0
%8190 = load double, double* %8189
%8191 = fsub double %8187, %8190
%8192 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8191, double* %8192
%8193 = load double*, double** %8
%8194 = getelementptr inbounds double, double* %8193, i64 1
%8195 = load double, double* %8194
%8196 = load double*, double** %10
%8197 = getelementptr inbounds double, double* %8196, i64 1
%8198 = load double, double* %8197
%8199 = fsub double %8195, %8198
%8200 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8199, double* %8200
%8201 = load double*, double** %8
%8202 = getelementptr inbounds double, double* %8201, i64 2
%8203 = load double, double* %8202
%8204 = load double*, double** %10
%8205 = getelementptr inbounds double, double* %8204, i64 2
%8206 = load double, double* %8205
%8207 = fsub double %8203, %8206
%8208 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8207, double* %8208
%8209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8210 = load double, double* %8209
%8211 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8212 = load double, double* %8211
%8213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8214 = load double, double* %8213
%8215 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8216 = load double, double* %8215
%8217 = fmul double %8214, %8216
%8218 = fneg double %8217
%8219 = call double @llvm.fmuladd.f64(double %8210, double %8212, double %8218)
%8220 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8219, double* %8220
%8221 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8222 = load double, double* %8221
%8223 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8224 = load double, double* %8223
%8225 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8226 = load double, double* %8225
%8227 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8228 = load double, double* %8227
%8229 = fmul double %8226, %8228
%8230 = fneg double %8229
%8231 = call double @llvm.fmuladd.f64(double %8222, double %8224, double %8230)
%8232 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8231, double* %8232
%8233 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8234 = load double, double* %8233
%8235 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8236 = load double, double* %8235
%8237 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8238 = load double, double* %8237
%8239 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8240 = load double, double* %8239
%8241 = fmul double %8238, %8240
%8242 = fneg double %8241
%8243 = call double @llvm.fmuladd.f64(double %8234, double %8236, double %8242)
%8244 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8243, double* %8244
%8245 = load double*, double** %13
%8246 = getelementptr inbounds double, double* %8245, i64 0
%8247 = load double, double* %8246
%8248 = load double*, double** %10
%8249 = getelementptr inbounds double, double* %8248, i64 0
%8250 = load double, double* %8249
%8251 = fsub double %8247, %8250
%8252 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8251, double* %8252
%8253 = load double*, double** %13
%8254 = getelementptr inbounds double, double* %8253, i64 1
%8255 = load double, double* %8254
%8256 = load double*, double** %10
%8257 = getelementptr inbounds double, double* %8256, i64 1
%8258 = load double, double* %8257
%8259 = fsub double %8255, %8258
%8260 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8259, double* %8260
%8261 = load double*, double** %13
%8262 = getelementptr inbounds double, double* %8261, i64 2
%8263 = load double, double* %8262
%8264 = load double*, double** %10
%8265 = getelementptr inbounds double, double* %8264, i64 2
%8266 = load double, double* %8265
%8267 = fsub double %8263, %8266
%8268 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8267, double* %8268
%8269 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8270 = load double, double* %8269
%8271 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8272 = load double, double* %8271
%8273 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8274 = load double, double* %8273
%8275 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8276 = load double, double* %8275
%8277 = fmul double %8274, %8276
%8278 = call double @llvm.fmuladd.f64(double %8270, double %8272, double %8277)
%8279 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8280 = load double, double* %8279
%8281 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8282 = load double, double* %8281
%8283 = call double @llvm.fmuladd.f64(double %8280, double %8282, double %8278)
%8284 = fcmp ogt double %8283, 0.000000e+00
br i1 %8284, label %8285, label %8286
8285: ; preds = %8160
store i32 0, i32* %7
br label %37464
8286: ; preds = %8160
%8287 = load double*, double** %12
%8288 = getelementptr inbounds double, double* %8287, i64 0
%8289 = load double, double* %8288
%8290 = load double*, double** %8
%8291 = getelementptr inbounds double, double* %8290, i64 0
%8292 = load double, double* %8291
%8293 = fsub double %8289, %8292
%8294 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8293, double* %8294
%8295 = load double*, double** %12
%8296 = getelementptr inbounds double, double* %8295, i64 1
%8297 = load double, double* %8296
%8298 = load double*, double** %8
%8299 = getelementptr inbounds double, double* %8298, i64 1
%8300 = load double, double* %8299
%8301 = fsub double %8297, %8300
%8302 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8301, double* %8302
%8303 = load double*, double** %12
%8304 = getelementptr inbounds double, double* %8303, i64 2
%8305 = load double, double* %8304
%8306 = load double*, double** %8
%8307 = getelementptr inbounds double, double* %8306, i64 2
%8308 = load double, double* %8307
%8309 = fsub double %8305, %8308
%8310 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8309, double* %8310
%8311 = load double*, double** %9
%8312 = getelementptr inbounds double, double* %8311, i64 0
%8313 = load double, double* %8312
%8314 = load double*, double** %8
%8315 = getelementptr inbounds double, double* %8314, i64 0
%8316 = load double, double* %8315
%8317 = fsub double %8313, %8316
%8318 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8317, double* %8318
%8319 = load double*, double** %9
%8320 = getelementptr inbounds double, double* %8319, i64 1
%8321 = load double, double* %8320
%8322 = load double*, double** %8
%8323 = getelementptr inbounds double, double* %8322, i64 1
%8324 = load double, double* %8323
%8325 = fsub double %8321, %8324
%8326 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8325, double* %8326
%8327 = load double*, double** %9
%8328 = getelementptr inbounds double, double* %8327, i64 2
%8329 = load double, double* %8328
%8330 = load double*, double** %8
%8331 = getelementptr inbounds double, double* %8330, i64 2
%8332 = load double, double* %8331
%8333 = fsub double %8329, %8332
%8334 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8333, double* %8334
%8335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8336 = load double, double* %8335
%8337 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8338 = load double, double* %8337
%8339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8340 = load double, double* %8339
%8341 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8342 = load double, double* %8341
%8343 = fmul double %8340, %8342
%8344 = fneg double %8343
%8345 = call double @llvm.fmuladd.f64(double %8336, double %8338, double %8344)
%8346 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8345, double* %8346
%8347 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8348 = load double, double* %8347
%8349 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8350 = load double, double* %8349
%8351 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8352 = load double, double* %8351
%8353 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8354 = load double, double* %8353
%8355 = fmul double %8352, %8354
%8356 = fneg double %8355
%8357 = call double @llvm.fmuladd.f64(double %8348, double %8350, double %8356)
%8358 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8357, double* %8358
%8359 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8360 = load double, double* %8359
%8361 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8362 = load double, double* %8361
%8363 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8364 = load double, double* %8363
%8365 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8366 = load double, double* %8365
%8367 = fmul double %8364, %8366
%8368 = fneg double %8367
%8369 = call double @llvm.fmuladd.f64(double %8360, double %8362, double %8368)
%8370 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8369, double* %8370
%8371 = load double*, double** %11
%8372 = getelementptr inbounds double, double* %8371, i64 0
%8373 = load double, double* %8372
%8374 = load double*, double** %8
%8375 = getelementptr inbounds double, double* %8374, i64 0
%8376 = load double, double* %8375
%8377 = fsub double %8373, %8376
%8378 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8377, double* %8378
%8379 = load double*, double** %11
%8380 = getelementptr inbounds double, double* %8379, i64 1
%8381 = load double, double* %8380
%8382 = load double*, double** %8
%8383 = getelementptr inbounds double, double* %8382, i64 1
%8384 = load double, double* %8383
%8385 = fsub double %8381, %8384
%8386 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8385, double* %8386
%8387 = load double*, double** %11
%8388 = getelementptr inbounds double, double* %8387, i64 2
%8389 = load double, double* %8388
%8390 = load double*, double** %8
%8391 = getelementptr inbounds double, double* %8390, i64 2
%8392 = load double, double* %8391
%8393 = fsub double %8389, %8392
%8394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8393, double* %8394
%8395 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8396 = load double, double* %8395
%8397 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8398 = load double, double* %8397
%8399 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8400 = load double, double* %8399
%8401 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8402 = load double, double* %8401
%8403 = fmul double %8400, %8402
%8404 = call double @llvm.fmuladd.f64(double %8396, double %8398, double %8403)
%8405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8406 = load double, double* %8405
%8407 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8408 = load double, double* %8407
%8409 = call double @llvm.fmuladd.f64(double %8406, double %8408, double %8404)
%8410 = fcmp ogt double %8409, 0.000000e+00
br i1 %8410, label %8411, label %8412
8411: ; preds = %8286
store i32 0, i32* %7
br label %37464
8412: ; preds = %8286
store i32 1, i32* %7
br label %37464
8413: ; preds = %8157
%8414 = load double*, double** %11
%8415 = getelementptr inbounds double, double* %8414, i64 0
%8416 = load double, double* %8415
%8417 = load double*, double** %9
%8418 = getelementptr inbounds double, double* %8417, i64 0
%8419 = load double, double* %8418
%8420 = fsub double %8416, %8419
%8421 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8420, double* %8421
%8422 = load double*, double** %11
%8423 = getelementptr inbounds double, double* %8422, i64 1
%8424 = load double, double* %8423
%8425 = load double*, double** %9
%8426 = getelementptr inbounds double, double* %8425, i64 1
%8427 = load double, double* %8426
%8428 = fsub double %8424, %8427
%8429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8428, double* %8429
%8430 = load double*, double** %11
%8431 = getelementptr inbounds double, double* %8430, i64 2
%8432 = load double, double* %8431
%8433 = load double*, double** %9
%8434 = getelementptr inbounds double, double* %8433, i64 2
%8435 = load double, double* %8434
%8436 = fsub double %8432, %8435
%8437 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8436, double* %8437
%8438 = load double*, double** %8
%8439 = getelementptr inbounds double, double* %8438, i64 0
%8440 = load double, double* %8439
%8441 = load double*, double** %9
%8442 = getelementptr inbounds double, double* %8441, i64 0
%8443 = load double, double* %8442
%8444 = fsub double %8440, %8443
%8445 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8444, double* %8445
%8446 = load double*, double** %8
%8447 = getelementptr inbounds double, double* %8446, i64 1
%8448 = load double, double* %8447
%8449 = load double*, double** %9
%8450 = getelementptr inbounds double, double* %8449, i64 1
%8451 = load double, double* %8450
%8452 = fsub double %8448, %8451
%8453 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8452, double* %8453
%8454 = load double*, double** %8
%8455 = getelementptr inbounds double, double* %8454, i64 2
%8456 = load double, double* %8455
%8457 = load double*, double** %9
%8458 = getelementptr inbounds double, double* %8457, i64 2
%8459 = load double, double* %8458
%8460 = fsub double %8456, %8459
%8461 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8460, double* %8461
%8462 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8463 = load double, double* %8462
%8464 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8465 = load double, double* %8464
%8466 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8467 = load double, double* %8466
%8468 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8469 = load double, double* %8468
%8470 = fmul double %8467, %8469
%8471 = fneg double %8470
%8472 = call double @llvm.fmuladd.f64(double %8463, double %8465, double %8471)
%8473 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8472, double* %8473
%8474 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8475 = load double, double* %8474
%8476 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8477 = load double, double* %8476
%8478 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8479 = load double, double* %8478
%8480 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8481 = load double, double* %8480
%8482 = fmul double %8479, %8481
%8483 = fneg double %8482
%8484 = call double @llvm.fmuladd.f64(double %8475, double %8477, double %8483)
%8485 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8484, double* %8485
%8486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8487 = load double, double* %8486
%8488 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8489 = load double, double* %8488
%8490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8491 = load double, double* %8490
%8492 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8493 = load double, double* %8492
%8494 = fmul double %8491, %8493
%8495 = fneg double %8494
%8496 = call double @llvm.fmuladd.f64(double %8487, double %8489, double %8495)
%8497 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8496, double* %8497
%8498 = load double*, double** %12
%8499 = getelementptr inbounds double, double* %8498, i64 0
%8500 = load double, double* %8499
%8501 = load double*, double** %9
%8502 = getelementptr inbounds double, double* %8501, i64 0
%8503 = load double, double* %8502
%8504 = fsub double %8500, %8503
%8505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8504, double* %8505
%8506 = load double*, double** %12
%8507 = getelementptr inbounds double, double* %8506, i64 1
%8508 = load double, double* %8507
%8509 = load double*, double** %9
%8510 = getelementptr inbounds double, double* %8509, i64 1
%8511 = load double, double* %8510
%8512 = fsub double %8508, %8511
%8513 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8512, double* %8513
%8514 = load double*, double** %12
%8515 = getelementptr inbounds double, double* %8514, i64 2
%8516 = load double, double* %8515
%8517 = load double*, double** %9
%8518 = getelementptr inbounds double, double* %8517, i64 2
%8519 = load double, double* %8518
%8520 = fsub double %8516, %8519
%8521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8520, double* %8521
%8522 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8523 = load double, double* %8522
%8524 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8525 = load double, double* %8524
%8526 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8527 = load double, double* %8526
%8528 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8529 = load double, double* %8528
%8530 = fmul double %8527, %8529
%8531 = call double @llvm.fmuladd.f64(double %8523, double %8525, double %8530)
%8532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8533 = load double, double* %8532
%8534 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8535 = load double, double* %8534
%8536 = call double @llvm.fmuladd.f64(double %8533, double %8535, double %8531)
%8537 = fcmp ogt double %8536, 0.000000e+00
br i1 %8537, label %8538, label %8539
8538: ; preds = %8413
store i32 0, i32* %7
br label %37464
8539: ; preds = %8413
%8540 = load double*, double** %11
%8541 = getelementptr inbounds double, double* %8540, i64 0
%8542 = load double, double* %8541
%8543 = load double*, double** %8
%8544 = getelementptr inbounds double, double* %8543, i64 0
%8545 = load double, double* %8544
%8546 = fsub double %8542, %8545
%8547 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8546, double* %8547
%8548 = load double*, double** %11
%8549 = getelementptr inbounds double, double* %8548, i64 1
%8550 = load double, double* %8549
%8551 = load double*, double** %8
%8552 = getelementptr inbounds double, double* %8551, i64 1
%8553 = load double, double* %8552
%8554 = fsub double %8550, %8553
%8555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8554, double* %8555
%8556 = load double*, double** %11
%8557 = getelementptr inbounds double, double* %8556, i64 2
%8558 = load double, double* %8557
%8559 = load double*, double** %8
%8560 = getelementptr inbounds double, double* %8559, i64 2
%8561 = load double, double* %8560
%8562 = fsub double %8558, %8561
%8563 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8562, double* %8563
%8564 = load double*, double** %10
%8565 = getelementptr inbounds double, double* %8564, i64 0
%8566 = load double, double* %8565
%8567 = load double*, double** %8
%8568 = getelementptr inbounds double, double* %8567, i64 0
%8569 = load double, double* %8568
%8570 = fsub double %8566, %8569
%8571 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8570, double* %8571
%8572 = load double*, double** %10
%8573 = getelementptr inbounds double, double* %8572, i64 1
%8574 = load double, double* %8573
%8575 = load double*, double** %8
%8576 = getelementptr inbounds double, double* %8575, i64 1
%8577 = load double, double* %8576
%8578 = fsub double %8574, %8577
%8579 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8578, double* %8579
%8580 = load double*, double** %10
%8581 = getelementptr inbounds double, double* %8580, i64 2
%8582 = load double, double* %8581
%8583 = load double*, double** %8
%8584 = getelementptr inbounds double, double* %8583, i64 2
%8585 = load double, double* %8584
%8586 = fsub double %8582, %8585
%8587 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8586, double* %8587
%8588 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8589 = load double, double* %8588
%8590 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8591 = load double, double* %8590
%8592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8593 = load double, double* %8592
%8594 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8595 = load double, double* %8594
%8596 = fmul double %8593, %8595
%8597 = fneg double %8596
%8598 = call double @llvm.fmuladd.f64(double %8589, double %8591, double %8597)
%8599 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8598, double* %8599
%8600 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8601 = load double, double* %8600
%8602 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8603 = load double, double* %8602
%8604 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8605 = load double, double* %8604
%8606 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8607 = load double, double* %8606
%8608 = fmul double %8605, %8607
%8609 = fneg double %8608
%8610 = call double @llvm.fmuladd.f64(double %8601, double %8603, double %8609)
%8611 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8610, double* %8611
%8612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8613 = load double, double* %8612
%8614 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8615 = load double, double* %8614
%8616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8617 = load double, double* %8616
%8618 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8619 = load double, double* %8618
%8620 = fmul double %8617, %8619
%8621 = fneg double %8620
%8622 = call double @llvm.fmuladd.f64(double %8613, double %8615, double %8621)
%8623 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8622, double* %8623
%8624 = load double*, double** %13
%8625 = getelementptr inbounds double, double* %8624, i64 0
%8626 = load double, double* %8625
%8627 = load double*, double** %8
%8628 = getelementptr inbounds double, double* %8627, i64 0
%8629 = load double, double* %8628
%8630 = fsub double %8626, %8629
%8631 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8630, double* %8631
%8632 = load double*, double** %13
%8633 = getelementptr inbounds double, double* %8632, i64 1
%8634 = load double, double* %8633
%8635 = load double*, double** %8
%8636 = getelementptr inbounds double, double* %8635, i64 1
%8637 = load double, double* %8636
%8638 = fsub double %8634, %8637
%8639 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8638, double* %8639
%8640 = load double*, double** %13
%8641 = getelementptr inbounds double, double* %8640, i64 2
%8642 = load double, double* %8641
%8643 = load double*, double** %8
%8644 = getelementptr inbounds double, double* %8643, i64 2
%8645 = load double, double* %8644
%8646 = fsub double %8642, %8645
%8647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8646, double* %8647
%8648 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8649 = load double, double* %8648
%8650 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8651 = load double, double* %8650
%8652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8653 = load double, double* %8652
%8654 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8655 = load double, double* %8654
%8656 = fmul double %8653, %8655
%8657 = call double @llvm.fmuladd.f64(double %8649, double %8651, double %8656)
%8658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8659 = load double, double* %8658
%8660 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8661 = load double, double* %8660
%8662 = call double @llvm.fmuladd.f64(double %8659, double %8661, double %8657)
%8663 = fcmp ogt double %8662, 0.000000e+00
br i1 %8663, label %8664, label %8665
8664: ; preds = %8539
store i32 0, i32* %7
br label %37464
8665: ; preds = %8539
store i32 1, i32* %7
br label %37464
8666: ; preds = %8154
%8667 = load double, double* %18
%8668 = fcmp ogt double %8667, 0.000000e+00
br i1 %8668, label %8669, label %9178
8669: ; preds = %8666
%8670 = load double, double* %19
%8671 = fcmp ogt double %8670, 0.000000e+00
br i1 %8671, label %8672, label %8925
8672: ; preds = %8669
%8673 = load double*, double** %11
%8674 = getelementptr inbounds double, double* %8673, i64 0
%8675 = load double, double* %8674
%8676 = load double*, double** %10
%8677 = getelementptr inbounds double, double* %8676, i64 0
%8678 = load double, double* %8677
%8679 = fsub double %8675, %8678
%8680 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8679, double* %8680
%8681 = load double*, double** %11
%8682 = getelementptr inbounds double, double* %8681, i64 1
%8683 = load double, double* %8682
%8684 = load double*, double** %10
%8685 = getelementptr inbounds double, double* %8684, i64 1
%8686 = load double, double* %8685
%8687 = fsub double %8683, %8686
%8688 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8687, double* %8688
%8689 = load double*, double** %11
%8690 = getelementptr inbounds double, double* %8689, i64 2
%8691 = load double, double* %8690
%8692 = load double*, double** %10
%8693 = getelementptr inbounds double, double* %8692, i64 2
%8694 = load double, double* %8693
%8695 = fsub double %8691, %8694
%8696 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8695, double* %8696
%8697 = load double*, double** %8
%8698 = getelementptr inbounds double, double* %8697, i64 0
%8699 = load double, double* %8698
%8700 = load double*, double** %10
%8701 = getelementptr inbounds double, double* %8700, i64 0
%8702 = load double, double* %8701
%8703 = fsub double %8699, %8702
%8704 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8703, double* %8704
%8705 = load double*, double** %8
%8706 = getelementptr inbounds double, double* %8705, i64 1
%8707 = load double, double* %8706
%8708 = load double*, double** %10
%8709 = getelementptr inbounds double, double* %8708, i64 1
%8710 = load double, double* %8709
%8711 = fsub double %8707, %8710
%8712 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8711, double* %8712
%8713 = load double*, double** %8
%8714 = getelementptr inbounds double, double* %8713, i64 2
%8715 = load double, double* %8714
%8716 = load double*, double** %10
%8717 = getelementptr inbounds double, double* %8716, i64 2
%8718 = load double, double* %8717
%8719 = fsub double %8715, %8718
%8720 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8719, double* %8720
%8721 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8722 = load double, double* %8721
%8723 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8724 = load double, double* %8723
%8725 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8726 = load double, double* %8725
%8727 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8728 = load double, double* %8727
%8729 = fmul double %8726, %8728
%8730 = fneg double %8729
%8731 = call double @llvm.fmuladd.f64(double %8722, double %8724, double %8730)
%8732 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8731, double* %8732
%8733 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8734 = load double, double* %8733
%8735 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8736 = load double, double* %8735
%8737 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8738 = load double, double* %8737
%8739 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8740 = load double, double* %8739
%8741 = fmul double %8738, %8740
%8742 = fneg double %8741
%8743 = call double @llvm.fmuladd.f64(double %8734, double %8736, double %8742)
%8744 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8743, double* %8744
%8745 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8746 = load double, double* %8745
%8747 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8748 = load double, double* %8747
%8749 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8750 = load double, double* %8749
%8751 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8752 = load double, double* %8751
%8753 = fmul double %8750, %8752
%8754 = fneg double %8753
%8755 = call double @llvm.fmuladd.f64(double %8746, double %8748, double %8754)
%8756 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8755, double* %8756
%8757 = load double*, double** %12
%8758 = getelementptr inbounds double, double* %8757, i64 0
%8759 = load double, double* %8758
%8760 = load double*, double** %10
%8761 = getelementptr inbounds double, double* %8760, i64 0
%8762 = load double, double* %8761
%8763 = fsub double %8759, %8762
%8764 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8763, double* %8764
%8765 = load double*, double** %12
%8766 = getelementptr inbounds double, double* %8765, i64 1
%8767 = load double, double* %8766
%8768 = load double*, double** %10
%8769 = getelementptr inbounds double, double* %8768, i64 1
%8770 = load double, double* %8769
%8771 = fsub double %8767, %8770
%8772 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8771, double* %8772
%8773 = load double*, double** %12
%8774 = getelementptr inbounds double, double* %8773, i64 2
%8775 = load double, double* %8774
%8776 = load double*, double** %10
%8777 = getelementptr inbounds double, double* %8776, i64 2
%8778 = load double, double* %8777
%8779 = fsub double %8775, %8778
%8780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8779, double* %8780
%8781 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8782 = load double, double* %8781
%8783 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8784 = load double, double* %8783
%8785 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8786 = load double, double* %8785
%8787 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8788 = load double, double* %8787
%8789 = fmul double %8786, %8788
%8790 = call double @llvm.fmuladd.f64(double %8782, double %8784, double %8789)
%8791 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8792 = load double, double* %8791
%8793 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8794 = load double, double* %8793
%8795 = call double @llvm.fmuladd.f64(double %8792, double %8794, double %8790)
%8796 = fcmp ogt double %8795, 0.000000e+00
br i1 %8796, label %8797, label %8798
8797: ; preds = %8672
store i32 0, i32* %7
br label %37464
8798: ; preds = %8672
%8799 = load double*, double** %11
%8800 = getelementptr inbounds double, double* %8799, i64 0
%8801 = load double, double* %8800
%8802 = load double*, double** %8
%8803 = getelementptr inbounds double, double* %8802, i64 0
%8804 = load double, double* %8803
%8805 = fsub double %8801, %8804
%8806 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8805, double* %8806
%8807 = load double*, double** %11
%8808 = getelementptr inbounds double, double* %8807, i64 1
%8809 = load double, double* %8808
%8810 = load double*, double** %8
%8811 = getelementptr inbounds double, double* %8810, i64 1
%8812 = load double, double* %8811
%8813 = fsub double %8809, %8812
%8814 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8813, double* %8814
%8815 = load double*, double** %11
%8816 = getelementptr inbounds double, double* %8815, i64 2
%8817 = load double, double* %8816
%8818 = load double*, double** %8
%8819 = getelementptr inbounds double, double* %8818, i64 2
%8820 = load double, double* %8819
%8821 = fsub double %8817, %8820
%8822 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8821, double* %8822
%8823 = load double*, double** %9
%8824 = getelementptr inbounds double, double* %8823, i64 0
%8825 = load double, double* %8824
%8826 = load double*, double** %8
%8827 = getelementptr inbounds double, double* %8826, i64 0
%8828 = load double, double* %8827
%8829 = fsub double %8825, %8828
%8830 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8829, double* %8830
%8831 = load double*, double** %9
%8832 = getelementptr inbounds double, double* %8831, i64 1
%8833 = load double, double* %8832
%8834 = load double*, double** %8
%8835 = getelementptr inbounds double, double* %8834, i64 1
%8836 = load double, double* %8835
%8837 = fsub double %8833, %8836
%8838 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8837, double* %8838
%8839 = load double*, double** %9
%8840 = getelementptr inbounds double, double* %8839, i64 2
%8841 = load double, double* %8840
%8842 = load double*, double** %8
%8843 = getelementptr inbounds double, double* %8842, i64 2
%8844 = load double, double* %8843
%8845 = fsub double %8841, %8844
%8846 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8845, double* %8846
%8847 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8848 = load double, double* %8847
%8849 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8850 = load double, double* %8849
%8851 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8852 = load double, double* %8851
%8853 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8854 = load double, double* %8853
%8855 = fmul double %8852, %8854
%8856 = fneg double %8855
%8857 = call double @llvm.fmuladd.f64(double %8848, double %8850, double %8856)
%8858 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8857, double* %8858
%8859 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8860 = load double, double* %8859
%8861 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8862 = load double, double* %8861
%8863 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8864 = load double, double* %8863
%8865 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8866 = load double, double* %8865
%8867 = fmul double %8864, %8866
%8868 = fneg double %8867
%8869 = call double @llvm.fmuladd.f64(double %8860, double %8862, double %8868)
%8870 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8869, double* %8870
%8871 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8872 = load double, double* %8871
%8873 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8874 = load double, double* %8873
%8875 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8876 = load double, double* %8875
%8877 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8878 = load double, double* %8877
%8879 = fmul double %8876, %8878
%8880 = fneg double %8879
%8881 = call double @llvm.fmuladd.f64(double %8872, double %8874, double %8880)
%8882 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %8881, double* %8882
%8883 = load double*, double** %13
%8884 = getelementptr inbounds double, double* %8883, i64 0
%8885 = load double, double* %8884
%8886 = load double*, double** %8
%8887 = getelementptr inbounds double, double* %8886, i64 0
%8888 = load double, double* %8887
%8889 = fsub double %8885, %8888
%8890 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8889, double* %8890
%8891 = load double*, double** %13
%8892 = getelementptr inbounds double, double* %8891, i64 1
%8893 = load double, double* %8892
%8894 = load double*, double** %8
%8895 = getelementptr inbounds double, double* %8894, i64 1
%8896 = load double, double* %8895
%8897 = fsub double %8893, %8896
%8898 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8897, double* %8898
%8899 = load double*, double** %13
%8900 = getelementptr inbounds double, double* %8899, i64 2
%8901 = load double, double* %8900
%8902 = load double*, double** %8
%8903 = getelementptr inbounds double, double* %8902, i64 2
%8904 = load double, double* %8903
%8905 = fsub double %8901, %8904
%8906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8905, double* %8906
%8907 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8908 = load double, double* %8907
%8909 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%8910 = load double, double* %8909
%8911 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8912 = load double, double* %8911
%8913 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%8914 = load double, double* %8913
%8915 = fmul double %8912, %8914
%8916 = call double @llvm.fmuladd.f64(double %8908, double %8910, double %8915)
%8917 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8918 = load double, double* %8917
%8919 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%8920 = load double, double* %8919
%8921 = call double @llvm.fmuladd.f64(double %8918, double %8920, double %8916)
%8922 = fcmp ogt double %8921, 0.000000e+00
br i1 %8922, label %8923, label %8924
8923: ; preds = %8798
store i32 0, i32* %7
br label %37464
8924: ; preds = %8798
store i32 1, i32* %7
br label %37464
8925: ; preds = %8669
%8926 = load double*, double** %12
%8927 = getelementptr inbounds double, double* %8926, i64 0
%8928 = load double, double* %8927
%8929 = load double*, double** %9
%8930 = getelementptr inbounds double, double* %8929, i64 0
%8931 = load double, double* %8930
%8932 = fsub double %8928, %8931
%8933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %8932, double* %8933
%8934 = load double*, double** %12
%8935 = getelementptr inbounds double, double* %8934, i64 1
%8936 = load double, double* %8935
%8937 = load double*, double** %9
%8938 = getelementptr inbounds double, double* %8937, i64 1
%8939 = load double, double* %8938
%8940 = fsub double %8936, %8939
%8941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %8940, double* %8941
%8942 = load double*, double** %12
%8943 = getelementptr inbounds double, double* %8942, i64 2
%8944 = load double, double* %8943
%8945 = load double*, double** %9
%8946 = getelementptr inbounds double, double* %8945, i64 2
%8947 = load double, double* %8946
%8948 = fsub double %8944, %8947
%8949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %8948, double* %8949
%8950 = load double*, double** %8
%8951 = getelementptr inbounds double, double* %8950, i64 0
%8952 = load double, double* %8951
%8953 = load double*, double** %9
%8954 = getelementptr inbounds double, double* %8953, i64 0
%8955 = load double, double* %8954
%8956 = fsub double %8952, %8955
%8957 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %8956, double* %8957
%8958 = load double*, double** %8
%8959 = getelementptr inbounds double, double* %8958, i64 1
%8960 = load double, double* %8959
%8961 = load double*, double** %9
%8962 = getelementptr inbounds double, double* %8961, i64 1
%8963 = load double, double* %8962
%8964 = fsub double %8960, %8963
%8965 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %8964, double* %8965
%8966 = load double*, double** %8
%8967 = getelementptr inbounds double, double* %8966, i64 2
%8968 = load double, double* %8967
%8969 = load double*, double** %9
%8970 = getelementptr inbounds double, double* %8969, i64 2
%8971 = load double, double* %8970
%8972 = fsub double %8968, %8971
%8973 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %8972, double* %8973
%8974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%8975 = load double, double* %8974
%8976 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8977 = load double, double* %8976
%8978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8979 = load double, double* %8978
%8980 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%8981 = load double, double* %8980
%8982 = fmul double %8979, %8981
%8983 = fneg double %8982
%8984 = call double @llvm.fmuladd.f64(double %8975, double %8977, double %8983)
%8985 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %8984, double* %8985
%8986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%8987 = load double, double* %8986
%8988 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%8989 = load double, double* %8988
%8990 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8991 = load double, double* %8990
%8992 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%8993 = load double, double* %8992
%8994 = fmul double %8991, %8993
%8995 = fneg double %8994
%8996 = call double @llvm.fmuladd.f64(double %8987, double %8989, double %8995)
%8997 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %8996, double* %8997
%8998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%8999 = load double, double* %8998
%9000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9001 = load double, double* %9000
%9002 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9003 = load double, double* %9002
%9004 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9005 = load double, double* %9004
%9006 = fmul double %9003, %9005
%9007 = fneg double %9006
%9008 = call double @llvm.fmuladd.f64(double %8999, double %9001, double %9007)
%9009 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9008, double* %9009
%9010 = load double*, double** %13
%9011 = getelementptr inbounds double, double* %9010, i64 0
%9012 = load double, double* %9011
%9013 = load double*, double** %9
%9014 = getelementptr inbounds double, double* %9013, i64 0
%9015 = load double, double* %9014
%9016 = fsub double %9012, %9015
%9017 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9016, double* %9017
%9018 = load double*, double** %13
%9019 = getelementptr inbounds double, double* %9018, i64 1
%9020 = load double, double* %9019
%9021 = load double*, double** %9
%9022 = getelementptr inbounds double, double* %9021, i64 1
%9023 = load double, double* %9022
%9024 = fsub double %9020, %9023
%9025 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9024, double* %9025
%9026 = load double*, double** %13
%9027 = getelementptr inbounds double, double* %9026, i64 2
%9028 = load double, double* %9027
%9029 = load double*, double** %9
%9030 = getelementptr inbounds double, double* %9029, i64 2
%9031 = load double, double* %9030
%9032 = fsub double %9028, %9031
%9033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9032, double* %9033
%9034 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9035 = load double, double* %9034
%9036 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9037 = load double, double* %9036
%9038 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9039 = load double, double* %9038
%9040 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9041 = load double, double* %9040
%9042 = fmul double %9039, %9041
%9043 = call double @llvm.fmuladd.f64(double %9035, double %9037, double %9042)
%9044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9045 = load double, double* %9044
%9046 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9047 = load double, double* %9046
%9048 = call double @llvm.fmuladd.f64(double %9045, double %9047, double %9043)
%9049 = fcmp ogt double %9048, 0.000000e+00
br i1 %9049, label %9050, label %9051
9050: ; preds = %8925
store i32 0, i32* %7
br label %37464
9051: ; preds = %8925
%9052 = load double*, double** %12
%9053 = getelementptr inbounds double, double* %9052, i64 0
%9054 = load double, double* %9053
%9055 = load double*, double** %8
%9056 = getelementptr inbounds double, double* %9055, i64 0
%9057 = load double, double* %9056
%9058 = fsub double %9054, %9057
%9059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9058, double* %9059
%9060 = load double*, double** %12
%9061 = getelementptr inbounds double, double* %9060, i64 1
%9062 = load double, double* %9061
%9063 = load double*, double** %8
%9064 = getelementptr inbounds double, double* %9063, i64 1
%9065 = load double, double* %9064
%9066 = fsub double %9062, %9065
%9067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9066, double* %9067
%9068 = load double*, double** %12
%9069 = getelementptr inbounds double, double* %9068, i64 2
%9070 = load double, double* %9069
%9071 = load double*, double** %8
%9072 = getelementptr inbounds double, double* %9071, i64 2
%9073 = load double, double* %9072
%9074 = fsub double %9070, %9073
%9075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9074, double* %9075
%9076 = load double*, double** %10
%9077 = getelementptr inbounds double, double* %9076, i64 0
%9078 = load double, double* %9077
%9079 = load double*, double** %8
%9080 = getelementptr inbounds double, double* %9079, i64 0
%9081 = load double, double* %9080
%9082 = fsub double %9078, %9081
%9083 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9082, double* %9083
%9084 = load double*, double** %10
%9085 = getelementptr inbounds double, double* %9084, i64 1
%9086 = load double, double* %9085
%9087 = load double*, double** %8
%9088 = getelementptr inbounds double, double* %9087, i64 1
%9089 = load double, double* %9088
%9090 = fsub double %9086, %9089
%9091 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9090, double* %9091
%9092 = load double*, double** %10
%9093 = getelementptr inbounds double, double* %9092, i64 2
%9094 = load double, double* %9093
%9095 = load double*, double** %8
%9096 = getelementptr inbounds double, double* %9095, i64 2
%9097 = load double, double* %9096
%9098 = fsub double %9094, %9097
%9099 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9098, double* %9099
%9100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9101 = load double, double* %9100
%9102 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9103 = load double, double* %9102
%9104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9105 = load double, double* %9104
%9106 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9107 = load double, double* %9106
%9108 = fmul double %9105, %9107
%9109 = fneg double %9108
%9110 = call double @llvm.fmuladd.f64(double %9101, double %9103, double %9109)
%9111 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9110, double* %9111
%9112 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9113 = load double, double* %9112
%9114 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9115 = load double, double* %9114
%9116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9117 = load double, double* %9116
%9118 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9119 = load double, double* %9118
%9120 = fmul double %9117, %9119
%9121 = fneg double %9120
%9122 = call double @llvm.fmuladd.f64(double %9113, double %9115, double %9121)
%9123 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9122, double* %9123
%9124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9125 = load double, double* %9124
%9126 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9127 = load double, double* %9126
%9128 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9129 = load double, double* %9128
%9130 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9131 = load double, double* %9130
%9132 = fmul double %9129, %9131
%9133 = fneg double %9132
%9134 = call double @llvm.fmuladd.f64(double %9125, double %9127, double %9133)
%9135 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9134, double* %9135
%9136 = load double*, double** %11
%9137 = getelementptr inbounds double, double* %9136, i64 0
%9138 = load double, double* %9137
%9139 = load double*, double** %8
%9140 = getelementptr inbounds double, double* %9139, i64 0
%9141 = load double, double* %9140
%9142 = fsub double %9138, %9141
%9143 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9142, double* %9143
%9144 = load double*, double** %11
%9145 = getelementptr inbounds double, double* %9144, i64 1
%9146 = load double, double* %9145
%9147 = load double*, double** %8
%9148 = getelementptr inbounds double, double* %9147, i64 1
%9149 = load double, double* %9148
%9150 = fsub double %9146, %9149
%9151 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9150, double* %9151
%9152 = load double*, double** %11
%9153 = getelementptr inbounds double, double* %9152, i64 2
%9154 = load double, double* %9153
%9155 = load double*, double** %8
%9156 = getelementptr inbounds double, double* %9155, i64 2
%9157 = load double, double* %9156
%9158 = fsub double %9154, %9157
%9159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9158, double* %9159
%9160 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9161 = load double, double* %9160
%9162 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9163 = load double, double* %9162
%9164 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9165 = load double, double* %9164
%9166 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9167 = load double, double* %9166
%9168 = fmul double %9165, %9167
%9169 = call double @llvm.fmuladd.f64(double %9161, double %9163, double %9168)
%9170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9171 = load double, double* %9170
%9172 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9173 = load double, double* %9172
%9174 = call double @llvm.fmuladd.f64(double %9171, double %9173, double %9169)
%9175 = fcmp ogt double %9174, 0.000000e+00
br i1 %9175, label %9176, label %9177
9176: ; preds = %9051
store i32 0, i32* %7
br label %37464
9177: ; preds = %9051
store i32 1, i32* %7
br label %37464
9178: ; preds = %8666
%9179 = load double, double* %19
%9180 = fcmp ogt double %9179, 0.000000e+00
br i1 %9180, label %9181, label %9434
9181: ; preds = %9178
%9182 = load double*, double** %13
%9183 = getelementptr inbounds double, double* %9182, i64 0
%9184 = load double, double* %9183
%9185 = load double*, double** %9
%9186 = getelementptr inbounds double, double* %9185, i64 0
%9187 = load double, double* %9186
%9188 = fsub double %9184, %9187
%9189 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9188, double* %9189
%9190 = load double*, double** %13
%9191 = getelementptr inbounds double, double* %9190, i64 1
%9192 = load double, double* %9191
%9193 = load double*, double** %9
%9194 = getelementptr inbounds double, double* %9193, i64 1
%9195 = load double, double* %9194
%9196 = fsub double %9192, %9195
%9197 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9196, double* %9197
%9198 = load double*, double** %13
%9199 = getelementptr inbounds double, double* %9198, i64 2
%9200 = load double, double* %9199
%9201 = load double*, double** %9
%9202 = getelementptr inbounds double, double* %9201, i64 2
%9203 = load double, double* %9202
%9204 = fsub double %9200, %9203
%9205 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9204, double* %9205
%9206 = load double*, double** %8
%9207 = getelementptr inbounds double, double* %9206, i64 0
%9208 = load double, double* %9207
%9209 = load double*, double** %9
%9210 = getelementptr inbounds double, double* %9209, i64 0
%9211 = load double, double* %9210
%9212 = fsub double %9208, %9211
%9213 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9212, double* %9213
%9214 = load double*, double** %8
%9215 = getelementptr inbounds double, double* %9214, i64 1
%9216 = load double, double* %9215
%9217 = load double*, double** %9
%9218 = getelementptr inbounds double, double* %9217, i64 1
%9219 = load double, double* %9218
%9220 = fsub double %9216, %9219
%9221 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9220, double* %9221
%9222 = load double*, double** %8
%9223 = getelementptr inbounds double, double* %9222, i64 2
%9224 = load double, double* %9223
%9225 = load double*, double** %9
%9226 = getelementptr inbounds double, double* %9225, i64 2
%9227 = load double, double* %9226
%9228 = fsub double %9224, %9227
%9229 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9228, double* %9229
%9230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9231 = load double, double* %9230
%9232 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9233 = load double, double* %9232
%9234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9235 = load double, double* %9234
%9236 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9237 = load double, double* %9236
%9238 = fmul double %9235, %9237
%9239 = fneg double %9238
%9240 = call double @llvm.fmuladd.f64(double %9231, double %9233, double %9239)
%9241 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9240, double* %9241
%9242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9243 = load double, double* %9242
%9244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9245 = load double, double* %9244
%9246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9247 = load double, double* %9246
%9248 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9249 = load double, double* %9248
%9250 = fmul double %9247, %9249
%9251 = fneg double %9250
%9252 = call double @llvm.fmuladd.f64(double %9243, double %9245, double %9251)
%9253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9252, double* %9253
%9254 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9255 = load double, double* %9254
%9256 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9257 = load double, double* %9256
%9258 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9259 = load double, double* %9258
%9260 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9261 = load double, double* %9260
%9262 = fmul double %9259, %9261
%9263 = fneg double %9262
%9264 = call double @llvm.fmuladd.f64(double %9255, double %9257, double %9263)
%9265 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9264, double* %9265
%9266 = load double*, double** %11
%9267 = getelementptr inbounds double, double* %9266, i64 0
%9268 = load double, double* %9267
%9269 = load double*, double** %9
%9270 = getelementptr inbounds double, double* %9269, i64 0
%9271 = load double, double* %9270
%9272 = fsub double %9268, %9271
%9273 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9272, double* %9273
%9274 = load double*, double** %11
%9275 = getelementptr inbounds double, double* %9274, i64 1
%9276 = load double, double* %9275
%9277 = load double*, double** %9
%9278 = getelementptr inbounds double, double* %9277, i64 1
%9279 = load double, double* %9278
%9280 = fsub double %9276, %9279
%9281 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9280, double* %9281
%9282 = load double*, double** %11
%9283 = getelementptr inbounds double, double* %9282, i64 2
%9284 = load double, double* %9283
%9285 = load double*, double** %9
%9286 = getelementptr inbounds double, double* %9285, i64 2
%9287 = load double, double* %9286
%9288 = fsub double %9284, %9287
%9289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9288, double* %9289
%9290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9291 = load double, double* %9290
%9292 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9293 = load double, double* %9292
%9294 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9295 = load double, double* %9294
%9296 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9297 = load double, double* %9296
%9298 = fmul double %9295, %9297
%9299 = call double @llvm.fmuladd.f64(double %9291, double %9293, double %9298)
%9300 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9301 = load double, double* %9300
%9302 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9303 = load double, double* %9302
%9304 = call double @llvm.fmuladd.f64(double %9301, double %9303, double %9299)
%9305 = fcmp ogt double %9304, 0.000000e+00
br i1 %9305, label %9306, label %9307
9306: ; preds = %9181
store i32 0, i32* %7
br label %37464
9307: ; preds = %9181
%9308 = load double*, double** %13
%9309 = getelementptr inbounds double, double* %9308, i64 0
%9310 = load double, double* %9309
%9311 = load double*, double** %8
%9312 = getelementptr inbounds double, double* %9311, i64 0
%9313 = load double, double* %9312
%9314 = fsub double %9310, %9313
%9315 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9314, double* %9315
%9316 = load double*, double** %13
%9317 = getelementptr inbounds double, double* %9316, i64 1
%9318 = load double, double* %9317
%9319 = load double*, double** %8
%9320 = getelementptr inbounds double, double* %9319, i64 1
%9321 = load double, double* %9320
%9322 = fsub double %9318, %9321
%9323 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9322, double* %9323
%9324 = load double*, double** %13
%9325 = getelementptr inbounds double, double* %9324, i64 2
%9326 = load double, double* %9325
%9327 = load double*, double** %8
%9328 = getelementptr inbounds double, double* %9327, i64 2
%9329 = load double, double* %9328
%9330 = fsub double %9326, %9329
%9331 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9330, double* %9331
%9332 = load double*, double** %10
%9333 = getelementptr inbounds double, double* %9332, i64 0
%9334 = load double, double* %9333
%9335 = load double*, double** %8
%9336 = getelementptr inbounds double, double* %9335, i64 0
%9337 = load double, double* %9336
%9338 = fsub double %9334, %9337
%9339 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9338, double* %9339
%9340 = load double*, double** %10
%9341 = getelementptr inbounds double, double* %9340, i64 1
%9342 = load double, double* %9341
%9343 = load double*, double** %8
%9344 = getelementptr inbounds double, double* %9343, i64 1
%9345 = load double, double* %9344
%9346 = fsub double %9342, %9345
%9347 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9346, double* %9347
%9348 = load double*, double** %10
%9349 = getelementptr inbounds double, double* %9348, i64 2
%9350 = load double, double* %9349
%9351 = load double*, double** %8
%9352 = getelementptr inbounds double, double* %9351, i64 2
%9353 = load double, double* %9352
%9354 = fsub double %9350, %9353
%9355 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9354, double* %9355
%9356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9357 = load double, double* %9356
%9358 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9359 = load double, double* %9358
%9360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9361 = load double, double* %9360
%9362 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9363 = load double, double* %9362
%9364 = fmul double %9361, %9363
%9365 = fneg double %9364
%9366 = call double @llvm.fmuladd.f64(double %9357, double %9359, double %9365)
%9367 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9366, double* %9367
%9368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9369 = load double, double* %9368
%9370 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9371 = load double, double* %9370
%9372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9373 = load double, double* %9372
%9374 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9375 = load double, double* %9374
%9376 = fmul double %9373, %9375
%9377 = fneg double %9376
%9378 = call double @llvm.fmuladd.f64(double %9369, double %9371, double %9377)
%9379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9378, double* %9379
%9380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9381 = load double, double* %9380
%9382 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9383 = load double, double* %9382
%9384 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9385 = load double, double* %9384
%9386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9387 = load double, double* %9386
%9388 = fmul double %9385, %9387
%9389 = fneg double %9388
%9390 = call double @llvm.fmuladd.f64(double %9381, double %9383, double %9389)
%9391 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9390, double* %9391
%9392 = load double*, double** %12
%9393 = getelementptr inbounds double, double* %9392, i64 0
%9394 = load double, double* %9393
%9395 = load double*, double** %8
%9396 = getelementptr inbounds double, double* %9395, i64 0
%9397 = load double, double* %9396
%9398 = fsub double %9394, %9397
%9399 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9398, double* %9399
%9400 = load double*, double** %12
%9401 = getelementptr inbounds double, double* %9400, i64 1
%9402 = load double, double* %9401
%9403 = load double*, double** %8
%9404 = getelementptr inbounds double, double* %9403, i64 1
%9405 = load double, double* %9404
%9406 = fsub double %9402, %9405
%9407 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9406, double* %9407
%9408 = load double*, double** %12
%9409 = getelementptr inbounds double, double* %9408, i64 2
%9410 = load double, double* %9409
%9411 = load double*, double** %8
%9412 = getelementptr inbounds double, double* %9411, i64 2
%9413 = load double, double* %9412
%9414 = fsub double %9410, %9413
%9415 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9414, double* %9415
%9416 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9417 = load double, double* %9416
%9418 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9419 = load double, double* %9418
%9420 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9421 = load double, double* %9420
%9422 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9423 = load double, double* %9422
%9424 = fmul double %9421, %9423
%9425 = call double @llvm.fmuladd.f64(double %9417, double %9419, double %9424)
%9426 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9427 = load double, double* %9426
%9428 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9429 = load double, double* %9428
%9430 = call double @llvm.fmuladd.f64(double %9427, double %9429, double %9425)
%9431 = fcmp ogt double %9430, 0.000000e+00
br i1 %9431, label %9432, label %9433
9432: ; preds = %9307
store i32 0, i32* %7
br label %37464
9433: ; preds = %9307
store i32 1, i32* %7
br label %37464
9434: ; preds = %9178
%9435 = load double, double* %19
%9436 = fcmp olt double %9435, 0.000000e+00
br i1 %9436, label %9437, label %9690
9437: ; preds = %9434
%9438 = load double*, double** %13
%9439 = getelementptr inbounds double, double* %9438, i64 0
%9440 = load double, double* %9439
%9441 = load double*, double** %10
%9442 = getelementptr inbounds double, double* %9441, i64 0
%9443 = load double, double* %9442
%9444 = fsub double %9440, %9443
%9445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9444, double* %9445
%9446 = load double*, double** %13
%9447 = getelementptr inbounds double, double* %9446, i64 1
%9448 = load double, double* %9447
%9449 = load double*, double** %10
%9450 = getelementptr inbounds double, double* %9449, i64 1
%9451 = load double, double* %9450
%9452 = fsub double %9448, %9451
%9453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9452, double* %9453
%9454 = load double*, double** %13
%9455 = getelementptr inbounds double, double* %9454, i64 2
%9456 = load double, double* %9455
%9457 = load double*, double** %10
%9458 = getelementptr inbounds double, double* %9457, i64 2
%9459 = load double, double* %9458
%9460 = fsub double %9456, %9459
%9461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9460, double* %9461
%9462 = load double*, double** %8
%9463 = getelementptr inbounds double, double* %9462, i64 0
%9464 = load double, double* %9463
%9465 = load double*, double** %10
%9466 = getelementptr inbounds double, double* %9465, i64 0
%9467 = load double, double* %9466
%9468 = fsub double %9464, %9467
%9469 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9468, double* %9469
%9470 = load double*, double** %8
%9471 = getelementptr inbounds double, double* %9470, i64 1
%9472 = load double, double* %9471
%9473 = load double*, double** %10
%9474 = getelementptr inbounds double, double* %9473, i64 1
%9475 = load double, double* %9474
%9476 = fsub double %9472, %9475
%9477 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9476, double* %9477
%9478 = load double*, double** %8
%9479 = getelementptr inbounds double, double* %9478, i64 2
%9480 = load double, double* %9479
%9481 = load double*, double** %10
%9482 = getelementptr inbounds double, double* %9481, i64 2
%9483 = load double, double* %9482
%9484 = fsub double %9480, %9483
%9485 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9484, double* %9485
%9486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9487 = load double, double* %9486
%9488 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9489 = load double, double* %9488
%9490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9491 = load double, double* %9490
%9492 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9493 = load double, double* %9492
%9494 = fmul double %9491, %9493
%9495 = fneg double %9494
%9496 = call double @llvm.fmuladd.f64(double %9487, double %9489, double %9495)
%9497 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9496, double* %9497
%9498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9499 = load double, double* %9498
%9500 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9501 = load double, double* %9500
%9502 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9503 = load double, double* %9502
%9504 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9505 = load double, double* %9504
%9506 = fmul double %9503, %9505
%9507 = fneg double %9506
%9508 = call double @llvm.fmuladd.f64(double %9499, double %9501, double %9507)
%9509 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9508, double* %9509
%9510 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9511 = load double, double* %9510
%9512 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9513 = load double, double* %9512
%9514 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9515 = load double, double* %9514
%9516 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9517 = load double, double* %9516
%9518 = fmul double %9515, %9517
%9519 = fneg double %9518
%9520 = call double @llvm.fmuladd.f64(double %9511, double %9513, double %9519)
%9521 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9520, double* %9521
%9522 = load double*, double** %11
%9523 = getelementptr inbounds double, double* %9522, i64 0
%9524 = load double, double* %9523
%9525 = load double*, double** %10
%9526 = getelementptr inbounds double, double* %9525, i64 0
%9527 = load double, double* %9526
%9528 = fsub double %9524, %9527
%9529 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9528, double* %9529
%9530 = load double*, double** %11
%9531 = getelementptr inbounds double, double* %9530, i64 1
%9532 = load double, double* %9531
%9533 = load double*, double** %10
%9534 = getelementptr inbounds double, double* %9533, i64 1
%9535 = load double, double* %9534
%9536 = fsub double %9532, %9535
%9537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9536, double* %9537
%9538 = load double*, double** %11
%9539 = getelementptr inbounds double, double* %9538, i64 2
%9540 = load double, double* %9539
%9541 = load double*, double** %10
%9542 = getelementptr inbounds double, double* %9541, i64 2
%9543 = load double, double* %9542
%9544 = fsub double %9540, %9543
%9545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9544, double* %9545
%9546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9547 = load double, double* %9546
%9548 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9549 = load double, double* %9548
%9550 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9551 = load double, double* %9550
%9552 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9553 = load double, double* %9552
%9554 = fmul double %9551, %9553
%9555 = call double @llvm.fmuladd.f64(double %9547, double %9549, double %9554)
%9556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9557 = load double, double* %9556
%9558 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9559 = load double, double* %9558
%9560 = call double @llvm.fmuladd.f64(double %9557, double %9559, double %9555)
%9561 = fcmp ogt double %9560, 0.000000e+00
br i1 %9561, label %9562, label %9563
9562: ; preds = %9437
store i32 0, i32* %7
br label %37464
9563: ; preds = %9437
%9564 = load double*, double** %13
%9565 = getelementptr inbounds double, double* %9564, i64 0
%9566 = load double, double* %9565
%9567 = load double*, double** %8
%9568 = getelementptr inbounds double, double* %9567, i64 0
%9569 = load double, double* %9568
%9570 = fsub double %9566, %9569
%9571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9570, double* %9571
%9572 = load double*, double** %13
%9573 = getelementptr inbounds double, double* %9572, i64 1
%9574 = load double, double* %9573
%9575 = load double*, double** %8
%9576 = getelementptr inbounds double, double* %9575, i64 1
%9577 = load double, double* %9576
%9578 = fsub double %9574, %9577
%9579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9578, double* %9579
%9580 = load double*, double** %13
%9581 = getelementptr inbounds double, double* %9580, i64 2
%9582 = load double, double* %9581
%9583 = load double*, double** %8
%9584 = getelementptr inbounds double, double* %9583, i64 2
%9585 = load double, double* %9584
%9586 = fsub double %9582, %9585
%9587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9586, double* %9587
%9588 = load double*, double** %9
%9589 = getelementptr inbounds double, double* %9588, i64 0
%9590 = load double, double* %9589
%9591 = load double*, double** %8
%9592 = getelementptr inbounds double, double* %9591, i64 0
%9593 = load double, double* %9592
%9594 = fsub double %9590, %9593
%9595 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9594, double* %9595
%9596 = load double*, double** %9
%9597 = getelementptr inbounds double, double* %9596, i64 1
%9598 = load double, double* %9597
%9599 = load double*, double** %8
%9600 = getelementptr inbounds double, double* %9599, i64 1
%9601 = load double, double* %9600
%9602 = fsub double %9598, %9601
%9603 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9602, double* %9603
%9604 = load double*, double** %9
%9605 = getelementptr inbounds double, double* %9604, i64 2
%9606 = load double, double* %9605
%9607 = load double*, double** %8
%9608 = getelementptr inbounds double, double* %9607, i64 2
%9609 = load double, double* %9608
%9610 = fsub double %9606, %9609
%9611 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9610, double* %9611
%9612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9613 = load double, double* %9612
%9614 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9615 = load double, double* %9614
%9616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9617 = load double, double* %9616
%9618 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9619 = load double, double* %9618
%9620 = fmul double %9617, %9619
%9621 = fneg double %9620
%9622 = call double @llvm.fmuladd.f64(double %9613, double %9615, double %9621)
%9623 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9622, double* %9623
%9624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9625 = load double, double* %9624
%9626 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9627 = load double, double* %9626
%9628 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9629 = load double, double* %9628
%9630 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9631 = load double, double* %9630
%9632 = fmul double %9629, %9631
%9633 = fneg double %9632
%9634 = call double @llvm.fmuladd.f64(double %9625, double %9627, double %9633)
%9635 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9634, double* %9635
%9636 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9637 = load double, double* %9636
%9638 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9639 = load double, double* %9638
%9640 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9641 = load double, double* %9640
%9642 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9643 = load double, double* %9642
%9644 = fmul double %9641, %9643
%9645 = fneg double %9644
%9646 = call double @llvm.fmuladd.f64(double %9637, double %9639, double %9645)
%9647 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9646, double* %9647
%9648 = load double*, double** %12
%9649 = getelementptr inbounds double, double* %9648, i64 0
%9650 = load double, double* %9649
%9651 = load double*, double** %8
%9652 = getelementptr inbounds double, double* %9651, i64 0
%9653 = load double, double* %9652
%9654 = fsub double %9650, %9653
%9655 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9654, double* %9655
%9656 = load double*, double** %12
%9657 = getelementptr inbounds double, double* %9656, i64 1
%9658 = load double, double* %9657
%9659 = load double*, double** %8
%9660 = getelementptr inbounds double, double* %9659, i64 1
%9661 = load double, double* %9660
%9662 = fsub double %9658, %9661
%9663 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9662, double* %9663
%9664 = load double*, double** %12
%9665 = getelementptr inbounds double, double* %9664, i64 2
%9666 = load double, double* %9665
%9667 = load double*, double** %8
%9668 = getelementptr inbounds double, double* %9667, i64 2
%9669 = load double, double* %9668
%9670 = fsub double %9666, %9669
%9671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9670, double* %9671
%9672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9673 = load double, double* %9672
%9674 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9675 = load double, double* %9674
%9676 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9677 = load double, double* %9676
%9678 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9679 = load double, double* %9678
%9680 = fmul double %9677, %9679
%9681 = call double @llvm.fmuladd.f64(double %9673, double %9675, double %9680)
%9682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9683 = load double, double* %9682
%9684 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9685 = load double, double* %9684
%9686 = call double @llvm.fmuladd.f64(double %9683, double %9685, double %9681)
%9687 = fcmp ogt double %9686, 0.000000e+00
br i1 %9687, label %9688, label %9689
9688: ; preds = %9563
store i32 0, i32* %7
br label %37464
9689: ; preds = %9563
store i32 1, i32* %7
br label %37464
9690: ; preds = %9434
%9691 = load double*, double** %8
%9692 = load double*, double** %9
%9693 = load double*, double** %10
%9694 = load double*, double** %11
%9695 = load double*, double** %12
%9696 = load double*, double** %13
%9697 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9698 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %9691, double* %9692, double* %9693, double* %9694, double* %9695, double* %9696, double* %9697)
store i32 %9698, i32* %7
br label %37464
9699: ; preds = %447
%9700 = load double, double* %14
%9701 = fcmp olt double %9700, 0.000000e+00
br i1 %9701, label %9702, label %18951
9702: ; preds = %9699
%9703 = load double, double* %15
%9704 = fcmp olt double %9703, 0.000000e+00
br i1 %9704, label %9705, label %12786
9705: ; preds = %9702
%9706 = load double, double* %17
%9707 = fcmp ogt double %9706, 0.000000e+00
br i1 %9707, label %9708, label %10473
9708: ; preds = %9705
%9709 = load double, double* %18
%9710 = fcmp ogt double %9709, 0.000000e+00
br i1 %9710, label %9711, label %9964
9711: ; preds = %9708
%9712 = load double*, double** %13
%9713 = getelementptr inbounds double, double* %9712, i64 0
%9714 = load double, double* %9713
%9715 = load double*, double** %9
%9716 = getelementptr inbounds double, double* %9715, i64 0
%9717 = load double, double* %9716
%9718 = fsub double %9714, %9717
%9719 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9718, double* %9719
%9720 = load double*, double** %13
%9721 = getelementptr inbounds double, double* %9720, i64 1
%9722 = load double, double* %9721
%9723 = load double*, double** %9
%9724 = getelementptr inbounds double, double* %9723, i64 1
%9725 = load double, double* %9724
%9726 = fsub double %9722, %9725
%9727 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9726, double* %9727
%9728 = load double*, double** %13
%9729 = getelementptr inbounds double, double* %9728, i64 2
%9730 = load double, double* %9729
%9731 = load double*, double** %9
%9732 = getelementptr inbounds double, double* %9731, i64 2
%9733 = load double, double* %9732
%9734 = fsub double %9730, %9733
%9735 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9734, double* %9735
%9736 = load double*, double** %10
%9737 = getelementptr inbounds double, double* %9736, i64 0
%9738 = load double, double* %9737
%9739 = load double*, double** %9
%9740 = getelementptr inbounds double, double* %9739, i64 0
%9741 = load double, double* %9740
%9742 = fsub double %9738, %9741
%9743 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9742, double* %9743
%9744 = load double*, double** %10
%9745 = getelementptr inbounds double, double* %9744, i64 1
%9746 = load double, double* %9745
%9747 = load double*, double** %9
%9748 = getelementptr inbounds double, double* %9747, i64 1
%9749 = load double, double* %9748
%9750 = fsub double %9746, %9749
%9751 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9750, double* %9751
%9752 = load double*, double** %10
%9753 = getelementptr inbounds double, double* %9752, i64 2
%9754 = load double, double* %9753
%9755 = load double*, double** %9
%9756 = getelementptr inbounds double, double* %9755, i64 2
%9757 = load double, double* %9756
%9758 = fsub double %9754, %9757
%9759 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9758, double* %9759
%9760 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9761 = load double, double* %9760
%9762 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9763 = load double, double* %9762
%9764 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9765 = load double, double* %9764
%9766 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9767 = load double, double* %9766
%9768 = fmul double %9765, %9767
%9769 = fneg double %9768
%9770 = call double @llvm.fmuladd.f64(double %9761, double %9763, double %9769)
%9771 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9770, double* %9771
%9772 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9773 = load double, double* %9772
%9774 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9775 = load double, double* %9774
%9776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9777 = load double, double* %9776
%9778 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9779 = load double, double* %9778
%9780 = fmul double %9777, %9779
%9781 = fneg double %9780
%9782 = call double @llvm.fmuladd.f64(double %9773, double %9775, double %9781)
%9783 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9782, double* %9783
%9784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9785 = load double, double* %9784
%9786 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9787 = load double, double* %9786
%9788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9789 = load double, double* %9788
%9790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9791 = load double, double* %9790
%9792 = fmul double %9789, %9791
%9793 = fneg double %9792
%9794 = call double @llvm.fmuladd.f64(double %9785, double %9787, double %9793)
%9795 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9794, double* %9795
%9796 = load double*, double** %11
%9797 = getelementptr inbounds double, double* %9796, i64 0
%9798 = load double, double* %9797
%9799 = load double*, double** %9
%9800 = getelementptr inbounds double, double* %9799, i64 0
%9801 = load double, double* %9800
%9802 = fsub double %9798, %9801
%9803 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9802, double* %9803
%9804 = load double*, double** %11
%9805 = getelementptr inbounds double, double* %9804, i64 1
%9806 = load double, double* %9805
%9807 = load double*, double** %9
%9808 = getelementptr inbounds double, double* %9807, i64 1
%9809 = load double, double* %9808
%9810 = fsub double %9806, %9809
%9811 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9810, double* %9811
%9812 = load double*, double** %11
%9813 = getelementptr inbounds double, double* %9812, i64 2
%9814 = load double, double* %9813
%9815 = load double*, double** %9
%9816 = getelementptr inbounds double, double* %9815, i64 2
%9817 = load double, double* %9816
%9818 = fsub double %9814, %9817
%9819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9818, double* %9819
%9820 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9821 = load double, double* %9820
%9822 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9823 = load double, double* %9822
%9824 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9825 = load double, double* %9824
%9826 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9827 = load double, double* %9826
%9828 = fmul double %9825, %9827
%9829 = call double @llvm.fmuladd.f64(double %9821, double %9823, double %9828)
%9830 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9831 = load double, double* %9830
%9832 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9833 = load double, double* %9832
%9834 = call double @llvm.fmuladd.f64(double %9831, double %9833, double %9829)
%9835 = fcmp ogt double %9834, 0.000000e+00
br i1 %9835, label %9836, label %9837
9836: ; preds = %9711
store i32 0, i32* %7
br label %37464
9837: ; preds = %9711
%9838 = load double*, double** %13
%9839 = getelementptr inbounds double, double* %9838, i64 0
%9840 = load double, double* %9839
%9841 = load double*, double** %10
%9842 = getelementptr inbounds double, double* %9841, i64 0
%9843 = load double, double* %9842
%9844 = fsub double %9840, %9843
%9845 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9844, double* %9845
%9846 = load double*, double** %13
%9847 = getelementptr inbounds double, double* %9846, i64 1
%9848 = load double, double* %9847
%9849 = load double*, double** %10
%9850 = getelementptr inbounds double, double* %9849, i64 1
%9851 = load double, double* %9850
%9852 = fsub double %9848, %9851
%9853 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9852, double* %9853
%9854 = load double*, double** %13
%9855 = getelementptr inbounds double, double* %9854, i64 2
%9856 = load double, double* %9855
%9857 = load double*, double** %10
%9858 = getelementptr inbounds double, double* %9857, i64 2
%9859 = load double, double* %9858
%9860 = fsub double %9856, %9859
%9861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9860, double* %9861
%9862 = load double*, double** %8
%9863 = getelementptr inbounds double, double* %9862, i64 0
%9864 = load double, double* %9863
%9865 = load double*, double** %10
%9866 = getelementptr inbounds double, double* %9865, i64 0
%9867 = load double, double* %9866
%9868 = fsub double %9864, %9867
%9869 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9868, double* %9869
%9870 = load double*, double** %8
%9871 = getelementptr inbounds double, double* %9870, i64 1
%9872 = load double, double* %9871
%9873 = load double*, double** %10
%9874 = getelementptr inbounds double, double* %9873, i64 1
%9875 = load double, double* %9874
%9876 = fsub double %9872, %9875
%9877 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %9876, double* %9877
%9878 = load double*, double** %8
%9879 = getelementptr inbounds double, double* %9878, i64 2
%9880 = load double, double* %9879
%9881 = load double*, double** %10
%9882 = getelementptr inbounds double, double* %9881, i64 2
%9883 = load double, double* %9882
%9884 = fsub double %9880, %9883
%9885 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %9884, double* %9885
%9886 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9887 = load double, double* %9886
%9888 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9889 = load double, double* %9888
%9890 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9891 = load double, double* %9890
%9892 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9893 = load double, double* %9892
%9894 = fmul double %9891, %9893
%9895 = fneg double %9894
%9896 = call double @llvm.fmuladd.f64(double %9887, double %9889, double %9895)
%9897 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %9896, double* %9897
%9898 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9899 = load double, double* %9898
%9900 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9901 = load double, double* %9900
%9902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9903 = load double, double* %9902
%9904 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%9905 = load double, double* %9904
%9906 = fmul double %9903, %9905
%9907 = fneg double %9906
%9908 = call double @llvm.fmuladd.f64(double %9899, double %9901, double %9907)
%9909 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %9908, double* %9909
%9910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9911 = load double, double* %9910
%9912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%9913 = load double, double* %9912
%9914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9915 = load double, double* %9914
%9916 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%9917 = load double, double* %9916
%9918 = fmul double %9915, %9917
%9919 = fneg double %9918
%9920 = call double @llvm.fmuladd.f64(double %9911, double %9913, double %9919)
%9921 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %9920, double* %9921
%9922 = load double*, double** %12
%9923 = getelementptr inbounds double, double* %9922, i64 0
%9924 = load double, double* %9923
%9925 = load double*, double** %10
%9926 = getelementptr inbounds double, double* %9925, i64 0
%9927 = load double, double* %9926
%9928 = fsub double %9924, %9927
%9929 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9928, double* %9929
%9930 = load double*, double** %12
%9931 = getelementptr inbounds double, double* %9930, i64 1
%9932 = load double, double* %9931
%9933 = load double*, double** %10
%9934 = getelementptr inbounds double, double* %9933, i64 1
%9935 = load double, double* %9934
%9936 = fsub double %9932, %9935
%9937 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9936, double* %9937
%9938 = load double*, double** %12
%9939 = getelementptr inbounds double, double* %9938, i64 2
%9940 = load double, double* %9939
%9941 = load double*, double** %10
%9942 = getelementptr inbounds double, double* %9941, i64 2
%9943 = load double, double* %9942
%9944 = fsub double %9940, %9943
%9945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9944, double* %9945
%9946 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%9947 = load double, double* %9946
%9948 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%9949 = load double, double* %9948
%9950 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%9951 = load double, double* %9950
%9952 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%9953 = load double, double* %9952
%9954 = fmul double %9951, %9953
%9955 = call double @llvm.fmuladd.f64(double %9947, double %9949, double %9954)
%9956 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%9957 = load double, double* %9956
%9958 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%9959 = load double, double* %9958
%9960 = call double @llvm.fmuladd.f64(double %9957, double %9959, double %9955)
%9961 = fcmp ogt double %9960, 0.000000e+00
br i1 %9961, label %9962, label %9963
9962: ; preds = %9837
store i32 0, i32* %7
br label %37464
9963: ; preds = %9837
store i32 1, i32* %7
br label %37464
9964: ; preds = %9708
%9965 = load double, double* %19
%9966 = fcmp ogt double %9965, 0.000000e+00
br i1 %9966, label %9967, label %10220
9967: ; preds = %9964
%9968 = load double*, double** %12
%9969 = getelementptr inbounds double, double* %9968, i64 0
%9970 = load double, double* %9969
%9971 = load double*, double** %9
%9972 = getelementptr inbounds double, double* %9971, i64 0
%9973 = load double, double* %9972
%9974 = fsub double %9970, %9973
%9975 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %9974, double* %9975
%9976 = load double*, double** %12
%9977 = getelementptr inbounds double, double* %9976, i64 1
%9978 = load double, double* %9977
%9979 = load double*, double** %9
%9980 = getelementptr inbounds double, double* %9979, i64 1
%9981 = load double, double* %9980
%9982 = fsub double %9978, %9981
%9983 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %9982, double* %9983
%9984 = load double*, double** %12
%9985 = getelementptr inbounds double, double* %9984, i64 2
%9986 = load double, double* %9985
%9987 = load double*, double** %9
%9988 = getelementptr inbounds double, double* %9987, i64 2
%9989 = load double, double* %9988
%9990 = fsub double %9986, %9989
%9991 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %9990, double* %9991
%9992 = load double*, double** %10
%9993 = getelementptr inbounds double, double* %9992, i64 0
%9994 = load double, double* %9993
%9995 = load double*, double** %9
%9996 = getelementptr inbounds double, double* %9995, i64 0
%9997 = load double, double* %9996
%9998 = fsub double %9994, %9997
%9999 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %9998, double* %9999
%10000 = load double*, double** %10
%10001 = getelementptr inbounds double, double* %10000, i64 1
%10002 = load double, double* %10001
%10003 = load double*, double** %9
%10004 = getelementptr inbounds double, double* %10003, i64 1
%10005 = load double, double* %10004
%10006 = fsub double %10002, %10005
%10007 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10006, double* %10007
%10008 = load double*, double** %10
%10009 = getelementptr inbounds double, double* %10008, i64 2
%10010 = load double, double* %10009
%10011 = load double*, double** %9
%10012 = getelementptr inbounds double, double* %10011, i64 2
%10013 = load double, double* %10012
%10014 = fsub double %10010, %10013
%10015 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10014, double* %10015
%10016 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10017 = load double, double* %10016
%10018 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10019 = load double, double* %10018
%10020 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10021 = load double, double* %10020
%10022 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10023 = load double, double* %10022
%10024 = fmul double %10021, %10023
%10025 = fneg double %10024
%10026 = call double @llvm.fmuladd.f64(double %10017, double %10019, double %10025)
%10027 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10026, double* %10027
%10028 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10029 = load double, double* %10028
%10030 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10031 = load double, double* %10030
%10032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10033 = load double, double* %10032
%10034 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10035 = load double, double* %10034
%10036 = fmul double %10033, %10035
%10037 = fneg double %10036
%10038 = call double @llvm.fmuladd.f64(double %10029, double %10031, double %10037)
%10039 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10038, double* %10039
%10040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10041 = load double, double* %10040
%10042 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10043 = load double, double* %10042
%10044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10045 = load double, double* %10044
%10046 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10047 = load double, double* %10046
%10048 = fmul double %10045, %10047
%10049 = fneg double %10048
%10050 = call double @llvm.fmuladd.f64(double %10041, double %10043, double %10049)
%10051 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10050, double* %10051
%10052 = load double*, double** %13
%10053 = getelementptr inbounds double, double* %10052, i64 0
%10054 = load double, double* %10053
%10055 = load double*, double** %9
%10056 = getelementptr inbounds double, double* %10055, i64 0
%10057 = load double, double* %10056
%10058 = fsub double %10054, %10057
%10059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10058, double* %10059
%10060 = load double*, double** %13
%10061 = getelementptr inbounds double, double* %10060, i64 1
%10062 = load double, double* %10061
%10063 = load double*, double** %9
%10064 = getelementptr inbounds double, double* %10063, i64 1
%10065 = load double, double* %10064
%10066 = fsub double %10062, %10065
%10067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10066, double* %10067
%10068 = load double*, double** %13
%10069 = getelementptr inbounds double, double* %10068, i64 2
%10070 = load double, double* %10069
%10071 = load double*, double** %9
%10072 = getelementptr inbounds double, double* %10071, i64 2
%10073 = load double, double* %10072
%10074 = fsub double %10070, %10073
%10075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10074, double* %10075
%10076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10077 = load double, double* %10076
%10078 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10079 = load double, double* %10078
%10080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10081 = load double, double* %10080
%10082 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10083 = load double, double* %10082
%10084 = fmul double %10081, %10083
%10085 = call double @llvm.fmuladd.f64(double %10077, double %10079, double %10084)
%10086 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10087 = load double, double* %10086
%10088 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10089 = load double, double* %10088
%10090 = call double @llvm.fmuladd.f64(double %10087, double %10089, double %10085)
%10091 = fcmp ogt double %10090, 0.000000e+00
br i1 %10091, label %10092, label %10093
10092: ; preds = %9967
store i32 0, i32* %7
br label %37464
10093: ; preds = %9967
%10094 = load double*, double** %12
%10095 = getelementptr inbounds double, double* %10094, i64 0
%10096 = load double, double* %10095
%10097 = load double*, double** %10
%10098 = getelementptr inbounds double, double* %10097, i64 0
%10099 = load double, double* %10098
%10100 = fsub double %10096, %10099
%10101 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10100, double* %10101
%10102 = load double*, double** %12
%10103 = getelementptr inbounds double, double* %10102, i64 1
%10104 = load double, double* %10103
%10105 = load double*, double** %10
%10106 = getelementptr inbounds double, double* %10105, i64 1
%10107 = load double, double* %10106
%10108 = fsub double %10104, %10107
%10109 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10108, double* %10109
%10110 = load double*, double** %12
%10111 = getelementptr inbounds double, double* %10110, i64 2
%10112 = load double, double* %10111
%10113 = load double*, double** %10
%10114 = getelementptr inbounds double, double* %10113, i64 2
%10115 = load double, double* %10114
%10116 = fsub double %10112, %10115
%10117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10116, double* %10117
%10118 = load double*, double** %8
%10119 = getelementptr inbounds double, double* %10118, i64 0
%10120 = load double, double* %10119
%10121 = load double*, double** %10
%10122 = getelementptr inbounds double, double* %10121, i64 0
%10123 = load double, double* %10122
%10124 = fsub double %10120, %10123
%10125 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10124, double* %10125
%10126 = load double*, double** %8
%10127 = getelementptr inbounds double, double* %10126, i64 1
%10128 = load double, double* %10127
%10129 = load double*, double** %10
%10130 = getelementptr inbounds double, double* %10129, i64 1
%10131 = load double, double* %10130
%10132 = fsub double %10128, %10131
%10133 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10132, double* %10133
%10134 = load double*, double** %8
%10135 = getelementptr inbounds double, double* %10134, i64 2
%10136 = load double, double* %10135
%10137 = load double*, double** %10
%10138 = getelementptr inbounds double, double* %10137, i64 2
%10139 = load double, double* %10138
%10140 = fsub double %10136, %10139
%10141 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10140, double* %10141
%10142 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10143 = load double, double* %10142
%10144 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10145 = load double, double* %10144
%10146 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10147 = load double, double* %10146
%10148 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10149 = load double, double* %10148
%10150 = fmul double %10147, %10149
%10151 = fneg double %10150
%10152 = call double @llvm.fmuladd.f64(double %10143, double %10145, double %10151)
%10153 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10152, double* %10153
%10154 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10155 = load double, double* %10154
%10156 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10157 = load double, double* %10156
%10158 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10159 = load double, double* %10158
%10160 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10161 = load double, double* %10160
%10162 = fmul double %10159, %10161
%10163 = fneg double %10162
%10164 = call double @llvm.fmuladd.f64(double %10155, double %10157, double %10163)
%10165 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10164, double* %10165
%10166 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10167 = load double, double* %10166
%10168 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10169 = load double, double* %10168
%10170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10171 = load double, double* %10170
%10172 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10173 = load double, double* %10172
%10174 = fmul double %10171, %10173
%10175 = fneg double %10174
%10176 = call double @llvm.fmuladd.f64(double %10167, double %10169, double %10175)
%10177 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10176, double* %10177
%10178 = load double*, double** %11
%10179 = getelementptr inbounds double, double* %10178, i64 0
%10180 = load double, double* %10179
%10181 = load double*, double** %10
%10182 = getelementptr inbounds double, double* %10181, i64 0
%10183 = load double, double* %10182
%10184 = fsub double %10180, %10183
%10185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10184, double* %10185
%10186 = load double*, double** %11
%10187 = getelementptr inbounds double, double* %10186, i64 1
%10188 = load double, double* %10187
%10189 = load double*, double** %10
%10190 = getelementptr inbounds double, double* %10189, i64 1
%10191 = load double, double* %10190
%10192 = fsub double %10188, %10191
%10193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10192, double* %10193
%10194 = load double*, double** %11
%10195 = getelementptr inbounds double, double* %10194, i64 2
%10196 = load double, double* %10195
%10197 = load double*, double** %10
%10198 = getelementptr inbounds double, double* %10197, i64 2
%10199 = load double, double* %10198
%10200 = fsub double %10196, %10199
%10201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10200, double* %10201
%10202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10203 = load double, double* %10202
%10204 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10205 = load double, double* %10204
%10206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10207 = load double, double* %10206
%10208 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10209 = load double, double* %10208
%10210 = fmul double %10207, %10209
%10211 = call double @llvm.fmuladd.f64(double %10203, double %10205, double %10210)
%10212 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10213 = load double, double* %10212
%10214 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10215 = load double, double* %10214
%10216 = call double @llvm.fmuladd.f64(double %10213, double %10215, double %10211)
%10217 = fcmp ogt double %10216, 0.000000e+00
br i1 %10217, label %10218, label %10219
10218: ; preds = %10093
store i32 0, i32* %7
br label %37464
10219: ; preds = %10093
store i32 1, i32* %7
br label %37464
10220: ; preds = %9964
%10221 = load double*, double** %11
%10222 = getelementptr inbounds double, double* %10221, i64 0
%10223 = load double, double* %10222
%10224 = load double*, double** %8
%10225 = getelementptr inbounds double, double* %10224, i64 0
%10226 = load double, double* %10225
%10227 = fsub double %10223, %10226
%10228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10227, double* %10228
%10229 = load double*, double** %11
%10230 = getelementptr inbounds double, double* %10229, i64 1
%10231 = load double, double* %10230
%10232 = load double*, double** %8
%10233 = getelementptr inbounds double, double* %10232, i64 1
%10234 = load double, double* %10233
%10235 = fsub double %10231, %10234
%10236 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10235, double* %10236
%10237 = load double*, double** %11
%10238 = getelementptr inbounds double, double* %10237, i64 2
%10239 = load double, double* %10238
%10240 = load double*, double** %8
%10241 = getelementptr inbounds double, double* %10240, i64 2
%10242 = load double, double* %10241
%10243 = fsub double %10239, %10242
%10244 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10243, double* %10244
%10245 = load double*, double** %10
%10246 = getelementptr inbounds double, double* %10245, i64 0
%10247 = load double, double* %10246
%10248 = load double*, double** %8
%10249 = getelementptr inbounds double, double* %10248, i64 0
%10250 = load double, double* %10249
%10251 = fsub double %10247, %10250
%10252 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10251, double* %10252
%10253 = load double*, double** %10
%10254 = getelementptr inbounds double, double* %10253, i64 1
%10255 = load double, double* %10254
%10256 = load double*, double** %8
%10257 = getelementptr inbounds double, double* %10256, i64 1
%10258 = load double, double* %10257
%10259 = fsub double %10255, %10258
%10260 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10259, double* %10260
%10261 = load double*, double** %10
%10262 = getelementptr inbounds double, double* %10261, i64 2
%10263 = load double, double* %10262
%10264 = load double*, double** %8
%10265 = getelementptr inbounds double, double* %10264, i64 2
%10266 = load double, double* %10265
%10267 = fsub double %10263, %10266
%10268 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10267, double* %10268
%10269 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10270 = load double, double* %10269
%10271 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10272 = load double, double* %10271
%10273 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10274 = load double, double* %10273
%10275 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10276 = load double, double* %10275
%10277 = fmul double %10274, %10276
%10278 = fneg double %10277
%10279 = call double @llvm.fmuladd.f64(double %10270, double %10272, double %10278)
%10280 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10279, double* %10280
%10281 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10282 = load double, double* %10281
%10283 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10284 = load double, double* %10283
%10285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10286 = load double, double* %10285
%10287 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10288 = load double, double* %10287
%10289 = fmul double %10286, %10288
%10290 = fneg double %10289
%10291 = call double @llvm.fmuladd.f64(double %10282, double %10284, double %10290)
%10292 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10291, double* %10292
%10293 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10294 = load double, double* %10293
%10295 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10296 = load double, double* %10295
%10297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10298 = load double, double* %10297
%10299 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10300 = load double, double* %10299
%10301 = fmul double %10298, %10300
%10302 = fneg double %10301
%10303 = call double @llvm.fmuladd.f64(double %10294, double %10296, double %10302)
%10304 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10303, double* %10304
%10305 = load double*, double** %12
%10306 = getelementptr inbounds double, double* %10305, i64 0
%10307 = load double, double* %10306
%10308 = load double*, double** %8
%10309 = getelementptr inbounds double, double* %10308, i64 0
%10310 = load double, double* %10309
%10311 = fsub double %10307, %10310
%10312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10311, double* %10312
%10313 = load double*, double** %12
%10314 = getelementptr inbounds double, double* %10313, i64 1
%10315 = load double, double* %10314
%10316 = load double*, double** %8
%10317 = getelementptr inbounds double, double* %10316, i64 1
%10318 = load double, double* %10317
%10319 = fsub double %10315, %10318
%10320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10319, double* %10320
%10321 = load double*, double** %12
%10322 = getelementptr inbounds double, double* %10321, i64 2
%10323 = load double, double* %10322
%10324 = load double*, double** %8
%10325 = getelementptr inbounds double, double* %10324, i64 2
%10326 = load double, double* %10325
%10327 = fsub double %10323, %10326
%10328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10327, double* %10328
%10329 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10330 = load double, double* %10329
%10331 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10332 = load double, double* %10331
%10333 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10334 = load double, double* %10333
%10335 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10336 = load double, double* %10335
%10337 = fmul double %10334, %10336
%10338 = call double @llvm.fmuladd.f64(double %10330, double %10332, double %10337)
%10339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10340 = load double, double* %10339
%10341 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10342 = load double, double* %10341
%10343 = call double @llvm.fmuladd.f64(double %10340, double %10342, double %10338)
%10344 = fcmp ogt double %10343, 0.000000e+00
br i1 %10344, label %10345, label %10346
10345: ; preds = %10220
store i32 0, i32* %7
br label %37464
10346: ; preds = %10220
%10347 = load double*, double** %11
%10348 = getelementptr inbounds double, double* %10347, i64 0
%10349 = load double, double* %10348
%10350 = load double*, double** %10
%10351 = getelementptr inbounds double, double* %10350, i64 0
%10352 = load double, double* %10351
%10353 = fsub double %10349, %10352
%10354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10353, double* %10354
%10355 = load double*, double** %11
%10356 = getelementptr inbounds double, double* %10355, i64 1
%10357 = load double, double* %10356
%10358 = load double*, double** %10
%10359 = getelementptr inbounds double, double* %10358, i64 1
%10360 = load double, double* %10359
%10361 = fsub double %10357, %10360
%10362 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10361, double* %10362
%10363 = load double*, double** %11
%10364 = getelementptr inbounds double, double* %10363, i64 2
%10365 = load double, double* %10364
%10366 = load double*, double** %10
%10367 = getelementptr inbounds double, double* %10366, i64 2
%10368 = load double, double* %10367
%10369 = fsub double %10365, %10368
%10370 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10369, double* %10370
%10371 = load double*, double** %9
%10372 = getelementptr inbounds double, double* %10371, i64 0
%10373 = load double, double* %10372
%10374 = load double*, double** %10
%10375 = getelementptr inbounds double, double* %10374, i64 0
%10376 = load double, double* %10375
%10377 = fsub double %10373, %10376
%10378 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10377, double* %10378
%10379 = load double*, double** %9
%10380 = getelementptr inbounds double, double* %10379, i64 1
%10381 = load double, double* %10380
%10382 = load double*, double** %10
%10383 = getelementptr inbounds double, double* %10382, i64 1
%10384 = load double, double* %10383
%10385 = fsub double %10381, %10384
%10386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10385, double* %10386
%10387 = load double*, double** %9
%10388 = getelementptr inbounds double, double* %10387, i64 2
%10389 = load double, double* %10388
%10390 = load double*, double** %10
%10391 = getelementptr inbounds double, double* %10390, i64 2
%10392 = load double, double* %10391
%10393 = fsub double %10389, %10392
%10394 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10393, double* %10394
%10395 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10396 = load double, double* %10395
%10397 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10398 = load double, double* %10397
%10399 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10400 = load double, double* %10399
%10401 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10402 = load double, double* %10401
%10403 = fmul double %10400, %10402
%10404 = fneg double %10403
%10405 = call double @llvm.fmuladd.f64(double %10396, double %10398, double %10404)
%10406 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10405, double* %10406
%10407 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10408 = load double, double* %10407
%10409 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10410 = load double, double* %10409
%10411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10412 = load double, double* %10411
%10413 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10414 = load double, double* %10413
%10415 = fmul double %10412, %10414
%10416 = fneg double %10415
%10417 = call double @llvm.fmuladd.f64(double %10408, double %10410, double %10416)
%10418 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10417, double* %10418
%10419 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10420 = load double, double* %10419
%10421 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10422 = load double, double* %10421
%10423 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10424 = load double, double* %10423
%10425 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10426 = load double, double* %10425
%10427 = fmul double %10424, %10426
%10428 = fneg double %10427
%10429 = call double @llvm.fmuladd.f64(double %10420, double %10422, double %10428)
%10430 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10429, double* %10430
%10431 = load double*, double** %13
%10432 = getelementptr inbounds double, double* %10431, i64 0
%10433 = load double, double* %10432
%10434 = load double*, double** %10
%10435 = getelementptr inbounds double, double* %10434, i64 0
%10436 = load double, double* %10435
%10437 = fsub double %10433, %10436
%10438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10437, double* %10438
%10439 = load double*, double** %13
%10440 = getelementptr inbounds double, double* %10439, i64 1
%10441 = load double, double* %10440
%10442 = load double*, double** %10
%10443 = getelementptr inbounds double, double* %10442, i64 1
%10444 = load double, double* %10443
%10445 = fsub double %10441, %10444
%10446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10445, double* %10446
%10447 = load double*, double** %13
%10448 = getelementptr inbounds double, double* %10447, i64 2
%10449 = load double, double* %10448
%10450 = load double*, double** %10
%10451 = getelementptr inbounds double, double* %10450, i64 2
%10452 = load double, double* %10451
%10453 = fsub double %10449, %10452
%10454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10453, double* %10454
%10455 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10456 = load double, double* %10455
%10457 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10458 = load double, double* %10457
%10459 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10460 = load double, double* %10459
%10461 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10462 = load double, double* %10461
%10463 = fmul double %10460, %10462
%10464 = call double @llvm.fmuladd.f64(double %10456, double %10458, double %10463)
%10465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10466 = load double, double* %10465
%10467 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10468 = load double, double* %10467
%10469 = call double @llvm.fmuladd.f64(double %10466, double %10468, double %10464)
%10470 = fcmp ogt double %10469, 0.000000e+00
br i1 %10470, label %10471, label %10472
10471: ; preds = %10346
store i32 0, i32* %7
br label %37464
10472: ; preds = %10346
store i32 1, i32* %7
br label %37464
10473: ; preds = %9705
%10474 = load double, double* %17
%10475 = fcmp olt double %10474, 0.000000e+00
br i1 %10475, label %10476, label %11241
10476: ; preds = %10473
%10477 = load double, double* %18
%10478 = fcmp olt double %10477, 0.000000e+00
br i1 %10478, label %10479, label %10732
10479: ; preds = %10476
%10480 = load double*, double** %13
%10481 = getelementptr inbounds double, double* %10480, i64 0
%10482 = load double, double* %10481
%10483 = load double*, double** %8
%10484 = getelementptr inbounds double, double* %10483, i64 0
%10485 = load double, double* %10484
%10486 = fsub double %10482, %10485
%10487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10486, double* %10487
%10488 = load double*, double** %13
%10489 = getelementptr inbounds double, double* %10488, i64 1
%10490 = load double, double* %10489
%10491 = load double*, double** %8
%10492 = getelementptr inbounds double, double* %10491, i64 1
%10493 = load double, double* %10492
%10494 = fsub double %10490, %10493
%10495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10494, double* %10495
%10496 = load double*, double** %13
%10497 = getelementptr inbounds double, double* %10496, i64 2
%10498 = load double, double* %10497
%10499 = load double*, double** %8
%10500 = getelementptr inbounds double, double* %10499, i64 2
%10501 = load double, double* %10500
%10502 = fsub double %10498, %10501
%10503 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10502, double* %10503
%10504 = load double*, double** %10
%10505 = getelementptr inbounds double, double* %10504, i64 0
%10506 = load double, double* %10505
%10507 = load double*, double** %8
%10508 = getelementptr inbounds double, double* %10507, i64 0
%10509 = load double, double* %10508
%10510 = fsub double %10506, %10509
%10511 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10510, double* %10511
%10512 = load double*, double** %10
%10513 = getelementptr inbounds double, double* %10512, i64 1
%10514 = load double, double* %10513
%10515 = load double*, double** %8
%10516 = getelementptr inbounds double, double* %10515, i64 1
%10517 = load double, double* %10516
%10518 = fsub double %10514, %10517
%10519 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10518, double* %10519
%10520 = load double*, double** %10
%10521 = getelementptr inbounds double, double* %10520, i64 2
%10522 = load double, double* %10521
%10523 = load double*, double** %8
%10524 = getelementptr inbounds double, double* %10523, i64 2
%10525 = load double, double* %10524
%10526 = fsub double %10522, %10525
%10527 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10526, double* %10527
%10528 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10529 = load double, double* %10528
%10530 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10531 = load double, double* %10530
%10532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10533 = load double, double* %10532
%10534 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10535 = load double, double* %10534
%10536 = fmul double %10533, %10535
%10537 = fneg double %10536
%10538 = call double @llvm.fmuladd.f64(double %10529, double %10531, double %10537)
%10539 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10538, double* %10539
%10540 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10541 = load double, double* %10540
%10542 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10543 = load double, double* %10542
%10544 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10545 = load double, double* %10544
%10546 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10547 = load double, double* %10546
%10548 = fmul double %10545, %10547
%10549 = fneg double %10548
%10550 = call double @llvm.fmuladd.f64(double %10541, double %10543, double %10549)
%10551 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10550, double* %10551
%10552 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10553 = load double, double* %10552
%10554 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10555 = load double, double* %10554
%10556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10557 = load double, double* %10556
%10558 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10559 = load double, double* %10558
%10560 = fmul double %10557, %10559
%10561 = fneg double %10560
%10562 = call double @llvm.fmuladd.f64(double %10553, double %10555, double %10561)
%10563 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10562, double* %10563
%10564 = load double*, double** %11
%10565 = getelementptr inbounds double, double* %10564, i64 0
%10566 = load double, double* %10565
%10567 = load double*, double** %8
%10568 = getelementptr inbounds double, double* %10567, i64 0
%10569 = load double, double* %10568
%10570 = fsub double %10566, %10569
%10571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10570, double* %10571
%10572 = load double*, double** %11
%10573 = getelementptr inbounds double, double* %10572, i64 1
%10574 = load double, double* %10573
%10575 = load double*, double** %8
%10576 = getelementptr inbounds double, double* %10575, i64 1
%10577 = load double, double* %10576
%10578 = fsub double %10574, %10577
%10579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10578, double* %10579
%10580 = load double*, double** %11
%10581 = getelementptr inbounds double, double* %10580, i64 2
%10582 = load double, double* %10581
%10583 = load double*, double** %8
%10584 = getelementptr inbounds double, double* %10583, i64 2
%10585 = load double, double* %10584
%10586 = fsub double %10582, %10585
%10587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10586, double* %10587
%10588 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10589 = load double, double* %10588
%10590 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10591 = load double, double* %10590
%10592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10593 = load double, double* %10592
%10594 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10595 = load double, double* %10594
%10596 = fmul double %10593, %10595
%10597 = call double @llvm.fmuladd.f64(double %10589, double %10591, double %10596)
%10598 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10599 = load double, double* %10598
%10600 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10601 = load double, double* %10600
%10602 = call double @llvm.fmuladd.f64(double %10599, double %10601, double %10597)
%10603 = fcmp ogt double %10602, 0.000000e+00
br i1 %10603, label %10604, label %10605
10604: ; preds = %10479
store i32 0, i32* %7
br label %37464
10605: ; preds = %10479
%10606 = load double*, double** %13
%10607 = getelementptr inbounds double, double* %10606, i64 0
%10608 = load double, double* %10607
%10609 = load double*, double** %10
%10610 = getelementptr inbounds double, double* %10609, i64 0
%10611 = load double, double* %10610
%10612 = fsub double %10608, %10611
%10613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10612, double* %10613
%10614 = load double*, double** %13
%10615 = getelementptr inbounds double, double* %10614, i64 1
%10616 = load double, double* %10615
%10617 = load double*, double** %10
%10618 = getelementptr inbounds double, double* %10617, i64 1
%10619 = load double, double* %10618
%10620 = fsub double %10616, %10619
%10621 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10620, double* %10621
%10622 = load double*, double** %13
%10623 = getelementptr inbounds double, double* %10622, i64 2
%10624 = load double, double* %10623
%10625 = load double*, double** %10
%10626 = getelementptr inbounds double, double* %10625, i64 2
%10627 = load double, double* %10626
%10628 = fsub double %10624, %10627
%10629 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10628, double* %10629
%10630 = load double*, double** %9
%10631 = getelementptr inbounds double, double* %10630, i64 0
%10632 = load double, double* %10631
%10633 = load double*, double** %10
%10634 = getelementptr inbounds double, double* %10633, i64 0
%10635 = load double, double* %10634
%10636 = fsub double %10632, %10635
%10637 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10636, double* %10637
%10638 = load double*, double** %9
%10639 = getelementptr inbounds double, double* %10638, i64 1
%10640 = load double, double* %10639
%10641 = load double*, double** %10
%10642 = getelementptr inbounds double, double* %10641, i64 1
%10643 = load double, double* %10642
%10644 = fsub double %10640, %10643
%10645 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10644, double* %10645
%10646 = load double*, double** %9
%10647 = getelementptr inbounds double, double* %10646, i64 2
%10648 = load double, double* %10647
%10649 = load double*, double** %10
%10650 = getelementptr inbounds double, double* %10649, i64 2
%10651 = load double, double* %10650
%10652 = fsub double %10648, %10651
%10653 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10652, double* %10653
%10654 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10655 = load double, double* %10654
%10656 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10657 = load double, double* %10656
%10658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10659 = load double, double* %10658
%10660 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10661 = load double, double* %10660
%10662 = fmul double %10659, %10661
%10663 = fneg double %10662
%10664 = call double @llvm.fmuladd.f64(double %10655, double %10657, double %10663)
%10665 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10664, double* %10665
%10666 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10667 = load double, double* %10666
%10668 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10669 = load double, double* %10668
%10670 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10671 = load double, double* %10670
%10672 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10673 = load double, double* %10672
%10674 = fmul double %10671, %10673
%10675 = fneg double %10674
%10676 = call double @llvm.fmuladd.f64(double %10667, double %10669, double %10675)
%10677 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10676, double* %10677
%10678 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10679 = load double, double* %10678
%10680 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10681 = load double, double* %10680
%10682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10683 = load double, double* %10682
%10684 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10685 = load double, double* %10684
%10686 = fmul double %10683, %10685
%10687 = fneg double %10686
%10688 = call double @llvm.fmuladd.f64(double %10679, double %10681, double %10687)
%10689 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10688, double* %10689
%10690 = load double*, double** %12
%10691 = getelementptr inbounds double, double* %10690, i64 0
%10692 = load double, double* %10691
%10693 = load double*, double** %10
%10694 = getelementptr inbounds double, double* %10693, i64 0
%10695 = load double, double* %10694
%10696 = fsub double %10692, %10695
%10697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10696, double* %10697
%10698 = load double*, double** %12
%10699 = getelementptr inbounds double, double* %10698, i64 1
%10700 = load double, double* %10699
%10701 = load double*, double** %10
%10702 = getelementptr inbounds double, double* %10701, i64 1
%10703 = load double, double* %10702
%10704 = fsub double %10700, %10703
%10705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10704, double* %10705
%10706 = load double*, double** %12
%10707 = getelementptr inbounds double, double* %10706, i64 2
%10708 = load double, double* %10707
%10709 = load double*, double** %10
%10710 = getelementptr inbounds double, double* %10709, i64 2
%10711 = load double, double* %10710
%10712 = fsub double %10708, %10711
%10713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10712, double* %10713
%10714 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10715 = load double, double* %10714
%10716 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10717 = load double, double* %10716
%10718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10719 = load double, double* %10718
%10720 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10721 = load double, double* %10720
%10722 = fmul double %10719, %10721
%10723 = call double @llvm.fmuladd.f64(double %10715, double %10717, double %10722)
%10724 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10725 = load double, double* %10724
%10726 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10727 = load double, double* %10726
%10728 = call double @llvm.fmuladd.f64(double %10725, double %10727, double %10723)
%10729 = fcmp ogt double %10728, 0.000000e+00
br i1 %10729, label %10730, label %10731
10730: ; preds = %10605
store i32 0, i32* %7
br label %37464
10731: ; preds = %10605
store i32 1, i32* %7
br label %37464
10732: ; preds = %10476
%10733 = load double, double* %19
%10734 = fcmp olt double %10733, 0.000000e+00
br i1 %10734, label %10735, label %10988
10735: ; preds = %10732
%10736 = load double*, double** %12
%10737 = getelementptr inbounds double, double* %10736, i64 0
%10738 = load double, double* %10737
%10739 = load double*, double** %8
%10740 = getelementptr inbounds double, double* %10739, i64 0
%10741 = load double, double* %10740
%10742 = fsub double %10738, %10741
%10743 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10742, double* %10743
%10744 = load double*, double** %12
%10745 = getelementptr inbounds double, double* %10744, i64 1
%10746 = load double, double* %10745
%10747 = load double*, double** %8
%10748 = getelementptr inbounds double, double* %10747, i64 1
%10749 = load double, double* %10748
%10750 = fsub double %10746, %10749
%10751 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10750, double* %10751
%10752 = load double*, double** %12
%10753 = getelementptr inbounds double, double* %10752, i64 2
%10754 = load double, double* %10753
%10755 = load double*, double** %8
%10756 = getelementptr inbounds double, double* %10755, i64 2
%10757 = load double, double* %10756
%10758 = fsub double %10754, %10757
%10759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10758, double* %10759
%10760 = load double*, double** %10
%10761 = getelementptr inbounds double, double* %10760, i64 0
%10762 = load double, double* %10761
%10763 = load double*, double** %8
%10764 = getelementptr inbounds double, double* %10763, i64 0
%10765 = load double, double* %10764
%10766 = fsub double %10762, %10765
%10767 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10766, double* %10767
%10768 = load double*, double** %10
%10769 = getelementptr inbounds double, double* %10768, i64 1
%10770 = load double, double* %10769
%10771 = load double*, double** %8
%10772 = getelementptr inbounds double, double* %10771, i64 1
%10773 = load double, double* %10772
%10774 = fsub double %10770, %10773
%10775 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10774, double* %10775
%10776 = load double*, double** %10
%10777 = getelementptr inbounds double, double* %10776, i64 2
%10778 = load double, double* %10777
%10779 = load double*, double** %8
%10780 = getelementptr inbounds double, double* %10779, i64 2
%10781 = load double, double* %10780
%10782 = fsub double %10778, %10781
%10783 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10782, double* %10783
%10784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10785 = load double, double* %10784
%10786 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10787 = load double, double* %10786
%10788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10789 = load double, double* %10788
%10790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10791 = load double, double* %10790
%10792 = fmul double %10789, %10791
%10793 = fneg double %10792
%10794 = call double @llvm.fmuladd.f64(double %10785, double %10787, double %10793)
%10795 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10794, double* %10795
%10796 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10797 = load double, double* %10796
%10798 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10799 = load double, double* %10798
%10800 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10801 = load double, double* %10800
%10802 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10803 = load double, double* %10802
%10804 = fmul double %10801, %10803
%10805 = fneg double %10804
%10806 = call double @llvm.fmuladd.f64(double %10797, double %10799, double %10805)
%10807 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10806, double* %10807
%10808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10809 = load double, double* %10808
%10810 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10811 = load double, double* %10810
%10812 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10813 = load double, double* %10812
%10814 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10815 = load double, double* %10814
%10816 = fmul double %10813, %10815
%10817 = fneg double %10816
%10818 = call double @llvm.fmuladd.f64(double %10809, double %10811, double %10817)
%10819 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10818, double* %10819
%10820 = load double*, double** %13
%10821 = getelementptr inbounds double, double* %10820, i64 0
%10822 = load double, double* %10821
%10823 = load double*, double** %8
%10824 = getelementptr inbounds double, double* %10823, i64 0
%10825 = load double, double* %10824
%10826 = fsub double %10822, %10825
%10827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10826, double* %10827
%10828 = load double*, double** %13
%10829 = getelementptr inbounds double, double* %10828, i64 1
%10830 = load double, double* %10829
%10831 = load double*, double** %8
%10832 = getelementptr inbounds double, double* %10831, i64 1
%10833 = load double, double* %10832
%10834 = fsub double %10830, %10833
%10835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10834, double* %10835
%10836 = load double*, double** %13
%10837 = getelementptr inbounds double, double* %10836, i64 2
%10838 = load double, double* %10837
%10839 = load double*, double** %8
%10840 = getelementptr inbounds double, double* %10839, i64 2
%10841 = load double, double* %10840
%10842 = fsub double %10838, %10841
%10843 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10842, double* %10843
%10844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10845 = load double, double* %10844
%10846 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10847 = load double, double* %10846
%10848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10849 = load double, double* %10848
%10850 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10851 = load double, double* %10850
%10852 = fmul double %10849, %10851
%10853 = call double @llvm.fmuladd.f64(double %10845, double %10847, double %10852)
%10854 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10855 = load double, double* %10854
%10856 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10857 = load double, double* %10856
%10858 = call double @llvm.fmuladd.f64(double %10855, double %10857, double %10853)
%10859 = fcmp ogt double %10858, 0.000000e+00
br i1 %10859, label %10860, label %10861
10860: ; preds = %10735
store i32 0, i32* %7
br label %37464
10861: ; preds = %10735
%10862 = load double*, double** %12
%10863 = getelementptr inbounds double, double* %10862, i64 0
%10864 = load double, double* %10863
%10865 = load double*, double** %10
%10866 = getelementptr inbounds double, double* %10865, i64 0
%10867 = load double, double* %10866
%10868 = fsub double %10864, %10867
%10869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10868, double* %10869
%10870 = load double*, double** %12
%10871 = getelementptr inbounds double, double* %10870, i64 1
%10872 = load double, double* %10871
%10873 = load double*, double** %10
%10874 = getelementptr inbounds double, double* %10873, i64 1
%10875 = load double, double* %10874
%10876 = fsub double %10872, %10875
%10877 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10876, double* %10877
%10878 = load double*, double** %12
%10879 = getelementptr inbounds double, double* %10878, i64 2
%10880 = load double, double* %10879
%10881 = load double*, double** %10
%10882 = getelementptr inbounds double, double* %10881, i64 2
%10883 = load double, double* %10882
%10884 = fsub double %10880, %10883
%10885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10884, double* %10885
%10886 = load double*, double** %9
%10887 = getelementptr inbounds double, double* %10886, i64 0
%10888 = load double, double* %10887
%10889 = load double*, double** %10
%10890 = getelementptr inbounds double, double* %10889, i64 0
%10891 = load double, double* %10890
%10892 = fsub double %10888, %10891
%10893 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %10892, double* %10893
%10894 = load double*, double** %9
%10895 = getelementptr inbounds double, double* %10894, i64 1
%10896 = load double, double* %10895
%10897 = load double*, double** %10
%10898 = getelementptr inbounds double, double* %10897, i64 1
%10899 = load double, double* %10898
%10900 = fsub double %10896, %10899
%10901 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %10900, double* %10901
%10902 = load double*, double** %9
%10903 = getelementptr inbounds double, double* %10902, i64 2
%10904 = load double, double* %10903
%10905 = load double*, double** %10
%10906 = getelementptr inbounds double, double* %10905, i64 2
%10907 = load double, double* %10906
%10908 = fsub double %10904, %10907
%10909 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %10908, double* %10909
%10910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10911 = load double, double* %10910
%10912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10913 = load double, double* %10912
%10914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10915 = load double, double* %10914
%10916 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10917 = load double, double* %10916
%10918 = fmul double %10915, %10917
%10919 = fneg double %10918
%10920 = call double @llvm.fmuladd.f64(double %10911, double %10913, double %10919)
%10921 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %10920, double* %10921
%10922 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10923 = load double, double* %10922
%10924 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10925 = load double, double* %10924
%10926 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10927 = load double, double* %10926
%10928 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%10929 = load double, double* %10928
%10930 = fmul double %10927, %10929
%10931 = fneg double %10930
%10932 = call double @llvm.fmuladd.f64(double %10923, double %10925, double %10931)
%10933 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %10932, double* %10933
%10934 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10935 = load double, double* %10934
%10936 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%10937 = load double, double* %10936
%10938 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10939 = load double, double* %10938
%10940 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%10941 = load double, double* %10940
%10942 = fmul double %10939, %10941
%10943 = fneg double %10942
%10944 = call double @llvm.fmuladd.f64(double %10935, double %10937, double %10943)
%10945 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %10944, double* %10945
%10946 = load double*, double** %11
%10947 = getelementptr inbounds double, double* %10946, i64 0
%10948 = load double, double* %10947
%10949 = load double*, double** %10
%10950 = getelementptr inbounds double, double* %10949, i64 0
%10951 = load double, double* %10950
%10952 = fsub double %10948, %10951
%10953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10952, double* %10953
%10954 = load double*, double** %11
%10955 = getelementptr inbounds double, double* %10954, i64 1
%10956 = load double, double* %10955
%10957 = load double*, double** %10
%10958 = getelementptr inbounds double, double* %10957, i64 1
%10959 = load double, double* %10958
%10960 = fsub double %10956, %10959
%10961 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %10960, double* %10961
%10962 = load double*, double** %11
%10963 = getelementptr inbounds double, double* %10962, i64 2
%10964 = load double, double* %10963
%10965 = load double*, double** %10
%10966 = getelementptr inbounds double, double* %10965, i64 2
%10967 = load double, double* %10966
%10968 = fsub double %10964, %10967
%10969 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %10968, double* %10969
%10970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%10971 = load double, double* %10970
%10972 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%10973 = load double, double* %10972
%10974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%10975 = load double, double* %10974
%10976 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%10977 = load double, double* %10976
%10978 = fmul double %10975, %10977
%10979 = call double @llvm.fmuladd.f64(double %10971, double %10973, double %10978)
%10980 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%10981 = load double, double* %10980
%10982 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%10983 = load double, double* %10982
%10984 = call double @llvm.fmuladd.f64(double %10981, double %10983, double %10979)
%10985 = fcmp ogt double %10984, 0.000000e+00
br i1 %10985, label %10986, label %10987
10986: ; preds = %10861
store i32 0, i32* %7
br label %37464
10987: ; preds = %10861
store i32 1, i32* %7
br label %37464
10988: ; preds = %10732
%10989 = load double*, double** %11
%10990 = getelementptr inbounds double, double* %10989, i64 0
%10991 = load double, double* %10990
%10992 = load double*, double** %9
%10993 = getelementptr inbounds double, double* %10992, i64 0
%10994 = load double, double* %10993
%10995 = fsub double %10991, %10994
%10996 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %10995, double* %10996
%10997 = load double*, double** %11
%10998 = getelementptr inbounds double, double* %10997, i64 1
%10999 = load double, double* %10998
%11000 = load double*, double** %9
%11001 = getelementptr inbounds double, double* %11000, i64 1
%11002 = load double, double* %11001
%11003 = fsub double %10999, %11002
%11004 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11003, double* %11004
%11005 = load double*, double** %11
%11006 = getelementptr inbounds double, double* %11005, i64 2
%11007 = load double, double* %11006
%11008 = load double*, double** %9
%11009 = getelementptr inbounds double, double* %11008, i64 2
%11010 = load double, double* %11009
%11011 = fsub double %11007, %11010
%11012 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11011, double* %11012
%11013 = load double*, double** %10
%11014 = getelementptr inbounds double, double* %11013, i64 0
%11015 = load double, double* %11014
%11016 = load double*, double** %9
%11017 = getelementptr inbounds double, double* %11016, i64 0
%11018 = load double, double* %11017
%11019 = fsub double %11015, %11018
%11020 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11019, double* %11020
%11021 = load double*, double** %10
%11022 = getelementptr inbounds double, double* %11021, i64 1
%11023 = load double, double* %11022
%11024 = load double*, double** %9
%11025 = getelementptr inbounds double, double* %11024, i64 1
%11026 = load double, double* %11025
%11027 = fsub double %11023, %11026
%11028 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11027, double* %11028
%11029 = load double*, double** %10
%11030 = getelementptr inbounds double, double* %11029, i64 2
%11031 = load double, double* %11030
%11032 = load double*, double** %9
%11033 = getelementptr inbounds double, double* %11032, i64 2
%11034 = load double, double* %11033
%11035 = fsub double %11031, %11034
%11036 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11035, double* %11036
%11037 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11038 = load double, double* %11037
%11039 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11040 = load double, double* %11039
%11041 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11042 = load double, double* %11041
%11043 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11044 = load double, double* %11043
%11045 = fmul double %11042, %11044
%11046 = fneg double %11045
%11047 = call double @llvm.fmuladd.f64(double %11038, double %11040, double %11046)
%11048 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11047, double* %11048
%11049 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11050 = load double, double* %11049
%11051 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11052 = load double, double* %11051
%11053 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11054 = load double, double* %11053
%11055 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11056 = load double, double* %11055
%11057 = fmul double %11054, %11056
%11058 = fneg double %11057
%11059 = call double @llvm.fmuladd.f64(double %11050, double %11052, double %11058)
%11060 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11059, double* %11060
%11061 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11062 = load double, double* %11061
%11063 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11064 = load double, double* %11063
%11065 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11066 = load double, double* %11065
%11067 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11068 = load double, double* %11067
%11069 = fmul double %11066, %11068
%11070 = fneg double %11069
%11071 = call double @llvm.fmuladd.f64(double %11062, double %11064, double %11070)
%11072 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11071, double* %11072
%11073 = load double*, double** %12
%11074 = getelementptr inbounds double, double* %11073, i64 0
%11075 = load double, double* %11074
%11076 = load double*, double** %9
%11077 = getelementptr inbounds double, double* %11076, i64 0
%11078 = load double, double* %11077
%11079 = fsub double %11075, %11078
%11080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11079, double* %11080
%11081 = load double*, double** %12
%11082 = getelementptr inbounds double, double* %11081, i64 1
%11083 = load double, double* %11082
%11084 = load double*, double** %9
%11085 = getelementptr inbounds double, double* %11084, i64 1
%11086 = load double, double* %11085
%11087 = fsub double %11083, %11086
%11088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11087, double* %11088
%11089 = load double*, double** %12
%11090 = getelementptr inbounds double, double* %11089, i64 2
%11091 = load double, double* %11090
%11092 = load double*, double** %9
%11093 = getelementptr inbounds double, double* %11092, i64 2
%11094 = load double, double* %11093
%11095 = fsub double %11091, %11094
%11096 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11095, double* %11096
%11097 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11098 = load double, double* %11097
%11099 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11100 = load double, double* %11099
%11101 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11102 = load double, double* %11101
%11103 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11104 = load double, double* %11103
%11105 = fmul double %11102, %11104
%11106 = call double @llvm.fmuladd.f64(double %11098, double %11100, double %11105)
%11107 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11108 = load double, double* %11107
%11109 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11110 = load double, double* %11109
%11111 = call double @llvm.fmuladd.f64(double %11108, double %11110, double %11106)
%11112 = fcmp ogt double %11111, 0.000000e+00
br i1 %11112, label %11113, label %11114
11113: ; preds = %10988
store i32 0, i32* %7
br label %37464
11114: ; preds = %10988
%11115 = load double*, double** %11
%11116 = getelementptr inbounds double, double* %11115, i64 0
%11117 = load double, double* %11116
%11118 = load double*, double** %10
%11119 = getelementptr inbounds double, double* %11118, i64 0
%11120 = load double, double* %11119
%11121 = fsub double %11117, %11120
%11122 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11121, double* %11122
%11123 = load double*, double** %11
%11124 = getelementptr inbounds double, double* %11123, i64 1
%11125 = load double, double* %11124
%11126 = load double*, double** %10
%11127 = getelementptr inbounds double, double* %11126, i64 1
%11128 = load double, double* %11127
%11129 = fsub double %11125, %11128
%11130 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11129, double* %11130
%11131 = load double*, double** %11
%11132 = getelementptr inbounds double, double* %11131, i64 2
%11133 = load double, double* %11132
%11134 = load double*, double** %10
%11135 = getelementptr inbounds double, double* %11134, i64 2
%11136 = load double, double* %11135
%11137 = fsub double %11133, %11136
%11138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11137, double* %11138
%11139 = load double*, double** %8
%11140 = getelementptr inbounds double, double* %11139, i64 0
%11141 = load double, double* %11140
%11142 = load double*, double** %10
%11143 = getelementptr inbounds double, double* %11142, i64 0
%11144 = load double, double* %11143
%11145 = fsub double %11141, %11144
%11146 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11145, double* %11146
%11147 = load double*, double** %8
%11148 = getelementptr inbounds double, double* %11147, i64 1
%11149 = load double, double* %11148
%11150 = load double*, double** %10
%11151 = getelementptr inbounds double, double* %11150, i64 1
%11152 = load double, double* %11151
%11153 = fsub double %11149, %11152
%11154 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11153, double* %11154
%11155 = load double*, double** %8
%11156 = getelementptr inbounds double, double* %11155, i64 2
%11157 = load double, double* %11156
%11158 = load double*, double** %10
%11159 = getelementptr inbounds double, double* %11158, i64 2
%11160 = load double, double* %11159
%11161 = fsub double %11157, %11160
%11162 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11161, double* %11162
%11163 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11164 = load double, double* %11163
%11165 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11166 = load double, double* %11165
%11167 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11168 = load double, double* %11167
%11169 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11170 = load double, double* %11169
%11171 = fmul double %11168, %11170
%11172 = fneg double %11171
%11173 = call double @llvm.fmuladd.f64(double %11164, double %11166, double %11172)
%11174 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11173, double* %11174
%11175 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11176 = load double, double* %11175
%11177 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11178 = load double, double* %11177
%11179 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11180 = load double, double* %11179
%11181 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11182 = load double, double* %11181
%11183 = fmul double %11180, %11182
%11184 = fneg double %11183
%11185 = call double @llvm.fmuladd.f64(double %11176, double %11178, double %11184)
%11186 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11185, double* %11186
%11187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11188 = load double, double* %11187
%11189 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11190 = load double, double* %11189
%11191 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11192 = load double, double* %11191
%11193 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11194 = load double, double* %11193
%11195 = fmul double %11192, %11194
%11196 = fneg double %11195
%11197 = call double @llvm.fmuladd.f64(double %11188, double %11190, double %11196)
%11198 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11197, double* %11198
%11199 = load double*, double** %13
%11200 = getelementptr inbounds double, double* %11199, i64 0
%11201 = load double, double* %11200
%11202 = load double*, double** %10
%11203 = getelementptr inbounds double, double* %11202, i64 0
%11204 = load double, double* %11203
%11205 = fsub double %11201, %11204
%11206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11205, double* %11206
%11207 = load double*, double** %13
%11208 = getelementptr inbounds double, double* %11207, i64 1
%11209 = load double, double* %11208
%11210 = load double*, double** %10
%11211 = getelementptr inbounds double, double* %11210, i64 1
%11212 = load double, double* %11211
%11213 = fsub double %11209, %11212
%11214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11213, double* %11214
%11215 = load double*, double** %13
%11216 = getelementptr inbounds double, double* %11215, i64 2
%11217 = load double, double* %11216
%11218 = load double*, double** %10
%11219 = getelementptr inbounds double, double* %11218, i64 2
%11220 = load double, double* %11219
%11221 = fsub double %11217, %11220
%11222 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11221, double* %11222
%11223 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11224 = load double, double* %11223
%11225 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11226 = load double, double* %11225
%11227 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11228 = load double, double* %11227
%11229 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11230 = load double, double* %11229
%11231 = fmul double %11228, %11230
%11232 = call double @llvm.fmuladd.f64(double %11224, double %11226, double %11231)
%11233 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11234 = load double, double* %11233
%11235 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11236 = load double, double* %11235
%11237 = call double @llvm.fmuladd.f64(double %11234, double %11236, double %11232)
%11238 = fcmp ogt double %11237, 0.000000e+00
br i1 %11238, label %11239, label %11240
11239: ; preds = %11114
store i32 0, i32* %7
br label %37464
11240: ; preds = %11114
store i32 1, i32* %7
br label %37464
11241: ; preds = %10473
%11242 = load double, double* %18
%11243 = fcmp olt double %11242, 0.000000e+00
br i1 %11243, label %11244, label %11753
11244: ; preds = %11241
%11245 = load double, double* %19
%11246 = fcmp oge double %11245, 0.000000e+00
br i1 %11246, label %11247, label %11500
11247: ; preds = %11244
%11248 = load double*, double** %12
%11249 = getelementptr inbounds double, double* %11248, i64 0
%11250 = load double, double* %11249
%11251 = load double*, double** %9
%11252 = getelementptr inbounds double, double* %11251, i64 0
%11253 = load double, double* %11252
%11254 = fsub double %11250, %11253
%11255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11254, double* %11255
%11256 = load double*, double** %12
%11257 = getelementptr inbounds double, double* %11256, i64 1
%11258 = load double, double* %11257
%11259 = load double*, double** %9
%11260 = getelementptr inbounds double, double* %11259, i64 1
%11261 = load double, double* %11260
%11262 = fsub double %11258, %11261
%11263 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11262, double* %11263
%11264 = load double*, double** %12
%11265 = getelementptr inbounds double, double* %11264, i64 2
%11266 = load double, double* %11265
%11267 = load double*, double** %9
%11268 = getelementptr inbounds double, double* %11267, i64 2
%11269 = load double, double* %11268
%11270 = fsub double %11266, %11269
%11271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11270, double* %11271
%11272 = load double*, double** %10
%11273 = getelementptr inbounds double, double* %11272, i64 0
%11274 = load double, double* %11273
%11275 = load double*, double** %9
%11276 = getelementptr inbounds double, double* %11275, i64 0
%11277 = load double, double* %11276
%11278 = fsub double %11274, %11277
%11279 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11278, double* %11279
%11280 = load double*, double** %10
%11281 = getelementptr inbounds double, double* %11280, i64 1
%11282 = load double, double* %11281
%11283 = load double*, double** %9
%11284 = getelementptr inbounds double, double* %11283, i64 1
%11285 = load double, double* %11284
%11286 = fsub double %11282, %11285
%11287 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11286, double* %11287
%11288 = load double*, double** %10
%11289 = getelementptr inbounds double, double* %11288, i64 2
%11290 = load double, double* %11289
%11291 = load double*, double** %9
%11292 = getelementptr inbounds double, double* %11291, i64 2
%11293 = load double, double* %11292
%11294 = fsub double %11290, %11293
%11295 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11294, double* %11295
%11296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11297 = load double, double* %11296
%11298 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11299 = load double, double* %11298
%11300 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11301 = load double, double* %11300
%11302 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11303 = load double, double* %11302
%11304 = fmul double %11301, %11303
%11305 = fneg double %11304
%11306 = call double @llvm.fmuladd.f64(double %11297, double %11299, double %11305)
%11307 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11306, double* %11307
%11308 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11309 = load double, double* %11308
%11310 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11311 = load double, double* %11310
%11312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11313 = load double, double* %11312
%11314 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11315 = load double, double* %11314
%11316 = fmul double %11313, %11315
%11317 = fneg double %11316
%11318 = call double @llvm.fmuladd.f64(double %11309, double %11311, double %11317)
%11319 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11318, double* %11319
%11320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11321 = load double, double* %11320
%11322 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11323 = load double, double* %11322
%11324 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11325 = load double, double* %11324
%11326 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11327 = load double, double* %11326
%11328 = fmul double %11325, %11327
%11329 = fneg double %11328
%11330 = call double @llvm.fmuladd.f64(double %11321, double %11323, double %11329)
%11331 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11330, double* %11331
%11332 = load double*, double** %13
%11333 = getelementptr inbounds double, double* %11332, i64 0
%11334 = load double, double* %11333
%11335 = load double*, double** %9
%11336 = getelementptr inbounds double, double* %11335, i64 0
%11337 = load double, double* %11336
%11338 = fsub double %11334, %11337
%11339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11338, double* %11339
%11340 = load double*, double** %13
%11341 = getelementptr inbounds double, double* %11340, i64 1
%11342 = load double, double* %11341
%11343 = load double*, double** %9
%11344 = getelementptr inbounds double, double* %11343, i64 1
%11345 = load double, double* %11344
%11346 = fsub double %11342, %11345
%11347 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11346, double* %11347
%11348 = load double*, double** %13
%11349 = getelementptr inbounds double, double* %11348, i64 2
%11350 = load double, double* %11349
%11351 = load double*, double** %9
%11352 = getelementptr inbounds double, double* %11351, i64 2
%11353 = load double, double* %11352
%11354 = fsub double %11350, %11353
%11355 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11354, double* %11355
%11356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11357 = load double, double* %11356
%11358 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11359 = load double, double* %11358
%11360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11361 = load double, double* %11360
%11362 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11363 = load double, double* %11362
%11364 = fmul double %11361, %11363
%11365 = call double @llvm.fmuladd.f64(double %11357, double %11359, double %11364)
%11366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11367 = load double, double* %11366
%11368 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11369 = load double, double* %11368
%11370 = call double @llvm.fmuladd.f64(double %11367, double %11369, double %11365)
%11371 = fcmp ogt double %11370, 0.000000e+00
br i1 %11371, label %11372, label %11373
11372: ; preds = %11247
store i32 0, i32* %7
br label %37464
11373: ; preds = %11247
%11374 = load double*, double** %12
%11375 = getelementptr inbounds double, double* %11374, i64 0
%11376 = load double, double* %11375
%11377 = load double*, double** %10
%11378 = getelementptr inbounds double, double* %11377, i64 0
%11379 = load double, double* %11378
%11380 = fsub double %11376, %11379
%11381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11380, double* %11381
%11382 = load double*, double** %12
%11383 = getelementptr inbounds double, double* %11382, i64 1
%11384 = load double, double* %11383
%11385 = load double*, double** %10
%11386 = getelementptr inbounds double, double* %11385, i64 1
%11387 = load double, double* %11386
%11388 = fsub double %11384, %11387
%11389 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11388, double* %11389
%11390 = load double*, double** %12
%11391 = getelementptr inbounds double, double* %11390, i64 2
%11392 = load double, double* %11391
%11393 = load double*, double** %10
%11394 = getelementptr inbounds double, double* %11393, i64 2
%11395 = load double, double* %11394
%11396 = fsub double %11392, %11395
%11397 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11396, double* %11397
%11398 = load double*, double** %8
%11399 = getelementptr inbounds double, double* %11398, i64 0
%11400 = load double, double* %11399
%11401 = load double*, double** %10
%11402 = getelementptr inbounds double, double* %11401, i64 0
%11403 = load double, double* %11402
%11404 = fsub double %11400, %11403
%11405 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11404, double* %11405
%11406 = load double*, double** %8
%11407 = getelementptr inbounds double, double* %11406, i64 1
%11408 = load double, double* %11407
%11409 = load double*, double** %10
%11410 = getelementptr inbounds double, double* %11409, i64 1
%11411 = load double, double* %11410
%11412 = fsub double %11408, %11411
%11413 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11412, double* %11413
%11414 = load double*, double** %8
%11415 = getelementptr inbounds double, double* %11414, i64 2
%11416 = load double, double* %11415
%11417 = load double*, double** %10
%11418 = getelementptr inbounds double, double* %11417, i64 2
%11419 = load double, double* %11418
%11420 = fsub double %11416, %11419
%11421 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11420, double* %11421
%11422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11423 = load double, double* %11422
%11424 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11425 = load double, double* %11424
%11426 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11427 = load double, double* %11426
%11428 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11429 = load double, double* %11428
%11430 = fmul double %11427, %11429
%11431 = fneg double %11430
%11432 = call double @llvm.fmuladd.f64(double %11423, double %11425, double %11431)
%11433 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11432, double* %11433
%11434 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11435 = load double, double* %11434
%11436 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11437 = load double, double* %11436
%11438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11439 = load double, double* %11438
%11440 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11441 = load double, double* %11440
%11442 = fmul double %11439, %11441
%11443 = fneg double %11442
%11444 = call double @llvm.fmuladd.f64(double %11435, double %11437, double %11443)
%11445 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11444, double* %11445
%11446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11447 = load double, double* %11446
%11448 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11449 = load double, double* %11448
%11450 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11451 = load double, double* %11450
%11452 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11453 = load double, double* %11452
%11454 = fmul double %11451, %11453
%11455 = fneg double %11454
%11456 = call double @llvm.fmuladd.f64(double %11447, double %11449, double %11455)
%11457 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11456, double* %11457
%11458 = load double*, double** %11
%11459 = getelementptr inbounds double, double* %11458, i64 0
%11460 = load double, double* %11459
%11461 = load double*, double** %10
%11462 = getelementptr inbounds double, double* %11461, i64 0
%11463 = load double, double* %11462
%11464 = fsub double %11460, %11463
%11465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11464, double* %11465
%11466 = load double*, double** %11
%11467 = getelementptr inbounds double, double* %11466, i64 1
%11468 = load double, double* %11467
%11469 = load double*, double** %10
%11470 = getelementptr inbounds double, double* %11469, i64 1
%11471 = load double, double* %11470
%11472 = fsub double %11468, %11471
%11473 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11472, double* %11473
%11474 = load double*, double** %11
%11475 = getelementptr inbounds double, double* %11474, i64 2
%11476 = load double, double* %11475
%11477 = load double*, double** %10
%11478 = getelementptr inbounds double, double* %11477, i64 2
%11479 = load double, double* %11478
%11480 = fsub double %11476, %11479
%11481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11480, double* %11481
%11482 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11483 = load double, double* %11482
%11484 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11485 = load double, double* %11484
%11486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11487 = load double, double* %11486
%11488 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11489 = load double, double* %11488
%11490 = fmul double %11487, %11489
%11491 = call double @llvm.fmuladd.f64(double %11483, double %11485, double %11490)
%11492 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11493 = load double, double* %11492
%11494 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11495 = load double, double* %11494
%11496 = call double @llvm.fmuladd.f64(double %11493, double %11495, double %11491)
%11497 = fcmp ogt double %11496, 0.000000e+00
br i1 %11497, label %11498, label %11499
11498: ; preds = %11373
store i32 0, i32* %7
br label %37464
11499: ; preds = %11373
store i32 1, i32* %7
br label %37464
11500: ; preds = %11244
%11501 = load double*, double** %11
%11502 = getelementptr inbounds double, double* %11501, i64 0
%11503 = load double, double* %11502
%11504 = load double*, double** %8
%11505 = getelementptr inbounds double, double* %11504, i64 0
%11506 = load double, double* %11505
%11507 = fsub double %11503, %11506
%11508 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11507, double* %11508
%11509 = load double*, double** %11
%11510 = getelementptr inbounds double, double* %11509, i64 1
%11511 = load double, double* %11510
%11512 = load double*, double** %8
%11513 = getelementptr inbounds double, double* %11512, i64 1
%11514 = load double, double* %11513
%11515 = fsub double %11511, %11514
%11516 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11515, double* %11516
%11517 = load double*, double** %11
%11518 = getelementptr inbounds double, double* %11517, i64 2
%11519 = load double, double* %11518
%11520 = load double*, double** %8
%11521 = getelementptr inbounds double, double* %11520, i64 2
%11522 = load double, double* %11521
%11523 = fsub double %11519, %11522
%11524 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11523, double* %11524
%11525 = load double*, double** %10
%11526 = getelementptr inbounds double, double* %11525, i64 0
%11527 = load double, double* %11526
%11528 = load double*, double** %8
%11529 = getelementptr inbounds double, double* %11528, i64 0
%11530 = load double, double* %11529
%11531 = fsub double %11527, %11530
%11532 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11531, double* %11532
%11533 = load double*, double** %10
%11534 = getelementptr inbounds double, double* %11533, i64 1
%11535 = load double, double* %11534
%11536 = load double*, double** %8
%11537 = getelementptr inbounds double, double* %11536, i64 1
%11538 = load double, double* %11537
%11539 = fsub double %11535, %11538
%11540 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11539, double* %11540
%11541 = load double*, double** %10
%11542 = getelementptr inbounds double, double* %11541, i64 2
%11543 = load double, double* %11542
%11544 = load double*, double** %8
%11545 = getelementptr inbounds double, double* %11544, i64 2
%11546 = load double, double* %11545
%11547 = fsub double %11543, %11546
%11548 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11547, double* %11548
%11549 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11550 = load double, double* %11549
%11551 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11552 = load double, double* %11551
%11553 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11554 = load double, double* %11553
%11555 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11556 = load double, double* %11555
%11557 = fmul double %11554, %11556
%11558 = fneg double %11557
%11559 = call double @llvm.fmuladd.f64(double %11550, double %11552, double %11558)
%11560 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11559, double* %11560
%11561 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11562 = load double, double* %11561
%11563 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11564 = load double, double* %11563
%11565 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11566 = load double, double* %11565
%11567 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11568 = load double, double* %11567
%11569 = fmul double %11566, %11568
%11570 = fneg double %11569
%11571 = call double @llvm.fmuladd.f64(double %11562, double %11564, double %11570)
%11572 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11571, double* %11572
%11573 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11574 = load double, double* %11573
%11575 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11576 = load double, double* %11575
%11577 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11578 = load double, double* %11577
%11579 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11580 = load double, double* %11579
%11581 = fmul double %11578, %11580
%11582 = fneg double %11581
%11583 = call double @llvm.fmuladd.f64(double %11574, double %11576, double %11582)
%11584 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11583, double* %11584
%11585 = load double*, double** %12
%11586 = getelementptr inbounds double, double* %11585, i64 0
%11587 = load double, double* %11586
%11588 = load double*, double** %8
%11589 = getelementptr inbounds double, double* %11588, i64 0
%11590 = load double, double* %11589
%11591 = fsub double %11587, %11590
%11592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11591, double* %11592
%11593 = load double*, double** %12
%11594 = getelementptr inbounds double, double* %11593, i64 1
%11595 = load double, double* %11594
%11596 = load double*, double** %8
%11597 = getelementptr inbounds double, double* %11596, i64 1
%11598 = load double, double* %11597
%11599 = fsub double %11595, %11598
%11600 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11599, double* %11600
%11601 = load double*, double** %12
%11602 = getelementptr inbounds double, double* %11601, i64 2
%11603 = load double, double* %11602
%11604 = load double*, double** %8
%11605 = getelementptr inbounds double, double* %11604, i64 2
%11606 = load double, double* %11605
%11607 = fsub double %11603, %11606
%11608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11607, double* %11608
%11609 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11610 = load double, double* %11609
%11611 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11612 = load double, double* %11611
%11613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11614 = load double, double* %11613
%11615 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11616 = load double, double* %11615
%11617 = fmul double %11614, %11616
%11618 = call double @llvm.fmuladd.f64(double %11610, double %11612, double %11617)
%11619 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11620 = load double, double* %11619
%11621 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11622 = load double, double* %11621
%11623 = call double @llvm.fmuladd.f64(double %11620, double %11622, double %11618)
%11624 = fcmp ogt double %11623, 0.000000e+00
br i1 %11624, label %11625, label %11626
11625: ; preds = %11500
store i32 0, i32* %7
br label %37464
11626: ; preds = %11500
%11627 = load double*, double** %11
%11628 = getelementptr inbounds double, double* %11627, i64 0
%11629 = load double, double* %11628
%11630 = load double*, double** %10
%11631 = getelementptr inbounds double, double* %11630, i64 0
%11632 = load double, double* %11631
%11633 = fsub double %11629, %11632
%11634 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11633, double* %11634
%11635 = load double*, double** %11
%11636 = getelementptr inbounds double, double* %11635, i64 1
%11637 = load double, double* %11636
%11638 = load double*, double** %10
%11639 = getelementptr inbounds double, double* %11638, i64 1
%11640 = load double, double* %11639
%11641 = fsub double %11637, %11640
%11642 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11641, double* %11642
%11643 = load double*, double** %11
%11644 = getelementptr inbounds double, double* %11643, i64 2
%11645 = load double, double* %11644
%11646 = load double*, double** %10
%11647 = getelementptr inbounds double, double* %11646, i64 2
%11648 = load double, double* %11647
%11649 = fsub double %11645, %11648
%11650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11649, double* %11650
%11651 = load double*, double** %9
%11652 = getelementptr inbounds double, double* %11651, i64 0
%11653 = load double, double* %11652
%11654 = load double*, double** %10
%11655 = getelementptr inbounds double, double* %11654, i64 0
%11656 = load double, double* %11655
%11657 = fsub double %11653, %11656
%11658 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11657, double* %11658
%11659 = load double*, double** %9
%11660 = getelementptr inbounds double, double* %11659, i64 1
%11661 = load double, double* %11660
%11662 = load double*, double** %10
%11663 = getelementptr inbounds double, double* %11662, i64 1
%11664 = load double, double* %11663
%11665 = fsub double %11661, %11664
%11666 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11665, double* %11666
%11667 = load double*, double** %9
%11668 = getelementptr inbounds double, double* %11667, i64 2
%11669 = load double, double* %11668
%11670 = load double*, double** %10
%11671 = getelementptr inbounds double, double* %11670, i64 2
%11672 = load double, double* %11671
%11673 = fsub double %11669, %11672
%11674 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11673, double* %11674
%11675 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11676 = load double, double* %11675
%11677 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11678 = load double, double* %11677
%11679 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11680 = load double, double* %11679
%11681 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11682 = load double, double* %11681
%11683 = fmul double %11680, %11682
%11684 = fneg double %11683
%11685 = call double @llvm.fmuladd.f64(double %11676, double %11678, double %11684)
%11686 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11685, double* %11686
%11687 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11688 = load double, double* %11687
%11689 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11690 = load double, double* %11689
%11691 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11692 = load double, double* %11691
%11693 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11694 = load double, double* %11693
%11695 = fmul double %11692, %11694
%11696 = fneg double %11695
%11697 = call double @llvm.fmuladd.f64(double %11688, double %11690, double %11696)
%11698 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11697, double* %11698
%11699 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11700 = load double, double* %11699
%11701 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11702 = load double, double* %11701
%11703 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11704 = load double, double* %11703
%11705 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11706 = load double, double* %11705
%11707 = fmul double %11704, %11706
%11708 = fneg double %11707
%11709 = call double @llvm.fmuladd.f64(double %11700, double %11702, double %11708)
%11710 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11709, double* %11710
%11711 = load double*, double** %13
%11712 = getelementptr inbounds double, double* %11711, i64 0
%11713 = load double, double* %11712
%11714 = load double*, double** %10
%11715 = getelementptr inbounds double, double* %11714, i64 0
%11716 = load double, double* %11715
%11717 = fsub double %11713, %11716
%11718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11717, double* %11718
%11719 = load double*, double** %13
%11720 = getelementptr inbounds double, double* %11719, i64 1
%11721 = load double, double* %11720
%11722 = load double*, double** %10
%11723 = getelementptr inbounds double, double* %11722, i64 1
%11724 = load double, double* %11723
%11725 = fsub double %11721, %11724
%11726 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11725, double* %11726
%11727 = load double*, double** %13
%11728 = getelementptr inbounds double, double* %11727, i64 2
%11729 = load double, double* %11728
%11730 = load double*, double** %10
%11731 = getelementptr inbounds double, double* %11730, i64 2
%11732 = load double, double* %11731
%11733 = fsub double %11729, %11732
%11734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11733, double* %11734
%11735 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11736 = load double, double* %11735
%11737 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11738 = load double, double* %11737
%11739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11740 = load double, double* %11739
%11741 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11742 = load double, double* %11741
%11743 = fmul double %11740, %11742
%11744 = call double @llvm.fmuladd.f64(double %11736, double %11738, double %11743)
%11745 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11746 = load double, double* %11745
%11747 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11748 = load double, double* %11747
%11749 = call double @llvm.fmuladd.f64(double %11746, double %11748, double %11744)
%11750 = fcmp ogt double %11749, 0.000000e+00
br i1 %11750, label %11751, label %11752
11751: ; preds = %11626
store i32 0, i32* %7
br label %37464
11752: ; preds = %11626
store i32 1, i32* %7
br label %37464
11753: ; preds = %11241
%11754 = load double, double* %18
%11755 = fcmp ogt double %11754, 0.000000e+00
br i1 %11755, label %11756, label %12265
11756: ; preds = %11753
%11757 = load double, double* %19
%11758 = fcmp ogt double %11757, 0.000000e+00
br i1 %11758, label %11759, label %12012
11759: ; preds = %11756
%11760 = load double*, double** %11
%11761 = getelementptr inbounds double, double* %11760, i64 0
%11762 = load double, double* %11761
%11763 = load double*, double** %9
%11764 = getelementptr inbounds double, double* %11763, i64 0
%11765 = load double, double* %11764
%11766 = fsub double %11762, %11765
%11767 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11766, double* %11767
%11768 = load double*, double** %11
%11769 = getelementptr inbounds double, double* %11768, i64 1
%11770 = load double, double* %11769
%11771 = load double*, double** %9
%11772 = getelementptr inbounds double, double* %11771, i64 1
%11773 = load double, double* %11772
%11774 = fsub double %11770, %11773
%11775 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11774, double* %11775
%11776 = load double*, double** %11
%11777 = getelementptr inbounds double, double* %11776, i64 2
%11778 = load double, double* %11777
%11779 = load double*, double** %9
%11780 = getelementptr inbounds double, double* %11779, i64 2
%11781 = load double, double* %11780
%11782 = fsub double %11778, %11781
%11783 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11782, double* %11783
%11784 = load double*, double** %10
%11785 = getelementptr inbounds double, double* %11784, i64 0
%11786 = load double, double* %11785
%11787 = load double*, double** %9
%11788 = getelementptr inbounds double, double* %11787, i64 0
%11789 = load double, double* %11788
%11790 = fsub double %11786, %11789
%11791 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11790, double* %11791
%11792 = load double*, double** %10
%11793 = getelementptr inbounds double, double* %11792, i64 1
%11794 = load double, double* %11793
%11795 = load double*, double** %9
%11796 = getelementptr inbounds double, double* %11795, i64 1
%11797 = load double, double* %11796
%11798 = fsub double %11794, %11797
%11799 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11798, double* %11799
%11800 = load double*, double** %10
%11801 = getelementptr inbounds double, double* %11800, i64 2
%11802 = load double, double* %11801
%11803 = load double*, double** %9
%11804 = getelementptr inbounds double, double* %11803, i64 2
%11805 = load double, double* %11804
%11806 = fsub double %11802, %11805
%11807 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11806, double* %11807
%11808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11809 = load double, double* %11808
%11810 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11811 = load double, double* %11810
%11812 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11813 = load double, double* %11812
%11814 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11815 = load double, double* %11814
%11816 = fmul double %11813, %11815
%11817 = fneg double %11816
%11818 = call double @llvm.fmuladd.f64(double %11809, double %11811, double %11817)
%11819 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11818, double* %11819
%11820 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11821 = load double, double* %11820
%11822 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11823 = load double, double* %11822
%11824 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11825 = load double, double* %11824
%11826 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11827 = load double, double* %11826
%11828 = fmul double %11825, %11827
%11829 = fneg double %11828
%11830 = call double @llvm.fmuladd.f64(double %11821, double %11823, double %11829)
%11831 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11830, double* %11831
%11832 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11833 = load double, double* %11832
%11834 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11835 = load double, double* %11834
%11836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11837 = load double, double* %11836
%11838 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11839 = load double, double* %11838
%11840 = fmul double %11837, %11839
%11841 = fneg double %11840
%11842 = call double @llvm.fmuladd.f64(double %11833, double %11835, double %11841)
%11843 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11842, double* %11843
%11844 = load double*, double** %12
%11845 = getelementptr inbounds double, double* %11844, i64 0
%11846 = load double, double* %11845
%11847 = load double*, double** %9
%11848 = getelementptr inbounds double, double* %11847, i64 0
%11849 = load double, double* %11848
%11850 = fsub double %11846, %11849
%11851 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11850, double* %11851
%11852 = load double*, double** %12
%11853 = getelementptr inbounds double, double* %11852, i64 1
%11854 = load double, double* %11853
%11855 = load double*, double** %9
%11856 = getelementptr inbounds double, double* %11855, i64 1
%11857 = load double, double* %11856
%11858 = fsub double %11854, %11857
%11859 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11858, double* %11859
%11860 = load double*, double** %12
%11861 = getelementptr inbounds double, double* %11860, i64 2
%11862 = load double, double* %11861
%11863 = load double*, double** %9
%11864 = getelementptr inbounds double, double* %11863, i64 2
%11865 = load double, double* %11864
%11866 = fsub double %11862, %11865
%11867 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11866, double* %11867
%11868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11869 = load double, double* %11868
%11870 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11871 = load double, double* %11870
%11872 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11873 = load double, double* %11872
%11874 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%11875 = load double, double* %11874
%11876 = fmul double %11873, %11875
%11877 = call double @llvm.fmuladd.f64(double %11869, double %11871, double %11876)
%11878 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11879 = load double, double* %11878
%11880 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%11881 = load double, double* %11880
%11882 = call double @llvm.fmuladd.f64(double %11879, double %11881, double %11877)
%11883 = fcmp ogt double %11882, 0.000000e+00
br i1 %11883, label %11884, label %11885
11884: ; preds = %11759
store i32 0, i32* %7
br label %37464
11885: ; preds = %11759
%11886 = load double*, double** %11
%11887 = getelementptr inbounds double, double* %11886, i64 0
%11888 = load double, double* %11887
%11889 = load double*, double** %10
%11890 = getelementptr inbounds double, double* %11889, i64 0
%11891 = load double, double* %11890
%11892 = fsub double %11888, %11891
%11893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11892, double* %11893
%11894 = load double*, double** %11
%11895 = getelementptr inbounds double, double* %11894, i64 1
%11896 = load double, double* %11895
%11897 = load double*, double** %10
%11898 = getelementptr inbounds double, double* %11897, i64 1
%11899 = load double, double* %11898
%11900 = fsub double %11896, %11899
%11901 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11900, double* %11901
%11902 = load double*, double** %11
%11903 = getelementptr inbounds double, double* %11902, i64 2
%11904 = load double, double* %11903
%11905 = load double*, double** %10
%11906 = getelementptr inbounds double, double* %11905, i64 2
%11907 = load double, double* %11906
%11908 = fsub double %11904, %11907
%11909 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11908, double* %11909
%11910 = load double*, double** %8
%11911 = getelementptr inbounds double, double* %11910, i64 0
%11912 = load double, double* %11911
%11913 = load double*, double** %10
%11914 = getelementptr inbounds double, double* %11913, i64 0
%11915 = load double, double* %11914
%11916 = fsub double %11912, %11915
%11917 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %11916, double* %11917
%11918 = load double*, double** %8
%11919 = getelementptr inbounds double, double* %11918, i64 1
%11920 = load double, double* %11919
%11921 = load double*, double** %10
%11922 = getelementptr inbounds double, double* %11921, i64 1
%11923 = load double, double* %11922
%11924 = fsub double %11920, %11923
%11925 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %11924, double* %11925
%11926 = load double*, double** %8
%11927 = getelementptr inbounds double, double* %11926, i64 2
%11928 = load double, double* %11927
%11929 = load double*, double** %10
%11930 = getelementptr inbounds double, double* %11929, i64 2
%11931 = load double, double* %11930
%11932 = fsub double %11928, %11931
%11933 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %11932, double* %11933
%11934 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11935 = load double, double* %11934
%11936 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11937 = load double, double* %11936
%11938 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11939 = load double, double* %11938
%11940 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11941 = load double, double* %11940
%11942 = fmul double %11939, %11941
%11943 = fneg double %11942
%11944 = call double @llvm.fmuladd.f64(double %11935, double %11937, double %11943)
%11945 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %11944, double* %11945
%11946 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%11947 = load double, double* %11946
%11948 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11949 = load double, double* %11948
%11950 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11951 = load double, double* %11950
%11952 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%11953 = load double, double* %11952
%11954 = fmul double %11951, %11953
%11955 = fneg double %11954
%11956 = call double @llvm.fmuladd.f64(double %11947, double %11949, double %11955)
%11957 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %11956, double* %11957
%11958 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11959 = load double, double* %11958
%11960 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%11961 = load double, double* %11960
%11962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11963 = load double, double* %11962
%11964 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%11965 = load double, double* %11964
%11966 = fmul double %11963, %11965
%11967 = fneg double %11966
%11968 = call double @llvm.fmuladd.f64(double %11959, double %11961, double %11967)
%11969 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %11968, double* %11969
%11970 = load double*, double** %13
%11971 = getelementptr inbounds double, double* %11970, i64 0
%11972 = load double, double* %11971
%11973 = load double*, double** %10
%11974 = getelementptr inbounds double, double* %11973, i64 0
%11975 = load double, double* %11974
%11976 = fsub double %11972, %11975
%11977 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %11976, double* %11977
%11978 = load double*, double** %13
%11979 = getelementptr inbounds double, double* %11978, i64 1
%11980 = load double, double* %11979
%11981 = load double*, double** %10
%11982 = getelementptr inbounds double, double* %11981, i64 1
%11983 = load double, double* %11982
%11984 = fsub double %11980, %11983
%11985 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %11984, double* %11985
%11986 = load double*, double** %13
%11987 = getelementptr inbounds double, double* %11986, i64 2
%11988 = load double, double* %11987
%11989 = load double*, double** %10
%11990 = getelementptr inbounds double, double* %11989, i64 2
%11991 = load double, double* %11990
%11992 = fsub double %11988, %11991
%11993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %11992, double* %11993
%11994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%11995 = load double, double* %11994
%11996 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%11997 = load double, double* %11996
%11998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%11999 = load double, double* %11998
%12000 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12001 = load double, double* %12000
%12002 = fmul double %11999, %12001
%12003 = call double @llvm.fmuladd.f64(double %11995, double %11997, double %12002)
%12004 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12005 = load double, double* %12004
%12006 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12007 = load double, double* %12006
%12008 = call double @llvm.fmuladd.f64(double %12005, double %12007, double %12003)
%12009 = fcmp ogt double %12008, 0.000000e+00
br i1 %12009, label %12010, label %12011
12010: ; preds = %11885
store i32 0, i32* %7
br label %37464
12011: ; preds = %11885
store i32 1, i32* %7
br label %37464
12012: ; preds = %11756
%12013 = load double*, double** %12
%12014 = getelementptr inbounds double, double* %12013, i64 0
%12015 = load double, double* %12014
%12016 = load double*, double** %8
%12017 = getelementptr inbounds double, double* %12016, i64 0
%12018 = load double, double* %12017
%12019 = fsub double %12015, %12018
%12020 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12019, double* %12020
%12021 = load double*, double** %12
%12022 = getelementptr inbounds double, double* %12021, i64 1
%12023 = load double, double* %12022
%12024 = load double*, double** %8
%12025 = getelementptr inbounds double, double* %12024, i64 1
%12026 = load double, double* %12025
%12027 = fsub double %12023, %12026
%12028 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12027, double* %12028
%12029 = load double*, double** %12
%12030 = getelementptr inbounds double, double* %12029, i64 2
%12031 = load double, double* %12030
%12032 = load double*, double** %8
%12033 = getelementptr inbounds double, double* %12032, i64 2
%12034 = load double, double* %12033
%12035 = fsub double %12031, %12034
%12036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12035, double* %12036
%12037 = load double*, double** %10
%12038 = getelementptr inbounds double, double* %12037, i64 0
%12039 = load double, double* %12038
%12040 = load double*, double** %8
%12041 = getelementptr inbounds double, double* %12040, i64 0
%12042 = load double, double* %12041
%12043 = fsub double %12039, %12042
%12044 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12043, double* %12044
%12045 = load double*, double** %10
%12046 = getelementptr inbounds double, double* %12045, i64 1
%12047 = load double, double* %12046
%12048 = load double*, double** %8
%12049 = getelementptr inbounds double, double* %12048, i64 1
%12050 = load double, double* %12049
%12051 = fsub double %12047, %12050
%12052 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12051, double* %12052
%12053 = load double*, double** %10
%12054 = getelementptr inbounds double, double* %12053, i64 2
%12055 = load double, double* %12054
%12056 = load double*, double** %8
%12057 = getelementptr inbounds double, double* %12056, i64 2
%12058 = load double, double* %12057
%12059 = fsub double %12055, %12058
%12060 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12059, double* %12060
%12061 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12062 = load double, double* %12061
%12063 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12064 = load double, double* %12063
%12065 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12066 = load double, double* %12065
%12067 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12068 = load double, double* %12067
%12069 = fmul double %12066, %12068
%12070 = fneg double %12069
%12071 = call double @llvm.fmuladd.f64(double %12062, double %12064, double %12070)
%12072 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12071, double* %12072
%12073 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12074 = load double, double* %12073
%12075 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12076 = load double, double* %12075
%12077 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12078 = load double, double* %12077
%12079 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12080 = load double, double* %12079
%12081 = fmul double %12078, %12080
%12082 = fneg double %12081
%12083 = call double @llvm.fmuladd.f64(double %12074, double %12076, double %12082)
%12084 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12083, double* %12084
%12085 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12086 = load double, double* %12085
%12087 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12088 = load double, double* %12087
%12089 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12090 = load double, double* %12089
%12091 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12092 = load double, double* %12091
%12093 = fmul double %12090, %12092
%12094 = fneg double %12093
%12095 = call double @llvm.fmuladd.f64(double %12086, double %12088, double %12094)
%12096 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12095, double* %12096
%12097 = load double*, double** %13
%12098 = getelementptr inbounds double, double* %12097, i64 0
%12099 = load double, double* %12098
%12100 = load double*, double** %8
%12101 = getelementptr inbounds double, double* %12100, i64 0
%12102 = load double, double* %12101
%12103 = fsub double %12099, %12102
%12104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12103, double* %12104
%12105 = load double*, double** %13
%12106 = getelementptr inbounds double, double* %12105, i64 1
%12107 = load double, double* %12106
%12108 = load double*, double** %8
%12109 = getelementptr inbounds double, double* %12108, i64 1
%12110 = load double, double* %12109
%12111 = fsub double %12107, %12110
%12112 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12111, double* %12112
%12113 = load double*, double** %13
%12114 = getelementptr inbounds double, double* %12113, i64 2
%12115 = load double, double* %12114
%12116 = load double*, double** %8
%12117 = getelementptr inbounds double, double* %12116, i64 2
%12118 = load double, double* %12117
%12119 = fsub double %12115, %12118
%12120 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12119, double* %12120
%12121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12122 = load double, double* %12121
%12123 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12124 = load double, double* %12123
%12125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12126 = load double, double* %12125
%12127 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12128 = load double, double* %12127
%12129 = fmul double %12126, %12128
%12130 = call double @llvm.fmuladd.f64(double %12122, double %12124, double %12129)
%12131 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12132 = load double, double* %12131
%12133 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12134 = load double, double* %12133
%12135 = call double @llvm.fmuladd.f64(double %12132, double %12134, double %12130)
%12136 = fcmp ogt double %12135, 0.000000e+00
br i1 %12136, label %12137, label %12138
12137: ; preds = %12012
store i32 0, i32* %7
br label %37464
12138: ; preds = %12012
%12139 = load double*, double** %12
%12140 = getelementptr inbounds double, double* %12139, i64 0
%12141 = load double, double* %12140
%12142 = load double*, double** %10
%12143 = getelementptr inbounds double, double* %12142, i64 0
%12144 = load double, double* %12143
%12145 = fsub double %12141, %12144
%12146 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12145, double* %12146
%12147 = load double*, double** %12
%12148 = getelementptr inbounds double, double* %12147, i64 1
%12149 = load double, double* %12148
%12150 = load double*, double** %10
%12151 = getelementptr inbounds double, double* %12150, i64 1
%12152 = load double, double* %12151
%12153 = fsub double %12149, %12152
%12154 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12153, double* %12154
%12155 = load double*, double** %12
%12156 = getelementptr inbounds double, double* %12155, i64 2
%12157 = load double, double* %12156
%12158 = load double*, double** %10
%12159 = getelementptr inbounds double, double* %12158, i64 2
%12160 = load double, double* %12159
%12161 = fsub double %12157, %12160
%12162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12161, double* %12162
%12163 = load double*, double** %9
%12164 = getelementptr inbounds double, double* %12163, i64 0
%12165 = load double, double* %12164
%12166 = load double*, double** %10
%12167 = getelementptr inbounds double, double* %12166, i64 0
%12168 = load double, double* %12167
%12169 = fsub double %12165, %12168
%12170 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12169, double* %12170
%12171 = load double*, double** %9
%12172 = getelementptr inbounds double, double* %12171, i64 1
%12173 = load double, double* %12172
%12174 = load double*, double** %10
%12175 = getelementptr inbounds double, double* %12174, i64 1
%12176 = load double, double* %12175
%12177 = fsub double %12173, %12176
%12178 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12177, double* %12178
%12179 = load double*, double** %9
%12180 = getelementptr inbounds double, double* %12179, i64 2
%12181 = load double, double* %12180
%12182 = load double*, double** %10
%12183 = getelementptr inbounds double, double* %12182, i64 2
%12184 = load double, double* %12183
%12185 = fsub double %12181, %12184
%12186 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12185, double* %12186
%12187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12188 = load double, double* %12187
%12189 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12190 = load double, double* %12189
%12191 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12192 = load double, double* %12191
%12193 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12194 = load double, double* %12193
%12195 = fmul double %12192, %12194
%12196 = fneg double %12195
%12197 = call double @llvm.fmuladd.f64(double %12188, double %12190, double %12196)
%12198 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12197, double* %12198
%12199 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12200 = load double, double* %12199
%12201 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12202 = load double, double* %12201
%12203 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12204 = load double, double* %12203
%12205 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12206 = load double, double* %12205
%12207 = fmul double %12204, %12206
%12208 = fneg double %12207
%12209 = call double @llvm.fmuladd.f64(double %12200, double %12202, double %12208)
%12210 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12209, double* %12210
%12211 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12212 = load double, double* %12211
%12213 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12214 = load double, double* %12213
%12215 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12216 = load double, double* %12215
%12217 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12218 = load double, double* %12217
%12219 = fmul double %12216, %12218
%12220 = fneg double %12219
%12221 = call double @llvm.fmuladd.f64(double %12212, double %12214, double %12220)
%12222 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12221, double* %12222
%12223 = load double*, double** %11
%12224 = getelementptr inbounds double, double* %12223, i64 0
%12225 = load double, double* %12224
%12226 = load double*, double** %10
%12227 = getelementptr inbounds double, double* %12226, i64 0
%12228 = load double, double* %12227
%12229 = fsub double %12225, %12228
%12230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12229, double* %12230
%12231 = load double*, double** %11
%12232 = getelementptr inbounds double, double* %12231, i64 1
%12233 = load double, double* %12232
%12234 = load double*, double** %10
%12235 = getelementptr inbounds double, double* %12234, i64 1
%12236 = load double, double* %12235
%12237 = fsub double %12233, %12236
%12238 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12237, double* %12238
%12239 = load double*, double** %11
%12240 = getelementptr inbounds double, double* %12239, i64 2
%12241 = load double, double* %12240
%12242 = load double*, double** %10
%12243 = getelementptr inbounds double, double* %12242, i64 2
%12244 = load double, double* %12243
%12245 = fsub double %12241, %12244
%12246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12245, double* %12246
%12247 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12248 = load double, double* %12247
%12249 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12250 = load double, double* %12249
%12251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12252 = load double, double* %12251
%12253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12254 = load double, double* %12253
%12255 = fmul double %12252, %12254
%12256 = call double @llvm.fmuladd.f64(double %12248, double %12250, double %12255)
%12257 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12258 = load double, double* %12257
%12259 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12260 = load double, double* %12259
%12261 = call double @llvm.fmuladd.f64(double %12258, double %12260, double %12256)
%12262 = fcmp ogt double %12261, 0.000000e+00
br i1 %12262, label %12263, label %12264
12263: ; preds = %12138
store i32 0, i32* %7
br label %37464
12264: ; preds = %12138
store i32 1, i32* %7
br label %37464
12265: ; preds = %11753
%12266 = load double, double* %19
%12267 = fcmp ogt double %12266, 0.000000e+00
br i1 %12267, label %12268, label %12521
12268: ; preds = %12265
%12269 = load double*, double** %13
%12270 = getelementptr inbounds double, double* %12269, i64 0
%12271 = load double, double* %12270
%12272 = load double*, double** %8
%12273 = getelementptr inbounds double, double* %12272, i64 0
%12274 = load double, double* %12273
%12275 = fsub double %12271, %12274
%12276 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12275, double* %12276
%12277 = load double*, double** %13
%12278 = getelementptr inbounds double, double* %12277, i64 1
%12279 = load double, double* %12278
%12280 = load double*, double** %8
%12281 = getelementptr inbounds double, double* %12280, i64 1
%12282 = load double, double* %12281
%12283 = fsub double %12279, %12282
%12284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12283, double* %12284
%12285 = load double*, double** %13
%12286 = getelementptr inbounds double, double* %12285, i64 2
%12287 = load double, double* %12286
%12288 = load double*, double** %8
%12289 = getelementptr inbounds double, double* %12288, i64 2
%12290 = load double, double* %12289
%12291 = fsub double %12287, %12290
%12292 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12291, double* %12292
%12293 = load double*, double** %10
%12294 = getelementptr inbounds double, double* %12293, i64 0
%12295 = load double, double* %12294
%12296 = load double*, double** %8
%12297 = getelementptr inbounds double, double* %12296, i64 0
%12298 = load double, double* %12297
%12299 = fsub double %12295, %12298
%12300 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12299, double* %12300
%12301 = load double*, double** %10
%12302 = getelementptr inbounds double, double* %12301, i64 1
%12303 = load double, double* %12302
%12304 = load double*, double** %8
%12305 = getelementptr inbounds double, double* %12304, i64 1
%12306 = load double, double* %12305
%12307 = fsub double %12303, %12306
%12308 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12307, double* %12308
%12309 = load double*, double** %10
%12310 = getelementptr inbounds double, double* %12309, i64 2
%12311 = load double, double* %12310
%12312 = load double*, double** %8
%12313 = getelementptr inbounds double, double* %12312, i64 2
%12314 = load double, double* %12313
%12315 = fsub double %12311, %12314
%12316 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12315, double* %12316
%12317 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12318 = load double, double* %12317
%12319 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12320 = load double, double* %12319
%12321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12322 = load double, double* %12321
%12323 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12324 = load double, double* %12323
%12325 = fmul double %12322, %12324
%12326 = fneg double %12325
%12327 = call double @llvm.fmuladd.f64(double %12318, double %12320, double %12326)
%12328 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12327, double* %12328
%12329 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12330 = load double, double* %12329
%12331 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12332 = load double, double* %12331
%12333 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12334 = load double, double* %12333
%12335 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12336 = load double, double* %12335
%12337 = fmul double %12334, %12336
%12338 = fneg double %12337
%12339 = call double @llvm.fmuladd.f64(double %12330, double %12332, double %12338)
%12340 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12339, double* %12340
%12341 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12342 = load double, double* %12341
%12343 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12344 = load double, double* %12343
%12345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12346 = load double, double* %12345
%12347 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12348 = load double, double* %12347
%12349 = fmul double %12346, %12348
%12350 = fneg double %12349
%12351 = call double @llvm.fmuladd.f64(double %12342, double %12344, double %12350)
%12352 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12351, double* %12352
%12353 = load double*, double** %11
%12354 = getelementptr inbounds double, double* %12353, i64 0
%12355 = load double, double* %12354
%12356 = load double*, double** %8
%12357 = getelementptr inbounds double, double* %12356, i64 0
%12358 = load double, double* %12357
%12359 = fsub double %12355, %12358
%12360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12359, double* %12360
%12361 = load double*, double** %11
%12362 = getelementptr inbounds double, double* %12361, i64 1
%12363 = load double, double* %12362
%12364 = load double*, double** %8
%12365 = getelementptr inbounds double, double* %12364, i64 1
%12366 = load double, double* %12365
%12367 = fsub double %12363, %12366
%12368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12367, double* %12368
%12369 = load double*, double** %11
%12370 = getelementptr inbounds double, double* %12369, i64 2
%12371 = load double, double* %12370
%12372 = load double*, double** %8
%12373 = getelementptr inbounds double, double* %12372, i64 2
%12374 = load double, double* %12373
%12375 = fsub double %12371, %12374
%12376 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12375, double* %12376
%12377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12378 = load double, double* %12377
%12379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12380 = load double, double* %12379
%12381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12382 = load double, double* %12381
%12383 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12384 = load double, double* %12383
%12385 = fmul double %12382, %12384
%12386 = call double @llvm.fmuladd.f64(double %12378, double %12380, double %12385)
%12387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12388 = load double, double* %12387
%12389 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12390 = load double, double* %12389
%12391 = call double @llvm.fmuladd.f64(double %12388, double %12390, double %12386)
%12392 = fcmp ogt double %12391, 0.000000e+00
br i1 %12392, label %12393, label %12394
12393: ; preds = %12268
store i32 0, i32* %7
br label %37464
12394: ; preds = %12268
%12395 = load double*, double** %13
%12396 = getelementptr inbounds double, double* %12395, i64 0
%12397 = load double, double* %12396
%12398 = load double*, double** %10
%12399 = getelementptr inbounds double, double* %12398, i64 0
%12400 = load double, double* %12399
%12401 = fsub double %12397, %12400
%12402 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12401, double* %12402
%12403 = load double*, double** %13
%12404 = getelementptr inbounds double, double* %12403, i64 1
%12405 = load double, double* %12404
%12406 = load double*, double** %10
%12407 = getelementptr inbounds double, double* %12406, i64 1
%12408 = load double, double* %12407
%12409 = fsub double %12405, %12408
%12410 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12409, double* %12410
%12411 = load double*, double** %13
%12412 = getelementptr inbounds double, double* %12411, i64 2
%12413 = load double, double* %12412
%12414 = load double*, double** %10
%12415 = getelementptr inbounds double, double* %12414, i64 2
%12416 = load double, double* %12415
%12417 = fsub double %12413, %12416
%12418 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12417, double* %12418
%12419 = load double*, double** %9
%12420 = getelementptr inbounds double, double* %12419, i64 0
%12421 = load double, double* %12420
%12422 = load double*, double** %10
%12423 = getelementptr inbounds double, double* %12422, i64 0
%12424 = load double, double* %12423
%12425 = fsub double %12421, %12424
%12426 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12425, double* %12426
%12427 = load double*, double** %9
%12428 = getelementptr inbounds double, double* %12427, i64 1
%12429 = load double, double* %12428
%12430 = load double*, double** %10
%12431 = getelementptr inbounds double, double* %12430, i64 1
%12432 = load double, double* %12431
%12433 = fsub double %12429, %12432
%12434 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12433, double* %12434
%12435 = load double*, double** %9
%12436 = getelementptr inbounds double, double* %12435, i64 2
%12437 = load double, double* %12436
%12438 = load double*, double** %10
%12439 = getelementptr inbounds double, double* %12438, i64 2
%12440 = load double, double* %12439
%12441 = fsub double %12437, %12440
%12442 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12441, double* %12442
%12443 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12444 = load double, double* %12443
%12445 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12446 = load double, double* %12445
%12447 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12448 = load double, double* %12447
%12449 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12450 = load double, double* %12449
%12451 = fmul double %12448, %12450
%12452 = fneg double %12451
%12453 = call double @llvm.fmuladd.f64(double %12444, double %12446, double %12452)
%12454 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12453, double* %12454
%12455 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12456 = load double, double* %12455
%12457 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12458 = load double, double* %12457
%12459 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12460 = load double, double* %12459
%12461 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12462 = load double, double* %12461
%12463 = fmul double %12460, %12462
%12464 = fneg double %12463
%12465 = call double @llvm.fmuladd.f64(double %12456, double %12458, double %12464)
%12466 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12465, double* %12466
%12467 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12468 = load double, double* %12467
%12469 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12470 = load double, double* %12469
%12471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12472 = load double, double* %12471
%12473 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12474 = load double, double* %12473
%12475 = fmul double %12472, %12474
%12476 = fneg double %12475
%12477 = call double @llvm.fmuladd.f64(double %12468, double %12470, double %12476)
%12478 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12477, double* %12478
%12479 = load double*, double** %12
%12480 = getelementptr inbounds double, double* %12479, i64 0
%12481 = load double, double* %12480
%12482 = load double*, double** %10
%12483 = getelementptr inbounds double, double* %12482, i64 0
%12484 = load double, double* %12483
%12485 = fsub double %12481, %12484
%12486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12485, double* %12486
%12487 = load double*, double** %12
%12488 = getelementptr inbounds double, double* %12487, i64 1
%12489 = load double, double* %12488
%12490 = load double*, double** %10
%12491 = getelementptr inbounds double, double* %12490, i64 1
%12492 = load double, double* %12491
%12493 = fsub double %12489, %12492
%12494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12493, double* %12494
%12495 = load double*, double** %12
%12496 = getelementptr inbounds double, double* %12495, i64 2
%12497 = load double, double* %12496
%12498 = load double*, double** %10
%12499 = getelementptr inbounds double, double* %12498, i64 2
%12500 = load double, double* %12499
%12501 = fsub double %12497, %12500
%12502 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12501, double* %12502
%12503 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12504 = load double, double* %12503
%12505 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12506 = load double, double* %12505
%12507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12508 = load double, double* %12507
%12509 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12510 = load double, double* %12509
%12511 = fmul double %12508, %12510
%12512 = call double @llvm.fmuladd.f64(double %12504, double %12506, double %12511)
%12513 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12514 = load double, double* %12513
%12515 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12516 = load double, double* %12515
%12517 = call double @llvm.fmuladd.f64(double %12514, double %12516, double %12512)
%12518 = fcmp ogt double %12517, 0.000000e+00
br i1 %12518, label %12519, label %12520
12519: ; preds = %12394
store i32 0, i32* %7
br label %37464
12520: ; preds = %12394
store i32 1, i32* %7
br label %37464
12521: ; preds = %12265
%12522 = load double, double* %19
%12523 = fcmp olt double %12522, 0.000000e+00
br i1 %12523, label %12524, label %12777
12524: ; preds = %12521
%12525 = load double*, double** %13
%12526 = getelementptr inbounds double, double* %12525, i64 0
%12527 = load double, double* %12526
%12528 = load double*, double** %9
%12529 = getelementptr inbounds double, double* %12528, i64 0
%12530 = load double, double* %12529
%12531 = fsub double %12527, %12530
%12532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12531, double* %12532
%12533 = load double*, double** %13
%12534 = getelementptr inbounds double, double* %12533, i64 1
%12535 = load double, double* %12534
%12536 = load double*, double** %9
%12537 = getelementptr inbounds double, double* %12536, i64 1
%12538 = load double, double* %12537
%12539 = fsub double %12535, %12538
%12540 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12539, double* %12540
%12541 = load double*, double** %13
%12542 = getelementptr inbounds double, double* %12541, i64 2
%12543 = load double, double* %12542
%12544 = load double*, double** %9
%12545 = getelementptr inbounds double, double* %12544, i64 2
%12546 = load double, double* %12545
%12547 = fsub double %12543, %12546
%12548 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12547, double* %12548
%12549 = load double*, double** %10
%12550 = getelementptr inbounds double, double* %12549, i64 0
%12551 = load double, double* %12550
%12552 = load double*, double** %9
%12553 = getelementptr inbounds double, double* %12552, i64 0
%12554 = load double, double* %12553
%12555 = fsub double %12551, %12554
%12556 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12555, double* %12556
%12557 = load double*, double** %10
%12558 = getelementptr inbounds double, double* %12557, i64 1
%12559 = load double, double* %12558
%12560 = load double*, double** %9
%12561 = getelementptr inbounds double, double* %12560, i64 1
%12562 = load double, double* %12561
%12563 = fsub double %12559, %12562
%12564 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12563, double* %12564
%12565 = load double*, double** %10
%12566 = getelementptr inbounds double, double* %12565, i64 2
%12567 = load double, double* %12566
%12568 = load double*, double** %9
%12569 = getelementptr inbounds double, double* %12568, i64 2
%12570 = load double, double* %12569
%12571 = fsub double %12567, %12570
%12572 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12571, double* %12572
%12573 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12574 = load double, double* %12573
%12575 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12576 = load double, double* %12575
%12577 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12578 = load double, double* %12577
%12579 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12580 = load double, double* %12579
%12581 = fmul double %12578, %12580
%12582 = fneg double %12581
%12583 = call double @llvm.fmuladd.f64(double %12574, double %12576, double %12582)
%12584 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12583, double* %12584
%12585 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12586 = load double, double* %12585
%12587 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12588 = load double, double* %12587
%12589 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12590 = load double, double* %12589
%12591 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12592 = load double, double* %12591
%12593 = fmul double %12590, %12592
%12594 = fneg double %12593
%12595 = call double @llvm.fmuladd.f64(double %12586, double %12588, double %12594)
%12596 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12595, double* %12596
%12597 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12598 = load double, double* %12597
%12599 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12600 = load double, double* %12599
%12601 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12602 = load double, double* %12601
%12603 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12604 = load double, double* %12603
%12605 = fmul double %12602, %12604
%12606 = fneg double %12605
%12607 = call double @llvm.fmuladd.f64(double %12598, double %12600, double %12606)
%12608 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12607, double* %12608
%12609 = load double*, double** %11
%12610 = getelementptr inbounds double, double* %12609, i64 0
%12611 = load double, double* %12610
%12612 = load double*, double** %9
%12613 = getelementptr inbounds double, double* %12612, i64 0
%12614 = load double, double* %12613
%12615 = fsub double %12611, %12614
%12616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12615, double* %12616
%12617 = load double*, double** %11
%12618 = getelementptr inbounds double, double* %12617, i64 1
%12619 = load double, double* %12618
%12620 = load double*, double** %9
%12621 = getelementptr inbounds double, double* %12620, i64 1
%12622 = load double, double* %12621
%12623 = fsub double %12619, %12622
%12624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12623, double* %12624
%12625 = load double*, double** %11
%12626 = getelementptr inbounds double, double* %12625, i64 2
%12627 = load double, double* %12626
%12628 = load double*, double** %9
%12629 = getelementptr inbounds double, double* %12628, i64 2
%12630 = load double, double* %12629
%12631 = fsub double %12627, %12630
%12632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12631, double* %12632
%12633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12634 = load double, double* %12633
%12635 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12636 = load double, double* %12635
%12637 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12638 = load double, double* %12637
%12639 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12640 = load double, double* %12639
%12641 = fmul double %12638, %12640
%12642 = call double @llvm.fmuladd.f64(double %12634, double %12636, double %12641)
%12643 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12644 = load double, double* %12643
%12645 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12646 = load double, double* %12645
%12647 = call double @llvm.fmuladd.f64(double %12644, double %12646, double %12642)
%12648 = fcmp ogt double %12647, 0.000000e+00
br i1 %12648, label %12649, label %12650
12649: ; preds = %12524
store i32 0, i32* %7
br label %37464
12650: ; preds = %12524
%12651 = load double*, double** %13
%12652 = getelementptr inbounds double, double* %12651, i64 0
%12653 = load double, double* %12652
%12654 = load double*, double** %10
%12655 = getelementptr inbounds double, double* %12654, i64 0
%12656 = load double, double* %12655
%12657 = fsub double %12653, %12656
%12658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12657, double* %12658
%12659 = load double*, double** %13
%12660 = getelementptr inbounds double, double* %12659, i64 1
%12661 = load double, double* %12660
%12662 = load double*, double** %10
%12663 = getelementptr inbounds double, double* %12662, i64 1
%12664 = load double, double* %12663
%12665 = fsub double %12661, %12664
%12666 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12665, double* %12666
%12667 = load double*, double** %13
%12668 = getelementptr inbounds double, double* %12667, i64 2
%12669 = load double, double* %12668
%12670 = load double*, double** %10
%12671 = getelementptr inbounds double, double* %12670, i64 2
%12672 = load double, double* %12671
%12673 = fsub double %12669, %12672
%12674 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12673, double* %12674
%12675 = load double*, double** %8
%12676 = getelementptr inbounds double, double* %12675, i64 0
%12677 = load double, double* %12676
%12678 = load double*, double** %10
%12679 = getelementptr inbounds double, double* %12678, i64 0
%12680 = load double, double* %12679
%12681 = fsub double %12677, %12680
%12682 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12681, double* %12682
%12683 = load double*, double** %8
%12684 = getelementptr inbounds double, double* %12683, i64 1
%12685 = load double, double* %12684
%12686 = load double*, double** %10
%12687 = getelementptr inbounds double, double* %12686, i64 1
%12688 = load double, double* %12687
%12689 = fsub double %12685, %12688
%12690 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12689, double* %12690
%12691 = load double*, double** %8
%12692 = getelementptr inbounds double, double* %12691, i64 2
%12693 = load double, double* %12692
%12694 = load double*, double** %10
%12695 = getelementptr inbounds double, double* %12694, i64 2
%12696 = load double, double* %12695
%12697 = fsub double %12693, %12696
%12698 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12697, double* %12698
%12699 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12700 = load double, double* %12699
%12701 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12702 = load double, double* %12701
%12703 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12704 = load double, double* %12703
%12705 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12706 = load double, double* %12705
%12707 = fmul double %12704, %12706
%12708 = fneg double %12707
%12709 = call double @llvm.fmuladd.f64(double %12700, double %12702, double %12708)
%12710 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12709, double* %12710
%12711 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12712 = load double, double* %12711
%12713 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12714 = load double, double* %12713
%12715 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12716 = load double, double* %12715
%12717 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12718 = load double, double* %12717
%12719 = fmul double %12716, %12718
%12720 = fneg double %12719
%12721 = call double @llvm.fmuladd.f64(double %12712, double %12714, double %12720)
%12722 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12721, double* %12722
%12723 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12724 = load double, double* %12723
%12725 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12726 = load double, double* %12725
%12727 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12728 = load double, double* %12727
%12729 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12730 = load double, double* %12729
%12731 = fmul double %12728, %12730
%12732 = fneg double %12731
%12733 = call double @llvm.fmuladd.f64(double %12724, double %12726, double %12732)
%12734 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12733, double* %12734
%12735 = load double*, double** %12
%12736 = getelementptr inbounds double, double* %12735, i64 0
%12737 = load double, double* %12736
%12738 = load double*, double** %10
%12739 = getelementptr inbounds double, double* %12738, i64 0
%12740 = load double, double* %12739
%12741 = fsub double %12737, %12740
%12742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12741, double* %12742
%12743 = load double*, double** %12
%12744 = getelementptr inbounds double, double* %12743, i64 1
%12745 = load double, double* %12744
%12746 = load double*, double** %10
%12747 = getelementptr inbounds double, double* %12746, i64 1
%12748 = load double, double* %12747
%12749 = fsub double %12745, %12748
%12750 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12749, double* %12750
%12751 = load double*, double** %12
%12752 = getelementptr inbounds double, double* %12751, i64 2
%12753 = load double, double* %12752
%12754 = load double*, double** %10
%12755 = getelementptr inbounds double, double* %12754, i64 2
%12756 = load double, double* %12755
%12757 = fsub double %12753, %12756
%12758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12757, double* %12758
%12759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12760 = load double, double* %12759
%12761 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12762 = load double, double* %12761
%12763 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12764 = load double, double* %12763
%12765 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12766 = load double, double* %12765
%12767 = fmul double %12764, %12766
%12768 = call double @llvm.fmuladd.f64(double %12760, double %12762, double %12767)
%12769 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12770 = load double, double* %12769
%12771 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12772 = load double, double* %12771
%12773 = call double @llvm.fmuladd.f64(double %12770, double %12772, double %12768)
%12774 = fcmp ogt double %12773, 0.000000e+00
br i1 %12774, label %12775, label %12776
12775: ; preds = %12650
store i32 0, i32* %7
br label %37464
12776: ; preds = %12650
store i32 1, i32* %7
br label %37464
12777: ; preds = %12521
%12778 = load double*, double** %10
%12779 = load double*, double** %8
%12780 = load double*, double** %9
%12781 = load double*, double** %11
%12782 = load double*, double** %12
%12783 = load double*, double** %13
%12784 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12785 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %12778, double* %12779, double* %12780, double* %12781, double* %12782, double* %12783, double* %12784)
store i32 %12785, i32* %7
br label %37464
12786: ; preds = %9702
%12787 = load double, double* %16
%12788 = fcmp olt double %12787, 0.000000e+00
br i1 %12788, label %12789, label %15870
12789: ; preds = %12786
%12790 = load double, double* %17
%12791 = fcmp ogt double %12790, 0.000000e+00
br i1 %12791, label %12792, label %13557
12792: ; preds = %12789
%12793 = load double, double* %18
%12794 = fcmp ogt double %12793, 0.000000e+00
br i1 %12794, label %12795, label %13048
12795: ; preds = %12792
%12796 = load double*, double** %13
%12797 = getelementptr inbounds double, double* %12796, i64 0
%12798 = load double, double* %12797
%12799 = load double*, double** %8
%12800 = getelementptr inbounds double, double* %12799, i64 0
%12801 = load double, double* %12800
%12802 = fsub double %12798, %12801
%12803 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12802, double* %12803
%12804 = load double*, double** %13
%12805 = getelementptr inbounds double, double* %12804, i64 1
%12806 = load double, double* %12805
%12807 = load double*, double** %8
%12808 = getelementptr inbounds double, double* %12807, i64 1
%12809 = load double, double* %12808
%12810 = fsub double %12806, %12809
%12811 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12810, double* %12811
%12812 = load double*, double** %13
%12813 = getelementptr inbounds double, double* %12812, i64 2
%12814 = load double, double* %12813
%12815 = load double*, double** %8
%12816 = getelementptr inbounds double, double* %12815, i64 2
%12817 = load double, double* %12816
%12818 = fsub double %12814, %12817
%12819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12818, double* %12819
%12820 = load double*, double** %9
%12821 = getelementptr inbounds double, double* %12820, i64 0
%12822 = load double, double* %12821
%12823 = load double*, double** %8
%12824 = getelementptr inbounds double, double* %12823, i64 0
%12825 = load double, double* %12824
%12826 = fsub double %12822, %12825
%12827 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12826, double* %12827
%12828 = load double*, double** %9
%12829 = getelementptr inbounds double, double* %12828, i64 1
%12830 = load double, double* %12829
%12831 = load double*, double** %8
%12832 = getelementptr inbounds double, double* %12831, i64 1
%12833 = load double, double* %12832
%12834 = fsub double %12830, %12833
%12835 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12834, double* %12835
%12836 = load double*, double** %9
%12837 = getelementptr inbounds double, double* %12836, i64 2
%12838 = load double, double* %12837
%12839 = load double*, double** %8
%12840 = getelementptr inbounds double, double* %12839, i64 2
%12841 = load double, double* %12840
%12842 = fsub double %12838, %12841
%12843 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12842, double* %12843
%12844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12845 = load double, double* %12844
%12846 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12847 = load double, double* %12846
%12848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12849 = load double, double* %12848
%12850 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12851 = load double, double* %12850
%12852 = fmul double %12849, %12851
%12853 = fneg double %12852
%12854 = call double @llvm.fmuladd.f64(double %12845, double %12847, double %12853)
%12855 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12854, double* %12855
%12856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12857 = load double, double* %12856
%12858 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12859 = load double, double* %12858
%12860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12861 = load double, double* %12860
%12862 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12863 = load double, double* %12862
%12864 = fmul double %12861, %12863
%12865 = fneg double %12864
%12866 = call double @llvm.fmuladd.f64(double %12857, double %12859, double %12865)
%12867 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12866, double* %12867
%12868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12869 = load double, double* %12868
%12870 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12871 = load double, double* %12870
%12872 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12873 = load double, double* %12872
%12874 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12875 = load double, double* %12874
%12876 = fmul double %12873, %12875
%12877 = fneg double %12876
%12878 = call double @llvm.fmuladd.f64(double %12869, double %12871, double %12877)
%12879 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %12878, double* %12879
%12880 = load double*, double** %11
%12881 = getelementptr inbounds double, double* %12880, i64 0
%12882 = load double, double* %12881
%12883 = load double*, double** %8
%12884 = getelementptr inbounds double, double* %12883, i64 0
%12885 = load double, double* %12884
%12886 = fsub double %12882, %12885
%12887 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12886, double* %12887
%12888 = load double*, double** %11
%12889 = getelementptr inbounds double, double* %12888, i64 1
%12890 = load double, double* %12889
%12891 = load double*, double** %8
%12892 = getelementptr inbounds double, double* %12891, i64 1
%12893 = load double, double* %12892
%12894 = fsub double %12890, %12893
%12895 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12894, double* %12895
%12896 = load double*, double** %11
%12897 = getelementptr inbounds double, double* %12896, i64 2
%12898 = load double, double* %12897
%12899 = load double*, double** %8
%12900 = getelementptr inbounds double, double* %12899, i64 2
%12901 = load double, double* %12900
%12902 = fsub double %12898, %12901
%12903 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12902, double* %12903
%12904 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12905 = load double, double* %12904
%12906 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%12907 = load double, double* %12906
%12908 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12909 = load double, double* %12908
%12910 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%12911 = load double, double* %12910
%12912 = fmul double %12909, %12911
%12913 = call double @llvm.fmuladd.f64(double %12905, double %12907, double %12912)
%12914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12915 = load double, double* %12914
%12916 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%12917 = load double, double* %12916
%12918 = call double @llvm.fmuladd.f64(double %12915, double %12917, double %12913)
%12919 = fcmp ogt double %12918, 0.000000e+00
br i1 %12919, label %12920, label %12921
12920: ; preds = %12795
store i32 0, i32* %7
br label %37464
12921: ; preds = %12795
%12922 = load double*, double** %13
%12923 = getelementptr inbounds double, double* %12922, i64 0
%12924 = load double, double* %12923
%12925 = load double*, double** %9
%12926 = getelementptr inbounds double, double* %12925, i64 0
%12927 = load double, double* %12926
%12928 = fsub double %12924, %12927
%12929 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %12928, double* %12929
%12930 = load double*, double** %13
%12931 = getelementptr inbounds double, double* %12930, i64 1
%12932 = load double, double* %12931
%12933 = load double*, double** %9
%12934 = getelementptr inbounds double, double* %12933, i64 1
%12935 = load double, double* %12934
%12936 = fsub double %12932, %12935
%12937 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %12936, double* %12937
%12938 = load double*, double** %13
%12939 = getelementptr inbounds double, double* %12938, i64 2
%12940 = load double, double* %12939
%12941 = load double*, double** %9
%12942 = getelementptr inbounds double, double* %12941, i64 2
%12943 = load double, double* %12942
%12944 = fsub double %12940, %12943
%12945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %12944, double* %12945
%12946 = load double*, double** %10
%12947 = getelementptr inbounds double, double* %12946, i64 0
%12948 = load double, double* %12947
%12949 = load double*, double** %9
%12950 = getelementptr inbounds double, double* %12949, i64 0
%12951 = load double, double* %12950
%12952 = fsub double %12948, %12951
%12953 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %12952, double* %12953
%12954 = load double*, double** %10
%12955 = getelementptr inbounds double, double* %12954, i64 1
%12956 = load double, double* %12955
%12957 = load double*, double** %9
%12958 = getelementptr inbounds double, double* %12957, i64 1
%12959 = load double, double* %12958
%12960 = fsub double %12956, %12959
%12961 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %12960, double* %12961
%12962 = load double*, double** %10
%12963 = getelementptr inbounds double, double* %12962, i64 2
%12964 = load double, double* %12963
%12965 = load double*, double** %9
%12966 = getelementptr inbounds double, double* %12965, i64 2
%12967 = load double, double* %12966
%12968 = fsub double %12964, %12967
%12969 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %12968, double* %12969
%12970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12971 = load double, double* %12970
%12972 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12973 = load double, double* %12972
%12974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12975 = load double, double* %12974
%12976 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12977 = load double, double* %12976
%12978 = fmul double %12975, %12977
%12979 = fneg double %12978
%12980 = call double @llvm.fmuladd.f64(double %12971, double %12973, double %12979)
%12981 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %12980, double* %12981
%12982 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%12983 = load double, double* %12982
%12984 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%12985 = load double, double* %12984
%12986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12987 = load double, double* %12986
%12988 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%12989 = load double, double* %12988
%12990 = fmul double %12987, %12989
%12991 = fneg double %12990
%12992 = call double @llvm.fmuladd.f64(double %12983, double %12985, double %12991)
%12993 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %12992, double* %12993
%12994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%12995 = load double, double* %12994
%12996 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%12997 = load double, double* %12996
%12998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%12999 = load double, double* %12998
%13000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13001 = load double, double* %13000
%13002 = fmul double %12999, %13001
%13003 = fneg double %13002
%13004 = call double @llvm.fmuladd.f64(double %12995, double %12997, double %13003)
%13005 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13004, double* %13005
%13006 = load double*, double** %12
%13007 = getelementptr inbounds double, double* %13006, i64 0
%13008 = load double, double* %13007
%13009 = load double*, double** %9
%13010 = getelementptr inbounds double, double* %13009, i64 0
%13011 = load double, double* %13010
%13012 = fsub double %13008, %13011
%13013 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13012, double* %13013
%13014 = load double*, double** %12
%13015 = getelementptr inbounds double, double* %13014, i64 1
%13016 = load double, double* %13015
%13017 = load double*, double** %9
%13018 = getelementptr inbounds double, double* %13017, i64 1
%13019 = load double, double* %13018
%13020 = fsub double %13016, %13019
%13021 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13020, double* %13021
%13022 = load double*, double** %12
%13023 = getelementptr inbounds double, double* %13022, i64 2
%13024 = load double, double* %13023
%13025 = load double*, double** %9
%13026 = getelementptr inbounds double, double* %13025, i64 2
%13027 = load double, double* %13026
%13028 = fsub double %13024, %13027
%13029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13028, double* %13029
%13030 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13031 = load double, double* %13030
%13032 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13033 = load double, double* %13032
%13034 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13035 = load double, double* %13034
%13036 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13037 = load double, double* %13036
%13038 = fmul double %13035, %13037
%13039 = call double @llvm.fmuladd.f64(double %13031, double %13033, double %13038)
%13040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13041 = load double, double* %13040
%13042 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13043 = load double, double* %13042
%13044 = call double @llvm.fmuladd.f64(double %13041, double %13043, double %13039)
%13045 = fcmp ogt double %13044, 0.000000e+00
br i1 %13045, label %13046, label %13047
13046: ; preds = %12921
store i32 0, i32* %7
br label %37464
13047: ; preds = %12921
store i32 1, i32* %7
br label %37464
13048: ; preds = %12792
%13049 = load double, double* %19
%13050 = fcmp ogt double %13049, 0.000000e+00
br i1 %13050, label %13051, label %13304
13051: ; preds = %13048
%13052 = load double*, double** %12
%13053 = getelementptr inbounds double, double* %13052, i64 0
%13054 = load double, double* %13053
%13055 = load double*, double** %8
%13056 = getelementptr inbounds double, double* %13055, i64 0
%13057 = load double, double* %13056
%13058 = fsub double %13054, %13057
%13059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13058, double* %13059
%13060 = load double*, double** %12
%13061 = getelementptr inbounds double, double* %13060, i64 1
%13062 = load double, double* %13061
%13063 = load double*, double** %8
%13064 = getelementptr inbounds double, double* %13063, i64 1
%13065 = load double, double* %13064
%13066 = fsub double %13062, %13065
%13067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13066, double* %13067
%13068 = load double*, double** %12
%13069 = getelementptr inbounds double, double* %13068, i64 2
%13070 = load double, double* %13069
%13071 = load double*, double** %8
%13072 = getelementptr inbounds double, double* %13071, i64 2
%13073 = load double, double* %13072
%13074 = fsub double %13070, %13073
%13075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13074, double* %13075
%13076 = load double*, double** %9
%13077 = getelementptr inbounds double, double* %13076, i64 0
%13078 = load double, double* %13077
%13079 = load double*, double** %8
%13080 = getelementptr inbounds double, double* %13079, i64 0
%13081 = load double, double* %13080
%13082 = fsub double %13078, %13081
%13083 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13082, double* %13083
%13084 = load double*, double** %9
%13085 = getelementptr inbounds double, double* %13084, i64 1
%13086 = load double, double* %13085
%13087 = load double*, double** %8
%13088 = getelementptr inbounds double, double* %13087, i64 1
%13089 = load double, double* %13088
%13090 = fsub double %13086, %13089
%13091 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13090, double* %13091
%13092 = load double*, double** %9
%13093 = getelementptr inbounds double, double* %13092, i64 2
%13094 = load double, double* %13093
%13095 = load double*, double** %8
%13096 = getelementptr inbounds double, double* %13095, i64 2
%13097 = load double, double* %13096
%13098 = fsub double %13094, %13097
%13099 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13098, double* %13099
%13100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13101 = load double, double* %13100
%13102 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13103 = load double, double* %13102
%13104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13105 = load double, double* %13104
%13106 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13107 = load double, double* %13106
%13108 = fmul double %13105, %13107
%13109 = fneg double %13108
%13110 = call double @llvm.fmuladd.f64(double %13101, double %13103, double %13109)
%13111 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13110, double* %13111
%13112 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13113 = load double, double* %13112
%13114 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13115 = load double, double* %13114
%13116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13117 = load double, double* %13116
%13118 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13119 = load double, double* %13118
%13120 = fmul double %13117, %13119
%13121 = fneg double %13120
%13122 = call double @llvm.fmuladd.f64(double %13113, double %13115, double %13121)
%13123 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13122, double* %13123
%13124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13125 = load double, double* %13124
%13126 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13127 = load double, double* %13126
%13128 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13129 = load double, double* %13128
%13130 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13131 = load double, double* %13130
%13132 = fmul double %13129, %13131
%13133 = fneg double %13132
%13134 = call double @llvm.fmuladd.f64(double %13125, double %13127, double %13133)
%13135 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13134, double* %13135
%13136 = load double*, double** %13
%13137 = getelementptr inbounds double, double* %13136, i64 0
%13138 = load double, double* %13137
%13139 = load double*, double** %8
%13140 = getelementptr inbounds double, double* %13139, i64 0
%13141 = load double, double* %13140
%13142 = fsub double %13138, %13141
%13143 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13142, double* %13143
%13144 = load double*, double** %13
%13145 = getelementptr inbounds double, double* %13144, i64 1
%13146 = load double, double* %13145
%13147 = load double*, double** %8
%13148 = getelementptr inbounds double, double* %13147, i64 1
%13149 = load double, double* %13148
%13150 = fsub double %13146, %13149
%13151 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13150, double* %13151
%13152 = load double*, double** %13
%13153 = getelementptr inbounds double, double* %13152, i64 2
%13154 = load double, double* %13153
%13155 = load double*, double** %8
%13156 = getelementptr inbounds double, double* %13155, i64 2
%13157 = load double, double* %13156
%13158 = fsub double %13154, %13157
%13159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13158, double* %13159
%13160 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13161 = load double, double* %13160
%13162 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13163 = load double, double* %13162
%13164 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13165 = load double, double* %13164
%13166 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13167 = load double, double* %13166
%13168 = fmul double %13165, %13167
%13169 = call double @llvm.fmuladd.f64(double %13161, double %13163, double %13168)
%13170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13171 = load double, double* %13170
%13172 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13173 = load double, double* %13172
%13174 = call double @llvm.fmuladd.f64(double %13171, double %13173, double %13169)
%13175 = fcmp ogt double %13174, 0.000000e+00
br i1 %13175, label %13176, label %13177
13176: ; preds = %13051
store i32 0, i32* %7
br label %37464
13177: ; preds = %13051
%13178 = load double*, double** %12
%13179 = getelementptr inbounds double, double* %13178, i64 0
%13180 = load double, double* %13179
%13181 = load double*, double** %9
%13182 = getelementptr inbounds double, double* %13181, i64 0
%13183 = load double, double* %13182
%13184 = fsub double %13180, %13183
%13185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13184, double* %13185
%13186 = load double*, double** %12
%13187 = getelementptr inbounds double, double* %13186, i64 1
%13188 = load double, double* %13187
%13189 = load double*, double** %9
%13190 = getelementptr inbounds double, double* %13189, i64 1
%13191 = load double, double* %13190
%13192 = fsub double %13188, %13191
%13193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13192, double* %13193
%13194 = load double*, double** %12
%13195 = getelementptr inbounds double, double* %13194, i64 2
%13196 = load double, double* %13195
%13197 = load double*, double** %9
%13198 = getelementptr inbounds double, double* %13197, i64 2
%13199 = load double, double* %13198
%13200 = fsub double %13196, %13199
%13201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13200, double* %13201
%13202 = load double*, double** %10
%13203 = getelementptr inbounds double, double* %13202, i64 0
%13204 = load double, double* %13203
%13205 = load double*, double** %9
%13206 = getelementptr inbounds double, double* %13205, i64 0
%13207 = load double, double* %13206
%13208 = fsub double %13204, %13207
%13209 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13208, double* %13209
%13210 = load double*, double** %10
%13211 = getelementptr inbounds double, double* %13210, i64 1
%13212 = load double, double* %13211
%13213 = load double*, double** %9
%13214 = getelementptr inbounds double, double* %13213, i64 1
%13215 = load double, double* %13214
%13216 = fsub double %13212, %13215
%13217 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13216, double* %13217
%13218 = load double*, double** %10
%13219 = getelementptr inbounds double, double* %13218, i64 2
%13220 = load double, double* %13219
%13221 = load double*, double** %9
%13222 = getelementptr inbounds double, double* %13221, i64 2
%13223 = load double, double* %13222
%13224 = fsub double %13220, %13223
%13225 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13224, double* %13225
%13226 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13227 = load double, double* %13226
%13228 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13229 = load double, double* %13228
%13230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13231 = load double, double* %13230
%13232 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13233 = load double, double* %13232
%13234 = fmul double %13231, %13233
%13235 = fneg double %13234
%13236 = call double @llvm.fmuladd.f64(double %13227, double %13229, double %13235)
%13237 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13236, double* %13237
%13238 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13239 = load double, double* %13238
%13240 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13241 = load double, double* %13240
%13242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13243 = load double, double* %13242
%13244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13245 = load double, double* %13244
%13246 = fmul double %13243, %13245
%13247 = fneg double %13246
%13248 = call double @llvm.fmuladd.f64(double %13239, double %13241, double %13247)
%13249 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13248, double* %13249
%13250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13251 = load double, double* %13250
%13252 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13253 = load double, double* %13252
%13254 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13255 = load double, double* %13254
%13256 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13257 = load double, double* %13256
%13258 = fmul double %13255, %13257
%13259 = fneg double %13258
%13260 = call double @llvm.fmuladd.f64(double %13251, double %13253, double %13259)
%13261 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13260, double* %13261
%13262 = load double*, double** %11
%13263 = getelementptr inbounds double, double* %13262, i64 0
%13264 = load double, double* %13263
%13265 = load double*, double** %9
%13266 = getelementptr inbounds double, double* %13265, i64 0
%13267 = load double, double* %13266
%13268 = fsub double %13264, %13267
%13269 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13268, double* %13269
%13270 = load double*, double** %11
%13271 = getelementptr inbounds double, double* %13270, i64 1
%13272 = load double, double* %13271
%13273 = load double*, double** %9
%13274 = getelementptr inbounds double, double* %13273, i64 1
%13275 = load double, double* %13274
%13276 = fsub double %13272, %13275
%13277 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13276, double* %13277
%13278 = load double*, double** %11
%13279 = getelementptr inbounds double, double* %13278, i64 2
%13280 = load double, double* %13279
%13281 = load double*, double** %9
%13282 = getelementptr inbounds double, double* %13281, i64 2
%13283 = load double, double* %13282
%13284 = fsub double %13280, %13283
%13285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13284, double* %13285
%13286 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13287 = load double, double* %13286
%13288 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13289 = load double, double* %13288
%13290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13291 = load double, double* %13290
%13292 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13293 = load double, double* %13292
%13294 = fmul double %13291, %13293
%13295 = call double @llvm.fmuladd.f64(double %13287, double %13289, double %13294)
%13296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13297 = load double, double* %13296
%13298 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13299 = load double, double* %13298
%13300 = call double @llvm.fmuladd.f64(double %13297, double %13299, double %13295)
%13301 = fcmp ogt double %13300, 0.000000e+00
br i1 %13301, label %13302, label %13303
13302: ; preds = %13177
store i32 0, i32* %7
br label %37464
13303: ; preds = %13177
store i32 1, i32* %7
br label %37464
13304: ; preds = %13048
%13305 = load double*, double** %11
%13306 = getelementptr inbounds double, double* %13305, i64 0
%13307 = load double, double* %13306
%13308 = load double*, double** %10
%13309 = getelementptr inbounds double, double* %13308, i64 0
%13310 = load double, double* %13309
%13311 = fsub double %13307, %13310
%13312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13311, double* %13312
%13313 = load double*, double** %11
%13314 = getelementptr inbounds double, double* %13313, i64 1
%13315 = load double, double* %13314
%13316 = load double*, double** %10
%13317 = getelementptr inbounds double, double* %13316, i64 1
%13318 = load double, double* %13317
%13319 = fsub double %13315, %13318
%13320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13319, double* %13320
%13321 = load double*, double** %11
%13322 = getelementptr inbounds double, double* %13321, i64 2
%13323 = load double, double* %13322
%13324 = load double*, double** %10
%13325 = getelementptr inbounds double, double* %13324, i64 2
%13326 = load double, double* %13325
%13327 = fsub double %13323, %13326
%13328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13327, double* %13328
%13329 = load double*, double** %9
%13330 = getelementptr inbounds double, double* %13329, i64 0
%13331 = load double, double* %13330
%13332 = load double*, double** %10
%13333 = getelementptr inbounds double, double* %13332, i64 0
%13334 = load double, double* %13333
%13335 = fsub double %13331, %13334
%13336 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13335, double* %13336
%13337 = load double*, double** %9
%13338 = getelementptr inbounds double, double* %13337, i64 1
%13339 = load double, double* %13338
%13340 = load double*, double** %10
%13341 = getelementptr inbounds double, double* %13340, i64 1
%13342 = load double, double* %13341
%13343 = fsub double %13339, %13342
%13344 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13343, double* %13344
%13345 = load double*, double** %9
%13346 = getelementptr inbounds double, double* %13345, i64 2
%13347 = load double, double* %13346
%13348 = load double*, double** %10
%13349 = getelementptr inbounds double, double* %13348, i64 2
%13350 = load double, double* %13349
%13351 = fsub double %13347, %13350
%13352 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13351, double* %13352
%13353 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13354 = load double, double* %13353
%13355 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13356 = load double, double* %13355
%13357 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13358 = load double, double* %13357
%13359 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13360 = load double, double* %13359
%13361 = fmul double %13358, %13360
%13362 = fneg double %13361
%13363 = call double @llvm.fmuladd.f64(double %13354, double %13356, double %13362)
%13364 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13363, double* %13364
%13365 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13366 = load double, double* %13365
%13367 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13368 = load double, double* %13367
%13369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13370 = load double, double* %13369
%13371 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13372 = load double, double* %13371
%13373 = fmul double %13370, %13372
%13374 = fneg double %13373
%13375 = call double @llvm.fmuladd.f64(double %13366, double %13368, double %13374)
%13376 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13375, double* %13376
%13377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13378 = load double, double* %13377
%13379 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13380 = load double, double* %13379
%13381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13382 = load double, double* %13381
%13383 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13384 = load double, double* %13383
%13385 = fmul double %13382, %13384
%13386 = fneg double %13385
%13387 = call double @llvm.fmuladd.f64(double %13378, double %13380, double %13386)
%13388 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13387, double* %13388
%13389 = load double*, double** %12
%13390 = getelementptr inbounds double, double* %13389, i64 0
%13391 = load double, double* %13390
%13392 = load double*, double** %10
%13393 = getelementptr inbounds double, double* %13392, i64 0
%13394 = load double, double* %13393
%13395 = fsub double %13391, %13394
%13396 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13395, double* %13396
%13397 = load double*, double** %12
%13398 = getelementptr inbounds double, double* %13397, i64 1
%13399 = load double, double* %13398
%13400 = load double*, double** %10
%13401 = getelementptr inbounds double, double* %13400, i64 1
%13402 = load double, double* %13401
%13403 = fsub double %13399, %13402
%13404 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13403, double* %13404
%13405 = load double*, double** %12
%13406 = getelementptr inbounds double, double* %13405, i64 2
%13407 = load double, double* %13406
%13408 = load double*, double** %10
%13409 = getelementptr inbounds double, double* %13408, i64 2
%13410 = load double, double* %13409
%13411 = fsub double %13407, %13410
%13412 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13411, double* %13412
%13413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13414 = load double, double* %13413
%13415 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13416 = load double, double* %13415
%13417 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13418 = load double, double* %13417
%13419 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13420 = load double, double* %13419
%13421 = fmul double %13418, %13420
%13422 = call double @llvm.fmuladd.f64(double %13414, double %13416, double %13421)
%13423 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13424 = load double, double* %13423
%13425 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13426 = load double, double* %13425
%13427 = call double @llvm.fmuladd.f64(double %13424, double %13426, double %13422)
%13428 = fcmp ogt double %13427, 0.000000e+00
br i1 %13428, label %13429, label %13430
13429: ; preds = %13304
store i32 0, i32* %7
br label %37464
13430: ; preds = %13304
%13431 = load double*, double** %11
%13432 = getelementptr inbounds double, double* %13431, i64 0
%13433 = load double, double* %13432
%13434 = load double*, double** %9
%13435 = getelementptr inbounds double, double* %13434, i64 0
%13436 = load double, double* %13435
%13437 = fsub double %13433, %13436
%13438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13437, double* %13438
%13439 = load double*, double** %11
%13440 = getelementptr inbounds double, double* %13439, i64 1
%13441 = load double, double* %13440
%13442 = load double*, double** %9
%13443 = getelementptr inbounds double, double* %13442, i64 1
%13444 = load double, double* %13443
%13445 = fsub double %13441, %13444
%13446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13445, double* %13446
%13447 = load double*, double** %11
%13448 = getelementptr inbounds double, double* %13447, i64 2
%13449 = load double, double* %13448
%13450 = load double*, double** %9
%13451 = getelementptr inbounds double, double* %13450, i64 2
%13452 = load double, double* %13451
%13453 = fsub double %13449, %13452
%13454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13453, double* %13454
%13455 = load double*, double** %8
%13456 = getelementptr inbounds double, double* %13455, i64 0
%13457 = load double, double* %13456
%13458 = load double*, double** %9
%13459 = getelementptr inbounds double, double* %13458, i64 0
%13460 = load double, double* %13459
%13461 = fsub double %13457, %13460
%13462 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13461, double* %13462
%13463 = load double*, double** %8
%13464 = getelementptr inbounds double, double* %13463, i64 1
%13465 = load double, double* %13464
%13466 = load double*, double** %9
%13467 = getelementptr inbounds double, double* %13466, i64 1
%13468 = load double, double* %13467
%13469 = fsub double %13465, %13468
%13470 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13469, double* %13470
%13471 = load double*, double** %8
%13472 = getelementptr inbounds double, double* %13471, i64 2
%13473 = load double, double* %13472
%13474 = load double*, double** %9
%13475 = getelementptr inbounds double, double* %13474, i64 2
%13476 = load double, double* %13475
%13477 = fsub double %13473, %13476
%13478 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13477, double* %13478
%13479 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13480 = load double, double* %13479
%13481 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13482 = load double, double* %13481
%13483 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13484 = load double, double* %13483
%13485 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13486 = load double, double* %13485
%13487 = fmul double %13484, %13486
%13488 = fneg double %13487
%13489 = call double @llvm.fmuladd.f64(double %13480, double %13482, double %13488)
%13490 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13489, double* %13490
%13491 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13492 = load double, double* %13491
%13493 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13494 = load double, double* %13493
%13495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13496 = load double, double* %13495
%13497 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13498 = load double, double* %13497
%13499 = fmul double %13496, %13498
%13500 = fneg double %13499
%13501 = call double @llvm.fmuladd.f64(double %13492, double %13494, double %13500)
%13502 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13501, double* %13502
%13503 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13504 = load double, double* %13503
%13505 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13506 = load double, double* %13505
%13507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13508 = load double, double* %13507
%13509 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13510 = load double, double* %13509
%13511 = fmul double %13508, %13510
%13512 = fneg double %13511
%13513 = call double @llvm.fmuladd.f64(double %13504, double %13506, double %13512)
%13514 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13513, double* %13514
%13515 = load double*, double** %13
%13516 = getelementptr inbounds double, double* %13515, i64 0
%13517 = load double, double* %13516
%13518 = load double*, double** %9
%13519 = getelementptr inbounds double, double* %13518, i64 0
%13520 = load double, double* %13519
%13521 = fsub double %13517, %13520
%13522 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13521, double* %13522
%13523 = load double*, double** %13
%13524 = getelementptr inbounds double, double* %13523, i64 1
%13525 = load double, double* %13524
%13526 = load double*, double** %9
%13527 = getelementptr inbounds double, double* %13526, i64 1
%13528 = load double, double* %13527
%13529 = fsub double %13525, %13528
%13530 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13529, double* %13530
%13531 = load double*, double** %13
%13532 = getelementptr inbounds double, double* %13531, i64 2
%13533 = load double, double* %13532
%13534 = load double*, double** %9
%13535 = getelementptr inbounds double, double* %13534, i64 2
%13536 = load double, double* %13535
%13537 = fsub double %13533, %13536
%13538 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13537, double* %13538
%13539 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13540 = load double, double* %13539
%13541 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13542 = load double, double* %13541
%13543 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13544 = load double, double* %13543
%13545 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13546 = load double, double* %13545
%13547 = fmul double %13544, %13546
%13548 = call double @llvm.fmuladd.f64(double %13540, double %13542, double %13547)
%13549 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13550 = load double, double* %13549
%13551 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13552 = load double, double* %13551
%13553 = call double @llvm.fmuladd.f64(double %13550, double %13552, double %13548)
%13554 = fcmp ogt double %13553, 0.000000e+00
br i1 %13554, label %13555, label %13556
13555: ; preds = %13430
store i32 0, i32* %7
br label %37464
13556: ; preds = %13430
store i32 1, i32* %7
br label %37464
13557: ; preds = %12789
%13558 = load double, double* %17
%13559 = fcmp olt double %13558, 0.000000e+00
br i1 %13559, label %13560, label %14325
13560: ; preds = %13557
%13561 = load double, double* %18
%13562 = fcmp olt double %13561, 0.000000e+00
br i1 %13562, label %13563, label %13816
13563: ; preds = %13560
%13564 = load double*, double** %13
%13565 = getelementptr inbounds double, double* %13564, i64 0
%13566 = load double, double* %13565
%13567 = load double*, double** %10
%13568 = getelementptr inbounds double, double* %13567, i64 0
%13569 = load double, double* %13568
%13570 = fsub double %13566, %13569
%13571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13570, double* %13571
%13572 = load double*, double** %13
%13573 = getelementptr inbounds double, double* %13572, i64 1
%13574 = load double, double* %13573
%13575 = load double*, double** %10
%13576 = getelementptr inbounds double, double* %13575, i64 1
%13577 = load double, double* %13576
%13578 = fsub double %13574, %13577
%13579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13578, double* %13579
%13580 = load double*, double** %13
%13581 = getelementptr inbounds double, double* %13580, i64 2
%13582 = load double, double* %13581
%13583 = load double*, double** %10
%13584 = getelementptr inbounds double, double* %13583, i64 2
%13585 = load double, double* %13584
%13586 = fsub double %13582, %13585
%13587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13586, double* %13587
%13588 = load double*, double** %9
%13589 = getelementptr inbounds double, double* %13588, i64 0
%13590 = load double, double* %13589
%13591 = load double*, double** %10
%13592 = getelementptr inbounds double, double* %13591, i64 0
%13593 = load double, double* %13592
%13594 = fsub double %13590, %13593
%13595 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13594, double* %13595
%13596 = load double*, double** %9
%13597 = getelementptr inbounds double, double* %13596, i64 1
%13598 = load double, double* %13597
%13599 = load double*, double** %10
%13600 = getelementptr inbounds double, double* %13599, i64 1
%13601 = load double, double* %13600
%13602 = fsub double %13598, %13601
%13603 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13602, double* %13603
%13604 = load double*, double** %9
%13605 = getelementptr inbounds double, double* %13604, i64 2
%13606 = load double, double* %13605
%13607 = load double*, double** %10
%13608 = getelementptr inbounds double, double* %13607, i64 2
%13609 = load double, double* %13608
%13610 = fsub double %13606, %13609
%13611 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13610, double* %13611
%13612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13613 = load double, double* %13612
%13614 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13615 = load double, double* %13614
%13616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13617 = load double, double* %13616
%13618 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13619 = load double, double* %13618
%13620 = fmul double %13617, %13619
%13621 = fneg double %13620
%13622 = call double @llvm.fmuladd.f64(double %13613, double %13615, double %13621)
%13623 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13622, double* %13623
%13624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13625 = load double, double* %13624
%13626 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13627 = load double, double* %13626
%13628 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13629 = load double, double* %13628
%13630 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13631 = load double, double* %13630
%13632 = fmul double %13629, %13631
%13633 = fneg double %13632
%13634 = call double @llvm.fmuladd.f64(double %13625, double %13627, double %13633)
%13635 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13634, double* %13635
%13636 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13637 = load double, double* %13636
%13638 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13639 = load double, double* %13638
%13640 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13641 = load double, double* %13640
%13642 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13643 = load double, double* %13642
%13644 = fmul double %13641, %13643
%13645 = fneg double %13644
%13646 = call double @llvm.fmuladd.f64(double %13637, double %13639, double %13645)
%13647 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13646, double* %13647
%13648 = load double*, double** %11
%13649 = getelementptr inbounds double, double* %13648, i64 0
%13650 = load double, double* %13649
%13651 = load double*, double** %10
%13652 = getelementptr inbounds double, double* %13651, i64 0
%13653 = load double, double* %13652
%13654 = fsub double %13650, %13653
%13655 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13654, double* %13655
%13656 = load double*, double** %11
%13657 = getelementptr inbounds double, double* %13656, i64 1
%13658 = load double, double* %13657
%13659 = load double*, double** %10
%13660 = getelementptr inbounds double, double* %13659, i64 1
%13661 = load double, double* %13660
%13662 = fsub double %13658, %13661
%13663 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13662, double* %13663
%13664 = load double*, double** %11
%13665 = getelementptr inbounds double, double* %13664, i64 2
%13666 = load double, double* %13665
%13667 = load double*, double** %10
%13668 = getelementptr inbounds double, double* %13667, i64 2
%13669 = load double, double* %13668
%13670 = fsub double %13666, %13669
%13671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13670, double* %13671
%13672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13673 = load double, double* %13672
%13674 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13675 = load double, double* %13674
%13676 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13677 = load double, double* %13676
%13678 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13679 = load double, double* %13678
%13680 = fmul double %13677, %13679
%13681 = call double @llvm.fmuladd.f64(double %13673, double %13675, double %13680)
%13682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13683 = load double, double* %13682
%13684 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13685 = load double, double* %13684
%13686 = call double @llvm.fmuladd.f64(double %13683, double %13685, double %13681)
%13687 = fcmp ogt double %13686, 0.000000e+00
br i1 %13687, label %13688, label %13689
13688: ; preds = %13563
store i32 0, i32* %7
br label %37464
13689: ; preds = %13563
%13690 = load double*, double** %13
%13691 = getelementptr inbounds double, double* %13690, i64 0
%13692 = load double, double* %13691
%13693 = load double*, double** %9
%13694 = getelementptr inbounds double, double* %13693, i64 0
%13695 = load double, double* %13694
%13696 = fsub double %13692, %13695
%13697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13696, double* %13697
%13698 = load double*, double** %13
%13699 = getelementptr inbounds double, double* %13698, i64 1
%13700 = load double, double* %13699
%13701 = load double*, double** %9
%13702 = getelementptr inbounds double, double* %13701, i64 1
%13703 = load double, double* %13702
%13704 = fsub double %13700, %13703
%13705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13704, double* %13705
%13706 = load double*, double** %13
%13707 = getelementptr inbounds double, double* %13706, i64 2
%13708 = load double, double* %13707
%13709 = load double*, double** %9
%13710 = getelementptr inbounds double, double* %13709, i64 2
%13711 = load double, double* %13710
%13712 = fsub double %13708, %13711
%13713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13712, double* %13713
%13714 = load double*, double** %8
%13715 = getelementptr inbounds double, double* %13714, i64 0
%13716 = load double, double* %13715
%13717 = load double*, double** %9
%13718 = getelementptr inbounds double, double* %13717, i64 0
%13719 = load double, double* %13718
%13720 = fsub double %13716, %13719
%13721 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13720, double* %13721
%13722 = load double*, double** %8
%13723 = getelementptr inbounds double, double* %13722, i64 1
%13724 = load double, double* %13723
%13725 = load double*, double** %9
%13726 = getelementptr inbounds double, double* %13725, i64 1
%13727 = load double, double* %13726
%13728 = fsub double %13724, %13727
%13729 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13728, double* %13729
%13730 = load double*, double** %8
%13731 = getelementptr inbounds double, double* %13730, i64 2
%13732 = load double, double* %13731
%13733 = load double*, double** %9
%13734 = getelementptr inbounds double, double* %13733, i64 2
%13735 = load double, double* %13734
%13736 = fsub double %13732, %13735
%13737 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13736, double* %13737
%13738 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13739 = load double, double* %13738
%13740 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13741 = load double, double* %13740
%13742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13743 = load double, double* %13742
%13744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13745 = load double, double* %13744
%13746 = fmul double %13743, %13745
%13747 = fneg double %13746
%13748 = call double @llvm.fmuladd.f64(double %13739, double %13741, double %13747)
%13749 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13748, double* %13749
%13750 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13751 = load double, double* %13750
%13752 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13753 = load double, double* %13752
%13754 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13755 = load double, double* %13754
%13756 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13757 = load double, double* %13756
%13758 = fmul double %13755, %13757
%13759 = fneg double %13758
%13760 = call double @llvm.fmuladd.f64(double %13751, double %13753, double %13759)
%13761 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13760, double* %13761
%13762 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13763 = load double, double* %13762
%13764 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13765 = load double, double* %13764
%13766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13767 = load double, double* %13766
%13768 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13769 = load double, double* %13768
%13770 = fmul double %13767, %13769
%13771 = fneg double %13770
%13772 = call double @llvm.fmuladd.f64(double %13763, double %13765, double %13771)
%13773 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13772, double* %13773
%13774 = load double*, double** %12
%13775 = getelementptr inbounds double, double* %13774, i64 0
%13776 = load double, double* %13775
%13777 = load double*, double** %9
%13778 = getelementptr inbounds double, double* %13777, i64 0
%13779 = load double, double* %13778
%13780 = fsub double %13776, %13779
%13781 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13780, double* %13781
%13782 = load double*, double** %12
%13783 = getelementptr inbounds double, double* %13782, i64 1
%13784 = load double, double* %13783
%13785 = load double*, double** %9
%13786 = getelementptr inbounds double, double* %13785, i64 1
%13787 = load double, double* %13786
%13788 = fsub double %13784, %13787
%13789 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13788, double* %13789
%13790 = load double*, double** %12
%13791 = getelementptr inbounds double, double* %13790, i64 2
%13792 = load double, double* %13791
%13793 = load double*, double** %9
%13794 = getelementptr inbounds double, double* %13793, i64 2
%13795 = load double, double* %13794
%13796 = fsub double %13792, %13795
%13797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13796, double* %13797
%13798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13799 = load double, double* %13798
%13800 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13801 = load double, double* %13800
%13802 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13803 = load double, double* %13802
%13804 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13805 = load double, double* %13804
%13806 = fmul double %13803, %13805
%13807 = call double @llvm.fmuladd.f64(double %13799, double %13801, double %13806)
%13808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13809 = load double, double* %13808
%13810 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13811 = load double, double* %13810
%13812 = call double @llvm.fmuladd.f64(double %13809, double %13811, double %13807)
%13813 = fcmp ogt double %13812, 0.000000e+00
br i1 %13813, label %13814, label %13815
13814: ; preds = %13689
store i32 0, i32* %7
br label %37464
13815: ; preds = %13689
store i32 1, i32* %7
br label %37464
13816: ; preds = %13560
%13817 = load double, double* %19
%13818 = fcmp olt double %13817, 0.000000e+00
br i1 %13818, label %13819, label %14072
13819: ; preds = %13816
%13820 = load double*, double** %12
%13821 = getelementptr inbounds double, double* %13820, i64 0
%13822 = load double, double* %13821
%13823 = load double*, double** %10
%13824 = getelementptr inbounds double, double* %13823, i64 0
%13825 = load double, double* %13824
%13826 = fsub double %13822, %13825
%13827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13826, double* %13827
%13828 = load double*, double** %12
%13829 = getelementptr inbounds double, double* %13828, i64 1
%13830 = load double, double* %13829
%13831 = load double*, double** %10
%13832 = getelementptr inbounds double, double* %13831, i64 1
%13833 = load double, double* %13832
%13834 = fsub double %13830, %13833
%13835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13834, double* %13835
%13836 = load double*, double** %12
%13837 = getelementptr inbounds double, double* %13836, i64 2
%13838 = load double, double* %13837
%13839 = load double*, double** %10
%13840 = getelementptr inbounds double, double* %13839, i64 2
%13841 = load double, double* %13840
%13842 = fsub double %13838, %13841
%13843 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13842, double* %13843
%13844 = load double*, double** %9
%13845 = getelementptr inbounds double, double* %13844, i64 0
%13846 = load double, double* %13845
%13847 = load double*, double** %10
%13848 = getelementptr inbounds double, double* %13847, i64 0
%13849 = load double, double* %13848
%13850 = fsub double %13846, %13849
%13851 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13850, double* %13851
%13852 = load double*, double** %9
%13853 = getelementptr inbounds double, double* %13852, i64 1
%13854 = load double, double* %13853
%13855 = load double*, double** %10
%13856 = getelementptr inbounds double, double* %13855, i64 1
%13857 = load double, double* %13856
%13858 = fsub double %13854, %13857
%13859 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13858, double* %13859
%13860 = load double*, double** %9
%13861 = getelementptr inbounds double, double* %13860, i64 2
%13862 = load double, double* %13861
%13863 = load double*, double** %10
%13864 = getelementptr inbounds double, double* %13863, i64 2
%13865 = load double, double* %13864
%13866 = fsub double %13862, %13865
%13867 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13866, double* %13867
%13868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13869 = load double, double* %13868
%13870 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13871 = load double, double* %13870
%13872 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13873 = load double, double* %13872
%13874 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13875 = load double, double* %13874
%13876 = fmul double %13873, %13875
%13877 = fneg double %13876
%13878 = call double @llvm.fmuladd.f64(double %13869, double %13871, double %13877)
%13879 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %13878, double* %13879
%13880 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13881 = load double, double* %13880
%13882 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13883 = load double, double* %13882
%13884 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13885 = load double, double* %13884
%13886 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13887 = load double, double* %13886
%13888 = fmul double %13885, %13887
%13889 = fneg double %13888
%13890 = call double @llvm.fmuladd.f64(double %13881, double %13883, double %13889)
%13891 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %13890, double* %13891
%13892 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13893 = load double, double* %13892
%13894 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%13895 = load double, double* %13894
%13896 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13897 = load double, double* %13896
%13898 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%13899 = load double, double* %13898
%13900 = fmul double %13897, %13899
%13901 = fneg double %13900
%13902 = call double @llvm.fmuladd.f64(double %13893, double %13895, double %13901)
%13903 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %13902, double* %13903
%13904 = load double*, double** %13
%13905 = getelementptr inbounds double, double* %13904, i64 0
%13906 = load double, double* %13905
%13907 = load double*, double** %10
%13908 = getelementptr inbounds double, double* %13907, i64 0
%13909 = load double, double* %13908
%13910 = fsub double %13906, %13909
%13911 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13910, double* %13911
%13912 = load double*, double** %13
%13913 = getelementptr inbounds double, double* %13912, i64 1
%13914 = load double, double* %13913
%13915 = load double*, double** %10
%13916 = getelementptr inbounds double, double* %13915, i64 1
%13917 = load double, double* %13916
%13918 = fsub double %13914, %13917
%13919 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13918, double* %13919
%13920 = load double*, double** %13
%13921 = getelementptr inbounds double, double* %13920, i64 2
%13922 = load double, double* %13921
%13923 = load double*, double** %10
%13924 = getelementptr inbounds double, double* %13923, i64 2
%13925 = load double, double* %13924
%13926 = fsub double %13922, %13925
%13927 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13926, double* %13927
%13928 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%13929 = load double, double* %13928
%13930 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%13931 = load double, double* %13930
%13932 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13933 = load double, double* %13932
%13934 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%13935 = load double, double* %13934
%13936 = fmul double %13933, %13935
%13937 = call double @llvm.fmuladd.f64(double %13929, double %13931, double %13936)
%13938 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13939 = load double, double* %13938
%13940 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%13941 = load double, double* %13940
%13942 = call double @llvm.fmuladd.f64(double %13939, double %13941, double %13937)
%13943 = fcmp ogt double %13942, 0.000000e+00
br i1 %13943, label %13944, label %13945
13944: ; preds = %13819
store i32 0, i32* %7
br label %37464
13945: ; preds = %13819
%13946 = load double*, double** %12
%13947 = getelementptr inbounds double, double* %13946, i64 0
%13948 = load double, double* %13947
%13949 = load double*, double** %9
%13950 = getelementptr inbounds double, double* %13949, i64 0
%13951 = load double, double* %13950
%13952 = fsub double %13948, %13951
%13953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %13952, double* %13953
%13954 = load double*, double** %12
%13955 = getelementptr inbounds double, double* %13954, i64 1
%13956 = load double, double* %13955
%13957 = load double*, double** %9
%13958 = getelementptr inbounds double, double* %13957, i64 1
%13959 = load double, double* %13958
%13960 = fsub double %13956, %13959
%13961 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %13960, double* %13961
%13962 = load double*, double** %12
%13963 = getelementptr inbounds double, double* %13962, i64 2
%13964 = load double, double* %13963
%13965 = load double*, double** %9
%13966 = getelementptr inbounds double, double* %13965, i64 2
%13967 = load double, double* %13966
%13968 = fsub double %13964, %13967
%13969 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %13968, double* %13969
%13970 = load double*, double** %8
%13971 = getelementptr inbounds double, double* %13970, i64 0
%13972 = load double, double* %13971
%13973 = load double*, double** %9
%13974 = getelementptr inbounds double, double* %13973, i64 0
%13975 = load double, double* %13974
%13976 = fsub double %13972, %13975
%13977 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %13976, double* %13977
%13978 = load double*, double** %8
%13979 = getelementptr inbounds double, double* %13978, i64 1
%13980 = load double, double* %13979
%13981 = load double*, double** %9
%13982 = getelementptr inbounds double, double* %13981, i64 1
%13983 = load double, double* %13982
%13984 = fsub double %13980, %13983
%13985 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %13984, double* %13985
%13986 = load double*, double** %8
%13987 = getelementptr inbounds double, double* %13986, i64 2
%13988 = load double, double* %13987
%13989 = load double*, double** %9
%13990 = getelementptr inbounds double, double* %13989, i64 2
%13991 = load double, double* %13990
%13992 = fsub double %13988, %13991
%13993 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %13992, double* %13993
%13994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%13995 = load double, double* %13994
%13996 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%13997 = load double, double* %13996
%13998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%13999 = load double, double* %13998
%14000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14001 = load double, double* %14000
%14002 = fmul double %13999, %14001
%14003 = fneg double %14002
%14004 = call double @llvm.fmuladd.f64(double %13995, double %13997, double %14003)
%14005 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14004, double* %14005
%14006 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14007 = load double, double* %14006
%14008 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14009 = load double, double* %14008
%14010 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14011 = load double, double* %14010
%14012 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14013 = load double, double* %14012
%14014 = fmul double %14011, %14013
%14015 = fneg double %14014
%14016 = call double @llvm.fmuladd.f64(double %14007, double %14009, double %14015)
%14017 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14016, double* %14017
%14018 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14019 = load double, double* %14018
%14020 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14021 = load double, double* %14020
%14022 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14023 = load double, double* %14022
%14024 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14025 = load double, double* %14024
%14026 = fmul double %14023, %14025
%14027 = fneg double %14026
%14028 = call double @llvm.fmuladd.f64(double %14019, double %14021, double %14027)
%14029 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14028, double* %14029
%14030 = load double*, double** %11
%14031 = getelementptr inbounds double, double* %14030, i64 0
%14032 = load double, double* %14031
%14033 = load double*, double** %9
%14034 = getelementptr inbounds double, double* %14033, i64 0
%14035 = load double, double* %14034
%14036 = fsub double %14032, %14035
%14037 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14036, double* %14037
%14038 = load double*, double** %11
%14039 = getelementptr inbounds double, double* %14038, i64 1
%14040 = load double, double* %14039
%14041 = load double*, double** %9
%14042 = getelementptr inbounds double, double* %14041, i64 1
%14043 = load double, double* %14042
%14044 = fsub double %14040, %14043
%14045 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14044, double* %14045
%14046 = load double*, double** %11
%14047 = getelementptr inbounds double, double* %14046, i64 2
%14048 = load double, double* %14047
%14049 = load double*, double** %9
%14050 = getelementptr inbounds double, double* %14049, i64 2
%14051 = load double, double* %14050
%14052 = fsub double %14048, %14051
%14053 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14052, double* %14053
%14054 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14055 = load double, double* %14054
%14056 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14057 = load double, double* %14056
%14058 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14059 = load double, double* %14058
%14060 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14061 = load double, double* %14060
%14062 = fmul double %14059, %14061
%14063 = call double @llvm.fmuladd.f64(double %14055, double %14057, double %14062)
%14064 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14065 = load double, double* %14064
%14066 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14067 = load double, double* %14066
%14068 = call double @llvm.fmuladd.f64(double %14065, double %14067, double %14063)
%14069 = fcmp ogt double %14068, 0.000000e+00
br i1 %14069, label %14070, label %14071
14070: ; preds = %13945
store i32 0, i32* %7
br label %37464
14071: ; preds = %13945
store i32 1, i32* %7
br label %37464
14072: ; preds = %13816
%14073 = load double*, double** %11
%14074 = getelementptr inbounds double, double* %14073, i64 0
%14075 = load double, double* %14074
%14076 = load double*, double** %8
%14077 = getelementptr inbounds double, double* %14076, i64 0
%14078 = load double, double* %14077
%14079 = fsub double %14075, %14078
%14080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14079, double* %14080
%14081 = load double*, double** %11
%14082 = getelementptr inbounds double, double* %14081, i64 1
%14083 = load double, double* %14082
%14084 = load double*, double** %8
%14085 = getelementptr inbounds double, double* %14084, i64 1
%14086 = load double, double* %14085
%14087 = fsub double %14083, %14086
%14088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14087, double* %14088
%14089 = load double*, double** %11
%14090 = getelementptr inbounds double, double* %14089, i64 2
%14091 = load double, double* %14090
%14092 = load double*, double** %8
%14093 = getelementptr inbounds double, double* %14092, i64 2
%14094 = load double, double* %14093
%14095 = fsub double %14091, %14094
%14096 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14095, double* %14096
%14097 = load double*, double** %9
%14098 = getelementptr inbounds double, double* %14097, i64 0
%14099 = load double, double* %14098
%14100 = load double*, double** %8
%14101 = getelementptr inbounds double, double* %14100, i64 0
%14102 = load double, double* %14101
%14103 = fsub double %14099, %14102
%14104 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14103, double* %14104
%14105 = load double*, double** %9
%14106 = getelementptr inbounds double, double* %14105, i64 1
%14107 = load double, double* %14106
%14108 = load double*, double** %8
%14109 = getelementptr inbounds double, double* %14108, i64 1
%14110 = load double, double* %14109
%14111 = fsub double %14107, %14110
%14112 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14111, double* %14112
%14113 = load double*, double** %9
%14114 = getelementptr inbounds double, double* %14113, i64 2
%14115 = load double, double* %14114
%14116 = load double*, double** %8
%14117 = getelementptr inbounds double, double* %14116, i64 2
%14118 = load double, double* %14117
%14119 = fsub double %14115, %14118
%14120 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14119, double* %14120
%14121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14122 = load double, double* %14121
%14123 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14124 = load double, double* %14123
%14125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14126 = load double, double* %14125
%14127 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14128 = load double, double* %14127
%14129 = fmul double %14126, %14128
%14130 = fneg double %14129
%14131 = call double @llvm.fmuladd.f64(double %14122, double %14124, double %14130)
%14132 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14131, double* %14132
%14133 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14134 = load double, double* %14133
%14135 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14136 = load double, double* %14135
%14137 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14138 = load double, double* %14137
%14139 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14140 = load double, double* %14139
%14141 = fmul double %14138, %14140
%14142 = fneg double %14141
%14143 = call double @llvm.fmuladd.f64(double %14134, double %14136, double %14142)
%14144 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14143, double* %14144
%14145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14146 = load double, double* %14145
%14147 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14148 = load double, double* %14147
%14149 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14150 = load double, double* %14149
%14151 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14152 = load double, double* %14151
%14153 = fmul double %14150, %14152
%14154 = fneg double %14153
%14155 = call double @llvm.fmuladd.f64(double %14146, double %14148, double %14154)
%14156 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14155, double* %14156
%14157 = load double*, double** %12
%14158 = getelementptr inbounds double, double* %14157, i64 0
%14159 = load double, double* %14158
%14160 = load double*, double** %8
%14161 = getelementptr inbounds double, double* %14160, i64 0
%14162 = load double, double* %14161
%14163 = fsub double %14159, %14162
%14164 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14163, double* %14164
%14165 = load double*, double** %12
%14166 = getelementptr inbounds double, double* %14165, i64 1
%14167 = load double, double* %14166
%14168 = load double*, double** %8
%14169 = getelementptr inbounds double, double* %14168, i64 1
%14170 = load double, double* %14169
%14171 = fsub double %14167, %14170
%14172 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14171, double* %14172
%14173 = load double*, double** %12
%14174 = getelementptr inbounds double, double* %14173, i64 2
%14175 = load double, double* %14174
%14176 = load double*, double** %8
%14177 = getelementptr inbounds double, double* %14176, i64 2
%14178 = load double, double* %14177
%14179 = fsub double %14175, %14178
%14180 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14179, double* %14180
%14181 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14182 = load double, double* %14181
%14183 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14184 = load double, double* %14183
%14185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14186 = load double, double* %14185
%14187 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14188 = load double, double* %14187
%14189 = fmul double %14186, %14188
%14190 = call double @llvm.fmuladd.f64(double %14182, double %14184, double %14189)
%14191 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14192 = load double, double* %14191
%14193 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14194 = load double, double* %14193
%14195 = call double @llvm.fmuladd.f64(double %14192, double %14194, double %14190)
%14196 = fcmp ogt double %14195, 0.000000e+00
br i1 %14196, label %14197, label %14198
14197: ; preds = %14072
store i32 0, i32* %7
br label %37464
14198: ; preds = %14072
%14199 = load double*, double** %11
%14200 = getelementptr inbounds double, double* %14199, i64 0
%14201 = load double, double* %14200
%14202 = load double*, double** %9
%14203 = getelementptr inbounds double, double* %14202, i64 0
%14204 = load double, double* %14203
%14205 = fsub double %14201, %14204
%14206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14205, double* %14206
%14207 = load double*, double** %11
%14208 = getelementptr inbounds double, double* %14207, i64 1
%14209 = load double, double* %14208
%14210 = load double*, double** %9
%14211 = getelementptr inbounds double, double* %14210, i64 1
%14212 = load double, double* %14211
%14213 = fsub double %14209, %14212
%14214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14213, double* %14214
%14215 = load double*, double** %11
%14216 = getelementptr inbounds double, double* %14215, i64 2
%14217 = load double, double* %14216
%14218 = load double*, double** %9
%14219 = getelementptr inbounds double, double* %14218, i64 2
%14220 = load double, double* %14219
%14221 = fsub double %14217, %14220
%14222 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14221, double* %14222
%14223 = load double*, double** %10
%14224 = getelementptr inbounds double, double* %14223, i64 0
%14225 = load double, double* %14224
%14226 = load double*, double** %9
%14227 = getelementptr inbounds double, double* %14226, i64 0
%14228 = load double, double* %14227
%14229 = fsub double %14225, %14228
%14230 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14229, double* %14230
%14231 = load double*, double** %10
%14232 = getelementptr inbounds double, double* %14231, i64 1
%14233 = load double, double* %14232
%14234 = load double*, double** %9
%14235 = getelementptr inbounds double, double* %14234, i64 1
%14236 = load double, double* %14235
%14237 = fsub double %14233, %14236
%14238 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14237, double* %14238
%14239 = load double*, double** %10
%14240 = getelementptr inbounds double, double* %14239, i64 2
%14241 = load double, double* %14240
%14242 = load double*, double** %9
%14243 = getelementptr inbounds double, double* %14242, i64 2
%14244 = load double, double* %14243
%14245 = fsub double %14241, %14244
%14246 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14245, double* %14246
%14247 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14248 = load double, double* %14247
%14249 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14250 = load double, double* %14249
%14251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14252 = load double, double* %14251
%14253 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14254 = load double, double* %14253
%14255 = fmul double %14252, %14254
%14256 = fneg double %14255
%14257 = call double @llvm.fmuladd.f64(double %14248, double %14250, double %14256)
%14258 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14257, double* %14258
%14259 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14260 = load double, double* %14259
%14261 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14262 = load double, double* %14261
%14263 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14264 = load double, double* %14263
%14265 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14266 = load double, double* %14265
%14267 = fmul double %14264, %14266
%14268 = fneg double %14267
%14269 = call double @llvm.fmuladd.f64(double %14260, double %14262, double %14268)
%14270 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14269, double* %14270
%14271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14272 = load double, double* %14271
%14273 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14274 = load double, double* %14273
%14275 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14276 = load double, double* %14275
%14277 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14278 = load double, double* %14277
%14279 = fmul double %14276, %14278
%14280 = fneg double %14279
%14281 = call double @llvm.fmuladd.f64(double %14272, double %14274, double %14280)
%14282 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14281, double* %14282
%14283 = load double*, double** %13
%14284 = getelementptr inbounds double, double* %14283, i64 0
%14285 = load double, double* %14284
%14286 = load double*, double** %9
%14287 = getelementptr inbounds double, double* %14286, i64 0
%14288 = load double, double* %14287
%14289 = fsub double %14285, %14288
%14290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14289, double* %14290
%14291 = load double*, double** %13
%14292 = getelementptr inbounds double, double* %14291, i64 1
%14293 = load double, double* %14292
%14294 = load double*, double** %9
%14295 = getelementptr inbounds double, double* %14294, i64 1
%14296 = load double, double* %14295
%14297 = fsub double %14293, %14296
%14298 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14297, double* %14298
%14299 = load double*, double** %13
%14300 = getelementptr inbounds double, double* %14299, i64 2
%14301 = load double, double* %14300
%14302 = load double*, double** %9
%14303 = getelementptr inbounds double, double* %14302, i64 2
%14304 = load double, double* %14303
%14305 = fsub double %14301, %14304
%14306 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14305, double* %14306
%14307 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14308 = load double, double* %14307
%14309 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14310 = load double, double* %14309
%14311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14312 = load double, double* %14311
%14313 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14314 = load double, double* %14313
%14315 = fmul double %14312, %14314
%14316 = call double @llvm.fmuladd.f64(double %14308, double %14310, double %14315)
%14317 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14318 = load double, double* %14317
%14319 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14320 = load double, double* %14319
%14321 = call double @llvm.fmuladd.f64(double %14318, double %14320, double %14316)
%14322 = fcmp ogt double %14321, 0.000000e+00
br i1 %14322, label %14323, label %14324
14323: ; preds = %14198
store i32 0, i32* %7
br label %37464
14324: ; preds = %14198
store i32 1, i32* %7
br label %37464
14325: ; preds = %13557
%14326 = load double, double* %18
%14327 = fcmp olt double %14326, 0.000000e+00
br i1 %14327, label %14328, label %14837
14328: ; preds = %14325
%14329 = load double, double* %19
%14330 = fcmp oge double %14329, 0.000000e+00
br i1 %14330, label %14331, label %14584
14331: ; preds = %14328
%14332 = load double*, double** %12
%14333 = getelementptr inbounds double, double* %14332, i64 0
%14334 = load double, double* %14333
%14335 = load double*, double** %8
%14336 = getelementptr inbounds double, double* %14335, i64 0
%14337 = load double, double* %14336
%14338 = fsub double %14334, %14337
%14339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14338, double* %14339
%14340 = load double*, double** %12
%14341 = getelementptr inbounds double, double* %14340, i64 1
%14342 = load double, double* %14341
%14343 = load double*, double** %8
%14344 = getelementptr inbounds double, double* %14343, i64 1
%14345 = load double, double* %14344
%14346 = fsub double %14342, %14345
%14347 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14346, double* %14347
%14348 = load double*, double** %12
%14349 = getelementptr inbounds double, double* %14348, i64 2
%14350 = load double, double* %14349
%14351 = load double*, double** %8
%14352 = getelementptr inbounds double, double* %14351, i64 2
%14353 = load double, double* %14352
%14354 = fsub double %14350, %14353
%14355 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14354, double* %14355
%14356 = load double*, double** %9
%14357 = getelementptr inbounds double, double* %14356, i64 0
%14358 = load double, double* %14357
%14359 = load double*, double** %8
%14360 = getelementptr inbounds double, double* %14359, i64 0
%14361 = load double, double* %14360
%14362 = fsub double %14358, %14361
%14363 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14362, double* %14363
%14364 = load double*, double** %9
%14365 = getelementptr inbounds double, double* %14364, i64 1
%14366 = load double, double* %14365
%14367 = load double*, double** %8
%14368 = getelementptr inbounds double, double* %14367, i64 1
%14369 = load double, double* %14368
%14370 = fsub double %14366, %14369
%14371 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14370, double* %14371
%14372 = load double*, double** %9
%14373 = getelementptr inbounds double, double* %14372, i64 2
%14374 = load double, double* %14373
%14375 = load double*, double** %8
%14376 = getelementptr inbounds double, double* %14375, i64 2
%14377 = load double, double* %14376
%14378 = fsub double %14374, %14377
%14379 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14378, double* %14379
%14380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14381 = load double, double* %14380
%14382 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14383 = load double, double* %14382
%14384 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14385 = load double, double* %14384
%14386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14387 = load double, double* %14386
%14388 = fmul double %14385, %14387
%14389 = fneg double %14388
%14390 = call double @llvm.fmuladd.f64(double %14381, double %14383, double %14389)
%14391 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14390, double* %14391
%14392 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14393 = load double, double* %14392
%14394 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14395 = load double, double* %14394
%14396 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14397 = load double, double* %14396
%14398 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14399 = load double, double* %14398
%14400 = fmul double %14397, %14399
%14401 = fneg double %14400
%14402 = call double @llvm.fmuladd.f64(double %14393, double %14395, double %14401)
%14403 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14402, double* %14403
%14404 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14405 = load double, double* %14404
%14406 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14407 = load double, double* %14406
%14408 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14409 = load double, double* %14408
%14410 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14411 = load double, double* %14410
%14412 = fmul double %14409, %14411
%14413 = fneg double %14412
%14414 = call double @llvm.fmuladd.f64(double %14405, double %14407, double %14413)
%14415 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14414, double* %14415
%14416 = load double*, double** %13
%14417 = getelementptr inbounds double, double* %14416, i64 0
%14418 = load double, double* %14417
%14419 = load double*, double** %8
%14420 = getelementptr inbounds double, double* %14419, i64 0
%14421 = load double, double* %14420
%14422 = fsub double %14418, %14421
%14423 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14422, double* %14423
%14424 = load double*, double** %13
%14425 = getelementptr inbounds double, double* %14424, i64 1
%14426 = load double, double* %14425
%14427 = load double*, double** %8
%14428 = getelementptr inbounds double, double* %14427, i64 1
%14429 = load double, double* %14428
%14430 = fsub double %14426, %14429
%14431 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14430, double* %14431
%14432 = load double*, double** %13
%14433 = getelementptr inbounds double, double* %14432, i64 2
%14434 = load double, double* %14433
%14435 = load double*, double** %8
%14436 = getelementptr inbounds double, double* %14435, i64 2
%14437 = load double, double* %14436
%14438 = fsub double %14434, %14437
%14439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14438, double* %14439
%14440 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14441 = load double, double* %14440
%14442 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14443 = load double, double* %14442
%14444 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14445 = load double, double* %14444
%14446 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14447 = load double, double* %14446
%14448 = fmul double %14445, %14447
%14449 = call double @llvm.fmuladd.f64(double %14441, double %14443, double %14448)
%14450 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14451 = load double, double* %14450
%14452 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14453 = load double, double* %14452
%14454 = call double @llvm.fmuladd.f64(double %14451, double %14453, double %14449)
%14455 = fcmp ogt double %14454, 0.000000e+00
br i1 %14455, label %14456, label %14457
14456: ; preds = %14331
store i32 0, i32* %7
br label %37464
14457: ; preds = %14331
%14458 = load double*, double** %12
%14459 = getelementptr inbounds double, double* %14458, i64 0
%14460 = load double, double* %14459
%14461 = load double*, double** %9
%14462 = getelementptr inbounds double, double* %14461, i64 0
%14463 = load double, double* %14462
%14464 = fsub double %14460, %14463
%14465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14464, double* %14465
%14466 = load double*, double** %12
%14467 = getelementptr inbounds double, double* %14466, i64 1
%14468 = load double, double* %14467
%14469 = load double*, double** %9
%14470 = getelementptr inbounds double, double* %14469, i64 1
%14471 = load double, double* %14470
%14472 = fsub double %14468, %14471
%14473 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14472, double* %14473
%14474 = load double*, double** %12
%14475 = getelementptr inbounds double, double* %14474, i64 2
%14476 = load double, double* %14475
%14477 = load double*, double** %9
%14478 = getelementptr inbounds double, double* %14477, i64 2
%14479 = load double, double* %14478
%14480 = fsub double %14476, %14479
%14481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14480, double* %14481
%14482 = load double*, double** %10
%14483 = getelementptr inbounds double, double* %14482, i64 0
%14484 = load double, double* %14483
%14485 = load double*, double** %9
%14486 = getelementptr inbounds double, double* %14485, i64 0
%14487 = load double, double* %14486
%14488 = fsub double %14484, %14487
%14489 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14488, double* %14489
%14490 = load double*, double** %10
%14491 = getelementptr inbounds double, double* %14490, i64 1
%14492 = load double, double* %14491
%14493 = load double*, double** %9
%14494 = getelementptr inbounds double, double* %14493, i64 1
%14495 = load double, double* %14494
%14496 = fsub double %14492, %14495
%14497 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14496, double* %14497
%14498 = load double*, double** %10
%14499 = getelementptr inbounds double, double* %14498, i64 2
%14500 = load double, double* %14499
%14501 = load double*, double** %9
%14502 = getelementptr inbounds double, double* %14501, i64 2
%14503 = load double, double* %14502
%14504 = fsub double %14500, %14503
%14505 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14504, double* %14505
%14506 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14507 = load double, double* %14506
%14508 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14509 = load double, double* %14508
%14510 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14511 = load double, double* %14510
%14512 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14513 = load double, double* %14512
%14514 = fmul double %14511, %14513
%14515 = fneg double %14514
%14516 = call double @llvm.fmuladd.f64(double %14507, double %14509, double %14515)
%14517 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14516, double* %14517
%14518 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14519 = load double, double* %14518
%14520 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14521 = load double, double* %14520
%14522 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14523 = load double, double* %14522
%14524 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14525 = load double, double* %14524
%14526 = fmul double %14523, %14525
%14527 = fneg double %14526
%14528 = call double @llvm.fmuladd.f64(double %14519, double %14521, double %14527)
%14529 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14528, double* %14529
%14530 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14531 = load double, double* %14530
%14532 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14533 = load double, double* %14532
%14534 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14535 = load double, double* %14534
%14536 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14537 = load double, double* %14536
%14538 = fmul double %14535, %14537
%14539 = fneg double %14538
%14540 = call double @llvm.fmuladd.f64(double %14531, double %14533, double %14539)
%14541 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14540, double* %14541
%14542 = load double*, double** %11
%14543 = getelementptr inbounds double, double* %14542, i64 0
%14544 = load double, double* %14543
%14545 = load double*, double** %9
%14546 = getelementptr inbounds double, double* %14545, i64 0
%14547 = load double, double* %14546
%14548 = fsub double %14544, %14547
%14549 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14548, double* %14549
%14550 = load double*, double** %11
%14551 = getelementptr inbounds double, double* %14550, i64 1
%14552 = load double, double* %14551
%14553 = load double*, double** %9
%14554 = getelementptr inbounds double, double* %14553, i64 1
%14555 = load double, double* %14554
%14556 = fsub double %14552, %14555
%14557 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14556, double* %14557
%14558 = load double*, double** %11
%14559 = getelementptr inbounds double, double* %14558, i64 2
%14560 = load double, double* %14559
%14561 = load double*, double** %9
%14562 = getelementptr inbounds double, double* %14561, i64 2
%14563 = load double, double* %14562
%14564 = fsub double %14560, %14563
%14565 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14564, double* %14565
%14566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14567 = load double, double* %14566
%14568 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14569 = load double, double* %14568
%14570 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14571 = load double, double* %14570
%14572 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14573 = load double, double* %14572
%14574 = fmul double %14571, %14573
%14575 = call double @llvm.fmuladd.f64(double %14567, double %14569, double %14574)
%14576 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14577 = load double, double* %14576
%14578 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14579 = load double, double* %14578
%14580 = call double @llvm.fmuladd.f64(double %14577, double %14579, double %14575)
%14581 = fcmp ogt double %14580, 0.000000e+00
br i1 %14581, label %14582, label %14583
14582: ; preds = %14457
store i32 0, i32* %7
br label %37464
14583: ; preds = %14457
store i32 1, i32* %7
br label %37464
14584: ; preds = %14328
%14585 = load double*, double** %11
%14586 = getelementptr inbounds double, double* %14585, i64 0
%14587 = load double, double* %14586
%14588 = load double*, double** %10
%14589 = getelementptr inbounds double, double* %14588, i64 0
%14590 = load double, double* %14589
%14591 = fsub double %14587, %14590
%14592 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14591, double* %14592
%14593 = load double*, double** %11
%14594 = getelementptr inbounds double, double* %14593, i64 1
%14595 = load double, double* %14594
%14596 = load double*, double** %10
%14597 = getelementptr inbounds double, double* %14596, i64 1
%14598 = load double, double* %14597
%14599 = fsub double %14595, %14598
%14600 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14599, double* %14600
%14601 = load double*, double** %11
%14602 = getelementptr inbounds double, double* %14601, i64 2
%14603 = load double, double* %14602
%14604 = load double*, double** %10
%14605 = getelementptr inbounds double, double* %14604, i64 2
%14606 = load double, double* %14605
%14607 = fsub double %14603, %14606
%14608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14607, double* %14608
%14609 = load double*, double** %9
%14610 = getelementptr inbounds double, double* %14609, i64 0
%14611 = load double, double* %14610
%14612 = load double*, double** %10
%14613 = getelementptr inbounds double, double* %14612, i64 0
%14614 = load double, double* %14613
%14615 = fsub double %14611, %14614
%14616 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14615, double* %14616
%14617 = load double*, double** %9
%14618 = getelementptr inbounds double, double* %14617, i64 1
%14619 = load double, double* %14618
%14620 = load double*, double** %10
%14621 = getelementptr inbounds double, double* %14620, i64 1
%14622 = load double, double* %14621
%14623 = fsub double %14619, %14622
%14624 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14623, double* %14624
%14625 = load double*, double** %9
%14626 = getelementptr inbounds double, double* %14625, i64 2
%14627 = load double, double* %14626
%14628 = load double*, double** %10
%14629 = getelementptr inbounds double, double* %14628, i64 2
%14630 = load double, double* %14629
%14631 = fsub double %14627, %14630
%14632 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14631, double* %14632
%14633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14634 = load double, double* %14633
%14635 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14636 = load double, double* %14635
%14637 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14638 = load double, double* %14637
%14639 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14640 = load double, double* %14639
%14641 = fmul double %14638, %14640
%14642 = fneg double %14641
%14643 = call double @llvm.fmuladd.f64(double %14634, double %14636, double %14642)
%14644 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14643, double* %14644
%14645 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14646 = load double, double* %14645
%14647 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14648 = load double, double* %14647
%14649 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14650 = load double, double* %14649
%14651 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14652 = load double, double* %14651
%14653 = fmul double %14650, %14652
%14654 = fneg double %14653
%14655 = call double @llvm.fmuladd.f64(double %14646, double %14648, double %14654)
%14656 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14655, double* %14656
%14657 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14658 = load double, double* %14657
%14659 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14660 = load double, double* %14659
%14661 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14662 = load double, double* %14661
%14663 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14664 = load double, double* %14663
%14665 = fmul double %14662, %14664
%14666 = fneg double %14665
%14667 = call double @llvm.fmuladd.f64(double %14658, double %14660, double %14666)
%14668 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14667, double* %14668
%14669 = load double*, double** %12
%14670 = getelementptr inbounds double, double* %14669, i64 0
%14671 = load double, double* %14670
%14672 = load double*, double** %10
%14673 = getelementptr inbounds double, double* %14672, i64 0
%14674 = load double, double* %14673
%14675 = fsub double %14671, %14674
%14676 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14675, double* %14676
%14677 = load double*, double** %12
%14678 = getelementptr inbounds double, double* %14677, i64 1
%14679 = load double, double* %14678
%14680 = load double*, double** %10
%14681 = getelementptr inbounds double, double* %14680, i64 1
%14682 = load double, double* %14681
%14683 = fsub double %14679, %14682
%14684 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14683, double* %14684
%14685 = load double*, double** %12
%14686 = getelementptr inbounds double, double* %14685, i64 2
%14687 = load double, double* %14686
%14688 = load double*, double** %10
%14689 = getelementptr inbounds double, double* %14688, i64 2
%14690 = load double, double* %14689
%14691 = fsub double %14687, %14690
%14692 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14691, double* %14692
%14693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14694 = load double, double* %14693
%14695 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14696 = load double, double* %14695
%14697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14698 = load double, double* %14697
%14699 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14700 = load double, double* %14699
%14701 = fmul double %14698, %14700
%14702 = call double @llvm.fmuladd.f64(double %14694, double %14696, double %14701)
%14703 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14704 = load double, double* %14703
%14705 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14706 = load double, double* %14705
%14707 = call double @llvm.fmuladd.f64(double %14704, double %14706, double %14702)
%14708 = fcmp ogt double %14707, 0.000000e+00
br i1 %14708, label %14709, label %14710
14709: ; preds = %14584
store i32 0, i32* %7
br label %37464
14710: ; preds = %14584
%14711 = load double*, double** %11
%14712 = getelementptr inbounds double, double* %14711, i64 0
%14713 = load double, double* %14712
%14714 = load double*, double** %9
%14715 = getelementptr inbounds double, double* %14714, i64 0
%14716 = load double, double* %14715
%14717 = fsub double %14713, %14716
%14718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14717, double* %14718
%14719 = load double*, double** %11
%14720 = getelementptr inbounds double, double* %14719, i64 1
%14721 = load double, double* %14720
%14722 = load double*, double** %9
%14723 = getelementptr inbounds double, double* %14722, i64 1
%14724 = load double, double* %14723
%14725 = fsub double %14721, %14724
%14726 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14725, double* %14726
%14727 = load double*, double** %11
%14728 = getelementptr inbounds double, double* %14727, i64 2
%14729 = load double, double* %14728
%14730 = load double*, double** %9
%14731 = getelementptr inbounds double, double* %14730, i64 2
%14732 = load double, double* %14731
%14733 = fsub double %14729, %14732
%14734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14733, double* %14734
%14735 = load double*, double** %8
%14736 = getelementptr inbounds double, double* %14735, i64 0
%14737 = load double, double* %14736
%14738 = load double*, double** %9
%14739 = getelementptr inbounds double, double* %14738, i64 0
%14740 = load double, double* %14739
%14741 = fsub double %14737, %14740
%14742 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14741, double* %14742
%14743 = load double*, double** %8
%14744 = getelementptr inbounds double, double* %14743, i64 1
%14745 = load double, double* %14744
%14746 = load double*, double** %9
%14747 = getelementptr inbounds double, double* %14746, i64 1
%14748 = load double, double* %14747
%14749 = fsub double %14745, %14748
%14750 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14749, double* %14750
%14751 = load double*, double** %8
%14752 = getelementptr inbounds double, double* %14751, i64 2
%14753 = load double, double* %14752
%14754 = load double*, double** %9
%14755 = getelementptr inbounds double, double* %14754, i64 2
%14756 = load double, double* %14755
%14757 = fsub double %14753, %14756
%14758 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14757, double* %14758
%14759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14760 = load double, double* %14759
%14761 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14762 = load double, double* %14761
%14763 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14764 = load double, double* %14763
%14765 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14766 = load double, double* %14765
%14767 = fmul double %14764, %14766
%14768 = fneg double %14767
%14769 = call double @llvm.fmuladd.f64(double %14760, double %14762, double %14768)
%14770 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14769, double* %14770
%14771 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14772 = load double, double* %14771
%14773 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14774 = load double, double* %14773
%14775 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14776 = load double, double* %14775
%14777 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14778 = load double, double* %14777
%14779 = fmul double %14776, %14778
%14780 = fneg double %14779
%14781 = call double @llvm.fmuladd.f64(double %14772, double %14774, double %14780)
%14782 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14781, double* %14782
%14783 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14784 = load double, double* %14783
%14785 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14786 = load double, double* %14785
%14787 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14788 = load double, double* %14787
%14789 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14790 = load double, double* %14789
%14791 = fmul double %14788, %14790
%14792 = fneg double %14791
%14793 = call double @llvm.fmuladd.f64(double %14784, double %14786, double %14792)
%14794 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14793, double* %14794
%14795 = load double*, double** %13
%14796 = getelementptr inbounds double, double* %14795, i64 0
%14797 = load double, double* %14796
%14798 = load double*, double** %9
%14799 = getelementptr inbounds double, double* %14798, i64 0
%14800 = load double, double* %14799
%14801 = fsub double %14797, %14800
%14802 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14801, double* %14802
%14803 = load double*, double** %13
%14804 = getelementptr inbounds double, double* %14803, i64 1
%14805 = load double, double* %14804
%14806 = load double*, double** %9
%14807 = getelementptr inbounds double, double* %14806, i64 1
%14808 = load double, double* %14807
%14809 = fsub double %14805, %14808
%14810 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14809, double* %14810
%14811 = load double*, double** %13
%14812 = getelementptr inbounds double, double* %14811, i64 2
%14813 = load double, double* %14812
%14814 = load double*, double** %9
%14815 = getelementptr inbounds double, double* %14814, i64 2
%14816 = load double, double* %14815
%14817 = fsub double %14813, %14816
%14818 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14817, double* %14818
%14819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14820 = load double, double* %14819
%14821 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14822 = load double, double* %14821
%14823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14824 = load double, double* %14823
%14825 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14826 = load double, double* %14825
%14827 = fmul double %14824, %14826
%14828 = call double @llvm.fmuladd.f64(double %14820, double %14822, double %14827)
%14829 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14830 = load double, double* %14829
%14831 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14832 = load double, double* %14831
%14833 = call double @llvm.fmuladd.f64(double %14830, double %14832, double %14828)
%14834 = fcmp ogt double %14833, 0.000000e+00
br i1 %14834, label %14835, label %14836
14835: ; preds = %14710
store i32 0, i32* %7
br label %37464
14836: ; preds = %14710
store i32 1, i32* %7
br label %37464
14837: ; preds = %14325
%14838 = load double, double* %18
%14839 = fcmp ogt double %14838, 0.000000e+00
br i1 %14839, label %14840, label %15349
14840: ; preds = %14837
%14841 = load double, double* %19
%14842 = fcmp ogt double %14841, 0.000000e+00
br i1 %14842, label %14843, label %15096
14843: ; preds = %14840
%14844 = load double*, double** %11
%14845 = getelementptr inbounds double, double* %14844, i64 0
%14846 = load double, double* %14845
%14847 = load double*, double** %8
%14848 = getelementptr inbounds double, double* %14847, i64 0
%14849 = load double, double* %14848
%14850 = fsub double %14846, %14849
%14851 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14850, double* %14851
%14852 = load double*, double** %11
%14853 = getelementptr inbounds double, double* %14852, i64 1
%14854 = load double, double* %14853
%14855 = load double*, double** %8
%14856 = getelementptr inbounds double, double* %14855, i64 1
%14857 = load double, double* %14856
%14858 = fsub double %14854, %14857
%14859 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14858, double* %14859
%14860 = load double*, double** %11
%14861 = getelementptr inbounds double, double* %14860, i64 2
%14862 = load double, double* %14861
%14863 = load double*, double** %8
%14864 = getelementptr inbounds double, double* %14863, i64 2
%14865 = load double, double* %14864
%14866 = fsub double %14862, %14865
%14867 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14866, double* %14867
%14868 = load double*, double** %9
%14869 = getelementptr inbounds double, double* %14868, i64 0
%14870 = load double, double* %14869
%14871 = load double*, double** %8
%14872 = getelementptr inbounds double, double* %14871, i64 0
%14873 = load double, double* %14872
%14874 = fsub double %14870, %14873
%14875 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %14874, double* %14875
%14876 = load double*, double** %9
%14877 = getelementptr inbounds double, double* %14876, i64 1
%14878 = load double, double* %14877
%14879 = load double*, double** %8
%14880 = getelementptr inbounds double, double* %14879, i64 1
%14881 = load double, double* %14880
%14882 = fsub double %14878, %14881
%14883 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %14882, double* %14883
%14884 = load double*, double** %9
%14885 = getelementptr inbounds double, double* %14884, i64 2
%14886 = load double, double* %14885
%14887 = load double*, double** %8
%14888 = getelementptr inbounds double, double* %14887, i64 2
%14889 = load double, double* %14888
%14890 = fsub double %14886, %14889
%14891 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %14890, double* %14891
%14892 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14893 = load double, double* %14892
%14894 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14895 = load double, double* %14894
%14896 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14897 = load double, double* %14896
%14898 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14899 = load double, double* %14898
%14900 = fmul double %14897, %14899
%14901 = fneg double %14900
%14902 = call double @llvm.fmuladd.f64(double %14893, double %14895, double %14901)
%14903 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %14902, double* %14903
%14904 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14905 = load double, double* %14904
%14906 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14907 = load double, double* %14906
%14908 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14909 = load double, double* %14908
%14910 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%14911 = load double, double* %14910
%14912 = fmul double %14909, %14911
%14913 = fneg double %14912
%14914 = call double @llvm.fmuladd.f64(double %14905, double %14907, double %14913)
%14915 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %14914, double* %14915
%14916 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14917 = load double, double* %14916
%14918 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%14919 = load double, double* %14918
%14920 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14921 = load double, double* %14920
%14922 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%14923 = load double, double* %14922
%14924 = fmul double %14921, %14923
%14925 = fneg double %14924
%14926 = call double @llvm.fmuladd.f64(double %14917, double %14919, double %14925)
%14927 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %14926, double* %14927
%14928 = load double*, double** %12
%14929 = getelementptr inbounds double, double* %14928, i64 0
%14930 = load double, double* %14929
%14931 = load double*, double** %8
%14932 = getelementptr inbounds double, double* %14931, i64 0
%14933 = load double, double* %14932
%14934 = fsub double %14930, %14933
%14935 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14934, double* %14935
%14936 = load double*, double** %12
%14937 = getelementptr inbounds double, double* %14936, i64 1
%14938 = load double, double* %14937
%14939 = load double*, double** %8
%14940 = getelementptr inbounds double, double* %14939, i64 1
%14941 = load double, double* %14940
%14942 = fsub double %14938, %14941
%14943 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14942, double* %14943
%14944 = load double*, double** %12
%14945 = getelementptr inbounds double, double* %14944, i64 2
%14946 = load double, double* %14945
%14947 = load double*, double** %8
%14948 = getelementptr inbounds double, double* %14947, i64 2
%14949 = load double, double* %14948
%14950 = fsub double %14946, %14949
%14951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14950, double* %14951
%14952 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%14953 = load double, double* %14952
%14954 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%14955 = load double, double* %14954
%14956 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%14957 = load double, double* %14956
%14958 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%14959 = load double, double* %14958
%14960 = fmul double %14957, %14959
%14961 = call double @llvm.fmuladd.f64(double %14953, double %14955, double %14960)
%14962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%14963 = load double, double* %14962
%14964 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%14965 = load double, double* %14964
%14966 = call double @llvm.fmuladd.f64(double %14963, double %14965, double %14961)
%14967 = fcmp ogt double %14966, 0.000000e+00
br i1 %14967, label %14968, label %14969
14968: ; preds = %14843
store i32 0, i32* %7
br label %37464
14969: ; preds = %14843
%14970 = load double*, double** %11
%14971 = getelementptr inbounds double, double* %14970, i64 0
%14972 = load double, double* %14971
%14973 = load double*, double** %9
%14974 = getelementptr inbounds double, double* %14973, i64 0
%14975 = load double, double* %14974
%14976 = fsub double %14972, %14975
%14977 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %14976, double* %14977
%14978 = load double*, double** %11
%14979 = getelementptr inbounds double, double* %14978, i64 1
%14980 = load double, double* %14979
%14981 = load double*, double** %9
%14982 = getelementptr inbounds double, double* %14981, i64 1
%14983 = load double, double* %14982
%14984 = fsub double %14980, %14983
%14985 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %14984, double* %14985
%14986 = load double*, double** %11
%14987 = getelementptr inbounds double, double* %14986, i64 2
%14988 = load double, double* %14987
%14989 = load double*, double** %9
%14990 = getelementptr inbounds double, double* %14989, i64 2
%14991 = load double, double* %14990
%14992 = fsub double %14988, %14991
%14993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %14992, double* %14993
%14994 = load double*, double** %10
%14995 = getelementptr inbounds double, double* %14994, i64 0
%14996 = load double, double* %14995
%14997 = load double*, double** %9
%14998 = getelementptr inbounds double, double* %14997, i64 0
%14999 = load double, double* %14998
%15000 = fsub double %14996, %14999
%15001 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15000, double* %15001
%15002 = load double*, double** %10
%15003 = getelementptr inbounds double, double* %15002, i64 1
%15004 = load double, double* %15003
%15005 = load double*, double** %9
%15006 = getelementptr inbounds double, double* %15005, i64 1
%15007 = load double, double* %15006
%15008 = fsub double %15004, %15007
%15009 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15008, double* %15009
%15010 = load double*, double** %10
%15011 = getelementptr inbounds double, double* %15010, i64 2
%15012 = load double, double* %15011
%15013 = load double*, double** %9
%15014 = getelementptr inbounds double, double* %15013, i64 2
%15015 = load double, double* %15014
%15016 = fsub double %15012, %15015
%15017 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15016, double* %15017
%15018 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15019 = load double, double* %15018
%15020 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15021 = load double, double* %15020
%15022 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15023 = load double, double* %15022
%15024 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15025 = load double, double* %15024
%15026 = fmul double %15023, %15025
%15027 = fneg double %15026
%15028 = call double @llvm.fmuladd.f64(double %15019, double %15021, double %15027)
%15029 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15028, double* %15029
%15030 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15031 = load double, double* %15030
%15032 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15033 = load double, double* %15032
%15034 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15035 = load double, double* %15034
%15036 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15037 = load double, double* %15036
%15038 = fmul double %15035, %15037
%15039 = fneg double %15038
%15040 = call double @llvm.fmuladd.f64(double %15031, double %15033, double %15039)
%15041 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15040, double* %15041
%15042 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15043 = load double, double* %15042
%15044 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15045 = load double, double* %15044
%15046 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15047 = load double, double* %15046
%15048 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15049 = load double, double* %15048
%15050 = fmul double %15047, %15049
%15051 = fneg double %15050
%15052 = call double @llvm.fmuladd.f64(double %15043, double %15045, double %15051)
%15053 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15052, double* %15053
%15054 = load double*, double** %13
%15055 = getelementptr inbounds double, double* %15054, i64 0
%15056 = load double, double* %15055
%15057 = load double*, double** %9
%15058 = getelementptr inbounds double, double* %15057, i64 0
%15059 = load double, double* %15058
%15060 = fsub double %15056, %15059
%15061 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15060, double* %15061
%15062 = load double*, double** %13
%15063 = getelementptr inbounds double, double* %15062, i64 1
%15064 = load double, double* %15063
%15065 = load double*, double** %9
%15066 = getelementptr inbounds double, double* %15065, i64 1
%15067 = load double, double* %15066
%15068 = fsub double %15064, %15067
%15069 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15068, double* %15069
%15070 = load double*, double** %13
%15071 = getelementptr inbounds double, double* %15070, i64 2
%15072 = load double, double* %15071
%15073 = load double*, double** %9
%15074 = getelementptr inbounds double, double* %15073, i64 2
%15075 = load double, double* %15074
%15076 = fsub double %15072, %15075
%15077 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15076, double* %15077
%15078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15079 = load double, double* %15078
%15080 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15081 = load double, double* %15080
%15082 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15083 = load double, double* %15082
%15084 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15085 = load double, double* %15084
%15086 = fmul double %15083, %15085
%15087 = call double @llvm.fmuladd.f64(double %15079, double %15081, double %15086)
%15088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15089 = load double, double* %15088
%15090 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15091 = load double, double* %15090
%15092 = call double @llvm.fmuladd.f64(double %15089, double %15091, double %15087)
%15093 = fcmp ogt double %15092, 0.000000e+00
br i1 %15093, label %15094, label %15095
15094: ; preds = %14969
store i32 0, i32* %7
br label %37464
15095: ; preds = %14969
store i32 1, i32* %7
br label %37464
15096: ; preds = %14840
%15097 = load double*, double** %12
%15098 = getelementptr inbounds double, double* %15097, i64 0
%15099 = load double, double* %15098
%15100 = load double*, double** %10
%15101 = getelementptr inbounds double, double* %15100, i64 0
%15102 = load double, double* %15101
%15103 = fsub double %15099, %15102
%15104 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15103, double* %15104
%15105 = load double*, double** %12
%15106 = getelementptr inbounds double, double* %15105, i64 1
%15107 = load double, double* %15106
%15108 = load double*, double** %10
%15109 = getelementptr inbounds double, double* %15108, i64 1
%15110 = load double, double* %15109
%15111 = fsub double %15107, %15110
%15112 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15111, double* %15112
%15113 = load double*, double** %12
%15114 = getelementptr inbounds double, double* %15113, i64 2
%15115 = load double, double* %15114
%15116 = load double*, double** %10
%15117 = getelementptr inbounds double, double* %15116, i64 2
%15118 = load double, double* %15117
%15119 = fsub double %15115, %15118
%15120 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15119, double* %15120
%15121 = load double*, double** %9
%15122 = getelementptr inbounds double, double* %15121, i64 0
%15123 = load double, double* %15122
%15124 = load double*, double** %10
%15125 = getelementptr inbounds double, double* %15124, i64 0
%15126 = load double, double* %15125
%15127 = fsub double %15123, %15126
%15128 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15127, double* %15128
%15129 = load double*, double** %9
%15130 = getelementptr inbounds double, double* %15129, i64 1
%15131 = load double, double* %15130
%15132 = load double*, double** %10
%15133 = getelementptr inbounds double, double* %15132, i64 1
%15134 = load double, double* %15133
%15135 = fsub double %15131, %15134
%15136 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15135, double* %15136
%15137 = load double*, double** %9
%15138 = getelementptr inbounds double, double* %15137, i64 2
%15139 = load double, double* %15138
%15140 = load double*, double** %10
%15141 = getelementptr inbounds double, double* %15140, i64 2
%15142 = load double, double* %15141
%15143 = fsub double %15139, %15142
%15144 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15143, double* %15144
%15145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15146 = load double, double* %15145
%15147 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15148 = load double, double* %15147
%15149 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15150 = load double, double* %15149
%15151 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15152 = load double, double* %15151
%15153 = fmul double %15150, %15152
%15154 = fneg double %15153
%15155 = call double @llvm.fmuladd.f64(double %15146, double %15148, double %15154)
%15156 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15155, double* %15156
%15157 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15158 = load double, double* %15157
%15159 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15160 = load double, double* %15159
%15161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15162 = load double, double* %15161
%15163 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15164 = load double, double* %15163
%15165 = fmul double %15162, %15164
%15166 = fneg double %15165
%15167 = call double @llvm.fmuladd.f64(double %15158, double %15160, double %15166)
%15168 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15167, double* %15168
%15169 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15170 = load double, double* %15169
%15171 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15172 = load double, double* %15171
%15173 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15174 = load double, double* %15173
%15175 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15176 = load double, double* %15175
%15177 = fmul double %15174, %15176
%15178 = fneg double %15177
%15179 = call double @llvm.fmuladd.f64(double %15170, double %15172, double %15178)
%15180 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15179, double* %15180
%15181 = load double*, double** %13
%15182 = getelementptr inbounds double, double* %15181, i64 0
%15183 = load double, double* %15182
%15184 = load double*, double** %10
%15185 = getelementptr inbounds double, double* %15184, i64 0
%15186 = load double, double* %15185
%15187 = fsub double %15183, %15186
%15188 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15187, double* %15188
%15189 = load double*, double** %13
%15190 = getelementptr inbounds double, double* %15189, i64 1
%15191 = load double, double* %15190
%15192 = load double*, double** %10
%15193 = getelementptr inbounds double, double* %15192, i64 1
%15194 = load double, double* %15193
%15195 = fsub double %15191, %15194
%15196 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15195, double* %15196
%15197 = load double*, double** %13
%15198 = getelementptr inbounds double, double* %15197, i64 2
%15199 = load double, double* %15198
%15200 = load double*, double** %10
%15201 = getelementptr inbounds double, double* %15200, i64 2
%15202 = load double, double* %15201
%15203 = fsub double %15199, %15202
%15204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15203, double* %15204
%15205 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15206 = load double, double* %15205
%15207 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15208 = load double, double* %15207
%15209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15210 = load double, double* %15209
%15211 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15212 = load double, double* %15211
%15213 = fmul double %15210, %15212
%15214 = call double @llvm.fmuladd.f64(double %15206, double %15208, double %15213)
%15215 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15216 = load double, double* %15215
%15217 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15218 = load double, double* %15217
%15219 = call double @llvm.fmuladd.f64(double %15216, double %15218, double %15214)
%15220 = fcmp ogt double %15219, 0.000000e+00
br i1 %15220, label %15221, label %15222
15221: ; preds = %15096
store i32 0, i32* %7
br label %37464
15222: ; preds = %15096
%15223 = load double*, double** %12
%15224 = getelementptr inbounds double, double* %15223, i64 0
%15225 = load double, double* %15224
%15226 = load double*, double** %9
%15227 = getelementptr inbounds double, double* %15226, i64 0
%15228 = load double, double* %15227
%15229 = fsub double %15225, %15228
%15230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15229, double* %15230
%15231 = load double*, double** %12
%15232 = getelementptr inbounds double, double* %15231, i64 1
%15233 = load double, double* %15232
%15234 = load double*, double** %9
%15235 = getelementptr inbounds double, double* %15234, i64 1
%15236 = load double, double* %15235
%15237 = fsub double %15233, %15236
%15238 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15237, double* %15238
%15239 = load double*, double** %12
%15240 = getelementptr inbounds double, double* %15239, i64 2
%15241 = load double, double* %15240
%15242 = load double*, double** %9
%15243 = getelementptr inbounds double, double* %15242, i64 2
%15244 = load double, double* %15243
%15245 = fsub double %15241, %15244
%15246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15245, double* %15246
%15247 = load double*, double** %8
%15248 = getelementptr inbounds double, double* %15247, i64 0
%15249 = load double, double* %15248
%15250 = load double*, double** %9
%15251 = getelementptr inbounds double, double* %15250, i64 0
%15252 = load double, double* %15251
%15253 = fsub double %15249, %15252
%15254 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15253, double* %15254
%15255 = load double*, double** %8
%15256 = getelementptr inbounds double, double* %15255, i64 1
%15257 = load double, double* %15256
%15258 = load double*, double** %9
%15259 = getelementptr inbounds double, double* %15258, i64 1
%15260 = load double, double* %15259
%15261 = fsub double %15257, %15260
%15262 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15261, double* %15262
%15263 = load double*, double** %8
%15264 = getelementptr inbounds double, double* %15263, i64 2
%15265 = load double, double* %15264
%15266 = load double*, double** %9
%15267 = getelementptr inbounds double, double* %15266, i64 2
%15268 = load double, double* %15267
%15269 = fsub double %15265, %15268
%15270 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15269, double* %15270
%15271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15272 = load double, double* %15271
%15273 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15274 = load double, double* %15273
%15275 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15276 = load double, double* %15275
%15277 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15278 = load double, double* %15277
%15279 = fmul double %15276, %15278
%15280 = fneg double %15279
%15281 = call double @llvm.fmuladd.f64(double %15272, double %15274, double %15280)
%15282 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15281, double* %15282
%15283 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15284 = load double, double* %15283
%15285 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15286 = load double, double* %15285
%15287 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15288 = load double, double* %15287
%15289 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15290 = load double, double* %15289
%15291 = fmul double %15288, %15290
%15292 = fneg double %15291
%15293 = call double @llvm.fmuladd.f64(double %15284, double %15286, double %15292)
%15294 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15293, double* %15294
%15295 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15296 = load double, double* %15295
%15297 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15298 = load double, double* %15297
%15299 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15300 = load double, double* %15299
%15301 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15302 = load double, double* %15301
%15303 = fmul double %15300, %15302
%15304 = fneg double %15303
%15305 = call double @llvm.fmuladd.f64(double %15296, double %15298, double %15304)
%15306 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15305, double* %15306
%15307 = load double*, double** %11
%15308 = getelementptr inbounds double, double* %15307, i64 0
%15309 = load double, double* %15308
%15310 = load double*, double** %9
%15311 = getelementptr inbounds double, double* %15310, i64 0
%15312 = load double, double* %15311
%15313 = fsub double %15309, %15312
%15314 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15313, double* %15314
%15315 = load double*, double** %11
%15316 = getelementptr inbounds double, double* %15315, i64 1
%15317 = load double, double* %15316
%15318 = load double*, double** %9
%15319 = getelementptr inbounds double, double* %15318, i64 1
%15320 = load double, double* %15319
%15321 = fsub double %15317, %15320
%15322 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15321, double* %15322
%15323 = load double*, double** %11
%15324 = getelementptr inbounds double, double* %15323, i64 2
%15325 = load double, double* %15324
%15326 = load double*, double** %9
%15327 = getelementptr inbounds double, double* %15326, i64 2
%15328 = load double, double* %15327
%15329 = fsub double %15325, %15328
%15330 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15329, double* %15330
%15331 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15332 = load double, double* %15331
%15333 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15334 = load double, double* %15333
%15335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15336 = load double, double* %15335
%15337 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15338 = load double, double* %15337
%15339 = fmul double %15336, %15338
%15340 = call double @llvm.fmuladd.f64(double %15332, double %15334, double %15339)
%15341 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15342 = load double, double* %15341
%15343 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15344 = load double, double* %15343
%15345 = call double @llvm.fmuladd.f64(double %15342, double %15344, double %15340)
%15346 = fcmp ogt double %15345, 0.000000e+00
br i1 %15346, label %15347, label %15348
15347: ; preds = %15222
store i32 0, i32* %7
br label %37464
15348: ; preds = %15222
store i32 1, i32* %7
br label %37464
15349: ; preds = %14837
%15350 = load double, double* %19
%15351 = fcmp ogt double %15350, 0.000000e+00
br i1 %15351, label %15352, label %15605
15352: ; preds = %15349
%15353 = load double*, double** %13
%15354 = getelementptr inbounds double, double* %15353, i64 0
%15355 = load double, double* %15354
%15356 = load double*, double** %10
%15357 = getelementptr inbounds double, double* %15356, i64 0
%15358 = load double, double* %15357
%15359 = fsub double %15355, %15358
%15360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15359, double* %15360
%15361 = load double*, double** %13
%15362 = getelementptr inbounds double, double* %15361, i64 1
%15363 = load double, double* %15362
%15364 = load double*, double** %10
%15365 = getelementptr inbounds double, double* %15364, i64 1
%15366 = load double, double* %15365
%15367 = fsub double %15363, %15366
%15368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15367, double* %15368
%15369 = load double*, double** %13
%15370 = getelementptr inbounds double, double* %15369, i64 2
%15371 = load double, double* %15370
%15372 = load double*, double** %10
%15373 = getelementptr inbounds double, double* %15372, i64 2
%15374 = load double, double* %15373
%15375 = fsub double %15371, %15374
%15376 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15375, double* %15376
%15377 = load double*, double** %9
%15378 = getelementptr inbounds double, double* %15377, i64 0
%15379 = load double, double* %15378
%15380 = load double*, double** %10
%15381 = getelementptr inbounds double, double* %15380, i64 0
%15382 = load double, double* %15381
%15383 = fsub double %15379, %15382
%15384 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15383, double* %15384
%15385 = load double*, double** %9
%15386 = getelementptr inbounds double, double* %15385, i64 1
%15387 = load double, double* %15386
%15388 = load double*, double** %10
%15389 = getelementptr inbounds double, double* %15388, i64 1
%15390 = load double, double* %15389
%15391 = fsub double %15387, %15390
%15392 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15391, double* %15392
%15393 = load double*, double** %9
%15394 = getelementptr inbounds double, double* %15393, i64 2
%15395 = load double, double* %15394
%15396 = load double*, double** %10
%15397 = getelementptr inbounds double, double* %15396, i64 2
%15398 = load double, double* %15397
%15399 = fsub double %15395, %15398
%15400 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15399, double* %15400
%15401 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15402 = load double, double* %15401
%15403 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15404 = load double, double* %15403
%15405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15406 = load double, double* %15405
%15407 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15408 = load double, double* %15407
%15409 = fmul double %15406, %15408
%15410 = fneg double %15409
%15411 = call double @llvm.fmuladd.f64(double %15402, double %15404, double %15410)
%15412 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15411, double* %15412
%15413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15414 = load double, double* %15413
%15415 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15416 = load double, double* %15415
%15417 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15418 = load double, double* %15417
%15419 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15420 = load double, double* %15419
%15421 = fmul double %15418, %15420
%15422 = fneg double %15421
%15423 = call double @llvm.fmuladd.f64(double %15414, double %15416, double %15422)
%15424 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15423, double* %15424
%15425 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15426 = load double, double* %15425
%15427 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15428 = load double, double* %15427
%15429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15430 = load double, double* %15429
%15431 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15432 = load double, double* %15431
%15433 = fmul double %15430, %15432
%15434 = fneg double %15433
%15435 = call double @llvm.fmuladd.f64(double %15426, double %15428, double %15434)
%15436 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15435, double* %15436
%15437 = load double*, double** %11
%15438 = getelementptr inbounds double, double* %15437, i64 0
%15439 = load double, double* %15438
%15440 = load double*, double** %10
%15441 = getelementptr inbounds double, double* %15440, i64 0
%15442 = load double, double* %15441
%15443 = fsub double %15439, %15442
%15444 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15443, double* %15444
%15445 = load double*, double** %11
%15446 = getelementptr inbounds double, double* %15445, i64 1
%15447 = load double, double* %15446
%15448 = load double*, double** %10
%15449 = getelementptr inbounds double, double* %15448, i64 1
%15450 = load double, double* %15449
%15451 = fsub double %15447, %15450
%15452 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15451, double* %15452
%15453 = load double*, double** %11
%15454 = getelementptr inbounds double, double* %15453, i64 2
%15455 = load double, double* %15454
%15456 = load double*, double** %10
%15457 = getelementptr inbounds double, double* %15456, i64 2
%15458 = load double, double* %15457
%15459 = fsub double %15455, %15458
%15460 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15459, double* %15460
%15461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15462 = load double, double* %15461
%15463 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15464 = load double, double* %15463
%15465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15466 = load double, double* %15465
%15467 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15468 = load double, double* %15467
%15469 = fmul double %15466, %15468
%15470 = call double @llvm.fmuladd.f64(double %15462, double %15464, double %15469)
%15471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15472 = load double, double* %15471
%15473 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15474 = load double, double* %15473
%15475 = call double @llvm.fmuladd.f64(double %15472, double %15474, double %15470)
%15476 = fcmp ogt double %15475, 0.000000e+00
br i1 %15476, label %15477, label %15478
15477: ; preds = %15352
store i32 0, i32* %7
br label %37464
15478: ; preds = %15352
%15479 = load double*, double** %13
%15480 = getelementptr inbounds double, double* %15479, i64 0
%15481 = load double, double* %15480
%15482 = load double*, double** %9
%15483 = getelementptr inbounds double, double* %15482, i64 0
%15484 = load double, double* %15483
%15485 = fsub double %15481, %15484
%15486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15485, double* %15486
%15487 = load double*, double** %13
%15488 = getelementptr inbounds double, double* %15487, i64 1
%15489 = load double, double* %15488
%15490 = load double*, double** %9
%15491 = getelementptr inbounds double, double* %15490, i64 1
%15492 = load double, double* %15491
%15493 = fsub double %15489, %15492
%15494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15493, double* %15494
%15495 = load double*, double** %13
%15496 = getelementptr inbounds double, double* %15495, i64 2
%15497 = load double, double* %15496
%15498 = load double*, double** %9
%15499 = getelementptr inbounds double, double* %15498, i64 2
%15500 = load double, double* %15499
%15501 = fsub double %15497, %15500
%15502 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15501, double* %15502
%15503 = load double*, double** %8
%15504 = getelementptr inbounds double, double* %15503, i64 0
%15505 = load double, double* %15504
%15506 = load double*, double** %9
%15507 = getelementptr inbounds double, double* %15506, i64 0
%15508 = load double, double* %15507
%15509 = fsub double %15505, %15508
%15510 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15509, double* %15510
%15511 = load double*, double** %8
%15512 = getelementptr inbounds double, double* %15511, i64 1
%15513 = load double, double* %15512
%15514 = load double*, double** %9
%15515 = getelementptr inbounds double, double* %15514, i64 1
%15516 = load double, double* %15515
%15517 = fsub double %15513, %15516
%15518 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15517, double* %15518
%15519 = load double*, double** %8
%15520 = getelementptr inbounds double, double* %15519, i64 2
%15521 = load double, double* %15520
%15522 = load double*, double** %9
%15523 = getelementptr inbounds double, double* %15522, i64 2
%15524 = load double, double* %15523
%15525 = fsub double %15521, %15524
%15526 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15525, double* %15526
%15527 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15528 = load double, double* %15527
%15529 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15530 = load double, double* %15529
%15531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15532 = load double, double* %15531
%15533 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15534 = load double, double* %15533
%15535 = fmul double %15532, %15534
%15536 = fneg double %15535
%15537 = call double @llvm.fmuladd.f64(double %15528, double %15530, double %15536)
%15538 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15537, double* %15538
%15539 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15540 = load double, double* %15539
%15541 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15542 = load double, double* %15541
%15543 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15544 = load double, double* %15543
%15545 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15546 = load double, double* %15545
%15547 = fmul double %15544, %15546
%15548 = fneg double %15547
%15549 = call double @llvm.fmuladd.f64(double %15540, double %15542, double %15548)
%15550 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15549, double* %15550
%15551 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15552 = load double, double* %15551
%15553 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15554 = load double, double* %15553
%15555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15556 = load double, double* %15555
%15557 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15558 = load double, double* %15557
%15559 = fmul double %15556, %15558
%15560 = fneg double %15559
%15561 = call double @llvm.fmuladd.f64(double %15552, double %15554, double %15560)
%15562 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15561, double* %15562
%15563 = load double*, double** %12
%15564 = getelementptr inbounds double, double* %15563, i64 0
%15565 = load double, double* %15564
%15566 = load double*, double** %9
%15567 = getelementptr inbounds double, double* %15566, i64 0
%15568 = load double, double* %15567
%15569 = fsub double %15565, %15568
%15570 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15569, double* %15570
%15571 = load double*, double** %12
%15572 = getelementptr inbounds double, double* %15571, i64 1
%15573 = load double, double* %15572
%15574 = load double*, double** %9
%15575 = getelementptr inbounds double, double* %15574, i64 1
%15576 = load double, double* %15575
%15577 = fsub double %15573, %15576
%15578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15577, double* %15578
%15579 = load double*, double** %12
%15580 = getelementptr inbounds double, double* %15579, i64 2
%15581 = load double, double* %15580
%15582 = load double*, double** %9
%15583 = getelementptr inbounds double, double* %15582, i64 2
%15584 = load double, double* %15583
%15585 = fsub double %15581, %15584
%15586 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15585, double* %15586
%15587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15588 = load double, double* %15587
%15589 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15590 = load double, double* %15589
%15591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15592 = load double, double* %15591
%15593 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15594 = load double, double* %15593
%15595 = fmul double %15592, %15594
%15596 = call double @llvm.fmuladd.f64(double %15588, double %15590, double %15595)
%15597 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15598 = load double, double* %15597
%15599 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15600 = load double, double* %15599
%15601 = call double @llvm.fmuladd.f64(double %15598, double %15600, double %15596)
%15602 = fcmp ogt double %15601, 0.000000e+00
br i1 %15602, label %15603, label %15604
15603: ; preds = %15478
store i32 0, i32* %7
br label %37464
15604: ; preds = %15478
store i32 1, i32* %7
br label %37464
15605: ; preds = %15349
%15606 = load double, double* %19
%15607 = fcmp olt double %15606, 0.000000e+00
br i1 %15607, label %15608, label %15861
15608: ; preds = %15605
%15609 = load double*, double** %13
%15610 = getelementptr inbounds double, double* %15609, i64 0
%15611 = load double, double* %15610
%15612 = load double*, double** %8
%15613 = getelementptr inbounds double, double* %15612, i64 0
%15614 = load double, double* %15613
%15615 = fsub double %15611, %15614
%15616 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15615, double* %15616
%15617 = load double*, double** %13
%15618 = getelementptr inbounds double, double* %15617, i64 1
%15619 = load double, double* %15618
%15620 = load double*, double** %8
%15621 = getelementptr inbounds double, double* %15620, i64 1
%15622 = load double, double* %15621
%15623 = fsub double %15619, %15622
%15624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15623, double* %15624
%15625 = load double*, double** %13
%15626 = getelementptr inbounds double, double* %15625, i64 2
%15627 = load double, double* %15626
%15628 = load double*, double** %8
%15629 = getelementptr inbounds double, double* %15628, i64 2
%15630 = load double, double* %15629
%15631 = fsub double %15627, %15630
%15632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15631, double* %15632
%15633 = load double*, double** %9
%15634 = getelementptr inbounds double, double* %15633, i64 0
%15635 = load double, double* %15634
%15636 = load double*, double** %8
%15637 = getelementptr inbounds double, double* %15636, i64 0
%15638 = load double, double* %15637
%15639 = fsub double %15635, %15638
%15640 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15639, double* %15640
%15641 = load double*, double** %9
%15642 = getelementptr inbounds double, double* %15641, i64 1
%15643 = load double, double* %15642
%15644 = load double*, double** %8
%15645 = getelementptr inbounds double, double* %15644, i64 1
%15646 = load double, double* %15645
%15647 = fsub double %15643, %15646
%15648 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15647, double* %15648
%15649 = load double*, double** %9
%15650 = getelementptr inbounds double, double* %15649, i64 2
%15651 = load double, double* %15650
%15652 = load double*, double** %8
%15653 = getelementptr inbounds double, double* %15652, i64 2
%15654 = load double, double* %15653
%15655 = fsub double %15651, %15654
%15656 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15655, double* %15656
%15657 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15658 = load double, double* %15657
%15659 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15660 = load double, double* %15659
%15661 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15662 = load double, double* %15661
%15663 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15664 = load double, double* %15663
%15665 = fmul double %15662, %15664
%15666 = fneg double %15665
%15667 = call double @llvm.fmuladd.f64(double %15658, double %15660, double %15666)
%15668 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15667, double* %15668
%15669 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15670 = load double, double* %15669
%15671 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15672 = load double, double* %15671
%15673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15674 = load double, double* %15673
%15675 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15676 = load double, double* %15675
%15677 = fmul double %15674, %15676
%15678 = fneg double %15677
%15679 = call double @llvm.fmuladd.f64(double %15670, double %15672, double %15678)
%15680 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15679, double* %15680
%15681 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15682 = load double, double* %15681
%15683 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15684 = load double, double* %15683
%15685 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15686 = load double, double* %15685
%15687 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15688 = load double, double* %15687
%15689 = fmul double %15686, %15688
%15690 = fneg double %15689
%15691 = call double @llvm.fmuladd.f64(double %15682, double %15684, double %15690)
%15692 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15691, double* %15692
%15693 = load double*, double** %11
%15694 = getelementptr inbounds double, double* %15693, i64 0
%15695 = load double, double* %15694
%15696 = load double*, double** %8
%15697 = getelementptr inbounds double, double* %15696, i64 0
%15698 = load double, double* %15697
%15699 = fsub double %15695, %15698
%15700 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15699, double* %15700
%15701 = load double*, double** %11
%15702 = getelementptr inbounds double, double* %15701, i64 1
%15703 = load double, double* %15702
%15704 = load double*, double** %8
%15705 = getelementptr inbounds double, double* %15704, i64 1
%15706 = load double, double* %15705
%15707 = fsub double %15703, %15706
%15708 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15707, double* %15708
%15709 = load double*, double** %11
%15710 = getelementptr inbounds double, double* %15709, i64 2
%15711 = load double, double* %15710
%15712 = load double*, double** %8
%15713 = getelementptr inbounds double, double* %15712, i64 2
%15714 = load double, double* %15713
%15715 = fsub double %15711, %15714
%15716 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15715, double* %15716
%15717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15718 = load double, double* %15717
%15719 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15720 = load double, double* %15719
%15721 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15722 = load double, double* %15721
%15723 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15724 = load double, double* %15723
%15725 = fmul double %15722, %15724
%15726 = call double @llvm.fmuladd.f64(double %15718, double %15720, double %15725)
%15727 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15728 = load double, double* %15727
%15729 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15730 = load double, double* %15729
%15731 = call double @llvm.fmuladd.f64(double %15728, double %15730, double %15726)
%15732 = fcmp ogt double %15731, 0.000000e+00
br i1 %15732, label %15733, label %15734
15733: ; preds = %15608
store i32 0, i32* %7
br label %37464
15734: ; preds = %15608
%15735 = load double*, double** %13
%15736 = getelementptr inbounds double, double* %15735, i64 0
%15737 = load double, double* %15736
%15738 = load double*, double** %9
%15739 = getelementptr inbounds double, double* %15738, i64 0
%15740 = load double, double* %15739
%15741 = fsub double %15737, %15740
%15742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15741, double* %15742
%15743 = load double*, double** %13
%15744 = getelementptr inbounds double, double* %15743, i64 1
%15745 = load double, double* %15744
%15746 = load double*, double** %9
%15747 = getelementptr inbounds double, double* %15746, i64 1
%15748 = load double, double* %15747
%15749 = fsub double %15745, %15748
%15750 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15749, double* %15750
%15751 = load double*, double** %13
%15752 = getelementptr inbounds double, double* %15751, i64 2
%15753 = load double, double* %15752
%15754 = load double*, double** %9
%15755 = getelementptr inbounds double, double* %15754, i64 2
%15756 = load double, double* %15755
%15757 = fsub double %15753, %15756
%15758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15757, double* %15758
%15759 = load double*, double** %10
%15760 = getelementptr inbounds double, double* %15759, i64 0
%15761 = load double, double* %15760
%15762 = load double*, double** %9
%15763 = getelementptr inbounds double, double* %15762, i64 0
%15764 = load double, double* %15763
%15765 = fsub double %15761, %15764
%15766 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15765, double* %15766
%15767 = load double*, double** %10
%15768 = getelementptr inbounds double, double* %15767, i64 1
%15769 = load double, double* %15768
%15770 = load double*, double** %9
%15771 = getelementptr inbounds double, double* %15770, i64 1
%15772 = load double, double* %15771
%15773 = fsub double %15769, %15772
%15774 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15773, double* %15774
%15775 = load double*, double** %10
%15776 = getelementptr inbounds double, double* %15775, i64 2
%15777 = load double, double* %15776
%15778 = load double*, double** %9
%15779 = getelementptr inbounds double, double* %15778, i64 2
%15780 = load double, double* %15779
%15781 = fsub double %15777, %15780
%15782 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15781, double* %15782
%15783 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15784 = load double, double* %15783
%15785 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15786 = load double, double* %15785
%15787 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15788 = load double, double* %15787
%15789 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15790 = load double, double* %15789
%15791 = fmul double %15788, %15790
%15792 = fneg double %15791
%15793 = call double @llvm.fmuladd.f64(double %15784, double %15786, double %15792)
%15794 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15793, double* %15794
%15795 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15796 = load double, double* %15795
%15797 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15798 = load double, double* %15797
%15799 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15800 = load double, double* %15799
%15801 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15802 = load double, double* %15801
%15803 = fmul double %15800, %15802
%15804 = fneg double %15803
%15805 = call double @llvm.fmuladd.f64(double %15796, double %15798, double %15804)
%15806 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15805, double* %15806
%15807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15808 = load double, double* %15807
%15809 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15810 = load double, double* %15809
%15811 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15812 = load double, double* %15811
%15813 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15814 = load double, double* %15813
%15815 = fmul double %15812, %15814
%15816 = fneg double %15815
%15817 = call double @llvm.fmuladd.f64(double %15808, double %15810, double %15816)
%15818 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15817, double* %15818
%15819 = load double*, double** %12
%15820 = getelementptr inbounds double, double* %15819, i64 0
%15821 = load double, double* %15820
%15822 = load double*, double** %9
%15823 = getelementptr inbounds double, double* %15822, i64 0
%15824 = load double, double* %15823
%15825 = fsub double %15821, %15824
%15826 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15825, double* %15826
%15827 = load double*, double** %12
%15828 = getelementptr inbounds double, double* %15827, i64 1
%15829 = load double, double* %15828
%15830 = load double*, double** %9
%15831 = getelementptr inbounds double, double* %15830, i64 1
%15832 = load double, double* %15831
%15833 = fsub double %15829, %15832
%15834 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15833, double* %15834
%15835 = load double*, double** %12
%15836 = getelementptr inbounds double, double* %15835, i64 2
%15837 = load double, double* %15836
%15838 = load double*, double** %9
%15839 = getelementptr inbounds double, double* %15838, i64 2
%15840 = load double, double* %15839
%15841 = fsub double %15837, %15840
%15842 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15841, double* %15842
%15843 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15844 = load double, double* %15843
%15845 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15846 = load double, double* %15845
%15847 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15848 = load double, double* %15847
%15849 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15850 = load double, double* %15849
%15851 = fmul double %15848, %15850
%15852 = call double @llvm.fmuladd.f64(double %15844, double %15846, double %15851)
%15853 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15854 = load double, double* %15853
%15855 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15856 = load double, double* %15855
%15857 = call double @llvm.fmuladd.f64(double %15854, double %15856, double %15852)
%15858 = fcmp ogt double %15857, 0.000000e+00
br i1 %15858, label %15859, label %15860
15859: ; preds = %15734
store i32 0, i32* %7
br label %37464
15860: ; preds = %15734
store i32 1, i32* %7
br label %37464
15861: ; preds = %15605
%15862 = load double*, double** %9
%15863 = load double*, double** %10
%15864 = load double*, double** %8
%15865 = load double*, double** %11
%15866 = load double*, double** %12
%15867 = load double*, double** %13
%15868 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15869 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %15862, double* %15863, double* %15864, double* %15865, double* %15866, double* %15867, double* %15868)
store i32 %15869, i32* %7
br label %37464
15870: ; preds = %12786
%15871 = load double, double* %17
%15872 = fcmp ogt double %15871, 0.000000e+00
br i1 %15872, label %15873, label %16638
15873: ; preds = %15870
%15874 = load double, double* %19
%15875 = fcmp ogt double %15874, 0.000000e+00
br i1 %15875, label %15876, label %16129
15876: ; preds = %15873
%15877 = load double*, double** %12
%15878 = getelementptr inbounds double, double* %15877, i64 0
%15879 = load double, double* %15878
%15880 = load double*, double** %10
%15881 = getelementptr inbounds double, double* %15880, i64 0
%15882 = load double, double* %15881
%15883 = fsub double %15879, %15882
%15884 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15883, double* %15884
%15885 = load double*, double** %12
%15886 = getelementptr inbounds double, double* %15885, i64 1
%15887 = load double, double* %15886
%15888 = load double*, double** %10
%15889 = getelementptr inbounds double, double* %15888, i64 1
%15890 = load double, double* %15889
%15891 = fsub double %15887, %15890
%15892 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15891, double* %15892
%15893 = load double*, double** %12
%15894 = getelementptr inbounds double, double* %15893, i64 2
%15895 = load double, double* %15894
%15896 = load double*, double** %10
%15897 = getelementptr inbounds double, double* %15896, i64 2
%15898 = load double, double* %15897
%15899 = fsub double %15895, %15898
%15900 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15899, double* %15900
%15901 = load double*, double** %8
%15902 = getelementptr inbounds double, double* %15901, i64 0
%15903 = load double, double* %15902
%15904 = load double*, double** %10
%15905 = getelementptr inbounds double, double* %15904, i64 0
%15906 = load double, double* %15905
%15907 = fsub double %15903, %15906
%15908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %15907, double* %15908
%15909 = load double*, double** %8
%15910 = getelementptr inbounds double, double* %15909, i64 1
%15911 = load double, double* %15910
%15912 = load double*, double** %10
%15913 = getelementptr inbounds double, double* %15912, i64 1
%15914 = load double, double* %15913
%15915 = fsub double %15911, %15914
%15916 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %15915, double* %15916
%15917 = load double*, double** %8
%15918 = getelementptr inbounds double, double* %15917, i64 2
%15919 = load double, double* %15918
%15920 = load double*, double** %10
%15921 = getelementptr inbounds double, double* %15920, i64 2
%15922 = load double, double* %15921
%15923 = fsub double %15919, %15922
%15924 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %15923, double* %15924
%15925 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15926 = load double, double* %15925
%15927 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15928 = load double, double* %15927
%15929 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15930 = load double, double* %15929
%15931 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15932 = load double, double* %15931
%15933 = fmul double %15930, %15932
%15934 = fneg double %15933
%15935 = call double @llvm.fmuladd.f64(double %15926, double %15928, double %15934)
%15936 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %15935, double* %15936
%15937 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15938 = load double, double* %15937
%15939 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15940 = load double, double* %15939
%15941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15942 = load double, double* %15941
%15943 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%15944 = load double, double* %15943
%15945 = fmul double %15942, %15944
%15946 = fneg double %15945
%15947 = call double @llvm.fmuladd.f64(double %15938, double %15940, double %15946)
%15948 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %15947, double* %15948
%15949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15950 = load double, double* %15949
%15951 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%15952 = load double, double* %15951
%15953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15954 = load double, double* %15953
%15955 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%15956 = load double, double* %15955
%15957 = fmul double %15954, %15956
%15958 = fneg double %15957
%15959 = call double @llvm.fmuladd.f64(double %15950, double %15952, double %15958)
%15960 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %15959, double* %15960
%15961 = load double*, double** %11
%15962 = getelementptr inbounds double, double* %15961, i64 0
%15963 = load double, double* %15962
%15964 = load double*, double** %10
%15965 = getelementptr inbounds double, double* %15964, i64 0
%15966 = load double, double* %15965
%15967 = fsub double %15963, %15966
%15968 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %15967, double* %15968
%15969 = load double*, double** %11
%15970 = getelementptr inbounds double, double* %15969, i64 1
%15971 = load double, double* %15970
%15972 = load double*, double** %10
%15973 = getelementptr inbounds double, double* %15972, i64 1
%15974 = load double, double* %15973
%15975 = fsub double %15971, %15974
%15976 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %15975, double* %15976
%15977 = load double*, double** %11
%15978 = getelementptr inbounds double, double* %15977, i64 2
%15979 = load double, double* %15978
%15980 = load double*, double** %10
%15981 = getelementptr inbounds double, double* %15980, i64 2
%15982 = load double, double* %15981
%15983 = fsub double %15979, %15982
%15984 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %15983, double* %15984
%15985 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%15986 = load double, double* %15985
%15987 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%15988 = load double, double* %15987
%15989 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%15990 = load double, double* %15989
%15991 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%15992 = load double, double* %15991
%15993 = fmul double %15990, %15992
%15994 = call double @llvm.fmuladd.f64(double %15986, double %15988, double %15993)
%15995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%15996 = load double, double* %15995
%15997 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%15998 = load double, double* %15997
%15999 = call double @llvm.fmuladd.f64(double %15996, double %15998, double %15994)
%16000 = fcmp ogt double %15999, 0.000000e+00
br i1 %16000, label %16001, label %16002
16001: ; preds = %15876
store i32 0, i32* %7
br label %37464
16002: ; preds = %15876
%16003 = load double*, double** %12
%16004 = getelementptr inbounds double, double* %16003, i64 0
%16005 = load double, double* %16004
%16006 = load double*, double** %8
%16007 = getelementptr inbounds double, double* %16006, i64 0
%16008 = load double, double* %16007
%16009 = fsub double %16005, %16008
%16010 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16009, double* %16010
%16011 = load double*, double** %12
%16012 = getelementptr inbounds double, double* %16011, i64 1
%16013 = load double, double* %16012
%16014 = load double*, double** %8
%16015 = getelementptr inbounds double, double* %16014, i64 1
%16016 = load double, double* %16015
%16017 = fsub double %16013, %16016
%16018 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16017, double* %16018
%16019 = load double*, double** %12
%16020 = getelementptr inbounds double, double* %16019, i64 2
%16021 = load double, double* %16020
%16022 = load double*, double** %8
%16023 = getelementptr inbounds double, double* %16022, i64 2
%16024 = load double, double* %16023
%16025 = fsub double %16021, %16024
%16026 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16025, double* %16026
%16027 = load double*, double** %9
%16028 = getelementptr inbounds double, double* %16027, i64 0
%16029 = load double, double* %16028
%16030 = load double*, double** %8
%16031 = getelementptr inbounds double, double* %16030, i64 0
%16032 = load double, double* %16031
%16033 = fsub double %16029, %16032
%16034 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16033, double* %16034
%16035 = load double*, double** %9
%16036 = getelementptr inbounds double, double* %16035, i64 1
%16037 = load double, double* %16036
%16038 = load double*, double** %8
%16039 = getelementptr inbounds double, double* %16038, i64 1
%16040 = load double, double* %16039
%16041 = fsub double %16037, %16040
%16042 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16041, double* %16042
%16043 = load double*, double** %9
%16044 = getelementptr inbounds double, double* %16043, i64 2
%16045 = load double, double* %16044
%16046 = load double*, double** %8
%16047 = getelementptr inbounds double, double* %16046, i64 2
%16048 = load double, double* %16047
%16049 = fsub double %16045, %16048
%16050 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16049, double* %16050
%16051 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16052 = load double, double* %16051
%16053 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16054 = load double, double* %16053
%16055 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16056 = load double, double* %16055
%16057 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16058 = load double, double* %16057
%16059 = fmul double %16056, %16058
%16060 = fneg double %16059
%16061 = call double @llvm.fmuladd.f64(double %16052, double %16054, double %16060)
%16062 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16061, double* %16062
%16063 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16064 = load double, double* %16063
%16065 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16066 = load double, double* %16065
%16067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16068 = load double, double* %16067
%16069 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16070 = load double, double* %16069
%16071 = fmul double %16068, %16070
%16072 = fneg double %16071
%16073 = call double @llvm.fmuladd.f64(double %16064, double %16066, double %16072)
%16074 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16073, double* %16074
%16075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16076 = load double, double* %16075
%16077 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16078 = load double, double* %16077
%16079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16080 = load double, double* %16079
%16081 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16082 = load double, double* %16081
%16083 = fmul double %16080, %16082
%16084 = fneg double %16083
%16085 = call double @llvm.fmuladd.f64(double %16076, double %16078, double %16084)
%16086 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16085, double* %16086
%16087 = load double*, double** %13
%16088 = getelementptr inbounds double, double* %16087, i64 0
%16089 = load double, double* %16088
%16090 = load double*, double** %8
%16091 = getelementptr inbounds double, double* %16090, i64 0
%16092 = load double, double* %16091
%16093 = fsub double %16089, %16092
%16094 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16093, double* %16094
%16095 = load double*, double** %13
%16096 = getelementptr inbounds double, double* %16095, i64 1
%16097 = load double, double* %16096
%16098 = load double*, double** %8
%16099 = getelementptr inbounds double, double* %16098, i64 1
%16100 = load double, double* %16099
%16101 = fsub double %16097, %16100
%16102 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16101, double* %16102
%16103 = load double*, double** %13
%16104 = getelementptr inbounds double, double* %16103, i64 2
%16105 = load double, double* %16104
%16106 = load double*, double** %8
%16107 = getelementptr inbounds double, double* %16106, i64 2
%16108 = load double, double* %16107
%16109 = fsub double %16105, %16108
%16110 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16109, double* %16110
%16111 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16112 = load double, double* %16111
%16113 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16114 = load double, double* %16113
%16115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16116 = load double, double* %16115
%16117 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16118 = load double, double* %16117
%16119 = fmul double %16116, %16118
%16120 = call double @llvm.fmuladd.f64(double %16112, double %16114, double %16119)
%16121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16122 = load double, double* %16121
%16123 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16124 = load double, double* %16123
%16125 = call double @llvm.fmuladd.f64(double %16122, double %16124, double %16120)
%16126 = fcmp ogt double %16125, 0.000000e+00
br i1 %16126, label %16127, label %16128
16127: ; preds = %16002
store i32 0, i32* %7
br label %37464
16128: ; preds = %16002
store i32 1, i32* %7
br label %37464
16129: ; preds = %15873
%16130 = load double, double* %18
%16131 = fcmp ogt double %16130, 0.000000e+00
br i1 %16131, label %16132, label %16385
16132: ; preds = %16129
%16133 = load double*, double** %13
%16134 = getelementptr inbounds double, double* %16133, i64 0
%16135 = load double, double* %16134
%16136 = load double*, double** %10
%16137 = getelementptr inbounds double, double* %16136, i64 0
%16138 = load double, double* %16137
%16139 = fsub double %16135, %16138
%16140 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16139, double* %16140
%16141 = load double*, double** %13
%16142 = getelementptr inbounds double, double* %16141, i64 1
%16143 = load double, double* %16142
%16144 = load double*, double** %10
%16145 = getelementptr inbounds double, double* %16144, i64 1
%16146 = load double, double* %16145
%16147 = fsub double %16143, %16146
%16148 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16147, double* %16148
%16149 = load double*, double** %13
%16150 = getelementptr inbounds double, double* %16149, i64 2
%16151 = load double, double* %16150
%16152 = load double*, double** %10
%16153 = getelementptr inbounds double, double* %16152, i64 2
%16154 = load double, double* %16153
%16155 = fsub double %16151, %16154
%16156 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16155, double* %16156
%16157 = load double*, double** %8
%16158 = getelementptr inbounds double, double* %16157, i64 0
%16159 = load double, double* %16158
%16160 = load double*, double** %10
%16161 = getelementptr inbounds double, double* %16160, i64 0
%16162 = load double, double* %16161
%16163 = fsub double %16159, %16162
%16164 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16163, double* %16164
%16165 = load double*, double** %8
%16166 = getelementptr inbounds double, double* %16165, i64 1
%16167 = load double, double* %16166
%16168 = load double*, double** %10
%16169 = getelementptr inbounds double, double* %16168, i64 1
%16170 = load double, double* %16169
%16171 = fsub double %16167, %16170
%16172 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16171, double* %16172
%16173 = load double*, double** %8
%16174 = getelementptr inbounds double, double* %16173, i64 2
%16175 = load double, double* %16174
%16176 = load double*, double** %10
%16177 = getelementptr inbounds double, double* %16176, i64 2
%16178 = load double, double* %16177
%16179 = fsub double %16175, %16178
%16180 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16179, double* %16180
%16181 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16182 = load double, double* %16181
%16183 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16184 = load double, double* %16183
%16185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16186 = load double, double* %16185
%16187 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16188 = load double, double* %16187
%16189 = fmul double %16186, %16188
%16190 = fneg double %16189
%16191 = call double @llvm.fmuladd.f64(double %16182, double %16184, double %16190)
%16192 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16191, double* %16192
%16193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16194 = load double, double* %16193
%16195 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16196 = load double, double* %16195
%16197 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16198 = load double, double* %16197
%16199 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16200 = load double, double* %16199
%16201 = fmul double %16198, %16200
%16202 = fneg double %16201
%16203 = call double @llvm.fmuladd.f64(double %16194, double %16196, double %16202)
%16204 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16203, double* %16204
%16205 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16206 = load double, double* %16205
%16207 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16208 = load double, double* %16207
%16209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16210 = load double, double* %16209
%16211 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16212 = load double, double* %16211
%16213 = fmul double %16210, %16212
%16214 = fneg double %16213
%16215 = call double @llvm.fmuladd.f64(double %16206, double %16208, double %16214)
%16216 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16215, double* %16216
%16217 = load double*, double** %12
%16218 = getelementptr inbounds double, double* %16217, i64 0
%16219 = load double, double* %16218
%16220 = load double*, double** %10
%16221 = getelementptr inbounds double, double* %16220, i64 0
%16222 = load double, double* %16221
%16223 = fsub double %16219, %16222
%16224 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16223, double* %16224
%16225 = load double*, double** %12
%16226 = getelementptr inbounds double, double* %16225, i64 1
%16227 = load double, double* %16226
%16228 = load double*, double** %10
%16229 = getelementptr inbounds double, double* %16228, i64 1
%16230 = load double, double* %16229
%16231 = fsub double %16227, %16230
%16232 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16231, double* %16232
%16233 = load double*, double** %12
%16234 = getelementptr inbounds double, double* %16233, i64 2
%16235 = load double, double* %16234
%16236 = load double*, double** %10
%16237 = getelementptr inbounds double, double* %16236, i64 2
%16238 = load double, double* %16237
%16239 = fsub double %16235, %16238
%16240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16239, double* %16240
%16241 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16242 = load double, double* %16241
%16243 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16244 = load double, double* %16243
%16245 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16246 = load double, double* %16245
%16247 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16248 = load double, double* %16247
%16249 = fmul double %16246, %16248
%16250 = call double @llvm.fmuladd.f64(double %16242, double %16244, double %16249)
%16251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16252 = load double, double* %16251
%16253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16254 = load double, double* %16253
%16255 = call double @llvm.fmuladd.f64(double %16252, double %16254, double %16250)
%16256 = fcmp ogt double %16255, 0.000000e+00
br i1 %16256, label %16257, label %16258
16257: ; preds = %16132
store i32 0, i32* %7
br label %37464
16258: ; preds = %16132
%16259 = load double*, double** %13
%16260 = getelementptr inbounds double, double* %16259, i64 0
%16261 = load double, double* %16260
%16262 = load double*, double** %8
%16263 = getelementptr inbounds double, double* %16262, i64 0
%16264 = load double, double* %16263
%16265 = fsub double %16261, %16264
%16266 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16265, double* %16266
%16267 = load double*, double** %13
%16268 = getelementptr inbounds double, double* %16267, i64 1
%16269 = load double, double* %16268
%16270 = load double*, double** %8
%16271 = getelementptr inbounds double, double* %16270, i64 1
%16272 = load double, double* %16271
%16273 = fsub double %16269, %16272
%16274 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16273, double* %16274
%16275 = load double*, double** %13
%16276 = getelementptr inbounds double, double* %16275, i64 2
%16277 = load double, double* %16276
%16278 = load double*, double** %8
%16279 = getelementptr inbounds double, double* %16278, i64 2
%16280 = load double, double* %16279
%16281 = fsub double %16277, %16280
%16282 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16281, double* %16282
%16283 = load double*, double** %9
%16284 = getelementptr inbounds double, double* %16283, i64 0
%16285 = load double, double* %16284
%16286 = load double*, double** %8
%16287 = getelementptr inbounds double, double* %16286, i64 0
%16288 = load double, double* %16287
%16289 = fsub double %16285, %16288
%16290 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16289, double* %16290
%16291 = load double*, double** %9
%16292 = getelementptr inbounds double, double* %16291, i64 1
%16293 = load double, double* %16292
%16294 = load double*, double** %8
%16295 = getelementptr inbounds double, double* %16294, i64 1
%16296 = load double, double* %16295
%16297 = fsub double %16293, %16296
%16298 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16297, double* %16298
%16299 = load double*, double** %9
%16300 = getelementptr inbounds double, double* %16299, i64 2
%16301 = load double, double* %16300
%16302 = load double*, double** %8
%16303 = getelementptr inbounds double, double* %16302, i64 2
%16304 = load double, double* %16303
%16305 = fsub double %16301, %16304
%16306 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16305, double* %16306
%16307 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16308 = load double, double* %16307
%16309 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16310 = load double, double* %16309
%16311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16312 = load double, double* %16311
%16313 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16314 = load double, double* %16313
%16315 = fmul double %16312, %16314
%16316 = fneg double %16315
%16317 = call double @llvm.fmuladd.f64(double %16308, double %16310, double %16316)
%16318 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16317, double* %16318
%16319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16320 = load double, double* %16319
%16321 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16322 = load double, double* %16321
%16323 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16324 = load double, double* %16323
%16325 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16326 = load double, double* %16325
%16327 = fmul double %16324, %16326
%16328 = fneg double %16327
%16329 = call double @llvm.fmuladd.f64(double %16320, double %16322, double %16328)
%16330 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16329, double* %16330
%16331 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16332 = load double, double* %16331
%16333 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16334 = load double, double* %16333
%16335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16336 = load double, double* %16335
%16337 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16338 = load double, double* %16337
%16339 = fmul double %16336, %16338
%16340 = fneg double %16339
%16341 = call double @llvm.fmuladd.f64(double %16332, double %16334, double %16340)
%16342 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16341, double* %16342
%16343 = load double*, double** %11
%16344 = getelementptr inbounds double, double* %16343, i64 0
%16345 = load double, double* %16344
%16346 = load double*, double** %8
%16347 = getelementptr inbounds double, double* %16346, i64 0
%16348 = load double, double* %16347
%16349 = fsub double %16345, %16348
%16350 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16349, double* %16350
%16351 = load double*, double** %11
%16352 = getelementptr inbounds double, double* %16351, i64 1
%16353 = load double, double* %16352
%16354 = load double*, double** %8
%16355 = getelementptr inbounds double, double* %16354, i64 1
%16356 = load double, double* %16355
%16357 = fsub double %16353, %16356
%16358 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16357, double* %16358
%16359 = load double*, double** %11
%16360 = getelementptr inbounds double, double* %16359, i64 2
%16361 = load double, double* %16360
%16362 = load double*, double** %8
%16363 = getelementptr inbounds double, double* %16362, i64 2
%16364 = load double, double* %16363
%16365 = fsub double %16361, %16364
%16366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16365, double* %16366
%16367 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16368 = load double, double* %16367
%16369 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16370 = load double, double* %16369
%16371 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16372 = load double, double* %16371
%16373 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16374 = load double, double* %16373
%16375 = fmul double %16372, %16374
%16376 = call double @llvm.fmuladd.f64(double %16368, double %16370, double %16375)
%16377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16378 = load double, double* %16377
%16379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16380 = load double, double* %16379
%16381 = call double @llvm.fmuladd.f64(double %16378, double %16380, double %16376)
%16382 = fcmp ogt double %16381, 0.000000e+00
br i1 %16382, label %16383, label %16384
16383: ; preds = %16258
store i32 0, i32* %7
br label %37464
16384: ; preds = %16258
store i32 1, i32* %7
br label %37464
16385: ; preds = %16129
%16386 = load double*, double** %11
%16387 = getelementptr inbounds double, double* %16386, i64 0
%16388 = load double, double* %16387
%16389 = load double*, double** %9
%16390 = getelementptr inbounds double, double* %16389, i64 0
%16391 = load double, double* %16390
%16392 = fsub double %16388, %16391
%16393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16392, double* %16393
%16394 = load double*, double** %11
%16395 = getelementptr inbounds double, double* %16394, i64 1
%16396 = load double, double* %16395
%16397 = load double*, double** %9
%16398 = getelementptr inbounds double, double* %16397, i64 1
%16399 = load double, double* %16398
%16400 = fsub double %16396, %16399
%16401 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16400, double* %16401
%16402 = load double*, double** %11
%16403 = getelementptr inbounds double, double* %16402, i64 2
%16404 = load double, double* %16403
%16405 = load double*, double** %9
%16406 = getelementptr inbounds double, double* %16405, i64 2
%16407 = load double, double* %16406
%16408 = fsub double %16404, %16407
%16409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16408, double* %16409
%16410 = load double*, double** %8
%16411 = getelementptr inbounds double, double* %16410, i64 0
%16412 = load double, double* %16411
%16413 = load double*, double** %9
%16414 = getelementptr inbounds double, double* %16413, i64 0
%16415 = load double, double* %16414
%16416 = fsub double %16412, %16415
%16417 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16416, double* %16417
%16418 = load double*, double** %8
%16419 = getelementptr inbounds double, double* %16418, i64 1
%16420 = load double, double* %16419
%16421 = load double*, double** %9
%16422 = getelementptr inbounds double, double* %16421, i64 1
%16423 = load double, double* %16422
%16424 = fsub double %16420, %16423
%16425 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16424, double* %16425
%16426 = load double*, double** %8
%16427 = getelementptr inbounds double, double* %16426, i64 2
%16428 = load double, double* %16427
%16429 = load double*, double** %9
%16430 = getelementptr inbounds double, double* %16429, i64 2
%16431 = load double, double* %16430
%16432 = fsub double %16428, %16431
%16433 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16432, double* %16433
%16434 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16435 = load double, double* %16434
%16436 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16437 = load double, double* %16436
%16438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16439 = load double, double* %16438
%16440 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16441 = load double, double* %16440
%16442 = fmul double %16439, %16441
%16443 = fneg double %16442
%16444 = call double @llvm.fmuladd.f64(double %16435, double %16437, double %16443)
%16445 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16444, double* %16445
%16446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16447 = load double, double* %16446
%16448 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16449 = load double, double* %16448
%16450 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16451 = load double, double* %16450
%16452 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16453 = load double, double* %16452
%16454 = fmul double %16451, %16453
%16455 = fneg double %16454
%16456 = call double @llvm.fmuladd.f64(double %16447, double %16449, double %16455)
%16457 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16456, double* %16457
%16458 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16459 = load double, double* %16458
%16460 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16461 = load double, double* %16460
%16462 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16463 = load double, double* %16462
%16464 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16465 = load double, double* %16464
%16466 = fmul double %16463, %16465
%16467 = fneg double %16466
%16468 = call double @llvm.fmuladd.f64(double %16459, double %16461, double %16467)
%16469 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16468, double* %16469
%16470 = load double*, double** %13
%16471 = getelementptr inbounds double, double* %16470, i64 0
%16472 = load double, double* %16471
%16473 = load double*, double** %9
%16474 = getelementptr inbounds double, double* %16473, i64 0
%16475 = load double, double* %16474
%16476 = fsub double %16472, %16475
%16477 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16476, double* %16477
%16478 = load double*, double** %13
%16479 = getelementptr inbounds double, double* %16478, i64 1
%16480 = load double, double* %16479
%16481 = load double*, double** %9
%16482 = getelementptr inbounds double, double* %16481, i64 1
%16483 = load double, double* %16482
%16484 = fsub double %16480, %16483
%16485 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16484, double* %16485
%16486 = load double*, double** %13
%16487 = getelementptr inbounds double, double* %16486, i64 2
%16488 = load double, double* %16487
%16489 = load double*, double** %9
%16490 = getelementptr inbounds double, double* %16489, i64 2
%16491 = load double, double* %16490
%16492 = fsub double %16488, %16491
%16493 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16492, double* %16493
%16494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16495 = load double, double* %16494
%16496 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16497 = load double, double* %16496
%16498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16499 = load double, double* %16498
%16500 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16501 = load double, double* %16500
%16502 = fmul double %16499, %16501
%16503 = call double @llvm.fmuladd.f64(double %16495, double %16497, double %16502)
%16504 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16505 = load double, double* %16504
%16506 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16507 = load double, double* %16506
%16508 = call double @llvm.fmuladd.f64(double %16505, double %16507, double %16503)
%16509 = fcmp ogt double %16508, 0.000000e+00
br i1 %16509, label %16510, label %16511
16510: ; preds = %16385
store i32 0, i32* %7
br label %37464
16511: ; preds = %16385
%16512 = load double*, double** %11
%16513 = getelementptr inbounds double, double* %16512, i64 0
%16514 = load double, double* %16513
%16515 = load double*, double** %8
%16516 = getelementptr inbounds double, double* %16515, i64 0
%16517 = load double, double* %16516
%16518 = fsub double %16514, %16517
%16519 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16518, double* %16519
%16520 = load double*, double** %11
%16521 = getelementptr inbounds double, double* %16520, i64 1
%16522 = load double, double* %16521
%16523 = load double*, double** %8
%16524 = getelementptr inbounds double, double* %16523, i64 1
%16525 = load double, double* %16524
%16526 = fsub double %16522, %16525
%16527 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16526, double* %16527
%16528 = load double*, double** %11
%16529 = getelementptr inbounds double, double* %16528, i64 2
%16530 = load double, double* %16529
%16531 = load double*, double** %8
%16532 = getelementptr inbounds double, double* %16531, i64 2
%16533 = load double, double* %16532
%16534 = fsub double %16530, %16533
%16535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16534, double* %16535
%16536 = load double*, double** %10
%16537 = getelementptr inbounds double, double* %16536, i64 0
%16538 = load double, double* %16537
%16539 = load double*, double** %8
%16540 = getelementptr inbounds double, double* %16539, i64 0
%16541 = load double, double* %16540
%16542 = fsub double %16538, %16541
%16543 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16542, double* %16543
%16544 = load double*, double** %10
%16545 = getelementptr inbounds double, double* %16544, i64 1
%16546 = load double, double* %16545
%16547 = load double*, double** %8
%16548 = getelementptr inbounds double, double* %16547, i64 1
%16549 = load double, double* %16548
%16550 = fsub double %16546, %16549
%16551 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16550, double* %16551
%16552 = load double*, double** %10
%16553 = getelementptr inbounds double, double* %16552, i64 2
%16554 = load double, double* %16553
%16555 = load double*, double** %8
%16556 = getelementptr inbounds double, double* %16555, i64 2
%16557 = load double, double* %16556
%16558 = fsub double %16554, %16557
%16559 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16558, double* %16559
%16560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16561 = load double, double* %16560
%16562 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16563 = load double, double* %16562
%16564 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16565 = load double, double* %16564
%16566 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16567 = load double, double* %16566
%16568 = fmul double %16565, %16567
%16569 = fneg double %16568
%16570 = call double @llvm.fmuladd.f64(double %16561, double %16563, double %16569)
%16571 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16570, double* %16571
%16572 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16573 = load double, double* %16572
%16574 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16575 = load double, double* %16574
%16576 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16577 = load double, double* %16576
%16578 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16579 = load double, double* %16578
%16580 = fmul double %16577, %16579
%16581 = fneg double %16580
%16582 = call double @llvm.fmuladd.f64(double %16573, double %16575, double %16581)
%16583 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16582, double* %16583
%16584 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16585 = load double, double* %16584
%16586 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16587 = load double, double* %16586
%16588 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16589 = load double, double* %16588
%16590 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16591 = load double, double* %16590
%16592 = fmul double %16589, %16591
%16593 = fneg double %16592
%16594 = call double @llvm.fmuladd.f64(double %16585, double %16587, double %16593)
%16595 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16594, double* %16595
%16596 = load double*, double** %12
%16597 = getelementptr inbounds double, double* %16596, i64 0
%16598 = load double, double* %16597
%16599 = load double*, double** %8
%16600 = getelementptr inbounds double, double* %16599, i64 0
%16601 = load double, double* %16600
%16602 = fsub double %16598, %16601
%16603 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16602, double* %16603
%16604 = load double*, double** %12
%16605 = getelementptr inbounds double, double* %16604, i64 1
%16606 = load double, double* %16605
%16607 = load double*, double** %8
%16608 = getelementptr inbounds double, double* %16607, i64 1
%16609 = load double, double* %16608
%16610 = fsub double %16606, %16609
%16611 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16610, double* %16611
%16612 = load double*, double** %12
%16613 = getelementptr inbounds double, double* %16612, i64 2
%16614 = load double, double* %16613
%16615 = load double*, double** %8
%16616 = getelementptr inbounds double, double* %16615, i64 2
%16617 = load double, double* %16616
%16618 = fsub double %16614, %16617
%16619 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16618, double* %16619
%16620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16621 = load double, double* %16620
%16622 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16623 = load double, double* %16622
%16624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16625 = load double, double* %16624
%16626 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16627 = load double, double* %16626
%16628 = fmul double %16625, %16627
%16629 = call double @llvm.fmuladd.f64(double %16621, double %16623, double %16628)
%16630 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16631 = load double, double* %16630
%16632 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16633 = load double, double* %16632
%16634 = call double @llvm.fmuladd.f64(double %16631, double %16633, double %16629)
%16635 = fcmp ogt double %16634, 0.000000e+00
br i1 %16635, label %16636, label %16637
16636: ; preds = %16511
store i32 0, i32* %7
br label %37464
16637: ; preds = %16511
store i32 1, i32* %7
br label %37464
16638: ; preds = %15870
%16639 = load double, double* %17
%16640 = fcmp olt double %16639, 0.000000e+00
br i1 %16640, label %16641, label %17406
16641: ; preds = %16638
%16642 = load double, double* %19
%16643 = fcmp olt double %16642, 0.000000e+00
br i1 %16643, label %16644, label %16897
16644: ; preds = %16641
%16645 = load double*, double** %12
%16646 = getelementptr inbounds double, double* %16645, i64 0
%16647 = load double, double* %16646
%16648 = load double*, double** %9
%16649 = getelementptr inbounds double, double* %16648, i64 0
%16650 = load double, double* %16649
%16651 = fsub double %16647, %16650
%16652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16651, double* %16652
%16653 = load double*, double** %12
%16654 = getelementptr inbounds double, double* %16653, i64 1
%16655 = load double, double* %16654
%16656 = load double*, double** %9
%16657 = getelementptr inbounds double, double* %16656, i64 1
%16658 = load double, double* %16657
%16659 = fsub double %16655, %16658
%16660 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16659, double* %16660
%16661 = load double*, double** %12
%16662 = getelementptr inbounds double, double* %16661, i64 2
%16663 = load double, double* %16662
%16664 = load double*, double** %9
%16665 = getelementptr inbounds double, double* %16664, i64 2
%16666 = load double, double* %16665
%16667 = fsub double %16663, %16666
%16668 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16667, double* %16668
%16669 = load double*, double** %8
%16670 = getelementptr inbounds double, double* %16669, i64 0
%16671 = load double, double* %16670
%16672 = load double*, double** %9
%16673 = getelementptr inbounds double, double* %16672, i64 0
%16674 = load double, double* %16673
%16675 = fsub double %16671, %16674
%16676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16675, double* %16676
%16677 = load double*, double** %8
%16678 = getelementptr inbounds double, double* %16677, i64 1
%16679 = load double, double* %16678
%16680 = load double*, double** %9
%16681 = getelementptr inbounds double, double* %16680, i64 1
%16682 = load double, double* %16681
%16683 = fsub double %16679, %16682
%16684 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16683, double* %16684
%16685 = load double*, double** %8
%16686 = getelementptr inbounds double, double* %16685, i64 2
%16687 = load double, double* %16686
%16688 = load double*, double** %9
%16689 = getelementptr inbounds double, double* %16688, i64 2
%16690 = load double, double* %16689
%16691 = fsub double %16687, %16690
%16692 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16691, double* %16692
%16693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16694 = load double, double* %16693
%16695 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16696 = load double, double* %16695
%16697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16698 = load double, double* %16697
%16699 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16700 = load double, double* %16699
%16701 = fmul double %16698, %16700
%16702 = fneg double %16701
%16703 = call double @llvm.fmuladd.f64(double %16694, double %16696, double %16702)
%16704 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16703, double* %16704
%16705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16706 = load double, double* %16705
%16707 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16708 = load double, double* %16707
%16709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16710 = load double, double* %16709
%16711 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16712 = load double, double* %16711
%16713 = fmul double %16710, %16712
%16714 = fneg double %16713
%16715 = call double @llvm.fmuladd.f64(double %16706, double %16708, double %16714)
%16716 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16715, double* %16716
%16717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16718 = load double, double* %16717
%16719 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16720 = load double, double* %16719
%16721 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16722 = load double, double* %16721
%16723 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16724 = load double, double* %16723
%16725 = fmul double %16722, %16724
%16726 = fneg double %16725
%16727 = call double @llvm.fmuladd.f64(double %16718, double %16720, double %16726)
%16728 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16727, double* %16728
%16729 = load double*, double** %11
%16730 = getelementptr inbounds double, double* %16729, i64 0
%16731 = load double, double* %16730
%16732 = load double*, double** %9
%16733 = getelementptr inbounds double, double* %16732, i64 0
%16734 = load double, double* %16733
%16735 = fsub double %16731, %16734
%16736 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16735, double* %16736
%16737 = load double*, double** %11
%16738 = getelementptr inbounds double, double* %16737, i64 1
%16739 = load double, double* %16738
%16740 = load double*, double** %9
%16741 = getelementptr inbounds double, double* %16740, i64 1
%16742 = load double, double* %16741
%16743 = fsub double %16739, %16742
%16744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16743, double* %16744
%16745 = load double*, double** %11
%16746 = getelementptr inbounds double, double* %16745, i64 2
%16747 = load double, double* %16746
%16748 = load double*, double** %9
%16749 = getelementptr inbounds double, double* %16748, i64 2
%16750 = load double, double* %16749
%16751 = fsub double %16747, %16750
%16752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16751, double* %16752
%16753 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16754 = load double, double* %16753
%16755 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16756 = load double, double* %16755
%16757 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16758 = load double, double* %16757
%16759 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16760 = load double, double* %16759
%16761 = fmul double %16758, %16760
%16762 = call double @llvm.fmuladd.f64(double %16754, double %16756, double %16761)
%16763 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16764 = load double, double* %16763
%16765 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16766 = load double, double* %16765
%16767 = call double @llvm.fmuladd.f64(double %16764, double %16766, double %16762)
%16768 = fcmp ogt double %16767, 0.000000e+00
br i1 %16768, label %16769, label %16770
16769: ; preds = %16644
store i32 0, i32* %7
br label %37464
16770: ; preds = %16644
%16771 = load double*, double** %12
%16772 = getelementptr inbounds double, double* %16771, i64 0
%16773 = load double, double* %16772
%16774 = load double*, double** %8
%16775 = getelementptr inbounds double, double* %16774, i64 0
%16776 = load double, double* %16775
%16777 = fsub double %16773, %16776
%16778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16777, double* %16778
%16779 = load double*, double** %12
%16780 = getelementptr inbounds double, double* %16779, i64 1
%16781 = load double, double* %16780
%16782 = load double*, double** %8
%16783 = getelementptr inbounds double, double* %16782, i64 1
%16784 = load double, double* %16783
%16785 = fsub double %16781, %16784
%16786 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16785, double* %16786
%16787 = load double*, double** %12
%16788 = getelementptr inbounds double, double* %16787, i64 2
%16789 = load double, double* %16788
%16790 = load double*, double** %8
%16791 = getelementptr inbounds double, double* %16790, i64 2
%16792 = load double, double* %16791
%16793 = fsub double %16789, %16792
%16794 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16793, double* %16794
%16795 = load double*, double** %10
%16796 = getelementptr inbounds double, double* %16795, i64 0
%16797 = load double, double* %16796
%16798 = load double*, double** %8
%16799 = getelementptr inbounds double, double* %16798, i64 0
%16800 = load double, double* %16799
%16801 = fsub double %16797, %16800
%16802 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16801, double* %16802
%16803 = load double*, double** %10
%16804 = getelementptr inbounds double, double* %16803, i64 1
%16805 = load double, double* %16804
%16806 = load double*, double** %8
%16807 = getelementptr inbounds double, double* %16806, i64 1
%16808 = load double, double* %16807
%16809 = fsub double %16805, %16808
%16810 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16809, double* %16810
%16811 = load double*, double** %10
%16812 = getelementptr inbounds double, double* %16811, i64 2
%16813 = load double, double* %16812
%16814 = load double*, double** %8
%16815 = getelementptr inbounds double, double* %16814, i64 2
%16816 = load double, double* %16815
%16817 = fsub double %16813, %16816
%16818 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16817, double* %16818
%16819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16820 = load double, double* %16819
%16821 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16822 = load double, double* %16821
%16823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16824 = load double, double* %16823
%16825 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16826 = load double, double* %16825
%16827 = fmul double %16824, %16826
%16828 = fneg double %16827
%16829 = call double @llvm.fmuladd.f64(double %16820, double %16822, double %16828)
%16830 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16829, double* %16830
%16831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16832 = load double, double* %16831
%16833 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16834 = load double, double* %16833
%16835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16836 = load double, double* %16835
%16837 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16838 = load double, double* %16837
%16839 = fmul double %16836, %16838
%16840 = fneg double %16839
%16841 = call double @llvm.fmuladd.f64(double %16832, double %16834, double %16840)
%16842 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16841, double* %16842
%16843 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16844 = load double, double* %16843
%16845 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16846 = load double, double* %16845
%16847 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16848 = load double, double* %16847
%16849 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16850 = load double, double* %16849
%16851 = fmul double %16848, %16850
%16852 = fneg double %16851
%16853 = call double @llvm.fmuladd.f64(double %16844, double %16846, double %16852)
%16854 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16853, double* %16854
%16855 = load double*, double** %13
%16856 = getelementptr inbounds double, double* %16855, i64 0
%16857 = load double, double* %16856
%16858 = load double*, double** %8
%16859 = getelementptr inbounds double, double* %16858, i64 0
%16860 = load double, double* %16859
%16861 = fsub double %16857, %16860
%16862 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16861, double* %16862
%16863 = load double*, double** %13
%16864 = getelementptr inbounds double, double* %16863, i64 1
%16865 = load double, double* %16864
%16866 = load double*, double** %8
%16867 = getelementptr inbounds double, double* %16866, i64 1
%16868 = load double, double* %16867
%16869 = fsub double %16865, %16868
%16870 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16869, double* %16870
%16871 = load double*, double** %13
%16872 = getelementptr inbounds double, double* %16871, i64 2
%16873 = load double, double* %16872
%16874 = load double*, double** %8
%16875 = getelementptr inbounds double, double* %16874, i64 2
%16876 = load double, double* %16875
%16877 = fsub double %16873, %16876
%16878 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16877, double* %16878
%16879 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16880 = load double, double* %16879
%16881 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%16882 = load double, double* %16881
%16883 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16884 = load double, double* %16883
%16885 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%16886 = load double, double* %16885
%16887 = fmul double %16884, %16886
%16888 = call double @llvm.fmuladd.f64(double %16880, double %16882, double %16887)
%16889 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16890 = load double, double* %16889
%16891 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%16892 = load double, double* %16891
%16893 = call double @llvm.fmuladd.f64(double %16890, double %16892, double %16888)
%16894 = fcmp ogt double %16893, 0.000000e+00
br i1 %16894, label %16895, label %16896
16895: ; preds = %16770
store i32 0, i32* %7
br label %37464
16896: ; preds = %16770
store i32 1, i32* %7
br label %37464
16897: ; preds = %16641
%16898 = load double, double* %18
%16899 = fcmp olt double %16898, 0.000000e+00
br i1 %16899, label %16900, label %17153
16900: ; preds = %16897
%16901 = load double*, double** %13
%16902 = getelementptr inbounds double, double* %16901, i64 0
%16903 = load double, double* %16902
%16904 = load double*, double** %9
%16905 = getelementptr inbounds double, double* %16904, i64 0
%16906 = load double, double* %16905
%16907 = fsub double %16903, %16906
%16908 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16907, double* %16908
%16909 = load double*, double** %13
%16910 = getelementptr inbounds double, double* %16909, i64 1
%16911 = load double, double* %16910
%16912 = load double*, double** %9
%16913 = getelementptr inbounds double, double* %16912, i64 1
%16914 = load double, double* %16913
%16915 = fsub double %16911, %16914
%16916 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16915, double* %16916
%16917 = load double*, double** %13
%16918 = getelementptr inbounds double, double* %16917, i64 2
%16919 = load double, double* %16918
%16920 = load double*, double** %9
%16921 = getelementptr inbounds double, double* %16920, i64 2
%16922 = load double, double* %16921
%16923 = fsub double %16919, %16922
%16924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %16923, double* %16924
%16925 = load double*, double** %8
%16926 = getelementptr inbounds double, double* %16925, i64 0
%16927 = load double, double* %16926
%16928 = load double*, double** %9
%16929 = getelementptr inbounds double, double* %16928, i64 0
%16930 = load double, double* %16929
%16931 = fsub double %16927, %16930
%16932 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %16931, double* %16932
%16933 = load double*, double** %8
%16934 = getelementptr inbounds double, double* %16933, i64 1
%16935 = load double, double* %16934
%16936 = load double*, double** %9
%16937 = getelementptr inbounds double, double* %16936, i64 1
%16938 = load double, double* %16937
%16939 = fsub double %16935, %16938
%16940 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %16939, double* %16940
%16941 = load double*, double** %8
%16942 = getelementptr inbounds double, double* %16941, i64 2
%16943 = load double, double* %16942
%16944 = load double*, double** %9
%16945 = getelementptr inbounds double, double* %16944, i64 2
%16946 = load double, double* %16945
%16947 = fsub double %16943, %16946
%16948 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %16947, double* %16948
%16949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16950 = load double, double* %16949
%16951 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16952 = load double, double* %16951
%16953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16954 = load double, double* %16953
%16955 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16956 = load double, double* %16955
%16957 = fmul double %16954, %16956
%16958 = fneg double %16957
%16959 = call double @llvm.fmuladd.f64(double %16950, double %16952, double %16958)
%16960 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %16959, double* %16960
%16961 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%16962 = load double, double* %16961
%16963 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16964 = load double, double* %16963
%16965 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16966 = load double, double* %16965
%16967 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%16968 = load double, double* %16967
%16969 = fmul double %16966, %16968
%16970 = fneg double %16969
%16971 = call double @llvm.fmuladd.f64(double %16962, double %16964, double %16970)
%16972 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %16971, double* %16972
%16973 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%16974 = load double, double* %16973
%16975 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%16976 = load double, double* %16975
%16977 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%16978 = load double, double* %16977
%16979 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%16980 = load double, double* %16979
%16981 = fmul double %16978, %16980
%16982 = fneg double %16981
%16983 = call double @llvm.fmuladd.f64(double %16974, double %16976, double %16982)
%16984 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %16983, double* %16984
%16985 = load double*, double** %12
%16986 = getelementptr inbounds double, double* %16985, i64 0
%16987 = load double, double* %16986
%16988 = load double*, double** %9
%16989 = getelementptr inbounds double, double* %16988, i64 0
%16990 = load double, double* %16989
%16991 = fsub double %16987, %16990
%16992 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %16991, double* %16992
%16993 = load double*, double** %12
%16994 = getelementptr inbounds double, double* %16993, i64 1
%16995 = load double, double* %16994
%16996 = load double*, double** %9
%16997 = getelementptr inbounds double, double* %16996, i64 1
%16998 = load double, double* %16997
%16999 = fsub double %16995, %16998
%17000 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %16999, double* %17000
%17001 = load double*, double** %12
%17002 = getelementptr inbounds double, double* %17001, i64 2
%17003 = load double, double* %17002
%17004 = load double*, double** %9
%17005 = getelementptr inbounds double, double* %17004, i64 2
%17006 = load double, double* %17005
%17007 = fsub double %17003, %17006
%17008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17007, double* %17008
%17009 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17010 = load double, double* %17009
%17011 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17012 = load double, double* %17011
%17013 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17014 = load double, double* %17013
%17015 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17016 = load double, double* %17015
%17017 = fmul double %17014, %17016
%17018 = call double @llvm.fmuladd.f64(double %17010, double %17012, double %17017)
%17019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17020 = load double, double* %17019
%17021 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17022 = load double, double* %17021
%17023 = call double @llvm.fmuladd.f64(double %17020, double %17022, double %17018)
%17024 = fcmp ogt double %17023, 0.000000e+00
br i1 %17024, label %17025, label %17026
17025: ; preds = %16900
store i32 0, i32* %7
br label %37464
17026: ; preds = %16900
%17027 = load double*, double** %13
%17028 = getelementptr inbounds double, double* %17027, i64 0
%17029 = load double, double* %17028
%17030 = load double*, double** %8
%17031 = getelementptr inbounds double, double* %17030, i64 0
%17032 = load double, double* %17031
%17033 = fsub double %17029, %17032
%17034 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17033, double* %17034
%17035 = load double*, double** %13
%17036 = getelementptr inbounds double, double* %17035, i64 1
%17037 = load double, double* %17036
%17038 = load double*, double** %8
%17039 = getelementptr inbounds double, double* %17038, i64 1
%17040 = load double, double* %17039
%17041 = fsub double %17037, %17040
%17042 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17041, double* %17042
%17043 = load double*, double** %13
%17044 = getelementptr inbounds double, double* %17043, i64 2
%17045 = load double, double* %17044
%17046 = load double*, double** %8
%17047 = getelementptr inbounds double, double* %17046, i64 2
%17048 = load double, double* %17047
%17049 = fsub double %17045, %17048
%17050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17049, double* %17050
%17051 = load double*, double** %10
%17052 = getelementptr inbounds double, double* %17051, i64 0
%17053 = load double, double* %17052
%17054 = load double*, double** %8
%17055 = getelementptr inbounds double, double* %17054, i64 0
%17056 = load double, double* %17055
%17057 = fsub double %17053, %17056
%17058 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17057, double* %17058
%17059 = load double*, double** %10
%17060 = getelementptr inbounds double, double* %17059, i64 1
%17061 = load double, double* %17060
%17062 = load double*, double** %8
%17063 = getelementptr inbounds double, double* %17062, i64 1
%17064 = load double, double* %17063
%17065 = fsub double %17061, %17064
%17066 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17065, double* %17066
%17067 = load double*, double** %10
%17068 = getelementptr inbounds double, double* %17067, i64 2
%17069 = load double, double* %17068
%17070 = load double*, double** %8
%17071 = getelementptr inbounds double, double* %17070, i64 2
%17072 = load double, double* %17071
%17073 = fsub double %17069, %17072
%17074 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17073, double* %17074
%17075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17076 = load double, double* %17075
%17077 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17078 = load double, double* %17077
%17079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17080 = load double, double* %17079
%17081 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17082 = load double, double* %17081
%17083 = fmul double %17080, %17082
%17084 = fneg double %17083
%17085 = call double @llvm.fmuladd.f64(double %17076, double %17078, double %17084)
%17086 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17085, double* %17086
%17087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17088 = load double, double* %17087
%17089 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17090 = load double, double* %17089
%17091 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17092 = load double, double* %17091
%17093 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17094 = load double, double* %17093
%17095 = fmul double %17092, %17094
%17096 = fneg double %17095
%17097 = call double @llvm.fmuladd.f64(double %17088, double %17090, double %17096)
%17098 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17097, double* %17098
%17099 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17100 = load double, double* %17099
%17101 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17102 = load double, double* %17101
%17103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17104 = load double, double* %17103
%17105 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17106 = load double, double* %17105
%17107 = fmul double %17104, %17106
%17108 = fneg double %17107
%17109 = call double @llvm.fmuladd.f64(double %17100, double %17102, double %17108)
%17110 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17109, double* %17110
%17111 = load double*, double** %11
%17112 = getelementptr inbounds double, double* %17111, i64 0
%17113 = load double, double* %17112
%17114 = load double*, double** %8
%17115 = getelementptr inbounds double, double* %17114, i64 0
%17116 = load double, double* %17115
%17117 = fsub double %17113, %17116
%17118 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17117, double* %17118
%17119 = load double*, double** %11
%17120 = getelementptr inbounds double, double* %17119, i64 1
%17121 = load double, double* %17120
%17122 = load double*, double** %8
%17123 = getelementptr inbounds double, double* %17122, i64 1
%17124 = load double, double* %17123
%17125 = fsub double %17121, %17124
%17126 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17125, double* %17126
%17127 = load double*, double** %11
%17128 = getelementptr inbounds double, double* %17127, i64 2
%17129 = load double, double* %17128
%17130 = load double*, double** %8
%17131 = getelementptr inbounds double, double* %17130, i64 2
%17132 = load double, double* %17131
%17133 = fsub double %17129, %17132
%17134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17133, double* %17134
%17135 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17136 = load double, double* %17135
%17137 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17138 = load double, double* %17137
%17139 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17140 = load double, double* %17139
%17141 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17142 = load double, double* %17141
%17143 = fmul double %17140, %17142
%17144 = call double @llvm.fmuladd.f64(double %17136, double %17138, double %17143)
%17145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17146 = load double, double* %17145
%17147 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17148 = load double, double* %17147
%17149 = call double @llvm.fmuladd.f64(double %17146, double %17148, double %17144)
%17150 = fcmp ogt double %17149, 0.000000e+00
br i1 %17150, label %17151, label %17152
17151: ; preds = %17026
store i32 0, i32* %7
br label %37464
17152: ; preds = %17026
store i32 1, i32* %7
br label %37464
17153: ; preds = %16897
%17154 = load double*, double** %11
%17155 = getelementptr inbounds double, double* %17154, i64 0
%17156 = load double, double* %17155
%17157 = load double*, double** %10
%17158 = getelementptr inbounds double, double* %17157, i64 0
%17159 = load double, double* %17158
%17160 = fsub double %17156, %17159
%17161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17160, double* %17161
%17162 = load double*, double** %11
%17163 = getelementptr inbounds double, double* %17162, i64 1
%17164 = load double, double* %17163
%17165 = load double*, double** %10
%17166 = getelementptr inbounds double, double* %17165, i64 1
%17167 = load double, double* %17166
%17168 = fsub double %17164, %17167
%17169 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17168, double* %17169
%17170 = load double*, double** %11
%17171 = getelementptr inbounds double, double* %17170, i64 2
%17172 = load double, double* %17171
%17173 = load double*, double** %10
%17174 = getelementptr inbounds double, double* %17173, i64 2
%17175 = load double, double* %17174
%17176 = fsub double %17172, %17175
%17177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17176, double* %17177
%17178 = load double*, double** %8
%17179 = getelementptr inbounds double, double* %17178, i64 0
%17180 = load double, double* %17179
%17181 = load double*, double** %10
%17182 = getelementptr inbounds double, double* %17181, i64 0
%17183 = load double, double* %17182
%17184 = fsub double %17180, %17183
%17185 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17184, double* %17185
%17186 = load double*, double** %8
%17187 = getelementptr inbounds double, double* %17186, i64 1
%17188 = load double, double* %17187
%17189 = load double*, double** %10
%17190 = getelementptr inbounds double, double* %17189, i64 1
%17191 = load double, double* %17190
%17192 = fsub double %17188, %17191
%17193 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17192, double* %17193
%17194 = load double*, double** %8
%17195 = getelementptr inbounds double, double* %17194, i64 2
%17196 = load double, double* %17195
%17197 = load double*, double** %10
%17198 = getelementptr inbounds double, double* %17197, i64 2
%17199 = load double, double* %17198
%17200 = fsub double %17196, %17199
%17201 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17200, double* %17201
%17202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17203 = load double, double* %17202
%17204 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17205 = load double, double* %17204
%17206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17207 = load double, double* %17206
%17208 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17209 = load double, double* %17208
%17210 = fmul double %17207, %17209
%17211 = fneg double %17210
%17212 = call double @llvm.fmuladd.f64(double %17203, double %17205, double %17211)
%17213 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17212, double* %17213
%17214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17215 = load double, double* %17214
%17216 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17217 = load double, double* %17216
%17218 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17219 = load double, double* %17218
%17220 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17221 = load double, double* %17220
%17222 = fmul double %17219, %17221
%17223 = fneg double %17222
%17224 = call double @llvm.fmuladd.f64(double %17215, double %17217, double %17223)
%17225 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17224, double* %17225
%17226 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17227 = load double, double* %17226
%17228 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17229 = load double, double* %17228
%17230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17231 = load double, double* %17230
%17232 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17233 = load double, double* %17232
%17234 = fmul double %17231, %17233
%17235 = fneg double %17234
%17236 = call double @llvm.fmuladd.f64(double %17227, double %17229, double %17235)
%17237 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17236, double* %17237
%17238 = load double*, double** %13
%17239 = getelementptr inbounds double, double* %17238, i64 0
%17240 = load double, double* %17239
%17241 = load double*, double** %10
%17242 = getelementptr inbounds double, double* %17241, i64 0
%17243 = load double, double* %17242
%17244 = fsub double %17240, %17243
%17245 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17244, double* %17245
%17246 = load double*, double** %13
%17247 = getelementptr inbounds double, double* %17246, i64 1
%17248 = load double, double* %17247
%17249 = load double*, double** %10
%17250 = getelementptr inbounds double, double* %17249, i64 1
%17251 = load double, double* %17250
%17252 = fsub double %17248, %17251
%17253 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17252, double* %17253
%17254 = load double*, double** %13
%17255 = getelementptr inbounds double, double* %17254, i64 2
%17256 = load double, double* %17255
%17257 = load double*, double** %10
%17258 = getelementptr inbounds double, double* %17257, i64 2
%17259 = load double, double* %17258
%17260 = fsub double %17256, %17259
%17261 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17260, double* %17261
%17262 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17263 = load double, double* %17262
%17264 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17265 = load double, double* %17264
%17266 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17267 = load double, double* %17266
%17268 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17269 = load double, double* %17268
%17270 = fmul double %17267, %17269
%17271 = call double @llvm.fmuladd.f64(double %17263, double %17265, double %17270)
%17272 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17273 = load double, double* %17272
%17274 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17275 = load double, double* %17274
%17276 = call double @llvm.fmuladd.f64(double %17273, double %17275, double %17271)
%17277 = fcmp ogt double %17276, 0.000000e+00
br i1 %17277, label %17278, label %17279
17278: ; preds = %17153
store i32 0, i32* %7
br label %37464
17279: ; preds = %17153
%17280 = load double*, double** %11
%17281 = getelementptr inbounds double, double* %17280, i64 0
%17282 = load double, double* %17281
%17283 = load double*, double** %8
%17284 = getelementptr inbounds double, double* %17283, i64 0
%17285 = load double, double* %17284
%17286 = fsub double %17282, %17285
%17287 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17286, double* %17287
%17288 = load double*, double** %11
%17289 = getelementptr inbounds double, double* %17288, i64 1
%17290 = load double, double* %17289
%17291 = load double*, double** %8
%17292 = getelementptr inbounds double, double* %17291, i64 1
%17293 = load double, double* %17292
%17294 = fsub double %17290, %17293
%17295 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17294, double* %17295
%17296 = load double*, double** %11
%17297 = getelementptr inbounds double, double* %17296, i64 2
%17298 = load double, double* %17297
%17299 = load double*, double** %8
%17300 = getelementptr inbounds double, double* %17299, i64 2
%17301 = load double, double* %17300
%17302 = fsub double %17298, %17301
%17303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17302, double* %17303
%17304 = load double*, double** %9
%17305 = getelementptr inbounds double, double* %17304, i64 0
%17306 = load double, double* %17305
%17307 = load double*, double** %8
%17308 = getelementptr inbounds double, double* %17307, i64 0
%17309 = load double, double* %17308
%17310 = fsub double %17306, %17309
%17311 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17310, double* %17311
%17312 = load double*, double** %9
%17313 = getelementptr inbounds double, double* %17312, i64 1
%17314 = load double, double* %17313
%17315 = load double*, double** %8
%17316 = getelementptr inbounds double, double* %17315, i64 1
%17317 = load double, double* %17316
%17318 = fsub double %17314, %17317
%17319 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17318, double* %17319
%17320 = load double*, double** %9
%17321 = getelementptr inbounds double, double* %17320, i64 2
%17322 = load double, double* %17321
%17323 = load double*, double** %8
%17324 = getelementptr inbounds double, double* %17323, i64 2
%17325 = load double, double* %17324
%17326 = fsub double %17322, %17325
%17327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17326, double* %17327
%17328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17329 = load double, double* %17328
%17330 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17331 = load double, double* %17330
%17332 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17333 = load double, double* %17332
%17334 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17335 = load double, double* %17334
%17336 = fmul double %17333, %17335
%17337 = fneg double %17336
%17338 = call double @llvm.fmuladd.f64(double %17329, double %17331, double %17337)
%17339 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17338, double* %17339
%17340 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17341 = load double, double* %17340
%17342 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17343 = load double, double* %17342
%17344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17345 = load double, double* %17344
%17346 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17347 = load double, double* %17346
%17348 = fmul double %17345, %17347
%17349 = fneg double %17348
%17350 = call double @llvm.fmuladd.f64(double %17341, double %17343, double %17349)
%17351 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17350, double* %17351
%17352 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17353 = load double, double* %17352
%17354 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17355 = load double, double* %17354
%17356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17357 = load double, double* %17356
%17358 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17359 = load double, double* %17358
%17360 = fmul double %17357, %17359
%17361 = fneg double %17360
%17362 = call double @llvm.fmuladd.f64(double %17353, double %17355, double %17361)
%17363 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17362, double* %17363
%17364 = load double*, double** %12
%17365 = getelementptr inbounds double, double* %17364, i64 0
%17366 = load double, double* %17365
%17367 = load double*, double** %8
%17368 = getelementptr inbounds double, double* %17367, i64 0
%17369 = load double, double* %17368
%17370 = fsub double %17366, %17369
%17371 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17370, double* %17371
%17372 = load double*, double** %12
%17373 = getelementptr inbounds double, double* %17372, i64 1
%17374 = load double, double* %17373
%17375 = load double*, double** %8
%17376 = getelementptr inbounds double, double* %17375, i64 1
%17377 = load double, double* %17376
%17378 = fsub double %17374, %17377
%17379 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17378, double* %17379
%17380 = load double*, double** %12
%17381 = getelementptr inbounds double, double* %17380, i64 2
%17382 = load double, double* %17381
%17383 = load double*, double** %8
%17384 = getelementptr inbounds double, double* %17383, i64 2
%17385 = load double, double* %17384
%17386 = fsub double %17382, %17385
%17387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17386, double* %17387
%17388 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17389 = load double, double* %17388
%17390 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17391 = load double, double* %17390
%17392 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17393 = load double, double* %17392
%17394 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17395 = load double, double* %17394
%17396 = fmul double %17393, %17395
%17397 = call double @llvm.fmuladd.f64(double %17389, double %17391, double %17396)
%17398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17399 = load double, double* %17398
%17400 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17401 = load double, double* %17400
%17402 = call double @llvm.fmuladd.f64(double %17399, double %17401, double %17397)
%17403 = fcmp ogt double %17402, 0.000000e+00
br i1 %17403, label %17404, label %17405
17404: ; preds = %17279
store i32 0, i32* %7
br label %37464
17405: ; preds = %17279
store i32 1, i32* %7
br label %37464
17406: ; preds = %16638
%17407 = load double, double* %19
%17408 = fcmp olt double %17407, 0.000000e+00
br i1 %17408, label %17409, label %17918
17409: ; preds = %17406
%17410 = load double, double* %18
%17411 = fcmp oge double %17410, 0.000000e+00
br i1 %17411, label %17412, label %17665
17412: ; preds = %17409
%17413 = load double*, double** %13
%17414 = getelementptr inbounds double, double* %17413, i64 0
%17415 = load double, double* %17414
%17416 = load double*, double** %10
%17417 = getelementptr inbounds double, double* %17416, i64 0
%17418 = load double, double* %17417
%17419 = fsub double %17415, %17418
%17420 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17419, double* %17420
%17421 = load double*, double** %13
%17422 = getelementptr inbounds double, double* %17421, i64 1
%17423 = load double, double* %17422
%17424 = load double*, double** %10
%17425 = getelementptr inbounds double, double* %17424, i64 1
%17426 = load double, double* %17425
%17427 = fsub double %17423, %17426
%17428 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17427, double* %17428
%17429 = load double*, double** %13
%17430 = getelementptr inbounds double, double* %17429, i64 2
%17431 = load double, double* %17430
%17432 = load double*, double** %10
%17433 = getelementptr inbounds double, double* %17432, i64 2
%17434 = load double, double* %17433
%17435 = fsub double %17431, %17434
%17436 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17435, double* %17436
%17437 = load double*, double** %8
%17438 = getelementptr inbounds double, double* %17437, i64 0
%17439 = load double, double* %17438
%17440 = load double*, double** %10
%17441 = getelementptr inbounds double, double* %17440, i64 0
%17442 = load double, double* %17441
%17443 = fsub double %17439, %17442
%17444 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17443, double* %17444
%17445 = load double*, double** %8
%17446 = getelementptr inbounds double, double* %17445, i64 1
%17447 = load double, double* %17446
%17448 = load double*, double** %10
%17449 = getelementptr inbounds double, double* %17448, i64 1
%17450 = load double, double* %17449
%17451 = fsub double %17447, %17450
%17452 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17451, double* %17452
%17453 = load double*, double** %8
%17454 = getelementptr inbounds double, double* %17453, i64 2
%17455 = load double, double* %17454
%17456 = load double*, double** %10
%17457 = getelementptr inbounds double, double* %17456, i64 2
%17458 = load double, double* %17457
%17459 = fsub double %17455, %17458
%17460 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17459, double* %17460
%17461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17462 = load double, double* %17461
%17463 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17464 = load double, double* %17463
%17465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17466 = load double, double* %17465
%17467 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17468 = load double, double* %17467
%17469 = fmul double %17466, %17468
%17470 = fneg double %17469
%17471 = call double @llvm.fmuladd.f64(double %17462, double %17464, double %17470)
%17472 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17471, double* %17472
%17473 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17474 = load double, double* %17473
%17475 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17476 = load double, double* %17475
%17477 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17478 = load double, double* %17477
%17479 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17480 = load double, double* %17479
%17481 = fmul double %17478, %17480
%17482 = fneg double %17481
%17483 = call double @llvm.fmuladd.f64(double %17474, double %17476, double %17482)
%17484 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17483, double* %17484
%17485 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17486 = load double, double* %17485
%17487 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17488 = load double, double* %17487
%17489 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17490 = load double, double* %17489
%17491 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17492 = load double, double* %17491
%17493 = fmul double %17490, %17492
%17494 = fneg double %17493
%17495 = call double @llvm.fmuladd.f64(double %17486, double %17488, double %17494)
%17496 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17495, double* %17496
%17497 = load double*, double** %12
%17498 = getelementptr inbounds double, double* %17497, i64 0
%17499 = load double, double* %17498
%17500 = load double*, double** %10
%17501 = getelementptr inbounds double, double* %17500, i64 0
%17502 = load double, double* %17501
%17503 = fsub double %17499, %17502
%17504 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17503, double* %17504
%17505 = load double*, double** %12
%17506 = getelementptr inbounds double, double* %17505, i64 1
%17507 = load double, double* %17506
%17508 = load double*, double** %10
%17509 = getelementptr inbounds double, double* %17508, i64 1
%17510 = load double, double* %17509
%17511 = fsub double %17507, %17510
%17512 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17511, double* %17512
%17513 = load double*, double** %12
%17514 = getelementptr inbounds double, double* %17513, i64 2
%17515 = load double, double* %17514
%17516 = load double*, double** %10
%17517 = getelementptr inbounds double, double* %17516, i64 2
%17518 = load double, double* %17517
%17519 = fsub double %17515, %17518
%17520 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17519, double* %17520
%17521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17522 = load double, double* %17521
%17523 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17524 = load double, double* %17523
%17525 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17526 = load double, double* %17525
%17527 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17528 = load double, double* %17527
%17529 = fmul double %17526, %17528
%17530 = call double @llvm.fmuladd.f64(double %17522, double %17524, double %17529)
%17531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17532 = load double, double* %17531
%17533 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17534 = load double, double* %17533
%17535 = call double @llvm.fmuladd.f64(double %17532, double %17534, double %17530)
%17536 = fcmp ogt double %17535, 0.000000e+00
br i1 %17536, label %17537, label %17538
17537: ; preds = %17412
store i32 0, i32* %7
br label %37464
17538: ; preds = %17412
%17539 = load double*, double** %13
%17540 = getelementptr inbounds double, double* %17539, i64 0
%17541 = load double, double* %17540
%17542 = load double*, double** %8
%17543 = getelementptr inbounds double, double* %17542, i64 0
%17544 = load double, double* %17543
%17545 = fsub double %17541, %17544
%17546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17545, double* %17546
%17547 = load double*, double** %13
%17548 = getelementptr inbounds double, double* %17547, i64 1
%17549 = load double, double* %17548
%17550 = load double*, double** %8
%17551 = getelementptr inbounds double, double* %17550, i64 1
%17552 = load double, double* %17551
%17553 = fsub double %17549, %17552
%17554 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17553, double* %17554
%17555 = load double*, double** %13
%17556 = getelementptr inbounds double, double* %17555, i64 2
%17557 = load double, double* %17556
%17558 = load double*, double** %8
%17559 = getelementptr inbounds double, double* %17558, i64 2
%17560 = load double, double* %17559
%17561 = fsub double %17557, %17560
%17562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17561, double* %17562
%17563 = load double*, double** %9
%17564 = getelementptr inbounds double, double* %17563, i64 0
%17565 = load double, double* %17564
%17566 = load double*, double** %8
%17567 = getelementptr inbounds double, double* %17566, i64 0
%17568 = load double, double* %17567
%17569 = fsub double %17565, %17568
%17570 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17569, double* %17570
%17571 = load double*, double** %9
%17572 = getelementptr inbounds double, double* %17571, i64 1
%17573 = load double, double* %17572
%17574 = load double*, double** %8
%17575 = getelementptr inbounds double, double* %17574, i64 1
%17576 = load double, double* %17575
%17577 = fsub double %17573, %17576
%17578 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17577, double* %17578
%17579 = load double*, double** %9
%17580 = getelementptr inbounds double, double* %17579, i64 2
%17581 = load double, double* %17580
%17582 = load double*, double** %8
%17583 = getelementptr inbounds double, double* %17582, i64 2
%17584 = load double, double* %17583
%17585 = fsub double %17581, %17584
%17586 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17585, double* %17586
%17587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17588 = load double, double* %17587
%17589 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17590 = load double, double* %17589
%17591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17592 = load double, double* %17591
%17593 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17594 = load double, double* %17593
%17595 = fmul double %17592, %17594
%17596 = fneg double %17595
%17597 = call double @llvm.fmuladd.f64(double %17588, double %17590, double %17596)
%17598 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17597, double* %17598
%17599 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17600 = load double, double* %17599
%17601 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17602 = load double, double* %17601
%17603 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17604 = load double, double* %17603
%17605 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17606 = load double, double* %17605
%17607 = fmul double %17604, %17606
%17608 = fneg double %17607
%17609 = call double @llvm.fmuladd.f64(double %17600, double %17602, double %17608)
%17610 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17609, double* %17610
%17611 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17612 = load double, double* %17611
%17613 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17614 = load double, double* %17613
%17615 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17616 = load double, double* %17615
%17617 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17618 = load double, double* %17617
%17619 = fmul double %17616, %17618
%17620 = fneg double %17619
%17621 = call double @llvm.fmuladd.f64(double %17612, double %17614, double %17620)
%17622 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17621, double* %17622
%17623 = load double*, double** %11
%17624 = getelementptr inbounds double, double* %17623, i64 0
%17625 = load double, double* %17624
%17626 = load double*, double** %8
%17627 = getelementptr inbounds double, double* %17626, i64 0
%17628 = load double, double* %17627
%17629 = fsub double %17625, %17628
%17630 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17629, double* %17630
%17631 = load double*, double** %11
%17632 = getelementptr inbounds double, double* %17631, i64 1
%17633 = load double, double* %17632
%17634 = load double*, double** %8
%17635 = getelementptr inbounds double, double* %17634, i64 1
%17636 = load double, double* %17635
%17637 = fsub double %17633, %17636
%17638 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17637, double* %17638
%17639 = load double*, double** %11
%17640 = getelementptr inbounds double, double* %17639, i64 2
%17641 = load double, double* %17640
%17642 = load double*, double** %8
%17643 = getelementptr inbounds double, double* %17642, i64 2
%17644 = load double, double* %17643
%17645 = fsub double %17641, %17644
%17646 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17645, double* %17646
%17647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17648 = load double, double* %17647
%17649 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17650 = load double, double* %17649
%17651 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17652 = load double, double* %17651
%17653 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17654 = load double, double* %17653
%17655 = fmul double %17652, %17654
%17656 = call double @llvm.fmuladd.f64(double %17648, double %17650, double %17655)
%17657 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17658 = load double, double* %17657
%17659 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17660 = load double, double* %17659
%17661 = call double @llvm.fmuladd.f64(double %17658, double %17660, double %17656)
%17662 = fcmp ogt double %17661, 0.000000e+00
br i1 %17662, label %17663, label %17664
17663: ; preds = %17538
store i32 0, i32* %7
br label %37464
17664: ; preds = %17538
store i32 1, i32* %7
br label %37464
17665: ; preds = %17409
%17666 = load double*, double** %11
%17667 = getelementptr inbounds double, double* %17666, i64 0
%17668 = load double, double* %17667
%17669 = load double*, double** %9
%17670 = getelementptr inbounds double, double* %17669, i64 0
%17671 = load double, double* %17670
%17672 = fsub double %17668, %17671
%17673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17672, double* %17673
%17674 = load double*, double** %11
%17675 = getelementptr inbounds double, double* %17674, i64 1
%17676 = load double, double* %17675
%17677 = load double*, double** %9
%17678 = getelementptr inbounds double, double* %17677, i64 1
%17679 = load double, double* %17678
%17680 = fsub double %17676, %17679
%17681 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17680, double* %17681
%17682 = load double*, double** %11
%17683 = getelementptr inbounds double, double* %17682, i64 2
%17684 = load double, double* %17683
%17685 = load double*, double** %9
%17686 = getelementptr inbounds double, double* %17685, i64 2
%17687 = load double, double* %17686
%17688 = fsub double %17684, %17687
%17689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17688, double* %17689
%17690 = load double*, double** %8
%17691 = getelementptr inbounds double, double* %17690, i64 0
%17692 = load double, double* %17691
%17693 = load double*, double** %9
%17694 = getelementptr inbounds double, double* %17693, i64 0
%17695 = load double, double* %17694
%17696 = fsub double %17692, %17695
%17697 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17696, double* %17697
%17698 = load double*, double** %8
%17699 = getelementptr inbounds double, double* %17698, i64 1
%17700 = load double, double* %17699
%17701 = load double*, double** %9
%17702 = getelementptr inbounds double, double* %17701, i64 1
%17703 = load double, double* %17702
%17704 = fsub double %17700, %17703
%17705 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17704, double* %17705
%17706 = load double*, double** %8
%17707 = getelementptr inbounds double, double* %17706, i64 2
%17708 = load double, double* %17707
%17709 = load double*, double** %9
%17710 = getelementptr inbounds double, double* %17709, i64 2
%17711 = load double, double* %17710
%17712 = fsub double %17708, %17711
%17713 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17712, double* %17713
%17714 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17715 = load double, double* %17714
%17716 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17717 = load double, double* %17716
%17718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17719 = load double, double* %17718
%17720 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17721 = load double, double* %17720
%17722 = fmul double %17719, %17721
%17723 = fneg double %17722
%17724 = call double @llvm.fmuladd.f64(double %17715, double %17717, double %17723)
%17725 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17724, double* %17725
%17726 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17727 = load double, double* %17726
%17728 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17729 = load double, double* %17728
%17730 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17731 = load double, double* %17730
%17732 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17733 = load double, double* %17732
%17734 = fmul double %17731, %17733
%17735 = fneg double %17734
%17736 = call double @llvm.fmuladd.f64(double %17727, double %17729, double %17735)
%17737 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17736, double* %17737
%17738 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17739 = load double, double* %17738
%17740 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17741 = load double, double* %17740
%17742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17743 = load double, double* %17742
%17744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17745 = load double, double* %17744
%17746 = fmul double %17743, %17745
%17747 = fneg double %17746
%17748 = call double @llvm.fmuladd.f64(double %17739, double %17741, double %17747)
%17749 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17748, double* %17749
%17750 = load double*, double** %13
%17751 = getelementptr inbounds double, double* %17750, i64 0
%17752 = load double, double* %17751
%17753 = load double*, double** %9
%17754 = getelementptr inbounds double, double* %17753, i64 0
%17755 = load double, double* %17754
%17756 = fsub double %17752, %17755
%17757 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17756, double* %17757
%17758 = load double*, double** %13
%17759 = getelementptr inbounds double, double* %17758, i64 1
%17760 = load double, double* %17759
%17761 = load double*, double** %9
%17762 = getelementptr inbounds double, double* %17761, i64 1
%17763 = load double, double* %17762
%17764 = fsub double %17760, %17763
%17765 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17764, double* %17765
%17766 = load double*, double** %13
%17767 = getelementptr inbounds double, double* %17766, i64 2
%17768 = load double, double* %17767
%17769 = load double*, double** %9
%17770 = getelementptr inbounds double, double* %17769, i64 2
%17771 = load double, double* %17770
%17772 = fsub double %17768, %17771
%17773 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17772, double* %17773
%17774 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17775 = load double, double* %17774
%17776 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17777 = load double, double* %17776
%17778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17779 = load double, double* %17778
%17780 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17781 = load double, double* %17780
%17782 = fmul double %17779, %17781
%17783 = call double @llvm.fmuladd.f64(double %17775, double %17777, double %17782)
%17784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17785 = load double, double* %17784
%17786 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17787 = load double, double* %17786
%17788 = call double @llvm.fmuladd.f64(double %17785, double %17787, double %17783)
%17789 = fcmp ogt double %17788, 0.000000e+00
br i1 %17789, label %17790, label %17791
17790: ; preds = %17665
store i32 0, i32* %7
br label %37464
17791: ; preds = %17665
%17792 = load double*, double** %11
%17793 = getelementptr inbounds double, double* %17792, i64 0
%17794 = load double, double* %17793
%17795 = load double*, double** %8
%17796 = getelementptr inbounds double, double* %17795, i64 0
%17797 = load double, double* %17796
%17798 = fsub double %17794, %17797
%17799 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17798, double* %17799
%17800 = load double*, double** %11
%17801 = getelementptr inbounds double, double* %17800, i64 1
%17802 = load double, double* %17801
%17803 = load double*, double** %8
%17804 = getelementptr inbounds double, double* %17803, i64 1
%17805 = load double, double* %17804
%17806 = fsub double %17802, %17805
%17807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17806, double* %17807
%17808 = load double*, double** %11
%17809 = getelementptr inbounds double, double* %17808, i64 2
%17810 = load double, double* %17809
%17811 = load double*, double** %8
%17812 = getelementptr inbounds double, double* %17811, i64 2
%17813 = load double, double* %17812
%17814 = fsub double %17810, %17813
%17815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17814, double* %17815
%17816 = load double*, double** %10
%17817 = getelementptr inbounds double, double* %17816, i64 0
%17818 = load double, double* %17817
%17819 = load double*, double** %8
%17820 = getelementptr inbounds double, double* %17819, i64 0
%17821 = load double, double* %17820
%17822 = fsub double %17818, %17821
%17823 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17822, double* %17823
%17824 = load double*, double** %10
%17825 = getelementptr inbounds double, double* %17824, i64 1
%17826 = load double, double* %17825
%17827 = load double*, double** %8
%17828 = getelementptr inbounds double, double* %17827, i64 1
%17829 = load double, double* %17828
%17830 = fsub double %17826, %17829
%17831 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17830, double* %17831
%17832 = load double*, double** %10
%17833 = getelementptr inbounds double, double* %17832, i64 2
%17834 = load double, double* %17833
%17835 = load double*, double** %8
%17836 = getelementptr inbounds double, double* %17835, i64 2
%17837 = load double, double* %17836
%17838 = fsub double %17834, %17837
%17839 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17838, double* %17839
%17840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17841 = load double, double* %17840
%17842 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17843 = load double, double* %17842
%17844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17845 = load double, double* %17844
%17846 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17847 = load double, double* %17846
%17848 = fmul double %17845, %17847
%17849 = fneg double %17848
%17850 = call double @llvm.fmuladd.f64(double %17841, double %17843, double %17849)
%17851 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17850, double* %17851
%17852 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17853 = load double, double* %17852
%17854 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17855 = load double, double* %17854
%17856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17857 = load double, double* %17856
%17858 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17859 = load double, double* %17858
%17860 = fmul double %17857, %17859
%17861 = fneg double %17860
%17862 = call double @llvm.fmuladd.f64(double %17853, double %17855, double %17861)
%17863 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17862, double* %17863
%17864 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17865 = load double, double* %17864
%17866 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17867 = load double, double* %17866
%17868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17869 = load double, double* %17868
%17870 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17871 = load double, double* %17870
%17872 = fmul double %17869, %17871
%17873 = fneg double %17872
%17874 = call double @llvm.fmuladd.f64(double %17865, double %17867, double %17873)
%17875 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %17874, double* %17875
%17876 = load double*, double** %12
%17877 = getelementptr inbounds double, double* %17876, i64 0
%17878 = load double, double* %17877
%17879 = load double*, double** %8
%17880 = getelementptr inbounds double, double* %17879, i64 0
%17881 = load double, double* %17880
%17882 = fsub double %17878, %17881
%17883 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17882, double* %17883
%17884 = load double*, double** %12
%17885 = getelementptr inbounds double, double* %17884, i64 1
%17886 = load double, double* %17885
%17887 = load double*, double** %8
%17888 = getelementptr inbounds double, double* %17887, i64 1
%17889 = load double, double* %17888
%17890 = fsub double %17886, %17889
%17891 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17890, double* %17891
%17892 = load double*, double** %12
%17893 = getelementptr inbounds double, double* %17892, i64 2
%17894 = load double, double* %17893
%17895 = load double*, double** %8
%17896 = getelementptr inbounds double, double* %17895, i64 2
%17897 = load double, double* %17896
%17898 = fsub double %17894, %17897
%17899 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17898, double* %17899
%17900 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17901 = load double, double* %17900
%17902 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%17903 = load double, double* %17902
%17904 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17905 = load double, double* %17904
%17906 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%17907 = load double, double* %17906
%17908 = fmul double %17905, %17907
%17909 = call double @llvm.fmuladd.f64(double %17901, double %17903, double %17908)
%17910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17911 = load double, double* %17910
%17912 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%17913 = load double, double* %17912
%17914 = call double @llvm.fmuladd.f64(double %17911, double %17913, double %17909)
%17915 = fcmp ogt double %17914, 0.000000e+00
br i1 %17915, label %17916, label %17917
17916: ; preds = %17791
store i32 0, i32* %7
br label %37464
17917: ; preds = %17791
store i32 1, i32* %7
br label %37464
17918: ; preds = %17406
%17919 = load double, double* %19
%17920 = fcmp ogt double %17919, 0.000000e+00
br i1 %17920, label %17921, label %18430
17921: ; preds = %17918
%17922 = load double, double* %18
%17923 = fcmp ogt double %17922, 0.000000e+00
br i1 %17923, label %17924, label %18177
17924: ; preds = %17921
%17925 = load double*, double** %11
%17926 = getelementptr inbounds double, double* %17925, i64 0
%17927 = load double, double* %17926
%17928 = load double*, double** %10
%17929 = getelementptr inbounds double, double* %17928, i64 0
%17930 = load double, double* %17929
%17931 = fsub double %17927, %17930
%17932 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %17931, double* %17932
%17933 = load double*, double** %11
%17934 = getelementptr inbounds double, double* %17933, i64 1
%17935 = load double, double* %17934
%17936 = load double*, double** %10
%17937 = getelementptr inbounds double, double* %17936, i64 1
%17938 = load double, double* %17937
%17939 = fsub double %17935, %17938
%17940 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %17939, double* %17940
%17941 = load double*, double** %11
%17942 = getelementptr inbounds double, double* %17941, i64 2
%17943 = load double, double* %17942
%17944 = load double*, double** %10
%17945 = getelementptr inbounds double, double* %17944, i64 2
%17946 = load double, double* %17945
%17947 = fsub double %17943, %17946
%17948 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %17947, double* %17948
%17949 = load double*, double** %8
%17950 = getelementptr inbounds double, double* %17949, i64 0
%17951 = load double, double* %17950
%17952 = load double*, double** %10
%17953 = getelementptr inbounds double, double* %17952, i64 0
%17954 = load double, double* %17953
%17955 = fsub double %17951, %17954
%17956 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %17955, double* %17956
%17957 = load double*, double** %8
%17958 = getelementptr inbounds double, double* %17957, i64 1
%17959 = load double, double* %17958
%17960 = load double*, double** %10
%17961 = getelementptr inbounds double, double* %17960, i64 1
%17962 = load double, double* %17961
%17963 = fsub double %17959, %17962
%17964 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %17963, double* %17964
%17965 = load double*, double** %8
%17966 = getelementptr inbounds double, double* %17965, i64 2
%17967 = load double, double* %17966
%17968 = load double*, double** %10
%17969 = getelementptr inbounds double, double* %17968, i64 2
%17970 = load double, double* %17969
%17971 = fsub double %17967, %17970
%17972 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %17971, double* %17972
%17973 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%17974 = load double, double* %17973
%17975 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17976 = load double, double* %17975
%17977 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17978 = load double, double* %17977
%17979 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%17980 = load double, double* %17979
%17981 = fmul double %17978, %17980
%17982 = fneg double %17981
%17983 = call double @llvm.fmuladd.f64(double %17974, double %17976, double %17982)
%17984 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %17983, double* %17984
%17985 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%17986 = load double, double* %17985
%17987 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%17988 = load double, double* %17987
%17989 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17990 = load double, double* %17989
%17991 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%17992 = load double, double* %17991
%17993 = fmul double %17990, %17992
%17994 = fneg double %17993
%17995 = call double @llvm.fmuladd.f64(double %17986, double %17988, double %17994)
%17996 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %17995, double* %17996
%17997 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%17998 = load double, double* %17997
%17999 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18000 = load double, double* %17999
%18001 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18002 = load double, double* %18001
%18003 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18004 = load double, double* %18003
%18005 = fmul double %18002, %18004
%18006 = fneg double %18005
%18007 = call double @llvm.fmuladd.f64(double %17998, double %18000, double %18006)
%18008 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18007, double* %18008
%18009 = load double*, double** %13
%18010 = getelementptr inbounds double, double* %18009, i64 0
%18011 = load double, double* %18010
%18012 = load double*, double** %10
%18013 = getelementptr inbounds double, double* %18012, i64 0
%18014 = load double, double* %18013
%18015 = fsub double %18011, %18014
%18016 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18015, double* %18016
%18017 = load double*, double** %13
%18018 = getelementptr inbounds double, double* %18017, i64 1
%18019 = load double, double* %18018
%18020 = load double*, double** %10
%18021 = getelementptr inbounds double, double* %18020, i64 1
%18022 = load double, double* %18021
%18023 = fsub double %18019, %18022
%18024 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18023, double* %18024
%18025 = load double*, double** %13
%18026 = getelementptr inbounds double, double* %18025, i64 2
%18027 = load double, double* %18026
%18028 = load double*, double** %10
%18029 = getelementptr inbounds double, double* %18028, i64 2
%18030 = load double, double* %18029
%18031 = fsub double %18027, %18030
%18032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18031, double* %18032
%18033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18034 = load double, double* %18033
%18035 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18036 = load double, double* %18035
%18037 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18038 = load double, double* %18037
%18039 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18040 = load double, double* %18039
%18041 = fmul double %18038, %18040
%18042 = call double @llvm.fmuladd.f64(double %18034, double %18036, double %18041)
%18043 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18044 = load double, double* %18043
%18045 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18046 = load double, double* %18045
%18047 = call double @llvm.fmuladd.f64(double %18044, double %18046, double %18042)
%18048 = fcmp ogt double %18047, 0.000000e+00
br i1 %18048, label %18049, label %18050
18049: ; preds = %17924
store i32 0, i32* %7
br label %37464
18050: ; preds = %17924
%18051 = load double*, double** %11
%18052 = getelementptr inbounds double, double* %18051, i64 0
%18053 = load double, double* %18052
%18054 = load double*, double** %8
%18055 = getelementptr inbounds double, double* %18054, i64 0
%18056 = load double, double* %18055
%18057 = fsub double %18053, %18056
%18058 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18057, double* %18058
%18059 = load double*, double** %11
%18060 = getelementptr inbounds double, double* %18059, i64 1
%18061 = load double, double* %18060
%18062 = load double*, double** %8
%18063 = getelementptr inbounds double, double* %18062, i64 1
%18064 = load double, double* %18063
%18065 = fsub double %18061, %18064
%18066 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18065, double* %18066
%18067 = load double*, double** %11
%18068 = getelementptr inbounds double, double* %18067, i64 2
%18069 = load double, double* %18068
%18070 = load double*, double** %8
%18071 = getelementptr inbounds double, double* %18070, i64 2
%18072 = load double, double* %18071
%18073 = fsub double %18069, %18072
%18074 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18073, double* %18074
%18075 = load double*, double** %9
%18076 = getelementptr inbounds double, double* %18075, i64 0
%18077 = load double, double* %18076
%18078 = load double*, double** %8
%18079 = getelementptr inbounds double, double* %18078, i64 0
%18080 = load double, double* %18079
%18081 = fsub double %18077, %18080
%18082 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18081, double* %18082
%18083 = load double*, double** %9
%18084 = getelementptr inbounds double, double* %18083, i64 1
%18085 = load double, double* %18084
%18086 = load double*, double** %8
%18087 = getelementptr inbounds double, double* %18086, i64 1
%18088 = load double, double* %18087
%18089 = fsub double %18085, %18088
%18090 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18089, double* %18090
%18091 = load double*, double** %9
%18092 = getelementptr inbounds double, double* %18091, i64 2
%18093 = load double, double* %18092
%18094 = load double*, double** %8
%18095 = getelementptr inbounds double, double* %18094, i64 2
%18096 = load double, double* %18095
%18097 = fsub double %18093, %18096
%18098 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18097, double* %18098
%18099 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18100 = load double, double* %18099
%18101 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18102 = load double, double* %18101
%18103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18104 = load double, double* %18103
%18105 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18106 = load double, double* %18105
%18107 = fmul double %18104, %18106
%18108 = fneg double %18107
%18109 = call double @llvm.fmuladd.f64(double %18100, double %18102, double %18108)
%18110 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18109, double* %18110
%18111 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18112 = load double, double* %18111
%18113 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18114 = load double, double* %18113
%18115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18116 = load double, double* %18115
%18117 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18118 = load double, double* %18117
%18119 = fmul double %18116, %18118
%18120 = fneg double %18119
%18121 = call double @llvm.fmuladd.f64(double %18112, double %18114, double %18120)
%18122 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18121, double* %18122
%18123 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18124 = load double, double* %18123
%18125 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18126 = load double, double* %18125
%18127 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18128 = load double, double* %18127
%18129 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18130 = load double, double* %18129
%18131 = fmul double %18128, %18130
%18132 = fneg double %18131
%18133 = call double @llvm.fmuladd.f64(double %18124, double %18126, double %18132)
%18134 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18133, double* %18134
%18135 = load double*, double** %12
%18136 = getelementptr inbounds double, double* %18135, i64 0
%18137 = load double, double* %18136
%18138 = load double*, double** %8
%18139 = getelementptr inbounds double, double* %18138, i64 0
%18140 = load double, double* %18139
%18141 = fsub double %18137, %18140
%18142 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18141, double* %18142
%18143 = load double*, double** %12
%18144 = getelementptr inbounds double, double* %18143, i64 1
%18145 = load double, double* %18144
%18146 = load double*, double** %8
%18147 = getelementptr inbounds double, double* %18146, i64 1
%18148 = load double, double* %18147
%18149 = fsub double %18145, %18148
%18150 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18149, double* %18150
%18151 = load double*, double** %12
%18152 = getelementptr inbounds double, double* %18151, i64 2
%18153 = load double, double* %18152
%18154 = load double*, double** %8
%18155 = getelementptr inbounds double, double* %18154, i64 2
%18156 = load double, double* %18155
%18157 = fsub double %18153, %18156
%18158 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18157, double* %18158
%18159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18160 = load double, double* %18159
%18161 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18162 = load double, double* %18161
%18163 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18164 = load double, double* %18163
%18165 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18166 = load double, double* %18165
%18167 = fmul double %18164, %18166
%18168 = call double @llvm.fmuladd.f64(double %18160, double %18162, double %18167)
%18169 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18170 = load double, double* %18169
%18171 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18172 = load double, double* %18171
%18173 = call double @llvm.fmuladd.f64(double %18170, double %18172, double %18168)
%18174 = fcmp ogt double %18173, 0.000000e+00
br i1 %18174, label %18175, label %18176
18175: ; preds = %18050
store i32 0, i32* %7
br label %37464
18176: ; preds = %18050
store i32 1, i32* %7
br label %37464
18177: ; preds = %17921
%18178 = load double*, double** %13
%18179 = getelementptr inbounds double, double* %18178, i64 0
%18180 = load double, double* %18179
%18181 = load double*, double** %9
%18182 = getelementptr inbounds double, double* %18181, i64 0
%18183 = load double, double* %18182
%18184 = fsub double %18180, %18183
%18185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18184, double* %18185
%18186 = load double*, double** %13
%18187 = getelementptr inbounds double, double* %18186, i64 1
%18188 = load double, double* %18187
%18189 = load double*, double** %9
%18190 = getelementptr inbounds double, double* %18189, i64 1
%18191 = load double, double* %18190
%18192 = fsub double %18188, %18191
%18193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18192, double* %18193
%18194 = load double*, double** %13
%18195 = getelementptr inbounds double, double* %18194, i64 2
%18196 = load double, double* %18195
%18197 = load double*, double** %9
%18198 = getelementptr inbounds double, double* %18197, i64 2
%18199 = load double, double* %18198
%18200 = fsub double %18196, %18199
%18201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18200, double* %18201
%18202 = load double*, double** %8
%18203 = getelementptr inbounds double, double* %18202, i64 0
%18204 = load double, double* %18203
%18205 = load double*, double** %9
%18206 = getelementptr inbounds double, double* %18205, i64 0
%18207 = load double, double* %18206
%18208 = fsub double %18204, %18207
%18209 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18208, double* %18209
%18210 = load double*, double** %8
%18211 = getelementptr inbounds double, double* %18210, i64 1
%18212 = load double, double* %18211
%18213 = load double*, double** %9
%18214 = getelementptr inbounds double, double* %18213, i64 1
%18215 = load double, double* %18214
%18216 = fsub double %18212, %18215
%18217 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18216, double* %18217
%18218 = load double*, double** %8
%18219 = getelementptr inbounds double, double* %18218, i64 2
%18220 = load double, double* %18219
%18221 = load double*, double** %9
%18222 = getelementptr inbounds double, double* %18221, i64 2
%18223 = load double, double* %18222
%18224 = fsub double %18220, %18223
%18225 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18224, double* %18225
%18226 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18227 = load double, double* %18226
%18228 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18229 = load double, double* %18228
%18230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18231 = load double, double* %18230
%18232 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18233 = load double, double* %18232
%18234 = fmul double %18231, %18233
%18235 = fneg double %18234
%18236 = call double @llvm.fmuladd.f64(double %18227, double %18229, double %18235)
%18237 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18236, double* %18237
%18238 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18239 = load double, double* %18238
%18240 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18241 = load double, double* %18240
%18242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18243 = load double, double* %18242
%18244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18245 = load double, double* %18244
%18246 = fmul double %18243, %18245
%18247 = fneg double %18246
%18248 = call double @llvm.fmuladd.f64(double %18239, double %18241, double %18247)
%18249 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18248, double* %18249
%18250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18251 = load double, double* %18250
%18252 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18253 = load double, double* %18252
%18254 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18255 = load double, double* %18254
%18256 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18257 = load double, double* %18256
%18258 = fmul double %18255, %18257
%18259 = fneg double %18258
%18260 = call double @llvm.fmuladd.f64(double %18251, double %18253, double %18259)
%18261 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18260, double* %18261
%18262 = load double*, double** %12
%18263 = getelementptr inbounds double, double* %18262, i64 0
%18264 = load double, double* %18263
%18265 = load double*, double** %9
%18266 = getelementptr inbounds double, double* %18265, i64 0
%18267 = load double, double* %18266
%18268 = fsub double %18264, %18267
%18269 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18268, double* %18269
%18270 = load double*, double** %12
%18271 = getelementptr inbounds double, double* %18270, i64 1
%18272 = load double, double* %18271
%18273 = load double*, double** %9
%18274 = getelementptr inbounds double, double* %18273, i64 1
%18275 = load double, double* %18274
%18276 = fsub double %18272, %18275
%18277 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18276, double* %18277
%18278 = load double*, double** %12
%18279 = getelementptr inbounds double, double* %18278, i64 2
%18280 = load double, double* %18279
%18281 = load double*, double** %9
%18282 = getelementptr inbounds double, double* %18281, i64 2
%18283 = load double, double* %18282
%18284 = fsub double %18280, %18283
%18285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18284, double* %18285
%18286 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18287 = load double, double* %18286
%18288 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18289 = load double, double* %18288
%18290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18291 = load double, double* %18290
%18292 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18293 = load double, double* %18292
%18294 = fmul double %18291, %18293
%18295 = call double @llvm.fmuladd.f64(double %18287, double %18289, double %18294)
%18296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18297 = load double, double* %18296
%18298 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18299 = load double, double* %18298
%18300 = call double @llvm.fmuladd.f64(double %18297, double %18299, double %18295)
%18301 = fcmp ogt double %18300, 0.000000e+00
br i1 %18301, label %18302, label %18303
18302: ; preds = %18177
store i32 0, i32* %7
br label %37464
18303: ; preds = %18177
%18304 = load double*, double** %13
%18305 = getelementptr inbounds double, double* %18304, i64 0
%18306 = load double, double* %18305
%18307 = load double*, double** %8
%18308 = getelementptr inbounds double, double* %18307, i64 0
%18309 = load double, double* %18308
%18310 = fsub double %18306, %18309
%18311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18310, double* %18311
%18312 = load double*, double** %13
%18313 = getelementptr inbounds double, double* %18312, i64 1
%18314 = load double, double* %18313
%18315 = load double*, double** %8
%18316 = getelementptr inbounds double, double* %18315, i64 1
%18317 = load double, double* %18316
%18318 = fsub double %18314, %18317
%18319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18318, double* %18319
%18320 = load double*, double** %13
%18321 = getelementptr inbounds double, double* %18320, i64 2
%18322 = load double, double* %18321
%18323 = load double*, double** %8
%18324 = getelementptr inbounds double, double* %18323, i64 2
%18325 = load double, double* %18324
%18326 = fsub double %18322, %18325
%18327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18326, double* %18327
%18328 = load double*, double** %10
%18329 = getelementptr inbounds double, double* %18328, i64 0
%18330 = load double, double* %18329
%18331 = load double*, double** %8
%18332 = getelementptr inbounds double, double* %18331, i64 0
%18333 = load double, double* %18332
%18334 = fsub double %18330, %18333
%18335 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18334, double* %18335
%18336 = load double*, double** %10
%18337 = getelementptr inbounds double, double* %18336, i64 1
%18338 = load double, double* %18337
%18339 = load double*, double** %8
%18340 = getelementptr inbounds double, double* %18339, i64 1
%18341 = load double, double* %18340
%18342 = fsub double %18338, %18341
%18343 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18342, double* %18343
%18344 = load double*, double** %10
%18345 = getelementptr inbounds double, double* %18344, i64 2
%18346 = load double, double* %18345
%18347 = load double*, double** %8
%18348 = getelementptr inbounds double, double* %18347, i64 2
%18349 = load double, double* %18348
%18350 = fsub double %18346, %18349
%18351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18350, double* %18351
%18352 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18353 = load double, double* %18352
%18354 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18355 = load double, double* %18354
%18356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18357 = load double, double* %18356
%18358 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18359 = load double, double* %18358
%18360 = fmul double %18357, %18359
%18361 = fneg double %18360
%18362 = call double @llvm.fmuladd.f64(double %18353, double %18355, double %18361)
%18363 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18362, double* %18363
%18364 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18365 = load double, double* %18364
%18366 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18367 = load double, double* %18366
%18368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18369 = load double, double* %18368
%18370 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18371 = load double, double* %18370
%18372 = fmul double %18369, %18371
%18373 = fneg double %18372
%18374 = call double @llvm.fmuladd.f64(double %18365, double %18367, double %18373)
%18375 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18374, double* %18375
%18376 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18377 = load double, double* %18376
%18378 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18379 = load double, double* %18378
%18380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18381 = load double, double* %18380
%18382 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18383 = load double, double* %18382
%18384 = fmul double %18381, %18383
%18385 = fneg double %18384
%18386 = call double @llvm.fmuladd.f64(double %18377, double %18379, double %18385)
%18387 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18386, double* %18387
%18388 = load double*, double** %11
%18389 = getelementptr inbounds double, double* %18388, i64 0
%18390 = load double, double* %18389
%18391 = load double*, double** %8
%18392 = getelementptr inbounds double, double* %18391, i64 0
%18393 = load double, double* %18392
%18394 = fsub double %18390, %18393
%18395 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18394, double* %18395
%18396 = load double*, double** %11
%18397 = getelementptr inbounds double, double* %18396, i64 1
%18398 = load double, double* %18397
%18399 = load double*, double** %8
%18400 = getelementptr inbounds double, double* %18399, i64 1
%18401 = load double, double* %18400
%18402 = fsub double %18398, %18401
%18403 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18402, double* %18403
%18404 = load double*, double** %11
%18405 = getelementptr inbounds double, double* %18404, i64 2
%18406 = load double, double* %18405
%18407 = load double*, double** %8
%18408 = getelementptr inbounds double, double* %18407, i64 2
%18409 = load double, double* %18408
%18410 = fsub double %18406, %18409
%18411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18410, double* %18411
%18412 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18413 = load double, double* %18412
%18414 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18415 = load double, double* %18414
%18416 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18417 = load double, double* %18416
%18418 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18419 = load double, double* %18418
%18420 = fmul double %18417, %18419
%18421 = call double @llvm.fmuladd.f64(double %18413, double %18415, double %18420)
%18422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18423 = load double, double* %18422
%18424 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18425 = load double, double* %18424
%18426 = call double @llvm.fmuladd.f64(double %18423, double %18425, double %18421)
%18427 = fcmp ogt double %18426, 0.000000e+00
br i1 %18427, label %18428, label %18429
18428: ; preds = %18303
store i32 0, i32* %7
br label %37464
18429: ; preds = %18303
store i32 1, i32* %7
br label %37464
18430: ; preds = %17918
%18431 = load double, double* %18
%18432 = fcmp ogt double %18431, 0.000000e+00
br i1 %18432, label %18433, label %18686
18433: ; preds = %18430
%18434 = load double*, double** %12
%18435 = getelementptr inbounds double, double* %18434, i64 0
%18436 = load double, double* %18435
%18437 = load double*, double** %9
%18438 = getelementptr inbounds double, double* %18437, i64 0
%18439 = load double, double* %18438
%18440 = fsub double %18436, %18439
%18441 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18440, double* %18441
%18442 = load double*, double** %12
%18443 = getelementptr inbounds double, double* %18442, i64 1
%18444 = load double, double* %18443
%18445 = load double*, double** %9
%18446 = getelementptr inbounds double, double* %18445, i64 1
%18447 = load double, double* %18446
%18448 = fsub double %18444, %18447
%18449 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18448, double* %18449
%18450 = load double*, double** %12
%18451 = getelementptr inbounds double, double* %18450, i64 2
%18452 = load double, double* %18451
%18453 = load double*, double** %9
%18454 = getelementptr inbounds double, double* %18453, i64 2
%18455 = load double, double* %18454
%18456 = fsub double %18452, %18455
%18457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18456, double* %18457
%18458 = load double*, double** %8
%18459 = getelementptr inbounds double, double* %18458, i64 0
%18460 = load double, double* %18459
%18461 = load double*, double** %9
%18462 = getelementptr inbounds double, double* %18461, i64 0
%18463 = load double, double* %18462
%18464 = fsub double %18460, %18463
%18465 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18464, double* %18465
%18466 = load double*, double** %8
%18467 = getelementptr inbounds double, double* %18466, i64 1
%18468 = load double, double* %18467
%18469 = load double*, double** %9
%18470 = getelementptr inbounds double, double* %18469, i64 1
%18471 = load double, double* %18470
%18472 = fsub double %18468, %18471
%18473 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18472, double* %18473
%18474 = load double*, double** %8
%18475 = getelementptr inbounds double, double* %18474, i64 2
%18476 = load double, double* %18475
%18477 = load double*, double** %9
%18478 = getelementptr inbounds double, double* %18477, i64 2
%18479 = load double, double* %18478
%18480 = fsub double %18476, %18479
%18481 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18480, double* %18481
%18482 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18483 = load double, double* %18482
%18484 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18485 = load double, double* %18484
%18486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18487 = load double, double* %18486
%18488 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18489 = load double, double* %18488
%18490 = fmul double %18487, %18489
%18491 = fneg double %18490
%18492 = call double @llvm.fmuladd.f64(double %18483, double %18485, double %18491)
%18493 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18492, double* %18493
%18494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18495 = load double, double* %18494
%18496 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18497 = load double, double* %18496
%18498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18499 = load double, double* %18498
%18500 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18501 = load double, double* %18500
%18502 = fmul double %18499, %18501
%18503 = fneg double %18502
%18504 = call double @llvm.fmuladd.f64(double %18495, double %18497, double %18503)
%18505 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18504, double* %18505
%18506 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18507 = load double, double* %18506
%18508 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18509 = load double, double* %18508
%18510 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18511 = load double, double* %18510
%18512 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18513 = load double, double* %18512
%18514 = fmul double %18511, %18513
%18515 = fneg double %18514
%18516 = call double @llvm.fmuladd.f64(double %18507, double %18509, double %18515)
%18517 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18516, double* %18517
%18518 = load double*, double** %11
%18519 = getelementptr inbounds double, double* %18518, i64 0
%18520 = load double, double* %18519
%18521 = load double*, double** %9
%18522 = getelementptr inbounds double, double* %18521, i64 0
%18523 = load double, double* %18522
%18524 = fsub double %18520, %18523
%18525 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18524, double* %18525
%18526 = load double*, double** %11
%18527 = getelementptr inbounds double, double* %18526, i64 1
%18528 = load double, double* %18527
%18529 = load double*, double** %9
%18530 = getelementptr inbounds double, double* %18529, i64 1
%18531 = load double, double* %18530
%18532 = fsub double %18528, %18531
%18533 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18532, double* %18533
%18534 = load double*, double** %11
%18535 = getelementptr inbounds double, double* %18534, i64 2
%18536 = load double, double* %18535
%18537 = load double*, double** %9
%18538 = getelementptr inbounds double, double* %18537, i64 2
%18539 = load double, double* %18538
%18540 = fsub double %18536, %18539
%18541 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18540, double* %18541
%18542 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18543 = load double, double* %18542
%18544 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18545 = load double, double* %18544
%18546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18547 = load double, double* %18546
%18548 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18549 = load double, double* %18548
%18550 = fmul double %18547, %18549
%18551 = call double @llvm.fmuladd.f64(double %18543, double %18545, double %18550)
%18552 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18553 = load double, double* %18552
%18554 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18555 = load double, double* %18554
%18556 = call double @llvm.fmuladd.f64(double %18553, double %18555, double %18551)
%18557 = fcmp ogt double %18556, 0.000000e+00
br i1 %18557, label %18558, label %18559
18558: ; preds = %18433
store i32 0, i32* %7
br label %37464
18559: ; preds = %18433
%18560 = load double*, double** %12
%18561 = getelementptr inbounds double, double* %18560, i64 0
%18562 = load double, double* %18561
%18563 = load double*, double** %8
%18564 = getelementptr inbounds double, double* %18563, i64 0
%18565 = load double, double* %18564
%18566 = fsub double %18562, %18565
%18567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18566, double* %18567
%18568 = load double*, double** %12
%18569 = getelementptr inbounds double, double* %18568, i64 1
%18570 = load double, double* %18569
%18571 = load double*, double** %8
%18572 = getelementptr inbounds double, double* %18571, i64 1
%18573 = load double, double* %18572
%18574 = fsub double %18570, %18573
%18575 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18574, double* %18575
%18576 = load double*, double** %12
%18577 = getelementptr inbounds double, double* %18576, i64 2
%18578 = load double, double* %18577
%18579 = load double*, double** %8
%18580 = getelementptr inbounds double, double* %18579, i64 2
%18581 = load double, double* %18580
%18582 = fsub double %18578, %18581
%18583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18582, double* %18583
%18584 = load double*, double** %10
%18585 = getelementptr inbounds double, double* %18584, i64 0
%18586 = load double, double* %18585
%18587 = load double*, double** %8
%18588 = getelementptr inbounds double, double* %18587, i64 0
%18589 = load double, double* %18588
%18590 = fsub double %18586, %18589
%18591 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18590, double* %18591
%18592 = load double*, double** %10
%18593 = getelementptr inbounds double, double* %18592, i64 1
%18594 = load double, double* %18593
%18595 = load double*, double** %8
%18596 = getelementptr inbounds double, double* %18595, i64 1
%18597 = load double, double* %18596
%18598 = fsub double %18594, %18597
%18599 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18598, double* %18599
%18600 = load double*, double** %10
%18601 = getelementptr inbounds double, double* %18600, i64 2
%18602 = load double, double* %18601
%18603 = load double*, double** %8
%18604 = getelementptr inbounds double, double* %18603, i64 2
%18605 = load double, double* %18604
%18606 = fsub double %18602, %18605
%18607 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18606, double* %18607
%18608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18609 = load double, double* %18608
%18610 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18611 = load double, double* %18610
%18612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18613 = load double, double* %18612
%18614 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18615 = load double, double* %18614
%18616 = fmul double %18613, %18615
%18617 = fneg double %18616
%18618 = call double @llvm.fmuladd.f64(double %18609, double %18611, double %18617)
%18619 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18618, double* %18619
%18620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18621 = load double, double* %18620
%18622 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18623 = load double, double* %18622
%18624 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18625 = load double, double* %18624
%18626 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18627 = load double, double* %18626
%18628 = fmul double %18625, %18627
%18629 = fneg double %18628
%18630 = call double @llvm.fmuladd.f64(double %18621, double %18623, double %18629)
%18631 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18630, double* %18631
%18632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18633 = load double, double* %18632
%18634 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18635 = load double, double* %18634
%18636 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18637 = load double, double* %18636
%18638 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18639 = load double, double* %18638
%18640 = fmul double %18637, %18639
%18641 = fneg double %18640
%18642 = call double @llvm.fmuladd.f64(double %18633, double %18635, double %18641)
%18643 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18642, double* %18643
%18644 = load double*, double** %13
%18645 = getelementptr inbounds double, double* %18644, i64 0
%18646 = load double, double* %18645
%18647 = load double*, double** %8
%18648 = getelementptr inbounds double, double* %18647, i64 0
%18649 = load double, double* %18648
%18650 = fsub double %18646, %18649
%18651 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18650, double* %18651
%18652 = load double*, double** %13
%18653 = getelementptr inbounds double, double* %18652, i64 1
%18654 = load double, double* %18653
%18655 = load double*, double** %8
%18656 = getelementptr inbounds double, double* %18655, i64 1
%18657 = load double, double* %18656
%18658 = fsub double %18654, %18657
%18659 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18658, double* %18659
%18660 = load double*, double** %13
%18661 = getelementptr inbounds double, double* %18660, i64 2
%18662 = load double, double* %18661
%18663 = load double*, double** %8
%18664 = getelementptr inbounds double, double* %18663, i64 2
%18665 = load double, double* %18664
%18666 = fsub double %18662, %18665
%18667 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18666, double* %18667
%18668 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18669 = load double, double* %18668
%18670 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18671 = load double, double* %18670
%18672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18673 = load double, double* %18672
%18674 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18675 = load double, double* %18674
%18676 = fmul double %18673, %18675
%18677 = call double @llvm.fmuladd.f64(double %18669, double %18671, double %18676)
%18678 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18679 = load double, double* %18678
%18680 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18681 = load double, double* %18680
%18682 = call double @llvm.fmuladd.f64(double %18679, double %18681, double %18677)
%18683 = fcmp ogt double %18682, 0.000000e+00
br i1 %18683, label %18684, label %18685
18684: ; preds = %18559
store i32 0, i32* %7
br label %37464
18685: ; preds = %18559
store i32 1, i32* %7
br label %37464
18686: ; preds = %18430
%18687 = load double, double* %18
%18688 = fcmp olt double %18687, 0.000000e+00
br i1 %18688, label %18689, label %18942
18689: ; preds = %18686
%18690 = load double*, double** %12
%18691 = getelementptr inbounds double, double* %18690, i64 0
%18692 = load double, double* %18691
%18693 = load double*, double** %10
%18694 = getelementptr inbounds double, double* %18693, i64 0
%18695 = load double, double* %18694
%18696 = fsub double %18692, %18695
%18697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18696, double* %18697
%18698 = load double*, double** %12
%18699 = getelementptr inbounds double, double* %18698, i64 1
%18700 = load double, double* %18699
%18701 = load double*, double** %10
%18702 = getelementptr inbounds double, double* %18701, i64 1
%18703 = load double, double* %18702
%18704 = fsub double %18700, %18703
%18705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18704, double* %18705
%18706 = load double*, double** %12
%18707 = getelementptr inbounds double, double* %18706, i64 2
%18708 = load double, double* %18707
%18709 = load double*, double** %10
%18710 = getelementptr inbounds double, double* %18709, i64 2
%18711 = load double, double* %18710
%18712 = fsub double %18708, %18711
%18713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18712, double* %18713
%18714 = load double*, double** %8
%18715 = getelementptr inbounds double, double* %18714, i64 0
%18716 = load double, double* %18715
%18717 = load double*, double** %10
%18718 = getelementptr inbounds double, double* %18717, i64 0
%18719 = load double, double* %18718
%18720 = fsub double %18716, %18719
%18721 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18720, double* %18721
%18722 = load double*, double** %8
%18723 = getelementptr inbounds double, double* %18722, i64 1
%18724 = load double, double* %18723
%18725 = load double*, double** %10
%18726 = getelementptr inbounds double, double* %18725, i64 1
%18727 = load double, double* %18726
%18728 = fsub double %18724, %18727
%18729 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18728, double* %18729
%18730 = load double*, double** %8
%18731 = getelementptr inbounds double, double* %18730, i64 2
%18732 = load double, double* %18731
%18733 = load double*, double** %10
%18734 = getelementptr inbounds double, double* %18733, i64 2
%18735 = load double, double* %18734
%18736 = fsub double %18732, %18735
%18737 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18736, double* %18737
%18738 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18739 = load double, double* %18738
%18740 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18741 = load double, double* %18740
%18742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18743 = load double, double* %18742
%18744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18745 = load double, double* %18744
%18746 = fmul double %18743, %18745
%18747 = fneg double %18746
%18748 = call double @llvm.fmuladd.f64(double %18739, double %18741, double %18747)
%18749 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18748, double* %18749
%18750 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18751 = load double, double* %18750
%18752 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18753 = load double, double* %18752
%18754 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18755 = load double, double* %18754
%18756 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18757 = load double, double* %18756
%18758 = fmul double %18755, %18757
%18759 = fneg double %18758
%18760 = call double @llvm.fmuladd.f64(double %18751, double %18753, double %18759)
%18761 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18760, double* %18761
%18762 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18763 = load double, double* %18762
%18764 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18765 = load double, double* %18764
%18766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18767 = load double, double* %18766
%18768 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18769 = load double, double* %18768
%18770 = fmul double %18767, %18769
%18771 = fneg double %18770
%18772 = call double @llvm.fmuladd.f64(double %18763, double %18765, double %18771)
%18773 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18772, double* %18773
%18774 = load double*, double** %11
%18775 = getelementptr inbounds double, double* %18774, i64 0
%18776 = load double, double* %18775
%18777 = load double*, double** %10
%18778 = getelementptr inbounds double, double* %18777, i64 0
%18779 = load double, double* %18778
%18780 = fsub double %18776, %18779
%18781 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18780, double* %18781
%18782 = load double*, double** %11
%18783 = getelementptr inbounds double, double* %18782, i64 1
%18784 = load double, double* %18783
%18785 = load double*, double** %10
%18786 = getelementptr inbounds double, double* %18785, i64 1
%18787 = load double, double* %18786
%18788 = fsub double %18784, %18787
%18789 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18788, double* %18789
%18790 = load double*, double** %11
%18791 = getelementptr inbounds double, double* %18790, i64 2
%18792 = load double, double* %18791
%18793 = load double*, double** %10
%18794 = getelementptr inbounds double, double* %18793, i64 2
%18795 = load double, double* %18794
%18796 = fsub double %18792, %18795
%18797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18796, double* %18797
%18798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18799 = load double, double* %18798
%18800 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18801 = load double, double* %18800
%18802 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18803 = load double, double* %18802
%18804 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18805 = load double, double* %18804
%18806 = fmul double %18803, %18805
%18807 = call double @llvm.fmuladd.f64(double %18799, double %18801, double %18806)
%18808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18809 = load double, double* %18808
%18810 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18811 = load double, double* %18810
%18812 = call double @llvm.fmuladd.f64(double %18809, double %18811, double %18807)
%18813 = fcmp ogt double %18812, 0.000000e+00
br i1 %18813, label %18814, label %18815
18814: ; preds = %18689
store i32 0, i32* %7
br label %37464
18815: ; preds = %18689
%18816 = load double*, double** %12
%18817 = getelementptr inbounds double, double* %18816, i64 0
%18818 = load double, double* %18817
%18819 = load double*, double** %8
%18820 = getelementptr inbounds double, double* %18819, i64 0
%18821 = load double, double* %18820
%18822 = fsub double %18818, %18821
%18823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18822, double* %18823
%18824 = load double*, double** %12
%18825 = getelementptr inbounds double, double* %18824, i64 1
%18826 = load double, double* %18825
%18827 = load double*, double** %8
%18828 = getelementptr inbounds double, double* %18827, i64 1
%18829 = load double, double* %18828
%18830 = fsub double %18826, %18829
%18831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18830, double* %18831
%18832 = load double*, double** %12
%18833 = getelementptr inbounds double, double* %18832, i64 2
%18834 = load double, double* %18833
%18835 = load double*, double** %8
%18836 = getelementptr inbounds double, double* %18835, i64 2
%18837 = load double, double* %18836
%18838 = fsub double %18834, %18837
%18839 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18838, double* %18839
%18840 = load double*, double** %9
%18841 = getelementptr inbounds double, double* %18840, i64 0
%18842 = load double, double* %18841
%18843 = load double*, double** %8
%18844 = getelementptr inbounds double, double* %18843, i64 0
%18845 = load double, double* %18844
%18846 = fsub double %18842, %18845
%18847 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18846, double* %18847
%18848 = load double*, double** %9
%18849 = getelementptr inbounds double, double* %18848, i64 1
%18850 = load double, double* %18849
%18851 = load double*, double** %8
%18852 = getelementptr inbounds double, double* %18851, i64 1
%18853 = load double, double* %18852
%18854 = fsub double %18850, %18853
%18855 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %18854, double* %18855
%18856 = load double*, double** %9
%18857 = getelementptr inbounds double, double* %18856, i64 2
%18858 = load double, double* %18857
%18859 = load double*, double** %8
%18860 = getelementptr inbounds double, double* %18859, i64 2
%18861 = load double, double* %18860
%18862 = fsub double %18858, %18861
%18863 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %18862, double* %18863
%18864 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18865 = load double, double* %18864
%18866 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18867 = load double, double* %18866
%18868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18869 = load double, double* %18868
%18870 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18871 = load double, double* %18870
%18872 = fmul double %18869, %18871
%18873 = fneg double %18872
%18874 = call double @llvm.fmuladd.f64(double %18865, double %18867, double %18873)
%18875 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %18874, double* %18875
%18876 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18877 = load double, double* %18876
%18878 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18879 = load double, double* %18878
%18880 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18881 = load double, double* %18880
%18882 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%18883 = load double, double* %18882
%18884 = fmul double %18881, %18883
%18885 = fneg double %18884
%18886 = call double @llvm.fmuladd.f64(double %18877, double %18879, double %18885)
%18887 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %18886, double* %18887
%18888 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18889 = load double, double* %18888
%18890 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%18891 = load double, double* %18890
%18892 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18893 = load double, double* %18892
%18894 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%18895 = load double, double* %18894
%18896 = fmul double %18893, %18895
%18897 = fneg double %18896
%18898 = call double @llvm.fmuladd.f64(double %18889, double %18891, double %18897)
%18899 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %18898, double* %18899
%18900 = load double*, double** %13
%18901 = getelementptr inbounds double, double* %18900, i64 0
%18902 = load double, double* %18901
%18903 = load double*, double** %8
%18904 = getelementptr inbounds double, double* %18903, i64 0
%18905 = load double, double* %18904
%18906 = fsub double %18902, %18905
%18907 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18906, double* %18907
%18908 = load double*, double** %13
%18909 = getelementptr inbounds double, double* %18908, i64 1
%18910 = load double, double* %18909
%18911 = load double*, double** %8
%18912 = getelementptr inbounds double, double* %18911, i64 1
%18913 = load double, double* %18912
%18914 = fsub double %18910, %18913
%18915 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18914, double* %18915
%18916 = load double*, double** %13
%18917 = getelementptr inbounds double, double* %18916, i64 2
%18918 = load double, double* %18917
%18919 = load double*, double** %8
%18920 = getelementptr inbounds double, double* %18919, i64 2
%18921 = load double, double* %18920
%18922 = fsub double %18918, %18921
%18923 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18922, double* %18923
%18924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%18925 = load double, double* %18924
%18926 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18927 = load double, double* %18926
%18928 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%18929 = load double, double* %18928
%18930 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%18931 = load double, double* %18930
%18932 = fmul double %18929, %18931
%18933 = call double @llvm.fmuladd.f64(double %18925, double %18927, double %18932)
%18934 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%18935 = load double, double* %18934
%18936 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%18937 = load double, double* %18936
%18938 = call double @llvm.fmuladd.f64(double %18935, double %18937, double %18933)
%18939 = fcmp ogt double %18938, 0.000000e+00
br i1 %18939, label %18940, label %18941
18940: ; preds = %18815
store i32 0, i32* %7
br label %37464
18941: ; preds = %18815
store i32 1, i32* %7
br label %37464
18942: ; preds = %18686
%18943 = load double*, double** %8
%18944 = load double*, double** %9
%18945 = load double*, double** %10
%18946 = load double*, double** %11
%18947 = load double*, double** %13
%18948 = load double*, double** %12
%18949 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%18950 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %18943, double* %18944, double* %18945, double* %18946, double* %18947, double* %18948, double* %18949)
store i32 %18950, i32* %7
br label %37464
18951: ; preds = %9699
%18952 = load double, double* %15
%18953 = fcmp olt double %18952, 0.000000e+00
br i1 %18953, label %18954, label %25119
18954: ; preds = %18951
%18955 = load double, double* %16
%18956 = fcmp oge double %18955, 0.000000e+00
br i1 %18956, label %18957, label %22038
18957: ; preds = %18954
%18958 = load double, double* %17
%18959 = fcmp ogt double %18958, 0.000000e+00
br i1 %18959, label %18960, label %19725
18960: ; preds = %18957
%18961 = load double, double* %19
%18962 = fcmp ogt double %18961, 0.000000e+00
br i1 %18962, label %18963, label %19216
18963: ; preds = %18960
%18964 = load double*, double** %12
%18965 = getelementptr inbounds double, double* %18964, i64 0
%18966 = load double, double* %18965
%18967 = load double*, double** %8
%18968 = getelementptr inbounds double, double* %18967, i64 0
%18969 = load double, double* %18968
%18970 = fsub double %18966, %18969
%18971 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %18970, double* %18971
%18972 = load double*, double** %12
%18973 = getelementptr inbounds double, double* %18972, i64 1
%18974 = load double, double* %18973
%18975 = load double*, double** %8
%18976 = getelementptr inbounds double, double* %18975, i64 1
%18977 = load double, double* %18976
%18978 = fsub double %18974, %18977
%18979 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %18978, double* %18979
%18980 = load double*, double** %12
%18981 = getelementptr inbounds double, double* %18980, i64 2
%18982 = load double, double* %18981
%18983 = load double*, double** %8
%18984 = getelementptr inbounds double, double* %18983, i64 2
%18985 = load double, double* %18984
%18986 = fsub double %18982, %18985
%18987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %18986, double* %18987
%18988 = load double*, double** %9
%18989 = getelementptr inbounds double, double* %18988, i64 0
%18990 = load double, double* %18989
%18991 = load double*, double** %8
%18992 = getelementptr inbounds double, double* %18991, i64 0
%18993 = load double, double* %18992
%18994 = fsub double %18990, %18993
%18995 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %18994, double* %18995
%18996 = load double*, double** %9
%18997 = getelementptr inbounds double, double* %18996, i64 1
%18998 = load double, double* %18997
%18999 = load double*, double** %8
%19000 = getelementptr inbounds double, double* %18999, i64 1
%19001 = load double, double* %19000
%19002 = fsub double %18998, %19001
%19003 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19002, double* %19003
%19004 = load double*, double** %9
%19005 = getelementptr inbounds double, double* %19004, i64 2
%19006 = load double, double* %19005
%19007 = load double*, double** %8
%19008 = getelementptr inbounds double, double* %19007, i64 2
%19009 = load double, double* %19008
%19010 = fsub double %19006, %19009
%19011 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19010, double* %19011
%19012 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19013 = load double, double* %19012
%19014 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19015 = load double, double* %19014
%19016 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19017 = load double, double* %19016
%19018 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19019 = load double, double* %19018
%19020 = fmul double %19017, %19019
%19021 = fneg double %19020
%19022 = call double @llvm.fmuladd.f64(double %19013, double %19015, double %19021)
%19023 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19022, double* %19023
%19024 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19025 = load double, double* %19024
%19026 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19027 = load double, double* %19026
%19028 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19029 = load double, double* %19028
%19030 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19031 = load double, double* %19030
%19032 = fmul double %19029, %19031
%19033 = fneg double %19032
%19034 = call double @llvm.fmuladd.f64(double %19025, double %19027, double %19033)
%19035 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19034, double* %19035
%19036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19037 = load double, double* %19036
%19038 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19039 = load double, double* %19038
%19040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19041 = load double, double* %19040
%19042 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19043 = load double, double* %19042
%19044 = fmul double %19041, %19043
%19045 = fneg double %19044
%19046 = call double @llvm.fmuladd.f64(double %19037, double %19039, double %19045)
%19047 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19046, double* %19047
%19048 = load double*, double** %11
%19049 = getelementptr inbounds double, double* %19048, i64 0
%19050 = load double, double* %19049
%19051 = load double*, double** %8
%19052 = getelementptr inbounds double, double* %19051, i64 0
%19053 = load double, double* %19052
%19054 = fsub double %19050, %19053
%19055 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19054, double* %19055
%19056 = load double*, double** %11
%19057 = getelementptr inbounds double, double* %19056, i64 1
%19058 = load double, double* %19057
%19059 = load double*, double** %8
%19060 = getelementptr inbounds double, double* %19059, i64 1
%19061 = load double, double* %19060
%19062 = fsub double %19058, %19061
%19063 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19062, double* %19063
%19064 = load double*, double** %11
%19065 = getelementptr inbounds double, double* %19064, i64 2
%19066 = load double, double* %19065
%19067 = load double*, double** %8
%19068 = getelementptr inbounds double, double* %19067, i64 2
%19069 = load double, double* %19068
%19070 = fsub double %19066, %19069
%19071 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19070, double* %19071
%19072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19073 = load double, double* %19072
%19074 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19075 = load double, double* %19074
%19076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19077 = load double, double* %19076
%19078 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19079 = load double, double* %19078
%19080 = fmul double %19077, %19079
%19081 = call double @llvm.fmuladd.f64(double %19073, double %19075, double %19080)
%19082 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19083 = load double, double* %19082
%19084 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19085 = load double, double* %19084
%19086 = call double @llvm.fmuladd.f64(double %19083, double %19085, double %19081)
%19087 = fcmp ogt double %19086, 0.000000e+00
br i1 %19087, label %19088, label %19089
19088: ; preds = %18963
store i32 0, i32* %7
br label %37464
19089: ; preds = %18963
%19090 = load double*, double** %12
%19091 = getelementptr inbounds double, double* %19090, i64 0
%19092 = load double, double* %19091
%19093 = load double*, double** %9
%19094 = getelementptr inbounds double, double* %19093, i64 0
%19095 = load double, double* %19094
%19096 = fsub double %19092, %19095
%19097 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19096, double* %19097
%19098 = load double*, double** %12
%19099 = getelementptr inbounds double, double* %19098, i64 1
%19100 = load double, double* %19099
%19101 = load double*, double** %9
%19102 = getelementptr inbounds double, double* %19101, i64 1
%19103 = load double, double* %19102
%19104 = fsub double %19100, %19103
%19105 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19104, double* %19105
%19106 = load double*, double** %12
%19107 = getelementptr inbounds double, double* %19106, i64 2
%19108 = load double, double* %19107
%19109 = load double*, double** %9
%19110 = getelementptr inbounds double, double* %19109, i64 2
%19111 = load double, double* %19110
%19112 = fsub double %19108, %19111
%19113 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19112, double* %19113
%19114 = load double*, double** %10
%19115 = getelementptr inbounds double, double* %19114, i64 0
%19116 = load double, double* %19115
%19117 = load double*, double** %9
%19118 = getelementptr inbounds double, double* %19117, i64 0
%19119 = load double, double* %19118
%19120 = fsub double %19116, %19119
%19121 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19120, double* %19121
%19122 = load double*, double** %10
%19123 = getelementptr inbounds double, double* %19122, i64 1
%19124 = load double, double* %19123
%19125 = load double*, double** %9
%19126 = getelementptr inbounds double, double* %19125, i64 1
%19127 = load double, double* %19126
%19128 = fsub double %19124, %19127
%19129 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19128, double* %19129
%19130 = load double*, double** %10
%19131 = getelementptr inbounds double, double* %19130, i64 2
%19132 = load double, double* %19131
%19133 = load double*, double** %9
%19134 = getelementptr inbounds double, double* %19133, i64 2
%19135 = load double, double* %19134
%19136 = fsub double %19132, %19135
%19137 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19136, double* %19137
%19138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19139 = load double, double* %19138
%19140 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19141 = load double, double* %19140
%19142 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19143 = load double, double* %19142
%19144 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19145 = load double, double* %19144
%19146 = fmul double %19143, %19145
%19147 = fneg double %19146
%19148 = call double @llvm.fmuladd.f64(double %19139, double %19141, double %19147)
%19149 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19148, double* %19149
%19150 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19151 = load double, double* %19150
%19152 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19153 = load double, double* %19152
%19154 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19155 = load double, double* %19154
%19156 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19157 = load double, double* %19156
%19158 = fmul double %19155, %19157
%19159 = fneg double %19158
%19160 = call double @llvm.fmuladd.f64(double %19151, double %19153, double %19159)
%19161 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19160, double* %19161
%19162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19163 = load double, double* %19162
%19164 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19165 = load double, double* %19164
%19166 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19167 = load double, double* %19166
%19168 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19169 = load double, double* %19168
%19170 = fmul double %19167, %19169
%19171 = fneg double %19170
%19172 = call double @llvm.fmuladd.f64(double %19163, double %19165, double %19171)
%19173 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19172, double* %19173
%19174 = load double*, double** %13
%19175 = getelementptr inbounds double, double* %19174, i64 0
%19176 = load double, double* %19175
%19177 = load double*, double** %9
%19178 = getelementptr inbounds double, double* %19177, i64 0
%19179 = load double, double* %19178
%19180 = fsub double %19176, %19179
%19181 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19180, double* %19181
%19182 = load double*, double** %13
%19183 = getelementptr inbounds double, double* %19182, i64 1
%19184 = load double, double* %19183
%19185 = load double*, double** %9
%19186 = getelementptr inbounds double, double* %19185, i64 1
%19187 = load double, double* %19186
%19188 = fsub double %19184, %19187
%19189 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19188, double* %19189
%19190 = load double*, double** %13
%19191 = getelementptr inbounds double, double* %19190, i64 2
%19192 = load double, double* %19191
%19193 = load double*, double** %9
%19194 = getelementptr inbounds double, double* %19193, i64 2
%19195 = load double, double* %19194
%19196 = fsub double %19192, %19195
%19197 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19196, double* %19197
%19198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19199 = load double, double* %19198
%19200 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19201 = load double, double* %19200
%19202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19203 = load double, double* %19202
%19204 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19205 = load double, double* %19204
%19206 = fmul double %19203, %19205
%19207 = call double @llvm.fmuladd.f64(double %19199, double %19201, double %19206)
%19208 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19209 = load double, double* %19208
%19210 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19211 = load double, double* %19210
%19212 = call double @llvm.fmuladd.f64(double %19209, double %19211, double %19207)
%19213 = fcmp ogt double %19212, 0.000000e+00
br i1 %19213, label %19214, label %19215
19214: ; preds = %19089
store i32 0, i32* %7
br label %37464
19215: ; preds = %19089
store i32 1, i32* %7
br label %37464
19216: ; preds = %18960
%19217 = load double, double* %18
%19218 = fcmp ogt double %19217, 0.000000e+00
br i1 %19218, label %19219, label %19472
19219: ; preds = %19216
%19220 = load double*, double** %13
%19221 = getelementptr inbounds double, double* %19220, i64 0
%19222 = load double, double* %19221
%19223 = load double*, double** %8
%19224 = getelementptr inbounds double, double* %19223, i64 0
%19225 = load double, double* %19224
%19226 = fsub double %19222, %19225
%19227 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19226, double* %19227
%19228 = load double*, double** %13
%19229 = getelementptr inbounds double, double* %19228, i64 1
%19230 = load double, double* %19229
%19231 = load double*, double** %8
%19232 = getelementptr inbounds double, double* %19231, i64 1
%19233 = load double, double* %19232
%19234 = fsub double %19230, %19233
%19235 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19234, double* %19235
%19236 = load double*, double** %13
%19237 = getelementptr inbounds double, double* %19236, i64 2
%19238 = load double, double* %19237
%19239 = load double*, double** %8
%19240 = getelementptr inbounds double, double* %19239, i64 2
%19241 = load double, double* %19240
%19242 = fsub double %19238, %19241
%19243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19242, double* %19243
%19244 = load double*, double** %9
%19245 = getelementptr inbounds double, double* %19244, i64 0
%19246 = load double, double* %19245
%19247 = load double*, double** %8
%19248 = getelementptr inbounds double, double* %19247, i64 0
%19249 = load double, double* %19248
%19250 = fsub double %19246, %19249
%19251 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19250, double* %19251
%19252 = load double*, double** %9
%19253 = getelementptr inbounds double, double* %19252, i64 1
%19254 = load double, double* %19253
%19255 = load double*, double** %8
%19256 = getelementptr inbounds double, double* %19255, i64 1
%19257 = load double, double* %19256
%19258 = fsub double %19254, %19257
%19259 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19258, double* %19259
%19260 = load double*, double** %9
%19261 = getelementptr inbounds double, double* %19260, i64 2
%19262 = load double, double* %19261
%19263 = load double*, double** %8
%19264 = getelementptr inbounds double, double* %19263, i64 2
%19265 = load double, double* %19264
%19266 = fsub double %19262, %19265
%19267 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19266, double* %19267
%19268 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19269 = load double, double* %19268
%19270 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19271 = load double, double* %19270
%19272 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19273 = load double, double* %19272
%19274 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19275 = load double, double* %19274
%19276 = fmul double %19273, %19275
%19277 = fneg double %19276
%19278 = call double @llvm.fmuladd.f64(double %19269, double %19271, double %19277)
%19279 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19278, double* %19279
%19280 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19281 = load double, double* %19280
%19282 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19283 = load double, double* %19282
%19284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19285 = load double, double* %19284
%19286 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19287 = load double, double* %19286
%19288 = fmul double %19285, %19287
%19289 = fneg double %19288
%19290 = call double @llvm.fmuladd.f64(double %19281, double %19283, double %19289)
%19291 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19290, double* %19291
%19292 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19293 = load double, double* %19292
%19294 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19295 = load double, double* %19294
%19296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19297 = load double, double* %19296
%19298 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19299 = load double, double* %19298
%19300 = fmul double %19297, %19299
%19301 = fneg double %19300
%19302 = call double @llvm.fmuladd.f64(double %19293, double %19295, double %19301)
%19303 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19302, double* %19303
%19304 = load double*, double** %12
%19305 = getelementptr inbounds double, double* %19304, i64 0
%19306 = load double, double* %19305
%19307 = load double*, double** %8
%19308 = getelementptr inbounds double, double* %19307, i64 0
%19309 = load double, double* %19308
%19310 = fsub double %19306, %19309
%19311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19310, double* %19311
%19312 = load double*, double** %12
%19313 = getelementptr inbounds double, double* %19312, i64 1
%19314 = load double, double* %19313
%19315 = load double*, double** %8
%19316 = getelementptr inbounds double, double* %19315, i64 1
%19317 = load double, double* %19316
%19318 = fsub double %19314, %19317
%19319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19318, double* %19319
%19320 = load double*, double** %12
%19321 = getelementptr inbounds double, double* %19320, i64 2
%19322 = load double, double* %19321
%19323 = load double*, double** %8
%19324 = getelementptr inbounds double, double* %19323, i64 2
%19325 = load double, double* %19324
%19326 = fsub double %19322, %19325
%19327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19326, double* %19327
%19328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19329 = load double, double* %19328
%19330 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19331 = load double, double* %19330
%19332 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19333 = load double, double* %19332
%19334 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19335 = load double, double* %19334
%19336 = fmul double %19333, %19335
%19337 = call double @llvm.fmuladd.f64(double %19329, double %19331, double %19336)
%19338 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19339 = load double, double* %19338
%19340 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19341 = load double, double* %19340
%19342 = call double @llvm.fmuladd.f64(double %19339, double %19341, double %19337)
%19343 = fcmp ogt double %19342, 0.000000e+00
br i1 %19343, label %19344, label %19345
19344: ; preds = %19219
store i32 0, i32* %7
br label %37464
19345: ; preds = %19219
%19346 = load double*, double** %13
%19347 = getelementptr inbounds double, double* %19346, i64 0
%19348 = load double, double* %19347
%19349 = load double*, double** %9
%19350 = getelementptr inbounds double, double* %19349, i64 0
%19351 = load double, double* %19350
%19352 = fsub double %19348, %19351
%19353 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19352, double* %19353
%19354 = load double*, double** %13
%19355 = getelementptr inbounds double, double* %19354, i64 1
%19356 = load double, double* %19355
%19357 = load double*, double** %9
%19358 = getelementptr inbounds double, double* %19357, i64 1
%19359 = load double, double* %19358
%19360 = fsub double %19356, %19359
%19361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19360, double* %19361
%19362 = load double*, double** %13
%19363 = getelementptr inbounds double, double* %19362, i64 2
%19364 = load double, double* %19363
%19365 = load double*, double** %9
%19366 = getelementptr inbounds double, double* %19365, i64 2
%19367 = load double, double* %19366
%19368 = fsub double %19364, %19367
%19369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19368, double* %19369
%19370 = load double*, double** %10
%19371 = getelementptr inbounds double, double* %19370, i64 0
%19372 = load double, double* %19371
%19373 = load double*, double** %9
%19374 = getelementptr inbounds double, double* %19373, i64 0
%19375 = load double, double* %19374
%19376 = fsub double %19372, %19375
%19377 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19376, double* %19377
%19378 = load double*, double** %10
%19379 = getelementptr inbounds double, double* %19378, i64 1
%19380 = load double, double* %19379
%19381 = load double*, double** %9
%19382 = getelementptr inbounds double, double* %19381, i64 1
%19383 = load double, double* %19382
%19384 = fsub double %19380, %19383
%19385 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19384, double* %19385
%19386 = load double*, double** %10
%19387 = getelementptr inbounds double, double* %19386, i64 2
%19388 = load double, double* %19387
%19389 = load double*, double** %9
%19390 = getelementptr inbounds double, double* %19389, i64 2
%19391 = load double, double* %19390
%19392 = fsub double %19388, %19391
%19393 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19392, double* %19393
%19394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19395 = load double, double* %19394
%19396 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19397 = load double, double* %19396
%19398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19399 = load double, double* %19398
%19400 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19401 = load double, double* %19400
%19402 = fmul double %19399, %19401
%19403 = fneg double %19402
%19404 = call double @llvm.fmuladd.f64(double %19395, double %19397, double %19403)
%19405 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19404, double* %19405
%19406 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19407 = load double, double* %19406
%19408 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19409 = load double, double* %19408
%19410 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19411 = load double, double* %19410
%19412 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19413 = load double, double* %19412
%19414 = fmul double %19411, %19413
%19415 = fneg double %19414
%19416 = call double @llvm.fmuladd.f64(double %19407, double %19409, double %19415)
%19417 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19416, double* %19417
%19418 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19419 = load double, double* %19418
%19420 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19421 = load double, double* %19420
%19422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19423 = load double, double* %19422
%19424 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19425 = load double, double* %19424
%19426 = fmul double %19423, %19425
%19427 = fneg double %19426
%19428 = call double @llvm.fmuladd.f64(double %19419, double %19421, double %19427)
%19429 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19428, double* %19429
%19430 = load double*, double** %11
%19431 = getelementptr inbounds double, double* %19430, i64 0
%19432 = load double, double* %19431
%19433 = load double*, double** %9
%19434 = getelementptr inbounds double, double* %19433, i64 0
%19435 = load double, double* %19434
%19436 = fsub double %19432, %19435
%19437 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19436, double* %19437
%19438 = load double*, double** %11
%19439 = getelementptr inbounds double, double* %19438, i64 1
%19440 = load double, double* %19439
%19441 = load double*, double** %9
%19442 = getelementptr inbounds double, double* %19441, i64 1
%19443 = load double, double* %19442
%19444 = fsub double %19440, %19443
%19445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19444, double* %19445
%19446 = load double*, double** %11
%19447 = getelementptr inbounds double, double* %19446, i64 2
%19448 = load double, double* %19447
%19449 = load double*, double** %9
%19450 = getelementptr inbounds double, double* %19449, i64 2
%19451 = load double, double* %19450
%19452 = fsub double %19448, %19451
%19453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19452, double* %19453
%19454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19455 = load double, double* %19454
%19456 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19457 = load double, double* %19456
%19458 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19459 = load double, double* %19458
%19460 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19461 = load double, double* %19460
%19462 = fmul double %19459, %19461
%19463 = call double @llvm.fmuladd.f64(double %19455, double %19457, double %19462)
%19464 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19465 = load double, double* %19464
%19466 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19467 = load double, double* %19466
%19468 = call double @llvm.fmuladd.f64(double %19465, double %19467, double %19463)
%19469 = fcmp ogt double %19468, 0.000000e+00
br i1 %19469, label %19470, label %19471
19470: ; preds = %19345
store i32 0, i32* %7
br label %37464
19471: ; preds = %19345
store i32 1, i32* %7
br label %37464
19472: ; preds = %19216
%19473 = load double*, double** %11
%19474 = getelementptr inbounds double, double* %19473, i64 0
%19475 = load double, double* %19474
%19476 = load double*, double** %10
%19477 = getelementptr inbounds double, double* %19476, i64 0
%19478 = load double, double* %19477
%19479 = fsub double %19475, %19478
%19480 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19479, double* %19480
%19481 = load double*, double** %11
%19482 = getelementptr inbounds double, double* %19481, i64 1
%19483 = load double, double* %19482
%19484 = load double*, double** %10
%19485 = getelementptr inbounds double, double* %19484, i64 1
%19486 = load double, double* %19485
%19487 = fsub double %19483, %19486
%19488 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19487, double* %19488
%19489 = load double*, double** %11
%19490 = getelementptr inbounds double, double* %19489, i64 2
%19491 = load double, double* %19490
%19492 = load double*, double** %10
%19493 = getelementptr inbounds double, double* %19492, i64 2
%19494 = load double, double* %19493
%19495 = fsub double %19491, %19494
%19496 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19495, double* %19496
%19497 = load double*, double** %9
%19498 = getelementptr inbounds double, double* %19497, i64 0
%19499 = load double, double* %19498
%19500 = load double*, double** %10
%19501 = getelementptr inbounds double, double* %19500, i64 0
%19502 = load double, double* %19501
%19503 = fsub double %19499, %19502
%19504 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19503, double* %19504
%19505 = load double*, double** %9
%19506 = getelementptr inbounds double, double* %19505, i64 1
%19507 = load double, double* %19506
%19508 = load double*, double** %10
%19509 = getelementptr inbounds double, double* %19508, i64 1
%19510 = load double, double* %19509
%19511 = fsub double %19507, %19510
%19512 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19511, double* %19512
%19513 = load double*, double** %9
%19514 = getelementptr inbounds double, double* %19513, i64 2
%19515 = load double, double* %19514
%19516 = load double*, double** %10
%19517 = getelementptr inbounds double, double* %19516, i64 2
%19518 = load double, double* %19517
%19519 = fsub double %19515, %19518
%19520 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19519, double* %19520
%19521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19522 = load double, double* %19521
%19523 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19524 = load double, double* %19523
%19525 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19526 = load double, double* %19525
%19527 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19528 = load double, double* %19527
%19529 = fmul double %19526, %19528
%19530 = fneg double %19529
%19531 = call double @llvm.fmuladd.f64(double %19522, double %19524, double %19530)
%19532 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19531, double* %19532
%19533 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19534 = load double, double* %19533
%19535 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19536 = load double, double* %19535
%19537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19538 = load double, double* %19537
%19539 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19540 = load double, double* %19539
%19541 = fmul double %19538, %19540
%19542 = fneg double %19541
%19543 = call double @llvm.fmuladd.f64(double %19534, double %19536, double %19542)
%19544 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19543, double* %19544
%19545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19546 = load double, double* %19545
%19547 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19548 = load double, double* %19547
%19549 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19550 = load double, double* %19549
%19551 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19552 = load double, double* %19551
%19553 = fmul double %19550, %19552
%19554 = fneg double %19553
%19555 = call double @llvm.fmuladd.f64(double %19546, double %19548, double %19554)
%19556 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19555, double* %19556
%19557 = load double*, double** %13
%19558 = getelementptr inbounds double, double* %19557, i64 0
%19559 = load double, double* %19558
%19560 = load double*, double** %10
%19561 = getelementptr inbounds double, double* %19560, i64 0
%19562 = load double, double* %19561
%19563 = fsub double %19559, %19562
%19564 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19563, double* %19564
%19565 = load double*, double** %13
%19566 = getelementptr inbounds double, double* %19565, i64 1
%19567 = load double, double* %19566
%19568 = load double*, double** %10
%19569 = getelementptr inbounds double, double* %19568, i64 1
%19570 = load double, double* %19569
%19571 = fsub double %19567, %19570
%19572 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19571, double* %19572
%19573 = load double*, double** %13
%19574 = getelementptr inbounds double, double* %19573, i64 2
%19575 = load double, double* %19574
%19576 = load double*, double** %10
%19577 = getelementptr inbounds double, double* %19576, i64 2
%19578 = load double, double* %19577
%19579 = fsub double %19575, %19578
%19580 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19579, double* %19580
%19581 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19582 = load double, double* %19581
%19583 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19584 = load double, double* %19583
%19585 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19586 = load double, double* %19585
%19587 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19588 = load double, double* %19587
%19589 = fmul double %19586, %19588
%19590 = call double @llvm.fmuladd.f64(double %19582, double %19584, double %19589)
%19591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19592 = load double, double* %19591
%19593 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19594 = load double, double* %19593
%19595 = call double @llvm.fmuladd.f64(double %19592, double %19594, double %19590)
%19596 = fcmp ogt double %19595, 0.000000e+00
br i1 %19596, label %19597, label %19598
19597: ; preds = %19472
store i32 0, i32* %7
br label %37464
19598: ; preds = %19472
%19599 = load double*, double** %11
%19600 = getelementptr inbounds double, double* %19599, i64 0
%19601 = load double, double* %19600
%19602 = load double*, double** %9
%19603 = getelementptr inbounds double, double* %19602, i64 0
%19604 = load double, double* %19603
%19605 = fsub double %19601, %19604
%19606 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19605, double* %19606
%19607 = load double*, double** %11
%19608 = getelementptr inbounds double, double* %19607, i64 1
%19609 = load double, double* %19608
%19610 = load double*, double** %9
%19611 = getelementptr inbounds double, double* %19610, i64 1
%19612 = load double, double* %19611
%19613 = fsub double %19609, %19612
%19614 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19613, double* %19614
%19615 = load double*, double** %11
%19616 = getelementptr inbounds double, double* %19615, i64 2
%19617 = load double, double* %19616
%19618 = load double*, double** %9
%19619 = getelementptr inbounds double, double* %19618, i64 2
%19620 = load double, double* %19619
%19621 = fsub double %19617, %19620
%19622 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19621, double* %19622
%19623 = load double*, double** %8
%19624 = getelementptr inbounds double, double* %19623, i64 0
%19625 = load double, double* %19624
%19626 = load double*, double** %9
%19627 = getelementptr inbounds double, double* %19626, i64 0
%19628 = load double, double* %19627
%19629 = fsub double %19625, %19628
%19630 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19629, double* %19630
%19631 = load double*, double** %8
%19632 = getelementptr inbounds double, double* %19631, i64 1
%19633 = load double, double* %19632
%19634 = load double*, double** %9
%19635 = getelementptr inbounds double, double* %19634, i64 1
%19636 = load double, double* %19635
%19637 = fsub double %19633, %19636
%19638 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19637, double* %19638
%19639 = load double*, double** %8
%19640 = getelementptr inbounds double, double* %19639, i64 2
%19641 = load double, double* %19640
%19642 = load double*, double** %9
%19643 = getelementptr inbounds double, double* %19642, i64 2
%19644 = load double, double* %19643
%19645 = fsub double %19641, %19644
%19646 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19645, double* %19646
%19647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19648 = load double, double* %19647
%19649 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19650 = load double, double* %19649
%19651 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19652 = load double, double* %19651
%19653 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19654 = load double, double* %19653
%19655 = fmul double %19652, %19654
%19656 = fneg double %19655
%19657 = call double @llvm.fmuladd.f64(double %19648, double %19650, double %19656)
%19658 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19657, double* %19658
%19659 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19660 = load double, double* %19659
%19661 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19662 = load double, double* %19661
%19663 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19664 = load double, double* %19663
%19665 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19666 = load double, double* %19665
%19667 = fmul double %19664, %19666
%19668 = fneg double %19667
%19669 = call double @llvm.fmuladd.f64(double %19660, double %19662, double %19668)
%19670 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19669, double* %19670
%19671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19672 = load double, double* %19671
%19673 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19674 = load double, double* %19673
%19675 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19676 = load double, double* %19675
%19677 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19678 = load double, double* %19677
%19679 = fmul double %19676, %19678
%19680 = fneg double %19679
%19681 = call double @llvm.fmuladd.f64(double %19672, double %19674, double %19680)
%19682 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19681, double* %19682
%19683 = load double*, double** %12
%19684 = getelementptr inbounds double, double* %19683, i64 0
%19685 = load double, double* %19684
%19686 = load double*, double** %9
%19687 = getelementptr inbounds double, double* %19686, i64 0
%19688 = load double, double* %19687
%19689 = fsub double %19685, %19688
%19690 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19689, double* %19690
%19691 = load double*, double** %12
%19692 = getelementptr inbounds double, double* %19691, i64 1
%19693 = load double, double* %19692
%19694 = load double*, double** %9
%19695 = getelementptr inbounds double, double* %19694, i64 1
%19696 = load double, double* %19695
%19697 = fsub double %19693, %19696
%19698 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19697, double* %19698
%19699 = load double*, double** %12
%19700 = getelementptr inbounds double, double* %19699, i64 2
%19701 = load double, double* %19700
%19702 = load double*, double** %9
%19703 = getelementptr inbounds double, double* %19702, i64 2
%19704 = load double, double* %19703
%19705 = fsub double %19701, %19704
%19706 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19705, double* %19706
%19707 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19708 = load double, double* %19707
%19709 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19710 = load double, double* %19709
%19711 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19712 = load double, double* %19711
%19713 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19714 = load double, double* %19713
%19715 = fmul double %19712, %19714
%19716 = call double @llvm.fmuladd.f64(double %19708, double %19710, double %19715)
%19717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19718 = load double, double* %19717
%19719 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19720 = load double, double* %19719
%19721 = call double @llvm.fmuladd.f64(double %19718, double %19720, double %19716)
%19722 = fcmp ogt double %19721, 0.000000e+00
br i1 %19722, label %19723, label %19724
19723: ; preds = %19598
store i32 0, i32* %7
br label %37464
19724: ; preds = %19598
store i32 1, i32* %7
br label %37464
19725: ; preds = %18957
%19726 = load double, double* %17
%19727 = fcmp olt double %19726, 0.000000e+00
br i1 %19727, label %19728, label %20493
19728: ; preds = %19725
%19729 = load double, double* %19
%19730 = fcmp olt double %19729, 0.000000e+00
br i1 %19730, label %19731, label %19984
19731: ; preds = %19728
%19732 = load double*, double** %12
%19733 = getelementptr inbounds double, double* %19732, i64 0
%19734 = load double, double* %19733
%19735 = load double*, double** %10
%19736 = getelementptr inbounds double, double* %19735, i64 0
%19737 = load double, double* %19736
%19738 = fsub double %19734, %19737
%19739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19738, double* %19739
%19740 = load double*, double** %12
%19741 = getelementptr inbounds double, double* %19740, i64 1
%19742 = load double, double* %19741
%19743 = load double*, double** %10
%19744 = getelementptr inbounds double, double* %19743, i64 1
%19745 = load double, double* %19744
%19746 = fsub double %19742, %19745
%19747 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19746, double* %19747
%19748 = load double*, double** %12
%19749 = getelementptr inbounds double, double* %19748, i64 2
%19750 = load double, double* %19749
%19751 = load double*, double** %10
%19752 = getelementptr inbounds double, double* %19751, i64 2
%19753 = load double, double* %19752
%19754 = fsub double %19750, %19753
%19755 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19754, double* %19755
%19756 = load double*, double** %9
%19757 = getelementptr inbounds double, double* %19756, i64 0
%19758 = load double, double* %19757
%19759 = load double*, double** %10
%19760 = getelementptr inbounds double, double* %19759, i64 0
%19761 = load double, double* %19760
%19762 = fsub double %19758, %19761
%19763 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19762, double* %19763
%19764 = load double*, double** %9
%19765 = getelementptr inbounds double, double* %19764, i64 1
%19766 = load double, double* %19765
%19767 = load double*, double** %10
%19768 = getelementptr inbounds double, double* %19767, i64 1
%19769 = load double, double* %19768
%19770 = fsub double %19766, %19769
%19771 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19770, double* %19771
%19772 = load double*, double** %9
%19773 = getelementptr inbounds double, double* %19772, i64 2
%19774 = load double, double* %19773
%19775 = load double*, double** %10
%19776 = getelementptr inbounds double, double* %19775, i64 2
%19777 = load double, double* %19776
%19778 = fsub double %19774, %19777
%19779 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19778, double* %19779
%19780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19781 = load double, double* %19780
%19782 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19783 = load double, double* %19782
%19784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19785 = load double, double* %19784
%19786 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19787 = load double, double* %19786
%19788 = fmul double %19785, %19787
%19789 = fneg double %19788
%19790 = call double @llvm.fmuladd.f64(double %19781, double %19783, double %19789)
%19791 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19790, double* %19791
%19792 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19793 = load double, double* %19792
%19794 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19795 = load double, double* %19794
%19796 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19797 = load double, double* %19796
%19798 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19799 = load double, double* %19798
%19800 = fmul double %19797, %19799
%19801 = fneg double %19800
%19802 = call double @llvm.fmuladd.f64(double %19793, double %19795, double %19801)
%19803 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19802, double* %19803
%19804 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19805 = load double, double* %19804
%19806 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19807 = load double, double* %19806
%19808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19809 = load double, double* %19808
%19810 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19811 = load double, double* %19810
%19812 = fmul double %19809, %19811
%19813 = fneg double %19812
%19814 = call double @llvm.fmuladd.f64(double %19805, double %19807, double %19813)
%19815 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19814, double* %19815
%19816 = load double*, double** %11
%19817 = getelementptr inbounds double, double* %19816, i64 0
%19818 = load double, double* %19817
%19819 = load double*, double** %10
%19820 = getelementptr inbounds double, double* %19819, i64 0
%19821 = load double, double* %19820
%19822 = fsub double %19818, %19821
%19823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19822, double* %19823
%19824 = load double*, double** %11
%19825 = getelementptr inbounds double, double* %19824, i64 1
%19826 = load double, double* %19825
%19827 = load double*, double** %10
%19828 = getelementptr inbounds double, double* %19827, i64 1
%19829 = load double, double* %19828
%19830 = fsub double %19826, %19829
%19831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19830, double* %19831
%19832 = load double*, double** %11
%19833 = getelementptr inbounds double, double* %19832, i64 2
%19834 = load double, double* %19833
%19835 = load double*, double** %10
%19836 = getelementptr inbounds double, double* %19835, i64 2
%19837 = load double, double* %19836
%19838 = fsub double %19834, %19837
%19839 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19838, double* %19839
%19840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19841 = load double, double* %19840
%19842 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19843 = load double, double* %19842
%19844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19845 = load double, double* %19844
%19846 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19847 = load double, double* %19846
%19848 = fmul double %19845, %19847
%19849 = call double @llvm.fmuladd.f64(double %19841, double %19843, double %19848)
%19850 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19851 = load double, double* %19850
%19852 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19853 = load double, double* %19852
%19854 = call double @llvm.fmuladd.f64(double %19851, double %19853, double %19849)
%19855 = fcmp ogt double %19854, 0.000000e+00
br i1 %19855, label %19856, label %19857
19856: ; preds = %19731
store i32 0, i32* %7
br label %37464
19857: ; preds = %19731
%19858 = load double*, double** %12
%19859 = getelementptr inbounds double, double* %19858, i64 0
%19860 = load double, double* %19859
%19861 = load double*, double** %9
%19862 = getelementptr inbounds double, double* %19861, i64 0
%19863 = load double, double* %19862
%19864 = fsub double %19860, %19863
%19865 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19864, double* %19865
%19866 = load double*, double** %12
%19867 = getelementptr inbounds double, double* %19866, i64 1
%19868 = load double, double* %19867
%19869 = load double*, double** %9
%19870 = getelementptr inbounds double, double* %19869, i64 1
%19871 = load double, double* %19870
%19872 = fsub double %19868, %19871
%19873 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19872, double* %19873
%19874 = load double*, double** %12
%19875 = getelementptr inbounds double, double* %19874, i64 2
%19876 = load double, double* %19875
%19877 = load double*, double** %9
%19878 = getelementptr inbounds double, double* %19877, i64 2
%19879 = load double, double* %19878
%19880 = fsub double %19876, %19879
%19881 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19880, double* %19881
%19882 = load double*, double** %8
%19883 = getelementptr inbounds double, double* %19882, i64 0
%19884 = load double, double* %19883
%19885 = load double*, double** %9
%19886 = getelementptr inbounds double, double* %19885, i64 0
%19887 = load double, double* %19886
%19888 = fsub double %19884, %19887
%19889 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %19888, double* %19889
%19890 = load double*, double** %8
%19891 = getelementptr inbounds double, double* %19890, i64 1
%19892 = load double, double* %19891
%19893 = load double*, double** %9
%19894 = getelementptr inbounds double, double* %19893, i64 1
%19895 = load double, double* %19894
%19896 = fsub double %19892, %19895
%19897 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %19896, double* %19897
%19898 = load double*, double** %8
%19899 = getelementptr inbounds double, double* %19898, i64 2
%19900 = load double, double* %19899
%19901 = load double*, double** %9
%19902 = getelementptr inbounds double, double* %19901, i64 2
%19903 = load double, double* %19902
%19904 = fsub double %19900, %19903
%19905 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %19904, double* %19905
%19906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19907 = load double, double* %19906
%19908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19909 = load double, double* %19908
%19910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19911 = load double, double* %19910
%19912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19913 = load double, double* %19912
%19914 = fmul double %19911, %19913
%19915 = fneg double %19914
%19916 = call double @llvm.fmuladd.f64(double %19907, double %19909, double %19915)
%19917 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %19916, double* %19917
%19918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19919 = load double, double* %19918
%19920 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19921 = load double, double* %19920
%19922 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19923 = load double, double* %19922
%19924 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%19925 = load double, double* %19924
%19926 = fmul double %19923, %19925
%19927 = fneg double %19926
%19928 = call double @llvm.fmuladd.f64(double %19919, double %19921, double %19927)
%19929 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %19928, double* %19929
%19930 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19931 = load double, double* %19930
%19932 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%19933 = load double, double* %19932
%19934 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19935 = load double, double* %19934
%19936 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%19937 = load double, double* %19936
%19938 = fmul double %19935, %19937
%19939 = fneg double %19938
%19940 = call double @llvm.fmuladd.f64(double %19931, double %19933, double %19939)
%19941 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %19940, double* %19941
%19942 = load double*, double** %13
%19943 = getelementptr inbounds double, double* %19942, i64 0
%19944 = load double, double* %19943
%19945 = load double*, double** %9
%19946 = getelementptr inbounds double, double* %19945, i64 0
%19947 = load double, double* %19946
%19948 = fsub double %19944, %19947
%19949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19948, double* %19949
%19950 = load double*, double** %13
%19951 = getelementptr inbounds double, double* %19950, i64 1
%19952 = load double, double* %19951
%19953 = load double*, double** %9
%19954 = getelementptr inbounds double, double* %19953, i64 1
%19955 = load double, double* %19954
%19956 = fsub double %19952, %19955
%19957 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %19956, double* %19957
%19958 = load double*, double** %13
%19959 = getelementptr inbounds double, double* %19958, i64 2
%19960 = load double, double* %19959
%19961 = load double*, double** %9
%19962 = getelementptr inbounds double, double* %19961, i64 2
%19963 = load double, double* %19962
%19964 = fsub double %19960, %19963
%19965 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %19964, double* %19965
%19966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%19967 = load double, double* %19966
%19968 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%19969 = load double, double* %19968
%19970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%19971 = load double, double* %19970
%19972 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%19973 = load double, double* %19972
%19974 = fmul double %19971, %19973
%19975 = call double @llvm.fmuladd.f64(double %19967, double %19969, double %19974)
%19976 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%19977 = load double, double* %19976
%19978 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%19979 = load double, double* %19978
%19980 = call double @llvm.fmuladd.f64(double %19977, double %19979, double %19975)
%19981 = fcmp ogt double %19980, 0.000000e+00
br i1 %19981, label %19982, label %19983
19982: ; preds = %19857
store i32 0, i32* %7
br label %37464
19983: ; preds = %19857
store i32 1, i32* %7
br label %37464
19984: ; preds = %19728
%19985 = load double, double* %18
%19986 = fcmp olt double %19985, 0.000000e+00
br i1 %19986, label %19987, label %20240
19987: ; preds = %19984
%19988 = load double*, double** %13
%19989 = getelementptr inbounds double, double* %19988, i64 0
%19990 = load double, double* %19989
%19991 = load double*, double** %10
%19992 = getelementptr inbounds double, double* %19991, i64 0
%19993 = load double, double* %19992
%19994 = fsub double %19990, %19993
%19995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %19994, double* %19995
%19996 = load double*, double** %13
%19997 = getelementptr inbounds double, double* %19996, i64 1
%19998 = load double, double* %19997
%19999 = load double*, double** %10
%20000 = getelementptr inbounds double, double* %19999, i64 1
%20001 = load double, double* %20000
%20002 = fsub double %19998, %20001
%20003 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20002, double* %20003
%20004 = load double*, double** %13
%20005 = getelementptr inbounds double, double* %20004, i64 2
%20006 = load double, double* %20005
%20007 = load double*, double** %10
%20008 = getelementptr inbounds double, double* %20007, i64 2
%20009 = load double, double* %20008
%20010 = fsub double %20006, %20009
%20011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20010, double* %20011
%20012 = load double*, double** %9
%20013 = getelementptr inbounds double, double* %20012, i64 0
%20014 = load double, double* %20013
%20015 = load double*, double** %10
%20016 = getelementptr inbounds double, double* %20015, i64 0
%20017 = load double, double* %20016
%20018 = fsub double %20014, %20017
%20019 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20018, double* %20019
%20020 = load double*, double** %9
%20021 = getelementptr inbounds double, double* %20020, i64 1
%20022 = load double, double* %20021
%20023 = load double*, double** %10
%20024 = getelementptr inbounds double, double* %20023, i64 1
%20025 = load double, double* %20024
%20026 = fsub double %20022, %20025
%20027 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20026, double* %20027
%20028 = load double*, double** %9
%20029 = getelementptr inbounds double, double* %20028, i64 2
%20030 = load double, double* %20029
%20031 = load double*, double** %10
%20032 = getelementptr inbounds double, double* %20031, i64 2
%20033 = load double, double* %20032
%20034 = fsub double %20030, %20033
%20035 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20034, double* %20035
%20036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20037 = load double, double* %20036
%20038 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20039 = load double, double* %20038
%20040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20041 = load double, double* %20040
%20042 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20043 = load double, double* %20042
%20044 = fmul double %20041, %20043
%20045 = fneg double %20044
%20046 = call double @llvm.fmuladd.f64(double %20037, double %20039, double %20045)
%20047 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20046, double* %20047
%20048 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20049 = load double, double* %20048
%20050 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20051 = load double, double* %20050
%20052 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20053 = load double, double* %20052
%20054 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20055 = load double, double* %20054
%20056 = fmul double %20053, %20055
%20057 = fneg double %20056
%20058 = call double @llvm.fmuladd.f64(double %20049, double %20051, double %20057)
%20059 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20058, double* %20059
%20060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20061 = load double, double* %20060
%20062 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20063 = load double, double* %20062
%20064 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20065 = load double, double* %20064
%20066 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20067 = load double, double* %20066
%20068 = fmul double %20065, %20067
%20069 = fneg double %20068
%20070 = call double @llvm.fmuladd.f64(double %20061, double %20063, double %20069)
%20071 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20070, double* %20071
%20072 = load double*, double** %12
%20073 = getelementptr inbounds double, double* %20072, i64 0
%20074 = load double, double* %20073
%20075 = load double*, double** %10
%20076 = getelementptr inbounds double, double* %20075, i64 0
%20077 = load double, double* %20076
%20078 = fsub double %20074, %20077
%20079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20078, double* %20079
%20080 = load double*, double** %12
%20081 = getelementptr inbounds double, double* %20080, i64 1
%20082 = load double, double* %20081
%20083 = load double*, double** %10
%20084 = getelementptr inbounds double, double* %20083, i64 1
%20085 = load double, double* %20084
%20086 = fsub double %20082, %20085
%20087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20086, double* %20087
%20088 = load double*, double** %12
%20089 = getelementptr inbounds double, double* %20088, i64 2
%20090 = load double, double* %20089
%20091 = load double*, double** %10
%20092 = getelementptr inbounds double, double* %20091, i64 2
%20093 = load double, double* %20092
%20094 = fsub double %20090, %20093
%20095 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20094, double* %20095
%20096 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20097 = load double, double* %20096
%20098 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20099 = load double, double* %20098
%20100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20101 = load double, double* %20100
%20102 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20103 = load double, double* %20102
%20104 = fmul double %20101, %20103
%20105 = call double @llvm.fmuladd.f64(double %20097, double %20099, double %20104)
%20106 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20107 = load double, double* %20106
%20108 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20109 = load double, double* %20108
%20110 = call double @llvm.fmuladd.f64(double %20107, double %20109, double %20105)
%20111 = fcmp ogt double %20110, 0.000000e+00
br i1 %20111, label %20112, label %20113
20112: ; preds = %19987
store i32 0, i32* %7
br label %37464
20113: ; preds = %19987
%20114 = load double*, double** %13
%20115 = getelementptr inbounds double, double* %20114, i64 0
%20116 = load double, double* %20115
%20117 = load double*, double** %9
%20118 = getelementptr inbounds double, double* %20117, i64 0
%20119 = load double, double* %20118
%20120 = fsub double %20116, %20119
%20121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20120, double* %20121
%20122 = load double*, double** %13
%20123 = getelementptr inbounds double, double* %20122, i64 1
%20124 = load double, double* %20123
%20125 = load double*, double** %9
%20126 = getelementptr inbounds double, double* %20125, i64 1
%20127 = load double, double* %20126
%20128 = fsub double %20124, %20127
%20129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20128, double* %20129
%20130 = load double*, double** %13
%20131 = getelementptr inbounds double, double* %20130, i64 2
%20132 = load double, double* %20131
%20133 = load double*, double** %9
%20134 = getelementptr inbounds double, double* %20133, i64 2
%20135 = load double, double* %20134
%20136 = fsub double %20132, %20135
%20137 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20136, double* %20137
%20138 = load double*, double** %8
%20139 = getelementptr inbounds double, double* %20138, i64 0
%20140 = load double, double* %20139
%20141 = load double*, double** %9
%20142 = getelementptr inbounds double, double* %20141, i64 0
%20143 = load double, double* %20142
%20144 = fsub double %20140, %20143
%20145 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20144, double* %20145
%20146 = load double*, double** %8
%20147 = getelementptr inbounds double, double* %20146, i64 1
%20148 = load double, double* %20147
%20149 = load double*, double** %9
%20150 = getelementptr inbounds double, double* %20149, i64 1
%20151 = load double, double* %20150
%20152 = fsub double %20148, %20151
%20153 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20152, double* %20153
%20154 = load double*, double** %8
%20155 = getelementptr inbounds double, double* %20154, i64 2
%20156 = load double, double* %20155
%20157 = load double*, double** %9
%20158 = getelementptr inbounds double, double* %20157, i64 2
%20159 = load double, double* %20158
%20160 = fsub double %20156, %20159
%20161 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20160, double* %20161
%20162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20163 = load double, double* %20162
%20164 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20165 = load double, double* %20164
%20166 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20167 = load double, double* %20166
%20168 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20169 = load double, double* %20168
%20170 = fmul double %20167, %20169
%20171 = fneg double %20170
%20172 = call double @llvm.fmuladd.f64(double %20163, double %20165, double %20171)
%20173 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20172, double* %20173
%20174 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20175 = load double, double* %20174
%20176 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20177 = load double, double* %20176
%20178 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20179 = load double, double* %20178
%20180 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20181 = load double, double* %20180
%20182 = fmul double %20179, %20181
%20183 = fneg double %20182
%20184 = call double @llvm.fmuladd.f64(double %20175, double %20177, double %20183)
%20185 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20184, double* %20185
%20186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20187 = load double, double* %20186
%20188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20189 = load double, double* %20188
%20190 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20191 = load double, double* %20190
%20192 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20193 = load double, double* %20192
%20194 = fmul double %20191, %20193
%20195 = fneg double %20194
%20196 = call double @llvm.fmuladd.f64(double %20187, double %20189, double %20195)
%20197 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20196, double* %20197
%20198 = load double*, double** %11
%20199 = getelementptr inbounds double, double* %20198, i64 0
%20200 = load double, double* %20199
%20201 = load double*, double** %9
%20202 = getelementptr inbounds double, double* %20201, i64 0
%20203 = load double, double* %20202
%20204 = fsub double %20200, %20203
%20205 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20204, double* %20205
%20206 = load double*, double** %11
%20207 = getelementptr inbounds double, double* %20206, i64 1
%20208 = load double, double* %20207
%20209 = load double*, double** %9
%20210 = getelementptr inbounds double, double* %20209, i64 1
%20211 = load double, double* %20210
%20212 = fsub double %20208, %20211
%20213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20212, double* %20213
%20214 = load double*, double** %11
%20215 = getelementptr inbounds double, double* %20214, i64 2
%20216 = load double, double* %20215
%20217 = load double*, double** %9
%20218 = getelementptr inbounds double, double* %20217, i64 2
%20219 = load double, double* %20218
%20220 = fsub double %20216, %20219
%20221 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20220, double* %20221
%20222 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20223 = load double, double* %20222
%20224 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20225 = load double, double* %20224
%20226 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20227 = load double, double* %20226
%20228 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20229 = load double, double* %20228
%20230 = fmul double %20227, %20229
%20231 = call double @llvm.fmuladd.f64(double %20223, double %20225, double %20230)
%20232 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20233 = load double, double* %20232
%20234 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20235 = load double, double* %20234
%20236 = call double @llvm.fmuladd.f64(double %20233, double %20235, double %20231)
%20237 = fcmp ogt double %20236, 0.000000e+00
br i1 %20237, label %20238, label %20239
20238: ; preds = %20113
store i32 0, i32* %7
br label %37464
20239: ; preds = %20113
store i32 1, i32* %7
br label %37464
20240: ; preds = %19984
%20241 = load double*, double** %11
%20242 = getelementptr inbounds double, double* %20241, i64 0
%20243 = load double, double* %20242
%20244 = load double*, double** %8
%20245 = getelementptr inbounds double, double* %20244, i64 0
%20246 = load double, double* %20245
%20247 = fsub double %20243, %20246
%20248 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20247, double* %20248
%20249 = load double*, double** %11
%20250 = getelementptr inbounds double, double* %20249, i64 1
%20251 = load double, double* %20250
%20252 = load double*, double** %8
%20253 = getelementptr inbounds double, double* %20252, i64 1
%20254 = load double, double* %20253
%20255 = fsub double %20251, %20254
%20256 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20255, double* %20256
%20257 = load double*, double** %11
%20258 = getelementptr inbounds double, double* %20257, i64 2
%20259 = load double, double* %20258
%20260 = load double*, double** %8
%20261 = getelementptr inbounds double, double* %20260, i64 2
%20262 = load double, double* %20261
%20263 = fsub double %20259, %20262
%20264 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20263, double* %20264
%20265 = load double*, double** %9
%20266 = getelementptr inbounds double, double* %20265, i64 0
%20267 = load double, double* %20266
%20268 = load double*, double** %8
%20269 = getelementptr inbounds double, double* %20268, i64 0
%20270 = load double, double* %20269
%20271 = fsub double %20267, %20270
%20272 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20271, double* %20272
%20273 = load double*, double** %9
%20274 = getelementptr inbounds double, double* %20273, i64 1
%20275 = load double, double* %20274
%20276 = load double*, double** %8
%20277 = getelementptr inbounds double, double* %20276, i64 1
%20278 = load double, double* %20277
%20279 = fsub double %20275, %20278
%20280 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20279, double* %20280
%20281 = load double*, double** %9
%20282 = getelementptr inbounds double, double* %20281, i64 2
%20283 = load double, double* %20282
%20284 = load double*, double** %8
%20285 = getelementptr inbounds double, double* %20284, i64 2
%20286 = load double, double* %20285
%20287 = fsub double %20283, %20286
%20288 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20287, double* %20288
%20289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20290 = load double, double* %20289
%20291 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20292 = load double, double* %20291
%20293 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20294 = load double, double* %20293
%20295 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20296 = load double, double* %20295
%20297 = fmul double %20294, %20296
%20298 = fneg double %20297
%20299 = call double @llvm.fmuladd.f64(double %20290, double %20292, double %20298)
%20300 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20299, double* %20300
%20301 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20302 = load double, double* %20301
%20303 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20304 = load double, double* %20303
%20305 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20306 = load double, double* %20305
%20307 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20308 = load double, double* %20307
%20309 = fmul double %20306, %20308
%20310 = fneg double %20309
%20311 = call double @llvm.fmuladd.f64(double %20302, double %20304, double %20310)
%20312 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20311, double* %20312
%20313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20314 = load double, double* %20313
%20315 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20316 = load double, double* %20315
%20317 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20318 = load double, double* %20317
%20319 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20320 = load double, double* %20319
%20321 = fmul double %20318, %20320
%20322 = fneg double %20321
%20323 = call double @llvm.fmuladd.f64(double %20314, double %20316, double %20322)
%20324 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20323, double* %20324
%20325 = load double*, double** %13
%20326 = getelementptr inbounds double, double* %20325, i64 0
%20327 = load double, double* %20326
%20328 = load double*, double** %8
%20329 = getelementptr inbounds double, double* %20328, i64 0
%20330 = load double, double* %20329
%20331 = fsub double %20327, %20330
%20332 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20331, double* %20332
%20333 = load double*, double** %13
%20334 = getelementptr inbounds double, double* %20333, i64 1
%20335 = load double, double* %20334
%20336 = load double*, double** %8
%20337 = getelementptr inbounds double, double* %20336, i64 1
%20338 = load double, double* %20337
%20339 = fsub double %20335, %20338
%20340 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20339, double* %20340
%20341 = load double*, double** %13
%20342 = getelementptr inbounds double, double* %20341, i64 2
%20343 = load double, double* %20342
%20344 = load double*, double** %8
%20345 = getelementptr inbounds double, double* %20344, i64 2
%20346 = load double, double* %20345
%20347 = fsub double %20343, %20346
%20348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20347, double* %20348
%20349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20350 = load double, double* %20349
%20351 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20352 = load double, double* %20351
%20353 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20354 = load double, double* %20353
%20355 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20356 = load double, double* %20355
%20357 = fmul double %20354, %20356
%20358 = call double @llvm.fmuladd.f64(double %20350, double %20352, double %20357)
%20359 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20360 = load double, double* %20359
%20361 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20362 = load double, double* %20361
%20363 = call double @llvm.fmuladd.f64(double %20360, double %20362, double %20358)
%20364 = fcmp ogt double %20363, 0.000000e+00
br i1 %20364, label %20365, label %20366
20365: ; preds = %20240
store i32 0, i32* %7
br label %37464
20366: ; preds = %20240
%20367 = load double*, double** %11
%20368 = getelementptr inbounds double, double* %20367, i64 0
%20369 = load double, double* %20368
%20370 = load double*, double** %9
%20371 = getelementptr inbounds double, double* %20370, i64 0
%20372 = load double, double* %20371
%20373 = fsub double %20369, %20372
%20374 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20373, double* %20374
%20375 = load double*, double** %11
%20376 = getelementptr inbounds double, double* %20375, i64 1
%20377 = load double, double* %20376
%20378 = load double*, double** %9
%20379 = getelementptr inbounds double, double* %20378, i64 1
%20380 = load double, double* %20379
%20381 = fsub double %20377, %20380
%20382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20381, double* %20382
%20383 = load double*, double** %11
%20384 = getelementptr inbounds double, double* %20383, i64 2
%20385 = load double, double* %20384
%20386 = load double*, double** %9
%20387 = getelementptr inbounds double, double* %20386, i64 2
%20388 = load double, double* %20387
%20389 = fsub double %20385, %20388
%20390 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20389, double* %20390
%20391 = load double*, double** %10
%20392 = getelementptr inbounds double, double* %20391, i64 0
%20393 = load double, double* %20392
%20394 = load double*, double** %9
%20395 = getelementptr inbounds double, double* %20394, i64 0
%20396 = load double, double* %20395
%20397 = fsub double %20393, %20396
%20398 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20397, double* %20398
%20399 = load double*, double** %10
%20400 = getelementptr inbounds double, double* %20399, i64 1
%20401 = load double, double* %20400
%20402 = load double*, double** %9
%20403 = getelementptr inbounds double, double* %20402, i64 1
%20404 = load double, double* %20403
%20405 = fsub double %20401, %20404
%20406 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20405, double* %20406
%20407 = load double*, double** %10
%20408 = getelementptr inbounds double, double* %20407, i64 2
%20409 = load double, double* %20408
%20410 = load double*, double** %9
%20411 = getelementptr inbounds double, double* %20410, i64 2
%20412 = load double, double* %20411
%20413 = fsub double %20409, %20412
%20414 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20413, double* %20414
%20415 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20416 = load double, double* %20415
%20417 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20418 = load double, double* %20417
%20419 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20420 = load double, double* %20419
%20421 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20422 = load double, double* %20421
%20423 = fmul double %20420, %20422
%20424 = fneg double %20423
%20425 = call double @llvm.fmuladd.f64(double %20416, double %20418, double %20424)
%20426 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20425, double* %20426
%20427 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20428 = load double, double* %20427
%20429 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20430 = load double, double* %20429
%20431 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20432 = load double, double* %20431
%20433 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20434 = load double, double* %20433
%20435 = fmul double %20432, %20434
%20436 = fneg double %20435
%20437 = call double @llvm.fmuladd.f64(double %20428, double %20430, double %20436)
%20438 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20437, double* %20438
%20439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20440 = load double, double* %20439
%20441 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20442 = load double, double* %20441
%20443 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20444 = load double, double* %20443
%20445 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20446 = load double, double* %20445
%20447 = fmul double %20444, %20446
%20448 = fneg double %20447
%20449 = call double @llvm.fmuladd.f64(double %20440, double %20442, double %20448)
%20450 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20449, double* %20450
%20451 = load double*, double** %12
%20452 = getelementptr inbounds double, double* %20451, i64 0
%20453 = load double, double* %20452
%20454 = load double*, double** %9
%20455 = getelementptr inbounds double, double* %20454, i64 0
%20456 = load double, double* %20455
%20457 = fsub double %20453, %20456
%20458 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20457, double* %20458
%20459 = load double*, double** %12
%20460 = getelementptr inbounds double, double* %20459, i64 1
%20461 = load double, double* %20460
%20462 = load double*, double** %9
%20463 = getelementptr inbounds double, double* %20462, i64 1
%20464 = load double, double* %20463
%20465 = fsub double %20461, %20464
%20466 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20465, double* %20466
%20467 = load double*, double** %12
%20468 = getelementptr inbounds double, double* %20467, i64 2
%20469 = load double, double* %20468
%20470 = load double*, double** %9
%20471 = getelementptr inbounds double, double* %20470, i64 2
%20472 = load double, double* %20471
%20473 = fsub double %20469, %20472
%20474 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20473, double* %20474
%20475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20476 = load double, double* %20475
%20477 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20478 = load double, double* %20477
%20479 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20480 = load double, double* %20479
%20481 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20482 = load double, double* %20481
%20483 = fmul double %20480, %20482
%20484 = call double @llvm.fmuladd.f64(double %20476, double %20478, double %20483)
%20485 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20486 = load double, double* %20485
%20487 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20488 = load double, double* %20487
%20489 = call double @llvm.fmuladd.f64(double %20486, double %20488, double %20484)
%20490 = fcmp ogt double %20489, 0.000000e+00
br i1 %20490, label %20491, label %20492
20491: ; preds = %20366
store i32 0, i32* %7
br label %37464
20492: ; preds = %20366
store i32 1, i32* %7
br label %37464
20493: ; preds = %19725
%20494 = load double, double* %19
%20495 = fcmp olt double %20494, 0.000000e+00
br i1 %20495, label %20496, label %21005
20496: ; preds = %20493
%20497 = load double, double* %18
%20498 = fcmp oge double %20497, 0.000000e+00
br i1 %20498, label %20499, label %20752
20499: ; preds = %20496
%20500 = load double*, double** %13
%20501 = getelementptr inbounds double, double* %20500, i64 0
%20502 = load double, double* %20501
%20503 = load double*, double** %8
%20504 = getelementptr inbounds double, double* %20503, i64 0
%20505 = load double, double* %20504
%20506 = fsub double %20502, %20505
%20507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20506, double* %20507
%20508 = load double*, double** %13
%20509 = getelementptr inbounds double, double* %20508, i64 1
%20510 = load double, double* %20509
%20511 = load double*, double** %8
%20512 = getelementptr inbounds double, double* %20511, i64 1
%20513 = load double, double* %20512
%20514 = fsub double %20510, %20513
%20515 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20514, double* %20515
%20516 = load double*, double** %13
%20517 = getelementptr inbounds double, double* %20516, i64 2
%20518 = load double, double* %20517
%20519 = load double*, double** %8
%20520 = getelementptr inbounds double, double* %20519, i64 2
%20521 = load double, double* %20520
%20522 = fsub double %20518, %20521
%20523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20522, double* %20523
%20524 = load double*, double** %9
%20525 = getelementptr inbounds double, double* %20524, i64 0
%20526 = load double, double* %20525
%20527 = load double*, double** %8
%20528 = getelementptr inbounds double, double* %20527, i64 0
%20529 = load double, double* %20528
%20530 = fsub double %20526, %20529
%20531 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20530, double* %20531
%20532 = load double*, double** %9
%20533 = getelementptr inbounds double, double* %20532, i64 1
%20534 = load double, double* %20533
%20535 = load double*, double** %8
%20536 = getelementptr inbounds double, double* %20535, i64 1
%20537 = load double, double* %20536
%20538 = fsub double %20534, %20537
%20539 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20538, double* %20539
%20540 = load double*, double** %9
%20541 = getelementptr inbounds double, double* %20540, i64 2
%20542 = load double, double* %20541
%20543 = load double*, double** %8
%20544 = getelementptr inbounds double, double* %20543, i64 2
%20545 = load double, double* %20544
%20546 = fsub double %20542, %20545
%20547 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20546, double* %20547
%20548 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20549 = load double, double* %20548
%20550 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20551 = load double, double* %20550
%20552 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20553 = load double, double* %20552
%20554 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20555 = load double, double* %20554
%20556 = fmul double %20553, %20555
%20557 = fneg double %20556
%20558 = call double @llvm.fmuladd.f64(double %20549, double %20551, double %20557)
%20559 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20558, double* %20559
%20560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20561 = load double, double* %20560
%20562 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20563 = load double, double* %20562
%20564 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20565 = load double, double* %20564
%20566 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20567 = load double, double* %20566
%20568 = fmul double %20565, %20567
%20569 = fneg double %20568
%20570 = call double @llvm.fmuladd.f64(double %20561, double %20563, double %20569)
%20571 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20570, double* %20571
%20572 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20573 = load double, double* %20572
%20574 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20575 = load double, double* %20574
%20576 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20577 = load double, double* %20576
%20578 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20579 = load double, double* %20578
%20580 = fmul double %20577, %20579
%20581 = fneg double %20580
%20582 = call double @llvm.fmuladd.f64(double %20573, double %20575, double %20581)
%20583 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20582, double* %20583
%20584 = load double*, double** %12
%20585 = getelementptr inbounds double, double* %20584, i64 0
%20586 = load double, double* %20585
%20587 = load double*, double** %8
%20588 = getelementptr inbounds double, double* %20587, i64 0
%20589 = load double, double* %20588
%20590 = fsub double %20586, %20589
%20591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20590, double* %20591
%20592 = load double*, double** %12
%20593 = getelementptr inbounds double, double* %20592, i64 1
%20594 = load double, double* %20593
%20595 = load double*, double** %8
%20596 = getelementptr inbounds double, double* %20595, i64 1
%20597 = load double, double* %20596
%20598 = fsub double %20594, %20597
%20599 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20598, double* %20599
%20600 = load double*, double** %12
%20601 = getelementptr inbounds double, double* %20600, i64 2
%20602 = load double, double* %20601
%20603 = load double*, double** %8
%20604 = getelementptr inbounds double, double* %20603, i64 2
%20605 = load double, double* %20604
%20606 = fsub double %20602, %20605
%20607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20606, double* %20607
%20608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20609 = load double, double* %20608
%20610 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20611 = load double, double* %20610
%20612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20613 = load double, double* %20612
%20614 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20615 = load double, double* %20614
%20616 = fmul double %20613, %20615
%20617 = call double @llvm.fmuladd.f64(double %20609, double %20611, double %20616)
%20618 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20619 = load double, double* %20618
%20620 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20621 = load double, double* %20620
%20622 = call double @llvm.fmuladd.f64(double %20619, double %20621, double %20617)
%20623 = fcmp ogt double %20622, 0.000000e+00
br i1 %20623, label %20624, label %20625
20624: ; preds = %20499
store i32 0, i32* %7
br label %37464
20625: ; preds = %20499
%20626 = load double*, double** %13
%20627 = getelementptr inbounds double, double* %20626, i64 0
%20628 = load double, double* %20627
%20629 = load double*, double** %9
%20630 = getelementptr inbounds double, double* %20629, i64 0
%20631 = load double, double* %20630
%20632 = fsub double %20628, %20631
%20633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20632, double* %20633
%20634 = load double*, double** %13
%20635 = getelementptr inbounds double, double* %20634, i64 1
%20636 = load double, double* %20635
%20637 = load double*, double** %9
%20638 = getelementptr inbounds double, double* %20637, i64 1
%20639 = load double, double* %20638
%20640 = fsub double %20636, %20639
%20641 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20640, double* %20641
%20642 = load double*, double** %13
%20643 = getelementptr inbounds double, double* %20642, i64 2
%20644 = load double, double* %20643
%20645 = load double*, double** %9
%20646 = getelementptr inbounds double, double* %20645, i64 2
%20647 = load double, double* %20646
%20648 = fsub double %20644, %20647
%20649 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20648, double* %20649
%20650 = load double*, double** %10
%20651 = getelementptr inbounds double, double* %20650, i64 0
%20652 = load double, double* %20651
%20653 = load double*, double** %9
%20654 = getelementptr inbounds double, double* %20653, i64 0
%20655 = load double, double* %20654
%20656 = fsub double %20652, %20655
%20657 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20656, double* %20657
%20658 = load double*, double** %10
%20659 = getelementptr inbounds double, double* %20658, i64 1
%20660 = load double, double* %20659
%20661 = load double*, double** %9
%20662 = getelementptr inbounds double, double* %20661, i64 1
%20663 = load double, double* %20662
%20664 = fsub double %20660, %20663
%20665 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20664, double* %20665
%20666 = load double*, double** %10
%20667 = getelementptr inbounds double, double* %20666, i64 2
%20668 = load double, double* %20667
%20669 = load double*, double** %9
%20670 = getelementptr inbounds double, double* %20669, i64 2
%20671 = load double, double* %20670
%20672 = fsub double %20668, %20671
%20673 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20672, double* %20673
%20674 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20675 = load double, double* %20674
%20676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20677 = load double, double* %20676
%20678 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20679 = load double, double* %20678
%20680 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20681 = load double, double* %20680
%20682 = fmul double %20679, %20681
%20683 = fneg double %20682
%20684 = call double @llvm.fmuladd.f64(double %20675, double %20677, double %20683)
%20685 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20684, double* %20685
%20686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20687 = load double, double* %20686
%20688 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20689 = load double, double* %20688
%20690 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20691 = load double, double* %20690
%20692 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20693 = load double, double* %20692
%20694 = fmul double %20691, %20693
%20695 = fneg double %20694
%20696 = call double @llvm.fmuladd.f64(double %20687, double %20689, double %20695)
%20697 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20696, double* %20697
%20698 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20699 = load double, double* %20698
%20700 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20701 = load double, double* %20700
%20702 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20703 = load double, double* %20702
%20704 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20705 = load double, double* %20704
%20706 = fmul double %20703, %20705
%20707 = fneg double %20706
%20708 = call double @llvm.fmuladd.f64(double %20699, double %20701, double %20707)
%20709 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20708, double* %20709
%20710 = load double*, double** %11
%20711 = getelementptr inbounds double, double* %20710, i64 0
%20712 = load double, double* %20711
%20713 = load double*, double** %9
%20714 = getelementptr inbounds double, double* %20713, i64 0
%20715 = load double, double* %20714
%20716 = fsub double %20712, %20715
%20717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20716, double* %20717
%20718 = load double*, double** %11
%20719 = getelementptr inbounds double, double* %20718, i64 1
%20720 = load double, double* %20719
%20721 = load double*, double** %9
%20722 = getelementptr inbounds double, double* %20721, i64 1
%20723 = load double, double* %20722
%20724 = fsub double %20720, %20723
%20725 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20724, double* %20725
%20726 = load double*, double** %11
%20727 = getelementptr inbounds double, double* %20726, i64 2
%20728 = load double, double* %20727
%20729 = load double*, double** %9
%20730 = getelementptr inbounds double, double* %20729, i64 2
%20731 = load double, double* %20730
%20732 = fsub double %20728, %20731
%20733 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20732, double* %20733
%20734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20735 = load double, double* %20734
%20736 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20737 = load double, double* %20736
%20738 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20739 = load double, double* %20738
%20740 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20741 = load double, double* %20740
%20742 = fmul double %20739, %20741
%20743 = call double @llvm.fmuladd.f64(double %20735, double %20737, double %20742)
%20744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20745 = load double, double* %20744
%20746 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20747 = load double, double* %20746
%20748 = call double @llvm.fmuladd.f64(double %20745, double %20747, double %20743)
%20749 = fcmp ogt double %20748, 0.000000e+00
br i1 %20749, label %20750, label %20751
20750: ; preds = %20625
store i32 0, i32* %7
br label %37464
20751: ; preds = %20625
store i32 1, i32* %7
br label %37464
20752: ; preds = %20496
%20753 = load double*, double** %11
%20754 = getelementptr inbounds double, double* %20753, i64 0
%20755 = load double, double* %20754
%20756 = load double*, double** %10
%20757 = getelementptr inbounds double, double* %20756, i64 0
%20758 = load double, double* %20757
%20759 = fsub double %20755, %20758
%20760 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20759, double* %20760
%20761 = load double*, double** %11
%20762 = getelementptr inbounds double, double* %20761, i64 1
%20763 = load double, double* %20762
%20764 = load double*, double** %10
%20765 = getelementptr inbounds double, double* %20764, i64 1
%20766 = load double, double* %20765
%20767 = fsub double %20763, %20766
%20768 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20767, double* %20768
%20769 = load double*, double** %11
%20770 = getelementptr inbounds double, double* %20769, i64 2
%20771 = load double, double* %20770
%20772 = load double*, double** %10
%20773 = getelementptr inbounds double, double* %20772, i64 2
%20774 = load double, double* %20773
%20775 = fsub double %20771, %20774
%20776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20775, double* %20776
%20777 = load double*, double** %9
%20778 = getelementptr inbounds double, double* %20777, i64 0
%20779 = load double, double* %20778
%20780 = load double*, double** %10
%20781 = getelementptr inbounds double, double* %20780, i64 0
%20782 = load double, double* %20781
%20783 = fsub double %20779, %20782
%20784 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20783, double* %20784
%20785 = load double*, double** %9
%20786 = getelementptr inbounds double, double* %20785, i64 1
%20787 = load double, double* %20786
%20788 = load double*, double** %10
%20789 = getelementptr inbounds double, double* %20788, i64 1
%20790 = load double, double* %20789
%20791 = fsub double %20787, %20790
%20792 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20791, double* %20792
%20793 = load double*, double** %9
%20794 = getelementptr inbounds double, double* %20793, i64 2
%20795 = load double, double* %20794
%20796 = load double*, double** %10
%20797 = getelementptr inbounds double, double* %20796, i64 2
%20798 = load double, double* %20797
%20799 = fsub double %20795, %20798
%20800 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20799, double* %20800
%20801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20802 = load double, double* %20801
%20803 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20804 = load double, double* %20803
%20805 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20806 = load double, double* %20805
%20807 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20808 = load double, double* %20807
%20809 = fmul double %20806, %20808
%20810 = fneg double %20809
%20811 = call double @llvm.fmuladd.f64(double %20802, double %20804, double %20810)
%20812 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20811, double* %20812
%20813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20814 = load double, double* %20813
%20815 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20816 = load double, double* %20815
%20817 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20818 = load double, double* %20817
%20819 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20820 = load double, double* %20819
%20821 = fmul double %20818, %20820
%20822 = fneg double %20821
%20823 = call double @llvm.fmuladd.f64(double %20814, double %20816, double %20822)
%20824 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20823, double* %20824
%20825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20826 = load double, double* %20825
%20827 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20828 = load double, double* %20827
%20829 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20830 = load double, double* %20829
%20831 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20832 = load double, double* %20831
%20833 = fmul double %20830, %20832
%20834 = fneg double %20833
%20835 = call double @llvm.fmuladd.f64(double %20826, double %20828, double %20834)
%20836 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20835, double* %20836
%20837 = load double*, double** %13
%20838 = getelementptr inbounds double, double* %20837, i64 0
%20839 = load double, double* %20838
%20840 = load double*, double** %10
%20841 = getelementptr inbounds double, double* %20840, i64 0
%20842 = load double, double* %20841
%20843 = fsub double %20839, %20842
%20844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20843, double* %20844
%20845 = load double*, double** %13
%20846 = getelementptr inbounds double, double* %20845, i64 1
%20847 = load double, double* %20846
%20848 = load double*, double** %10
%20849 = getelementptr inbounds double, double* %20848, i64 1
%20850 = load double, double* %20849
%20851 = fsub double %20847, %20850
%20852 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20851, double* %20852
%20853 = load double*, double** %13
%20854 = getelementptr inbounds double, double* %20853, i64 2
%20855 = load double, double* %20854
%20856 = load double*, double** %10
%20857 = getelementptr inbounds double, double* %20856, i64 2
%20858 = load double, double* %20857
%20859 = fsub double %20855, %20858
%20860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20859, double* %20860
%20861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20862 = load double, double* %20861
%20863 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20864 = load double, double* %20863
%20865 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20866 = load double, double* %20865
%20867 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20868 = load double, double* %20867
%20869 = fmul double %20866, %20868
%20870 = call double @llvm.fmuladd.f64(double %20862, double %20864, double %20869)
%20871 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20872 = load double, double* %20871
%20873 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%20874 = load double, double* %20873
%20875 = call double @llvm.fmuladd.f64(double %20872, double %20874, double %20870)
%20876 = fcmp ogt double %20875, 0.000000e+00
br i1 %20876, label %20877, label %20878
20877: ; preds = %20752
store i32 0, i32* %7
br label %37464
20878: ; preds = %20752
%20879 = load double*, double** %11
%20880 = getelementptr inbounds double, double* %20879, i64 0
%20881 = load double, double* %20880
%20882 = load double*, double** %9
%20883 = getelementptr inbounds double, double* %20882, i64 0
%20884 = load double, double* %20883
%20885 = fsub double %20881, %20884
%20886 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20885, double* %20886
%20887 = load double*, double** %11
%20888 = getelementptr inbounds double, double* %20887, i64 1
%20889 = load double, double* %20888
%20890 = load double*, double** %9
%20891 = getelementptr inbounds double, double* %20890, i64 1
%20892 = load double, double* %20891
%20893 = fsub double %20889, %20892
%20894 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20893, double* %20894
%20895 = load double*, double** %11
%20896 = getelementptr inbounds double, double* %20895, i64 2
%20897 = load double, double* %20896
%20898 = load double*, double** %9
%20899 = getelementptr inbounds double, double* %20898, i64 2
%20900 = load double, double* %20899
%20901 = fsub double %20897, %20900
%20902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20901, double* %20902
%20903 = load double*, double** %8
%20904 = getelementptr inbounds double, double* %20903, i64 0
%20905 = load double, double* %20904
%20906 = load double*, double** %9
%20907 = getelementptr inbounds double, double* %20906, i64 0
%20908 = load double, double* %20907
%20909 = fsub double %20905, %20908
%20910 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %20909, double* %20910
%20911 = load double*, double** %8
%20912 = getelementptr inbounds double, double* %20911, i64 1
%20913 = load double, double* %20912
%20914 = load double*, double** %9
%20915 = getelementptr inbounds double, double* %20914, i64 1
%20916 = load double, double* %20915
%20917 = fsub double %20913, %20916
%20918 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %20917, double* %20918
%20919 = load double*, double** %8
%20920 = getelementptr inbounds double, double* %20919, i64 2
%20921 = load double, double* %20920
%20922 = load double*, double** %9
%20923 = getelementptr inbounds double, double* %20922, i64 2
%20924 = load double, double* %20923
%20925 = fsub double %20921, %20924
%20926 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %20925, double* %20926
%20927 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20928 = load double, double* %20927
%20929 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20930 = load double, double* %20929
%20931 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20932 = load double, double* %20931
%20933 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20934 = load double, double* %20933
%20935 = fmul double %20932, %20934
%20936 = fneg double %20935
%20937 = call double @llvm.fmuladd.f64(double %20928, double %20930, double %20936)
%20938 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %20937, double* %20938
%20939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20940 = load double, double* %20939
%20941 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20942 = load double, double* %20941
%20943 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20944 = load double, double* %20943
%20945 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%20946 = load double, double* %20945
%20947 = fmul double %20944, %20946
%20948 = fneg double %20947
%20949 = call double @llvm.fmuladd.f64(double %20940, double %20942, double %20948)
%20950 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %20949, double* %20950
%20951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20952 = load double, double* %20951
%20953 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%20954 = load double, double* %20953
%20955 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20956 = load double, double* %20955
%20957 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%20958 = load double, double* %20957
%20959 = fmul double %20956, %20958
%20960 = fneg double %20959
%20961 = call double @llvm.fmuladd.f64(double %20952, double %20954, double %20960)
%20962 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %20961, double* %20962
%20963 = load double*, double** %12
%20964 = getelementptr inbounds double, double* %20963, i64 0
%20965 = load double, double* %20964
%20966 = load double*, double** %9
%20967 = getelementptr inbounds double, double* %20966, i64 0
%20968 = load double, double* %20967
%20969 = fsub double %20965, %20968
%20970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %20969, double* %20970
%20971 = load double*, double** %12
%20972 = getelementptr inbounds double, double* %20971, i64 1
%20973 = load double, double* %20972
%20974 = load double*, double** %9
%20975 = getelementptr inbounds double, double* %20974, i64 1
%20976 = load double, double* %20975
%20977 = fsub double %20973, %20976
%20978 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %20977, double* %20978
%20979 = load double*, double** %12
%20980 = getelementptr inbounds double, double* %20979, i64 2
%20981 = load double, double* %20980
%20982 = load double*, double** %9
%20983 = getelementptr inbounds double, double* %20982, i64 2
%20984 = load double, double* %20983
%20985 = fsub double %20981, %20984
%20986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %20985, double* %20986
%20987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%20988 = load double, double* %20987
%20989 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%20990 = load double, double* %20989
%20991 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%20992 = load double, double* %20991
%20993 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%20994 = load double, double* %20993
%20995 = fmul double %20992, %20994
%20996 = call double @llvm.fmuladd.f64(double %20988, double %20990, double %20995)
%20997 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%20998 = load double, double* %20997
%20999 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21000 = load double, double* %20999
%21001 = call double @llvm.fmuladd.f64(double %20998, double %21000, double %20996)
%21002 = fcmp ogt double %21001, 0.000000e+00
br i1 %21002, label %21003, label %21004
21003: ; preds = %20878
store i32 0, i32* %7
br label %37464
21004: ; preds = %20878
store i32 1, i32* %7
br label %37464
21005: ; preds = %20493
%21006 = load double, double* %19
%21007 = fcmp ogt double %21006, 0.000000e+00
br i1 %21007, label %21008, label %21517
21008: ; preds = %21005
%21009 = load double, double* %18
%21010 = fcmp ogt double %21009, 0.000000e+00
br i1 %21010, label %21011, label %21264
21011: ; preds = %21008
%21012 = load double*, double** %11
%21013 = getelementptr inbounds double, double* %21012, i64 0
%21014 = load double, double* %21013
%21015 = load double*, double** %8
%21016 = getelementptr inbounds double, double* %21015, i64 0
%21017 = load double, double* %21016
%21018 = fsub double %21014, %21017
%21019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21018, double* %21019
%21020 = load double*, double** %11
%21021 = getelementptr inbounds double, double* %21020, i64 1
%21022 = load double, double* %21021
%21023 = load double*, double** %8
%21024 = getelementptr inbounds double, double* %21023, i64 1
%21025 = load double, double* %21024
%21026 = fsub double %21022, %21025
%21027 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21026, double* %21027
%21028 = load double*, double** %11
%21029 = getelementptr inbounds double, double* %21028, i64 2
%21030 = load double, double* %21029
%21031 = load double*, double** %8
%21032 = getelementptr inbounds double, double* %21031, i64 2
%21033 = load double, double* %21032
%21034 = fsub double %21030, %21033
%21035 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21034, double* %21035
%21036 = load double*, double** %9
%21037 = getelementptr inbounds double, double* %21036, i64 0
%21038 = load double, double* %21037
%21039 = load double*, double** %8
%21040 = getelementptr inbounds double, double* %21039, i64 0
%21041 = load double, double* %21040
%21042 = fsub double %21038, %21041
%21043 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21042, double* %21043
%21044 = load double*, double** %9
%21045 = getelementptr inbounds double, double* %21044, i64 1
%21046 = load double, double* %21045
%21047 = load double*, double** %8
%21048 = getelementptr inbounds double, double* %21047, i64 1
%21049 = load double, double* %21048
%21050 = fsub double %21046, %21049
%21051 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21050, double* %21051
%21052 = load double*, double** %9
%21053 = getelementptr inbounds double, double* %21052, i64 2
%21054 = load double, double* %21053
%21055 = load double*, double** %8
%21056 = getelementptr inbounds double, double* %21055, i64 2
%21057 = load double, double* %21056
%21058 = fsub double %21054, %21057
%21059 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21058, double* %21059
%21060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21061 = load double, double* %21060
%21062 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21063 = load double, double* %21062
%21064 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21065 = load double, double* %21064
%21066 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21067 = load double, double* %21066
%21068 = fmul double %21065, %21067
%21069 = fneg double %21068
%21070 = call double @llvm.fmuladd.f64(double %21061, double %21063, double %21069)
%21071 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21070, double* %21071
%21072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21073 = load double, double* %21072
%21074 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21075 = load double, double* %21074
%21076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21077 = load double, double* %21076
%21078 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21079 = load double, double* %21078
%21080 = fmul double %21077, %21079
%21081 = fneg double %21080
%21082 = call double @llvm.fmuladd.f64(double %21073, double %21075, double %21081)
%21083 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21082, double* %21083
%21084 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21085 = load double, double* %21084
%21086 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21087 = load double, double* %21086
%21088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21089 = load double, double* %21088
%21090 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21091 = load double, double* %21090
%21092 = fmul double %21089, %21091
%21093 = fneg double %21092
%21094 = call double @llvm.fmuladd.f64(double %21085, double %21087, double %21093)
%21095 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21094, double* %21095
%21096 = load double*, double** %13
%21097 = getelementptr inbounds double, double* %21096, i64 0
%21098 = load double, double* %21097
%21099 = load double*, double** %8
%21100 = getelementptr inbounds double, double* %21099, i64 0
%21101 = load double, double* %21100
%21102 = fsub double %21098, %21101
%21103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21102, double* %21103
%21104 = load double*, double** %13
%21105 = getelementptr inbounds double, double* %21104, i64 1
%21106 = load double, double* %21105
%21107 = load double*, double** %8
%21108 = getelementptr inbounds double, double* %21107, i64 1
%21109 = load double, double* %21108
%21110 = fsub double %21106, %21109
%21111 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21110, double* %21111
%21112 = load double*, double** %13
%21113 = getelementptr inbounds double, double* %21112, i64 2
%21114 = load double, double* %21113
%21115 = load double*, double** %8
%21116 = getelementptr inbounds double, double* %21115, i64 2
%21117 = load double, double* %21116
%21118 = fsub double %21114, %21117
%21119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21118, double* %21119
%21120 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21121 = load double, double* %21120
%21122 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21123 = load double, double* %21122
%21124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21125 = load double, double* %21124
%21126 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21127 = load double, double* %21126
%21128 = fmul double %21125, %21127
%21129 = call double @llvm.fmuladd.f64(double %21121, double %21123, double %21128)
%21130 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21131 = load double, double* %21130
%21132 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21133 = load double, double* %21132
%21134 = call double @llvm.fmuladd.f64(double %21131, double %21133, double %21129)
%21135 = fcmp ogt double %21134, 0.000000e+00
br i1 %21135, label %21136, label %21137
21136: ; preds = %21011
store i32 0, i32* %7
br label %37464
21137: ; preds = %21011
%21138 = load double*, double** %11
%21139 = getelementptr inbounds double, double* %21138, i64 0
%21140 = load double, double* %21139
%21141 = load double*, double** %9
%21142 = getelementptr inbounds double, double* %21141, i64 0
%21143 = load double, double* %21142
%21144 = fsub double %21140, %21143
%21145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21144, double* %21145
%21146 = load double*, double** %11
%21147 = getelementptr inbounds double, double* %21146, i64 1
%21148 = load double, double* %21147
%21149 = load double*, double** %9
%21150 = getelementptr inbounds double, double* %21149, i64 1
%21151 = load double, double* %21150
%21152 = fsub double %21148, %21151
%21153 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21152, double* %21153
%21154 = load double*, double** %11
%21155 = getelementptr inbounds double, double* %21154, i64 2
%21156 = load double, double* %21155
%21157 = load double*, double** %9
%21158 = getelementptr inbounds double, double* %21157, i64 2
%21159 = load double, double* %21158
%21160 = fsub double %21156, %21159
%21161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21160, double* %21161
%21162 = load double*, double** %10
%21163 = getelementptr inbounds double, double* %21162, i64 0
%21164 = load double, double* %21163
%21165 = load double*, double** %9
%21166 = getelementptr inbounds double, double* %21165, i64 0
%21167 = load double, double* %21166
%21168 = fsub double %21164, %21167
%21169 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21168, double* %21169
%21170 = load double*, double** %10
%21171 = getelementptr inbounds double, double* %21170, i64 1
%21172 = load double, double* %21171
%21173 = load double*, double** %9
%21174 = getelementptr inbounds double, double* %21173, i64 1
%21175 = load double, double* %21174
%21176 = fsub double %21172, %21175
%21177 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21176, double* %21177
%21178 = load double*, double** %10
%21179 = getelementptr inbounds double, double* %21178, i64 2
%21180 = load double, double* %21179
%21181 = load double*, double** %9
%21182 = getelementptr inbounds double, double* %21181, i64 2
%21183 = load double, double* %21182
%21184 = fsub double %21180, %21183
%21185 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21184, double* %21185
%21186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21187 = load double, double* %21186
%21188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21189 = load double, double* %21188
%21190 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21191 = load double, double* %21190
%21192 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21193 = load double, double* %21192
%21194 = fmul double %21191, %21193
%21195 = fneg double %21194
%21196 = call double @llvm.fmuladd.f64(double %21187, double %21189, double %21195)
%21197 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21196, double* %21197
%21198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21199 = load double, double* %21198
%21200 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21201 = load double, double* %21200
%21202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21203 = load double, double* %21202
%21204 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21205 = load double, double* %21204
%21206 = fmul double %21203, %21205
%21207 = fneg double %21206
%21208 = call double @llvm.fmuladd.f64(double %21199, double %21201, double %21207)
%21209 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21208, double* %21209
%21210 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21211 = load double, double* %21210
%21212 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21213 = load double, double* %21212
%21214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21215 = load double, double* %21214
%21216 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21217 = load double, double* %21216
%21218 = fmul double %21215, %21217
%21219 = fneg double %21218
%21220 = call double @llvm.fmuladd.f64(double %21211, double %21213, double %21219)
%21221 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21220, double* %21221
%21222 = load double*, double** %12
%21223 = getelementptr inbounds double, double* %21222, i64 0
%21224 = load double, double* %21223
%21225 = load double*, double** %9
%21226 = getelementptr inbounds double, double* %21225, i64 0
%21227 = load double, double* %21226
%21228 = fsub double %21224, %21227
%21229 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21228, double* %21229
%21230 = load double*, double** %12
%21231 = getelementptr inbounds double, double* %21230, i64 1
%21232 = load double, double* %21231
%21233 = load double*, double** %9
%21234 = getelementptr inbounds double, double* %21233, i64 1
%21235 = load double, double* %21234
%21236 = fsub double %21232, %21235
%21237 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21236, double* %21237
%21238 = load double*, double** %12
%21239 = getelementptr inbounds double, double* %21238, i64 2
%21240 = load double, double* %21239
%21241 = load double*, double** %9
%21242 = getelementptr inbounds double, double* %21241, i64 2
%21243 = load double, double* %21242
%21244 = fsub double %21240, %21243
%21245 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21244, double* %21245
%21246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21247 = load double, double* %21246
%21248 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21249 = load double, double* %21248
%21250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21251 = load double, double* %21250
%21252 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21253 = load double, double* %21252
%21254 = fmul double %21251, %21253
%21255 = call double @llvm.fmuladd.f64(double %21247, double %21249, double %21254)
%21256 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21257 = load double, double* %21256
%21258 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21259 = load double, double* %21258
%21260 = call double @llvm.fmuladd.f64(double %21257, double %21259, double %21255)
%21261 = fcmp ogt double %21260, 0.000000e+00
br i1 %21261, label %21262, label %21263
21262: ; preds = %21137
store i32 0, i32* %7
br label %37464
21263: ; preds = %21137
store i32 1, i32* %7
br label %37464
21264: ; preds = %21008
%21265 = load double*, double** %13
%21266 = getelementptr inbounds double, double* %21265, i64 0
%21267 = load double, double* %21266
%21268 = load double*, double** %10
%21269 = getelementptr inbounds double, double* %21268, i64 0
%21270 = load double, double* %21269
%21271 = fsub double %21267, %21270
%21272 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21271, double* %21272
%21273 = load double*, double** %13
%21274 = getelementptr inbounds double, double* %21273, i64 1
%21275 = load double, double* %21274
%21276 = load double*, double** %10
%21277 = getelementptr inbounds double, double* %21276, i64 1
%21278 = load double, double* %21277
%21279 = fsub double %21275, %21278
%21280 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21279, double* %21280
%21281 = load double*, double** %13
%21282 = getelementptr inbounds double, double* %21281, i64 2
%21283 = load double, double* %21282
%21284 = load double*, double** %10
%21285 = getelementptr inbounds double, double* %21284, i64 2
%21286 = load double, double* %21285
%21287 = fsub double %21283, %21286
%21288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21287, double* %21288
%21289 = load double*, double** %9
%21290 = getelementptr inbounds double, double* %21289, i64 0
%21291 = load double, double* %21290
%21292 = load double*, double** %10
%21293 = getelementptr inbounds double, double* %21292, i64 0
%21294 = load double, double* %21293
%21295 = fsub double %21291, %21294
%21296 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21295, double* %21296
%21297 = load double*, double** %9
%21298 = getelementptr inbounds double, double* %21297, i64 1
%21299 = load double, double* %21298
%21300 = load double*, double** %10
%21301 = getelementptr inbounds double, double* %21300, i64 1
%21302 = load double, double* %21301
%21303 = fsub double %21299, %21302
%21304 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21303, double* %21304
%21305 = load double*, double** %9
%21306 = getelementptr inbounds double, double* %21305, i64 2
%21307 = load double, double* %21306
%21308 = load double*, double** %10
%21309 = getelementptr inbounds double, double* %21308, i64 2
%21310 = load double, double* %21309
%21311 = fsub double %21307, %21310
%21312 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21311, double* %21312
%21313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21314 = load double, double* %21313
%21315 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21316 = load double, double* %21315
%21317 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21318 = load double, double* %21317
%21319 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21320 = load double, double* %21319
%21321 = fmul double %21318, %21320
%21322 = fneg double %21321
%21323 = call double @llvm.fmuladd.f64(double %21314, double %21316, double %21322)
%21324 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21323, double* %21324
%21325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21326 = load double, double* %21325
%21327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21328 = load double, double* %21327
%21329 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21330 = load double, double* %21329
%21331 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21332 = load double, double* %21331
%21333 = fmul double %21330, %21332
%21334 = fneg double %21333
%21335 = call double @llvm.fmuladd.f64(double %21326, double %21328, double %21334)
%21336 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21335, double* %21336
%21337 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21338 = load double, double* %21337
%21339 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21340 = load double, double* %21339
%21341 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21342 = load double, double* %21341
%21343 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21344 = load double, double* %21343
%21345 = fmul double %21342, %21344
%21346 = fneg double %21345
%21347 = call double @llvm.fmuladd.f64(double %21338, double %21340, double %21346)
%21348 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21347, double* %21348
%21349 = load double*, double** %12
%21350 = getelementptr inbounds double, double* %21349, i64 0
%21351 = load double, double* %21350
%21352 = load double*, double** %10
%21353 = getelementptr inbounds double, double* %21352, i64 0
%21354 = load double, double* %21353
%21355 = fsub double %21351, %21354
%21356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21355, double* %21356
%21357 = load double*, double** %12
%21358 = getelementptr inbounds double, double* %21357, i64 1
%21359 = load double, double* %21358
%21360 = load double*, double** %10
%21361 = getelementptr inbounds double, double* %21360, i64 1
%21362 = load double, double* %21361
%21363 = fsub double %21359, %21362
%21364 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21363, double* %21364
%21365 = load double*, double** %12
%21366 = getelementptr inbounds double, double* %21365, i64 2
%21367 = load double, double* %21366
%21368 = load double*, double** %10
%21369 = getelementptr inbounds double, double* %21368, i64 2
%21370 = load double, double* %21369
%21371 = fsub double %21367, %21370
%21372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21371, double* %21372
%21373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21374 = load double, double* %21373
%21375 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21376 = load double, double* %21375
%21377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21378 = load double, double* %21377
%21379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21380 = load double, double* %21379
%21381 = fmul double %21378, %21380
%21382 = call double @llvm.fmuladd.f64(double %21374, double %21376, double %21381)
%21383 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21384 = load double, double* %21383
%21385 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21386 = load double, double* %21385
%21387 = call double @llvm.fmuladd.f64(double %21384, double %21386, double %21382)
%21388 = fcmp ogt double %21387, 0.000000e+00
br i1 %21388, label %21389, label %21390
21389: ; preds = %21264
store i32 0, i32* %7
br label %37464
21390: ; preds = %21264
%21391 = load double*, double** %13
%21392 = getelementptr inbounds double, double* %21391, i64 0
%21393 = load double, double* %21392
%21394 = load double*, double** %9
%21395 = getelementptr inbounds double, double* %21394, i64 0
%21396 = load double, double* %21395
%21397 = fsub double %21393, %21396
%21398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21397, double* %21398
%21399 = load double*, double** %13
%21400 = getelementptr inbounds double, double* %21399, i64 1
%21401 = load double, double* %21400
%21402 = load double*, double** %9
%21403 = getelementptr inbounds double, double* %21402, i64 1
%21404 = load double, double* %21403
%21405 = fsub double %21401, %21404
%21406 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21405, double* %21406
%21407 = load double*, double** %13
%21408 = getelementptr inbounds double, double* %21407, i64 2
%21409 = load double, double* %21408
%21410 = load double*, double** %9
%21411 = getelementptr inbounds double, double* %21410, i64 2
%21412 = load double, double* %21411
%21413 = fsub double %21409, %21412
%21414 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21413, double* %21414
%21415 = load double*, double** %8
%21416 = getelementptr inbounds double, double* %21415, i64 0
%21417 = load double, double* %21416
%21418 = load double*, double** %9
%21419 = getelementptr inbounds double, double* %21418, i64 0
%21420 = load double, double* %21419
%21421 = fsub double %21417, %21420
%21422 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21421, double* %21422
%21423 = load double*, double** %8
%21424 = getelementptr inbounds double, double* %21423, i64 1
%21425 = load double, double* %21424
%21426 = load double*, double** %9
%21427 = getelementptr inbounds double, double* %21426, i64 1
%21428 = load double, double* %21427
%21429 = fsub double %21425, %21428
%21430 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21429, double* %21430
%21431 = load double*, double** %8
%21432 = getelementptr inbounds double, double* %21431, i64 2
%21433 = load double, double* %21432
%21434 = load double*, double** %9
%21435 = getelementptr inbounds double, double* %21434, i64 2
%21436 = load double, double* %21435
%21437 = fsub double %21433, %21436
%21438 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21437, double* %21438
%21439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21440 = load double, double* %21439
%21441 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21442 = load double, double* %21441
%21443 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21444 = load double, double* %21443
%21445 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21446 = load double, double* %21445
%21447 = fmul double %21444, %21446
%21448 = fneg double %21447
%21449 = call double @llvm.fmuladd.f64(double %21440, double %21442, double %21448)
%21450 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21449, double* %21450
%21451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21452 = load double, double* %21451
%21453 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21454 = load double, double* %21453
%21455 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21456 = load double, double* %21455
%21457 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21458 = load double, double* %21457
%21459 = fmul double %21456, %21458
%21460 = fneg double %21459
%21461 = call double @llvm.fmuladd.f64(double %21452, double %21454, double %21460)
%21462 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21461, double* %21462
%21463 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21464 = load double, double* %21463
%21465 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21466 = load double, double* %21465
%21467 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21468 = load double, double* %21467
%21469 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21470 = load double, double* %21469
%21471 = fmul double %21468, %21470
%21472 = fneg double %21471
%21473 = call double @llvm.fmuladd.f64(double %21464, double %21466, double %21472)
%21474 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21473, double* %21474
%21475 = load double*, double** %11
%21476 = getelementptr inbounds double, double* %21475, i64 0
%21477 = load double, double* %21476
%21478 = load double*, double** %9
%21479 = getelementptr inbounds double, double* %21478, i64 0
%21480 = load double, double* %21479
%21481 = fsub double %21477, %21480
%21482 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21481, double* %21482
%21483 = load double*, double** %11
%21484 = getelementptr inbounds double, double* %21483, i64 1
%21485 = load double, double* %21484
%21486 = load double*, double** %9
%21487 = getelementptr inbounds double, double* %21486, i64 1
%21488 = load double, double* %21487
%21489 = fsub double %21485, %21488
%21490 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21489, double* %21490
%21491 = load double*, double** %11
%21492 = getelementptr inbounds double, double* %21491, i64 2
%21493 = load double, double* %21492
%21494 = load double*, double** %9
%21495 = getelementptr inbounds double, double* %21494, i64 2
%21496 = load double, double* %21495
%21497 = fsub double %21493, %21496
%21498 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21497, double* %21498
%21499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21500 = load double, double* %21499
%21501 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21502 = load double, double* %21501
%21503 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21504 = load double, double* %21503
%21505 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21506 = load double, double* %21505
%21507 = fmul double %21504, %21506
%21508 = call double @llvm.fmuladd.f64(double %21500, double %21502, double %21507)
%21509 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21510 = load double, double* %21509
%21511 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21512 = load double, double* %21511
%21513 = call double @llvm.fmuladd.f64(double %21510, double %21512, double %21508)
%21514 = fcmp ogt double %21513, 0.000000e+00
br i1 %21514, label %21515, label %21516
21515: ; preds = %21390
store i32 0, i32* %7
br label %37464
21516: ; preds = %21390
store i32 1, i32* %7
br label %37464
21517: ; preds = %21005
%21518 = load double, double* %18
%21519 = fcmp ogt double %21518, 0.000000e+00
br i1 %21519, label %21520, label %21773
21520: ; preds = %21517
%21521 = load double*, double** %12
%21522 = getelementptr inbounds double, double* %21521, i64 0
%21523 = load double, double* %21522
%21524 = load double*, double** %10
%21525 = getelementptr inbounds double, double* %21524, i64 0
%21526 = load double, double* %21525
%21527 = fsub double %21523, %21526
%21528 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21527, double* %21528
%21529 = load double*, double** %12
%21530 = getelementptr inbounds double, double* %21529, i64 1
%21531 = load double, double* %21530
%21532 = load double*, double** %10
%21533 = getelementptr inbounds double, double* %21532, i64 1
%21534 = load double, double* %21533
%21535 = fsub double %21531, %21534
%21536 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21535, double* %21536
%21537 = load double*, double** %12
%21538 = getelementptr inbounds double, double* %21537, i64 2
%21539 = load double, double* %21538
%21540 = load double*, double** %10
%21541 = getelementptr inbounds double, double* %21540, i64 2
%21542 = load double, double* %21541
%21543 = fsub double %21539, %21542
%21544 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21543, double* %21544
%21545 = load double*, double** %9
%21546 = getelementptr inbounds double, double* %21545, i64 0
%21547 = load double, double* %21546
%21548 = load double*, double** %10
%21549 = getelementptr inbounds double, double* %21548, i64 0
%21550 = load double, double* %21549
%21551 = fsub double %21547, %21550
%21552 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21551, double* %21552
%21553 = load double*, double** %9
%21554 = getelementptr inbounds double, double* %21553, i64 1
%21555 = load double, double* %21554
%21556 = load double*, double** %10
%21557 = getelementptr inbounds double, double* %21556, i64 1
%21558 = load double, double* %21557
%21559 = fsub double %21555, %21558
%21560 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21559, double* %21560
%21561 = load double*, double** %9
%21562 = getelementptr inbounds double, double* %21561, i64 2
%21563 = load double, double* %21562
%21564 = load double*, double** %10
%21565 = getelementptr inbounds double, double* %21564, i64 2
%21566 = load double, double* %21565
%21567 = fsub double %21563, %21566
%21568 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21567, double* %21568
%21569 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21570 = load double, double* %21569
%21571 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21572 = load double, double* %21571
%21573 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21574 = load double, double* %21573
%21575 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21576 = load double, double* %21575
%21577 = fmul double %21574, %21576
%21578 = fneg double %21577
%21579 = call double @llvm.fmuladd.f64(double %21570, double %21572, double %21578)
%21580 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21579, double* %21580
%21581 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21582 = load double, double* %21581
%21583 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21584 = load double, double* %21583
%21585 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21586 = load double, double* %21585
%21587 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21588 = load double, double* %21587
%21589 = fmul double %21586, %21588
%21590 = fneg double %21589
%21591 = call double @llvm.fmuladd.f64(double %21582, double %21584, double %21590)
%21592 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21591, double* %21592
%21593 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21594 = load double, double* %21593
%21595 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21596 = load double, double* %21595
%21597 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21598 = load double, double* %21597
%21599 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21600 = load double, double* %21599
%21601 = fmul double %21598, %21600
%21602 = fneg double %21601
%21603 = call double @llvm.fmuladd.f64(double %21594, double %21596, double %21602)
%21604 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21603, double* %21604
%21605 = load double*, double** %11
%21606 = getelementptr inbounds double, double* %21605, i64 0
%21607 = load double, double* %21606
%21608 = load double*, double** %10
%21609 = getelementptr inbounds double, double* %21608, i64 0
%21610 = load double, double* %21609
%21611 = fsub double %21607, %21610
%21612 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21611, double* %21612
%21613 = load double*, double** %11
%21614 = getelementptr inbounds double, double* %21613, i64 1
%21615 = load double, double* %21614
%21616 = load double*, double** %10
%21617 = getelementptr inbounds double, double* %21616, i64 1
%21618 = load double, double* %21617
%21619 = fsub double %21615, %21618
%21620 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21619, double* %21620
%21621 = load double*, double** %11
%21622 = getelementptr inbounds double, double* %21621, i64 2
%21623 = load double, double* %21622
%21624 = load double*, double** %10
%21625 = getelementptr inbounds double, double* %21624, i64 2
%21626 = load double, double* %21625
%21627 = fsub double %21623, %21626
%21628 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21627, double* %21628
%21629 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21630 = load double, double* %21629
%21631 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21632 = load double, double* %21631
%21633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21634 = load double, double* %21633
%21635 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21636 = load double, double* %21635
%21637 = fmul double %21634, %21636
%21638 = call double @llvm.fmuladd.f64(double %21630, double %21632, double %21637)
%21639 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21640 = load double, double* %21639
%21641 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21642 = load double, double* %21641
%21643 = call double @llvm.fmuladd.f64(double %21640, double %21642, double %21638)
%21644 = fcmp ogt double %21643, 0.000000e+00
br i1 %21644, label %21645, label %21646
21645: ; preds = %21520
store i32 0, i32* %7
br label %37464
21646: ; preds = %21520
%21647 = load double*, double** %12
%21648 = getelementptr inbounds double, double* %21647, i64 0
%21649 = load double, double* %21648
%21650 = load double*, double** %9
%21651 = getelementptr inbounds double, double* %21650, i64 0
%21652 = load double, double* %21651
%21653 = fsub double %21649, %21652
%21654 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21653, double* %21654
%21655 = load double*, double** %12
%21656 = getelementptr inbounds double, double* %21655, i64 1
%21657 = load double, double* %21656
%21658 = load double*, double** %9
%21659 = getelementptr inbounds double, double* %21658, i64 1
%21660 = load double, double* %21659
%21661 = fsub double %21657, %21660
%21662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21661, double* %21662
%21663 = load double*, double** %12
%21664 = getelementptr inbounds double, double* %21663, i64 2
%21665 = load double, double* %21664
%21666 = load double*, double** %9
%21667 = getelementptr inbounds double, double* %21666, i64 2
%21668 = load double, double* %21667
%21669 = fsub double %21665, %21668
%21670 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21669, double* %21670
%21671 = load double*, double** %8
%21672 = getelementptr inbounds double, double* %21671, i64 0
%21673 = load double, double* %21672
%21674 = load double*, double** %9
%21675 = getelementptr inbounds double, double* %21674, i64 0
%21676 = load double, double* %21675
%21677 = fsub double %21673, %21676
%21678 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21677, double* %21678
%21679 = load double*, double** %8
%21680 = getelementptr inbounds double, double* %21679, i64 1
%21681 = load double, double* %21680
%21682 = load double*, double** %9
%21683 = getelementptr inbounds double, double* %21682, i64 1
%21684 = load double, double* %21683
%21685 = fsub double %21681, %21684
%21686 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21685, double* %21686
%21687 = load double*, double** %8
%21688 = getelementptr inbounds double, double* %21687, i64 2
%21689 = load double, double* %21688
%21690 = load double*, double** %9
%21691 = getelementptr inbounds double, double* %21690, i64 2
%21692 = load double, double* %21691
%21693 = fsub double %21689, %21692
%21694 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21693, double* %21694
%21695 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21696 = load double, double* %21695
%21697 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21698 = load double, double* %21697
%21699 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21700 = load double, double* %21699
%21701 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21702 = load double, double* %21701
%21703 = fmul double %21700, %21702
%21704 = fneg double %21703
%21705 = call double @llvm.fmuladd.f64(double %21696, double %21698, double %21704)
%21706 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21705, double* %21706
%21707 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21708 = load double, double* %21707
%21709 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21710 = load double, double* %21709
%21711 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21712 = load double, double* %21711
%21713 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21714 = load double, double* %21713
%21715 = fmul double %21712, %21714
%21716 = fneg double %21715
%21717 = call double @llvm.fmuladd.f64(double %21708, double %21710, double %21716)
%21718 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21717, double* %21718
%21719 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21720 = load double, double* %21719
%21721 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21722 = load double, double* %21721
%21723 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21724 = load double, double* %21723
%21725 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21726 = load double, double* %21725
%21727 = fmul double %21724, %21726
%21728 = fneg double %21727
%21729 = call double @llvm.fmuladd.f64(double %21720, double %21722, double %21728)
%21730 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21729, double* %21730
%21731 = load double*, double** %13
%21732 = getelementptr inbounds double, double* %21731, i64 0
%21733 = load double, double* %21732
%21734 = load double*, double** %9
%21735 = getelementptr inbounds double, double* %21734, i64 0
%21736 = load double, double* %21735
%21737 = fsub double %21733, %21736
%21738 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21737, double* %21738
%21739 = load double*, double** %13
%21740 = getelementptr inbounds double, double* %21739, i64 1
%21741 = load double, double* %21740
%21742 = load double*, double** %9
%21743 = getelementptr inbounds double, double* %21742, i64 1
%21744 = load double, double* %21743
%21745 = fsub double %21741, %21744
%21746 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21745, double* %21746
%21747 = load double*, double** %13
%21748 = getelementptr inbounds double, double* %21747, i64 2
%21749 = load double, double* %21748
%21750 = load double*, double** %9
%21751 = getelementptr inbounds double, double* %21750, i64 2
%21752 = load double, double* %21751
%21753 = fsub double %21749, %21752
%21754 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21753, double* %21754
%21755 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21756 = load double, double* %21755
%21757 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21758 = load double, double* %21757
%21759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21760 = load double, double* %21759
%21761 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21762 = load double, double* %21761
%21763 = fmul double %21760, %21762
%21764 = call double @llvm.fmuladd.f64(double %21756, double %21758, double %21763)
%21765 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21766 = load double, double* %21765
%21767 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21768 = load double, double* %21767
%21769 = call double @llvm.fmuladd.f64(double %21766, double %21768, double %21764)
%21770 = fcmp ogt double %21769, 0.000000e+00
br i1 %21770, label %21771, label %21772
21771: ; preds = %21646
store i32 0, i32* %7
br label %37464
21772: ; preds = %21646
store i32 1, i32* %7
br label %37464
21773: ; preds = %21517
%21774 = load double, double* %18
%21775 = fcmp olt double %21774, 0.000000e+00
br i1 %21775, label %21776, label %22029
21776: ; preds = %21773
%21777 = load double*, double** %12
%21778 = getelementptr inbounds double, double* %21777, i64 0
%21779 = load double, double* %21778
%21780 = load double*, double** %8
%21781 = getelementptr inbounds double, double* %21780, i64 0
%21782 = load double, double* %21781
%21783 = fsub double %21779, %21782
%21784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21783, double* %21784
%21785 = load double*, double** %12
%21786 = getelementptr inbounds double, double* %21785, i64 1
%21787 = load double, double* %21786
%21788 = load double*, double** %8
%21789 = getelementptr inbounds double, double* %21788, i64 1
%21790 = load double, double* %21789
%21791 = fsub double %21787, %21790
%21792 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21791, double* %21792
%21793 = load double*, double** %12
%21794 = getelementptr inbounds double, double* %21793, i64 2
%21795 = load double, double* %21794
%21796 = load double*, double** %8
%21797 = getelementptr inbounds double, double* %21796, i64 2
%21798 = load double, double* %21797
%21799 = fsub double %21795, %21798
%21800 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21799, double* %21800
%21801 = load double*, double** %9
%21802 = getelementptr inbounds double, double* %21801, i64 0
%21803 = load double, double* %21802
%21804 = load double*, double** %8
%21805 = getelementptr inbounds double, double* %21804, i64 0
%21806 = load double, double* %21805
%21807 = fsub double %21803, %21806
%21808 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21807, double* %21808
%21809 = load double*, double** %9
%21810 = getelementptr inbounds double, double* %21809, i64 1
%21811 = load double, double* %21810
%21812 = load double*, double** %8
%21813 = getelementptr inbounds double, double* %21812, i64 1
%21814 = load double, double* %21813
%21815 = fsub double %21811, %21814
%21816 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21815, double* %21816
%21817 = load double*, double** %9
%21818 = getelementptr inbounds double, double* %21817, i64 2
%21819 = load double, double* %21818
%21820 = load double*, double** %8
%21821 = getelementptr inbounds double, double* %21820, i64 2
%21822 = load double, double* %21821
%21823 = fsub double %21819, %21822
%21824 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21823, double* %21824
%21825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21826 = load double, double* %21825
%21827 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21828 = load double, double* %21827
%21829 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21830 = load double, double* %21829
%21831 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21832 = load double, double* %21831
%21833 = fmul double %21830, %21832
%21834 = fneg double %21833
%21835 = call double @llvm.fmuladd.f64(double %21826, double %21828, double %21834)
%21836 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21835, double* %21836
%21837 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21838 = load double, double* %21837
%21839 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21840 = load double, double* %21839
%21841 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21842 = load double, double* %21841
%21843 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21844 = load double, double* %21843
%21845 = fmul double %21842, %21844
%21846 = fneg double %21845
%21847 = call double @llvm.fmuladd.f64(double %21838, double %21840, double %21846)
%21848 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21847, double* %21848
%21849 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21850 = load double, double* %21849
%21851 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21852 = load double, double* %21851
%21853 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21854 = load double, double* %21853
%21855 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21856 = load double, double* %21855
%21857 = fmul double %21854, %21856
%21858 = fneg double %21857
%21859 = call double @llvm.fmuladd.f64(double %21850, double %21852, double %21858)
%21860 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21859, double* %21860
%21861 = load double*, double** %11
%21862 = getelementptr inbounds double, double* %21861, i64 0
%21863 = load double, double* %21862
%21864 = load double*, double** %8
%21865 = getelementptr inbounds double, double* %21864, i64 0
%21866 = load double, double* %21865
%21867 = fsub double %21863, %21866
%21868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21867, double* %21868
%21869 = load double*, double** %11
%21870 = getelementptr inbounds double, double* %21869, i64 1
%21871 = load double, double* %21870
%21872 = load double*, double** %8
%21873 = getelementptr inbounds double, double* %21872, i64 1
%21874 = load double, double* %21873
%21875 = fsub double %21871, %21874
%21876 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21875, double* %21876
%21877 = load double*, double** %11
%21878 = getelementptr inbounds double, double* %21877, i64 2
%21879 = load double, double* %21878
%21880 = load double*, double** %8
%21881 = getelementptr inbounds double, double* %21880, i64 2
%21882 = load double, double* %21881
%21883 = fsub double %21879, %21882
%21884 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21883, double* %21884
%21885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21886 = load double, double* %21885
%21887 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%21888 = load double, double* %21887
%21889 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21890 = load double, double* %21889
%21891 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%21892 = load double, double* %21891
%21893 = fmul double %21890, %21892
%21894 = call double @llvm.fmuladd.f64(double %21886, double %21888, double %21893)
%21895 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21896 = load double, double* %21895
%21897 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%21898 = load double, double* %21897
%21899 = call double @llvm.fmuladd.f64(double %21896, double %21898, double %21894)
%21900 = fcmp ogt double %21899, 0.000000e+00
br i1 %21900, label %21901, label %21902
21901: ; preds = %21776
store i32 0, i32* %7
br label %37464
21902: ; preds = %21776
%21903 = load double*, double** %12
%21904 = getelementptr inbounds double, double* %21903, i64 0
%21905 = load double, double* %21904
%21906 = load double*, double** %9
%21907 = getelementptr inbounds double, double* %21906, i64 0
%21908 = load double, double* %21907
%21909 = fsub double %21905, %21908
%21910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21909, double* %21910
%21911 = load double*, double** %12
%21912 = getelementptr inbounds double, double* %21911, i64 1
%21913 = load double, double* %21912
%21914 = load double*, double** %9
%21915 = getelementptr inbounds double, double* %21914, i64 1
%21916 = load double, double* %21915
%21917 = fsub double %21913, %21916
%21918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %21917, double* %21918
%21919 = load double*, double** %12
%21920 = getelementptr inbounds double, double* %21919, i64 2
%21921 = load double, double* %21920
%21922 = load double*, double** %9
%21923 = getelementptr inbounds double, double* %21922, i64 2
%21924 = load double, double* %21923
%21925 = fsub double %21921, %21924
%21926 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %21925, double* %21926
%21927 = load double*, double** %10
%21928 = getelementptr inbounds double, double* %21927, i64 0
%21929 = load double, double* %21928
%21930 = load double*, double** %9
%21931 = getelementptr inbounds double, double* %21930, i64 0
%21932 = load double, double* %21931
%21933 = fsub double %21929, %21932
%21934 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %21933, double* %21934
%21935 = load double*, double** %10
%21936 = getelementptr inbounds double, double* %21935, i64 1
%21937 = load double, double* %21936
%21938 = load double*, double** %9
%21939 = getelementptr inbounds double, double* %21938, i64 1
%21940 = load double, double* %21939
%21941 = fsub double %21937, %21940
%21942 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %21941, double* %21942
%21943 = load double*, double** %10
%21944 = getelementptr inbounds double, double* %21943, i64 2
%21945 = load double, double* %21944
%21946 = load double*, double** %9
%21947 = getelementptr inbounds double, double* %21946, i64 2
%21948 = load double, double* %21947
%21949 = fsub double %21945, %21948
%21950 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %21949, double* %21950
%21951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21952 = load double, double* %21951
%21953 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21954 = load double, double* %21953
%21955 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21956 = load double, double* %21955
%21957 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21958 = load double, double* %21957
%21959 = fmul double %21956, %21958
%21960 = fneg double %21959
%21961 = call double @llvm.fmuladd.f64(double %21952, double %21954, double %21960)
%21962 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %21961, double* %21962
%21963 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%21964 = load double, double* %21963
%21965 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21966 = load double, double* %21965
%21967 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21968 = load double, double* %21967
%21969 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%21970 = load double, double* %21969
%21971 = fmul double %21968, %21970
%21972 = fneg double %21971
%21973 = call double @llvm.fmuladd.f64(double %21964, double %21966, double %21972)
%21974 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %21973, double* %21974
%21975 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%21976 = load double, double* %21975
%21977 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%21978 = load double, double* %21977
%21979 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%21980 = load double, double* %21979
%21981 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%21982 = load double, double* %21981
%21983 = fmul double %21980, %21982
%21984 = fneg double %21983
%21985 = call double @llvm.fmuladd.f64(double %21976, double %21978, double %21984)
%21986 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %21985, double* %21986
%21987 = load double*, double** %13
%21988 = getelementptr inbounds double, double* %21987, i64 0
%21989 = load double, double* %21988
%21990 = load double*, double** %9
%21991 = getelementptr inbounds double, double* %21990, i64 0
%21992 = load double, double* %21991
%21993 = fsub double %21989, %21992
%21994 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %21993, double* %21994
%21995 = load double*, double** %13
%21996 = getelementptr inbounds double, double* %21995, i64 1
%21997 = load double, double* %21996
%21998 = load double*, double** %9
%21999 = getelementptr inbounds double, double* %21998, i64 1
%22000 = load double, double* %21999
%22001 = fsub double %21997, %22000
%22002 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22001, double* %22002
%22003 = load double*, double** %13
%22004 = getelementptr inbounds double, double* %22003, i64 2
%22005 = load double, double* %22004
%22006 = load double*, double** %9
%22007 = getelementptr inbounds double, double* %22006, i64 2
%22008 = load double, double* %22007
%22009 = fsub double %22005, %22008
%22010 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22009, double* %22010
%22011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22012 = load double, double* %22011
%22013 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22014 = load double, double* %22013
%22015 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22016 = load double, double* %22015
%22017 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22018 = load double, double* %22017
%22019 = fmul double %22016, %22018
%22020 = call double @llvm.fmuladd.f64(double %22012, double %22014, double %22019)
%22021 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22022 = load double, double* %22021
%22023 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22024 = load double, double* %22023
%22025 = call double @llvm.fmuladd.f64(double %22022, double %22024, double %22020)
%22026 = fcmp ogt double %22025, 0.000000e+00
br i1 %22026, label %22027, label %22028
22027: ; preds = %21902
store i32 0, i32* %7
br label %37464
22028: ; preds = %21902
store i32 1, i32* %7
br label %37464
22029: ; preds = %21773
%22030 = load double*, double** %9
%22031 = load double*, double** %10
%22032 = load double*, double** %8
%22033 = load double*, double** %11
%22034 = load double*, double** %13
%22035 = load double*, double** %12
%22036 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22037 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %22030, double* %22031, double* %22032, double* %22033, double* %22034, double* %22035, double* %22036)
store i32 %22037, i32* %7
br label %37464
22038: ; preds = %18954
%22039 = load double, double* %17
%22040 = fcmp ogt double %22039, 0.000000e+00
br i1 %22040, label %22041, label %22806
22041: ; preds = %22038
%22042 = load double, double* %18
%22043 = fcmp ogt double %22042, 0.000000e+00
br i1 %22043, label %22044, label %22297
22044: ; preds = %22041
%22045 = load double*, double** %13
%22046 = getelementptr inbounds double, double* %22045, i64 0
%22047 = load double, double* %22046
%22048 = load double*, double** %10
%22049 = getelementptr inbounds double, double* %22048, i64 0
%22050 = load double, double* %22049
%22051 = fsub double %22047, %22050
%22052 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22051, double* %22052
%22053 = load double*, double** %13
%22054 = getelementptr inbounds double, double* %22053, i64 1
%22055 = load double, double* %22054
%22056 = load double*, double** %10
%22057 = getelementptr inbounds double, double* %22056, i64 1
%22058 = load double, double* %22057
%22059 = fsub double %22055, %22058
%22060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22059, double* %22060
%22061 = load double*, double** %13
%22062 = getelementptr inbounds double, double* %22061, i64 2
%22063 = load double, double* %22062
%22064 = load double*, double** %10
%22065 = getelementptr inbounds double, double* %22064, i64 2
%22066 = load double, double* %22065
%22067 = fsub double %22063, %22066
%22068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22067, double* %22068
%22069 = load double*, double** %8
%22070 = getelementptr inbounds double, double* %22069, i64 0
%22071 = load double, double* %22070
%22072 = load double*, double** %10
%22073 = getelementptr inbounds double, double* %22072, i64 0
%22074 = load double, double* %22073
%22075 = fsub double %22071, %22074
%22076 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22075, double* %22076
%22077 = load double*, double** %8
%22078 = getelementptr inbounds double, double* %22077, i64 1
%22079 = load double, double* %22078
%22080 = load double*, double** %10
%22081 = getelementptr inbounds double, double* %22080, i64 1
%22082 = load double, double* %22081
%22083 = fsub double %22079, %22082
%22084 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22083, double* %22084
%22085 = load double*, double** %8
%22086 = getelementptr inbounds double, double* %22085, i64 2
%22087 = load double, double* %22086
%22088 = load double*, double** %10
%22089 = getelementptr inbounds double, double* %22088, i64 2
%22090 = load double, double* %22089
%22091 = fsub double %22087, %22090
%22092 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22091, double* %22092
%22093 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22094 = load double, double* %22093
%22095 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22096 = load double, double* %22095
%22097 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22098 = load double, double* %22097
%22099 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22100 = load double, double* %22099
%22101 = fmul double %22098, %22100
%22102 = fneg double %22101
%22103 = call double @llvm.fmuladd.f64(double %22094, double %22096, double %22102)
%22104 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22103, double* %22104
%22105 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22106 = load double, double* %22105
%22107 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22108 = load double, double* %22107
%22109 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22110 = load double, double* %22109
%22111 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22112 = load double, double* %22111
%22113 = fmul double %22110, %22112
%22114 = fneg double %22113
%22115 = call double @llvm.fmuladd.f64(double %22106, double %22108, double %22114)
%22116 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22115, double* %22116
%22117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22118 = load double, double* %22117
%22119 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22120 = load double, double* %22119
%22121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22122 = load double, double* %22121
%22123 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22124 = load double, double* %22123
%22125 = fmul double %22122, %22124
%22126 = fneg double %22125
%22127 = call double @llvm.fmuladd.f64(double %22118, double %22120, double %22126)
%22128 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22127, double* %22128
%22129 = load double*, double** %11
%22130 = getelementptr inbounds double, double* %22129, i64 0
%22131 = load double, double* %22130
%22132 = load double*, double** %10
%22133 = getelementptr inbounds double, double* %22132, i64 0
%22134 = load double, double* %22133
%22135 = fsub double %22131, %22134
%22136 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22135, double* %22136
%22137 = load double*, double** %11
%22138 = getelementptr inbounds double, double* %22137, i64 1
%22139 = load double, double* %22138
%22140 = load double*, double** %10
%22141 = getelementptr inbounds double, double* %22140, i64 1
%22142 = load double, double* %22141
%22143 = fsub double %22139, %22142
%22144 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22143, double* %22144
%22145 = load double*, double** %11
%22146 = getelementptr inbounds double, double* %22145, i64 2
%22147 = load double, double* %22146
%22148 = load double*, double** %10
%22149 = getelementptr inbounds double, double* %22148, i64 2
%22150 = load double, double* %22149
%22151 = fsub double %22147, %22150
%22152 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22151, double* %22152
%22153 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22154 = load double, double* %22153
%22155 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22156 = load double, double* %22155
%22157 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22158 = load double, double* %22157
%22159 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22160 = load double, double* %22159
%22161 = fmul double %22158, %22160
%22162 = call double @llvm.fmuladd.f64(double %22154, double %22156, double %22161)
%22163 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22164 = load double, double* %22163
%22165 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22166 = load double, double* %22165
%22167 = call double @llvm.fmuladd.f64(double %22164, double %22166, double %22162)
%22168 = fcmp ogt double %22167, 0.000000e+00
br i1 %22168, label %22169, label %22170
22169: ; preds = %22044
store i32 0, i32* %7
br label %37464
22170: ; preds = %22044
%22171 = load double*, double** %13
%22172 = getelementptr inbounds double, double* %22171, i64 0
%22173 = load double, double* %22172
%22174 = load double*, double** %8
%22175 = getelementptr inbounds double, double* %22174, i64 0
%22176 = load double, double* %22175
%22177 = fsub double %22173, %22176
%22178 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22177, double* %22178
%22179 = load double*, double** %13
%22180 = getelementptr inbounds double, double* %22179, i64 1
%22181 = load double, double* %22180
%22182 = load double*, double** %8
%22183 = getelementptr inbounds double, double* %22182, i64 1
%22184 = load double, double* %22183
%22185 = fsub double %22181, %22184
%22186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22185, double* %22186
%22187 = load double*, double** %13
%22188 = getelementptr inbounds double, double* %22187, i64 2
%22189 = load double, double* %22188
%22190 = load double*, double** %8
%22191 = getelementptr inbounds double, double* %22190, i64 2
%22192 = load double, double* %22191
%22193 = fsub double %22189, %22192
%22194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22193, double* %22194
%22195 = load double*, double** %9
%22196 = getelementptr inbounds double, double* %22195, i64 0
%22197 = load double, double* %22196
%22198 = load double*, double** %8
%22199 = getelementptr inbounds double, double* %22198, i64 0
%22200 = load double, double* %22199
%22201 = fsub double %22197, %22200
%22202 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22201, double* %22202
%22203 = load double*, double** %9
%22204 = getelementptr inbounds double, double* %22203, i64 1
%22205 = load double, double* %22204
%22206 = load double*, double** %8
%22207 = getelementptr inbounds double, double* %22206, i64 1
%22208 = load double, double* %22207
%22209 = fsub double %22205, %22208
%22210 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22209, double* %22210
%22211 = load double*, double** %9
%22212 = getelementptr inbounds double, double* %22211, i64 2
%22213 = load double, double* %22212
%22214 = load double*, double** %8
%22215 = getelementptr inbounds double, double* %22214, i64 2
%22216 = load double, double* %22215
%22217 = fsub double %22213, %22216
%22218 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22217, double* %22218
%22219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22220 = load double, double* %22219
%22221 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22222 = load double, double* %22221
%22223 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22224 = load double, double* %22223
%22225 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22226 = load double, double* %22225
%22227 = fmul double %22224, %22226
%22228 = fneg double %22227
%22229 = call double @llvm.fmuladd.f64(double %22220, double %22222, double %22228)
%22230 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22229, double* %22230
%22231 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22232 = load double, double* %22231
%22233 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22234 = load double, double* %22233
%22235 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22236 = load double, double* %22235
%22237 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22238 = load double, double* %22237
%22239 = fmul double %22236, %22238
%22240 = fneg double %22239
%22241 = call double @llvm.fmuladd.f64(double %22232, double %22234, double %22240)
%22242 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22241, double* %22242
%22243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22244 = load double, double* %22243
%22245 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22246 = load double, double* %22245
%22247 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22248 = load double, double* %22247
%22249 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22250 = load double, double* %22249
%22251 = fmul double %22248, %22250
%22252 = fneg double %22251
%22253 = call double @llvm.fmuladd.f64(double %22244, double %22246, double %22252)
%22254 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22253, double* %22254
%22255 = load double*, double** %12
%22256 = getelementptr inbounds double, double* %22255, i64 0
%22257 = load double, double* %22256
%22258 = load double*, double** %8
%22259 = getelementptr inbounds double, double* %22258, i64 0
%22260 = load double, double* %22259
%22261 = fsub double %22257, %22260
%22262 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22261, double* %22262
%22263 = load double*, double** %12
%22264 = getelementptr inbounds double, double* %22263, i64 1
%22265 = load double, double* %22264
%22266 = load double*, double** %8
%22267 = getelementptr inbounds double, double* %22266, i64 1
%22268 = load double, double* %22267
%22269 = fsub double %22265, %22268
%22270 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22269, double* %22270
%22271 = load double*, double** %12
%22272 = getelementptr inbounds double, double* %22271, i64 2
%22273 = load double, double* %22272
%22274 = load double*, double** %8
%22275 = getelementptr inbounds double, double* %22274, i64 2
%22276 = load double, double* %22275
%22277 = fsub double %22273, %22276
%22278 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22277, double* %22278
%22279 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22280 = load double, double* %22279
%22281 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22282 = load double, double* %22281
%22283 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22284 = load double, double* %22283
%22285 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22286 = load double, double* %22285
%22287 = fmul double %22284, %22286
%22288 = call double @llvm.fmuladd.f64(double %22280, double %22282, double %22287)
%22289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22290 = load double, double* %22289
%22291 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22292 = load double, double* %22291
%22293 = call double @llvm.fmuladd.f64(double %22290, double %22292, double %22288)
%22294 = fcmp ogt double %22293, 0.000000e+00
br i1 %22294, label %22295, label %22296
22295: ; preds = %22170
store i32 0, i32* %7
br label %37464
22296: ; preds = %22170
store i32 1, i32* %7
br label %37464
22297: ; preds = %22041
%22298 = load double, double* %19
%22299 = fcmp ogt double %22298, 0.000000e+00
br i1 %22299, label %22300, label %22553
22300: ; preds = %22297
%22301 = load double*, double** %12
%22302 = getelementptr inbounds double, double* %22301, i64 0
%22303 = load double, double* %22302
%22304 = load double*, double** %10
%22305 = getelementptr inbounds double, double* %22304, i64 0
%22306 = load double, double* %22305
%22307 = fsub double %22303, %22306
%22308 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22307, double* %22308
%22309 = load double*, double** %12
%22310 = getelementptr inbounds double, double* %22309, i64 1
%22311 = load double, double* %22310
%22312 = load double*, double** %10
%22313 = getelementptr inbounds double, double* %22312, i64 1
%22314 = load double, double* %22313
%22315 = fsub double %22311, %22314
%22316 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22315, double* %22316
%22317 = load double*, double** %12
%22318 = getelementptr inbounds double, double* %22317, i64 2
%22319 = load double, double* %22318
%22320 = load double*, double** %10
%22321 = getelementptr inbounds double, double* %22320, i64 2
%22322 = load double, double* %22321
%22323 = fsub double %22319, %22322
%22324 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22323, double* %22324
%22325 = load double*, double** %8
%22326 = getelementptr inbounds double, double* %22325, i64 0
%22327 = load double, double* %22326
%22328 = load double*, double** %10
%22329 = getelementptr inbounds double, double* %22328, i64 0
%22330 = load double, double* %22329
%22331 = fsub double %22327, %22330
%22332 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22331, double* %22332
%22333 = load double*, double** %8
%22334 = getelementptr inbounds double, double* %22333, i64 1
%22335 = load double, double* %22334
%22336 = load double*, double** %10
%22337 = getelementptr inbounds double, double* %22336, i64 1
%22338 = load double, double* %22337
%22339 = fsub double %22335, %22338
%22340 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22339, double* %22340
%22341 = load double*, double** %8
%22342 = getelementptr inbounds double, double* %22341, i64 2
%22343 = load double, double* %22342
%22344 = load double*, double** %10
%22345 = getelementptr inbounds double, double* %22344, i64 2
%22346 = load double, double* %22345
%22347 = fsub double %22343, %22346
%22348 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22347, double* %22348
%22349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22350 = load double, double* %22349
%22351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22352 = load double, double* %22351
%22353 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22354 = load double, double* %22353
%22355 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22356 = load double, double* %22355
%22357 = fmul double %22354, %22356
%22358 = fneg double %22357
%22359 = call double @llvm.fmuladd.f64(double %22350, double %22352, double %22358)
%22360 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22359, double* %22360
%22361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22362 = load double, double* %22361
%22363 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22364 = load double, double* %22363
%22365 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22366 = load double, double* %22365
%22367 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22368 = load double, double* %22367
%22369 = fmul double %22366, %22368
%22370 = fneg double %22369
%22371 = call double @llvm.fmuladd.f64(double %22362, double %22364, double %22370)
%22372 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22371, double* %22372
%22373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22374 = load double, double* %22373
%22375 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22376 = load double, double* %22375
%22377 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22378 = load double, double* %22377
%22379 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22380 = load double, double* %22379
%22381 = fmul double %22378, %22380
%22382 = fneg double %22381
%22383 = call double @llvm.fmuladd.f64(double %22374, double %22376, double %22382)
%22384 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22383, double* %22384
%22385 = load double*, double** %13
%22386 = getelementptr inbounds double, double* %22385, i64 0
%22387 = load double, double* %22386
%22388 = load double*, double** %10
%22389 = getelementptr inbounds double, double* %22388, i64 0
%22390 = load double, double* %22389
%22391 = fsub double %22387, %22390
%22392 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22391, double* %22392
%22393 = load double*, double** %13
%22394 = getelementptr inbounds double, double* %22393, i64 1
%22395 = load double, double* %22394
%22396 = load double*, double** %10
%22397 = getelementptr inbounds double, double* %22396, i64 1
%22398 = load double, double* %22397
%22399 = fsub double %22395, %22398
%22400 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22399, double* %22400
%22401 = load double*, double** %13
%22402 = getelementptr inbounds double, double* %22401, i64 2
%22403 = load double, double* %22402
%22404 = load double*, double** %10
%22405 = getelementptr inbounds double, double* %22404, i64 2
%22406 = load double, double* %22405
%22407 = fsub double %22403, %22406
%22408 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22407, double* %22408
%22409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22410 = load double, double* %22409
%22411 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22412 = load double, double* %22411
%22413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22414 = load double, double* %22413
%22415 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22416 = load double, double* %22415
%22417 = fmul double %22414, %22416
%22418 = call double @llvm.fmuladd.f64(double %22410, double %22412, double %22417)
%22419 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22420 = load double, double* %22419
%22421 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22422 = load double, double* %22421
%22423 = call double @llvm.fmuladd.f64(double %22420, double %22422, double %22418)
%22424 = fcmp ogt double %22423, 0.000000e+00
br i1 %22424, label %22425, label %22426
22425: ; preds = %22300
store i32 0, i32* %7
br label %37464
22426: ; preds = %22300
%22427 = load double*, double** %12
%22428 = getelementptr inbounds double, double* %22427, i64 0
%22429 = load double, double* %22428
%22430 = load double*, double** %8
%22431 = getelementptr inbounds double, double* %22430, i64 0
%22432 = load double, double* %22431
%22433 = fsub double %22429, %22432
%22434 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22433, double* %22434
%22435 = load double*, double** %12
%22436 = getelementptr inbounds double, double* %22435, i64 1
%22437 = load double, double* %22436
%22438 = load double*, double** %8
%22439 = getelementptr inbounds double, double* %22438, i64 1
%22440 = load double, double* %22439
%22441 = fsub double %22437, %22440
%22442 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22441, double* %22442
%22443 = load double*, double** %12
%22444 = getelementptr inbounds double, double* %22443, i64 2
%22445 = load double, double* %22444
%22446 = load double*, double** %8
%22447 = getelementptr inbounds double, double* %22446, i64 2
%22448 = load double, double* %22447
%22449 = fsub double %22445, %22448
%22450 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22449, double* %22450
%22451 = load double*, double** %9
%22452 = getelementptr inbounds double, double* %22451, i64 0
%22453 = load double, double* %22452
%22454 = load double*, double** %8
%22455 = getelementptr inbounds double, double* %22454, i64 0
%22456 = load double, double* %22455
%22457 = fsub double %22453, %22456
%22458 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22457, double* %22458
%22459 = load double*, double** %9
%22460 = getelementptr inbounds double, double* %22459, i64 1
%22461 = load double, double* %22460
%22462 = load double*, double** %8
%22463 = getelementptr inbounds double, double* %22462, i64 1
%22464 = load double, double* %22463
%22465 = fsub double %22461, %22464
%22466 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22465, double* %22466
%22467 = load double*, double** %9
%22468 = getelementptr inbounds double, double* %22467, i64 2
%22469 = load double, double* %22468
%22470 = load double*, double** %8
%22471 = getelementptr inbounds double, double* %22470, i64 2
%22472 = load double, double* %22471
%22473 = fsub double %22469, %22472
%22474 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22473, double* %22474
%22475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22476 = load double, double* %22475
%22477 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22478 = load double, double* %22477
%22479 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22480 = load double, double* %22479
%22481 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22482 = load double, double* %22481
%22483 = fmul double %22480, %22482
%22484 = fneg double %22483
%22485 = call double @llvm.fmuladd.f64(double %22476, double %22478, double %22484)
%22486 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22485, double* %22486
%22487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22488 = load double, double* %22487
%22489 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22490 = load double, double* %22489
%22491 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22492 = load double, double* %22491
%22493 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22494 = load double, double* %22493
%22495 = fmul double %22492, %22494
%22496 = fneg double %22495
%22497 = call double @llvm.fmuladd.f64(double %22488, double %22490, double %22496)
%22498 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22497, double* %22498
%22499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22500 = load double, double* %22499
%22501 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22502 = load double, double* %22501
%22503 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22504 = load double, double* %22503
%22505 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22506 = load double, double* %22505
%22507 = fmul double %22504, %22506
%22508 = fneg double %22507
%22509 = call double @llvm.fmuladd.f64(double %22500, double %22502, double %22508)
%22510 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22509, double* %22510
%22511 = load double*, double** %11
%22512 = getelementptr inbounds double, double* %22511, i64 0
%22513 = load double, double* %22512
%22514 = load double*, double** %8
%22515 = getelementptr inbounds double, double* %22514, i64 0
%22516 = load double, double* %22515
%22517 = fsub double %22513, %22516
%22518 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22517, double* %22518
%22519 = load double*, double** %11
%22520 = getelementptr inbounds double, double* %22519, i64 1
%22521 = load double, double* %22520
%22522 = load double*, double** %8
%22523 = getelementptr inbounds double, double* %22522, i64 1
%22524 = load double, double* %22523
%22525 = fsub double %22521, %22524
%22526 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22525, double* %22526
%22527 = load double*, double** %11
%22528 = getelementptr inbounds double, double* %22527, i64 2
%22529 = load double, double* %22528
%22530 = load double*, double** %8
%22531 = getelementptr inbounds double, double* %22530, i64 2
%22532 = load double, double* %22531
%22533 = fsub double %22529, %22532
%22534 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22533, double* %22534
%22535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22536 = load double, double* %22535
%22537 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22538 = load double, double* %22537
%22539 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22540 = load double, double* %22539
%22541 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22542 = load double, double* %22541
%22543 = fmul double %22540, %22542
%22544 = call double @llvm.fmuladd.f64(double %22536, double %22538, double %22543)
%22545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22546 = load double, double* %22545
%22547 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22548 = load double, double* %22547
%22549 = call double @llvm.fmuladd.f64(double %22546, double %22548, double %22544)
%22550 = fcmp ogt double %22549, 0.000000e+00
br i1 %22550, label %22551, label %22552
22551: ; preds = %22426
store i32 0, i32* %7
br label %37464
22552: ; preds = %22426
store i32 1, i32* %7
br label %37464
22553: ; preds = %22297
%22554 = load double*, double** %11
%22555 = getelementptr inbounds double, double* %22554, i64 0
%22556 = load double, double* %22555
%22557 = load double*, double** %9
%22558 = getelementptr inbounds double, double* %22557, i64 0
%22559 = load double, double* %22558
%22560 = fsub double %22556, %22559
%22561 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22560, double* %22561
%22562 = load double*, double** %11
%22563 = getelementptr inbounds double, double* %22562, i64 1
%22564 = load double, double* %22563
%22565 = load double*, double** %9
%22566 = getelementptr inbounds double, double* %22565, i64 1
%22567 = load double, double* %22566
%22568 = fsub double %22564, %22567
%22569 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22568, double* %22569
%22570 = load double*, double** %11
%22571 = getelementptr inbounds double, double* %22570, i64 2
%22572 = load double, double* %22571
%22573 = load double*, double** %9
%22574 = getelementptr inbounds double, double* %22573, i64 2
%22575 = load double, double* %22574
%22576 = fsub double %22572, %22575
%22577 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22576, double* %22577
%22578 = load double*, double** %8
%22579 = getelementptr inbounds double, double* %22578, i64 0
%22580 = load double, double* %22579
%22581 = load double*, double** %9
%22582 = getelementptr inbounds double, double* %22581, i64 0
%22583 = load double, double* %22582
%22584 = fsub double %22580, %22583
%22585 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22584, double* %22585
%22586 = load double*, double** %8
%22587 = getelementptr inbounds double, double* %22586, i64 1
%22588 = load double, double* %22587
%22589 = load double*, double** %9
%22590 = getelementptr inbounds double, double* %22589, i64 1
%22591 = load double, double* %22590
%22592 = fsub double %22588, %22591
%22593 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22592, double* %22593
%22594 = load double*, double** %8
%22595 = getelementptr inbounds double, double* %22594, i64 2
%22596 = load double, double* %22595
%22597 = load double*, double** %9
%22598 = getelementptr inbounds double, double* %22597, i64 2
%22599 = load double, double* %22598
%22600 = fsub double %22596, %22599
%22601 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22600, double* %22601
%22602 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22603 = load double, double* %22602
%22604 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22605 = load double, double* %22604
%22606 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22607 = load double, double* %22606
%22608 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22609 = load double, double* %22608
%22610 = fmul double %22607, %22609
%22611 = fneg double %22610
%22612 = call double @llvm.fmuladd.f64(double %22603, double %22605, double %22611)
%22613 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22612, double* %22613
%22614 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22615 = load double, double* %22614
%22616 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22617 = load double, double* %22616
%22618 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22619 = load double, double* %22618
%22620 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22621 = load double, double* %22620
%22622 = fmul double %22619, %22621
%22623 = fneg double %22622
%22624 = call double @llvm.fmuladd.f64(double %22615, double %22617, double %22623)
%22625 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22624, double* %22625
%22626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22627 = load double, double* %22626
%22628 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22629 = load double, double* %22628
%22630 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22631 = load double, double* %22630
%22632 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22633 = load double, double* %22632
%22634 = fmul double %22631, %22633
%22635 = fneg double %22634
%22636 = call double @llvm.fmuladd.f64(double %22627, double %22629, double %22635)
%22637 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22636, double* %22637
%22638 = load double*, double** %12
%22639 = getelementptr inbounds double, double* %22638, i64 0
%22640 = load double, double* %22639
%22641 = load double*, double** %9
%22642 = getelementptr inbounds double, double* %22641, i64 0
%22643 = load double, double* %22642
%22644 = fsub double %22640, %22643
%22645 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22644, double* %22645
%22646 = load double*, double** %12
%22647 = getelementptr inbounds double, double* %22646, i64 1
%22648 = load double, double* %22647
%22649 = load double*, double** %9
%22650 = getelementptr inbounds double, double* %22649, i64 1
%22651 = load double, double* %22650
%22652 = fsub double %22648, %22651
%22653 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22652, double* %22653
%22654 = load double*, double** %12
%22655 = getelementptr inbounds double, double* %22654, i64 2
%22656 = load double, double* %22655
%22657 = load double*, double** %9
%22658 = getelementptr inbounds double, double* %22657, i64 2
%22659 = load double, double* %22658
%22660 = fsub double %22656, %22659
%22661 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22660, double* %22661
%22662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22663 = load double, double* %22662
%22664 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22665 = load double, double* %22664
%22666 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22667 = load double, double* %22666
%22668 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22669 = load double, double* %22668
%22670 = fmul double %22667, %22669
%22671 = call double @llvm.fmuladd.f64(double %22663, double %22665, double %22670)
%22672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22673 = load double, double* %22672
%22674 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22675 = load double, double* %22674
%22676 = call double @llvm.fmuladd.f64(double %22673, double %22675, double %22671)
%22677 = fcmp ogt double %22676, 0.000000e+00
br i1 %22677, label %22678, label %22679
22678: ; preds = %22553
store i32 0, i32* %7
br label %37464
22679: ; preds = %22553
%22680 = load double*, double** %11
%22681 = getelementptr inbounds double, double* %22680, i64 0
%22682 = load double, double* %22681
%22683 = load double*, double** %8
%22684 = getelementptr inbounds double, double* %22683, i64 0
%22685 = load double, double* %22684
%22686 = fsub double %22682, %22685
%22687 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22686, double* %22687
%22688 = load double*, double** %11
%22689 = getelementptr inbounds double, double* %22688, i64 1
%22690 = load double, double* %22689
%22691 = load double*, double** %8
%22692 = getelementptr inbounds double, double* %22691, i64 1
%22693 = load double, double* %22692
%22694 = fsub double %22690, %22693
%22695 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22694, double* %22695
%22696 = load double*, double** %11
%22697 = getelementptr inbounds double, double* %22696, i64 2
%22698 = load double, double* %22697
%22699 = load double*, double** %8
%22700 = getelementptr inbounds double, double* %22699, i64 2
%22701 = load double, double* %22700
%22702 = fsub double %22698, %22701
%22703 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22702, double* %22703
%22704 = load double*, double** %10
%22705 = getelementptr inbounds double, double* %22704, i64 0
%22706 = load double, double* %22705
%22707 = load double*, double** %8
%22708 = getelementptr inbounds double, double* %22707, i64 0
%22709 = load double, double* %22708
%22710 = fsub double %22706, %22709
%22711 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22710, double* %22711
%22712 = load double*, double** %10
%22713 = getelementptr inbounds double, double* %22712, i64 1
%22714 = load double, double* %22713
%22715 = load double*, double** %8
%22716 = getelementptr inbounds double, double* %22715, i64 1
%22717 = load double, double* %22716
%22718 = fsub double %22714, %22717
%22719 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22718, double* %22719
%22720 = load double*, double** %10
%22721 = getelementptr inbounds double, double* %22720, i64 2
%22722 = load double, double* %22721
%22723 = load double*, double** %8
%22724 = getelementptr inbounds double, double* %22723, i64 2
%22725 = load double, double* %22724
%22726 = fsub double %22722, %22725
%22727 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22726, double* %22727
%22728 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22729 = load double, double* %22728
%22730 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22731 = load double, double* %22730
%22732 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22733 = load double, double* %22732
%22734 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22735 = load double, double* %22734
%22736 = fmul double %22733, %22735
%22737 = fneg double %22736
%22738 = call double @llvm.fmuladd.f64(double %22729, double %22731, double %22737)
%22739 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22738, double* %22739
%22740 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22741 = load double, double* %22740
%22742 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22743 = load double, double* %22742
%22744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22745 = load double, double* %22744
%22746 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22747 = load double, double* %22746
%22748 = fmul double %22745, %22747
%22749 = fneg double %22748
%22750 = call double @llvm.fmuladd.f64(double %22741, double %22743, double %22749)
%22751 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22750, double* %22751
%22752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22753 = load double, double* %22752
%22754 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22755 = load double, double* %22754
%22756 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22757 = load double, double* %22756
%22758 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22759 = load double, double* %22758
%22760 = fmul double %22757, %22759
%22761 = fneg double %22760
%22762 = call double @llvm.fmuladd.f64(double %22753, double %22755, double %22761)
%22763 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22762, double* %22763
%22764 = load double*, double** %13
%22765 = getelementptr inbounds double, double* %22764, i64 0
%22766 = load double, double* %22765
%22767 = load double*, double** %8
%22768 = getelementptr inbounds double, double* %22767, i64 0
%22769 = load double, double* %22768
%22770 = fsub double %22766, %22769
%22771 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22770, double* %22771
%22772 = load double*, double** %13
%22773 = getelementptr inbounds double, double* %22772, i64 1
%22774 = load double, double* %22773
%22775 = load double*, double** %8
%22776 = getelementptr inbounds double, double* %22775, i64 1
%22777 = load double, double* %22776
%22778 = fsub double %22774, %22777
%22779 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22778, double* %22779
%22780 = load double*, double** %13
%22781 = getelementptr inbounds double, double* %22780, i64 2
%22782 = load double, double* %22781
%22783 = load double*, double** %8
%22784 = getelementptr inbounds double, double* %22783, i64 2
%22785 = load double, double* %22784
%22786 = fsub double %22782, %22785
%22787 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22786, double* %22787
%22788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22789 = load double, double* %22788
%22790 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22791 = load double, double* %22790
%22792 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22793 = load double, double* %22792
%22794 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22795 = load double, double* %22794
%22796 = fmul double %22793, %22795
%22797 = call double @llvm.fmuladd.f64(double %22789, double %22791, double %22796)
%22798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22799 = load double, double* %22798
%22800 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22801 = load double, double* %22800
%22802 = call double @llvm.fmuladd.f64(double %22799, double %22801, double %22797)
%22803 = fcmp ogt double %22802, 0.000000e+00
br i1 %22803, label %22804, label %22805
22804: ; preds = %22679
store i32 0, i32* %7
br label %37464
22805: ; preds = %22679
store i32 1, i32* %7
br label %37464
22806: ; preds = %22038
%22807 = load double, double* %17
%22808 = fcmp olt double %22807, 0.000000e+00
br i1 %22808, label %22809, label %23574
22809: ; preds = %22806
%22810 = load double, double* %18
%22811 = fcmp olt double %22810, 0.000000e+00
br i1 %22811, label %22812, label %23065
22812: ; preds = %22809
%22813 = load double*, double** %13
%22814 = getelementptr inbounds double, double* %22813, i64 0
%22815 = load double, double* %22814
%22816 = load double*, double** %9
%22817 = getelementptr inbounds double, double* %22816, i64 0
%22818 = load double, double* %22817
%22819 = fsub double %22815, %22818
%22820 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22819, double* %22820
%22821 = load double*, double** %13
%22822 = getelementptr inbounds double, double* %22821, i64 1
%22823 = load double, double* %22822
%22824 = load double*, double** %9
%22825 = getelementptr inbounds double, double* %22824, i64 1
%22826 = load double, double* %22825
%22827 = fsub double %22823, %22826
%22828 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22827, double* %22828
%22829 = load double*, double** %13
%22830 = getelementptr inbounds double, double* %22829, i64 2
%22831 = load double, double* %22830
%22832 = load double*, double** %9
%22833 = getelementptr inbounds double, double* %22832, i64 2
%22834 = load double, double* %22833
%22835 = fsub double %22831, %22834
%22836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22835, double* %22836
%22837 = load double*, double** %8
%22838 = getelementptr inbounds double, double* %22837, i64 0
%22839 = load double, double* %22838
%22840 = load double*, double** %9
%22841 = getelementptr inbounds double, double* %22840, i64 0
%22842 = load double, double* %22841
%22843 = fsub double %22839, %22842
%22844 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22843, double* %22844
%22845 = load double*, double** %8
%22846 = getelementptr inbounds double, double* %22845, i64 1
%22847 = load double, double* %22846
%22848 = load double*, double** %9
%22849 = getelementptr inbounds double, double* %22848, i64 1
%22850 = load double, double* %22849
%22851 = fsub double %22847, %22850
%22852 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22851, double* %22852
%22853 = load double*, double** %8
%22854 = getelementptr inbounds double, double* %22853, i64 2
%22855 = load double, double* %22854
%22856 = load double*, double** %9
%22857 = getelementptr inbounds double, double* %22856, i64 2
%22858 = load double, double* %22857
%22859 = fsub double %22855, %22858
%22860 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22859, double* %22860
%22861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22862 = load double, double* %22861
%22863 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22864 = load double, double* %22863
%22865 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22866 = load double, double* %22865
%22867 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22868 = load double, double* %22867
%22869 = fmul double %22866, %22868
%22870 = fneg double %22869
%22871 = call double @llvm.fmuladd.f64(double %22862, double %22864, double %22870)
%22872 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22871, double* %22872
%22873 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22874 = load double, double* %22873
%22875 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22876 = load double, double* %22875
%22877 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22878 = load double, double* %22877
%22879 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22880 = load double, double* %22879
%22881 = fmul double %22878, %22880
%22882 = fneg double %22881
%22883 = call double @llvm.fmuladd.f64(double %22874, double %22876, double %22882)
%22884 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %22883, double* %22884
%22885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22886 = load double, double* %22885
%22887 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22888 = load double, double* %22887
%22889 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22890 = load double, double* %22889
%22891 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%22892 = load double, double* %22891
%22893 = fmul double %22890, %22892
%22894 = fneg double %22893
%22895 = call double @llvm.fmuladd.f64(double %22886, double %22888, double %22894)
%22896 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %22895, double* %22896
%22897 = load double*, double** %11
%22898 = getelementptr inbounds double, double* %22897, i64 0
%22899 = load double, double* %22898
%22900 = load double*, double** %9
%22901 = getelementptr inbounds double, double* %22900, i64 0
%22902 = load double, double* %22901
%22903 = fsub double %22899, %22902
%22904 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22903, double* %22904
%22905 = load double*, double** %11
%22906 = getelementptr inbounds double, double* %22905, i64 1
%22907 = load double, double* %22906
%22908 = load double*, double** %9
%22909 = getelementptr inbounds double, double* %22908, i64 1
%22910 = load double, double* %22909
%22911 = fsub double %22907, %22910
%22912 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22911, double* %22912
%22913 = load double*, double** %11
%22914 = getelementptr inbounds double, double* %22913, i64 2
%22915 = load double, double* %22914
%22916 = load double*, double** %9
%22917 = getelementptr inbounds double, double* %22916, i64 2
%22918 = load double, double* %22917
%22919 = fsub double %22915, %22918
%22920 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22919, double* %22920
%22921 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%22922 = load double, double* %22921
%22923 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%22924 = load double, double* %22923
%22925 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22926 = load double, double* %22925
%22927 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%22928 = load double, double* %22927
%22929 = fmul double %22926, %22928
%22930 = call double @llvm.fmuladd.f64(double %22922, double %22924, double %22929)
%22931 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22932 = load double, double* %22931
%22933 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%22934 = load double, double* %22933
%22935 = call double @llvm.fmuladd.f64(double %22932, double %22934, double %22930)
%22936 = fcmp ogt double %22935, 0.000000e+00
br i1 %22936, label %22937, label %22938
22937: ; preds = %22812
store i32 0, i32* %7
br label %37464
22938: ; preds = %22812
%22939 = load double*, double** %13
%22940 = getelementptr inbounds double, double* %22939, i64 0
%22941 = load double, double* %22940
%22942 = load double*, double** %8
%22943 = getelementptr inbounds double, double* %22942, i64 0
%22944 = load double, double* %22943
%22945 = fsub double %22941, %22944
%22946 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %22945, double* %22946
%22947 = load double*, double** %13
%22948 = getelementptr inbounds double, double* %22947, i64 1
%22949 = load double, double* %22948
%22950 = load double*, double** %8
%22951 = getelementptr inbounds double, double* %22950, i64 1
%22952 = load double, double* %22951
%22953 = fsub double %22949, %22952
%22954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %22953, double* %22954
%22955 = load double*, double** %13
%22956 = getelementptr inbounds double, double* %22955, i64 2
%22957 = load double, double* %22956
%22958 = load double*, double** %8
%22959 = getelementptr inbounds double, double* %22958, i64 2
%22960 = load double, double* %22959
%22961 = fsub double %22957, %22960
%22962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %22961, double* %22962
%22963 = load double*, double** %10
%22964 = getelementptr inbounds double, double* %22963, i64 0
%22965 = load double, double* %22964
%22966 = load double*, double** %8
%22967 = getelementptr inbounds double, double* %22966, i64 0
%22968 = load double, double* %22967
%22969 = fsub double %22965, %22968
%22970 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %22969, double* %22970
%22971 = load double*, double** %10
%22972 = getelementptr inbounds double, double* %22971, i64 1
%22973 = load double, double* %22972
%22974 = load double*, double** %8
%22975 = getelementptr inbounds double, double* %22974, i64 1
%22976 = load double, double* %22975
%22977 = fsub double %22973, %22976
%22978 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %22977, double* %22978
%22979 = load double*, double** %10
%22980 = getelementptr inbounds double, double* %22979, i64 2
%22981 = load double, double* %22980
%22982 = load double*, double** %8
%22983 = getelementptr inbounds double, double* %22982, i64 2
%22984 = load double, double* %22983
%22985 = fsub double %22981, %22984
%22986 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %22985, double* %22986
%22987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%22988 = load double, double* %22987
%22989 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%22990 = load double, double* %22989
%22991 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%22992 = load double, double* %22991
%22993 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%22994 = load double, double* %22993
%22995 = fmul double %22992, %22994
%22996 = fneg double %22995
%22997 = call double @llvm.fmuladd.f64(double %22988, double %22990, double %22996)
%22998 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %22997, double* %22998
%22999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23000 = load double, double* %22999
%23001 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23002 = load double, double* %23001
%23003 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23004 = load double, double* %23003
%23005 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23006 = load double, double* %23005
%23007 = fmul double %23004, %23006
%23008 = fneg double %23007
%23009 = call double @llvm.fmuladd.f64(double %23000, double %23002, double %23008)
%23010 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23009, double* %23010
%23011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23012 = load double, double* %23011
%23013 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23014 = load double, double* %23013
%23015 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23016 = load double, double* %23015
%23017 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23018 = load double, double* %23017
%23019 = fmul double %23016, %23018
%23020 = fneg double %23019
%23021 = call double @llvm.fmuladd.f64(double %23012, double %23014, double %23020)
%23022 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23021, double* %23022
%23023 = load double*, double** %12
%23024 = getelementptr inbounds double, double* %23023, i64 0
%23025 = load double, double* %23024
%23026 = load double*, double** %8
%23027 = getelementptr inbounds double, double* %23026, i64 0
%23028 = load double, double* %23027
%23029 = fsub double %23025, %23028
%23030 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23029, double* %23030
%23031 = load double*, double** %12
%23032 = getelementptr inbounds double, double* %23031, i64 1
%23033 = load double, double* %23032
%23034 = load double*, double** %8
%23035 = getelementptr inbounds double, double* %23034, i64 1
%23036 = load double, double* %23035
%23037 = fsub double %23033, %23036
%23038 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23037, double* %23038
%23039 = load double*, double** %12
%23040 = getelementptr inbounds double, double* %23039, i64 2
%23041 = load double, double* %23040
%23042 = load double*, double** %8
%23043 = getelementptr inbounds double, double* %23042, i64 2
%23044 = load double, double* %23043
%23045 = fsub double %23041, %23044
%23046 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23045, double* %23046
%23047 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23048 = load double, double* %23047
%23049 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23050 = load double, double* %23049
%23051 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23052 = load double, double* %23051
%23053 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23054 = load double, double* %23053
%23055 = fmul double %23052, %23054
%23056 = call double @llvm.fmuladd.f64(double %23048, double %23050, double %23055)
%23057 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23058 = load double, double* %23057
%23059 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23060 = load double, double* %23059
%23061 = call double @llvm.fmuladd.f64(double %23058, double %23060, double %23056)
%23062 = fcmp ogt double %23061, 0.000000e+00
br i1 %23062, label %23063, label %23064
23063: ; preds = %22938
store i32 0, i32* %7
br label %37464
23064: ; preds = %22938
store i32 1, i32* %7
br label %37464
23065: ; preds = %22809
%23066 = load double, double* %19
%23067 = fcmp olt double %23066, 0.000000e+00
br i1 %23067, label %23068, label %23321
23068: ; preds = %23065
%23069 = load double*, double** %12
%23070 = getelementptr inbounds double, double* %23069, i64 0
%23071 = load double, double* %23070
%23072 = load double*, double** %9
%23073 = getelementptr inbounds double, double* %23072, i64 0
%23074 = load double, double* %23073
%23075 = fsub double %23071, %23074
%23076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23075, double* %23076
%23077 = load double*, double** %12
%23078 = getelementptr inbounds double, double* %23077, i64 1
%23079 = load double, double* %23078
%23080 = load double*, double** %9
%23081 = getelementptr inbounds double, double* %23080, i64 1
%23082 = load double, double* %23081
%23083 = fsub double %23079, %23082
%23084 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23083, double* %23084
%23085 = load double*, double** %12
%23086 = getelementptr inbounds double, double* %23085, i64 2
%23087 = load double, double* %23086
%23088 = load double*, double** %9
%23089 = getelementptr inbounds double, double* %23088, i64 2
%23090 = load double, double* %23089
%23091 = fsub double %23087, %23090
%23092 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23091, double* %23092
%23093 = load double*, double** %8
%23094 = getelementptr inbounds double, double* %23093, i64 0
%23095 = load double, double* %23094
%23096 = load double*, double** %9
%23097 = getelementptr inbounds double, double* %23096, i64 0
%23098 = load double, double* %23097
%23099 = fsub double %23095, %23098
%23100 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23099, double* %23100
%23101 = load double*, double** %8
%23102 = getelementptr inbounds double, double* %23101, i64 1
%23103 = load double, double* %23102
%23104 = load double*, double** %9
%23105 = getelementptr inbounds double, double* %23104, i64 1
%23106 = load double, double* %23105
%23107 = fsub double %23103, %23106
%23108 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23107, double* %23108
%23109 = load double*, double** %8
%23110 = getelementptr inbounds double, double* %23109, i64 2
%23111 = load double, double* %23110
%23112 = load double*, double** %9
%23113 = getelementptr inbounds double, double* %23112, i64 2
%23114 = load double, double* %23113
%23115 = fsub double %23111, %23114
%23116 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23115, double* %23116
%23117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23118 = load double, double* %23117
%23119 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23120 = load double, double* %23119
%23121 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23122 = load double, double* %23121
%23123 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23124 = load double, double* %23123
%23125 = fmul double %23122, %23124
%23126 = fneg double %23125
%23127 = call double @llvm.fmuladd.f64(double %23118, double %23120, double %23126)
%23128 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23127, double* %23128
%23129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23130 = load double, double* %23129
%23131 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23132 = load double, double* %23131
%23133 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23134 = load double, double* %23133
%23135 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23136 = load double, double* %23135
%23137 = fmul double %23134, %23136
%23138 = fneg double %23137
%23139 = call double @llvm.fmuladd.f64(double %23130, double %23132, double %23138)
%23140 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23139, double* %23140
%23141 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23142 = load double, double* %23141
%23143 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23144 = load double, double* %23143
%23145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23146 = load double, double* %23145
%23147 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23148 = load double, double* %23147
%23149 = fmul double %23146, %23148
%23150 = fneg double %23149
%23151 = call double @llvm.fmuladd.f64(double %23142, double %23144, double %23150)
%23152 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23151, double* %23152
%23153 = load double*, double** %13
%23154 = getelementptr inbounds double, double* %23153, i64 0
%23155 = load double, double* %23154
%23156 = load double*, double** %9
%23157 = getelementptr inbounds double, double* %23156, i64 0
%23158 = load double, double* %23157
%23159 = fsub double %23155, %23158
%23160 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23159, double* %23160
%23161 = load double*, double** %13
%23162 = getelementptr inbounds double, double* %23161, i64 1
%23163 = load double, double* %23162
%23164 = load double*, double** %9
%23165 = getelementptr inbounds double, double* %23164, i64 1
%23166 = load double, double* %23165
%23167 = fsub double %23163, %23166
%23168 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23167, double* %23168
%23169 = load double*, double** %13
%23170 = getelementptr inbounds double, double* %23169, i64 2
%23171 = load double, double* %23170
%23172 = load double*, double** %9
%23173 = getelementptr inbounds double, double* %23172, i64 2
%23174 = load double, double* %23173
%23175 = fsub double %23171, %23174
%23176 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23175, double* %23176
%23177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23178 = load double, double* %23177
%23179 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23180 = load double, double* %23179
%23181 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23182 = load double, double* %23181
%23183 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23184 = load double, double* %23183
%23185 = fmul double %23182, %23184
%23186 = call double @llvm.fmuladd.f64(double %23178, double %23180, double %23185)
%23187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23188 = load double, double* %23187
%23189 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23190 = load double, double* %23189
%23191 = call double @llvm.fmuladd.f64(double %23188, double %23190, double %23186)
%23192 = fcmp ogt double %23191, 0.000000e+00
br i1 %23192, label %23193, label %23194
23193: ; preds = %23068
store i32 0, i32* %7
br label %37464
23194: ; preds = %23068
%23195 = load double*, double** %12
%23196 = getelementptr inbounds double, double* %23195, i64 0
%23197 = load double, double* %23196
%23198 = load double*, double** %8
%23199 = getelementptr inbounds double, double* %23198, i64 0
%23200 = load double, double* %23199
%23201 = fsub double %23197, %23200
%23202 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23201, double* %23202
%23203 = load double*, double** %12
%23204 = getelementptr inbounds double, double* %23203, i64 1
%23205 = load double, double* %23204
%23206 = load double*, double** %8
%23207 = getelementptr inbounds double, double* %23206, i64 1
%23208 = load double, double* %23207
%23209 = fsub double %23205, %23208
%23210 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23209, double* %23210
%23211 = load double*, double** %12
%23212 = getelementptr inbounds double, double* %23211, i64 2
%23213 = load double, double* %23212
%23214 = load double*, double** %8
%23215 = getelementptr inbounds double, double* %23214, i64 2
%23216 = load double, double* %23215
%23217 = fsub double %23213, %23216
%23218 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23217, double* %23218
%23219 = load double*, double** %10
%23220 = getelementptr inbounds double, double* %23219, i64 0
%23221 = load double, double* %23220
%23222 = load double*, double** %8
%23223 = getelementptr inbounds double, double* %23222, i64 0
%23224 = load double, double* %23223
%23225 = fsub double %23221, %23224
%23226 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23225, double* %23226
%23227 = load double*, double** %10
%23228 = getelementptr inbounds double, double* %23227, i64 1
%23229 = load double, double* %23228
%23230 = load double*, double** %8
%23231 = getelementptr inbounds double, double* %23230, i64 1
%23232 = load double, double* %23231
%23233 = fsub double %23229, %23232
%23234 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23233, double* %23234
%23235 = load double*, double** %10
%23236 = getelementptr inbounds double, double* %23235, i64 2
%23237 = load double, double* %23236
%23238 = load double*, double** %8
%23239 = getelementptr inbounds double, double* %23238, i64 2
%23240 = load double, double* %23239
%23241 = fsub double %23237, %23240
%23242 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23241, double* %23242
%23243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23244 = load double, double* %23243
%23245 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23246 = load double, double* %23245
%23247 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23248 = load double, double* %23247
%23249 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23250 = load double, double* %23249
%23251 = fmul double %23248, %23250
%23252 = fneg double %23251
%23253 = call double @llvm.fmuladd.f64(double %23244, double %23246, double %23252)
%23254 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23253, double* %23254
%23255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23256 = load double, double* %23255
%23257 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23258 = load double, double* %23257
%23259 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23260 = load double, double* %23259
%23261 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23262 = load double, double* %23261
%23263 = fmul double %23260, %23262
%23264 = fneg double %23263
%23265 = call double @llvm.fmuladd.f64(double %23256, double %23258, double %23264)
%23266 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23265, double* %23266
%23267 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23268 = load double, double* %23267
%23269 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23270 = load double, double* %23269
%23271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23272 = load double, double* %23271
%23273 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23274 = load double, double* %23273
%23275 = fmul double %23272, %23274
%23276 = fneg double %23275
%23277 = call double @llvm.fmuladd.f64(double %23268, double %23270, double %23276)
%23278 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23277, double* %23278
%23279 = load double*, double** %11
%23280 = getelementptr inbounds double, double* %23279, i64 0
%23281 = load double, double* %23280
%23282 = load double*, double** %8
%23283 = getelementptr inbounds double, double* %23282, i64 0
%23284 = load double, double* %23283
%23285 = fsub double %23281, %23284
%23286 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23285, double* %23286
%23287 = load double*, double** %11
%23288 = getelementptr inbounds double, double* %23287, i64 1
%23289 = load double, double* %23288
%23290 = load double*, double** %8
%23291 = getelementptr inbounds double, double* %23290, i64 1
%23292 = load double, double* %23291
%23293 = fsub double %23289, %23292
%23294 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23293, double* %23294
%23295 = load double*, double** %11
%23296 = getelementptr inbounds double, double* %23295, i64 2
%23297 = load double, double* %23296
%23298 = load double*, double** %8
%23299 = getelementptr inbounds double, double* %23298, i64 2
%23300 = load double, double* %23299
%23301 = fsub double %23297, %23300
%23302 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23301, double* %23302
%23303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23304 = load double, double* %23303
%23305 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23306 = load double, double* %23305
%23307 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23308 = load double, double* %23307
%23309 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23310 = load double, double* %23309
%23311 = fmul double %23308, %23310
%23312 = call double @llvm.fmuladd.f64(double %23304, double %23306, double %23311)
%23313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23314 = load double, double* %23313
%23315 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23316 = load double, double* %23315
%23317 = call double @llvm.fmuladd.f64(double %23314, double %23316, double %23312)
%23318 = fcmp ogt double %23317, 0.000000e+00
br i1 %23318, label %23319, label %23320
23319: ; preds = %23194
store i32 0, i32* %7
br label %37464
23320: ; preds = %23194
store i32 1, i32* %7
br label %37464
23321: ; preds = %23065
%23322 = load double*, double** %11
%23323 = getelementptr inbounds double, double* %23322, i64 0
%23324 = load double, double* %23323
%23325 = load double*, double** %10
%23326 = getelementptr inbounds double, double* %23325, i64 0
%23327 = load double, double* %23326
%23328 = fsub double %23324, %23327
%23329 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23328, double* %23329
%23330 = load double*, double** %11
%23331 = getelementptr inbounds double, double* %23330, i64 1
%23332 = load double, double* %23331
%23333 = load double*, double** %10
%23334 = getelementptr inbounds double, double* %23333, i64 1
%23335 = load double, double* %23334
%23336 = fsub double %23332, %23335
%23337 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23336, double* %23337
%23338 = load double*, double** %11
%23339 = getelementptr inbounds double, double* %23338, i64 2
%23340 = load double, double* %23339
%23341 = load double*, double** %10
%23342 = getelementptr inbounds double, double* %23341, i64 2
%23343 = load double, double* %23342
%23344 = fsub double %23340, %23343
%23345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23344, double* %23345
%23346 = load double*, double** %8
%23347 = getelementptr inbounds double, double* %23346, i64 0
%23348 = load double, double* %23347
%23349 = load double*, double** %10
%23350 = getelementptr inbounds double, double* %23349, i64 0
%23351 = load double, double* %23350
%23352 = fsub double %23348, %23351
%23353 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23352, double* %23353
%23354 = load double*, double** %8
%23355 = getelementptr inbounds double, double* %23354, i64 1
%23356 = load double, double* %23355
%23357 = load double*, double** %10
%23358 = getelementptr inbounds double, double* %23357, i64 1
%23359 = load double, double* %23358
%23360 = fsub double %23356, %23359
%23361 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23360, double* %23361
%23362 = load double*, double** %8
%23363 = getelementptr inbounds double, double* %23362, i64 2
%23364 = load double, double* %23363
%23365 = load double*, double** %10
%23366 = getelementptr inbounds double, double* %23365, i64 2
%23367 = load double, double* %23366
%23368 = fsub double %23364, %23367
%23369 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23368, double* %23369
%23370 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23371 = load double, double* %23370
%23372 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23373 = load double, double* %23372
%23374 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23375 = load double, double* %23374
%23376 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23377 = load double, double* %23376
%23378 = fmul double %23375, %23377
%23379 = fneg double %23378
%23380 = call double @llvm.fmuladd.f64(double %23371, double %23373, double %23379)
%23381 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23380, double* %23381
%23382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23383 = load double, double* %23382
%23384 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23385 = load double, double* %23384
%23386 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23387 = load double, double* %23386
%23388 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23389 = load double, double* %23388
%23390 = fmul double %23387, %23389
%23391 = fneg double %23390
%23392 = call double @llvm.fmuladd.f64(double %23383, double %23385, double %23391)
%23393 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23392, double* %23393
%23394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23395 = load double, double* %23394
%23396 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23397 = load double, double* %23396
%23398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23399 = load double, double* %23398
%23400 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23401 = load double, double* %23400
%23402 = fmul double %23399, %23401
%23403 = fneg double %23402
%23404 = call double @llvm.fmuladd.f64(double %23395, double %23397, double %23403)
%23405 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23404, double* %23405
%23406 = load double*, double** %12
%23407 = getelementptr inbounds double, double* %23406, i64 0
%23408 = load double, double* %23407
%23409 = load double*, double** %10
%23410 = getelementptr inbounds double, double* %23409, i64 0
%23411 = load double, double* %23410
%23412 = fsub double %23408, %23411
%23413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23412, double* %23413
%23414 = load double*, double** %12
%23415 = getelementptr inbounds double, double* %23414, i64 1
%23416 = load double, double* %23415
%23417 = load double*, double** %10
%23418 = getelementptr inbounds double, double* %23417, i64 1
%23419 = load double, double* %23418
%23420 = fsub double %23416, %23419
%23421 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23420, double* %23421
%23422 = load double*, double** %12
%23423 = getelementptr inbounds double, double* %23422, i64 2
%23424 = load double, double* %23423
%23425 = load double*, double** %10
%23426 = getelementptr inbounds double, double* %23425, i64 2
%23427 = load double, double* %23426
%23428 = fsub double %23424, %23427
%23429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23428, double* %23429
%23430 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23431 = load double, double* %23430
%23432 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23433 = load double, double* %23432
%23434 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23435 = load double, double* %23434
%23436 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23437 = load double, double* %23436
%23438 = fmul double %23435, %23437
%23439 = call double @llvm.fmuladd.f64(double %23431, double %23433, double %23438)
%23440 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23441 = load double, double* %23440
%23442 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23443 = load double, double* %23442
%23444 = call double @llvm.fmuladd.f64(double %23441, double %23443, double %23439)
%23445 = fcmp ogt double %23444, 0.000000e+00
br i1 %23445, label %23446, label %23447
23446: ; preds = %23321
store i32 0, i32* %7
br label %37464
23447: ; preds = %23321
%23448 = load double*, double** %11
%23449 = getelementptr inbounds double, double* %23448, i64 0
%23450 = load double, double* %23449
%23451 = load double*, double** %8
%23452 = getelementptr inbounds double, double* %23451, i64 0
%23453 = load double, double* %23452
%23454 = fsub double %23450, %23453
%23455 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23454, double* %23455
%23456 = load double*, double** %11
%23457 = getelementptr inbounds double, double* %23456, i64 1
%23458 = load double, double* %23457
%23459 = load double*, double** %8
%23460 = getelementptr inbounds double, double* %23459, i64 1
%23461 = load double, double* %23460
%23462 = fsub double %23458, %23461
%23463 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23462, double* %23463
%23464 = load double*, double** %11
%23465 = getelementptr inbounds double, double* %23464, i64 2
%23466 = load double, double* %23465
%23467 = load double*, double** %8
%23468 = getelementptr inbounds double, double* %23467, i64 2
%23469 = load double, double* %23468
%23470 = fsub double %23466, %23469
%23471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23470, double* %23471
%23472 = load double*, double** %9
%23473 = getelementptr inbounds double, double* %23472, i64 0
%23474 = load double, double* %23473
%23475 = load double*, double** %8
%23476 = getelementptr inbounds double, double* %23475, i64 0
%23477 = load double, double* %23476
%23478 = fsub double %23474, %23477
%23479 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23478, double* %23479
%23480 = load double*, double** %9
%23481 = getelementptr inbounds double, double* %23480, i64 1
%23482 = load double, double* %23481
%23483 = load double*, double** %8
%23484 = getelementptr inbounds double, double* %23483, i64 1
%23485 = load double, double* %23484
%23486 = fsub double %23482, %23485
%23487 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23486, double* %23487
%23488 = load double*, double** %9
%23489 = getelementptr inbounds double, double* %23488, i64 2
%23490 = load double, double* %23489
%23491 = load double*, double** %8
%23492 = getelementptr inbounds double, double* %23491, i64 2
%23493 = load double, double* %23492
%23494 = fsub double %23490, %23493
%23495 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23494, double* %23495
%23496 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23497 = load double, double* %23496
%23498 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23499 = load double, double* %23498
%23500 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23501 = load double, double* %23500
%23502 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23503 = load double, double* %23502
%23504 = fmul double %23501, %23503
%23505 = fneg double %23504
%23506 = call double @llvm.fmuladd.f64(double %23497, double %23499, double %23505)
%23507 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23506, double* %23507
%23508 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23509 = load double, double* %23508
%23510 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23511 = load double, double* %23510
%23512 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23513 = load double, double* %23512
%23514 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23515 = load double, double* %23514
%23516 = fmul double %23513, %23515
%23517 = fneg double %23516
%23518 = call double @llvm.fmuladd.f64(double %23509, double %23511, double %23517)
%23519 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23518, double* %23519
%23520 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23521 = load double, double* %23520
%23522 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23523 = load double, double* %23522
%23524 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23525 = load double, double* %23524
%23526 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23527 = load double, double* %23526
%23528 = fmul double %23525, %23527
%23529 = fneg double %23528
%23530 = call double @llvm.fmuladd.f64(double %23521, double %23523, double %23529)
%23531 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23530, double* %23531
%23532 = load double*, double** %13
%23533 = getelementptr inbounds double, double* %23532, i64 0
%23534 = load double, double* %23533
%23535 = load double*, double** %8
%23536 = getelementptr inbounds double, double* %23535, i64 0
%23537 = load double, double* %23536
%23538 = fsub double %23534, %23537
%23539 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23538, double* %23539
%23540 = load double*, double** %13
%23541 = getelementptr inbounds double, double* %23540, i64 1
%23542 = load double, double* %23541
%23543 = load double*, double** %8
%23544 = getelementptr inbounds double, double* %23543, i64 1
%23545 = load double, double* %23544
%23546 = fsub double %23542, %23545
%23547 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23546, double* %23547
%23548 = load double*, double** %13
%23549 = getelementptr inbounds double, double* %23548, i64 2
%23550 = load double, double* %23549
%23551 = load double*, double** %8
%23552 = getelementptr inbounds double, double* %23551, i64 2
%23553 = load double, double* %23552
%23554 = fsub double %23550, %23553
%23555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23554, double* %23555
%23556 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23557 = load double, double* %23556
%23558 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23559 = load double, double* %23558
%23560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23561 = load double, double* %23560
%23562 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23563 = load double, double* %23562
%23564 = fmul double %23561, %23563
%23565 = call double @llvm.fmuladd.f64(double %23557, double %23559, double %23564)
%23566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23567 = load double, double* %23566
%23568 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23569 = load double, double* %23568
%23570 = call double @llvm.fmuladd.f64(double %23567, double %23569, double %23565)
%23571 = fcmp ogt double %23570, 0.000000e+00
br i1 %23571, label %23572, label %23573
23572: ; preds = %23447
store i32 0, i32* %7
br label %37464
23573: ; preds = %23447
store i32 1, i32* %7
br label %37464
23574: ; preds = %22806
%23575 = load double, double* %18
%23576 = fcmp olt double %23575, 0.000000e+00
br i1 %23576, label %23577, label %24086
23577: ; preds = %23574
%23578 = load double, double* %19
%23579 = fcmp oge double %23578, 0.000000e+00
br i1 %23579, label %23580, label %23833
23580: ; preds = %23577
%23581 = load double*, double** %12
%23582 = getelementptr inbounds double, double* %23581, i64 0
%23583 = load double, double* %23582
%23584 = load double*, double** %10
%23585 = getelementptr inbounds double, double* %23584, i64 0
%23586 = load double, double* %23585
%23587 = fsub double %23583, %23586
%23588 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23587, double* %23588
%23589 = load double*, double** %12
%23590 = getelementptr inbounds double, double* %23589, i64 1
%23591 = load double, double* %23590
%23592 = load double*, double** %10
%23593 = getelementptr inbounds double, double* %23592, i64 1
%23594 = load double, double* %23593
%23595 = fsub double %23591, %23594
%23596 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23595, double* %23596
%23597 = load double*, double** %12
%23598 = getelementptr inbounds double, double* %23597, i64 2
%23599 = load double, double* %23598
%23600 = load double*, double** %10
%23601 = getelementptr inbounds double, double* %23600, i64 2
%23602 = load double, double* %23601
%23603 = fsub double %23599, %23602
%23604 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23603, double* %23604
%23605 = load double*, double** %8
%23606 = getelementptr inbounds double, double* %23605, i64 0
%23607 = load double, double* %23606
%23608 = load double*, double** %10
%23609 = getelementptr inbounds double, double* %23608, i64 0
%23610 = load double, double* %23609
%23611 = fsub double %23607, %23610
%23612 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23611, double* %23612
%23613 = load double*, double** %8
%23614 = getelementptr inbounds double, double* %23613, i64 1
%23615 = load double, double* %23614
%23616 = load double*, double** %10
%23617 = getelementptr inbounds double, double* %23616, i64 1
%23618 = load double, double* %23617
%23619 = fsub double %23615, %23618
%23620 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23619, double* %23620
%23621 = load double*, double** %8
%23622 = getelementptr inbounds double, double* %23621, i64 2
%23623 = load double, double* %23622
%23624 = load double*, double** %10
%23625 = getelementptr inbounds double, double* %23624, i64 2
%23626 = load double, double* %23625
%23627 = fsub double %23623, %23626
%23628 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23627, double* %23628
%23629 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23630 = load double, double* %23629
%23631 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23632 = load double, double* %23631
%23633 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23634 = load double, double* %23633
%23635 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23636 = load double, double* %23635
%23637 = fmul double %23634, %23636
%23638 = fneg double %23637
%23639 = call double @llvm.fmuladd.f64(double %23630, double %23632, double %23638)
%23640 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23639, double* %23640
%23641 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23642 = load double, double* %23641
%23643 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23644 = load double, double* %23643
%23645 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23646 = load double, double* %23645
%23647 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23648 = load double, double* %23647
%23649 = fmul double %23646, %23648
%23650 = fneg double %23649
%23651 = call double @llvm.fmuladd.f64(double %23642, double %23644, double %23650)
%23652 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23651, double* %23652
%23653 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23654 = load double, double* %23653
%23655 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23656 = load double, double* %23655
%23657 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23658 = load double, double* %23657
%23659 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23660 = load double, double* %23659
%23661 = fmul double %23658, %23660
%23662 = fneg double %23661
%23663 = call double @llvm.fmuladd.f64(double %23654, double %23656, double %23662)
%23664 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23663, double* %23664
%23665 = load double*, double** %13
%23666 = getelementptr inbounds double, double* %23665, i64 0
%23667 = load double, double* %23666
%23668 = load double*, double** %10
%23669 = getelementptr inbounds double, double* %23668, i64 0
%23670 = load double, double* %23669
%23671 = fsub double %23667, %23670
%23672 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23671, double* %23672
%23673 = load double*, double** %13
%23674 = getelementptr inbounds double, double* %23673, i64 1
%23675 = load double, double* %23674
%23676 = load double*, double** %10
%23677 = getelementptr inbounds double, double* %23676, i64 1
%23678 = load double, double* %23677
%23679 = fsub double %23675, %23678
%23680 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23679, double* %23680
%23681 = load double*, double** %13
%23682 = getelementptr inbounds double, double* %23681, i64 2
%23683 = load double, double* %23682
%23684 = load double*, double** %10
%23685 = getelementptr inbounds double, double* %23684, i64 2
%23686 = load double, double* %23685
%23687 = fsub double %23683, %23686
%23688 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23687, double* %23688
%23689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23690 = load double, double* %23689
%23691 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23692 = load double, double* %23691
%23693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23694 = load double, double* %23693
%23695 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23696 = load double, double* %23695
%23697 = fmul double %23694, %23696
%23698 = call double @llvm.fmuladd.f64(double %23690, double %23692, double %23697)
%23699 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23700 = load double, double* %23699
%23701 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23702 = load double, double* %23701
%23703 = call double @llvm.fmuladd.f64(double %23700, double %23702, double %23698)
%23704 = fcmp ogt double %23703, 0.000000e+00
br i1 %23704, label %23705, label %23706
23705: ; preds = %23580
store i32 0, i32* %7
br label %37464
23706: ; preds = %23580
%23707 = load double*, double** %12
%23708 = getelementptr inbounds double, double* %23707, i64 0
%23709 = load double, double* %23708
%23710 = load double*, double** %8
%23711 = getelementptr inbounds double, double* %23710, i64 0
%23712 = load double, double* %23711
%23713 = fsub double %23709, %23712
%23714 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23713, double* %23714
%23715 = load double*, double** %12
%23716 = getelementptr inbounds double, double* %23715, i64 1
%23717 = load double, double* %23716
%23718 = load double*, double** %8
%23719 = getelementptr inbounds double, double* %23718, i64 1
%23720 = load double, double* %23719
%23721 = fsub double %23717, %23720
%23722 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23721, double* %23722
%23723 = load double*, double** %12
%23724 = getelementptr inbounds double, double* %23723, i64 2
%23725 = load double, double* %23724
%23726 = load double*, double** %8
%23727 = getelementptr inbounds double, double* %23726, i64 2
%23728 = load double, double* %23727
%23729 = fsub double %23725, %23728
%23730 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23729, double* %23730
%23731 = load double*, double** %9
%23732 = getelementptr inbounds double, double* %23731, i64 0
%23733 = load double, double* %23732
%23734 = load double*, double** %8
%23735 = getelementptr inbounds double, double* %23734, i64 0
%23736 = load double, double* %23735
%23737 = fsub double %23733, %23736
%23738 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23737, double* %23738
%23739 = load double*, double** %9
%23740 = getelementptr inbounds double, double* %23739, i64 1
%23741 = load double, double* %23740
%23742 = load double*, double** %8
%23743 = getelementptr inbounds double, double* %23742, i64 1
%23744 = load double, double* %23743
%23745 = fsub double %23741, %23744
%23746 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23745, double* %23746
%23747 = load double*, double** %9
%23748 = getelementptr inbounds double, double* %23747, i64 2
%23749 = load double, double* %23748
%23750 = load double*, double** %8
%23751 = getelementptr inbounds double, double* %23750, i64 2
%23752 = load double, double* %23751
%23753 = fsub double %23749, %23752
%23754 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23753, double* %23754
%23755 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23756 = load double, double* %23755
%23757 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23758 = load double, double* %23757
%23759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23760 = load double, double* %23759
%23761 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23762 = load double, double* %23761
%23763 = fmul double %23760, %23762
%23764 = fneg double %23763
%23765 = call double @llvm.fmuladd.f64(double %23756, double %23758, double %23764)
%23766 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23765, double* %23766
%23767 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23768 = load double, double* %23767
%23769 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23770 = load double, double* %23769
%23771 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23772 = load double, double* %23771
%23773 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23774 = load double, double* %23773
%23775 = fmul double %23772, %23774
%23776 = fneg double %23775
%23777 = call double @llvm.fmuladd.f64(double %23768, double %23770, double %23776)
%23778 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23777, double* %23778
%23779 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23780 = load double, double* %23779
%23781 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23782 = load double, double* %23781
%23783 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23784 = load double, double* %23783
%23785 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23786 = load double, double* %23785
%23787 = fmul double %23784, %23786
%23788 = fneg double %23787
%23789 = call double @llvm.fmuladd.f64(double %23780, double %23782, double %23788)
%23790 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23789, double* %23790
%23791 = load double*, double** %11
%23792 = getelementptr inbounds double, double* %23791, i64 0
%23793 = load double, double* %23792
%23794 = load double*, double** %8
%23795 = getelementptr inbounds double, double* %23794, i64 0
%23796 = load double, double* %23795
%23797 = fsub double %23793, %23796
%23798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23797, double* %23798
%23799 = load double*, double** %11
%23800 = getelementptr inbounds double, double* %23799, i64 1
%23801 = load double, double* %23800
%23802 = load double*, double** %8
%23803 = getelementptr inbounds double, double* %23802, i64 1
%23804 = load double, double* %23803
%23805 = fsub double %23801, %23804
%23806 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23805, double* %23806
%23807 = load double*, double** %11
%23808 = getelementptr inbounds double, double* %23807, i64 2
%23809 = load double, double* %23808
%23810 = load double*, double** %8
%23811 = getelementptr inbounds double, double* %23810, i64 2
%23812 = load double, double* %23811
%23813 = fsub double %23809, %23812
%23814 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23813, double* %23814
%23815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23816 = load double, double* %23815
%23817 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23818 = load double, double* %23817
%23819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23820 = load double, double* %23819
%23821 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23822 = load double, double* %23821
%23823 = fmul double %23820, %23822
%23824 = call double @llvm.fmuladd.f64(double %23816, double %23818, double %23823)
%23825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23826 = load double, double* %23825
%23827 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23828 = load double, double* %23827
%23829 = call double @llvm.fmuladd.f64(double %23826, double %23828, double %23824)
%23830 = fcmp ogt double %23829, 0.000000e+00
br i1 %23830, label %23831, label %23832
23831: ; preds = %23706
store i32 0, i32* %7
br label %37464
23832: ; preds = %23706
store i32 1, i32* %7
br label %37464
23833: ; preds = %23577
%23834 = load double*, double** %11
%23835 = getelementptr inbounds double, double* %23834, i64 0
%23836 = load double, double* %23835
%23837 = load double*, double** %9
%23838 = getelementptr inbounds double, double* %23837, i64 0
%23839 = load double, double* %23838
%23840 = fsub double %23836, %23839
%23841 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23840, double* %23841
%23842 = load double*, double** %11
%23843 = getelementptr inbounds double, double* %23842, i64 1
%23844 = load double, double* %23843
%23845 = load double*, double** %9
%23846 = getelementptr inbounds double, double* %23845, i64 1
%23847 = load double, double* %23846
%23848 = fsub double %23844, %23847
%23849 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23848, double* %23849
%23850 = load double*, double** %11
%23851 = getelementptr inbounds double, double* %23850, i64 2
%23852 = load double, double* %23851
%23853 = load double*, double** %9
%23854 = getelementptr inbounds double, double* %23853, i64 2
%23855 = load double, double* %23854
%23856 = fsub double %23852, %23855
%23857 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23856, double* %23857
%23858 = load double*, double** %8
%23859 = getelementptr inbounds double, double* %23858, i64 0
%23860 = load double, double* %23859
%23861 = load double*, double** %9
%23862 = getelementptr inbounds double, double* %23861, i64 0
%23863 = load double, double* %23862
%23864 = fsub double %23860, %23863
%23865 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23864, double* %23865
%23866 = load double*, double** %8
%23867 = getelementptr inbounds double, double* %23866, i64 1
%23868 = load double, double* %23867
%23869 = load double*, double** %9
%23870 = getelementptr inbounds double, double* %23869, i64 1
%23871 = load double, double* %23870
%23872 = fsub double %23868, %23871
%23873 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23872, double* %23873
%23874 = load double*, double** %8
%23875 = getelementptr inbounds double, double* %23874, i64 2
%23876 = load double, double* %23875
%23877 = load double*, double** %9
%23878 = getelementptr inbounds double, double* %23877, i64 2
%23879 = load double, double* %23878
%23880 = fsub double %23876, %23879
%23881 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %23880, double* %23881
%23882 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23883 = load double, double* %23882
%23884 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23885 = load double, double* %23884
%23886 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23887 = load double, double* %23886
%23888 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23889 = load double, double* %23888
%23890 = fmul double %23887, %23889
%23891 = fneg double %23890
%23892 = call double @llvm.fmuladd.f64(double %23883, double %23885, double %23891)
%23893 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %23892, double* %23893
%23894 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23895 = load double, double* %23894
%23896 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23897 = load double, double* %23896
%23898 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23899 = load double, double* %23898
%23900 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%23901 = load double, double* %23900
%23902 = fmul double %23899, %23901
%23903 = fneg double %23902
%23904 = call double @llvm.fmuladd.f64(double %23895, double %23897, double %23903)
%23905 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %23904, double* %23905
%23906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23907 = load double, double* %23906
%23908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%23909 = load double, double* %23908
%23910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23911 = load double, double* %23910
%23912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%23913 = load double, double* %23912
%23914 = fmul double %23911, %23913
%23915 = fneg double %23914
%23916 = call double @llvm.fmuladd.f64(double %23907, double %23909, double %23915)
%23917 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %23916, double* %23917
%23918 = load double*, double** %12
%23919 = getelementptr inbounds double, double* %23918, i64 0
%23920 = load double, double* %23919
%23921 = load double*, double** %9
%23922 = getelementptr inbounds double, double* %23921, i64 0
%23923 = load double, double* %23922
%23924 = fsub double %23920, %23923
%23925 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23924, double* %23925
%23926 = load double*, double** %12
%23927 = getelementptr inbounds double, double* %23926, i64 1
%23928 = load double, double* %23927
%23929 = load double*, double** %9
%23930 = getelementptr inbounds double, double* %23929, i64 1
%23931 = load double, double* %23930
%23932 = fsub double %23928, %23931
%23933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23932, double* %23933
%23934 = load double*, double** %12
%23935 = getelementptr inbounds double, double* %23934, i64 2
%23936 = load double, double* %23935
%23937 = load double*, double** %9
%23938 = getelementptr inbounds double, double* %23937, i64 2
%23939 = load double, double* %23938
%23940 = fsub double %23936, %23939
%23941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23940, double* %23941
%23942 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%23943 = load double, double* %23942
%23944 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%23945 = load double, double* %23944
%23946 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%23947 = load double, double* %23946
%23948 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%23949 = load double, double* %23948
%23950 = fmul double %23947, %23949
%23951 = call double @llvm.fmuladd.f64(double %23943, double %23945, double %23950)
%23952 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%23953 = load double, double* %23952
%23954 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%23955 = load double, double* %23954
%23956 = call double @llvm.fmuladd.f64(double %23953, double %23955, double %23951)
%23957 = fcmp ogt double %23956, 0.000000e+00
br i1 %23957, label %23958, label %23959
23958: ; preds = %23833
store i32 0, i32* %7
br label %37464
23959: ; preds = %23833
%23960 = load double*, double** %11
%23961 = getelementptr inbounds double, double* %23960, i64 0
%23962 = load double, double* %23961
%23963 = load double*, double** %8
%23964 = getelementptr inbounds double, double* %23963, i64 0
%23965 = load double, double* %23964
%23966 = fsub double %23962, %23965
%23967 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %23966, double* %23967
%23968 = load double*, double** %11
%23969 = getelementptr inbounds double, double* %23968, i64 1
%23970 = load double, double* %23969
%23971 = load double*, double** %8
%23972 = getelementptr inbounds double, double* %23971, i64 1
%23973 = load double, double* %23972
%23974 = fsub double %23970, %23973
%23975 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %23974, double* %23975
%23976 = load double*, double** %11
%23977 = getelementptr inbounds double, double* %23976, i64 2
%23978 = load double, double* %23977
%23979 = load double*, double** %8
%23980 = getelementptr inbounds double, double* %23979, i64 2
%23981 = load double, double* %23980
%23982 = fsub double %23978, %23981
%23983 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %23982, double* %23983
%23984 = load double*, double** %10
%23985 = getelementptr inbounds double, double* %23984, i64 0
%23986 = load double, double* %23985
%23987 = load double*, double** %8
%23988 = getelementptr inbounds double, double* %23987, i64 0
%23989 = load double, double* %23988
%23990 = fsub double %23986, %23989
%23991 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %23990, double* %23991
%23992 = load double*, double** %10
%23993 = getelementptr inbounds double, double* %23992, i64 1
%23994 = load double, double* %23993
%23995 = load double*, double** %8
%23996 = getelementptr inbounds double, double* %23995, i64 1
%23997 = load double, double* %23996
%23998 = fsub double %23994, %23997
%23999 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %23998, double* %23999
%24000 = load double*, double** %10
%24001 = getelementptr inbounds double, double* %24000, i64 2
%24002 = load double, double* %24001
%24003 = load double*, double** %8
%24004 = getelementptr inbounds double, double* %24003, i64 2
%24005 = load double, double* %24004
%24006 = fsub double %24002, %24005
%24007 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24006, double* %24007
%24008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24009 = load double, double* %24008
%24010 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24011 = load double, double* %24010
%24012 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24013 = load double, double* %24012
%24014 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24015 = load double, double* %24014
%24016 = fmul double %24013, %24015
%24017 = fneg double %24016
%24018 = call double @llvm.fmuladd.f64(double %24009, double %24011, double %24017)
%24019 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24018, double* %24019
%24020 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24021 = load double, double* %24020
%24022 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24023 = load double, double* %24022
%24024 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24025 = load double, double* %24024
%24026 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24027 = load double, double* %24026
%24028 = fmul double %24025, %24027
%24029 = fneg double %24028
%24030 = call double @llvm.fmuladd.f64(double %24021, double %24023, double %24029)
%24031 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24030, double* %24031
%24032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24033 = load double, double* %24032
%24034 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24035 = load double, double* %24034
%24036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24037 = load double, double* %24036
%24038 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24039 = load double, double* %24038
%24040 = fmul double %24037, %24039
%24041 = fneg double %24040
%24042 = call double @llvm.fmuladd.f64(double %24033, double %24035, double %24041)
%24043 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24042, double* %24043
%24044 = load double*, double** %13
%24045 = getelementptr inbounds double, double* %24044, i64 0
%24046 = load double, double* %24045
%24047 = load double*, double** %8
%24048 = getelementptr inbounds double, double* %24047, i64 0
%24049 = load double, double* %24048
%24050 = fsub double %24046, %24049
%24051 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24050, double* %24051
%24052 = load double*, double** %13
%24053 = getelementptr inbounds double, double* %24052, i64 1
%24054 = load double, double* %24053
%24055 = load double*, double** %8
%24056 = getelementptr inbounds double, double* %24055, i64 1
%24057 = load double, double* %24056
%24058 = fsub double %24054, %24057
%24059 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24058, double* %24059
%24060 = load double*, double** %13
%24061 = getelementptr inbounds double, double* %24060, i64 2
%24062 = load double, double* %24061
%24063 = load double*, double** %8
%24064 = getelementptr inbounds double, double* %24063, i64 2
%24065 = load double, double* %24064
%24066 = fsub double %24062, %24065
%24067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24066, double* %24067
%24068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24069 = load double, double* %24068
%24070 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24071 = load double, double* %24070
%24072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24073 = load double, double* %24072
%24074 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24075 = load double, double* %24074
%24076 = fmul double %24073, %24075
%24077 = call double @llvm.fmuladd.f64(double %24069, double %24071, double %24076)
%24078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24079 = load double, double* %24078
%24080 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24081 = load double, double* %24080
%24082 = call double @llvm.fmuladd.f64(double %24079, double %24081, double %24077)
%24083 = fcmp ogt double %24082, 0.000000e+00
br i1 %24083, label %24084, label %24085
24084: ; preds = %23959
store i32 0, i32* %7
br label %37464
24085: ; preds = %23959
store i32 1, i32* %7
br label %37464
24086: ; preds = %23574
%24087 = load double, double* %18
%24088 = fcmp ogt double %24087, 0.000000e+00
br i1 %24088, label %24089, label %24598
24089: ; preds = %24086
%24090 = load double, double* %19
%24091 = fcmp ogt double %24090, 0.000000e+00
br i1 %24091, label %24092, label %24345
24092: ; preds = %24089
%24093 = load double*, double** %11
%24094 = getelementptr inbounds double, double* %24093, i64 0
%24095 = load double, double* %24094
%24096 = load double*, double** %10
%24097 = getelementptr inbounds double, double* %24096, i64 0
%24098 = load double, double* %24097
%24099 = fsub double %24095, %24098
%24100 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24099, double* %24100
%24101 = load double*, double** %11
%24102 = getelementptr inbounds double, double* %24101, i64 1
%24103 = load double, double* %24102
%24104 = load double*, double** %10
%24105 = getelementptr inbounds double, double* %24104, i64 1
%24106 = load double, double* %24105
%24107 = fsub double %24103, %24106
%24108 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24107, double* %24108
%24109 = load double*, double** %11
%24110 = getelementptr inbounds double, double* %24109, i64 2
%24111 = load double, double* %24110
%24112 = load double*, double** %10
%24113 = getelementptr inbounds double, double* %24112, i64 2
%24114 = load double, double* %24113
%24115 = fsub double %24111, %24114
%24116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24115, double* %24116
%24117 = load double*, double** %8
%24118 = getelementptr inbounds double, double* %24117, i64 0
%24119 = load double, double* %24118
%24120 = load double*, double** %10
%24121 = getelementptr inbounds double, double* %24120, i64 0
%24122 = load double, double* %24121
%24123 = fsub double %24119, %24122
%24124 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24123, double* %24124
%24125 = load double*, double** %8
%24126 = getelementptr inbounds double, double* %24125, i64 1
%24127 = load double, double* %24126
%24128 = load double*, double** %10
%24129 = getelementptr inbounds double, double* %24128, i64 1
%24130 = load double, double* %24129
%24131 = fsub double %24127, %24130
%24132 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24131, double* %24132
%24133 = load double*, double** %8
%24134 = getelementptr inbounds double, double* %24133, i64 2
%24135 = load double, double* %24134
%24136 = load double*, double** %10
%24137 = getelementptr inbounds double, double* %24136, i64 2
%24138 = load double, double* %24137
%24139 = fsub double %24135, %24138
%24140 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24139, double* %24140
%24141 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24142 = load double, double* %24141
%24143 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24144 = load double, double* %24143
%24145 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24146 = load double, double* %24145
%24147 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24148 = load double, double* %24147
%24149 = fmul double %24146, %24148
%24150 = fneg double %24149
%24151 = call double @llvm.fmuladd.f64(double %24142, double %24144, double %24150)
%24152 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24151, double* %24152
%24153 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24154 = load double, double* %24153
%24155 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24156 = load double, double* %24155
%24157 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24158 = load double, double* %24157
%24159 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24160 = load double, double* %24159
%24161 = fmul double %24158, %24160
%24162 = fneg double %24161
%24163 = call double @llvm.fmuladd.f64(double %24154, double %24156, double %24162)
%24164 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24163, double* %24164
%24165 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24166 = load double, double* %24165
%24167 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24168 = load double, double* %24167
%24169 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24170 = load double, double* %24169
%24171 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24172 = load double, double* %24171
%24173 = fmul double %24170, %24172
%24174 = fneg double %24173
%24175 = call double @llvm.fmuladd.f64(double %24166, double %24168, double %24174)
%24176 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24175, double* %24176
%24177 = load double*, double** %12
%24178 = getelementptr inbounds double, double* %24177, i64 0
%24179 = load double, double* %24178
%24180 = load double*, double** %10
%24181 = getelementptr inbounds double, double* %24180, i64 0
%24182 = load double, double* %24181
%24183 = fsub double %24179, %24182
%24184 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24183, double* %24184
%24185 = load double*, double** %12
%24186 = getelementptr inbounds double, double* %24185, i64 1
%24187 = load double, double* %24186
%24188 = load double*, double** %10
%24189 = getelementptr inbounds double, double* %24188, i64 1
%24190 = load double, double* %24189
%24191 = fsub double %24187, %24190
%24192 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24191, double* %24192
%24193 = load double*, double** %12
%24194 = getelementptr inbounds double, double* %24193, i64 2
%24195 = load double, double* %24194
%24196 = load double*, double** %10
%24197 = getelementptr inbounds double, double* %24196, i64 2
%24198 = load double, double* %24197
%24199 = fsub double %24195, %24198
%24200 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24199, double* %24200
%24201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24202 = load double, double* %24201
%24203 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24204 = load double, double* %24203
%24205 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24206 = load double, double* %24205
%24207 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24208 = load double, double* %24207
%24209 = fmul double %24206, %24208
%24210 = call double @llvm.fmuladd.f64(double %24202, double %24204, double %24209)
%24211 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24212 = load double, double* %24211
%24213 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24214 = load double, double* %24213
%24215 = call double @llvm.fmuladd.f64(double %24212, double %24214, double %24210)
%24216 = fcmp ogt double %24215, 0.000000e+00
br i1 %24216, label %24217, label %24218
24217: ; preds = %24092
store i32 0, i32* %7
br label %37464
24218: ; preds = %24092
%24219 = load double*, double** %11
%24220 = getelementptr inbounds double, double* %24219, i64 0
%24221 = load double, double* %24220
%24222 = load double*, double** %8
%24223 = getelementptr inbounds double, double* %24222, i64 0
%24224 = load double, double* %24223
%24225 = fsub double %24221, %24224
%24226 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24225, double* %24226
%24227 = load double*, double** %11
%24228 = getelementptr inbounds double, double* %24227, i64 1
%24229 = load double, double* %24228
%24230 = load double*, double** %8
%24231 = getelementptr inbounds double, double* %24230, i64 1
%24232 = load double, double* %24231
%24233 = fsub double %24229, %24232
%24234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24233, double* %24234
%24235 = load double*, double** %11
%24236 = getelementptr inbounds double, double* %24235, i64 2
%24237 = load double, double* %24236
%24238 = load double*, double** %8
%24239 = getelementptr inbounds double, double* %24238, i64 2
%24240 = load double, double* %24239
%24241 = fsub double %24237, %24240
%24242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24241, double* %24242
%24243 = load double*, double** %9
%24244 = getelementptr inbounds double, double* %24243, i64 0
%24245 = load double, double* %24244
%24246 = load double*, double** %8
%24247 = getelementptr inbounds double, double* %24246, i64 0
%24248 = load double, double* %24247
%24249 = fsub double %24245, %24248
%24250 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24249, double* %24250
%24251 = load double*, double** %9
%24252 = getelementptr inbounds double, double* %24251, i64 1
%24253 = load double, double* %24252
%24254 = load double*, double** %8
%24255 = getelementptr inbounds double, double* %24254, i64 1
%24256 = load double, double* %24255
%24257 = fsub double %24253, %24256
%24258 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24257, double* %24258
%24259 = load double*, double** %9
%24260 = getelementptr inbounds double, double* %24259, i64 2
%24261 = load double, double* %24260
%24262 = load double*, double** %8
%24263 = getelementptr inbounds double, double* %24262, i64 2
%24264 = load double, double* %24263
%24265 = fsub double %24261, %24264
%24266 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24265, double* %24266
%24267 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24268 = load double, double* %24267
%24269 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24270 = load double, double* %24269
%24271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24272 = load double, double* %24271
%24273 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24274 = load double, double* %24273
%24275 = fmul double %24272, %24274
%24276 = fneg double %24275
%24277 = call double @llvm.fmuladd.f64(double %24268, double %24270, double %24276)
%24278 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24277, double* %24278
%24279 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24280 = load double, double* %24279
%24281 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24282 = load double, double* %24281
%24283 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24284 = load double, double* %24283
%24285 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24286 = load double, double* %24285
%24287 = fmul double %24284, %24286
%24288 = fneg double %24287
%24289 = call double @llvm.fmuladd.f64(double %24280, double %24282, double %24288)
%24290 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24289, double* %24290
%24291 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24292 = load double, double* %24291
%24293 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24294 = load double, double* %24293
%24295 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24296 = load double, double* %24295
%24297 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24298 = load double, double* %24297
%24299 = fmul double %24296, %24298
%24300 = fneg double %24299
%24301 = call double @llvm.fmuladd.f64(double %24292, double %24294, double %24300)
%24302 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24301, double* %24302
%24303 = load double*, double** %13
%24304 = getelementptr inbounds double, double* %24303, i64 0
%24305 = load double, double* %24304
%24306 = load double*, double** %8
%24307 = getelementptr inbounds double, double* %24306, i64 0
%24308 = load double, double* %24307
%24309 = fsub double %24305, %24308
%24310 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24309, double* %24310
%24311 = load double*, double** %13
%24312 = getelementptr inbounds double, double* %24311, i64 1
%24313 = load double, double* %24312
%24314 = load double*, double** %8
%24315 = getelementptr inbounds double, double* %24314, i64 1
%24316 = load double, double* %24315
%24317 = fsub double %24313, %24316
%24318 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24317, double* %24318
%24319 = load double*, double** %13
%24320 = getelementptr inbounds double, double* %24319, i64 2
%24321 = load double, double* %24320
%24322 = load double*, double** %8
%24323 = getelementptr inbounds double, double* %24322, i64 2
%24324 = load double, double* %24323
%24325 = fsub double %24321, %24324
%24326 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24325, double* %24326
%24327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24328 = load double, double* %24327
%24329 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24330 = load double, double* %24329
%24331 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24332 = load double, double* %24331
%24333 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24334 = load double, double* %24333
%24335 = fmul double %24332, %24334
%24336 = call double @llvm.fmuladd.f64(double %24328, double %24330, double %24335)
%24337 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24338 = load double, double* %24337
%24339 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24340 = load double, double* %24339
%24341 = call double @llvm.fmuladd.f64(double %24338, double %24340, double %24336)
%24342 = fcmp ogt double %24341, 0.000000e+00
br i1 %24342, label %24343, label %24344
24343: ; preds = %24218
store i32 0, i32* %7
br label %37464
24344: ; preds = %24218
store i32 1, i32* %7
br label %37464
24345: ; preds = %24089
%24346 = load double*, double** %12
%24347 = getelementptr inbounds double, double* %24346, i64 0
%24348 = load double, double* %24347
%24349 = load double*, double** %9
%24350 = getelementptr inbounds double, double* %24349, i64 0
%24351 = load double, double* %24350
%24352 = fsub double %24348, %24351
%24353 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24352, double* %24353
%24354 = load double*, double** %12
%24355 = getelementptr inbounds double, double* %24354, i64 1
%24356 = load double, double* %24355
%24357 = load double*, double** %9
%24358 = getelementptr inbounds double, double* %24357, i64 1
%24359 = load double, double* %24358
%24360 = fsub double %24356, %24359
%24361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24360, double* %24361
%24362 = load double*, double** %12
%24363 = getelementptr inbounds double, double* %24362, i64 2
%24364 = load double, double* %24363
%24365 = load double*, double** %9
%24366 = getelementptr inbounds double, double* %24365, i64 2
%24367 = load double, double* %24366
%24368 = fsub double %24364, %24367
%24369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24368, double* %24369
%24370 = load double*, double** %8
%24371 = getelementptr inbounds double, double* %24370, i64 0
%24372 = load double, double* %24371
%24373 = load double*, double** %9
%24374 = getelementptr inbounds double, double* %24373, i64 0
%24375 = load double, double* %24374
%24376 = fsub double %24372, %24375
%24377 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24376, double* %24377
%24378 = load double*, double** %8
%24379 = getelementptr inbounds double, double* %24378, i64 1
%24380 = load double, double* %24379
%24381 = load double*, double** %9
%24382 = getelementptr inbounds double, double* %24381, i64 1
%24383 = load double, double* %24382
%24384 = fsub double %24380, %24383
%24385 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24384, double* %24385
%24386 = load double*, double** %8
%24387 = getelementptr inbounds double, double* %24386, i64 2
%24388 = load double, double* %24387
%24389 = load double*, double** %9
%24390 = getelementptr inbounds double, double* %24389, i64 2
%24391 = load double, double* %24390
%24392 = fsub double %24388, %24391
%24393 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24392, double* %24393
%24394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24395 = load double, double* %24394
%24396 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24397 = load double, double* %24396
%24398 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24399 = load double, double* %24398
%24400 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24401 = load double, double* %24400
%24402 = fmul double %24399, %24401
%24403 = fneg double %24402
%24404 = call double @llvm.fmuladd.f64(double %24395, double %24397, double %24403)
%24405 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24404, double* %24405
%24406 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24407 = load double, double* %24406
%24408 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24409 = load double, double* %24408
%24410 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24411 = load double, double* %24410
%24412 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24413 = load double, double* %24412
%24414 = fmul double %24411, %24413
%24415 = fneg double %24414
%24416 = call double @llvm.fmuladd.f64(double %24407, double %24409, double %24415)
%24417 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24416, double* %24417
%24418 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24419 = load double, double* %24418
%24420 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24421 = load double, double* %24420
%24422 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24423 = load double, double* %24422
%24424 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24425 = load double, double* %24424
%24426 = fmul double %24423, %24425
%24427 = fneg double %24426
%24428 = call double @llvm.fmuladd.f64(double %24419, double %24421, double %24427)
%24429 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24428, double* %24429
%24430 = load double*, double** %13
%24431 = getelementptr inbounds double, double* %24430, i64 0
%24432 = load double, double* %24431
%24433 = load double*, double** %9
%24434 = getelementptr inbounds double, double* %24433, i64 0
%24435 = load double, double* %24434
%24436 = fsub double %24432, %24435
%24437 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24436, double* %24437
%24438 = load double*, double** %13
%24439 = getelementptr inbounds double, double* %24438, i64 1
%24440 = load double, double* %24439
%24441 = load double*, double** %9
%24442 = getelementptr inbounds double, double* %24441, i64 1
%24443 = load double, double* %24442
%24444 = fsub double %24440, %24443
%24445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24444, double* %24445
%24446 = load double*, double** %13
%24447 = getelementptr inbounds double, double* %24446, i64 2
%24448 = load double, double* %24447
%24449 = load double*, double** %9
%24450 = getelementptr inbounds double, double* %24449, i64 2
%24451 = load double, double* %24450
%24452 = fsub double %24448, %24451
%24453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24452, double* %24453
%24454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24455 = load double, double* %24454
%24456 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24457 = load double, double* %24456
%24458 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24459 = load double, double* %24458
%24460 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24461 = load double, double* %24460
%24462 = fmul double %24459, %24461
%24463 = call double @llvm.fmuladd.f64(double %24455, double %24457, double %24462)
%24464 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24465 = load double, double* %24464
%24466 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24467 = load double, double* %24466
%24468 = call double @llvm.fmuladd.f64(double %24465, double %24467, double %24463)
%24469 = fcmp ogt double %24468, 0.000000e+00
br i1 %24469, label %24470, label %24471
24470: ; preds = %24345
store i32 0, i32* %7
br label %37464
24471: ; preds = %24345
%24472 = load double*, double** %12
%24473 = getelementptr inbounds double, double* %24472, i64 0
%24474 = load double, double* %24473
%24475 = load double*, double** %8
%24476 = getelementptr inbounds double, double* %24475, i64 0
%24477 = load double, double* %24476
%24478 = fsub double %24474, %24477
%24479 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24478, double* %24479
%24480 = load double*, double** %12
%24481 = getelementptr inbounds double, double* %24480, i64 1
%24482 = load double, double* %24481
%24483 = load double*, double** %8
%24484 = getelementptr inbounds double, double* %24483, i64 1
%24485 = load double, double* %24484
%24486 = fsub double %24482, %24485
%24487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24486, double* %24487
%24488 = load double*, double** %12
%24489 = getelementptr inbounds double, double* %24488, i64 2
%24490 = load double, double* %24489
%24491 = load double*, double** %8
%24492 = getelementptr inbounds double, double* %24491, i64 2
%24493 = load double, double* %24492
%24494 = fsub double %24490, %24493
%24495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24494, double* %24495
%24496 = load double*, double** %10
%24497 = getelementptr inbounds double, double* %24496, i64 0
%24498 = load double, double* %24497
%24499 = load double*, double** %8
%24500 = getelementptr inbounds double, double* %24499, i64 0
%24501 = load double, double* %24500
%24502 = fsub double %24498, %24501
%24503 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24502, double* %24503
%24504 = load double*, double** %10
%24505 = getelementptr inbounds double, double* %24504, i64 1
%24506 = load double, double* %24505
%24507 = load double*, double** %8
%24508 = getelementptr inbounds double, double* %24507, i64 1
%24509 = load double, double* %24508
%24510 = fsub double %24506, %24509
%24511 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24510, double* %24511
%24512 = load double*, double** %10
%24513 = getelementptr inbounds double, double* %24512, i64 2
%24514 = load double, double* %24513
%24515 = load double*, double** %8
%24516 = getelementptr inbounds double, double* %24515, i64 2
%24517 = load double, double* %24516
%24518 = fsub double %24514, %24517
%24519 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24518, double* %24519
%24520 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24521 = load double, double* %24520
%24522 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24523 = load double, double* %24522
%24524 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24525 = load double, double* %24524
%24526 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24527 = load double, double* %24526
%24528 = fmul double %24525, %24527
%24529 = fneg double %24528
%24530 = call double @llvm.fmuladd.f64(double %24521, double %24523, double %24529)
%24531 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24530, double* %24531
%24532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24533 = load double, double* %24532
%24534 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24535 = load double, double* %24534
%24536 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24537 = load double, double* %24536
%24538 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24539 = load double, double* %24538
%24540 = fmul double %24537, %24539
%24541 = fneg double %24540
%24542 = call double @llvm.fmuladd.f64(double %24533, double %24535, double %24541)
%24543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24542, double* %24543
%24544 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24545 = load double, double* %24544
%24546 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24547 = load double, double* %24546
%24548 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24549 = load double, double* %24548
%24550 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24551 = load double, double* %24550
%24552 = fmul double %24549, %24551
%24553 = fneg double %24552
%24554 = call double @llvm.fmuladd.f64(double %24545, double %24547, double %24553)
%24555 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24554, double* %24555
%24556 = load double*, double** %11
%24557 = getelementptr inbounds double, double* %24556, i64 0
%24558 = load double, double* %24557
%24559 = load double*, double** %8
%24560 = getelementptr inbounds double, double* %24559, i64 0
%24561 = load double, double* %24560
%24562 = fsub double %24558, %24561
%24563 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24562, double* %24563
%24564 = load double*, double** %11
%24565 = getelementptr inbounds double, double* %24564, i64 1
%24566 = load double, double* %24565
%24567 = load double*, double** %8
%24568 = getelementptr inbounds double, double* %24567, i64 1
%24569 = load double, double* %24568
%24570 = fsub double %24566, %24569
%24571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24570, double* %24571
%24572 = load double*, double** %11
%24573 = getelementptr inbounds double, double* %24572, i64 2
%24574 = load double, double* %24573
%24575 = load double*, double** %8
%24576 = getelementptr inbounds double, double* %24575, i64 2
%24577 = load double, double* %24576
%24578 = fsub double %24574, %24577
%24579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24578, double* %24579
%24580 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24581 = load double, double* %24580
%24582 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24583 = load double, double* %24582
%24584 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24585 = load double, double* %24584
%24586 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24587 = load double, double* %24586
%24588 = fmul double %24585, %24587
%24589 = call double @llvm.fmuladd.f64(double %24581, double %24583, double %24588)
%24590 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24591 = load double, double* %24590
%24592 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24593 = load double, double* %24592
%24594 = call double @llvm.fmuladd.f64(double %24591, double %24593, double %24589)
%24595 = fcmp ogt double %24594, 0.000000e+00
br i1 %24595, label %24596, label %24597
24596: ; preds = %24471
store i32 0, i32* %7
br label %37464
24597: ; preds = %24471
store i32 1, i32* %7
br label %37464
24598: ; preds = %24086
%24599 = load double, double* %19
%24600 = fcmp ogt double %24599, 0.000000e+00
br i1 %24600, label %24601, label %24854
24601: ; preds = %24598
%24602 = load double*, double** %13
%24603 = getelementptr inbounds double, double* %24602, i64 0
%24604 = load double, double* %24603
%24605 = load double*, double** %9
%24606 = getelementptr inbounds double, double* %24605, i64 0
%24607 = load double, double* %24606
%24608 = fsub double %24604, %24607
%24609 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24608, double* %24609
%24610 = load double*, double** %13
%24611 = getelementptr inbounds double, double* %24610, i64 1
%24612 = load double, double* %24611
%24613 = load double*, double** %9
%24614 = getelementptr inbounds double, double* %24613, i64 1
%24615 = load double, double* %24614
%24616 = fsub double %24612, %24615
%24617 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24616, double* %24617
%24618 = load double*, double** %13
%24619 = getelementptr inbounds double, double* %24618, i64 2
%24620 = load double, double* %24619
%24621 = load double*, double** %9
%24622 = getelementptr inbounds double, double* %24621, i64 2
%24623 = load double, double* %24622
%24624 = fsub double %24620, %24623
%24625 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24624, double* %24625
%24626 = load double*, double** %8
%24627 = getelementptr inbounds double, double* %24626, i64 0
%24628 = load double, double* %24627
%24629 = load double*, double** %9
%24630 = getelementptr inbounds double, double* %24629, i64 0
%24631 = load double, double* %24630
%24632 = fsub double %24628, %24631
%24633 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24632, double* %24633
%24634 = load double*, double** %8
%24635 = getelementptr inbounds double, double* %24634, i64 1
%24636 = load double, double* %24635
%24637 = load double*, double** %9
%24638 = getelementptr inbounds double, double* %24637, i64 1
%24639 = load double, double* %24638
%24640 = fsub double %24636, %24639
%24641 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24640, double* %24641
%24642 = load double*, double** %8
%24643 = getelementptr inbounds double, double* %24642, i64 2
%24644 = load double, double* %24643
%24645 = load double*, double** %9
%24646 = getelementptr inbounds double, double* %24645, i64 2
%24647 = load double, double* %24646
%24648 = fsub double %24644, %24647
%24649 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24648, double* %24649
%24650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24651 = load double, double* %24650
%24652 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24653 = load double, double* %24652
%24654 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24655 = load double, double* %24654
%24656 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24657 = load double, double* %24656
%24658 = fmul double %24655, %24657
%24659 = fneg double %24658
%24660 = call double @llvm.fmuladd.f64(double %24651, double %24653, double %24659)
%24661 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24660, double* %24661
%24662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24663 = load double, double* %24662
%24664 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24665 = load double, double* %24664
%24666 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24667 = load double, double* %24666
%24668 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24669 = load double, double* %24668
%24670 = fmul double %24667, %24669
%24671 = fneg double %24670
%24672 = call double @llvm.fmuladd.f64(double %24663, double %24665, double %24671)
%24673 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24672, double* %24673
%24674 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24675 = load double, double* %24674
%24676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24677 = load double, double* %24676
%24678 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24679 = load double, double* %24678
%24680 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24681 = load double, double* %24680
%24682 = fmul double %24679, %24681
%24683 = fneg double %24682
%24684 = call double @llvm.fmuladd.f64(double %24675, double %24677, double %24683)
%24685 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24684, double* %24685
%24686 = load double*, double** %11
%24687 = getelementptr inbounds double, double* %24686, i64 0
%24688 = load double, double* %24687
%24689 = load double*, double** %9
%24690 = getelementptr inbounds double, double* %24689, i64 0
%24691 = load double, double* %24690
%24692 = fsub double %24688, %24691
%24693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24692, double* %24693
%24694 = load double*, double** %11
%24695 = getelementptr inbounds double, double* %24694, i64 1
%24696 = load double, double* %24695
%24697 = load double*, double** %9
%24698 = getelementptr inbounds double, double* %24697, i64 1
%24699 = load double, double* %24698
%24700 = fsub double %24696, %24699
%24701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24700, double* %24701
%24702 = load double*, double** %11
%24703 = getelementptr inbounds double, double* %24702, i64 2
%24704 = load double, double* %24703
%24705 = load double*, double** %9
%24706 = getelementptr inbounds double, double* %24705, i64 2
%24707 = load double, double* %24706
%24708 = fsub double %24704, %24707
%24709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24708, double* %24709
%24710 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24711 = load double, double* %24710
%24712 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24713 = load double, double* %24712
%24714 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24715 = load double, double* %24714
%24716 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24717 = load double, double* %24716
%24718 = fmul double %24715, %24717
%24719 = call double @llvm.fmuladd.f64(double %24711, double %24713, double %24718)
%24720 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24721 = load double, double* %24720
%24722 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24723 = load double, double* %24722
%24724 = call double @llvm.fmuladd.f64(double %24721, double %24723, double %24719)
%24725 = fcmp ogt double %24724, 0.000000e+00
br i1 %24725, label %24726, label %24727
24726: ; preds = %24601
store i32 0, i32* %7
br label %37464
24727: ; preds = %24601
%24728 = load double*, double** %13
%24729 = getelementptr inbounds double, double* %24728, i64 0
%24730 = load double, double* %24729
%24731 = load double*, double** %8
%24732 = getelementptr inbounds double, double* %24731, i64 0
%24733 = load double, double* %24732
%24734 = fsub double %24730, %24733
%24735 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24734, double* %24735
%24736 = load double*, double** %13
%24737 = getelementptr inbounds double, double* %24736, i64 1
%24738 = load double, double* %24737
%24739 = load double*, double** %8
%24740 = getelementptr inbounds double, double* %24739, i64 1
%24741 = load double, double* %24740
%24742 = fsub double %24738, %24741
%24743 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24742, double* %24743
%24744 = load double*, double** %13
%24745 = getelementptr inbounds double, double* %24744, i64 2
%24746 = load double, double* %24745
%24747 = load double*, double** %8
%24748 = getelementptr inbounds double, double* %24747, i64 2
%24749 = load double, double* %24748
%24750 = fsub double %24746, %24749
%24751 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24750, double* %24751
%24752 = load double*, double** %10
%24753 = getelementptr inbounds double, double* %24752, i64 0
%24754 = load double, double* %24753
%24755 = load double*, double** %8
%24756 = getelementptr inbounds double, double* %24755, i64 0
%24757 = load double, double* %24756
%24758 = fsub double %24754, %24757
%24759 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24758, double* %24759
%24760 = load double*, double** %10
%24761 = getelementptr inbounds double, double* %24760, i64 1
%24762 = load double, double* %24761
%24763 = load double*, double** %8
%24764 = getelementptr inbounds double, double* %24763, i64 1
%24765 = load double, double* %24764
%24766 = fsub double %24762, %24765
%24767 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24766, double* %24767
%24768 = load double*, double** %10
%24769 = getelementptr inbounds double, double* %24768, i64 2
%24770 = load double, double* %24769
%24771 = load double*, double** %8
%24772 = getelementptr inbounds double, double* %24771, i64 2
%24773 = load double, double* %24772
%24774 = fsub double %24770, %24773
%24775 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24774, double* %24775
%24776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24777 = load double, double* %24776
%24778 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24779 = load double, double* %24778
%24780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24781 = load double, double* %24780
%24782 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24783 = load double, double* %24782
%24784 = fmul double %24781, %24783
%24785 = fneg double %24784
%24786 = call double @llvm.fmuladd.f64(double %24777, double %24779, double %24785)
%24787 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24786, double* %24787
%24788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24789 = load double, double* %24788
%24790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24791 = load double, double* %24790
%24792 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24793 = load double, double* %24792
%24794 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24795 = load double, double* %24794
%24796 = fmul double %24793, %24795
%24797 = fneg double %24796
%24798 = call double @llvm.fmuladd.f64(double %24789, double %24791, double %24797)
%24799 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24798, double* %24799
%24800 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24801 = load double, double* %24800
%24802 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24803 = load double, double* %24802
%24804 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24805 = load double, double* %24804
%24806 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24807 = load double, double* %24806
%24808 = fmul double %24805, %24807
%24809 = fneg double %24808
%24810 = call double @llvm.fmuladd.f64(double %24801, double %24803, double %24809)
%24811 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24810, double* %24811
%24812 = load double*, double** %12
%24813 = getelementptr inbounds double, double* %24812, i64 0
%24814 = load double, double* %24813
%24815 = load double*, double** %8
%24816 = getelementptr inbounds double, double* %24815, i64 0
%24817 = load double, double* %24816
%24818 = fsub double %24814, %24817
%24819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24818, double* %24819
%24820 = load double*, double** %12
%24821 = getelementptr inbounds double, double* %24820, i64 1
%24822 = load double, double* %24821
%24823 = load double*, double** %8
%24824 = getelementptr inbounds double, double* %24823, i64 1
%24825 = load double, double* %24824
%24826 = fsub double %24822, %24825
%24827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24826, double* %24827
%24828 = load double*, double** %12
%24829 = getelementptr inbounds double, double* %24828, i64 2
%24830 = load double, double* %24829
%24831 = load double*, double** %8
%24832 = getelementptr inbounds double, double* %24831, i64 2
%24833 = load double, double* %24832
%24834 = fsub double %24830, %24833
%24835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24834, double* %24835
%24836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24837 = load double, double* %24836
%24838 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24839 = load double, double* %24838
%24840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24841 = load double, double* %24840
%24842 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24843 = load double, double* %24842
%24844 = fmul double %24841, %24843
%24845 = call double @llvm.fmuladd.f64(double %24837, double %24839, double %24844)
%24846 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24847 = load double, double* %24846
%24848 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24849 = load double, double* %24848
%24850 = call double @llvm.fmuladd.f64(double %24847, double %24849, double %24845)
%24851 = fcmp ogt double %24850, 0.000000e+00
br i1 %24851, label %24852, label %24853
24852: ; preds = %24727
store i32 0, i32* %7
br label %37464
24853: ; preds = %24727
store i32 1, i32* %7
br label %37464
24854: ; preds = %24598
%24855 = load double, double* %19
%24856 = fcmp olt double %24855, 0.000000e+00
br i1 %24856, label %24857, label %25110
24857: ; preds = %24854
%24858 = load double*, double** %13
%24859 = getelementptr inbounds double, double* %24858, i64 0
%24860 = load double, double* %24859
%24861 = load double*, double** %10
%24862 = getelementptr inbounds double, double* %24861, i64 0
%24863 = load double, double* %24862
%24864 = fsub double %24860, %24863
%24865 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24864, double* %24865
%24866 = load double*, double** %13
%24867 = getelementptr inbounds double, double* %24866, i64 1
%24868 = load double, double* %24867
%24869 = load double*, double** %10
%24870 = getelementptr inbounds double, double* %24869, i64 1
%24871 = load double, double* %24870
%24872 = fsub double %24868, %24871
%24873 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24872, double* %24873
%24874 = load double*, double** %13
%24875 = getelementptr inbounds double, double* %24874, i64 2
%24876 = load double, double* %24875
%24877 = load double*, double** %10
%24878 = getelementptr inbounds double, double* %24877, i64 2
%24879 = load double, double* %24878
%24880 = fsub double %24876, %24879
%24881 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24880, double* %24881
%24882 = load double*, double** %8
%24883 = getelementptr inbounds double, double* %24882, i64 0
%24884 = load double, double* %24883
%24885 = load double*, double** %10
%24886 = getelementptr inbounds double, double* %24885, i64 0
%24887 = load double, double* %24886
%24888 = fsub double %24884, %24887
%24889 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %24888, double* %24889
%24890 = load double*, double** %8
%24891 = getelementptr inbounds double, double* %24890, i64 1
%24892 = load double, double* %24891
%24893 = load double*, double** %10
%24894 = getelementptr inbounds double, double* %24893, i64 1
%24895 = load double, double* %24894
%24896 = fsub double %24892, %24895
%24897 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %24896, double* %24897
%24898 = load double*, double** %8
%24899 = getelementptr inbounds double, double* %24898, i64 2
%24900 = load double, double* %24899
%24901 = load double*, double** %10
%24902 = getelementptr inbounds double, double* %24901, i64 2
%24903 = load double, double* %24902
%24904 = fsub double %24900, %24903
%24905 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %24904, double* %24905
%24906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24907 = load double, double* %24906
%24908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24909 = load double, double* %24908
%24910 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24911 = load double, double* %24910
%24912 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24913 = load double, double* %24912
%24914 = fmul double %24911, %24913
%24915 = fneg double %24914
%24916 = call double @llvm.fmuladd.f64(double %24907, double %24909, double %24915)
%24917 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %24916, double* %24917
%24918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24919 = load double, double* %24918
%24920 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24921 = load double, double* %24920
%24922 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24923 = load double, double* %24922
%24924 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%24925 = load double, double* %24924
%24926 = fmul double %24923, %24925
%24927 = fneg double %24926
%24928 = call double @llvm.fmuladd.f64(double %24919, double %24921, double %24927)
%24929 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %24928, double* %24929
%24930 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24931 = load double, double* %24930
%24932 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%24933 = load double, double* %24932
%24934 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24935 = load double, double* %24934
%24936 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%24937 = load double, double* %24936
%24938 = fmul double %24935, %24937
%24939 = fneg double %24938
%24940 = call double @llvm.fmuladd.f64(double %24931, double %24933, double %24939)
%24941 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %24940, double* %24941
%24942 = load double*, double** %11
%24943 = getelementptr inbounds double, double* %24942, i64 0
%24944 = load double, double* %24943
%24945 = load double*, double** %10
%24946 = getelementptr inbounds double, double* %24945, i64 0
%24947 = load double, double* %24946
%24948 = fsub double %24944, %24947
%24949 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24948, double* %24949
%24950 = load double*, double** %11
%24951 = getelementptr inbounds double, double* %24950, i64 1
%24952 = load double, double* %24951
%24953 = load double*, double** %10
%24954 = getelementptr inbounds double, double* %24953, i64 1
%24955 = load double, double* %24954
%24956 = fsub double %24952, %24955
%24957 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24956, double* %24957
%24958 = load double*, double** %11
%24959 = getelementptr inbounds double, double* %24958, i64 2
%24960 = load double, double* %24959
%24961 = load double*, double** %10
%24962 = getelementptr inbounds double, double* %24961, i64 2
%24963 = load double, double* %24962
%24964 = fsub double %24960, %24963
%24965 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %24964, double* %24965
%24966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%24967 = load double, double* %24966
%24968 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%24969 = load double, double* %24968
%24970 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%24971 = load double, double* %24970
%24972 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%24973 = load double, double* %24972
%24974 = fmul double %24971, %24973
%24975 = call double @llvm.fmuladd.f64(double %24967, double %24969, double %24974)
%24976 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%24977 = load double, double* %24976
%24978 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%24979 = load double, double* %24978
%24980 = call double @llvm.fmuladd.f64(double %24977, double %24979, double %24975)
%24981 = fcmp ogt double %24980, 0.000000e+00
br i1 %24981, label %24982, label %24983
24982: ; preds = %24857
store i32 0, i32* %7
br label %37464
24983: ; preds = %24857
%24984 = load double*, double** %13
%24985 = getelementptr inbounds double, double* %24984, i64 0
%24986 = load double, double* %24985
%24987 = load double*, double** %8
%24988 = getelementptr inbounds double, double* %24987, i64 0
%24989 = load double, double* %24988
%24990 = fsub double %24986, %24989
%24991 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %24990, double* %24991
%24992 = load double*, double** %13
%24993 = getelementptr inbounds double, double* %24992, i64 1
%24994 = load double, double* %24993
%24995 = load double*, double** %8
%24996 = getelementptr inbounds double, double* %24995, i64 1
%24997 = load double, double* %24996
%24998 = fsub double %24994, %24997
%24999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %24998, double* %24999
%25000 = load double*, double** %13
%25001 = getelementptr inbounds double, double* %25000, i64 2
%25002 = load double, double* %25001
%25003 = load double*, double** %8
%25004 = getelementptr inbounds double, double* %25003, i64 2
%25005 = load double, double* %25004
%25006 = fsub double %25002, %25005
%25007 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25006, double* %25007
%25008 = load double*, double** %9
%25009 = getelementptr inbounds double, double* %25008, i64 0
%25010 = load double, double* %25009
%25011 = load double*, double** %8
%25012 = getelementptr inbounds double, double* %25011, i64 0
%25013 = load double, double* %25012
%25014 = fsub double %25010, %25013
%25015 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25014, double* %25015
%25016 = load double*, double** %9
%25017 = getelementptr inbounds double, double* %25016, i64 1
%25018 = load double, double* %25017
%25019 = load double*, double** %8
%25020 = getelementptr inbounds double, double* %25019, i64 1
%25021 = load double, double* %25020
%25022 = fsub double %25018, %25021
%25023 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25022, double* %25023
%25024 = load double*, double** %9
%25025 = getelementptr inbounds double, double* %25024, i64 2
%25026 = load double, double* %25025
%25027 = load double*, double** %8
%25028 = getelementptr inbounds double, double* %25027, i64 2
%25029 = load double, double* %25028
%25030 = fsub double %25026, %25029
%25031 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25030, double* %25031
%25032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25033 = load double, double* %25032
%25034 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25035 = load double, double* %25034
%25036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25037 = load double, double* %25036
%25038 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25039 = load double, double* %25038
%25040 = fmul double %25037, %25039
%25041 = fneg double %25040
%25042 = call double @llvm.fmuladd.f64(double %25033, double %25035, double %25041)
%25043 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25042, double* %25043
%25044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25045 = load double, double* %25044
%25046 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25047 = load double, double* %25046
%25048 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25049 = load double, double* %25048
%25050 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25051 = load double, double* %25050
%25052 = fmul double %25049, %25051
%25053 = fneg double %25052
%25054 = call double @llvm.fmuladd.f64(double %25045, double %25047, double %25053)
%25055 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25054, double* %25055
%25056 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25057 = load double, double* %25056
%25058 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25059 = load double, double* %25058
%25060 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25061 = load double, double* %25060
%25062 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25063 = load double, double* %25062
%25064 = fmul double %25061, %25063
%25065 = fneg double %25064
%25066 = call double @llvm.fmuladd.f64(double %25057, double %25059, double %25065)
%25067 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25066, double* %25067
%25068 = load double*, double** %12
%25069 = getelementptr inbounds double, double* %25068, i64 0
%25070 = load double, double* %25069
%25071 = load double*, double** %8
%25072 = getelementptr inbounds double, double* %25071, i64 0
%25073 = load double, double* %25072
%25074 = fsub double %25070, %25073
%25075 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25074, double* %25075
%25076 = load double*, double** %12
%25077 = getelementptr inbounds double, double* %25076, i64 1
%25078 = load double, double* %25077
%25079 = load double*, double** %8
%25080 = getelementptr inbounds double, double* %25079, i64 1
%25081 = load double, double* %25080
%25082 = fsub double %25078, %25081
%25083 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25082, double* %25083
%25084 = load double*, double** %12
%25085 = getelementptr inbounds double, double* %25084, i64 2
%25086 = load double, double* %25085
%25087 = load double*, double** %8
%25088 = getelementptr inbounds double, double* %25087, i64 2
%25089 = load double, double* %25088
%25090 = fsub double %25086, %25089
%25091 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25090, double* %25091
%25092 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25093 = load double, double* %25092
%25094 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25095 = load double, double* %25094
%25096 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25097 = load double, double* %25096
%25098 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25099 = load double, double* %25098
%25100 = fmul double %25097, %25099
%25101 = call double @llvm.fmuladd.f64(double %25093, double %25095, double %25100)
%25102 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25103 = load double, double* %25102
%25104 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25105 = load double, double* %25104
%25106 = call double @llvm.fmuladd.f64(double %25103, double %25105, double %25101)
%25107 = fcmp ogt double %25106, 0.000000e+00
br i1 %25107, label %25108, label %25109
25108: ; preds = %24983
store i32 0, i32* %7
br label %37464
25109: ; preds = %24983
store i32 1, i32* %7
br label %37464
25110: ; preds = %24854
%25111 = load double*, double** %8
%25112 = load double*, double** %9
%25113 = load double*, double** %10
%25114 = load double*, double** %11
%25115 = load double*, double** %12
%25116 = load double*, double** %13
%25117 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25118 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %25111, double* %25112, double* %25113, double* %25114, double* %25115, double* %25116, double* %25117)
store i32 %25118, i32* %7
br label %37464
25119: ; preds = %18951
%25120 = load double, double* %15
%25121 = fcmp ogt double %25120, 0.000000e+00
br i1 %25121, label %25122, label %31287
25122: ; preds = %25119
%25123 = load double, double* %16
%25124 = fcmp ogt double %25123, 0.000000e+00
br i1 %25124, label %25125, label %28206
25125: ; preds = %25122
%25126 = load double, double* %17
%25127 = fcmp ogt double %25126, 0.000000e+00
br i1 %25127, label %25128, label %25893
25128: ; preds = %25125
%25129 = load double, double* %19
%25130 = fcmp ogt double %25129, 0.000000e+00
br i1 %25130, label %25131, label %25384
25131: ; preds = %25128
%25132 = load double*, double** %12
%25133 = getelementptr inbounds double, double* %25132, i64 0
%25134 = load double, double* %25133
%25135 = load double*, double** %10
%25136 = getelementptr inbounds double, double* %25135, i64 0
%25137 = load double, double* %25136
%25138 = fsub double %25134, %25137
%25139 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25138, double* %25139
%25140 = load double*, double** %12
%25141 = getelementptr inbounds double, double* %25140, i64 1
%25142 = load double, double* %25141
%25143 = load double*, double** %10
%25144 = getelementptr inbounds double, double* %25143, i64 1
%25145 = load double, double* %25144
%25146 = fsub double %25142, %25145
%25147 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25146, double* %25147
%25148 = load double*, double** %12
%25149 = getelementptr inbounds double, double* %25148, i64 2
%25150 = load double, double* %25149
%25151 = load double*, double** %10
%25152 = getelementptr inbounds double, double* %25151, i64 2
%25153 = load double, double* %25152
%25154 = fsub double %25150, %25153
%25155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25154, double* %25155
%25156 = load double*, double** %8
%25157 = getelementptr inbounds double, double* %25156, i64 0
%25158 = load double, double* %25157
%25159 = load double*, double** %10
%25160 = getelementptr inbounds double, double* %25159, i64 0
%25161 = load double, double* %25160
%25162 = fsub double %25158, %25161
%25163 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25162, double* %25163
%25164 = load double*, double** %8
%25165 = getelementptr inbounds double, double* %25164, i64 1
%25166 = load double, double* %25165
%25167 = load double*, double** %10
%25168 = getelementptr inbounds double, double* %25167, i64 1
%25169 = load double, double* %25168
%25170 = fsub double %25166, %25169
%25171 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25170, double* %25171
%25172 = load double*, double** %8
%25173 = getelementptr inbounds double, double* %25172, i64 2
%25174 = load double, double* %25173
%25175 = load double*, double** %10
%25176 = getelementptr inbounds double, double* %25175, i64 2
%25177 = load double, double* %25176
%25178 = fsub double %25174, %25177
%25179 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25178, double* %25179
%25180 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25181 = load double, double* %25180
%25182 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25183 = load double, double* %25182
%25184 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25185 = load double, double* %25184
%25186 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25187 = load double, double* %25186
%25188 = fmul double %25185, %25187
%25189 = fneg double %25188
%25190 = call double @llvm.fmuladd.f64(double %25181, double %25183, double %25189)
%25191 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25190, double* %25191
%25192 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25193 = load double, double* %25192
%25194 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25195 = load double, double* %25194
%25196 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25197 = load double, double* %25196
%25198 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25199 = load double, double* %25198
%25200 = fmul double %25197, %25199
%25201 = fneg double %25200
%25202 = call double @llvm.fmuladd.f64(double %25193, double %25195, double %25201)
%25203 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25202, double* %25203
%25204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25205 = load double, double* %25204
%25206 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25207 = load double, double* %25206
%25208 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25209 = load double, double* %25208
%25210 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25211 = load double, double* %25210
%25212 = fmul double %25209, %25211
%25213 = fneg double %25212
%25214 = call double @llvm.fmuladd.f64(double %25205, double %25207, double %25213)
%25215 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25214, double* %25215
%25216 = load double*, double** %11
%25217 = getelementptr inbounds double, double* %25216, i64 0
%25218 = load double, double* %25217
%25219 = load double*, double** %10
%25220 = getelementptr inbounds double, double* %25219, i64 0
%25221 = load double, double* %25220
%25222 = fsub double %25218, %25221
%25223 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25222, double* %25223
%25224 = load double*, double** %11
%25225 = getelementptr inbounds double, double* %25224, i64 1
%25226 = load double, double* %25225
%25227 = load double*, double** %10
%25228 = getelementptr inbounds double, double* %25227, i64 1
%25229 = load double, double* %25228
%25230 = fsub double %25226, %25229
%25231 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25230, double* %25231
%25232 = load double*, double** %11
%25233 = getelementptr inbounds double, double* %25232, i64 2
%25234 = load double, double* %25233
%25235 = load double*, double** %10
%25236 = getelementptr inbounds double, double* %25235, i64 2
%25237 = load double, double* %25236
%25238 = fsub double %25234, %25237
%25239 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25238, double* %25239
%25240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25241 = load double, double* %25240
%25242 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25243 = load double, double* %25242
%25244 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25245 = load double, double* %25244
%25246 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25247 = load double, double* %25246
%25248 = fmul double %25245, %25247
%25249 = call double @llvm.fmuladd.f64(double %25241, double %25243, double %25248)
%25250 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25251 = load double, double* %25250
%25252 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25253 = load double, double* %25252
%25254 = call double @llvm.fmuladd.f64(double %25251, double %25253, double %25249)
%25255 = fcmp ogt double %25254, 0.000000e+00
br i1 %25255, label %25256, label %25257
25256: ; preds = %25131
store i32 0, i32* %7
br label %37464
25257: ; preds = %25131
%25258 = load double*, double** %12
%25259 = getelementptr inbounds double, double* %25258, i64 0
%25260 = load double, double* %25259
%25261 = load double*, double** %8
%25262 = getelementptr inbounds double, double* %25261, i64 0
%25263 = load double, double* %25262
%25264 = fsub double %25260, %25263
%25265 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25264, double* %25265
%25266 = load double*, double** %12
%25267 = getelementptr inbounds double, double* %25266, i64 1
%25268 = load double, double* %25267
%25269 = load double*, double** %8
%25270 = getelementptr inbounds double, double* %25269, i64 1
%25271 = load double, double* %25270
%25272 = fsub double %25268, %25271
%25273 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25272, double* %25273
%25274 = load double*, double** %12
%25275 = getelementptr inbounds double, double* %25274, i64 2
%25276 = load double, double* %25275
%25277 = load double*, double** %8
%25278 = getelementptr inbounds double, double* %25277, i64 2
%25279 = load double, double* %25278
%25280 = fsub double %25276, %25279
%25281 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25280, double* %25281
%25282 = load double*, double** %9
%25283 = getelementptr inbounds double, double* %25282, i64 0
%25284 = load double, double* %25283
%25285 = load double*, double** %8
%25286 = getelementptr inbounds double, double* %25285, i64 0
%25287 = load double, double* %25286
%25288 = fsub double %25284, %25287
%25289 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25288, double* %25289
%25290 = load double*, double** %9
%25291 = getelementptr inbounds double, double* %25290, i64 1
%25292 = load double, double* %25291
%25293 = load double*, double** %8
%25294 = getelementptr inbounds double, double* %25293, i64 1
%25295 = load double, double* %25294
%25296 = fsub double %25292, %25295
%25297 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25296, double* %25297
%25298 = load double*, double** %9
%25299 = getelementptr inbounds double, double* %25298, i64 2
%25300 = load double, double* %25299
%25301 = load double*, double** %8
%25302 = getelementptr inbounds double, double* %25301, i64 2
%25303 = load double, double* %25302
%25304 = fsub double %25300, %25303
%25305 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25304, double* %25305
%25306 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25307 = load double, double* %25306
%25308 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25309 = load double, double* %25308
%25310 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25311 = load double, double* %25310
%25312 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25313 = load double, double* %25312
%25314 = fmul double %25311, %25313
%25315 = fneg double %25314
%25316 = call double @llvm.fmuladd.f64(double %25307, double %25309, double %25315)
%25317 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25316, double* %25317
%25318 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25319 = load double, double* %25318
%25320 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25321 = load double, double* %25320
%25322 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25323 = load double, double* %25322
%25324 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25325 = load double, double* %25324
%25326 = fmul double %25323, %25325
%25327 = fneg double %25326
%25328 = call double @llvm.fmuladd.f64(double %25319, double %25321, double %25327)
%25329 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25328, double* %25329
%25330 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25331 = load double, double* %25330
%25332 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25333 = load double, double* %25332
%25334 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25335 = load double, double* %25334
%25336 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25337 = load double, double* %25336
%25338 = fmul double %25335, %25337
%25339 = fneg double %25338
%25340 = call double @llvm.fmuladd.f64(double %25331, double %25333, double %25339)
%25341 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25340, double* %25341
%25342 = load double*, double** %13
%25343 = getelementptr inbounds double, double* %25342, i64 0
%25344 = load double, double* %25343
%25345 = load double*, double** %8
%25346 = getelementptr inbounds double, double* %25345, i64 0
%25347 = load double, double* %25346
%25348 = fsub double %25344, %25347
%25349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25348, double* %25349
%25350 = load double*, double** %13
%25351 = getelementptr inbounds double, double* %25350, i64 1
%25352 = load double, double* %25351
%25353 = load double*, double** %8
%25354 = getelementptr inbounds double, double* %25353, i64 1
%25355 = load double, double* %25354
%25356 = fsub double %25352, %25355
%25357 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25356, double* %25357
%25358 = load double*, double** %13
%25359 = getelementptr inbounds double, double* %25358, i64 2
%25360 = load double, double* %25359
%25361 = load double*, double** %8
%25362 = getelementptr inbounds double, double* %25361, i64 2
%25363 = load double, double* %25362
%25364 = fsub double %25360, %25363
%25365 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25364, double* %25365
%25366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25367 = load double, double* %25366
%25368 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25369 = load double, double* %25368
%25370 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25371 = load double, double* %25370
%25372 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25373 = load double, double* %25372
%25374 = fmul double %25371, %25373
%25375 = call double @llvm.fmuladd.f64(double %25367, double %25369, double %25374)
%25376 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25377 = load double, double* %25376
%25378 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25379 = load double, double* %25378
%25380 = call double @llvm.fmuladd.f64(double %25377, double %25379, double %25375)
%25381 = fcmp ogt double %25380, 0.000000e+00
br i1 %25381, label %25382, label %25383
25382: ; preds = %25257
store i32 0, i32* %7
br label %37464
25383: ; preds = %25257
store i32 1, i32* %7
br label %37464
25384: ; preds = %25128
%25385 = load double, double* %18
%25386 = fcmp ogt double %25385, 0.000000e+00
br i1 %25386, label %25387, label %25640
25387: ; preds = %25384
%25388 = load double*, double** %13
%25389 = getelementptr inbounds double, double* %25388, i64 0
%25390 = load double, double* %25389
%25391 = load double*, double** %10
%25392 = getelementptr inbounds double, double* %25391, i64 0
%25393 = load double, double* %25392
%25394 = fsub double %25390, %25393
%25395 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25394, double* %25395
%25396 = load double*, double** %13
%25397 = getelementptr inbounds double, double* %25396, i64 1
%25398 = load double, double* %25397
%25399 = load double*, double** %10
%25400 = getelementptr inbounds double, double* %25399, i64 1
%25401 = load double, double* %25400
%25402 = fsub double %25398, %25401
%25403 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25402, double* %25403
%25404 = load double*, double** %13
%25405 = getelementptr inbounds double, double* %25404, i64 2
%25406 = load double, double* %25405
%25407 = load double*, double** %10
%25408 = getelementptr inbounds double, double* %25407, i64 2
%25409 = load double, double* %25408
%25410 = fsub double %25406, %25409
%25411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25410, double* %25411
%25412 = load double*, double** %8
%25413 = getelementptr inbounds double, double* %25412, i64 0
%25414 = load double, double* %25413
%25415 = load double*, double** %10
%25416 = getelementptr inbounds double, double* %25415, i64 0
%25417 = load double, double* %25416
%25418 = fsub double %25414, %25417
%25419 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25418, double* %25419
%25420 = load double*, double** %8
%25421 = getelementptr inbounds double, double* %25420, i64 1
%25422 = load double, double* %25421
%25423 = load double*, double** %10
%25424 = getelementptr inbounds double, double* %25423, i64 1
%25425 = load double, double* %25424
%25426 = fsub double %25422, %25425
%25427 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25426, double* %25427
%25428 = load double*, double** %8
%25429 = getelementptr inbounds double, double* %25428, i64 2
%25430 = load double, double* %25429
%25431 = load double*, double** %10
%25432 = getelementptr inbounds double, double* %25431, i64 2
%25433 = load double, double* %25432
%25434 = fsub double %25430, %25433
%25435 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25434, double* %25435
%25436 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25437 = load double, double* %25436
%25438 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25439 = load double, double* %25438
%25440 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25441 = load double, double* %25440
%25442 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25443 = load double, double* %25442
%25444 = fmul double %25441, %25443
%25445 = fneg double %25444
%25446 = call double @llvm.fmuladd.f64(double %25437, double %25439, double %25445)
%25447 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25446, double* %25447
%25448 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25449 = load double, double* %25448
%25450 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25451 = load double, double* %25450
%25452 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25453 = load double, double* %25452
%25454 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25455 = load double, double* %25454
%25456 = fmul double %25453, %25455
%25457 = fneg double %25456
%25458 = call double @llvm.fmuladd.f64(double %25449, double %25451, double %25457)
%25459 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25458, double* %25459
%25460 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25461 = load double, double* %25460
%25462 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25463 = load double, double* %25462
%25464 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25465 = load double, double* %25464
%25466 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25467 = load double, double* %25466
%25468 = fmul double %25465, %25467
%25469 = fneg double %25468
%25470 = call double @llvm.fmuladd.f64(double %25461, double %25463, double %25469)
%25471 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25470, double* %25471
%25472 = load double*, double** %12
%25473 = getelementptr inbounds double, double* %25472, i64 0
%25474 = load double, double* %25473
%25475 = load double*, double** %10
%25476 = getelementptr inbounds double, double* %25475, i64 0
%25477 = load double, double* %25476
%25478 = fsub double %25474, %25477
%25479 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25478, double* %25479
%25480 = load double*, double** %12
%25481 = getelementptr inbounds double, double* %25480, i64 1
%25482 = load double, double* %25481
%25483 = load double*, double** %10
%25484 = getelementptr inbounds double, double* %25483, i64 1
%25485 = load double, double* %25484
%25486 = fsub double %25482, %25485
%25487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25486, double* %25487
%25488 = load double*, double** %12
%25489 = getelementptr inbounds double, double* %25488, i64 2
%25490 = load double, double* %25489
%25491 = load double*, double** %10
%25492 = getelementptr inbounds double, double* %25491, i64 2
%25493 = load double, double* %25492
%25494 = fsub double %25490, %25493
%25495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25494, double* %25495
%25496 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25497 = load double, double* %25496
%25498 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25499 = load double, double* %25498
%25500 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25501 = load double, double* %25500
%25502 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25503 = load double, double* %25502
%25504 = fmul double %25501, %25503
%25505 = call double @llvm.fmuladd.f64(double %25497, double %25499, double %25504)
%25506 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25507 = load double, double* %25506
%25508 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25509 = load double, double* %25508
%25510 = call double @llvm.fmuladd.f64(double %25507, double %25509, double %25505)
%25511 = fcmp ogt double %25510, 0.000000e+00
br i1 %25511, label %25512, label %25513
25512: ; preds = %25387
store i32 0, i32* %7
br label %37464
25513: ; preds = %25387
%25514 = load double*, double** %13
%25515 = getelementptr inbounds double, double* %25514, i64 0
%25516 = load double, double* %25515
%25517 = load double*, double** %8
%25518 = getelementptr inbounds double, double* %25517, i64 0
%25519 = load double, double* %25518
%25520 = fsub double %25516, %25519
%25521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25520, double* %25521
%25522 = load double*, double** %13
%25523 = getelementptr inbounds double, double* %25522, i64 1
%25524 = load double, double* %25523
%25525 = load double*, double** %8
%25526 = getelementptr inbounds double, double* %25525, i64 1
%25527 = load double, double* %25526
%25528 = fsub double %25524, %25527
%25529 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25528, double* %25529
%25530 = load double*, double** %13
%25531 = getelementptr inbounds double, double* %25530, i64 2
%25532 = load double, double* %25531
%25533 = load double*, double** %8
%25534 = getelementptr inbounds double, double* %25533, i64 2
%25535 = load double, double* %25534
%25536 = fsub double %25532, %25535
%25537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25536, double* %25537
%25538 = load double*, double** %9
%25539 = getelementptr inbounds double, double* %25538, i64 0
%25540 = load double, double* %25539
%25541 = load double*, double** %8
%25542 = getelementptr inbounds double, double* %25541, i64 0
%25543 = load double, double* %25542
%25544 = fsub double %25540, %25543
%25545 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25544, double* %25545
%25546 = load double*, double** %9
%25547 = getelementptr inbounds double, double* %25546, i64 1
%25548 = load double, double* %25547
%25549 = load double*, double** %8
%25550 = getelementptr inbounds double, double* %25549, i64 1
%25551 = load double, double* %25550
%25552 = fsub double %25548, %25551
%25553 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25552, double* %25553
%25554 = load double*, double** %9
%25555 = getelementptr inbounds double, double* %25554, i64 2
%25556 = load double, double* %25555
%25557 = load double*, double** %8
%25558 = getelementptr inbounds double, double* %25557, i64 2
%25559 = load double, double* %25558
%25560 = fsub double %25556, %25559
%25561 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25560, double* %25561
%25562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25563 = load double, double* %25562
%25564 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25565 = load double, double* %25564
%25566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25567 = load double, double* %25566
%25568 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25569 = load double, double* %25568
%25570 = fmul double %25567, %25569
%25571 = fneg double %25570
%25572 = call double @llvm.fmuladd.f64(double %25563, double %25565, double %25571)
%25573 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25572, double* %25573
%25574 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25575 = load double, double* %25574
%25576 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25577 = load double, double* %25576
%25578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25579 = load double, double* %25578
%25580 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25581 = load double, double* %25580
%25582 = fmul double %25579, %25581
%25583 = fneg double %25582
%25584 = call double @llvm.fmuladd.f64(double %25575, double %25577, double %25583)
%25585 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25584, double* %25585
%25586 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25587 = load double, double* %25586
%25588 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25589 = load double, double* %25588
%25590 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25591 = load double, double* %25590
%25592 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25593 = load double, double* %25592
%25594 = fmul double %25591, %25593
%25595 = fneg double %25594
%25596 = call double @llvm.fmuladd.f64(double %25587, double %25589, double %25595)
%25597 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25596, double* %25597
%25598 = load double*, double** %11
%25599 = getelementptr inbounds double, double* %25598, i64 0
%25600 = load double, double* %25599
%25601 = load double*, double** %8
%25602 = getelementptr inbounds double, double* %25601, i64 0
%25603 = load double, double* %25602
%25604 = fsub double %25600, %25603
%25605 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25604, double* %25605
%25606 = load double*, double** %11
%25607 = getelementptr inbounds double, double* %25606, i64 1
%25608 = load double, double* %25607
%25609 = load double*, double** %8
%25610 = getelementptr inbounds double, double* %25609, i64 1
%25611 = load double, double* %25610
%25612 = fsub double %25608, %25611
%25613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25612, double* %25613
%25614 = load double*, double** %11
%25615 = getelementptr inbounds double, double* %25614, i64 2
%25616 = load double, double* %25615
%25617 = load double*, double** %8
%25618 = getelementptr inbounds double, double* %25617, i64 2
%25619 = load double, double* %25618
%25620 = fsub double %25616, %25619
%25621 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25620, double* %25621
%25622 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25623 = load double, double* %25622
%25624 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25625 = load double, double* %25624
%25626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25627 = load double, double* %25626
%25628 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25629 = load double, double* %25628
%25630 = fmul double %25627, %25629
%25631 = call double @llvm.fmuladd.f64(double %25623, double %25625, double %25630)
%25632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25633 = load double, double* %25632
%25634 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25635 = load double, double* %25634
%25636 = call double @llvm.fmuladd.f64(double %25633, double %25635, double %25631)
%25637 = fcmp ogt double %25636, 0.000000e+00
br i1 %25637, label %25638, label %25639
25638: ; preds = %25513
store i32 0, i32* %7
br label %37464
25639: ; preds = %25513
store i32 1, i32* %7
br label %37464
25640: ; preds = %25384
%25641 = load double*, double** %11
%25642 = getelementptr inbounds double, double* %25641, i64 0
%25643 = load double, double* %25642
%25644 = load double*, double** %9
%25645 = getelementptr inbounds double, double* %25644, i64 0
%25646 = load double, double* %25645
%25647 = fsub double %25643, %25646
%25648 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25647, double* %25648
%25649 = load double*, double** %11
%25650 = getelementptr inbounds double, double* %25649, i64 1
%25651 = load double, double* %25650
%25652 = load double*, double** %9
%25653 = getelementptr inbounds double, double* %25652, i64 1
%25654 = load double, double* %25653
%25655 = fsub double %25651, %25654
%25656 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25655, double* %25656
%25657 = load double*, double** %11
%25658 = getelementptr inbounds double, double* %25657, i64 2
%25659 = load double, double* %25658
%25660 = load double*, double** %9
%25661 = getelementptr inbounds double, double* %25660, i64 2
%25662 = load double, double* %25661
%25663 = fsub double %25659, %25662
%25664 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25663, double* %25664
%25665 = load double*, double** %8
%25666 = getelementptr inbounds double, double* %25665, i64 0
%25667 = load double, double* %25666
%25668 = load double*, double** %9
%25669 = getelementptr inbounds double, double* %25668, i64 0
%25670 = load double, double* %25669
%25671 = fsub double %25667, %25670
%25672 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25671, double* %25672
%25673 = load double*, double** %8
%25674 = getelementptr inbounds double, double* %25673, i64 1
%25675 = load double, double* %25674
%25676 = load double*, double** %9
%25677 = getelementptr inbounds double, double* %25676, i64 1
%25678 = load double, double* %25677
%25679 = fsub double %25675, %25678
%25680 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25679, double* %25680
%25681 = load double*, double** %8
%25682 = getelementptr inbounds double, double* %25681, i64 2
%25683 = load double, double* %25682
%25684 = load double*, double** %9
%25685 = getelementptr inbounds double, double* %25684, i64 2
%25686 = load double, double* %25685
%25687 = fsub double %25683, %25686
%25688 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25687, double* %25688
%25689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25690 = load double, double* %25689
%25691 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25692 = load double, double* %25691
%25693 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25694 = load double, double* %25693
%25695 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25696 = load double, double* %25695
%25697 = fmul double %25694, %25696
%25698 = fneg double %25697
%25699 = call double @llvm.fmuladd.f64(double %25690, double %25692, double %25698)
%25700 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25699, double* %25700
%25701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25702 = load double, double* %25701
%25703 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25704 = load double, double* %25703
%25705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25706 = load double, double* %25705
%25707 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25708 = load double, double* %25707
%25709 = fmul double %25706, %25708
%25710 = fneg double %25709
%25711 = call double @llvm.fmuladd.f64(double %25702, double %25704, double %25710)
%25712 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25711, double* %25712
%25713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25714 = load double, double* %25713
%25715 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25716 = load double, double* %25715
%25717 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25718 = load double, double* %25717
%25719 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25720 = load double, double* %25719
%25721 = fmul double %25718, %25720
%25722 = fneg double %25721
%25723 = call double @llvm.fmuladd.f64(double %25714, double %25716, double %25722)
%25724 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25723, double* %25724
%25725 = load double*, double** %13
%25726 = getelementptr inbounds double, double* %25725, i64 0
%25727 = load double, double* %25726
%25728 = load double*, double** %9
%25729 = getelementptr inbounds double, double* %25728, i64 0
%25730 = load double, double* %25729
%25731 = fsub double %25727, %25730
%25732 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25731, double* %25732
%25733 = load double*, double** %13
%25734 = getelementptr inbounds double, double* %25733, i64 1
%25735 = load double, double* %25734
%25736 = load double*, double** %9
%25737 = getelementptr inbounds double, double* %25736, i64 1
%25738 = load double, double* %25737
%25739 = fsub double %25735, %25738
%25740 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25739, double* %25740
%25741 = load double*, double** %13
%25742 = getelementptr inbounds double, double* %25741, i64 2
%25743 = load double, double* %25742
%25744 = load double*, double** %9
%25745 = getelementptr inbounds double, double* %25744, i64 2
%25746 = load double, double* %25745
%25747 = fsub double %25743, %25746
%25748 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25747, double* %25748
%25749 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25750 = load double, double* %25749
%25751 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25752 = load double, double* %25751
%25753 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25754 = load double, double* %25753
%25755 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25756 = load double, double* %25755
%25757 = fmul double %25754, %25756
%25758 = call double @llvm.fmuladd.f64(double %25750, double %25752, double %25757)
%25759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25760 = load double, double* %25759
%25761 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25762 = load double, double* %25761
%25763 = call double @llvm.fmuladd.f64(double %25760, double %25762, double %25758)
%25764 = fcmp ogt double %25763, 0.000000e+00
br i1 %25764, label %25765, label %25766
25765: ; preds = %25640
store i32 0, i32* %7
br label %37464
25766: ; preds = %25640
%25767 = load double*, double** %11
%25768 = getelementptr inbounds double, double* %25767, i64 0
%25769 = load double, double* %25768
%25770 = load double*, double** %8
%25771 = getelementptr inbounds double, double* %25770, i64 0
%25772 = load double, double* %25771
%25773 = fsub double %25769, %25772
%25774 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25773, double* %25774
%25775 = load double*, double** %11
%25776 = getelementptr inbounds double, double* %25775, i64 1
%25777 = load double, double* %25776
%25778 = load double*, double** %8
%25779 = getelementptr inbounds double, double* %25778, i64 1
%25780 = load double, double* %25779
%25781 = fsub double %25777, %25780
%25782 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25781, double* %25782
%25783 = load double*, double** %11
%25784 = getelementptr inbounds double, double* %25783, i64 2
%25785 = load double, double* %25784
%25786 = load double*, double** %8
%25787 = getelementptr inbounds double, double* %25786, i64 2
%25788 = load double, double* %25787
%25789 = fsub double %25785, %25788
%25790 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25789, double* %25790
%25791 = load double*, double** %10
%25792 = getelementptr inbounds double, double* %25791, i64 0
%25793 = load double, double* %25792
%25794 = load double*, double** %8
%25795 = getelementptr inbounds double, double* %25794, i64 0
%25796 = load double, double* %25795
%25797 = fsub double %25793, %25796
%25798 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25797, double* %25798
%25799 = load double*, double** %10
%25800 = getelementptr inbounds double, double* %25799, i64 1
%25801 = load double, double* %25800
%25802 = load double*, double** %8
%25803 = getelementptr inbounds double, double* %25802, i64 1
%25804 = load double, double* %25803
%25805 = fsub double %25801, %25804
%25806 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25805, double* %25806
%25807 = load double*, double** %10
%25808 = getelementptr inbounds double, double* %25807, i64 2
%25809 = load double, double* %25808
%25810 = load double*, double** %8
%25811 = getelementptr inbounds double, double* %25810, i64 2
%25812 = load double, double* %25811
%25813 = fsub double %25809, %25812
%25814 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25813, double* %25814
%25815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25816 = load double, double* %25815
%25817 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25818 = load double, double* %25817
%25819 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25820 = load double, double* %25819
%25821 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25822 = load double, double* %25821
%25823 = fmul double %25820, %25822
%25824 = fneg double %25823
%25825 = call double @llvm.fmuladd.f64(double %25816, double %25818, double %25824)
%25826 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25825, double* %25826
%25827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25828 = load double, double* %25827
%25829 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25830 = load double, double* %25829
%25831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25832 = load double, double* %25831
%25833 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25834 = load double, double* %25833
%25835 = fmul double %25832, %25834
%25836 = fneg double %25835
%25837 = call double @llvm.fmuladd.f64(double %25828, double %25830, double %25836)
%25838 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25837, double* %25838
%25839 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25840 = load double, double* %25839
%25841 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25842 = load double, double* %25841
%25843 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25844 = load double, double* %25843
%25845 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25846 = load double, double* %25845
%25847 = fmul double %25844, %25846
%25848 = fneg double %25847
%25849 = call double @llvm.fmuladd.f64(double %25840, double %25842, double %25848)
%25850 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25849, double* %25850
%25851 = load double*, double** %12
%25852 = getelementptr inbounds double, double* %25851, i64 0
%25853 = load double, double* %25852
%25854 = load double*, double** %8
%25855 = getelementptr inbounds double, double* %25854, i64 0
%25856 = load double, double* %25855
%25857 = fsub double %25853, %25856
%25858 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25857, double* %25858
%25859 = load double*, double** %12
%25860 = getelementptr inbounds double, double* %25859, i64 1
%25861 = load double, double* %25860
%25862 = load double*, double** %8
%25863 = getelementptr inbounds double, double* %25862, i64 1
%25864 = load double, double* %25863
%25865 = fsub double %25861, %25864
%25866 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25865, double* %25866
%25867 = load double*, double** %12
%25868 = getelementptr inbounds double, double* %25867, i64 2
%25869 = load double, double* %25868
%25870 = load double*, double** %8
%25871 = getelementptr inbounds double, double* %25870, i64 2
%25872 = load double, double* %25871
%25873 = fsub double %25869, %25872
%25874 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25873, double* %25874
%25875 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25876 = load double, double* %25875
%25877 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%25878 = load double, double* %25877
%25879 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25880 = load double, double* %25879
%25881 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%25882 = load double, double* %25881
%25883 = fmul double %25880, %25882
%25884 = call double @llvm.fmuladd.f64(double %25876, double %25878, double %25883)
%25885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25886 = load double, double* %25885
%25887 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%25888 = load double, double* %25887
%25889 = call double @llvm.fmuladd.f64(double %25886, double %25888, double %25884)
%25890 = fcmp ogt double %25889, 0.000000e+00
br i1 %25890, label %25891, label %25892
25891: ; preds = %25766
store i32 0, i32* %7
br label %37464
25892: ; preds = %25766
store i32 1, i32* %7
br label %37464
25893: ; preds = %25125
%25894 = load double, double* %17
%25895 = fcmp olt double %25894, 0.000000e+00
br i1 %25895, label %25896, label %26661
25896: ; preds = %25893
%25897 = load double, double* %19
%25898 = fcmp olt double %25897, 0.000000e+00
br i1 %25898, label %25899, label %26152
25899: ; preds = %25896
%25900 = load double*, double** %12
%25901 = getelementptr inbounds double, double* %25900, i64 0
%25902 = load double, double* %25901
%25903 = load double*, double** %9
%25904 = getelementptr inbounds double, double* %25903, i64 0
%25905 = load double, double* %25904
%25906 = fsub double %25902, %25905
%25907 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25906, double* %25907
%25908 = load double*, double** %12
%25909 = getelementptr inbounds double, double* %25908, i64 1
%25910 = load double, double* %25909
%25911 = load double*, double** %9
%25912 = getelementptr inbounds double, double* %25911, i64 1
%25913 = load double, double* %25912
%25914 = fsub double %25910, %25913
%25915 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25914, double* %25915
%25916 = load double*, double** %12
%25917 = getelementptr inbounds double, double* %25916, i64 2
%25918 = load double, double* %25917
%25919 = load double*, double** %9
%25920 = getelementptr inbounds double, double* %25919, i64 2
%25921 = load double, double* %25920
%25922 = fsub double %25918, %25921
%25923 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %25922, double* %25923
%25924 = load double*, double** %8
%25925 = getelementptr inbounds double, double* %25924, i64 0
%25926 = load double, double* %25925
%25927 = load double*, double** %9
%25928 = getelementptr inbounds double, double* %25927, i64 0
%25929 = load double, double* %25928
%25930 = fsub double %25926, %25929
%25931 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %25930, double* %25931
%25932 = load double*, double** %8
%25933 = getelementptr inbounds double, double* %25932, i64 1
%25934 = load double, double* %25933
%25935 = load double*, double** %9
%25936 = getelementptr inbounds double, double* %25935, i64 1
%25937 = load double, double* %25936
%25938 = fsub double %25934, %25937
%25939 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %25938, double* %25939
%25940 = load double*, double** %8
%25941 = getelementptr inbounds double, double* %25940, i64 2
%25942 = load double, double* %25941
%25943 = load double*, double** %9
%25944 = getelementptr inbounds double, double* %25943, i64 2
%25945 = load double, double* %25944
%25946 = fsub double %25942, %25945
%25947 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %25946, double* %25947
%25948 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25949 = load double, double* %25948
%25950 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25951 = load double, double* %25950
%25952 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25953 = load double, double* %25952
%25954 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25955 = load double, double* %25954
%25956 = fmul double %25953, %25955
%25957 = fneg double %25956
%25958 = call double @llvm.fmuladd.f64(double %25949, double %25951, double %25957)
%25959 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %25958, double* %25959
%25960 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%25961 = load double, double* %25960
%25962 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25963 = load double, double* %25962
%25964 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25965 = load double, double* %25964
%25966 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%25967 = load double, double* %25966
%25968 = fmul double %25965, %25967
%25969 = fneg double %25968
%25970 = call double @llvm.fmuladd.f64(double %25961, double %25963, double %25969)
%25971 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %25970, double* %25971
%25972 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%25973 = load double, double* %25972
%25974 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%25975 = load double, double* %25974
%25976 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%25977 = load double, double* %25976
%25978 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%25979 = load double, double* %25978
%25980 = fmul double %25977, %25979
%25981 = fneg double %25980
%25982 = call double @llvm.fmuladd.f64(double %25973, double %25975, double %25981)
%25983 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %25982, double* %25983
%25984 = load double*, double** %11
%25985 = getelementptr inbounds double, double* %25984, i64 0
%25986 = load double, double* %25985
%25987 = load double*, double** %9
%25988 = getelementptr inbounds double, double* %25987, i64 0
%25989 = load double, double* %25988
%25990 = fsub double %25986, %25989
%25991 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %25990, double* %25991
%25992 = load double*, double** %11
%25993 = getelementptr inbounds double, double* %25992, i64 1
%25994 = load double, double* %25993
%25995 = load double*, double** %9
%25996 = getelementptr inbounds double, double* %25995, i64 1
%25997 = load double, double* %25996
%25998 = fsub double %25994, %25997
%25999 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %25998, double* %25999
%26000 = load double*, double** %11
%26001 = getelementptr inbounds double, double* %26000, i64 2
%26002 = load double, double* %26001
%26003 = load double*, double** %9
%26004 = getelementptr inbounds double, double* %26003, i64 2
%26005 = load double, double* %26004
%26006 = fsub double %26002, %26005
%26007 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26006, double* %26007
%26008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26009 = load double, double* %26008
%26010 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26011 = load double, double* %26010
%26012 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26013 = load double, double* %26012
%26014 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26015 = load double, double* %26014
%26016 = fmul double %26013, %26015
%26017 = call double @llvm.fmuladd.f64(double %26009, double %26011, double %26016)
%26018 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26019 = load double, double* %26018
%26020 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26021 = load double, double* %26020
%26022 = call double @llvm.fmuladd.f64(double %26019, double %26021, double %26017)
%26023 = fcmp ogt double %26022, 0.000000e+00
br i1 %26023, label %26024, label %26025
26024: ; preds = %25899
store i32 0, i32* %7
br label %37464
26025: ; preds = %25899
%26026 = load double*, double** %12
%26027 = getelementptr inbounds double, double* %26026, i64 0
%26028 = load double, double* %26027
%26029 = load double*, double** %8
%26030 = getelementptr inbounds double, double* %26029, i64 0
%26031 = load double, double* %26030
%26032 = fsub double %26028, %26031
%26033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26032, double* %26033
%26034 = load double*, double** %12
%26035 = getelementptr inbounds double, double* %26034, i64 1
%26036 = load double, double* %26035
%26037 = load double*, double** %8
%26038 = getelementptr inbounds double, double* %26037, i64 1
%26039 = load double, double* %26038
%26040 = fsub double %26036, %26039
%26041 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26040, double* %26041
%26042 = load double*, double** %12
%26043 = getelementptr inbounds double, double* %26042, i64 2
%26044 = load double, double* %26043
%26045 = load double*, double** %8
%26046 = getelementptr inbounds double, double* %26045, i64 2
%26047 = load double, double* %26046
%26048 = fsub double %26044, %26047
%26049 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26048, double* %26049
%26050 = load double*, double** %10
%26051 = getelementptr inbounds double, double* %26050, i64 0
%26052 = load double, double* %26051
%26053 = load double*, double** %8
%26054 = getelementptr inbounds double, double* %26053, i64 0
%26055 = load double, double* %26054
%26056 = fsub double %26052, %26055
%26057 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26056, double* %26057
%26058 = load double*, double** %10
%26059 = getelementptr inbounds double, double* %26058, i64 1
%26060 = load double, double* %26059
%26061 = load double*, double** %8
%26062 = getelementptr inbounds double, double* %26061, i64 1
%26063 = load double, double* %26062
%26064 = fsub double %26060, %26063
%26065 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26064, double* %26065
%26066 = load double*, double** %10
%26067 = getelementptr inbounds double, double* %26066, i64 2
%26068 = load double, double* %26067
%26069 = load double*, double** %8
%26070 = getelementptr inbounds double, double* %26069, i64 2
%26071 = load double, double* %26070
%26072 = fsub double %26068, %26071
%26073 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26072, double* %26073
%26074 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26075 = load double, double* %26074
%26076 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26077 = load double, double* %26076
%26078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26079 = load double, double* %26078
%26080 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26081 = load double, double* %26080
%26082 = fmul double %26079, %26081
%26083 = fneg double %26082
%26084 = call double @llvm.fmuladd.f64(double %26075, double %26077, double %26083)
%26085 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26084, double* %26085
%26086 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26087 = load double, double* %26086
%26088 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26089 = load double, double* %26088
%26090 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26091 = load double, double* %26090
%26092 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26093 = load double, double* %26092
%26094 = fmul double %26091, %26093
%26095 = fneg double %26094
%26096 = call double @llvm.fmuladd.f64(double %26087, double %26089, double %26095)
%26097 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26096, double* %26097
%26098 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26099 = load double, double* %26098
%26100 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26101 = load double, double* %26100
%26102 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26103 = load double, double* %26102
%26104 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26105 = load double, double* %26104
%26106 = fmul double %26103, %26105
%26107 = fneg double %26106
%26108 = call double @llvm.fmuladd.f64(double %26099, double %26101, double %26107)
%26109 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26108, double* %26109
%26110 = load double*, double** %13
%26111 = getelementptr inbounds double, double* %26110, i64 0
%26112 = load double, double* %26111
%26113 = load double*, double** %8
%26114 = getelementptr inbounds double, double* %26113, i64 0
%26115 = load double, double* %26114
%26116 = fsub double %26112, %26115
%26117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26116, double* %26117
%26118 = load double*, double** %13
%26119 = getelementptr inbounds double, double* %26118, i64 1
%26120 = load double, double* %26119
%26121 = load double*, double** %8
%26122 = getelementptr inbounds double, double* %26121, i64 1
%26123 = load double, double* %26122
%26124 = fsub double %26120, %26123
%26125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26124, double* %26125
%26126 = load double*, double** %13
%26127 = getelementptr inbounds double, double* %26126, i64 2
%26128 = load double, double* %26127
%26129 = load double*, double** %8
%26130 = getelementptr inbounds double, double* %26129, i64 2
%26131 = load double, double* %26130
%26132 = fsub double %26128, %26131
%26133 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26132, double* %26133
%26134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26135 = load double, double* %26134
%26136 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26137 = load double, double* %26136
%26138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26139 = load double, double* %26138
%26140 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26141 = load double, double* %26140
%26142 = fmul double %26139, %26141
%26143 = call double @llvm.fmuladd.f64(double %26135, double %26137, double %26142)
%26144 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26145 = load double, double* %26144
%26146 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26147 = load double, double* %26146
%26148 = call double @llvm.fmuladd.f64(double %26145, double %26147, double %26143)
%26149 = fcmp ogt double %26148, 0.000000e+00
br i1 %26149, label %26150, label %26151
26150: ; preds = %26025
store i32 0, i32* %7
br label %37464
26151: ; preds = %26025
store i32 1, i32* %7
br label %37464
26152: ; preds = %25896
%26153 = load double, double* %18
%26154 = fcmp olt double %26153, 0.000000e+00
br i1 %26154, label %26155, label %26408
26155: ; preds = %26152
%26156 = load double*, double** %13
%26157 = getelementptr inbounds double, double* %26156, i64 0
%26158 = load double, double* %26157
%26159 = load double*, double** %9
%26160 = getelementptr inbounds double, double* %26159, i64 0
%26161 = load double, double* %26160
%26162 = fsub double %26158, %26161
%26163 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26162, double* %26163
%26164 = load double*, double** %13
%26165 = getelementptr inbounds double, double* %26164, i64 1
%26166 = load double, double* %26165
%26167 = load double*, double** %9
%26168 = getelementptr inbounds double, double* %26167, i64 1
%26169 = load double, double* %26168
%26170 = fsub double %26166, %26169
%26171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26170, double* %26171
%26172 = load double*, double** %13
%26173 = getelementptr inbounds double, double* %26172, i64 2
%26174 = load double, double* %26173
%26175 = load double*, double** %9
%26176 = getelementptr inbounds double, double* %26175, i64 2
%26177 = load double, double* %26176
%26178 = fsub double %26174, %26177
%26179 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26178, double* %26179
%26180 = load double*, double** %8
%26181 = getelementptr inbounds double, double* %26180, i64 0
%26182 = load double, double* %26181
%26183 = load double*, double** %9
%26184 = getelementptr inbounds double, double* %26183, i64 0
%26185 = load double, double* %26184
%26186 = fsub double %26182, %26185
%26187 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26186, double* %26187
%26188 = load double*, double** %8
%26189 = getelementptr inbounds double, double* %26188, i64 1
%26190 = load double, double* %26189
%26191 = load double*, double** %9
%26192 = getelementptr inbounds double, double* %26191, i64 1
%26193 = load double, double* %26192
%26194 = fsub double %26190, %26193
%26195 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26194, double* %26195
%26196 = load double*, double** %8
%26197 = getelementptr inbounds double, double* %26196, i64 2
%26198 = load double, double* %26197
%26199 = load double*, double** %9
%26200 = getelementptr inbounds double, double* %26199, i64 2
%26201 = load double, double* %26200
%26202 = fsub double %26198, %26201
%26203 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26202, double* %26203
%26204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26205 = load double, double* %26204
%26206 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26207 = load double, double* %26206
%26208 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26209 = load double, double* %26208
%26210 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26211 = load double, double* %26210
%26212 = fmul double %26209, %26211
%26213 = fneg double %26212
%26214 = call double @llvm.fmuladd.f64(double %26205, double %26207, double %26213)
%26215 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26214, double* %26215
%26216 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26217 = load double, double* %26216
%26218 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26219 = load double, double* %26218
%26220 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26221 = load double, double* %26220
%26222 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26223 = load double, double* %26222
%26224 = fmul double %26221, %26223
%26225 = fneg double %26224
%26226 = call double @llvm.fmuladd.f64(double %26217, double %26219, double %26225)
%26227 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26226, double* %26227
%26228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26229 = load double, double* %26228
%26230 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26231 = load double, double* %26230
%26232 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26233 = load double, double* %26232
%26234 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26235 = load double, double* %26234
%26236 = fmul double %26233, %26235
%26237 = fneg double %26236
%26238 = call double @llvm.fmuladd.f64(double %26229, double %26231, double %26237)
%26239 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26238, double* %26239
%26240 = load double*, double** %12
%26241 = getelementptr inbounds double, double* %26240, i64 0
%26242 = load double, double* %26241
%26243 = load double*, double** %9
%26244 = getelementptr inbounds double, double* %26243, i64 0
%26245 = load double, double* %26244
%26246 = fsub double %26242, %26245
%26247 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26246, double* %26247
%26248 = load double*, double** %12
%26249 = getelementptr inbounds double, double* %26248, i64 1
%26250 = load double, double* %26249
%26251 = load double*, double** %9
%26252 = getelementptr inbounds double, double* %26251, i64 1
%26253 = load double, double* %26252
%26254 = fsub double %26250, %26253
%26255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26254, double* %26255
%26256 = load double*, double** %12
%26257 = getelementptr inbounds double, double* %26256, i64 2
%26258 = load double, double* %26257
%26259 = load double*, double** %9
%26260 = getelementptr inbounds double, double* %26259, i64 2
%26261 = load double, double* %26260
%26262 = fsub double %26258, %26261
%26263 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26262, double* %26263
%26264 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26265 = load double, double* %26264
%26266 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26267 = load double, double* %26266
%26268 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26269 = load double, double* %26268
%26270 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26271 = load double, double* %26270
%26272 = fmul double %26269, %26271
%26273 = call double @llvm.fmuladd.f64(double %26265, double %26267, double %26272)
%26274 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26275 = load double, double* %26274
%26276 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26277 = load double, double* %26276
%26278 = call double @llvm.fmuladd.f64(double %26275, double %26277, double %26273)
%26279 = fcmp ogt double %26278, 0.000000e+00
br i1 %26279, label %26280, label %26281
26280: ; preds = %26155
store i32 0, i32* %7
br label %37464
26281: ; preds = %26155
%26282 = load double*, double** %13
%26283 = getelementptr inbounds double, double* %26282, i64 0
%26284 = load double, double* %26283
%26285 = load double*, double** %8
%26286 = getelementptr inbounds double, double* %26285, i64 0
%26287 = load double, double* %26286
%26288 = fsub double %26284, %26287
%26289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26288, double* %26289
%26290 = load double*, double** %13
%26291 = getelementptr inbounds double, double* %26290, i64 1
%26292 = load double, double* %26291
%26293 = load double*, double** %8
%26294 = getelementptr inbounds double, double* %26293, i64 1
%26295 = load double, double* %26294
%26296 = fsub double %26292, %26295
%26297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26296, double* %26297
%26298 = load double*, double** %13
%26299 = getelementptr inbounds double, double* %26298, i64 2
%26300 = load double, double* %26299
%26301 = load double*, double** %8
%26302 = getelementptr inbounds double, double* %26301, i64 2
%26303 = load double, double* %26302
%26304 = fsub double %26300, %26303
%26305 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26304, double* %26305
%26306 = load double*, double** %10
%26307 = getelementptr inbounds double, double* %26306, i64 0
%26308 = load double, double* %26307
%26309 = load double*, double** %8
%26310 = getelementptr inbounds double, double* %26309, i64 0
%26311 = load double, double* %26310
%26312 = fsub double %26308, %26311
%26313 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26312, double* %26313
%26314 = load double*, double** %10
%26315 = getelementptr inbounds double, double* %26314, i64 1
%26316 = load double, double* %26315
%26317 = load double*, double** %8
%26318 = getelementptr inbounds double, double* %26317, i64 1
%26319 = load double, double* %26318
%26320 = fsub double %26316, %26319
%26321 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26320, double* %26321
%26322 = load double*, double** %10
%26323 = getelementptr inbounds double, double* %26322, i64 2
%26324 = load double, double* %26323
%26325 = load double*, double** %8
%26326 = getelementptr inbounds double, double* %26325, i64 2
%26327 = load double, double* %26326
%26328 = fsub double %26324, %26327
%26329 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26328, double* %26329
%26330 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26331 = load double, double* %26330
%26332 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26333 = load double, double* %26332
%26334 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26335 = load double, double* %26334
%26336 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26337 = load double, double* %26336
%26338 = fmul double %26335, %26337
%26339 = fneg double %26338
%26340 = call double @llvm.fmuladd.f64(double %26331, double %26333, double %26339)
%26341 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26340, double* %26341
%26342 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26343 = load double, double* %26342
%26344 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26345 = load double, double* %26344
%26346 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26347 = load double, double* %26346
%26348 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26349 = load double, double* %26348
%26350 = fmul double %26347, %26349
%26351 = fneg double %26350
%26352 = call double @llvm.fmuladd.f64(double %26343, double %26345, double %26351)
%26353 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26352, double* %26353
%26354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26355 = load double, double* %26354
%26356 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26357 = load double, double* %26356
%26358 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26359 = load double, double* %26358
%26360 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26361 = load double, double* %26360
%26362 = fmul double %26359, %26361
%26363 = fneg double %26362
%26364 = call double @llvm.fmuladd.f64(double %26355, double %26357, double %26363)
%26365 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26364, double* %26365
%26366 = load double*, double** %11
%26367 = getelementptr inbounds double, double* %26366, i64 0
%26368 = load double, double* %26367
%26369 = load double*, double** %8
%26370 = getelementptr inbounds double, double* %26369, i64 0
%26371 = load double, double* %26370
%26372 = fsub double %26368, %26371
%26373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26372, double* %26373
%26374 = load double*, double** %11
%26375 = getelementptr inbounds double, double* %26374, i64 1
%26376 = load double, double* %26375
%26377 = load double*, double** %8
%26378 = getelementptr inbounds double, double* %26377, i64 1
%26379 = load double, double* %26378
%26380 = fsub double %26376, %26379
%26381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26380, double* %26381
%26382 = load double*, double** %11
%26383 = getelementptr inbounds double, double* %26382, i64 2
%26384 = load double, double* %26383
%26385 = load double*, double** %8
%26386 = getelementptr inbounds double, double* %26385, i64 2
%26387 = load double, double* %26386
%26388 = fsub double %26384, %26387
%26389 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26388, double* %26389
%26390 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26391 = load double, double* %26390
%26392 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26393 = load double, double* %26392
%26394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26395 = load double, double* %26394
%26396 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26397 = load double, double* %26396
%26398 = fmul double %26395, %26397
%26399 = call double @llvm.fmuladd.f64(double %26391, double %26393, double %26398)
%26400 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26401 = load double, double* %26400
%26402 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26403 = load double, double* %26402
%26404 = call double @llvm.fmuladd.f64(double %26401, double %26403, double %26399)
%26405 = fcmp ogt double %26404, 0.000000e+00
br i1 %26405, label %26406, label %26407
26406: ; preds = %26281
store i32 0, i32* %7
br label %37464
26407: ; preds = %26281
store i32 1, i32* %7
br label %37464
26408: ; preds = %26152
%26409 = load double*, double** %11
%26410 = getelementptr inbounds double, double* %26409, i64 0
%26411 = load double, double* %26410
%26412 = load double*, double** %10
%26413 = getelementptr inbounds double, double* %26412, i64 0
%26414 = load double, double* %26413
%26415 = fsub double %26411, %26414
%26416 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26415, double* %26416
%26417 = load double*, double** %11
%26418 = getelementptr inbounds double, double* %26417, i64 1
%26419 = load double, double* %26418
%26420 = load double*, double** %10
%26421 = getelementptr inbounds double, double* %26420, i64 1
%26422 = load double, double* %26421
%26423 = fsub double %26419, %26422
%26424 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26423, double* %26424
%26425 = load double*, double** %11
%26426 = getelementptr inbounds double, double* %26425, i64 2
%26427 = load double, double* %26426
%26428 = load double*, double** %10
%26429 = getelementptr inbounds double, double* %26428, i64 2
%26430 = load double, double* %26429
%26431 = fsub double %26427, %26430
%26432 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26431, double* %26432
%26433 = load double*, double** %8
%26434 = getelementptr inbounds double, double* %26433, i64 0
%26435 = load double, double* %26434
%26436 = load double*, double** %10
%26437 = getelementptr inbounds double, double* %26436, i64 0
%26438 = load double, double* %26437
%26439 = fsub double %26435, %26438
%26440 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26439, double* %26440
%26441 = load double*, double** %8
%26442 = getelementptr inbounds double, double* %26441, i64 1
%26443 = load double, double* %26442
%26444 = load double*, double** %10
%26445 = getelementptr inbounds double, double* %26444, i64 1
%26446 = load double, double* %26445
%26447 = fsub double %26443, %26446
%26448 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26447, double* %26448
%26449 = load double*, double** %8
%26450 = getelementptr inbounds double, double* %26449, i64 2
%26451 = load double, double* %26450
%26452 = load double*, double** %10
%26453 = getelementptr inbounds double, double* %26452, i64 2
%26454 = load double, double* %26453
%26455 = fsub double %26451, %26454
%26456 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26455, double* %26456
%26457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26458 = load double, double* %26457
%26459 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26460 = load double, double* %26459
%26461 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26462 = load double, double* %26461
%26463 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26464 = load double, double* %26463
%26465 = fmul double %26462, %26464
%26466 = fneg double %26465
%26467 = call double @llvm.fmuladd.f64(double %26458, double %26460, double %26466)
%26468 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26467, double* %26468
%26469 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26470 = load double, double* %26469
%26471 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26472 = load double, double* %26471
%26473 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26474 = load double, double* %26473
%26475 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26476 = load double, double* %26475
%26477 = fmul double %26474, %26476
%26478 = fneg double %26477
%26479 = call double @llvm.fmuladd.f64(double %26470, double %26472, double %26478)
%26480 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26479, double* %26480
%26481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26482 = load double, double* %26481
%26483 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26484 = load double, double* %26483
%26485 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26486 = load double, double* %26485
%26487 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26488 = load double, double* %26487
%26489 = fmul double %26486, %26488
%26490 = fneg double %26489
%26491 = call double @llvm.fmuladd.f64(double %26482, double %26484, double %26490)
%26492 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26491, double* %26492
%26493 = load double*, double** %13
%26494 = getelementptr inbounds double, double* %26493, i64 0
%26495 = load double, double* %26494
%26496 = load double*, double** %10
%26497 = getelementptr inbounds double, double* %26496, i64 0
%26498 = load double, double* %26497
%26499 = fsub double %26495, %26498
%26500 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26499, double* %26500
%26501 = load double*, double** %13
%26502 = getelementptr inbounds double, double* %26501, i64 1
%26503 = load double, double* %26502
%26504 = load double*, double** %10
%26505 = getelementptr inbounds double, double* %26504, i64 1
%26506 = load double, double* %26505
%26507 = fsub double %26503, %26506
%26508 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26507, double* %26508
%26509 = load double*, double** %13
%26510 = getelementptr inbounds double, double* %26509, i64 2
%26511 = load double, double* %26510
%26512 = load double*, double** %10
%26513 = getelementptr inbounds double, double* %26512, i64 2
%26514 = load double, double* %26513
%26515 = fsub double %26511, %26514
%26516 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26515, double* %26516
%26517 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26518 = load double, double* %26517
%26519 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26520 = load double, double* %26519
%26521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26522 = load double, double* %26521
%26523 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26524 = load double, double* %26523
%26525 = fmul double %26522, %26524
%26526 = call double @llvm.fmuladd.f64(double %26518, double %26520, double %26525)
%26527 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26528 = load double, double* %26527
%26529 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26530 = load double, double* %26529
%26531 = call double @llvm.fmuladd.f64(double %26528, double %26530, double %26526)
%26532 = fcmp ogt double %26531, 0.000000e+00
br i1 %26532, label %26533, label %26534
26533: ; preds = %26408
store i32 0, i32* %7
br label %37464
26534: ; preds = %26408
%26535 = load double*, double** %11
%26536 = getelementptr inbounds double, double* %26535, i64 0
%26537 = load double, double* %26536
%26538 = load double*, double** %8
%26539 = getelementptr inbounds double, double* %26538, i64 0
%26540 = load double, double* %26539
%26541 = fsub double %26537, %26540
%26542 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26541, double* %26542
%26543 = load double*, double** %11
%26544 = getelementptr inbounds double, double* %26543, i64 1
%26545 = load double, double* %26544
%26546 = load double*, double** %8
%26547 = getelementptr inbounds double, double* %26546, i64 1
%26548 = load double, double* %26547
%26549 = fsub double %26545, %26548
%26550 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26549, double* %26550
%26551 = load double*, double** %11
%26552 = getelementptr inbounds double, double* %26551, i64 2
%26553 = load double, double* %26552
%26554 = load double*, double** %8
%26555 = getelementptr inbounds double, double* %26554, i64 2
%26556 = load double, double* %26555
%26557 = fsub double %26553, %26556
%26558 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26557, double* %26558
%26559 = load double*, double** %9
%26560 = getelementptr inbounds double, double* %26559, i64 0
%26561 = load double, double* %26560
%26562 = load double*, double** %8
%26563 = getelementptr inbounds double, double* %26562, i64 0
%26564 = load double, double* %26563
%26565 = fsub double %26561, %26564
%26566 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26565, double* %26566
%26567 = load double*, double** %9
%26568 = getelementptr inbounds double, double* %26567, i64 1
%26569 = load double, double* %26568
%26570 = load double*, double** %8
%26571 = getelementptr inbounds double, double* %26570, i64 1
%26572 = load double, double* %26571
%26573 = fsub double %26569, %26572
%26574 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26573, double* %26574
%26575 = load double*, double** %9
%26576 = getelementptr inbounds double, double* %26575, i64 2
%26577 = load double, double* %26576
%26578 = load double*, double** %8
%26579 = getelementptr inbounds double, double* %26578, i64 2
%26580 = load double, double* %26579
%26581 = fsub double %26577, %26580
%26582 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26581, double* %26582
%26583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26584 = load double, double* %26583
%26585 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26586 = load double, double* %26585
%26587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26588 = load double, double* %26587
%26589 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26590 = load double, double* %26589
%26591 = fmul double %26588, %26590
%26592 = fneg double %26591
%26593 = call double @llvm.fmuladd.f64(double %26584, double %26586, double %26592)
%26594 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26593, double* %26594
%26595 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26596 = load double, double* %26595
%26597 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26598 = load double, double* %26597
%26599 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26600 = load double, double* %26599
%26601 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26602 = load double, double* %26601
%26603 = fmul double %26600, %26602
%26604 = fneg double %26603
%26605 = call double @llvm.fmuladd.f64(double %26596, double %26598, double %26604)
%26606 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26605, double* %26606
%26607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26608 = load double, double* %26607
%26609 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26610 = load double, double* %26609
%26611 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26612 = load double, double* %26611
%26613 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26614 = load double, double* %26613
%26615 = fmul double %26612, %26614
%26616 = fneg double %26615
%26617 = call double @llvm.fmuladd.f64(double %26608, double %26610, double %26616)
%26618 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26617, double* %26618
%26619 = load double*, double** %12
%26620 = getelementptr inbounds double, double* %26619, i64 0
%26621 = load double, double* %26620
%26622 = load double*, double** %8
%26623 = getelementptr inbounds double, double* %26622, i64 0
%26624 = load double, double* %26623
%26625 = fsub double %26621, %26624
%26626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26625, double* %26626
%26627 = load double*, double** %12
%26628 = getelementptr inbounds double, double* %26627, i64 1
%26629 = load double, double* %26628
%26630 = load double*, double** %8
%26631 = getelementptr inbounds double, double* %26630, i64 1
%26632 = load double, double* %26631
%26633 = fsub double %26629, %26632
%26634 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26633, double* %26634
%26635 = load double*, double** %12
%26636 = getelementptr inbounds double, double* %26635, i64 2
%26637 = load double, double* %26636
%26638 = load double*, double** %8
%26639 = getelementptr inbounds double, double* %26638, i64 2
%26640 = load double, double* %26639
%26641 = fsub double %26637, %26640
%26642 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26641, double* %26642
%26643 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26644 = load double, double* %26643
%26645 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26646 = load double, double* %26645
%26647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26648 = load double, double* %26647
%26649 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26650 = load double, double* %26649
%26651 = fmul double %26648, %26650
%26652 = call double @llvm.fmuladd.f64(double %26644, double %26646, double %26651)
%26653 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26654 = load double, double* %26653
%26655 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26656 = load double, double* %26655
%26657 = call double @llvm.fmuladd.f64(double %26654, double %26656, double %26652)
%26658 = fcmp ogt double %26657, 0.000000e+00
br i1 %26658, label %26659, label %26660
26659: ; preds = %26534
store i32 0, i32* %7
br label %37464
26660: ; preds = %26534
store i32 1, i32* %7
br label %37464
26661: ; preds = %25893
%26662 = load double, double* %19
%26663 = fcmp olt double %26662, 0.000000e+00
br i1 %26663, label %26664, label %27173
26664: ; preds = %26661
%26665 = load double, double* %18
%26666 = fcmp oge double %26665, 0.000000e+00
br i1 %26666, label %26667, label %26920
26667: ; preds = %26664
%26668 = load double*, double** %13
%26669 = getelementptr inbounds double, double* %26668, i64 0
%26670 = load double, double* %26669
%26671 = load double*, double** %10
%26672 = getelementptr inbounds double, double* %26671, i64 0
%26673 = load double, double* %26672
%26674 = fsub double %26670, %26673
%26675 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26674, double* %26675
%26676 = load double*, double** %13
%26677 = getelementptr inbounds double, double* %26676, i64 1
%26678 = load double, double* %26677
%26679 = load double*, double** %10
%26680 = getelementptr inbounds double, double* %26679, i64 1
%26681 = load double, double* %26680
%26682 = fsub double %26678, %26681
%26683 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26682, double* %26683
%26684 = load double*, double** %13
%26685 = getelementptr inbounds double, double* %26684, i64 2
%26686 = load double, double* %26685
%26687 = load double*, double** %10
%26688 = getelementptr inbounds double, double* %26687, i64 2
%26689 = load double, double* %26688
%26690 = fsub double %26686, %26689
%26691 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26690, double* %26691
%26692 = load double*, double** %8
%26693 = getelementptr inbounds double, double* %26692, i64 0
%26694 = load double, double* %26693
%26695 = load double*, double** %10
%26696 = getelementptr inbounds double, double* %26695, i64 0
%26697 = load double, double* %26696
%26698 = fsub double %26694, %26697
%26699 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26698, double* %26699
%26700 = load double*, double** %8
%26701 = getelementptr inbounds double, double* %26700, i64 1
%26702 = load double, double* %26701
%26703 = load double*, double** %10
%26704 = getelementptr inbounds double, double* %26703, i64 1
%26705 = load double, double* %26704
%26706 = fsub double %26702, %26705
%26707 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26706, double* %26707
%26708 = load double*, double** %8
%26709 = getelementptr inbounds double, double* %26708, i64 2
%26710 = load double, double* %26709
%26711 = load double*, double** %10
%26712 = getelementptr inbounds double, double* %26711, i64 2
%26713 = load double, double* %26712
%26714 = fsub double %26710, %26713
%26715 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26714, double* %26715
%26716 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26717 = load double, double* %26716
%26718 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26719 = load double, double* %26718
%26720 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26721 = load double, double* %26720
%26722 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26723 = load double, double* %26722
%26724 = fmul double %26721, %26723
%26725 = fneg double %26724
%26726 = call double @llvm.fmuladd.f64(double %26717, double %26719, double %26725)
%26727 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26726, double* %26727
%26728 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26729 = load double, double* %26728
%26730 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26731 = load double, double* %26730
%26732 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26733 = load double, double* %26732
%26734 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26735 = load double, double* %26734
%26736 = fmul double %26733, %26735
%26737 = fneg double %26736
%26738 = call double @llvm.fmuladd.f64(double %26729, double %26731, double %26737)
%26739 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26738, double* %26739
%26740 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26741 = load double, double* %26740
%26742 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26743 = load double, double* %26742
%26744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26745 = load double, double* %26744
%26746 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26747 = load double, double* %26746
%26748 = fmul double %26745, %26747
%26749 = fneg double %26748
%26750 = call double @llvm.fmuladd.f64(double %26741, double %26743, double %26749)
%26751 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26750, double* %26751
%26752 = load double*, double** %12
%26753 = getelementptr inbounds double, double* %26752, i64 0
%26754 = load double, double* %26753
%26755 = load double*, double** %10
%26756 = getelementptr inbounds double, double* %26755, i64 0
%26757 = load double, double* %26756
%26758 = fsub double %26754, %26757
%26759 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26758, double* %26759
%26760 = load double*, double** %12
%26761 = getelementptr inbounds double, double* %26760, i64 1
%26762 = load double, double* %26761
%26763 = load double*, double** %10
%26764 = getelementptr inbounds double, double* %26763, i64 1
%26765 = load double, double* %26764
%26766 = fsub double %26762, %26765
%26767 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26766, double* %26767
%26768 = load double*, double** %12
%26769 = getelementptr inbounds double, double* %26768, i64 2
%26770 = load double, double* %26769
%26771 = load double*, double** %10
%26772 = getelementptr inbounds double, double* %26771, i64 2
%26773 = load double, double* %26772
%26774 = fsub double %26770, %26773
%26775 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26774, double* %26775
%26776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26777 = load double, double* %26776
%26778 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26779 = load double, double* %26778
%26780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26781 = load double, double* %26780
%26782 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26783 = load double, double* %26782
%26784 = fmul double %26781, %26783
%26785 = call double @llvm.fmuladd.f64(double %26777, double %26779, double %26784)
%26786 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26787 = load double, double* %26786
%26788 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26789 = load double, double* %26788
%26790 = call double @llvm.fmuladd.f64(double %26787, double %26789, double %26785)
%26791 = fcmp ogt double %26790, 0.000000e+00
br i1 %26791, label %26792, label %26793
26792: ; preds = %26667
store i32 0, i32* %7
br label %37464
26793: ; preds = %26667
%26794 = load double*, double** %13
%26795 = getelementptr inbounds double, double* %26794, i64 0
%26796 = load double, double* %26795
%26797 = load double*, double** %8
%26798 = getelementptr inbounds double, double* %26797, i64 0
%26799 = load double, double* %26798
%26800 = fsub double %26796, %26799
%26801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26800, double* %26801
%26802 = load double*, double** %13
%26803 = getelementptr inbounds double, double* %26802, i64 1
%26804 = load double, double* %26803
%26805 = load double*, double** %8
%26806 = getelementptr inbounds double, double* %26805, i64 1
%26807 = load double, double* %26806
%26808 = fsub double %26804, %26807
%26809 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26808, double* %26809
%26810 = load double*, double** %13
%26811 = getelementptr inbounds double, double* %26810, i64 2
%26812 = load double, double* %26811
%26813 = load double*, double** %8
%26814 = getelementptr inbounds double, double* %26813, i64 2
%26815 = load double, double* %26814
%26816 = fsub double %26812, %26815
%26817 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26816, double* %26817
%26818 = load double*, double** %9
%26819 = getelementptr inbounds double, double* %26818, i64 0
%26820 = load double, double* %26819
%26821 = load double*, double** %8
%26822 = getelementptr inbounds double, double* %26821, i64 0
%26823 = load double, double* %26822
%26824 = fsub double %26820, %26823
%26825 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26824, double* %26825
%26826 = load double*, double** %9
%26827 = getelementptr inbounds double, double* %26826, i64 1
%26828 = load double, double* %26827
%26829 = load double*, double** %8
%26830 = getelementptr inbounds double, double* %26829, i64 1
%26831 = load double, double* %26830
%26832 = fsub double %26828, %26831
%26833 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26832, double* %26833
%26834 = load double*, double** %9
%26835 = getelementptr inbounds double, double* %26834, i64 2
%26836 = load double, double* %26835
%26837 = load double*, double** %8
%26838 = getelementptr inbounds double, double* %26837, i64 2
%26839 = load double, double* %26838
%26840 = fsub double %26836, %26839
%26841 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26840, double* %26841
%26842 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26843 = load double, double* %26842
%26844 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26845 = load double, double* %26844
%26846 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26847 = load double, double* %26846
%26848 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26849 = load double, double* %26848
%26850 = fmul double %26847, %26849
%26851 = fneg double %26850
%26852 = call double @llvm.fmuladd.f64(double %26843, double %26845, double %26851)
%26853 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26852, double* %26853
%26854 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26855 = load double, double* %26854
%26856 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26857 = load double, double* %26856
%26858 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26859 = load double, double* %26858
%26860 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26861 = load double, double* %26860
%26862 = fmul double %26859, %26861
%26863 = fneg double %26862
%26864 = call double @llvm.fmuladd.f64(double %26855, double %26857, double %26863)
%26865 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26864, double* %26865
%26866 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26867 = load double, double* %26866
%26868 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26869 = load double, double* %26868
%26870 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26871 = load double, double* %26870
%26872 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26873 = load double, double* %26872
%26874 = fmul double %26871, %26873
%26875 = fneg double %26874
%26876 = call double @llvm.fmuladd.f64(double %26867, double %26869, double %26875)
%26877 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %26876, double* %26877
%26878 = load double*, double** %11
%26879 = getelementptr inbounds double, double* %26878, i64 0
%26880 = load double, double* %26879
%26881 = load double*, double** %8
%26882 = getelementptr inbounds double, double* %26881, i64 0
%26883 = load double, double* %26882
%26884 = fsub double %26880, %26883
%26885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26884, double* %26885
%26886 = load double*, double** %11
%26887 = getelementptr inbounds double, double* %26886, i64 1
%26888 = load double, double* %26887
%26889 = load double*, double** %8
%26890 = getelementptr inbounds double, double* %26889, i64 1
%26891 = load double, double* %26890
%26892 = fsub double %26888, %26891
%26893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26892, double* %26893
%26894 = load double*, double** %11
%26895 = getelementptr inbounds double, double* %26894, i64 2
%26896 = load double, double* %26895
%26897 = load double*, double** %8
%26898 = getelementptr inbounds double, double* %26897, i64 2
%26899 = load double, double* %26898
%26900 = fsub double %26896, %26899
%26901 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26900, double* %26901
%26902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26903 = load double, double* %26902
%26904 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%26905 = load double, double* %26904
%26906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26907 = load double, double* %26906
%26908 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%26909 = load double, double* %26908
%26910 = fmul double %26907, %26909
%26911 = call double @llvm.fmuladd.f64(double %26903, double %26905, double %26910)
%26912 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26913 = load double, double* %26912
%26914 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%26915 = load double, double* %26914
%26916 = call double @llvm.fmuladd.f64(double %26913, double %26915, double %26911)
%26917 = fcmp ogt double %26916, 0.000000e+00
br i1 %26917, label %26918, label %26919
26918: ; preds = %26793
store i32 0, i32* %7
br label %37464
26919: ; preds = %26793
store i32 1, i32* %7
br label %37464
26920: ; preds = %26664
%26921 = load double*, double** %11
%26922 = getelementptr inbounds double, double* %26921, i64 0
%26923 = load double, double* %26922
%26924 = load double*, double** %9
%26925 = getelementptr inbounds double, double* %26924, i64 0
%26926 = load double, double* %26925
%26927 = fsub double %26923, %26926
%26928 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %26927, double* %26928
%26929 = load double*, double** %11
%26930 = getelementptr inbounds double, double* %26929, i64 1
%26931 = load double, double* %26930
%26932 = load double*, double** %9
%26933 = getelementptr inbounds double, double* %26932, i64 1
%26934 = load double, double* %26933
%26935 = fsub double %26931, %26934
%26936 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %26935, double* %26936
%26937 = load double*, double** %11
%26938 = getelementptr inbounds double, double* %26937, i64 2
%26939 = load double, double* %26938
%26940 = load double*, double** %9
%26941 = getelementptr inbounds double, double* %26940, i64 2
%26942 = load double, double* %26941
%26943 = fsub double %26939, %26942
%26944 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %26943, double* %26944
%26945 = load double*, double** %8
%26946 = getelementptr inbounds double, double* %26945, i64 0
%26947 = load double, double* %26946
%26948 = load double*, double** %9
%26949 = getelementptr inbounds double, double* %26948, i64 0
%26950 = load double, double* %26949
%26951 = fsub double %26947, %26950
%26952 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %26951, double* %26952
%26953 = load double*, double** %8
%26954 = getelementptr inbounds double, double* %26953, i64 1
%26955 = load double, double* %26954
%26956 = load double*, double** %9
%26957 = getelementptr inbounds double, double* %26956, i64 1
%26958 = load double, double* %26957
%26959 = fsub double %26955, %26958
%26960 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %26959, double* %26960
%26961 = load double*, double** %8
%26962 = getelementptr inbounds double, double* %26961, i64 2
%26963 = load double, double* %26962
%26964 = load double*, double** %9
%26965 = getelementptr inbounds double, double* %26964, i64 2
%26966 = load double, double* %26965
%26967 = fsub double %26963, %26966
%26968 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %26967, double* %26968
%26969 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26970 = load double, double* %26969
%26971 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26972 = load double, double* %26971
%26973 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26974 = load double, double* %26973
%26975 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26976 = load double, double* %26975
%26977 = fmul double %26974, %26976
%26978 = fneg double %26977
%26979 = call double @llvm.fmuladd.f64(double %26970, double %26972, double %26978)
%26980 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %26979, double* %26980
%26981 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%26982 = load double, double* %26981
%26983 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%26984 = load double, double* %26983
%26985 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26986 = load double, double* %26985
%26987 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%26988 = load double, double* %26987
%26989 = fmul double %26986, %26988
%26990 = fneg double %26989
%26991 = call double @llvm.fmuladd.f64(double %26982, double %26984, double %26990)
%26992 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %26991, double* %26992
%26993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%26994 = load double, double* %26993
%26995 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%26996 = load double, double* %26995
%26997 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%26998 = load double, double* %26997
%26999 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27000 = load double, double* %26999
%27001 = fmul double %26998, %27000
%27002 = fneg double %27001
%27003 = call double @llvm.fmuladd.f64(double %26994, double %26996, double %27002)
%27004 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27003, double* %27004
%27005 = load double*, double** %13
%27006 = getelementptr inbounds double, double* %27005, i64 0
%27007 = load double, double* %27006
%27008 = load double*, double** %9
%27009 = getelementptr inbounds double, double* %27008, i64 0
%27010 = load double, double* %27009
%27011 = fsub double %27007, %27010
%27012 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27011, double* %27012
%27013 = load double*, double** %13
%27014 = getelementptr inbounds double, double* %27013, i64 1
%27015 = load double, double* %27014
%27016 = load double*, double** %9
%27017 = getelementptr inbounds double, double* %27016, i64 1
%27018 = load double, double* %27017
%27019 = fsub double %27015, %27018
%27020 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27019, double* %27020
%27021 = load double*, double** %13
%27022 = getelementptr inbounds double, double* %27021, i64 2
%27023 = load double, double* %27022
%27024 = load double*, double** %9
%27025 = getelementptr inbounds double, double* %27024, i64 2
%27026 = load double, double* %27025
%27027 = fsub double %27023, %27026
%27028 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27027, double* %27028
%27029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27030 = load double, double* %27029
%27031 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27032 = load double, double* %27031
%27033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27034 = load double, double* %27033
%27035 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27036 = load double, double* %27035
%27037 = fmul double %27034, %27036
%27038 = call double @llvm.fmuladd.f64(double %27030, double %27032, double %27037)
%27039 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27040 = load double, double* %27039
%27041 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27042 = load double, double* %27041
%27043 = call double @llvm.fmuladd.f64(double %27040, double %27042, double %27038)
%27044 = fcmp ogt double %27043, 0.000000e+00
br i1 %27044, label %27045, label %27046
27045: ; preds = %26920
store i32 0, i32* %7
br label %37464
27046: ; preds = %26920
%27047 = load double*, double** %11
%27048 = getelementptr inbounds double, double* %27047, i64 0
%27049 = load double, double* %27048
%27050 = load double*, double** %8
%27051 = getelementptr inbounds double, double* %27050, i64 0
%27052 = load double, double* %27051
%27053 = fsub double %27049, %27052
%27054 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27053, double* %27054
%27055 = load double*, double** %11
%27056 = getelementptr inbounds double, double* %27055, i64 1
%27057 = load double, double* %27056
%27058 = load double*, double** %8
%27059 = getelementptr inbounds double, double* %27058, i64 1
%27060 = load double, double* %27059
%27061 = fsub double %27057, %27060
%27062 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27061, double* %27062
%27063 = load double*, double** %11
%27064 = getelementptr inbounds double, double* %27063, i64 2
%27065 = load double, double* %27064
%27066 = load double*, double** %8
%27067 = getelementptr inbounds double, double* %27066, i64 2
%27068 = load double, double* %27067
%27069 = fsub double %27065, %27068
%27070 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27069, double* %27070
%27071 = load double*, double** %10
%27072 = getelementptr inbounds double, double* %27071, i64 0
%27073 = load double, double* %27072
%27074 = load double*, double** %8
%27075 = getelementptr inbounds double, double* %27074, i64 0
%27076 = load double, double* %27075
%27077 = fsub double %27073, %27076
%27078 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27077, double* %27078
%27079 = load double*, double** %10
%27080 = getelementptr inbounds double, double* %27079, i64 1
%27081 = load double, double* %27080
%27082 = load double*, double** %8
%27083 = getelementptr inbounds double, double* %27082, i64 1
%27084 = load double, double* %27083
%27085 = fsub double %27081, %27084
%27086 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27085, double* %27086
%27087 = load double*, double** %10
%27088 = getelementptr inbounds double, double* %27087, i64 2
%27089 = load double, double* %27088
%27090 = load double*, double** %8
%27091 = getelementptr inbounds double, double* %27090, i64 2
%27092 = load double, double* %27091
%27093 = fsub double %27089, %27092
%27094 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27093, double* %27094
%27095 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27096 = load double, double* %27095
%27097 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27098 = load double, double* %27097
%27099 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27100 = load double, double* %27099
%27101 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27102 = load double, double* %27101
%27103 = fmul double %27100, %27102
%27104 = fneg double %27103
%27105 = call double @llvm.fmuladd.f64(double %27096, double %27098, double %27104)
%27106 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27105, double* %27106
%27107 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27108 = load double, double* %27107
%27109 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27110 = load double, double* %27109
%27111 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27112 = load double, double* %27111
%27113 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27114 = load double, double* %27113
%27115 = fmul double %27112, %27114
%27116 = fneg double %27115
%27117 = call double @llvm.fmuladd.f64(double %27108, double %27110, double %27116)
%27118 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27117, double* %27118
%27119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27120 = load double, double* %27119
%27121 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27122 = load double, double* %27121
%27123 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27124 = load double, double* %27123
%27125 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27126 = load double, double* %27125
%27127 = fmul double %27124, %27126
%27128 = fneg double %27127
%27129 = call double @llvm.fmuladd.f64(double %27120, double %27122, double %27128)
%27130 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27129, double* %27130
%27131 = load double*, double** %12
%27132 = getelementptr inbounds double, double* %27131, i64 0
%27133 = load double, double* %27132
%27134 = load double*, double** %8
%27135 = getelementptr inbounds double, double* %27134, i64 0
%27136 = load double, double* %27135
%27137 = fsub double %27133, %27136
%27138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27137, double* %27138
%27139 = load double*, double** %12
%27140 = getelementptr inbounds double, double* %27139, i64 1
%27141 = load double, double* %27140
%27142 = load double*, double** %8
%27143 = getelementptr inbounds double, double* %27142, i64 1
%27144 = load double, double* %27143
%27145 = fsub double %27141, %27144
%27146 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27145, double* %27146
%27147 = load double*, double** %12
%27148 = getelementptr inbounds double, double* %27147, i64 2
%27149 = load double, double* %27148
%27150 = load double*, double** %8
%27151 = getelementptr inbounds double, double* %27150, i64 2
%27152 = load double, double* %27151
%27153 = fsub double %27149, %27152
%27154 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27153, double* %27154
%27155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27156 = load double, double* %27155
%27157 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27158 = load double, double* %27157
%27159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27160 = load double, double* %27159
%27161 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27162 = load double, double* %27161
%27163 = fmul double %27160, %27162
%27164 = call double @llvm.fmuladd.f64(double %27156, double %27158, double %27163)
%27165 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27166 = load double, double* %27165
%27167 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27168 = load double, double* %27167
%27169 = call double @llvm.fmuladd.f64(double %27166, double %27168, double %27164)
%27170 = fcmp ogt double %27169, 0.000000e+00
br i1 %27170, label %27171, label %27172
27171: ; preds = %27046
store i32 0, i32* %7
br label %37464
27172: ; preds = %27046
store i32 1, i32* %7
br label %37464
27173: ; preds = %26661
%27174 = load double, double* %19
%27175 = fcmp ogt double %27174, 0.000000e+00
br i1 %27175, label %27176, label %27685
27176: ; preds = %27173
%27177 = load double, double* %18
%27178 = fcmp ogt double %27177, 0.000000e+00
br i1 %27178, label %27179, label %27432
27179: ; preds = %27176
%27180 = load double*, double** %11
%27181 = getelementptr inbounds double, double* %27180, i64 0
%27182 = load double, double* %27181
%27183 = load double*, double** %10
%27184 = getelementptr inbounds double, double* %27183, i64 0
%27185 = load double, double* %27184
%27186 = fsub double %27182, %27185
%27187 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27186, double* %27187
%27188 = load double*, double** %11
%27189 = getelementptr inbounds double, double* %27188, i64 1
%27190 = load double, double* %27189
%27191 = load double*, double** %10
%27192 = getelementptr inbounds double, double* %27191, i64 1
%27193 = load double, double* %27192
%27194 = fsub double %27190, %27193
%27195 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27194, double* %27195
%27196 = load double*, double** %11
%27197 = getelementptr inbounds double, double* %27196, i64 2
%27198 = load double, double* %27197
%27199 = load double*, double** %10
%27200 = getelementptr inbounds double, double* %27199, i64 2
%27201 = load double, double* %27200
%27202 = fsub double %27198, %27201
%27203 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27202, double* %27203
%27204 = load double*, double** %8
%27205 = getelementptr inbounds double, double* %27204, i64 0
%27206 = load double, double* %27205
%27207 = load double*, double** %10
%27208 = getelementptr inbounds double, double* %27207, i64 0
%27209 = load double, double* %27208
%27210 = fsub double %27206, %27209
%27211 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27210, double* %27211
%27212 = load double*, double** %8
%27213 = getelementptr inbounds double, double* %27212, i64 1
%27214 = load double, double* %27213
%27215 = load double*, double** %10
%27216 = getelementptr inbounds double, double* %27215, i64 1
%27217 = load double, double* %27216
%27218 = fsub double %27214, %27217
%27219 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27218, double* %27219
%27220 = load double*, double** %8
%27221 = getelementptr inbounds double, double* %27220, i64 2
%27222 = load double, double* %27221
%27223 = load double*, double** %10
%27224 = getelementptr inbounds double, double* %27223, i64 2
%27225 = load double, double* %27224
%27226 = fsub double %27222, %27225
%27227 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27226, double* %27227
%27228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27229 = load double, double* %27228
%27230 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27231 = load double, double* %27230
%27232 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27233 = load double, double* %27232
%27234 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27235 = load double, double* %27234
%27236 = fmul double %27233, %27235
%27237 = fneg double %27236
%27238 = call double @llvm.fmuladd.f64(double %27229, double %27231, double %27237)
%27239 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27238, double* %27239
%27240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27241 = load double, double* %27240
%27242 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27243 = load double, double* %27242
%27244 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27245 = load double, double* %27244
%27246 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27247 = load double, double* %27246
%27248 = fmul double %27245, %27247
%27249 = fneg double %27248
%27250 = call double @llvm.fmuladd.f64(double %27241, double %27243, double %27249)
%27251 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27250, double* %27251
%27252 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27253 = load double, double* %27252
%27254 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27255 = load double, double* %27254
%27256 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27257 = load double, double* %27256
%27258 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27259 = load double, double* %27258
%27260 = fmul double %27257, %27259
%27261 = fneg double %27260
%27262 = call double @llvm.fmuladd.f64(double %27253, double %27255, double %27261)
%27263 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27262, double* %27263
%27264 = load double*, double** %13
%27265 = getelementptr inbounds double, double* %27264, i64 0
%27266 = load double, double* %27265
%27267 = load double*, double** %10
%27268 = getelementptr inbounds double, double* %27267, i64 0
%27269 = load double, double* %27268
%27270 = fsub double %27266, %27269
%27271 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27270, double* %27271
%27272 = load double*, double** %13
%27273 = getelementptr inbounds double, double* %27272, i64 1
%27274 = load double, double* %27273
%27275 = load double*, double** %10
%27276 = getelementptr inbounds double, double* %27275, i64 1
%27277 = load double, double* %27276
%27278 = fsub double %27274, %27277
%27279 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27278, double* %27279
%27280 = load double*, double** %13
%27281 = getelementptr inbounds double, double* %27280, i64 2
%27282 = load double, double* %27281
%27283 = load double*, double** %10
%27284 = getelementptr inbounds double, double* %27283, i64 2
%27285 = load double, double* %27284
%27286 = fsub double %27282, %27285
%27287 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27286, double* %27287
%27288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27289 = load double, double* %27288
%27290 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27291 = load double, double* %27290
%27292 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27293 = load double, double* %27292
%27294 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27295 = load double, double* %27294
%27296 = fmul double %27293, %27295
%27297 = call double @llvm.fmuladd.f64(double %27289, double %27291, double %27296)
%27298 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27299 = load double, double* %27298
%27300 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27301 = load double, double* %27300
%27302 = call double @llvm.fmuladd.f64(double %27299, double %27301, double %27297)
%27303 = fcmp ogt double %27302, 0.000000e+00
br i1 %27303, label %27304, label %27305
27304: ; preds = %27179
store i32 0, i32* %7
br label %37464
27305: ; preds = %27179
%27306 = load double*, double** %11
%27307 = getelementptr inbounds double, double* %27306, i64 0
%27308 = load double, double* %27307
%27309 = load double*, double** %8
%27310 = getelementptr inbounds double, double* %27309, i64 0
%27311 = load double, double* %27310
%27312 = fsub double %27308, %27311
%27313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27312, double* %27313
%27314 = load double*, double** %11
%27315 = getelementptr inbounds double, double* %27314, i64 1
%27316 = load double, double* %27315
%27317 = load double*, double** %8
%27318 = getelementptr inbounds double, double* %27317, i64 1
%27319 = load double, double* %27318
%27320 = fsub double %27316, %27319
%27321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27320, double* %27321
%27322 = load double*, double** %11
%27323 = getelementptr inbounds double, double* %27322, i64 2
%27324 = load double, double* %27323
%27325 = load double*, double** %8
%27326 = getelementptr inbounds double, double* %27325, i64 2
%27327 = load double, double* %27326
%27328 = fsub double %27324, %27327
%27329 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27328, double* %27329
%27330 = load double*, double** %9
%27331 = getelementptr inbounds double, double* %27330, i64 0
%27332 = load double, double* %27331
%27333 = load double*, double** %8
%27334 = getelementptr inbounds double, double* %27333, i64 0
%27335 = load double, double* %27334
%27336 = fsub double %27332, %27335
%27337 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27336, double* %27337
%27338 = load double*, double** %9
%27339 = getelementptr inbounds double, double* %27338, i64 1
%27340 = load double, double* %27339
%27341 = load double*, double** %8
%27342 = getelementptr inbounds double, double* %27341, i64 1
%27343 = load double, double* %27342
%27344 = fsub double %27340, %27343
%27345 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27344, double* %27345
%27346 = load double*, double** %9
%27347 = getelementptr inbounds double, double* %27346, i64 2
%27348 = load double, double* %27347
%27349 = load double*, double** %8
%27350 = getelementptr inbounds double, double* %27349, i64 2
%27351 = load double, double* %27350
%27352 = fsub double %27348, %27351
%27353 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27352, double* %27353
%27354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27355 = load double, double* %27354
%27356 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27357 = load double, double* %27356
%27358 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27359 = load double, double* %27358
%27360 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27361 = load double, double* %27360
%27362 = fmul double %27359, %27361
%27363 = fneg double %27362
%27364 = call double @llvm.fmuladd.f64(double %27355, double %27357, double %27363)
%27365 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27364, double* %27365
%27366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27367 = load double, double* %27366
%27368 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27369 = load double, double* %27368
%27370 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27371 = load double, double* %27370
%27372 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27373 = load double, double* %27372
%27374 = fmul double %27371, %27373
%27375 = fneg double %27374
%27376 = call double @llvm.fmuladd.f64(double %27367, double %27369, double %27375)
%27377 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27376, double* %27377
%27378 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27379 = load double, double* %27378
%27380 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27381 = load double, double* %27380
%27382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27383 = load double, double* %27382
%27384 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27385 = load double, double* %27384
%27386 = fmul double %27383, %27385
%27387 = fneg double %27386
%27388 = call double @llvm.fmuladd.f64(double %27379, double %27381, double %27387)
%27389 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27388, double* %27389
%27390 = load double*, double** %12
%27391 = getelementptr inbounds double, double* %27390, i64 0
%27392 = load double, double* %27391
%27393 = load double*, double** %8
%27394 = getelementptr inbounds double, double* %27393, i64 0
%27395 = load double, double* %27394
%27396 = fsub double %27392, %27395
%27397 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27396, double* %27397
%27398 = load double*, double** %12
%27399 = getelementptr inbounds double, double* %27398, i64 1
%27400 = load double, double* %27399
%27401 = load double*, double** %8
%27402 = getelementptr inbounds double, double* %27401, i64 1
%27403 = load double, double* %27402
%27404 = fsub double %27400, %27403
%27405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27404, double* %27405
%27406 = load double*, double** %12
%27407 = getelementptr inbounds double, double* %27406, i64 2
%27408 = load double, double* %27407
%27409 = load double*, double** %8
%27410 = getelementptr inbounds double, double* %27409, i64 2
%27411 = load double, double* %27410
%27412 = fsub double %27408, %27411
%27413 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27412, double* %27413
%27414 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27415 = load double, double* %27414
%27416 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27417 = load double, double* %27416
%27418 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27419 = load double, double* %27418
%27420 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27421 = load double, double* %27420
%27422 = fmul double %27419, %27421
%27423 = call double @llvm.fmuladd.f64(double %27415, double %27417, double %27422)
%27424 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27425 = load double, double* %27424
%27426 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27427 = load double, double* %27426
%27428 = call double @llvm.fmuladd.f64(double %27425, double %27427, double %27423)
%27429 = fcmp ogt double %27428, 0.000000e+00
br i1 %27429, label %27430, label %27431
27430: ; preds = %27305
store i32 0, i32* %7
br label %37464
27431: ; preds = %27305
store i32 1, i32* %7
br label %37464
27432: ; preds = %27176
%27433 = load double*, double** %13
%27434 = getelementptr inbounds double, double* %27433, i64 0
%27435 = load double, double* %27434
%27436 = load double*, double** %9
%27437 = getelementptr inbounds double, double* %27436, i64 0
%27438 = load double, double* %27437
%27439 = fsub double %27435, %27438
%27440 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27439, double* %27440
%27441 = load double*, double** %13
%27442 = getelementptr inbounds double, double* %27441, i64 1
%27443 = load double, double* %27442
%27444 = load double*, double** %9
%27445 = getelementptr inbounds double, double* %27444, i64 1
%27446 = load double, double* %27445
%27447 = fsub double %27443, %27446
%27448 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27447, double* %27448
%27449 = load double*, double** %13
%27450 = getelementptr inbounds double, double* %27449, i64 2
%27451 = load double, double* %27450
%27452 = load double*, double** %9
%27453 = getelementptr inbounds double, double* %27452, i64 2
%27454 = load double, double* %27453
%27455 = fsub double %27451, %27454
%27456 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27455, double* %27456
%27457 = load double*, double** %8
%27458 = getelementptr inbounds double, double* %27457, i64 0
%27459 = load double, double* %27458
%27460 = load double*, double** %9
%27461 = getelementptr inbounds double, double* %27460, i64 0
%27462 = load double, double* %27461
%27463 = fsub double %27459, %27462
%27464 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27463, double* %27464
%27465 = load double*, double** %8
%27466 = getelementptr inbounds double, double* %27465, i64 1
%27467 = load double, double* %27466
%27468 = load double*, double** %9
%27469 = getelementptr inbounds double, double* %27468, i64 1
%27470 = load double, double* %27469
%27471 = fsub double %27467, %27470
%27472 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27471, double* %27472
%27473 = load double*, double** %8
%27474 = getelementptr inbounds double, double* %27473, i64 2
%27475 = load double, double* %27474
%27476 = load double*, double** %9
%27477 = getelementptr inbounds double, double* %27476, i64 2
%27478 = load double, double* %27477
%27479 = fsub double %27475, %27478
%27480 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27479, double* %27480
%27481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27482 = load double, double* %27481
%27483 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27484 = load double, double* %27483
%27485 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27486 = load double, double* %27485
%27487 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27488 = load double, double* %27487
%27489 = fmul double %27486, %27488
%27490 = fneg double %27489
%27491 = call double @llvm.fmuladd.f64(double %27482, double %27484, double %27490)
%27492 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27491, double* %27492
%27493 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27494 = load double, double* %27493
%27495 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27496 = load double, double* %27495
%27497 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27498 = load double, double* %27497
%27499 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27500 = load double, double* %27499
%27501 = fmul double %27498, %27500
%27502 = fneg double %27501
%27503 = call double @llvm.fmuladd.f64(double %27494, double %27496, double %27502)
%27504 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27503, double* %27504
%27505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27506 = load double, double* %27505
%27507 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27508 = load double, double* %27507
%27509 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27510 = load double, double* %27509
%27511 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27512 = load double, double* %27511
%27513 = fmul double %27510, %27512
%27514 = fneg double %27513
%27515 = call double @llvm.fmuladd.f64(double %27506, double %27508, double %27514)
%27516 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27515, double* %27516
%27517 = load double*, double** %12
%27518 = getelementptr inbounds double, double* %27517, i64 0
%27519 = load double, double* %27518
%27520 = load double*, double** %9
%27521 = getelementptr inbounds double, double* %27520, i64 0
%27522 = load double, double* %27521
%27523 = fsub double %27519, %27522
%27524 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27523, double* %27524
%27525 = load double*, double** %12
%27526 = getelementptr inbounds double, double* %27525, i64 1
%27527 = load double, double* %27526
%27528 = load double*, double** %9
%27529 = getelementptr inbounds double, double* %27528, i64 1
%27530 = load double, double* %27529
%27531 = fsub double %27527, %27530
%27532 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27531, double* %27532
%27533 = load double*, double** %12
%27534 = getelementptr inbounds double, double* %27533, i64 2
%27535 = load double, double* %27534
%27536 = load double*, double** %9
%27537 = getelementptr inbounds double, double* %27536, i64 2
%27538 = load double, double* %27537
%27539 = fsub double %27535, %27538
%27540 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27539, double* %27540
%27541 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27542 = load double, double* %27541
%27543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27544 = load double, double* %27543
%27545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27546 = load double, double* %27545
%27547 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27548 = load double, double* %27547
%27549 = fmul double %27546, %27548
%27550 = call double @llvm.fmuladd.f64(double %27542, double %27544, double %27549)
%27551 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27552 = load double, double* %27551
%27553 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27554 = load double, double* %27553
%27555 = call double @llvm.fmuladd.f64(double %27552, double %27554, double %27550)
%27556 = fcmp ogt double %27555, 0.000000e+00
br i1 %27556, label %27557, label %27558
27557: ; preds = %27432
store i32 0, i32* %7
br label %37464
27558: ; preds = %27432
%27559 = load double*, double** %13
%27560 = getelementptr inbounds double, double* %27559, i64 0
%27561 = load double, double* %27560
%27562 = load double*, double** %8
%27563 = getelementptr inbounds double, double* %27562, i64 0
%27564 = load double, double* %27563
%27565 = fsub double %27561, %27564
%27566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27565, double* %27566
%27567 = load double*, double** %13
%27568 = getelementptr inbounds double, double* %27567, i64 1
%27569 = load double, double* %27568
%27570 = load double*, double** %8
%27571 = getelementptr inbounds double, double* %27570, i64 1
%27572 = load double, double* %27571
%27573 = fsub double %27569, %27572
%27574 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27573, double* %27574
%27575 = load double*, double** %13
%27576 = getelementptr inbounds double, double* %27575, i64 2
%27577 = load double, double* %27576
%27578 = load double*, double** %8
%27579 = getelementptr inbounds double, double* %27578, i64 2
%27580 = load double, double* %27579
%27581 = fsub double %27577, %27580
%27582 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27581, double* %27582
%27583 = load double*, double** %10
%27584 = getelementptr inbounds double, double* %27583, i64 0
%27585 = load double, double* %27584
%27586 = load double*, double** %8
%27587 = getelementptr inbounds double, double* %27586, i64 0
%27588 = load double, double* %27587
%27589 = fsub double %27585, %27588
%27590 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27589, double* %27590
%27591 = load double*, double** %10
%27592 = getelementptr inbounds double, double* %27591, i64 1
%27593 = load double, double* %27592
%27594 = load double*, double** %8
%27595 = getelementptr inbounds double, double* %27594, i64 1
%27596 = load double, double* %27595
%27597 = fsub double %27593, %27596
%27598 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27597, double* %27598
%27599 = load double*, double** %10
%27600 = getelementptr inbounds double, double* %27599, i64 2
%27601 = load double, double* %27600
%27602 = load double*, double** %8
%27603 = getelementptr inbounds double, double* %27602, i64 2
%27604 = load double, double* %27603
%27605 = fsub double %27601, %27604
%27606 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27605, double* %27606
%27607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27608 = load double, double* %27607
%27609 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27610 = load double, double* %27609
%27611 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27612 = load double, double* %27611
%27613 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27614 = load double, double* %27613
%27615 = fmul double %27612, %27614
%27616 = fneg double %27615
%27617 = call double @llvm.fmuladd.f64(double %27608, double %27610, double %27616)
%27618 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27617, double* %27618
%27619 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27620 = load double, double* %27619
%27621 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27622 = load double, double* %27621
%27623 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27624 = load double, double* %27623
%27625 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27626 = load double, double* %27625
%27627 = fmul double %27624, %27626
%27628 = fneg double %27627
%27629 = call double @llvm.fmuladd.f64(double %27620, double %27622, double %27628)
%27630 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27629, double* %27630
%27631 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27632 = load double, double* %27631
%27633 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27634 = load double, double* %27633
%27635 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27636 = load double, double* %27635
%27637 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27638 = load double, double* %27637
%27639 = fmul double %27636, %27638
%27640 = fneg double %27639
%27641 = call double @llvm.fmuladd.f64(double %27632, double %27634, double %27640)
%27642 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27641, double* %27642
%27643 = load double*, double** %11
%27644 = getelementptr inbounds double, double* %27643, i64 0
%27645 = load double, double* %27644
%27646 = load double*, double** %8
%27647 = getelementptr inbounds double, double* %27646, i64 0
%27648 = load double, double* %27647
%27649 = fsub double %27645, %27648
%27650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27649, double* %27650
%27651 = load double*, double** %11
%27652 = getelementptr inbounds double, double* %27651, i64 1
%27653 = load double, double* %27652
%27654 = load double*, double** %8
%27655 = getelementptr inbounds double, double* %27654, i64 1
%27656 = load double, double* %27655
%27657 = fsub double %27653, %27656
%27658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27657, double* %27658
%27659 = load double*, double** %11
%27660 = getelementptr inbounds double, double* %27659, i64 2
%27661 = load double, double* %27660
%27662 = load double*, double** %8
%27663 = getelementptr inbounds double, double* %27662, i64 2
%27664 = load double, double* %27663
%27665 = fsub double %27661, %27664
%27666 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27665, double* %27666
%27667 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27668 = load double, double* %27667
%27669 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27670 = load double, double* %27669
%27671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27672 = load double, double* %27671
%27673 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27674 = load double, double* %27673
%27675 = fmul double %27672, %27674
%27676 = call double @llvm.fmuladd.f64(double %27668, double %27670, double %27675)
%27677 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27678 = load double, double* %27677
%27679 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27680 = load double, double* %27679
%27681 = call double @llvm.fmuladd.f64(double %27678, double %27680, double %27676)
%27682 = fcmp ogt double %27681, 0.000000e+00
br i1 %27682, label %27683, label %27684
27683: ; preds = %27558
store i32 0, i32* %7
br label %37464
27684: ; preds = %27558
store i32 1, i32* %7
br label %37464
27685: ; preds = %27173
%27686 = load double, double* %18
%27687 = fcmp ogt double %27686, 0.000000e+00
br i1 %27687, label %27688, label %27941
27688: ; preds = %27685
%27689 = load double*, double** %12
%27690 = getelementptr inbounds double, double* %27689, i64 0
%27691 = load double, double* %27690
%27692 = load double*, double** %9
%27693 = getelementptr inbounds double, double* %27692, i64 0
%27694 = load double, double* %27693
%27695 = fsub double %27691, %27694
%27696 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27695, double* %27696
%27697 = load double*, double** %12
%27698 = getelementptr inbounds double, double* %27697, i64 1
%27699 = load double, double* %27698
%27700 = load double*, double** %9
%27701 = getelementptr inbounds double, double* %27700, i64 1
%27702 = load double, double* %27701
%27703 = fsub double %27699, %27702
%27704 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27703, double* %27704
%27705 = load double*, double** %12
%27706 = getelementptr inbounds double, double* %27705, i64 2
%27707 = load double, double* %27706
%27708 = load double*, double** %9
%27709 = getelementptr inbounds double, double* %27708, i64 2
%27710 = load double, double* %27709
%27711 = fsub double %27707, %27710
%27712 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27711, double* %27712
%27713 = load double*, double** %8
%27714 = getelementptr inbounds double, double* %27713, i64 0
%27715 = load double, double* %27714
%27716 = load double*, double** %9
%27717 = getelementptr inbounds double, double* %27716, i64 0
%27718 = load double, double* %27717
%27719 = fsub double %27715, %27718
%27720 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27719, double* %27720
%27721 = load double*, double** %8
%27722 = getelementptr inbounds double, double* %27721, i64 1
%27723 = load double, double* %27722
%27724 = load double*, double** %9
%27725 = getelementptr inbounds double, double* %27724, i64 1
%27726 = load double, double* %27725
%27727 = fsub double %27723, %27726
%27728 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27727, double* %27728
%27729 = load double*, double** %8
%27730 = getelementptr inbounds double, double* %27729, i64 2
%27731 = load double, double* %27730
%27732 = load double*, double** %9
%27733 = getelementptr inbounds double, double* %27732, i64 2
%27734 = load double, double* %27733
%27735 = fsub double %27731, %27734
%27736 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27735, double* %27736
%27737 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27738 = load double, double* %27737
%27739 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27740 = load double, double* %27739
%27741 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27742 = load double, double* %27741
%27743 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27744 = load double, double* %27743
%27745 = fmul double %27742, %27744
%27746 = fneg double %27745
%27747 = call double @llvm.fmuladd.f64(double %27738, double %27740, double %27746)
%27748 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27747, double* %27748
%27749 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27750 = load double, double* %27749
%27751 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27752 = load double, double* %27751
%27753 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27754 = load double, double* %27753
%27755 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27756 = load double, double* %27755
%27757 = fmul double %27754, %27756
%27758 = fneg double %27757
%27759 = call double @llvm.fmuladd.f64(double %27750, double %27752, double %27758)
%27760 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27759, double* %27760
%27761 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27762 = load double, double* %27761
%27763 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27764 = load double, double* %27763
%27765 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27766 = load double, double* %27765
%27767 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27768 = load double, double* %27767
%27769 = fmul double %27766, %27768
%27770 = fneg double %27769
%27771 = call double @llvm.fmuladd.f64(double %27762, double %27764, double %27770)
%27772 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27771, double* %27772
%27773 = load double*, double** %11
%27774 = getelementptr inbounds double, double* %27773, i64 0
%27775 = load double, double* %27774
%27776 = load double*, double** %9
%27777 = getelementptr inbounds double, double* %27776, i64 0
%27778 = load double, double* %27777
%27779 = fsub double %27775, %27778
%27780 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27779, double* %27780
%27781 = load double*, double** %11
%27782 = getelementptr inbounds double, double* %27781, i64 1
%27783 = load double, double* %27782
%27784 = load double*, double** %9
%27785 = getelementptr inbounds double, double* %27784, i64 1
%27786 = load double, double* %27785
%27787 = fsub double %27783, %27786
%27788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27787, double* %27788
%27789 = load double*, double** %11
%27790 = getelementptr inbounds double, double* %27789, i64 2
%27791 = load double, double* %27790
%27792 = load double*, double** %9
%27793 = getelementptr inbounds double, double* %27792, i64 2
%27794 = load double, double* %27793
%27795 = fsub double %27791, %27794
%27796 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27795, double* %27796
%27797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27798 = load double, double* %27797
%27799 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27800 = load double, double* %27799
%27801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27802 = load double, double* %27801
%27803 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27804 = load double, double* %27803
%27805 = fmul double %27802, %27804
%27806 = call double @llvm.fmuladd.f64(double %27798, double %27800, double %27805)
%27807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27808 = load double, double* %27807
%27809 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27810 = load double, double* %27809
%27811 = call double @llvm.fmuladd.f64(double %27808, double %27810, double %27806)
%27812 = fcmp ogt double %27811, 0.000000e+00
br i1 %27812, label %27813, label %27814
27813: ; preds = %27688
store i32 0, i32* %7
br label %37464
27814: ; preds = %27688
%27815 = load double*, double** %12
%27816 = getelementptr inbounds double, double* %27815, i64 0
%27817 = load double, double* %27816
%27818 = load double*, double** %8
%27819 = getelementptr inbounds double, double* %27818, i64 0
%27820 = load double, double* %27819
%27821 = fsub double %27817, %27820
%27822 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27821, double* %27822
%27823 = load double*, double** %12
%27824 = getelementptr inbounds double, double* %27823, i64 1
%27825 = load double, double* %27824
%27826 = load double*, double** %8
%27827 = getelementptr inbounds double, double* %27826, i64 1
%27828 = load double, double* %27827
%27829 = fsub double %27825, %27828
%27830 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27829, double* %27830
%27831 = load double*, double** %12
%27832 = getelementptr inbounds double, double* %27831, i64 2
%27833 = load double, double* %27832
%27834 = load double*, double** %8
%27835 = getelementptr inbounds double, double* %27834, i64 2
%27836 = load double, double* %27835
%27837 = fsub double %27833, %27836
%27838 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27837, double* %27838
%27839 = load double*, double** %10
%27840 = getelementptr inbounds double, double* %27839, i64 0
%27841 = load double, double* %27840
%27842 = load double*, double** %8
%27843 = getelementptr inbounds double, double* %27842, i64 0
%27844 = load double, double* %27843
%27845 = fsub double %27841, %27844
%27846 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27845, double* %27846
%27847 = load double*, double** %10
%27848 = getelementptr inbounds double, double* %27847, i64 1
%27849 = load double, double* %27848
%27850 = load double*, double** %8
%27851 = getelementptr inbounds double, double* %27850, i64 1
%27852 = load double, double* %27851
%27853 = fsub double %27849, %27852
%27854 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27853, double* %27854
%27855 = load double*, double** %10
%27856 = getelementptr inbounds double, double* %27855, i64 2
%27857 = load double, double* %27856
%27858 = load double*, double** %8
%27859 = getelementptr inbounds double, double* %27858, i64 2
%27860 = load double, double* %27859
%27861 = fsub double %27857, %27860
%27862 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27861, double* %27862
%27863 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27864 = load double, double* %27863
%27865 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27866 = load double, double* %27865
%27867 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27868 = load double, double* %27867
%27869 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27870 = load double, double* %27869
%27871 = fmul double %27868, %27870
%27872 = fneg double %27871
%27873 = call double @llvm.fmuladd.f64(double %27864, double %27866, double %27872)
%27874 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %27873, double* %27874
%27875 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27876 = load double, double* %27875
%27877 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27878 = load double, double* %27877
%27879 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27880 = load double, double* %27879
%27881 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27882 = load double, double* %27881
%27883 = fmul double %27880, %27882
%27884 = fneg double %27883
%27885 = call double @llvm.fmuladd.f64(double %27876, double %27878, double %27884)
%27886 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %27885, double* %27886
%27887 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27888 = load double, double* %27887
%27889 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%27890 = load double, double* %27889
%27891 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27892 = load double, double* %27891
%27893 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%27894 = load double, double* %27893
%27895 = fmul double %27892, %27894
%27896 = fneg double %27895
%27897 = call double @llvm.fmuladd.f64(double %27888, double %27890, double %27896)
%27898 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %27897, double* %27898
%27899 = load double*, double** %13
%27900 = getelementptr inbounds double, double* %27899, i64 0
%27901 = load double, double* %27900
%27902 = load double*, double** %8
%27903 = getelementptr inbounds double, double* %27902, i64 0
%27904 = load double, double* %27903
%27905 = fsub double %27901, %27904
%27906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27905, double* %27906
%27907 = load double*, double** %13
%27908 = getelementptr inbounds double, double* %27907, i64 1
%27909 = load double, double* %27908
%27910 = load double*, double** %8
%27911 = getelementptr inbounds double, double* %27910, i64 1
%27912 = load double, double* %27911
%27913 = fsub double %27909, %27912
%27914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27913, double* %27914
%27915 = load double*, double** %13
%27916 = getelementptr inbounds double, double* %27915, i64 2
%27917 = load double, double* %27916
%27918 = load double*, double** %8
%27919 = getelementptr inbounds double, double* %27918, i64 2
%27920 = load double, double* %27919
%27921 = fsub double %27917, %27920
%27922 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27921, double* %27922
%27923 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%27924 = load double, double* %27923
%27925 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%27926 = load double, double* %27925
%27927 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27928 = load double, double* %27927
%27929 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%27930 = load double, double* %27929
%27931 = fmul double %27928, %27930
%27932 = call double @llvm.fmuladd.f64(double %27924, double %27926, double %27931)
%27933 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27934 = load double, double* %27933
%27935 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%27936 = load double, double* %27935
%27937 = call double @llvm.fmuladd.f64(double %27934, double %27936, double %27932)
%27938 = fcmp ogt double %27937, 0.000000e+00
br i1 %27938, label %27939, label %27940
27939: ; preds = %27814
store i32 0, i32* %7
br label %37464
27940: ; preds = %27814
store i32 1, i32* %7
br label %37464
27941: ; preds = %27685
%27942 = load double, double* %18
%27943 = fcmp olt double %27942, 0.000000e+00
br i1 %27943, label %27944, label %28197
27944: ; preds = %27941
%27945 = load double*, double** %12
%27946 = getelementptr inbounds double, double* %27945, i64 0
%27947 = load double, double* %27946
%27948 = load double*, double** %10
%27949 = getelementptr inbounds double, double* %27948, i64 0
%27950 = load double, double* %27949
%27951 = fsub double %27947, %27950
%27952 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %27951, double* %27952
%27953 = load double*, double** %12
%27954 = getelementptr inbounds double, double* %27953, i64 1
%27955 = load double, double* %27954
%27956 = load double*, double** %10
%27957 = getelementptr inbounds double, double* %27956, i64 1
%27958 = load double, double* %27957
%27959 = fsub double %27955, %27958
%27960 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %27959, double* %27960
%27961 = load double*, double** %12
%27962 = getelementptr inbounds double, double* %27961, i64 2
%27963 = load double, double* %27962
%27964 = load double*, double** %10
%27965 = getelementptr inbounds double, double* %27964, i64 2
%27966 = load double, double* %27965
%27967 = fsub double %27963, %27966
%27968 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %27967, double* %27968
%27969 = load double*, double** %8
%27970 = getelementptr inbounds double, double* %27969, i64 0
%27971 = load double, double* %27970
%27972 = load double*, double** %10
%27973 = getelementptr inbounds double, double* %27972, i64 0
%27974 = load double, double* %27973
%27975 = fsub double %27971, %27974
%27976 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %27975, double* %27976
%27977 = load double*, double** %8
%27978 = getelementptr inbounds double, double* %27977, i64 1
%27979 = load double, double* %27978
%27980 = load double*, double** %10
%27981 = getelementptr inbounds double, double* %27980, i64 1
%27982 = load double, double* %27981
%27983 = fsub double %27979, %27982
%27984 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %27983, double* %27984
%27985 = load double*, double** %8
%27986 = getelementptr inbounds double, double* %27985, i64 2
%27987 = load double, double* %27986
%27988 = load double*, double** %10
%27989 = getelementptr inbounds double, double* %27988, i64 2
%27990 = load double, double* %27989
%27991 = fsub double %27987, %27990
%27992 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %27991, double* %27992
%27993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%27994 = load double, double* %27993
%27995 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%27996 = load double, double* %27995
%27997 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%27998 = load double, double* %27997
%27999 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28000 = load double, double* %27999
%28001 = fmul double %27998, %28000
%28002 = fneg double %28001
%28003 = call double @llvm.fmuladd.f64(double %27994, double %27996, double %28002)
%28004 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28003, double* %28004
%28005 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28006 = load double, double* %28005
%28007 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28008 = load double, double* %28007
%28009 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28010 = load double, double* %28009
%28011 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28012 = load double, double* %28011
%28013 = fmul double %28010, %28012
%28014 = fneg double %28013
%28015 = call double @llvm.fmuladd.f64(double %28006, double %28008, double %28014)
%28016 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28015, double* %28016
%28017 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28018 = load double, double* %28017
%28019 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28020 = load double, double* %28019
%28021 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28022 = load double, double* %28021
%28023 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28024 = load double, double* %28023
%28025 = fmul double %28022, %28024
%28026 = fneg double %28025
%28027 = call double @llvm.fmuladd.f64(double %28018, double %28020, double %28026)
%28028 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28027, double* %28028
%28029 = load double*, double** %11
%28030 = getelementptr inbounds double, double* %28029, i64 0
%28031 = load double, double* %28030
%28032 = load double*, double** %10
%28033 = getelementptr inbounds double, double* %28032, i64 0
%28034 = load double, double* %28033
%28035 = fsub double %28031, %28034
%28036 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28035, double* %28036
%28037 = load double*, double** %11
%28038 = getelementptr inbounds double, double* %28037, i64 1
%28039 = load double, double* %28038
%28040 = load double*, double** %10
%28041 = getelementptr inbounds double, double* %28040, i64 1
%28042 = load double, double* %28041
%28043 = fsub double %28039, %28042
%28044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28043, double* %28044
%28045 = load double*, double** %11
%28046 = getelementptr inbounds double, double* %28045, i64 2
%28047 = load double, double* %28046
%28048 = load double*, double** %10
%28049 = getelementptr inbounds double, double* %28048, i64 2
%28050 = load double, double* %28049
%28051 = fsub double %28047, %28050
%28052 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28051, double* %28052
%28053 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28054 = load double, double* %28053
%28055 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28056 = load double, double* %28055
%28057 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28058 = load double, double* %28057
%28059 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28060 = load double, double* %28059
%28061 = fmul double %28058, %28060
%28062 = call double @llvm.fmuladd.f64(double %28054, double %28056, double %28061)
%28063 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28064 = load double, double* %28063
%28065 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28066 = load double, double* %28065
%28067 = call double @llvm.fmuladd.f64(double %28064, double %28066, double %28062)
%28068 = fcmp ogt double %28067, 0.000000e+00
br i1 %28068, label %28069, label %28070
28069: ; preds = %27944
store i32 0, i32* %7
br label %37464
28070: ; preds = %27944
%28071 = load double*, double** %12
%28072 = getelementptr inbounds double, double* %28071, i64 0
%28073 = load double, double* %28072
%28074 = load double*, double** %8
%28075 = getelementptr inbounds double, double* %28074, i64 0
%28076 = load double, double* %28075
%28077 = fsub double %28073, %28076
%28078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28077, double* %28078
%28079 = load double*, double** %12
%28080 = getelementptr inbounds double, double* %28079, i64 1
%28081 = load double, double* %28080
%28082 = load double*, double** %8
%28083 = getelementptr inbounds double, double* %28082, i64 1
%28084 = load double, double* %28083
%28085 = fsub double %28081, %28084
%28086 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28085, double* %28086
%28087 = load double*, double** %12
%28088 = getelementptr inbounds double, double* %28087, i64 2
%28089 = load double, double* %28088
%28090 = load double*, double** %8
%28091 = getelementptr inbounds double, double* %28090, i64 2
%28092 = load double, double* %28091
%28093 = fsub double %28089, %28092
%28094 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28093, double* %28094
%28095 = load double*, double** %9
%28096 = getelementptr inbounds double, double* %28095, i64 0
%28097 = load double, double* %28096
%28098 = load double*, double** %8
%28099 = getelementptr inbounds double, double* %28098, i64 0
%28100 = load double, double* %28099
%28101 = fsub double %28097, %28100
%28102 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28101, double* %28102
%28103 = load double*, double** %9
%28104 = getelementptr inbounds double, double* %28103, i64 1
%28105 = load double, double* %28104
%28106 = load double*, double** %8
%28107 = getelementptr inbounds double, double* %28106, i64 1
%28108 = load double, double* %28107
%28109 = fsub double %28105, %28108
%28110 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28109, double* %28110
%28111 = load double*, double** %9
%28112 = getelementptr inbounds double, double* %28111, i64 2
%28113 = load double, double* %28112
%28114 = load double*, double** %8
%28115 = getelementptr inbounds double, double* %28114, i64 2
%28116 = load double, double* %28115
%28117 = fsub double %28113, %28116
%28118 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28117, double* %28118
%28119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28120 = load double, double* %28119
%28121 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28122 = load double, double* %28121
%28123 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28124 = load double, double* %28123
%28125 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28126 = load double, double* %28125
%28127 = fmul double %28124, %28126
%28128 = fneg double %28127
%28129 = call double @llvm.fmuladd.f64(double %28120, double %28122, double %28128)
%28130 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28129, double* %28130
%28131 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28132 = load double, double* %28131
%28133 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28134 = load double, double* %28133
%28135 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28136 = load double, double* %28135
%28137 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28138 = load double, double* %28137
%28139 = fmul double %28136, %28138
%28140 = fneg double %28139
%28141 = call double @llvm.fmuladd.f64(double %28132, double %28134, double %28140)
%28142 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28141, double* %28142
%28143 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28144 = load double, double* %28143
%28145 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28146 = load double, double* %28145
%28147 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28148 = load double, double* %28147
%28149 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28150 = load double, double* %28149
%28151 = fmul double %28148, %28150
%28152 = fneg double %28151
%28153 = call double @llvm.fmuladd.f64(double %28144, double %28146, double %28152)
%28154 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28153, double* %28154
%28155 = load double*, double** %13
%28156 = getelementptr inbounds double, double* %28155, i64 0
%28157 = load double, double* %28156
%28158 = load double*, double** %8
%28159 = getelementptr inbounds double, double* %28158, i64 0
%28160 = load double, double* %28159
%28161 = fsub double %28157, %28160
%28162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28161, double* %28162
%28163 = load double*, double** %13
%28164 = getelementptr inbounds double, double* %28163, i64 1
%28165 = load double, double* %28164
%28166 = load double*, double** %8
%28167 = getelementptr inbounds double, double* %28166, i64 1
%28168 = load double, double* %28167
%28169 = fsub double %28165, %28168
%28170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28169, double* %28170
%28171 = load double*, double** %13
%28172 = getelementptr inbounds double, double* %28171, i64 2
%28173 = load double, double* %28172
%28174 = load double*, double** %8
%28175 = getelementptr inbounds double, double* %28174, i64 2
%28176 = load double, double* %28175
%28177 = fsub double %28173, %28176
%28178 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28177, double* %28178
%28179 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28180 = load double, double* %28179
%28181 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28182 = load double, double* %28181
%28183 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28184 = load double, double* %28183
%28185 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28186 = load double, double* %28185
%28187 = fmul double %28184, %28186
%28188 = call double @llvm.fmuladd.f64(double %28180, double %28182, double %28187)
%28189 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28190 = load double, double* %28189
%28191 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28192 = load double, double* %28191
%28193 = call double @llvm.fmuladd.f64(double %28190, double %28192, double %28188)
%28194 = fcmp ogt double %28193, 0.000000e+00
br i1 %28194, label %28195, label %28196
28195: ; preds = %28070
store i32 0, i32* %7
br label %37464
28196: ; preds = %28070
store i32 1, i32* %7
br label %37464
28197: ; preds = %27941
%28198 = load double*, double** %8
%28199 = load double*, double** %9
%28200 = load double*, double** %10
%28201 = load double*, double** %11
%28202 = load double*, double** %13
%28203 = load double*, double** %12
%28204 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28205 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %28198, double* %28199, double* %28200, double* %28201, double* %28202, double* %28203, double* %28204)
store i32 %28205, i32* %7
br label %37464
28206: ; preds = %25122
%28207 = load double, double* %17
%28208 = fcmp ogt double %28207, 0.000000e+00
br i1 %28208, label %28209, label %28974
28209: ; preds = %28206
%28210 = load double, double* %18
%28211 = fcmp ogt double %28210, 0.000000e+00
br i1 %28211, label %28212, label %28465
28212: ; preds = %28209
%28213 = load double*, double** %13
%28214 = getelementptr inbounds double, double* %28213, i64 0
%28215 = load double, double* %28214
%28216 = load double*, double** %8
%28217 = getelementptr inbounds double, double* %28216, i64 0
%28218 = load double, double* %28217
%28219 = fsub double %28215, %28218
%28220 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28219, double* %28220
%28221 = load double*, double** %13
%28222 = getelementptr inbounds double, double* %28221, i64 1
%28223 = load double, double* %28222
%28224 = load double*, double** %8
%28225 = getelementptr inbounds double, double* %28224, i64 1
%28226 = load double, double* %28225
%28227 = fsub double %28223, %28226
%28228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28227, double* %28228
%28229 = load double*, double** %13
%28230 = getelementptr inbounds double, double* %28229, i64 2
%28231 = load double, double* %28230
%28232 = load double*, double** %8
%28233 = getelementptr inbounds double, double* %28232, i64 2
%28234 = load double, double* %28233
%28235 = fsub double %28231, %28234
%28236 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28235, double* %28236
%28237 = load double*, double** %9
%28238 = getelementptr inbounds double, double* %28237, i64 0
%28239 = load double, double* %28238
%28240 = load double*, double** %8
%28241 = getelementptr inbounds double, double* %28240, i64 0
%28242 = load double, double* %28241
%28243 = fsub double %28239, %28242
%28244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28243, double* %28244
%28245 = load double*, double** %9
%28246 = getelementptr inbounds double, double* %28245, i64 1
%28247 = load double, double* %28246
%28248 = load double*, double** %8
%28249 = getelementptr inbounds double, double* %28248, i64 1
%28250 = load double, double* %28249
%28251 = fsub double %28247, %28250
%28252 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28251, double* %28252
%28253 = load double*, double** %9
%28254 = getelementptr inbounds double, double* %28253, i64 2
%28255 = load double, double* %28254
%28256 = load double*, double** %8
%28257 = getelementptr inbounds double, double* %28256, i64 2
%28258 = load double, double* %28257
%28259 = fsub double %28255, %28258
%28260 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28259, double* %28260
%28261 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28262 = load double, double* %28261
%28263 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28264 = load double, double* %28263
%28265 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28266 = load double, double* %28265
%28267 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28268 = load double, double* %28267
%28269 = fmul double %28266, %28268
%28270 = fneg double %28269
%28271 = call double @llvm.fmuladd.f64(double %28262, double %28264, double %28270)
%28272 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28271, double* %28272
%28273 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28274 = load double, double* %28273
%28275 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28276 = load double, double* %28275
%28277 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28278 = load double, double* %28277
%28279 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28280 = load double, double* %28279
%28281 = fmul double %28278, %28280
%28282 = fneg double %28281
%28283 = call double @llvm.fmuladd.f64(double %28274, double %28276, double %28282)
%28284 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28283, double* %28284
%28285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28286 = load double, double* %28285
%28287 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28288 = load double, double* %28287
%28289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28290 = load double, double* %28289
%28291 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28292 = load double, double* %28291
%28293 = fmul double %28290, %28292
%28294 = fneg double %28293
%28295 = call double @llvm.fmuladd.f64(double %28286, double %28288, double %28294)
%28296 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28295, double* %28296
%28297 = load double*, double** %11
%28298 = getelementptr inbounds double, double* %28297, i64 0
%28299 = load double, double* %28298
%28300 = load double*, double** %8
%28301 = getelementptr inbounds double, double* %28300, i64 0
%28302 = load double, double* %28301
%28303 = fsub double %28299, %28302
%28304 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28303, double* %28304
%28305 = load double*, double** %11
%28306 = getelementptr inbounds double, double* %28305, i64 1
%28307 = load double, double* %28306
%28308 = load double*, double** %8
%28309 = getelementptr inbounds double, double* %28308, i64 1
%28310 = load double, double* %28309
%28311 = fsub double %28307, %28310
%28312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28311, double* %28312
%28313 = load double*, double** %11
%28314 = getelementptr inbounds double, double* %28313, i64 2
%28315 = load double, double* %28314
%28316 = load double*, double** %8
%28317 = getelementptr inbounds double, double* %28316, i64 2
%28318 = load double, double* %28317
%28319 = fsub double %28315, %28318
%28320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28319, double* %28320
%28321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28322 = load double, double* %28321
%28323 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28324 = load double, double* %28323
%28325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28326 = load double, double* %28325
%28327 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28328 = load double, double* %28327
%28329 = fmul double %28326, %28328
%28330 = call double @llvm.fmuladd.f64(double %28322, double %28324, double %28329)
%28331 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28332 = load double, double* %28331
%28333 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28334 = load double, double* %28333
%28335 = call double @llvm.fmuladd.f64(double %28332, double %28334, double %28330)
%28336 = fcmp ogt double %28335, 0.000000e+00
br i1 %28336, label %28337, label %28338
28337: ; preds = %28212
store i32 0, i32* %7
br label %37464
28338: ; preds = %28212
%28339 = load double*, double** %13
%28340 = getelementptr inbounds double, double* %28339, i64 0
%28341 = load double, double* %28340
%28342 = load double*, double** %9
%28343 = getelementptr inbounds double, double* %28342, i64 0
%28344 = load double, double* %28343
%28345 = fsub double %28341, %28344
%28346 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28345, double* %28346
%28347 = load double*, double** %13
%28348 = getelementptr inbounds double, double* %28347, i64 1
%28349 = load double, double* %28348
%28350 = load double*, double** %9
%28351 = getelementptr inbounds double, double* %28350, i64 1
%28352 = load double, double* %28351
%28353 = fsub double %28349, %28352
%28354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28353, double* %28354
%28355 = load double*, double** %13
%28356 = getelementptr inbounds double, double* %28355, i64 2
%28357 = load double, double* %28356
%28358 = load double*, double** %9
%28359 = getelementptr inbounds double, double* %28358, i64 2
%28360 = load double, double* %28359
%28361 = fsub double %28357, %28360
%28362 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28361, double* %28362
%28363 = load double*, double** %10
%28364 = getelementptr inbounds double, double* %28363, i64 0
%28365 = load double, double* %28364
%28366 = load double*, double** %9
%28367 = getelementptr inbounds double, double* %28366, i64 0
%28368 = load double, double* %28367
%28369 = fsub double %28365, %28368
%28370 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28369, double* %28370
%28371 = load double*, double** %10
%28372 = getelementptr inbounds double, double* %28371, i64 1
%28373 = load double, double* %28372
%28374 = load double*, double** %9
%28375 = getelementptr inbounds double, double* %28374, i64 1
%28376 = load double, double* %28375
%28377 = fsub double %28373, %28376
%28378 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28377, double* %28378
%28379 = load double*, double** %10
%28380 = getelementptr inbounds double, double* %28379, i64 2
%28381 = load double, double* %28380
%28382 = load double*, double** %9
%28383 = getelementptr inbounds double, double* %28382, i64 2
%28384 = load double, double* %28383
%28385 = fsub double %28381, %28384
%28386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28385, double* %28386
%28387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28388 = load double, double* %28387
%28389 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28390 = load double, double* %28389
%28391 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28392 = load double, double* %28391
%28393 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28394 = load double, double* %28393
%28395 = fmul double %28392, %28394
%28396 = fneg double %28395
%28397 = call double @llvm.fmuladd.f64(double %28388, double %28390, double %28396)
%28398 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28397, double* %28398
%28399 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28400 = load double, double* %28399
%28401 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28402 = load double, double* %28401
%28403 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28404 = load double, double* %28403
%28405 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28406 = load double, double* %28405
%28407 = fmul double %28404, %28406
%28408 = fneg double %28407
%28409 = call double @llvm.fmuladd.f64(double %28400, double %28402, double %28408)
%28410 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28409, double* %28410
%28411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28412 = load double, double* %28411
%28413 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28414 = load double, double* %28413
%28415 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28416 = load double, double* %28415
%28417 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28418 = load double, double* %28417
%28419 = fmul double %28416, %28418
%28420 = fneg double %28419
%28421 = call double @llvm.fmuladd.f64(double %28412, double %28414, double %28420)
%28422 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28421, double* %28422
%28423 = load double*, double** %12
%28424 = getelementptr inbounds double, double* %28423, i64 0
%28425 = load double, double* %28424
%28426 = load double*, double** %9
%28427 = getelementptr inbounds double, double* %28426, i64 0
%28428 = load double, double* %28427
%28429 = fsub double %28425, %28428
%28430 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28429, double* %28430
%28431 = load double*, double** %12
%28432 = getelementptr inbounds double, double* %28431, i64 1
%28433 = load double, double* %28432
%28434 = load double*, double** %9
%28435 = getelementptr inbounds double, double* %28434, i64 1
%28436 = load double, double* %28435
%28437 = fsub double %28433, %28436
%28438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28437, double* %28438
%28439 = load double*, double** %12
%28440 = getelementptr inbounds double, double* %28439, i64 2
%28441 = load double, double* %28440
%28442 = load double*, double** %9
%28443 = getelementptr inbounds double, double* %28442, i64 2
%28444 = load double, double* %28443
%28445 = fsub double %28441, %28444
%28446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28445, double* %28446
%28447 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28448 = load double, double* %28447
%28449 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28450 = load double, double* %28449
%28451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28452 = load double, double* %28451
%28453 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28454 = load double, double* %28453
%28455 = fmul double %28452, %28454
%28456 = call double @llvm.fmuladd.f64(double %28448, double %28450, double %28455)
%28457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28458 = load double, double* %28457
%28459 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28460 = load double, double* %28459
%28461 = call double @llvm.fmuladd.f64(double %28458, double %28460, double %28456)
%28462 = fcmp ogt double %28461, 0.000000e+00
br i1 %28462, label %28463, label %28464
28463: ; preds = %28338
store i32 0, i32* %7
br label %37464
28464: ; preds = %28338
store i32 1, i32* %7
br label %37464
28465: ; preds = %28209
%28466 = load double, double* %19
%28467 = fcmp ogt double %28466, 0.000000e+00
br i1 %28467, label %28468, label %28721
28468: ; preds = %28465
%28469 = load double*, double** %12
%28470 = getelementptr inbounds double, double* %28469, i64 0
%28471 = load double, double* %28470
%28472 = load double*, double** %8
%28473 = getelementptr inbounds double, double* %28472, i64 0
%28474 = load double, double* %28473
%28475 = fsub double %28471, %28474
%28476 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28475, double* %28476
%28477 = load double*, double** %12
%28478 = getelementptr inbounds double, double* %28477, i64 1
%28479 = load double, double* %28478
%28480 = load double*, double** %8
%28481 = getelementptr inbounds double, double* %28480, i64 1
%28482 = load double, double* %28481
%28483 = fsub double %28479, %28482
%28484 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28483, double* %28484
%28485 = load double*, double** %12
%28486 = getelementptr inbounds double, double* %28485, i64 2
%28487 = load double, double* %28486
%28488 = load double*, double** %8
%28489 = getelementptr inbounds double, double* %28488, i64 2
%28490 = load double, double* %28489
%28491 = fsub double %28487, %28490
%28492 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28491, double* %28492
%28493 = load double*, double** %9
%28494 = getelementptr inbounds double, double* %28493, i64 0
%28495 = load double, double* %28494
%28496 = load double*, double** %8
%28497 = getelementptr inbounds double, double* %28496, i64 0
%28498 = load double, double* %28497
%28499 = fsub double %28495, %28498
%28500 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28499, double* %28500
%28501 = load double*, double** %9
%28502 = getelementptr inbounds double, double* %28501, i64 1
%28503 = load double, double* %28502
%28504 = load double*, double** %8
%28505 = getelementptr inbounds double, double* %28504, i64 1
%28506 = load double, double* %28505
%28507 = fsub double %28503, %28506
%28508 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28507, double* %28508
%28509 = load double*, double** %9
%28510 = getelementptr inbounds double, double* %28509, i64 2
%28511 = load double, double* %28510
%28512 = load double*, double** %8
%28513 = getelementptr inbounds double, double* %28512, i64 2
%28514 = load double, double* %28513
%28515 = fsub double %28511, %28514
%28516 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28515, double* %28516
%28517 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28518 = load double, double* %28517
%28519 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28520 = load double, double* %28519
%28521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28522 = load double, double* %28521
%28523 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28524 = load double, double* %28523
%28525 = fmul double %28522, %28524
%28526 = fneg double %28525
%28527 = call double @llvm.fmuladd.f64(double %28518, double %28520, double %28526)
%28528 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28527, double* %28528
%28529 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28530 = load double, double* %28529
%28531 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28532 = load double, double* %28531
%28533 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28534 = load double, double* %28533
%28535 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28536 = load double, double* %28535
%28537 = fmul double %28534, %28536
%28538 = fneg double %28537
%28539 = call double @llvm.fmuladd.f64(double %28530, double %28532, double %28538)
%28540 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28539, double* %28540
%28541 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28542 = load double, double* %28541
%28543 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28544 = load double, double* %28543
%28545 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28546 = load double, double* %28545
%28547 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28548 = load double, double* %28547
%28549 = fmul double %28546, %28548
%28550 = fneg double %28549
%28551 = call double @llvm.fmuladd.f64(double %28542, double %28544, double %28550)
%28552 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28551, double* %28552
%28553 = load double*, double** %13
%28554 = getelementptr inbounds double, double* %28553, i64 0
%28555 = load double, double* %28554
%28556 = load double*, double** %8
%28557 = getelementptr inbounds double, double* %28556, i64 0
%28558 = load double, double* %28557
%28559 = fsub double %28555, %28558
%28560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28559, double* %28560
%28561 = load double*, double** %13
%28562 = getelementptr inbounds double, double* %28561, i64 1
%28563 = load double, double* %28562
%28564 = load double*, double** %8
%28565 = getelementptr inbounds double, double* %28564, i64 1
%28566 = load double, double* %28565
%28567 = fsub double %28563, %28566
%28568 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28567, double* %28568
%28569 = load double*, double** %13
%28570 = getelementptr inbounds double, double* %28569, i64 2
%28571 = load double, double* %28570
%28572 = load double*, double** %8
%28573 = getelementptr inbounds double, double* %28572, i64 2
%28574 = load double, double* %28573
%28575 = fsub double %28571, %28574
%28576 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28575, double* %28576
%28577 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28578 = load double, double* %28577
%28579 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28580 = load double, double* %28579
%28581 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28582 = load double, double* %28581
%28583 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28584 = load double, double* %28583
%28585 = fmul double %28582, %28584
%28586 = call double @llvm.fmuladd.f64(double %28578, double %28580, double %28585)
%28587 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28588 = load double, double* %28587
%28589 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28590 = load double, double* %28589
%28591 = call double @llvm.fmuladd.f64(double %28588, double %28590, double %28586)
%28592 = fcmp ogt double %28591, 0.000000e+00
br i1 %28592, label %28593, label %28594
28593: ; preds = %28468
store i32 0, i32* %7
br label %37464
28594: ; preds = %28468
%28595 = load double*, double** %12
%28596 = getelementptr inbounds double, double* %28595, i64 0
%28597 = load double, double* %28596
%28598 = load double*, double** %9
%28599 = getelementptr inbounds double, double* %28598, i64 0
%28600 = load double, double* %28599
%28601 = fsub double %28597, %28600
%28602 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28601, double* %28602
%28603 = load double*, double** %12
%28604 = getelementptr inbounds double, double* %28603, i64 1
%28605 = load double, double* %28604
%28606 = load double*, double** %9
%28607 = getelementptr inbounds double, double* %28606, i64 1
%28608 = load double, double* %28607
%28609 = fsub double %28605, %28608
%28610 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28609, double* %28610
%28611 = load double*, double** %12
%28612 = getelementptr inbounds double, double* %28611, i64 2
%28613 = load double, double* %28612
%28614 = load double*, double** %9
%28615 = getelementptr inbounds double, double* %28614, i64 2
%28616 = load double, double* %28615
%28617 = fsub double %28613, %28616
%28618 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28617, double* %28618
%28619 = load double*, double** %10
%28620 = getelementptr inbounds double, double* %28619, i64 0
%28621 = load double, double* %28620
%28622 = load double*, double** %9
%28623 = getelementptr inbounds double, double* %28622, i64 0
%28624 = load double, double* %28623
%28625 = fsub double %28621, %28624
%28626 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28625, double* %28626
%28627 = load double*, double** %10
%28628 = getelementptr inbounds double, double* %28627, i64 1
%28629 = load double, double* %28628
%28630 = load double*, double** %9
%28631 = getelementptr inbounds double, double* %28630, i64 1
%28632 = load double, double* %28631
%28633 = fsub double %28629, %28632
%28634 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28633, double* %28634
%28635 = load double*, double** %10
%28636 = getelementptr inbounds double, double* %28635, i64 2
%28637 = load double, double* %28636
%28638 = load double*, double** %9
%28639 = getelementptr inbounds double, double* %28638, i64 2
%28640 = load double, double* %28639
%28641 = fsub double %28637, %28640
%28642 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28641, double* %28642
%28643 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28644 = load double, double* %28643
%28645 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28646 = load double, double* %28645
%28647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28648 = load double, double* %28647
%28649 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28650 = load double, double* %28649
%28651 = fmul double %28648, %28650
%28652 = fneg double %28651
%28653 = call double @llvm.fmuladd.f64(double %28644, double %28646, double %28652)
%28654 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28653, double* %28654
%28655 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28656 = load double, double* %28655
%28657 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28658 = load double, double* %28657
%28659 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28660 = load double, double* %28659
%28661 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28662 = load double, double* %28661
%28663 = fmul double %28660, %28662
%28664 = fneg double %28663
%28665 = call double @llvm.fmuladd.f64(double %28656, double %28658, double %28664)
%28666 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28665, double* %28666
%28667 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28668 = load double, double* %28667
%28669 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28670 = load double, double* %28669
%28671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28672 = load double, double* %28671
%28673 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28674 = load double, double* %28673
%28675 = fmul double %28672, %28674
%28676 = fneg double %28675
%28677 = call double @llvm.fmuladd.f64(double %28668, double %28670, double %28676)
%28678 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28677, double* %28678
%28679 = load double*, double** %11
%28680 = getelementptr inbounds double, double* %28679, i64 0
%28681 = load double, double* %28680
%28682 = load double*, double** %9
%28683 = getelementptr inbounds double, double* %28682, i64 0
%28684 = load double, double* %28683
%28685 = fsub double %28681, %28684
%28686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28685, double* %28686
%28687 = load double*, double** %11
%28688 = getelementptr inbounds double, double* %28687, i64 1
%28689 = load double, double* %28688
%28690 = load double*, double** %9
%28691 = getelementptr inbounds double, double* %28690, i64 1
%28692 = load double, double* %28691
%28693 = fsub double %28689, %28692
%28694 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28693, double* %28694
%28695 = load double*, double** %11
%28696 = getelementptr inbounds double, double* %28695, i64 2
%28697 = load double, double* %28696
%28698 = load double*, double** %9
%28699 = getelementptr inbounds double, double* %28698, i64 2
%28700 = load double, double* %28699
%28701 = fsub double %28697, %28700
%28702 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28701, double* %28702
%28703 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28704 = load double, double* %28703
%28705 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28706 = load double, double* %28705
%28707 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28708 = load double, double* %28707
%28709 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28710 = load double, double* %28709
%28711 = fmul double %28708, %28710
%28712 = call double @llvm.fmuladd.f64(double %28704, double %28706, double %28711)
%28713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28714 = load double, double* %28713
%28715 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28716 = load double, double* %28715
%28717 = call double @llvm.fmuladd.f64(double %28714, double %28716, double %28712)
%28718 = fcmp ogt double %28717, 0.000000e+00
br i1 %28718, label %28719, label %28720
28719: ; preds = %28594
store i32 0, i32* %7
br label %37464
28720: ; preds = %28594
store i32 1, i32* %7
br label %37464
28721: ; preds = %28465
%28722 = load double*, double** %11
%28723 = getelementptr inbounds double, double* %28722, i64 0
%28724 = load double, double* %28723
%28725 = load double*, double** %10
%28726 = getelementptr inbounds double, double* %28725, i64 0
%28727 = load double, double* %28726
%28728 = fsub double %28724, %28727
%28729 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28728, double* %28729
%28730 = load double*, double** %11
%28731 = getelementptr inbounds double, double* %28730, i64 1
%28732 = load double, double* %28731
%28733 = load double*, double** %10
%28734 = getelementptr inbounds double, double* %28733, i64 1
%28735 = load double, double* %28734
%28736 = fsub double %28732, %28735
%28737 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28736, double* %28737
%28738 = load double*, double** %11
%28739 = getelementptr inbounds double, double* %28738, i64 2
%28740 = load double, double* %28739
%28741 = load double*, double** %10
%28742 = getelementptr inbounds double, double* %28741, i64 2
%28743 = load double, double* %28742
%28744 = fsub double %28740, %28743
%28745 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28744, double* %28745
%28746 = load double*, double** %9
%28747 = getelementptr inbounds double, double* %28746, i64 0
%28748 = load double, double* %28747
%28749 = load double*, double** %10
%28750 = getelementptr inbounds double, double* %28749, i64 0
%28751 = load double, double* %28750
%28752 = fsub double %28748, %28751
%28753 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28752, double* %28753
%28754 = load double*, double** %9
%28755 = getelementptr inbounds double, double* %28754, i64 1
%28756 = load double, double* %28755
%28757 = load double*, double** %10
%28758 = getelementptr inbounds double, double* %28757, i64 1
%28759 = load double, double* %28758
%28760 = fsub double %28756, %28759
%28761 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28760, double* %28761
%28762 = load double*, double** %9
%28763 = getelementptr inbounds double, double* %28762, i64 2
%28764 = load double, double* %28763
%28765 = load double*, double** %10
%28766 = getelementptr inbounds double, double* %28765, i64 2
%28767 = load double, double* %28766
%28768 = fsub double %28764, %28767
%28769 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28768, double* %28769
%28770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28771 = load double, double* %28770
%28772 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28773 = load double, double* %28772
%28774 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28775 = load double, double* %28774
%28776 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28777 = load double, double* %28776
%28778 = fmul double %28775, %28777
%28779 = fneg double %28778
%28780 = call double @llvm.fmuladd.f64(double %28771, double %28773, double %28779)
%28781 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28780, double* %28781
%28782 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28783 = load double, double* %28782
%28784 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28785 = load double, double* %28784
%28786 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28787 = load double, double* %28786
%28788 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28789 = load double, double* %28788
%28790 = fmul double %28787, %28789
%28791 = fneg double %28790
%28792 = call double @llvm.fmuladd.f64(double %28783, double %28785, double %28791)
%28793 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28792, double* %28793
%28794 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28795 = load double, double* %28794
%28796 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28797 = load double, double* %28796
%28798 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28799 = load double, double* %28798
%28800 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28801 = load double, double* %28800
%28802 = fmul double %28799, %28801
%28803 = fneg double %28802
%28804 = call double @llvm.fmuladd.f64(double %28795, double %28797, double %28803)
%28805 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28804, double* %28805
%28806 = load double*, double** %12
%28807 = getelementptr inbounds double, double* %28806, i64 0
%28808 = load double, double* %28807
%28809 = load double*, double** %10
%28810 = getelementptr inbounds double, double* %28809, i64 0
%28811 = load double, double* %28810
%28812 = fsub double %28808, %28811
%28813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28812, double* %28813
%28814 = load double*, double** %12
%28815 = getelementptr inbounds double, double* %28814, i64 1
%28816 = load double, double* %28815
%28817 = load double*, double** %10
%28818 = getelementptr inbounds double, double* %28817, i64 1
%28819 = load double, double* %28818
%28820 = fsub double %28816, %28819
%28821 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28820, double* %28821
%28822 = load double*, double** %12
%28823 = getelementptr inbounds double, double* %28822, i64 2
%28824 = load double, double* %28823
%28825 = load double*, double** %10
%28826 = getelementptr inbounds double, double* %28825, i64 2
%28827 = load double, double* %28826
%28828 = fsub double %28824, %28827
%28829 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28828, double* %28829
%28830 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28831 = load double, double* %28830
%28832 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28833 = load double, double* %28832
%28834 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28835 = load double, double* %28834
%28836 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28837 = load double, double* %28836
%28838 = fmul double %28835, %28837
%28839 = call double @llvm.fmuladd.f64(double %28831, double %28833, double %28838)
%28840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28841 = load double, double* %28840
%28842 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28843 = load double, double* %28842
%28844 = call double @llvm.fmuladd.f64(double %28841, double %28843, double %28839)
%28845 = fcmp ogt double %28844, 0.000000e+00
br i1 %28845, label %28846, label %28847
28846: ; preds = %28721
store i32 0, i32* %7
br label %37464
28847: ; preds = %28721
%28848 = load double*, double** %11
%28849 = getelementptr inbounds double, double* %28848, i64 0
%28850 = load double, double* %28849
%28851 = load double*, double** %9
%28852 = getelementptr inbounds double, double* %28851, i64 0
%28853 = load double, double* %28852
%28854 = fsub double %28850, %28853
%28855 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28854, double* %28855
%28856 = load double*, double** %11
%28857 = getelementptr inbounds double, double* %28856, i64 1
%28858 = load double, double* %28857
%28859 = load double*, double** %9
%28860 = getelementptr inbounds double, double* %28859, i64 1
%28861 = load double, double* %28860
%28862 = fsub double %28858, %28861
%28863 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28862, double* %28863
%28864 = load double*, double** %11
%28865 = getelementptr inbounds double, double* %28864, i64 2
%28866 = load double, double* %28865
%28867 = load double*, double** %9
%28868 = getelementptr inbounds double, double* %28867, i64 2
%28869 = load double, double* %28868
%28870 = fsub double %28866, %28869
%28871 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28870, double* %28871
%28872 = load double*, double** %8
%28873 = getelementptr inbounds double, double* %28872, i64 0
%28874 = load double, double* %28873
%28875 = load double*, double** %9
%28876 = getelementptr inbounds double, double* %28875, i64 0
%28877 = load double, double* %28876
%28878 = fsub double %28874, %28877
%28879 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %28878, double* %28879
%28880 = load double*, double** %8
%28881 = getelementptr inbounds double, double* %28880, i64 1
%28882 = load double, double* %28881
%28883 = load double*, double** %9
%28884 = getelementptr inbounds double, double* %28883, i64 1
%28885 = load double, double* %28884
%28886 = fsub double %28882, %28885
%28887 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %28886, double* %28887
%28888 = load double*, double** %8
%28889 = getelementptr inbounds double, double* %28888, i64 2
%28890 = load double, double* %28889
%28891 = load double*, double** %9
%28892 = getelementptr inbounds double, double* %28891, i64 2
%28893 = load double, double* %28892
%28894 = fsub double %28890, %28893
%28895 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %28894, double* %28895
%28896 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28897 = load double, double* %28896
%28898 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28899 = load double, double* %28898
%28900 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28901 = load double, double* %28900
%28902 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28903 = load double, double* %28902
%28904 = fmul double %28901, %28903
%28905 = fneg double %28904
%28906 = call double @llvm.fmuladd.f64(double %28897, double %28899, double %28905)
%28907 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %28906, double* %28907
%28908 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28909 = load double, double* %28908
%28910 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28911 = load double, double* %28910
%28912 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28913 = load double, double* %28912
%28914 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%28915 = load double, double* %28914
%28916 = fmul double %28913, %28915
%28917 = fneg double %28916
%28918 = call double @llvm.fmuladd.f64(double %28909, double %28911, double %28917)
%28919 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %28918, double* %28919
%28920 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28921 = load double, double* %28920
%28922 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%28923 = load double, double* %28922
%28924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28925 = load double, double* %28924
%28926 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%28927 = load double, double* %28926
%28928 = fmul double %28925, %28927
%28929 = fneg double %28928
%28930 = call double @llvm.fmuladd.f64(double %28921, double %28923, double %28929)
%28931 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %28930, double* %28931
%28932 = load double*, double** %13
%28933 = getelementptr inbounds double, double* %28932, i64 0
%28934 = load double, double* %28933
%28935 = load double*, double** %9
%28936 = getelementptr inbounds double, double* %28935, i64 0
%28937 = load double, double* %28936
%28938 = fsub double %28934, %28937
%28939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28938, double* %28939
%28940 = load double*, double** %13
%28941 = getelementptr inbounds double, double* %28940, i64 1
%28942 = load double, double* %28941
%28943 = load double*, double** %9
%28944 = getelementptr inbounds double, double* %28943, i64 1
%28945 = load double, double* %28944
%28946 = fsub double %28942, %28945
%28947 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28946, double* %28947
%28948 = load double*, double** %13
%28949 = getelementptr inbounds double, double* %28948, i64 2
%28950 = load double, double* %28949
%28951 = load double*, double** %9
%28952 = getelementptr inbounds double, double* %28951, i64 2
%28953 = load double, double* %28952
%28954 = fsub double %28950, %28953
%28955 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %28954, double* %28955
%28956 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%28957 = load double, double* %28956
%28958 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%28959 = load double, double* %28958
%28960 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%28961 = load double, double* %28960
%28962 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%28963 = load double, double* %28962
%28964 = fmul double %28961, %28963
%28965 = call double @llvm.fmuladd.f64(double %28957, double %28959, double %28964)
%28966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%28967 = load double, double* %28966
%28968 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%28969 = load double, double* %28968
%28970 = call double @llvm.fmuladd.f64(double %28967, double %28969, double %28965)
%28971 = fcmp ogt double %28970, 0.000000e+00
br i1 %28971, label %28972, label %28973
28972: ; preds = %28847
store i32 0, i32* %7
br label %37464
28973: ; preds = %28847
store i32 1, i32* %7
br label %37464
28974: ; preds = %28206
%28975 = load double, double* %17
%28976 = fcmp olt double %28975, 0.000000e+00
br i1 %28976, label %28977, label %29742
28977: ; preds = %28974
%28978 = load double, double* %18
%28979 = fcmp olt double %28978, 0.000000e+00
br i1 %28979, label %28980, label %29233
28980: ; preds = %28977
%28981 = load double*, double** %13
%28982 = getelementptr inbounds double, double* %28981, i64 0
%28983 = load double, double* %28982
%28984 = load double*, double** %10
%28985 = getelementptr inbounds double, double* %28984, i64 0
%28986 = load double, double* %28985
%28987 = fsub double %28983, %28986
%28988 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %28987, double* %28988
%28989 = load double*, double** %13
%28990 = getelementptr inbounds double, double* %28989, i64 1
%28991 = load double, double* %28990
%28992 = load double*, double** %10
%28993 = getelementptr inbounds double, double* %28992, i64 1
%28994 = load double, double* %28993
%28995 = fsub double %28991, %28994
%28996 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %28995, double* %28996
%28997 = load double*, double** %13
%28998 = getelementptr inbounds double, double* %28997, i64 2
%28999 = load double, double* %28998
%29000 = load double*, double** %10
%29001 = getelementptr inbounds double, double* %29000, i64 2
%29002 = load double, double* %29001
%29003 = fsub double %28999, %29002
%29004 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29003, double* %29004
%29005 = load double*, double** %9
%29006 = getelementptr inbounds double, double* %29005, i64 0
%29007 = load double, double* %29006
%29008 = load double*, double** %10
%29009 = getelementptr inbounds double, double* %29008, i64 0
%29010 = load double, double* %29009
%29011 = fsub double %29007, %29010
%29012 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29011, double* %29012
%29013 = load double*, double** %9
%29014 = getelementptr inbounds double, double* %29013, i64 1
%29015 = load double, double* %29014
%29016 = load double*, double** %10
%29017 = getelementptr inbounds double, double* %29016, i64 1
%29018 = load double, double* %29017
%29019 = fsub double %29015, %29018
%29020 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29019, double* %29020
%29021 = load double*, double** %9
%29022 = getelementptr inbounds double, double* %29021, i64 2
%29023 = load double, double* %29022
%29024 = load double*, double** %10
%29025 = getelementptr inbounds double, double* %29024, i64 2
%29026 = load double, double* %29025
%29027 = fsub double %29023, %29026
%29028 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29027, double* %29028
%29029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29030 = load double, double* %29029
%29031 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29032 = load double, double* %29031
%29033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29034 = load double, double* %29033
%29035 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29036 = load double, double* %29035
%29037 = fmul double %29034, %29036
%29038 = fneg double %29037
%29039 = call double @llvm.fmuladd.f64(double %29030, double %29032, double %29038)
%29040 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29039, double* %29040
%29041 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29042 = load double, double* %29041
%29043 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29044 = load double, double* %29043
%29045 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29046 = load double, double* %29045
%29047 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29048 = load double, double* %29047
%29049 = fmul double %29046, %29048
%29050 = fneg double %29049
%29051 = call double @llvm.fmuladd.f64(double %29042, double %29044, double %29050)
%29052 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29051, double* %29052
%29053 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29054 = load double, double* %29053
%29055 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29056 = load double, double* %29055
%29057 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29058 = load double, double* %29057
%29059 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29060 = load double, double* %29059
%29061 = fmul double %29058, %29060
%29062 = fneg double %29061
%29063 = call double @llvm.fmuladd.f64(double %29054, double %29056, double %29062)
%29064 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29063, double* %29064
%29065 = load double*, double** %11
%29066 = getelementptr inbounds double, double* %29065, i64 0
%29067 = load double, double* %29066
%29068 = load double*, double** %10
%29069 = getelementptr inbounds double, double* %29068, i64 0
%29070 = load double, double* %29069
%29071 = fsub double %29067, %29070
%29072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29071, double* %29072
%29073 = load double*, double** %11
%29074 = getelementptr inbounds double, double* %29073, i64 1
%29075 = load double, double* %29074
%29076 = load double*, double** %10
%29077 = getelementptr inbounds double, double* %29076, i64 1
%29078 = load double, double* %29077
%29079 = fsub double %29075, %29078
%29080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29079, double* %29080
%29081 = load double*, double** %11
%29082 = getelementptr inbounds double, double* %29081, i64 2
%29083 = load double, double* %29082
%29084 = load double*, double** %10
%29085 = getelementptr inbounds double, double* %29084, i64 2
%29086 = load double, double* %29085
%29087 = fsub double %29083, %29086
%29088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29087, double* %29088
%29089 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29090 = load double, double* %29089
%29091 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29092 = load double, double* %29091
%29093 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29094 = load double, double* %29093
%29095 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29096 = load double, double* %29095
%29097 = fmul double %29094, %29096
%29098 = call double @llvm.fmuladd.f64(double %29090, double %29092, double %29097)
%29099 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29100 = load double, double* %29099
%29101 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29102 = load double, double* %29101
%29103 = call double @llvm.fmuladd.f64(double %29100, double %29102, double %29098)
%29104 = fcmp ogt double %29103, 0.000000e+00
br i1 %29104, label %29105, label %29106
29105: ; preds = %28980
store i32 0, i32* %7
br label %37464
29106: ; preds = %28980
%29107 = load double*, double** %13
%29108 = getelementptr inbounds double, double* %29107, i64 0
%29109 = load double, double* %29108
%29110 = load double*, double** %9
%29111 = getelementptr inbounds double, double* %29110, i64 0
%29112 = load double, double* %29111
%29113 = fsub double %29109, %29112
%29114 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29113, double* %29114
%29115 = load double*, double** %13
%29116 = getelementptr inbounds double, double* %29115, i64 1
%29117 = load double, double* %29116
%29118 = load double*, double** %9
%29119 = getelementptr inbounds double, double* %29118, i64 1
%29120 = load double, double* %29119
%29121 = fsub double %29117, %29120
%29122 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29121, double* %29122
%29123 = load double*, double** %13
%29124 = getelementptr inbounds double, double* %29123, i64 2
%29125 = load double, double* %29124
%29126 = load double*, double** %9
%29127 = getelementptr inbounds double, double* %29126, i64 2
%29128 = load double, double* %29127
%29129 = fsub double %29125, %29128
%29130 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29129, double* %29130
%29131 = load double*, double** %8
%29132 = getelementptr inbounds double, double* %29131, i64 0
%29133 = load double, double* %29132
%29134 = load double*, double** %9
%29135 = getelementptr inbounds double, double* %29134, i64 0
%29136 = load double, double* %29135
%29137 = fsub double %29133, %29136
%29138 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29137, double* %29138
%29139 = load double*, double** %8
%29140 = getelementptr inbounds double, double* %29139, i64 1
%29141 = load double, double* %29140
%29142 = load double*, double** %9
%29143 = getelementptr inbounds double, double* %29142, i64 1
%29144 = load double, double* %29143
%29145 = fsub double %29141, %29144
%29146 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29145, double* %29146
%29147 = load double*, double** %8
%29148 = getelementptr inbounds double, double* %29147, i64 2
%29149 = load double, double* %29148
%29150 = load double*, double** %9
%29151 = getelementptr inbounds double, double* %29150, i64 2
%29152 = load double, double* %29151
%29153 = fsub double %29149, %29152
%29154 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29153, double* %29154
%29155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29156 = load double, double* %29155
%29157 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29158 = load double, double* %29157
%29159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29160 = load double, double* %29159
%29161 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29162 = load double, double* %29161
%29163 = fmul double %29160, %29162
%29164 = fneg double %29163
%29165 = call double @llvm.fmuladd.f64(double %29156, double %29158, double %29164)
%29166 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29165, double* %29166
%29167 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29168 = load double, double* %29167
%29169 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29170 = load double, double* %29169
%29171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29172 = load double, double* %29171
%29173 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29174 = load double, double* %29173
%29175 = fmul double %29172, %29174
%29176 = fneg double %29175
%29177 = call double @llvm.fmuladd.f64(double %29168, double %29170, double %29176)
%29178 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29177, double* %29178
%29179 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29180 = load double, double* %29179
%29181 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29182 = load double, double* %29181
%29183 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29184 = load double, double* %29183
%29185 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29186 = load double, double* %29185
%29187 = fmul double %29184, %29186
%29188 = fneg double %29187
%29189 = call double @llvm.fmuladd.f64(double %29180, double %29182, double %29188)
%29190 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29189, double* %29190
%29191 = load double*, double** %12
%29192 = getelementptr inbounds double, double* %29191, i64 0
%29193 = load double, double* %29192
%29194 = load double*, double** %9
%29195 = getelementptr inbounds double, double* %29194, i64 0
%29196 = load double, double* %29195
%29197 = fsub double %29193, %29196
%29198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29197, double* %29198
%29199 = load double*, double** %12
%29200 = getelementptr inbounds double, double* %29199, i64 1
%29201 = load double, double* %29200
%29202 = load double*, double** %9
%29203 = getelementptr inbounds double, double* %29202, i64 1
%29204 = load double, double* %29203
%29205 = fsub double %29201, %29204
%29206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29205, double* %29206
%29207 = load double*, double** %12
%29208 = getelementptr inbounds double, double* %29207, i64 2
%29209 = load double, double* %29208
%29210 = load double*, double** %9
%29211 = getelementptr inbounds double, double* %29210, i64 2
%29212 = load double, double* %29211
%29213 = fsub double %29209, %29212
%29214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29213, double* %29214
%29215 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29216 = load double, double* %29215
%29217 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29218 = load double, double* %29217
%29219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29220 = load double, double* %29219
%29221 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29222 = load double, double* %29221
%29223 = fmul double %29220, %29222
%29224 = call double @llvm.fmuladd.f64(double %29216, double %29218, double %29223)
%29225 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29226 = load double, double* %29225
%29227 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29228 = load double, double* %29227
%29229 = call double @llvm.fmuladd.f64(double %29226, double %29228, double %29224)
%29230 = fcmp ogt double %29229, 0.000000e+00
br i1 %29230, label %29231, label %29232
29231: ; preds = %29106
store i32 0, i32* %7
br label %37464
29232: ; preds = %29106
store i32 1, i32* %7
br label %37464
29233: ; preds = %28977
%29234 = load double, double* %19
%29235 = fcmp olt double %29234, 0.000000e+00
br i1 %29235, label %29236, label %29489
29236: ; preds = %29233
%29237 = load double*, double** %12
%29238 = getelementptr inbounds double, double* %29237, i64 0
%29239 = load double, double* %29238
%29240 = load double*, double** %10
%29241 = getelementptr inbounds double, double* %29240, i64 0
%29242 = load double, double* %29241
%29243 = fsub double %29239, %29242
%29244 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29243, double* %29244
%29245 = load double*, double** %12
%29246 = getelementptr inbounds double, double* %29245, i64 1
%29247 = load double, double* %29246
%29248 = load double*, double** %10
%29249 = getelementptr inbounds double, double* %29248, i64 1
%29250 = load double, double* %29249
%29251 = fsub double %29247, %29250
%29252 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29251, double* %29252
%29253 = load double*, double** %12
%29254 = getelementptr inbounds double, double* %29253, i64 2
%29255 = load double, double* %29254
%29256 = load double*, double** %10
%29257 = getelementptr inbounds double, double* %29256, i64 2
%29258 = load double, double* %29257
%29259 = fsub double %29255, %29258
%29260 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29259, double* %29260
%29261 = load double*, double** %9
%29262 = getelementptr inbounds double, double* %29261, i64 0
%29263 = load double, double* %29262
%29264 = load double*, double** %10
%29265 = getelementptr inbounds double, double* %29264, i64 0
%29266 = load double, double* %29265
%29267 = fsub double %29263, %29266
%29268 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29267, double* %29268
%29269 = load double*, double** %9
%29270 = getelementptr inbounds double, double* %29269, i64 1
%29271 = load double, double* %29270
%29272 = load double*, double** %10
%29273 = getelementptr inbounds double, double* %29272, i64 1
%29274 = load double, double* %29273
%29275 = fsub double %29271, %29274
%29276 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29275, double* %29276
%29277 = load double*, double** %9
%29278 = getelementptr inbounds double, double* %29277, i64 2
%29279 = load double, double* %29278
%29280 = load double*, double** %10
%29281 = getelementptr inbounds double, double* %29280, i64 2
%29282 = load double, double* %29281
%29283 = fsub double %29279, %29282
%29284 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29283, double* %29284
%29285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29286 = load double, double* %29285
%29287 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29288 = load double, double* %29287
%29289 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29290 = load double, double* %29289
%29291 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29292 = load double, double* %29291
%29293 = fmul double %29290, %29292
%29294 = fneg double %29293
%29295 = call double @llvm.fmuladd.f64(double %29286, double %29288, double %29294)
%29296 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29295, double* %29296
%29297 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29298 = load double, double* %29297
%29299 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29300 = load double, double* %29299
%29301 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29302 = load double, double* %29301
%29303 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29304 = load double, double* %29303
%29305 = fmul double %29302, %29304
%29306 = fneg double %29305
%29307 = call double @llvm.fmuladd.f64(double %29298, double %29300, double %29306)
%29308 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29307, double* %29308
%29309 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29310 = load double, double* %29309
%29311 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29312 = load double, double* %29311
%29313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29314 = load double, double* %29313
%29315 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29316 = load double, double* %29315
%29317 = fmul double %29314, %29316
%29318 = fneg double %29317
%29319 = call double @llvm.fmuladd.f64(double %29310, double %29312, double %29318)
%29320 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29319, double* %29320
%29321 = load double*, double** %13
%29322 = getelementptr inbounds double, double* %29321, i64 0
%29323 = load double, double* %29322
%29324 = load double*, double** %10
%29325 = getelementptr inbounds double, double* %29324, i64 0
%29326 = load double, double* %29325
%29327 = fsub double %29323, %29326
%29328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29327, double* %29328
%29329 = load double*, double** %13
%29330 = getelementptr inbounds double, double* %29329, i64 1
%29331 = load double, double* %29330
%29332 = load double*, double** %10
%29333 = getelementptr inbounds double, double* %29332, i64 1
%29334 = load double, double* %29333
%29335 = fsub double %29331, %29334
%29336 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29335, double* %29336
%29337 = load double*, double** %13
%29338 = getelementptr inbounds double, double* %29337, i64 2
%29339 = load double, double* %29338
%29340 = load double*, double** %10
%29341 = getelementptr inbounds double, double* %29340, i64 2
%29342 = load double, double* %29341
%29343 = fsub double %29339, %29342
%29344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29343, double* %29344
%29345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29346 = load double, double* %29345
%29347 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29348 = load double, double* %29347
%29349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29350 = load double, double* %29349
%29351 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29352 = load double, double* %29351
%29353 = fmul double %29350, %29352
%29354 = call double @llvm.fmuladd.f64(double %29346, double %29348, double %29353)
%29355 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29356 = load double, double* %29355
%29357 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29358 = load double, double* %29357
%29359 = call double @llvm.fmuladd.f64(double %29356, double %29358, double %29354)
%29360 = fcmp ogt double %29359, 0.000000e+00
br i1 %29360, label %29361, label %29362
29361: ; preds = %29236
store i32 0, i32* %7
br label %37464
29362: ; preds = %29236
%29363 = load double*, double** %12
%29364 = getelementptr inbounds double, double* %29363, i64 0
%29365 = load double, double* %29364
%29366 = load double*, double** %9
%29367 = getelementptr inbounds double, double* %29366, i64 0
%29368 = load double, double* %29367
%29369 = fsub double %29365, %29368
%29370 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29369, double* %29370
%29371 = load double*, double** %12
%29372 = getelementptr inbounds double, double* %29371, i64 1
%29373 = load double, double* %29372
%29374 = load double*, double** %9
%29375 = getelementptr inbounds double, double* %29374, i64 1
%29376 = load double, double* %29375
%29377 = fsub double %29373, %29376
%29378 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29377, double* %29378
%29379 = load double*, double** %12
%29380 = getelementptr inbounds double, double* %29379, i64 2
%29381 = load double, double* %29380
%29382 = load double*, double** %9
%29383 = getelementptr inbounds double, double* %29382, i64 2
%29384 = load double, double* %29383
%29385 = fsub double %29381, %29384
%29386 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29385, double* %29386
%29387 = load double*, double** %8
%29388 = getelementptr inbounds double, double* %29387, i64 0
%29389 = load double, double* %29388
%29390 = load double*, double** %9
%29391 = getelementptr inbounds double, double* %29390, i64 0
%29392 = load double, double* %29391
%29393 = fsub double %29389, %29392
%29394 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29393, double* %29394
%29395 = load double*, double** %8
%29396 = getelementptr inbounds double, double* %29395, i64 1
%29397 = load double, double* %29396
%29398 = load double*, double** %9
%29399 = getelementptr inbounds double, double* %29398, i64 1
%29400 = load double, double* %29399
%29401 = fsub double %29397, %29400
%29402 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29401, double* %29402
%29403 = load double*, double** %8
%29404 = getelementptr inbounds double, double* %29403, i64 2
%29405 = load double, double* %29404
%29406 = load double*, double** %9
%29407 = getelementptr inbounds double, double* %29406, i64 2
%29408 = load double, double* %29407
%29409 = fsub double %29405, %29408
%29410 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29409, double* %29410
%29411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29412 = load double, double* %29411
%29413 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29414 = load double, double* %29413
%29415 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29416 = load double, double* %29415
%29417 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29418 = load double, double* %29417
%29419 = fmul double %29416, %29418
%29420 = fneg double %29419
%29421 = call double @llvm.fmuladd.f64(double %29412, double %29414, double %29420)
%29422 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29421, double* %29422
%29423 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29424 = load double, double* %29423
%29425 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29426 = load double, double* %29425
%29427 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29428 = load double, double* %29427
%29429 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29430 = load double, double* %29429
%29431 = fmul double %29428, %29430
%29432 = fneg double %29431
%29433 = call double @llvm.fmuladd.f64(double %29424, double %29426, double %29432)
%29434 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29433, double* %29434
%29435 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29436 = load double, double* %29435
%29437 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29438 = load double, double* %29437
%29439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29440 = load double, double* %29439
%29441 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29442 = load double, double* %29441
%29443 = fmul double %29440, %29442
%29444 = fneg double %29443
%29445 = call double @llvm.fmuladd.f64(double %29436, double %29438, double %29444)
%29446 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29445, double* %29446
%29447 = load double*, double** %11
%29448 = getelementptr inbounds double, double* %29447, i64 0
%29449 = load double, double* %29448
%29450 = load double*, double** %9
%29451 = getelementptr inbounds double, double* %29450, i64 0
%29452 = load double, double* %29451
%29453 = fsub double %29449, %29452
%29454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29453, double* %29454
%29455 = load double*, double** %11
%29456 = getelementptr inbounds double, double* %29455, i64 1
%29457 = load double, double* %29456
%29458 = load double*, double** %9
%29459 = getelementptr inbounds double, double* %29458, i64 1
%29460 = load double, double* %29459
%29461 = fsub double %29457, %29460
%29462 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29461, double* %29462
%29463 = load double*, double** %11
%29464 = getelementptr inbounds double, double* %29463, i64 2
%29465 = load double, double* %29464
%29466 = load double*, double** %9
%29467 = getelementptr inbounds double, double* %29466, i64 2
%29468 = load double, double* %29467
%29469 = fsub double %29465, %29468
%29470 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29469, double* %29470
%29471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29472 = load double, double* %29471
%29473 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29474 = load double, double* %29473
%29475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29476 = load double, double* %29475
%29477 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29478 = load double, double* %29477
%29479 = fmul double %29476, %29478
%29480 = call double @llvm.fmuladd.f64(double %29472, double %29474, double %29479)
%29481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29482 = load double, double* %29481
%29483 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29484 = load double, double* %29483
%29485 = call double @llvm.fmuladd.f64(double %29482, double %29484, double %29480)
%29486 = fcmp ogt double %29485, 0.000000e+00
br i1 %29486, label %29487, label %29488
29487: ; preds = %29362
store i32 0, i32* %7
br label %37464
29488: ; preds = %29362
store i32 1, i32* %7
br label %37464
29489: ; preds = %29233
%29490 = load double*, double** %11
%29491 = getelementptr inbounds double, double* %29490, i64 0
%29492 = load double, double* %29491
%29493 = load double*, double** %8
%29494 = getelementptr inbounds double, double* %29493, i64 0
%29495 = load double, double* %29494
%29496 = fsub double %29492, %29495
%29497 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29496, double* %29497
%29498 = load double*, double** %11
%29499 = getelementptr inbounds double, double* %29498, i64 1
%29500 = load double, double* %29499
%29501 = load double*, double** %8
%29502 = getelementptr inbounds double, double* %29501, i64 1
%29503 = load double, double* %29502
%29504 = fsub double %29500, %29503
%29505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29504, double* %29505
%29506 = load double*, double** %11
%29507 = getelementptr inbounds double, double* %29506, i64 2
%29508 = load double, double* %29507
%29509 = load double*, double** %8
%29510 = getelementptr inbounds double, double* %29509, i64 2
%29511 = load double, double* %29510
%29512 = fsub double %29508, %29511
%29513 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29512, double* %29513
%29514 = load double*, double** %9
%29515 = getelementptr inbounds double, double* %29514, i64 0
%29516 = load double, double* %29515
%29517 = load double*, double** %8
%29518 = getelementptr inbounds double, double* %29517, i64 0
%29519 = load double, double* %29518
%29520 = fsub double %29516, %29519
%29521 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29520, double* %29521
%29522 = load double*, double** %9
%29523 = getelementptr inbounds double, double* %29522, i64 1
%29524 = load double, double* %29523
%29525 = load double*, double** %8
%29526 = getelementptr inbounds double, double* %29525, i64 1
%29527 = load double, double* %29526
%29528 = fsub double %29524, %29527
%29529 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29528, double* %29529
%29530 = load double*, double** %9
%29531 = getelementptr inbounds double, double* %29530, i64 2
%29532 = load double, double* %29531
%29533 = load double*, double** %8
%29534 = getelementptr inbounds double, double* %29533, i64 2
%29535 = load double, double* %29534
%29536 = fsub double %29532, %29535
%29537 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29536, double* %29537
%29538 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29539 = load double, double* %29538
%29540 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29541 = load double, double* %29540
%29542 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29543 = load double, double* %29542
%29544 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29545 = load double, double* %29544
%29546 = fmul double %29543, %29545
%29547 = fneg double %29546
%29548 = call double @llvm.fmuladd.f64(double %29539, double %29541, double %29547)
%29549 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29548, double* %29549
%29550 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29551 = load double, double* %29550
%29552 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29553 = load double, double* %29552
%29554 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29555 = load double, double* %29554
%29556 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29557 = load double, double* %29556
%29558 = fmul double %29555, %29557
%29559 = fneg double %29558
%29560 = call double @llvm.fmuladd.f64(double %29551, double %29553, double %29559)
%29561 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29560, double* %29561
%29562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29563 = load double, double* %29562
%29564 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29565 = load double, double* %29564
%29566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29567 = load double, double* %29566
%29568 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29569 = load double, double* %29568
%29570 = fmul double %29567, %29569
%29571 = fneg double %29570
%29572 = call double @llvm.fmuladd.f64(double %29563, double %29565, double %29571)
%29573 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29572, double* %29573
%29574 = load double*, double** %12
%29575 = getelementptr inbounds double, double* %29574, i64 0
%29576 = load double, double* %29575
%29577 = load double*, double** %8
%29578 = getelementptr inbounds double, double* %29577, i64 0
%29579 = load double, double* %29578
%29580 = fsub double %29576, %29579
%29581 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29580, double* %29581
%29582 = load double*, double** %12
%29583 = getelementptr inbounds double, double* %29582, i64 1
%29584 = load double, double* %29583
%29585 = load double*, double** %8
%29586 = getelementptr inbounds double, double* %29585, i64 1
%29587 = load double, double* %29586
%29588 = fsub double %29584, %29587
%29589 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29588, double* %29589
%29590 = load double*, double** %12
%29591 = getelementptr inbounds double, double* %29590, i64 2
%29592 = load double, double* %29591
%29593 = load double*, double** %8
%29594 = getelementptr inbounds double, double* %29593, i64 2
%29595 = load double, double* %29594
%29596 = fsub double %29592, %29595
%29597 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29596, double* %29597
%29598 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29599 = load double, double* %29598
%29600 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29601 = load double, double* %29600
%29602 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29603 = load double, double* %29602
%29604 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29605 = load double, double* %29604
%29606 = fmul double %29603, %29605
%29607 = call double @llvm.fmuladd.f64(double %29599, double %29601, double %29606)
%29608 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29609 = load double, double* %29608
%29610 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29611 = load double, double* %29610
%29612 = call double @llvm.fmuladd.f64(double %29609, double %29611, double %29607)
%29613 = fcmp ogt double %29612, 0.000000e+00
br i1 %29613, label %29614, label %29615
29614: ; preds = %29489
store i32 0, i32* %7
br label %37464
29615: ; preds = %29489
%29616 = load double*, double** %11
%29617 = getelementptr inbounds double, double* %29616, i64 0
%29618 = load double, double* %29617
%29619 = load double*, double** %9
%29620 = getelementptr inbounds double, double* %29619, i64 0
%29621 = load double, double* %29620
%29622 = fsub double %29618, %29621
%29623 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29622, double* %29623
%29624 = load double*, double** %11
%29625 = getelementptr inbounds double, double* %29624, i64 1
%29626 = load double, double* %29625
%29627 = load double*, double** %9
%29628 = getelementptr inbounds double, double* %29627, i64 1
%29629 = load double, double* %29628
%29630 = fsub double %29626, %29629
%29631 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29630, double* %29631
%29632 = load double*, double** %11
%29633 = getelementptr inbounds double, double* %29632, i64 2
%29634 = load double, double* %29633
%29635 = load double*, double** %9
%29636 = getelementptr inbounds double, double* %29635, i64 2
%29637 = load double, double* %29636
%29638 = fsub double %29634, %29637
%29639 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29638, double* %29639
%29640 = load double*, double** %10
%29641 = getelementptr inbounds double, double* %29640, i64 0
%29642 = load double, double* %29641
%29643 = load double*, double** %9
%29644 = getelementptr inbounds double, double* %29643, i64 0
%29645 = load double, double* %29644
%29646 = fsub double %29642, %29645
%29647 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29646, double* %29647
%29648 = load double*, double** %10
%29649 = getelementptr inbounds double, double* %29648, i64 1
%29650 = load double, double* %29649
%29651 = load double*, double** %9
%29652 = getelementptr inbounds double, double* %29651, i64 1
%29653 = load double, double* %29652
%29654 = fsub double %29650, %29653
%29655 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29654, double* %29655
%29656 = load double*, double** %10
%29657 = getelementptr inbounds double, double* %29656, i64 2
%29658 = load double, double* %29657
%29659 = load double*, double** %9
%29660 = getelementptr inbounds double, double* %29659, i64 2
%29661 = load double, double* %29660
%29662 = fsub double %29658, %29661
%29663 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29662, double* %29663
%29664 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29665 = load double, double* %29664
%29666 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29667 = load double, double* %29666
%29668 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29669 = load double, double* %29668
%29670 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29671 = load double, double* %29670
%29672 = fmul double %29669, %29671
%29673 = fneg double %29672
%29674 = call double @llvm.fmuladd.f64(double %29665, double %29667, double %29673)
%29675 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29674, double* %29675
%29676 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29677 = load double, double* %29676
%29678 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29679 = load double, double* %29678
%29680 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29681 = load double, double* %29680
%29682 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29683 = load double, double* %29682
%29684 = fmul double %29681, %29683
%29685 = fneg double %29684
%29686 = call double @llvm.fmuladd.f64(double %29677, double %29679, double %29685)
%29687 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29686, double* %29687
%29688 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29689 = load double, double* %29688
%29690 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29691 = load double, double* %29690
%29692 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29693 = load double, double* %29692
%29694 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29695 = load double, double* %29694
%29696 = fmul double %29693, %29695
%29697 = fneg double %29696
%29698 = call double @llvm.fmuladd.f64(double %29689, double %29691, double %29697)
%29699 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29698, double* %29699
%29700 = load double*, double** %13
%29701 = getelementptr inbounds double, double* %29700, i64 0
%29702 = load double, double* %29701
%29703 = load double*, double** %9
%29704 = getelementptr inbounds double, double* %29703, i64 0
%29705 = load double, double* %29704
%29706 = fsub double %29702, %29705
%29707 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29706, double* %29707
%29708 = load double*, double** %13
%29709 = getelementptr inbounds double, double* %29708, i64 1
%29710 = load double, double* %29709
%29711 = load double*, double** %9
%29712 = getelementptr inbounds double, double* %29711, i64 1
%29713 = load double, double* %29712
%29714 = fsub double %29710, %29713
%29715 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29714, double* %29715
%29716 = load double*, double** %13
%29717 = getelementptr inbounds double, double* %29716, i64 2
%29718 = load double, double* %29717
%29719 = load double*, double** %9
%29720 = getelementptr inbounds double, double* %29719, i64 2
%29721 = load double, double* %29720
%29722 = fsub double %29718, %29721
%29723 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29722, double* %29723
%29724 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29725 = load double, double* %29724
%29726 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29727 = load double, double* %29726
%29728 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29729 = load double, double* %29728
%29730 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29731 = load double, double* %29730
%29732 = fmul double %29729, %29731
%29733 = call double @llvm.fmuladd.f64(double %29725, double %29727, double %29732)
%29734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29735 = load double, double* %29734
%29736 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29737 = load double, double* %29736
%29738 = call double @llvm.fmuladd.f64(double %29735, double %29737, double %29733)
%29739 = fcmp ogt double %29738, 0.000000e+00
br i1 %29739, label %29740, label %29741
29740: ; preds = %29615
store i32 0, i32* %7
br label %37464
29741: ; preds = %29615
store i32 1, i32* %7
br label %37464
29742: ; preds = %28974
%29743 = load double, double* %18
%29744 = fcmp olt double %29743, 0.000000e+00
br i1 %29744, label %29745, label %30254
29745: ; preds = %29742
%29746 = load double, double* %19
%29747 = fcmp oge double %29746, 0.000000e+00
br i1 %29747, label %29748, label %30001
29748: ; preds = %29745
%29749 = load double*, double** %12
%29750 = getelementptr inbounds double, double* %29749, i64 0
%29751 = load double, double* %29750
%29752 = load double*, double** %8
%29753 = getelementptr inbounds double, double* %29752, i64 0
%29754 = load double, double* %29753
%29755 = fsub double %29751, %29754
%29756 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29755, double* %29756
%29757 = load double*, double** %12
%29758 = getelementptr inbounds double, double* %29757, i64 1
%29759 = load double, double* %29758
%29760 = load double*, double** %8
%29761 = getelementptr inbounds double, double* %29760, i64 1
%29762 = load double, double* %29761
%29763 = fsub double %29759, %29762
%29764 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29763, double* %29764
%29765 = load double*, double** %12
%29766 = getelementptr inbounds double, double* %29765, i64 2
%29767 = load double, double* %29766
%29768 = load double*, double** %8
%29769 = getelementptr inbounds double, double* %29768, i64 2
%29770 = load double, double* %29769
%29771 = fsub double %29767, %29770
%29772 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29771, double* %29772
%29773 = load double*, double** %9
%29774 = getelementptr inbounds double, double* %29773, i64 0
%29775 = load double, double* %29774
%29776 = load double*, double** %8
%29777 = getelementptr inbounds double, double* %29776, i64 0
%29778 = load double, double* %29777
%29779 = fsub double %29775, %29778
%29780 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29779, double* %29780
%29781 = load double*, double** %9
%29782 = getelementptr inbounds double, double* %29781, i64 1
%29783 = load double, double* %29782
%29784 = load double*, double** %8
%29785 = getelementptr inbounds double, double* %29784, i64 1
%29786 = load double, double* %29785
%29787 = fsub double %29783, %29786
%29788 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29787, double* %29788
%29789 = load double*, double** %9
%29790 = getelementptr inbounds double, double* %29789, i64 2
%29791 = load double, double* %29790
%29792 = load double*, double** %8
%29793 = getelementptr inbounds double, double* %29792, i64 2
%29794 = load double, double* %29793
%29795 = fsub double %29791, %29794
%29796 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29795, double* %29796
%29797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29798 = load double, double* %29797
%29799 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29800 = load double, double* %29799
%29801 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29802 = load double, double* %29801
%29803 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29804 = load double, double* %29803
%29805 = fmul double %29802, %29804
%29806 = fneg double %29805
%29807 = call double @llvm.fmuladd.f64(double %29798, double %29800, double %29806)
%29808 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29807, double* %29808
%29809 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29810 = load double, double* %29809
%29811 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29812 = load double, double* %29811
%29813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29814 = load double, double* %29813
%29815 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29816 = load double, double* %29815
%29817 = fmul double %29814, %29816
%29818 = fneg double %29817
%29819 = call double @llvm.fmuladd.f64(double %29810, double %29812, double %29818)
%29820 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29819, double* %29820
%29821 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29822 = load double, double* %29821
%29823 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29824 = load double, double* %29823
%29825 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29826 = load double, double* %29825
%29827 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29828 = load double, double* %29827
%29829 = fmul double %29826, %29828
%29830 = fneg double %29829
%29831 = call double @llvm.fmuladd.f64(double %29822, double %29824, double %29830)
%29832 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29831, double* %29832
%29833 = load double*, double** %13
%29834 = getelementptr inbounds double, double* %29833, i64 0
%29835 = load double, double* %29834
%29836 = load double*, double** %8
%29837 = getelementptr inbounds double, double* %29836, i64 0
%29838 = load double, double* %29837
%29839 = fsub double %29835, %29838
%29840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29839, double* %29840
%29841 = load double*, double** %13
%29842 = getelementptr inbounds double, double* %29841, i64 1
%29843 = load double, double* %29842
%29844 = load double*, double** %8
%29845 = getelementptr inbounds double, double* %29844, i64 1
%29846 = load double, double* %29845
%29847 = fsub double %29843, %29846
%29848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29847, double* %29848
%29849 = load double*, double** %13
%29850 = getelementptr inbounds double, double* %29849, i64 2
%29851 = load double, double* %29850
%29852 = load double*, double** %8
%29853 = getelementptr inbounds double, double* %29852, i64 2
%29854 = load double, double* %29853
%29855 = fsub double %29851, %29854
%29856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29855, double* %29856
%29857 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29858 = load double, double* %29857
%29859 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29860 = load double, double* %29859
%29861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29862 = load double, double* %29861
%29863 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29864 = load double, double* %29863
%29865 = fmul double %29862, %29864
%29866 = call double @llvm.fmuladd.f64(double %29858, double %29860, double %29865)
%29867 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29868 = load double, double* %29867
%29869 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29870 = load double, double* %29869
%29871 = call double @llvm.fmuladd.f64(double %29868, double %29870, double %29866)
%29872 = fcmp ogt double %29871, 0.000000e+00
br i1 %29872, label %29873, label %29874
29873: ; preds = %29748
store i32 0, i32* %7
br label %37464
29874: ; preds = %29748
%29875 = load double*, double** %12
%29876 = getelementptr inbounds double, double* %29875, i64 0
%29877 = load double, double* %29876
%29878 = load double*, double** %9
%29879 = getelementptr inbounds double, double* %29878, i64 0
%29880 = load double, double* %29879
%29881 = fsub double %29877, %29880
%29882 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29881, double* %29882
%29883 = load double*, double** %12
%29884 = getelementptr inbounds double, double* %29883, i64 1
%29885 = load double, double* %29884
%29886 = load double*, double** %9
%29887 = getelementptr inbounds double, double* %29886, i64 1
%29888 = load double, double* %29887
%29889 = fsub double %29885, %29888
%29890 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29889, double* %29890
%29891 = load double*, double** %12
%29892 = getelementptr inbounds double, double* %29891, i64 2
%29893 = load double, double* %29892
%29894 = load double*, double** %9
%29895 = getelementptr inbounds double, double* %29894, i64 2
%29896 = load double, double* %29895
%29897 = fsub double %29893, %29896
%29898 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29897, double* %29898
%29899 = load double*, double** %10
%29900 = getelementptr inbounds double, double* %29899, i64 0
%29901 = load double, double* %29900
%29902 = load double*, double** %9
%29903 = getelementptr inbounds double, double* %29902, i64 0
%29904 = load double, double* %29903
%29905 = fsub double %29901, %29904
%29906 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %29905, double* %29906
%29907 = load double*, double** %10
%29908 = getelementptr inbounds double, double* %29907, i64 1
%29909 = load double, double* %29908
%29910 = load double*, double** %9
%29911 = getelementptr inbounds double, double* %29910, i64 1
%29912 = load double, double* %29911
%29913 = fsub double %29909, %29912
%29914 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %29913, double* %29914
%29915 = load double*, double** %10
%29916 = getelementptr inbounds double, double* %29915, i64 2
%29917 = load double, double* %29916
%29918 = load double*, double** %9
%29919 = getelementptr inbounds double, double* %29918, i64 2
%29920 = load double, double* %29919
%29921 = fsub double %29917, %29920
%29922 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %29921, double* %29922
%29923 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29924 = load double, double* %29923
%29925 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29926 = load double, double* %29925
%29927 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29928 = load double, double* %29927
%29929 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29930 = load double, double* %29929
%29931 = fmul double %29928, %29930
%29932 = fneg double %29931
%29933 = call double @llvm.fmuladd.f64(double %29924, double %29926, double %29932)
%29934 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %29933, double* %29934
%29935 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29936 = load double, double* %29935
%29937 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29938 = load double, double* %29937
%29939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29940 = load double, double* %29939
%29941 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%29942 = load double, double* %29941
%29943 = fmul double %29940, %29942
%29944 = fneg double %29943
%29945 = call double @llvm.fmuladd.f64(double %29936, double %29938, double %29944)
%29946 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %29945, double* %29946
%29947 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29948 = load double, double* %29947
%29949 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%29950 = load double, double* %29949
%29951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29952 = load double, double* %29951
%29953 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%29954 = load double, double* %29953
%29955 = fmul double %29952, %29954
%29956 = fneg double %29955
%29957 = call double @llvm.fmuladd.f64(double %29948, double %29950, double %29956)
%29958 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %29957, double* %29958
%29959 = load double*, double** %11
%29960 = getelementptr inbounds double, double* %29959, i64 0
%29961 = load double, double* %29960
%29962 = load double*, double** %9
%29963 = getelementptr inbounds double, double* %29962, i64 0
%29964 = load double, double* %29963
%29965 = fsub double %29961, %29964
%29966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %29965, double* %29966
%29967 = load double*, double** %11
%29968 = getelementptr inbounds double, double* %29967, i64 1
%29969 = load double, double* %29968
%29970 = load double*, double** %9
%29971 = getelementptr inbounds double, double* %29970, i64 1
%29972 = load double, double* %29971
%29973 = fsub double %29969, %29972
%29974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %29973, double* %29974
%29975 = load double*, double** %11
%29976 = getelementptr inbounds double, double* %29975, i64 2
%29977 = load double, double* %29976
%29978 = load double*, double** %9
%29979 = getelementptr inbounds double, double* %29978, i64 2
%29980 = load double, double* %29979
%29981 = fsub double %29977, %29980
%29982 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %29981, double* %29982
%29983 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%29984 = load double, double* %29983
%29985 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%29986 = load double, double* %29985
%29987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%29988 = load double, double* %29987
%29989 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%29990 = load double, double* %29989
%29991 = fmul double %29988, %29990
%29992 = call double @llvm.fmuladd.f64(double %29984, double %29986, double %29991)
%29993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%29994 = load double, double* %29993
%29995 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%29996 = load double, double* %29995
%29997 = call double @llvm.fmuladd.f64(double %29994, double %29996, double %29992)
%29998 = fcmp ogt double %29997, 0.000000e+00
br i1 %29998, label %29999, label %30000
29999: ; preds = %29874
store i32 0, i32* %7
br label %37464
30000: ; preds = %29874
store i32 1, i32* %7
br label %37464
30001: ; preds = %29745
%30002 = load double*, double** %11
%30003 = getelementptr inbounds double, double* %30002, i64 0
%30004 = load double, double* %30003
%30005 = load double*, double** %10
%30006 = getelementptr inbounds double, double* %30005, i64 0
%30007 = load double, double* %30006
%30008 = fsub double %30004, %30007
%30009 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30008, double* %30009
%30010 = load double*, double** %11
%30011 = getelementptr inbounds double, double* %30010, i64 1
%30012 = load double, double* %30011
%30013 = load double*, double** %10
%30014 = getelementptr inbounds double, double* %30013, i64 1
%30015 = load double, double* %30014
%30016 = fsub double %30012, %30015
%30017 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30016, double* %30017
%30018 = load double*, double** %11
%30019 = getelementptr inbounds double, double* %30018, i64 2
%30020 = load double, double* %30019
%30021 = load double*, double** %10
%30022 = getelementptr inbounds double, double* %30021, i64 2
%30023 = load double, double* %30022
%30024 = fsub double %30020, %30023
%30025 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30024, double* %30025
%30026 = load double*, double** %9
%30027 = getelementptr inbounds double, double* %30026, i64 0
%30028 = load double, double* %30027
%30029 = load double*, double** %10
%30030 = getelementptr inbounds double, double* %30029, i64 0
%30031 = load double, double* %30030
%30032 = fsub double %30028, %30031
%30033 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30032, double* %30033
%30034 = load double*, double** %9
%30035 = getelementptr inbounds double, double* %30034, i64 1
%30036 = load double, double* %30035
%30037 = load double*, double** %10
%30038 = getelementptr inbounds double, double* %30037, i64 1
%30039 = load double, double* %30038
%30040 = fsub double %30036, %30039
%30041 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30040, double* %30041
%30042 = load double*, double** %9
%30043 = getelementptr inbounds double, double* %30042, i64 2
%30044 = load double, double* %30043
%30045 = load double*, double** %10
%30046 = getelementptr inbounds double, double* %30045, i64 2
%30047 = load double, double* %30046
%30048 = fsub double %30044, %30047
%30049 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30048, double* %30049
%30050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30051 = load double, double* %30050
%30052 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30053 = load double, double* %30052
%30054 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30055 = load double, double* %30054
%30056 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30057 = load double, double* %30056
%30058 = fmul double %30055, %30057
%30059 = fneg double %30058
%30060 = call double @llvm.fmuladd.f64(double %30051, double %30053, double %30059)
%30061 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30060, double* %30061
%30062 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30063 = load double, double* %30062
%30064 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30065 = load double, double* %30064
%30066 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30067 = load double, double* %30066
%30068 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30069 = load double, double* %30068
%30070 = fmul double %30067, %30069
%30071 = fneg double %30070
%30072 = call double @llvm.fmuladd.f64(double %30063, double %30065, double %30071)
%30073 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30072, double* %30073
%30074 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30075 = load double, double* %30074
%30076 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30077 = load double, double* %30076
%30078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30079 = load double, double* %30078
%30080 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30081 = load double, double* %30080
%30082 = fmul double %30079, %30081
%30083 = fneg double %30082
%30084 = call double @llvm.fmuladd.f64(double %30075, double %30077, double %30083)
%30085 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30084, double* %30085
%30086 = load double*, double** %12
%30087 = getelementptr inbounds double, double* %30086, i64 0
%30088 = load double, double* %30087
%30089 = load double*, double** %10
%30090 = getelementptr inbounds double, double* %30089, i64 0
%30091 = load double, double* %30090
%30092 = fsub double %30088, %30091
%30093 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30092, double* %30093
%30094 = load double*, double** %12
%30095 = getelementptr inbounds double, double* %30094, i64 1
%30096 = load double, double* %30095
%30097 = load double*, double** %10
%30098 = getelementptr inbounds double, double* %30097, i64 1
%30099 = load double, double* %30098
%30100 = fsub double %30096, %30099
%30101 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30100, double* %30101
%30102 = load double*, double** %12
%30103 = getelementptr inbounds double, double* %30102, i64 2
%30104 = load double, double* %30103
%30105 = load double*, double** %10
%30106 = getelementptr inbounds double, double* %30105, i64 2
%30107 = load double, double* %30106
%30108 = fsub double %30104, %30107
%30109 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30108, double* %30109
%30110 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30111 = load double, double* %30110
%30112 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30113 = load double, double* %30112
%30114 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30115 = load double, double* %30114
%30116 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30117 = load double, double* %30116
%30118 = fmul double %30115, %30117
%30119 = call double @llvm.fmuladd.f64(double %30111, double %30113, double %30118)
%30120 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30121 = load double, double* %30120
%30122 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30123 = load double, double* %30122
%30124 = call double @llvm.fmuladd.f64(double %30121, double %30123, double %30119)
%30125 = fcmp ogt double %30124, 0.000000e+00
br i1 %30125, label %30126, label %30127
30126: ; preds = %30001
store i32 0, i32* %7
br label %37464
30127: ; preds = %30001
%30128 = load double*, double** %11
%30129 = getelementptr inbounds double, double* %30128, i64 0
%30130 = load double, double* %30129
%30131 = load double*, double** %9
%30132 = getelementptr inbounds double, double* %30131, i64 0
%30133 = load double, double* %30132
%30134 = fsub double %30130, %30133
%30135 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30134, double* %30135
%30136 = load double*, double** %11
%30137 = getelementptr inbounds double, double* %30136, i64 1
%30138 = load double, double* %30137
%30139 = load double*, double** %9
%30140 = getelementptr inbounds double, double* %30139, i64 1
%30141 = load double, double* %30140
%30142 = fsub double %30138, %30141
%30143 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30142, double* %30143
%30144 = load double*, double** %11
%30145 = getelementptr inbounds double, double* %30144, i64 2
%30146 = load double, double* %30145
%30147 = load double*, double** %9
%30148 = getelementptr inbounds double, double* %30147, i64 2
%30149 = load double, double* %30148
%30150 = fsub double %30146, %30149
%30151 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30150, double* %30151
%30152 = load double*, double** %8
%30153 = getelementptr inbounds double, double* %30152, i64 0
%30154 = load double, double* %30153
%30155 = load double*, double** %9
%30156 = getelementptr inbounds double, double* %30155, i64 0
%30157 = load double, double* %30156
%30158 = fsub double %30154, %30157
%30159 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30158, double* %30159
%30160 = load double*, double** %8
%30161 = getelementptr inbounds double, double* %30160, i64 1
%30162 = load double, double* %30161
%30163 = load double*, double** %9
%30164 = getelementptr inbounds double, double* %30163, i64 1
%30165 = load double, double* %30164
%30166 = fsub double %30162, %30165
%30167 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30166, double* %30167
%30168 = load double*, double** %8
%30169 = getelementptr inbounds double, double* %30168, i64 2
%30170 = load double, double* %30169
%30171 = load double*, double** %9
%30172 = getelementptr inbounds double, double* %30171, i64 2
%30173 = load double, double* %30172
%30174 = fsub double %30170, %30173
%30175 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30174, double* %30175
%30176 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30177 = load double, double* %30176
%30178 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30179 = load double, double* %30178
%30180 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30181 = load double, double* %30180
%30182 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30183 = load double, double* %30182
%30184 = fmul double %30181, %30183
%30185 = fneg double %30184
%30186 = call double @llvm.fmuladd.f64(double %30177, double %30179, double %30185)
%30187 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30186, double* %30187
%30188 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30189 = load double, double* %30188
%30190 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30191 = load double, double* %30190
%30192 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30193 = load double, double* %30192
%30194 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30195 = load double, double* %30194
%30196 = fmul double %30193, %30195
%30197 = fneg double %30196
%30198 = call double @llvm.fmuladd.f64(double %30189, double %30191, double %30197)
%30199 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30198, double* %30199
%30200 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30201 = load double, double* %30200
%30202 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30203 = load double, double* %30202
%30204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30205 = load double, double* %30204
%30206 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30207 = load double, double* %30206
%30208 = fmul double %30205, %30207
%30209 = fneg double %30208
%30210 = call double @llvm.fmuladd.f64(double %30201, double %30203, double %30209)
%30211 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30210, double* %30211
%30212 = load double*, double** %13
%30213 = getelementptr inbounds double, double* %30212, i64 0
%30214 = load double, double* %30213
%30215 = load double*, double** %9
%30216 = getelementptr inbounds double, double* %30215, i64 0
%30217 = load double, double* %30216
%30218 = fsub double %30214, %30217
%30219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30218, double* %30219
%30220 = load double*, double** %13
%30221 = getelementptr inbounds double, double* %30220, i64 1
%30222 = load double, double* %30221
%30223 = load double*, double** %9
%30224 = getelementptr inbounds double, double* %30223, i64 1
%30225 = load double, double* %30224
%30226 = fsub double %30222, %30225
%30227 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30226, double* %30227
%30228 = load double*, double** %13
%30229 = getelementptr inbounds double, double* %30228, i64 2
%30230 = load double, double* %30229
%30231 = load double*, double** %9
%30232 = getelementptr inbounds double, double* %30231, i64 2
%30233 = load double, double* %30232
%30234 = fsub double %30230, %30233
%30235 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30234, double* %30235
%30236 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30237 = load double, double* %30236
%30238 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30239 = load double, double* %30238
%30240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30241 = load double, double* %30240
%30242 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30243 = load double, double* %30242
%30244 = fmul double %30241, %30243
%30245 = call double @llvm.fmuladd.f64(double %30237, double %30239, double %30244)
%30246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30247 = load double, double* %30246
%30248 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30249 = load double, double* %30248
%30250 = call double @llvm.fmuladd.f64(double %30247, double %30249, double %30245)
%30251 = fcmp ogt double %30250, 0.000000e+00
br i1 %30251, label %30252, label %30253
30252: ; preds = %30127
store i32 0, i32* %7
br label %37464
30253: ; preds = %30127
store i32 1, i32* %7
br label %37464
30254: ; preds = %29742
%30255 = load double, double* %18
%30256 = fcmp ogt double %30255, 0.000000e+00
br i1 %30256, label %30257, label %30766
30257: ; preds = %30254
%30258 = load double, double* %19
%30259 = fcmp ogt double %30258, 0.000000e+00
br i1 %30259, label %30260, label %30513
30260: ; preds = %30257
%30261 = load double*, double** %11
%30262 = getelementptr inbounds double, double* %30261, i64 0
%30263 = load double, double* %30262
%30264 = load double*, double** %8
%30265 = getelementptr inbounds double, double* %30264, i64 0
%30266 = load double, double* %30265
%30267 = fsub double %30263, %30266
%30268 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30267, double* %30268
%30269 = load double*, double** %11
%30270 = getelementptr inbounds double, double* %30269, i64 1
%30271 = load double, double* %30270
%30272 = load double*, double** %8
%30273 = getelementptr inbounds double, double* %30272, i64 1
%30274 = load double, double* %30273
%30275 = fsub double %30271, %30274
%30276 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30275, double* %30276
%30277 = load double*, double** %11
%30278 = getelementptr inbounds double, double* %30277, i64 2
%30279 = load double, double* %30278
%30280 = load double*, double** %8
%30281 = getelementptr inbounds double, double* %30280, i64 2
%30282 = load double, double* %30281
%30283 = fsub double %30279, %30282
%30284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30283, double* %30284
%30285 = load double*, double** %9
%30286 = getelementptr inbounds double, double* %30285, i64 0
%30287 = load double, double* %30286
%30288 = load double*, double** %8
%30289 = getelementptr inbounds double, double* %30288, i64 0
%30290 = load double, double* %30289
%30291 = fsub double %30287, %30290
%30292 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30291, double* %30292
%30293 = load double*, double** %9
%30294 = getelementptr inbounds double, double* %30293, i64 1
%30295 = load double, double* %30294
%30296 = load double*, double** %8
%30297 = getelementptr inbounds double, double* %30296, i64 1
%30298 = load double, double* %30297
%30299 = fsub double %30295, %30298
%30300 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30299, double* %30300
%30301 = load double*, double** %9
%30302 = getelementptr inbounds double, double* %30301, i64 2
%30303 = load double, double* %30302
%30304 = load double*, double** %8
%30305 = getelementptr inbounds double, double* %30304, i64 2
%30306 = load double, double* %30305
%30307 = fsub double %30303, %30306
%30308 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30307, double* %30308
%30309 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30310 = load double, double* %30309
%30311 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30312 = load double, double* %30311
%30313 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30314 = load double, double* %30313
%30315 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30316 = load double, double* %30315
%30317 = fmul double %30314, %30316
%30318 = fneg double %30317
%30319 = call double @llvm.fmuladd.f64(double %30310, double %30312, double %30318)
%30320 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30319, double* %30320
%30321 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30322 = load double, double* %30321
%30323 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30324 = load double, double* %30323
%30325 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30326 = load double, double* %30325
%30327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30328 = load double, double* %30327
%30329 = fmul double %30326, %30328
%30330 = fneg double %30329
%30331 = call double @llvm.fmuladd.f64(double %30322, double %30324, double %30330)
%30332 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30331, double* %30332
%30333 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30334 = load double, double* %30333
%30335 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30336 = load double, double* %30335
%30337 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30338 = load double, double* %30337
%30339 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30340 = load double, double* %30339
%30341 = fmul double %30338, %30340
%30342 = fneg double %30341
%30343 = call double @llvm.fmuladd.f64(double %30334, double %30336, double %30342)
%30344 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30343, double* %30344
%30345 = load double*, double** %12
%30346 = getelementptr inbounds double, double* %30345, i64 0
%30347 = load double, double* %30346
%30348 = load double*, double** %8
%30349 = getelementptr inbounds double, double* %30348, i64 0
%30350 = load double, double* %30349
%30351 = fsub double %30347, %30350
%30352 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30351, double* %30352
%30353 = load double*, double** %12
%30354 = getelementptr inbounds double, double* %30353, i64 1
%30355 = load double, double* %30354
%30356 = load double*, double** %8
%30357 = getelementptr inbounds double, double* %30356, i64 1
%30358 = load double, double* %30357
%30359 = fsub double %30355, %30358
%30360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30359, double* %30360
%30361 = load double*, double** %12
%30362 = getelementptr inbounds double, double* %30361, i64 2
%30363 = load double, double* %30362
%30364 = load double*, double** %8
%30365 = getelementptr inbounds double, double* %30364, i64 2
%30366 = load double, double* %30365
%30367 = fsub double %30363, %30366
%30368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30367, double* %30368
%30369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30370 = load double, double* %30369
%30371 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30372 = load double, double* %30371
%30373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30374 = load double, double* %30373
%30375 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30376 = load double, double* %30375
%30377 = fmul double %30374, %30376
%30378 = call double @llvm.fmuladd.f64(double %30370, double %30372, double %30377)
%30379 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30380 = load double, double* %30379
%30381 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30382 = load double, double* %30381
%30383 = call double @llvm.fmuladd.f64(double %30380, double %30382, double %30378)
%30384 = fcmp ogt double %30383, 0.000000e+00
br i1 %30384, label %30385, label %30386
30385: ; preds = %30260
store i32 0, i32* %7
br label %37464
30386: ; preds = %30260
%30387 = load double*, double** %11
%30388 = getelementptr inbounds double, double* %30387, i64 0
%30389 = load double, double* %30388
%30390 = load double*, double** %9
%30391 = getelementptr inbounds double, double* %30390, i64 0
%30392 = load double, double* %30391
%30393 = fsub double %30389, %30392
%30394 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30393, double* %30394
%30395 = load double*, double** %11
%30396 = getelementptr inbounds double, double* %30395, i64 1
%30397 = load double, double* %30396
%30398 = load double*, double** %9
%30399 = getelementptr inbounds double, double* %30398, i64 1
%30400 = load double, double* %30399
%30401 = fsub double %30397, %30400
%30402 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30401, double* %30402
%30403 = load double*, double** %11
%30404 = getelementptr inbounds double, double* %30403, i64 2
%30405 = load double, double* %30404
%30406 = load double*, double** %9
%30407 = getelementptr inbounds double, double* %30406, i64 2
%30408 = load double, double* %30407
%30409 = fsub double %30405, %30408
%30410 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30409, double* %30410
%30411 = load double*, double** %10
%30412 = getelementptr inbounds double, double* %30411, i64 0
%30413 = load double, double* %30412
%30414 = load double*, double** %9
%30415 = getelementptr inbounds double, double* %30414, i64 0
%30416 = load double, double* %30415
%30417 = fsub double %30413, %30416
%30418 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30417, double* %30418
%30419 = load double*, double** %10
%30420 = getelementptr inbounds double, double* %30419, i64 1
%30421 = load double, double* %30420
%30422 = load double*, double** %9
%30423 = getelementptr inbounds double, double* %30422, i64 1
%30424 = load double, double* %30423
%30425 = fsub double %30421, %30424
%30426 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30425, double* %30426
%30427 = load double*, double** %10
%30428 = getelementptr inbounds double, double* %30427, i64 2
%30429 = load double, double* %30428
%30430 = load double*, double** %9
%30431 = getelementptr inbounds double, double* %30430, i64 2
%30432 = load double, double* %30431
%30433 = fsub double %30429, %30432
%30434 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30433, double* %30434
%30435 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30436 = load double, double* %30435
%30437 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30438 = load double, double* %30437
%30439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30440 = load double, double* %30439
%30441 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30442 = load double, double* %30441
%30443 = fmul double %30440, %30442
%30444 = fneg double %30443
%30445 = call double @llvm.fmuladd.f64(double %30436, double %30438, double %30444)
%30446 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30445, double* %30446
%30447 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30448 = load double, double* %30447
%30449 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30450 = load double, double* %30449
%30451 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30452 = load double, double* %30451
%30453 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30454 = load double, double* %30453
%30455 = fmul double %30452, %30454
%30456 = fneg double %30455
%30457 = call double @llvm.fmuladd.f64(double %30448, double %30450, double %30456)
%30458 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30457, double* %30458
%30459 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30460 = load double, double* %30459
%30461 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30462 = load double, double* %30461
%30463 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30464 = load double, double* %30463
%30465 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30466 = load double, double* %30465
%30467 = fmul double %30464, %30466
%30468 = fneg double %30467
%30469 = call double @llvm.fmuladd.f64(double %30460, double %30462, double %30468)
%30470 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30469, double* %30470
%30471 = load double*, double** %13
%30472 = getelementptr inbounds double, double* %30471, i64 0
%30473 = load double, double* %30472
%30474 = load double*, double** %9
%30475 = getelementptr inbounds double, double* %30474, i64 0
%30476 = load double, double* %30475
%30477 = fsub double %30473, %30476
%30478 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30477, double* %30478
%30479 = load double*, double** %13
%30480 = getelementptr inbounds double, double* %30479, i64 1
%30481 = load double, double* %30480
%30482 = load double*, double** %9
%30483 = getelementptr inbounds double, double* %30482, i64 1
%30484 = load double, double* %30483
%30485 = fsub double %30481, %30484
%30486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30485, double* %30486
%30487 = load double*, double** %13
%30488 = getelementptr inbounds double, double* %30487, i64 2
%30489 = load double, double* %30488
%30490 = load double*, double** %9
%30491 = getelementptr inbounds double, double* %30490, i64 2
%30492 = load double, double* %30491
%30493 = fsub double %30489, %30492
%30494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30493, double* %30494
%30495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30496 = load double, double* %30495
%30497 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30498 = load double, double* %30497
%30499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30500 = load double, double* %30499
%30501 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30502 = load double, double* %30501
%30503 = fmul double %30500, %30502
%30504 = call double @llvm.fmuladd.f64(double %30496, double %30498, double %30503)
%30505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30506 = load double, double* %30505
%30507 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30508 = load double, double* %30507
%30509 = call double @llvm.fmuladd.f64(double %30506, double %30508, double %30504)
%30510 = fcmp ogt double %30509, 0.000000e+00
br i1 %30510, label %30511, label %30512
30511: ; preds = %30386
store i32 0, i32* %7
br label %37464
30512: ; preds = %30386
store i32 1, i32* %7
br label %37464
30513: ; preds = %30257
%30514 = load double*, double** %12
%30515 = getelementptr inbounds double, double* %30514, i64 0
%30516 = load double, double* %30515
%30517 = load double*, double** %10
%30518 = getelementptr inbounds double, double* %30517, i64 0
%30519 = load double, double* %30518
%30520 = fsub double %30516, %30519
%30521 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30520, double* %30521
%30522 = load double*, double** %12
%30523 = getelementptr inbounds double, double* %30522, i64 1
%30524 = load double, double* %30523
%30525 = load double*, double** %10
%30526 = getelementptr inbounds double, double* %30525, i64 1
%30527 = load double, double* %30526
%30528 = fsub double %30524, %30527
%30529 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30528, double* %30529
%30530 = load double*, double** %12
%30531 = getelementptr inbounds double, double* %30530, i64 2
%30532 = load double, double* %30531
%30533 = load double*, double** %10
%30534 = getelementptr inbounds double, double* %30533, i64 2
%30535 = load double, double* %30534
%30536 = fsub double %30532, %30535
%30537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30536, double* %30537
%30538 = load double*, double** %9
%30539 = getelementptr inbounds double, double* %30538, i64 0
%30540 = load double, double* %30539
%30541 = load double*, double** %10
%30542 = getelementptr inbounds double, double* %30541, i64 0
%30543 = load double, double* %30542
%30544 = fsub double %30540, %30543
%30545 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30544, double* %30545
%30546 = load double*, double** %9
%30547 = getelementptr inbounds double, double* %30546, i64 1
%30548 = load double, double* %30547
%30549 = load double*, double** %10
%30550 = getelementptr inbounds double, double* %30549, i64 1
%30551 = load double, double* %30550
%30552 = fsub double %30548, %30551
%30553 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30552, double* %30553
%30554 = load double*, double** %9
%30555 = getelementptr inbounds double, double* %30554, i64 2
%30556 = load double, double* %30555
%30557 = load double*, double** %10
%30558 = getelementptr inbounds double, double* %30557, i64 2
%30559 = load double, double* %30558
%30560 = fsub double %30556, %30559
%30561 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30560, double* %30561
%30562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30563 = load double, double* %30562
%30564 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30565 = load double, double* %30564
%30566 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30567 = load double, double* %30566
%30568 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30569 = load double, double* %30568
%30570 = fmul double %30567, %30569
%30571 = fneg double %30570
%30572 = call double @llvm.fmuladd.f64(double %30563, double %30565, double %30571)
%30573 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30572, double* %30573
%30574 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30575 = load double, double* %30574
%30576 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30577 = load double, double* %30576
%30578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30579 = load double, double* %30578
%30580 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30581 = load double, double* %30580
%30582 = fmul double %30579, %30581
%30583 = fneg double %30582
%30584 = call double @llvm.fmuladd.f64(double %30575, double %30577, double %30583)
%30585 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30584, double* %30585
%30586 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30587 = load double, double* %30586
%30588 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30589 = load double, double* %30588
%30590 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30591 = load double, double* %30590
%30592 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30593 = load double, double* %30592
%30594 = fmul double %30591, %30593
%30595 = fneg double %30594
%30596 = call double @llvm.fmuladd.f64(double %30587, double %30589, double %30595)
%30597 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30596, double* %30597
%30598 = load double*, double** %13
%30599 = getelementptr inbounds double, double* %30598, i64 0
%30600 = load double, double* %30599
%30601 = load double*, double** %10
%30602 = getelementptr inbounds double, double* %30601, i64 0
%30603 = load double, double* %30602
%30604 = fsub double %30600, %30603
%30605 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30604, double* %30605
%30606 = load double*, double** %13
%30607 = getelementptr inbounds double, double* %30606, i64 1
%30608 = load double, double* %30607
%30609 = load double*, double** %10
%30610 = getelementptr inbounds double, double* %30609, i64 1
%30611 = load double, double* %30610
%30612 = fsub double %30608, %30611
%30613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30612, double* %30613
%30614 = load double*, double** %13
%30615 = getelementptr inbounds double, double* %30614, i64 2
%30616 = load double, double* %30615
%30617 = load double*, double** %10
%30618 = getelementptr inbounds double, double* %30617, i64 2
%30619 = load double, double* %30618
%30620 = fsub double %30616, %30619
%30621 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30620, double* %30621
%30622 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30623 = load double, double* %30622
%30624 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30625 = load double, double* %30624
%30626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30627 = load double, double* %30626
%30628 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30629 = load double, double* %30628
%30630 = fmul double %30627, %30629
%30631 = call double @llvm.fmuladd.f64(double %30623, double %30625, double %30630)
%30632 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30633 = load double, double* %30632
%30634 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30635 = load double, double* %30634
%30636 = call double @llvm.fmuladd.f64(double %30633, double %30635, double %30631)
%30637 = fcmp ogt double %30636, 0.000000e+00
br i1 %30637, label %30638, label %30639
30638: ; preds = %30513
store i32 0, i32* %7
br label %37464
30639: ; preds = %30513
%30640 = load double*, double** %12
%30641 = getelementptr inbounds double, double* %30640, i64 0
%30642 = load double, double* %30641
%30643 = load double*, double** %9
%30644 = getelementptr inbounds double, double* %30643, i64 0
%30645 = load double, double* %30644
%30646 = fsub double %30642, %30645
%30647 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30646, double* %30647
%30648 = load double*, double** %12
%30649 = getelementptr inbounds double, double* %30648, i64 1
%30650 = load double, double* %30649
%30651 = load double*, double** %9
%30652 = getelementptr inbounds double, double* %30651, i64 1
%30653 = load double, double* %30652
%30654 = fsub double %30650, %30653
%30655 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30654, double* %30655
%30656 = load double*, double** %12
%30657 = getelementptr inbounds double, double* %30656, i64 2
%30658 = load double, double* %30657
%30659 = load double*, double** %9
%30660 = getelementptr inbounds double, double* %30659, i64 2
%30661 = load double, double* %30660
%30662 = fsub double %30658, %30661
%30663 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30662, double* %30663
%30664 = load double*, double** %8
%30665 = getelementptr inbounds double, double* %30664, i64 0
%30666 = load double, double* %30665
%30667 = load double*, double** %9
%30668 = getelementptr inbounds double, double* %30667, i64 0
%30669 = load double, double* %30668
%30670 = fsub double %30666, %30669
%30671 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30670, double* %30671
%30672 = load double*, double** %8
%30673 = getelementptr inbounds double, double* %30672, i64 1
%30674 = load double, double* %30673
%30675 = load double*, double** %9
%30676 = getelementptr inbounds double, double* %30675, i64 1
%30677 = load double, double* %30676
%30678 = fsub double %30674, %30677
%30679 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30678, double* %30679
%30680 = load double*, double** %8
%30681 = getelementptr inbounds double, double* %30680, i64 2
%30682 = load double, double* %30681
%30683 = load double*, double** %9
%30684 = getelementptr inbounds double, double* %30683, i64 2
%30685 = load double, double* %30684
%30686 = fsub double %30682, %30685
%30687 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30686, double* %30687
%30688 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30689 = load double, double* %30688
%30690 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30691 = load double, double* %30690
%30692 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30693 = load double, double* %30692
%30694 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30695 = load double, double* %30694
%30696 = fmul double %30693, %30695
%30697 = fneg double %30696
%30698 = call double @llvm.fmuladd.f64(double %30689, double %30691, double %30697)
%30699 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30698, double* %30699
%30700 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30701 = load double, double* %30700
%30702 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30703 = load double, double* %30702
%30704 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30705 = load double, double* %30704
%30706 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30707 = load double, double* %30706
%30708 = fmul double %30705, %30707
%30709 = fneg double %30708
%30710 = call double @llvm.fmuladd.f64(double %30701, double %30703, double %30709)
%30711 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30710, double* %30711
%30712 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30713 = load double, double* %30712
%30714 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30715 = load double, double* %30714
%30716 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30717 = load double, double* %30716
%30718 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30719 = load double, double* %30718
%30720 = fmul double %30717, %30719
%30721 = fneg double %30720
%30722 = call double @llvm.fmuladd.f64(double %30713, double %30715, double %30721)
%30723 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30722, double* %30723
%30724 = load double*, double** %11
%30725 = getelementptr inbounds double, double* %30724, i64 0
%30726 = load double, double* %30725
%30727 = load double*, double** %9
%30728 = getelementptr inbounds double, double* %30727, i64 0
%30729 = load double, double* %30728
%30730 = fsub double %30726, %30729
%30731 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30730, double* %30731
%30732 = load double*, double** %11
%30733 = getelementptr inbounds double, double* %30732, i64 1
%30734 = load double, double* %30733
%30735 = load double*, double** %9
%30736 = getelementptr inbounds double, double* %30735, i64 1
%30737 = load double, double* %30736
%30738 = fsub double %30734, %30737
%30739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30738, double* %30739
%30740 = load double*, double** %11
%30741 = getelementptr inbounds double, double* %30740, i64 2
%30742 = load double, double* %30741
%30743 = load double*, double** %9
%30744 = getelementptr inbounds double, double* %30743, i64 2
%30745 = load double, double* %30744
%30746 = fsub double %30742, %30745
%30747 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30746, double* %30747
%30748 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30749 = load double, double* %30748
%30750 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30751 = load double, double* %30750
%30752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30753 = load double, double* %30752
%30754 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30755 = load double, double* %30754
%30756 = fmul double %30753, %30755
%30757 = call double @llvm.fmuladd.f64(double %30749, double %30751, double %30756)
%30758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30759 = load double, double* %30758
%30760 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30761 = load double, double* %30760
%30762 = call double @llvm.fmuladd.f64(double %30759, double %30761, double %30757)
%30763 = fcmp ogt double %30762, 0.000000e+00
br i1 %30763, label %30764, label %30765
30764: ; preds = %30639
store i32 0, i32* %7
br label %37464
30765: ; preds = %30639
store i32 1, i32* %7
br label %37464
30766: ; preds = %30254
%30767 = load double, double* %19
%30768 = fcmp ogt double %30767, 0.000000e+00
br i1 %30768, label %30769, label %31022
30769: ; preds = %30766
%30770 = load double*, double** %13
%30771 = getelementptr inbounds double, double* %30770, i64 0
%30772 = load double, double* %30771
%30773 = load double*, double** %10
%30774 = getelementptr inbounds double, double* %30773, i64 0
%30775 = load double, double* %30774
%30776 = fsub double %30772, %30775
%30777 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30776, double* %30777
%30778 = load double*, double** %13
%30779 = getelementptr inbounds double, double* %30778, i64 1
%30780 = load double, double* %30779
%30781 = load double*, double** %10
%30782 = getelementptr inbounds double, double* %30781, i64 1
%30783 = load double, double* %30782
%30784 = fsub double %30780, %30783
%30785 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30784, double* %30785
%30786 = load double*, double** %13
%30787 = getelementptr inbounds double, double* %30786, i64 2
%30788 = load double, double* %30787
%30789 = load double*, double** %10
%30790 = getelementptr inbounds double, double* %30789, i64 2
%30791 = load double, double* %30790
%30792 = fsub double %30788, %30791
%30793 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30792, double* %30793
%30794 = load double*, double** %9
%30795 = getelementptr inbounds double, double* %30794, i64 0
%30796 = load double, double* %30795
%30797 = load double*, double** %10
%30798 = getelementptr inbounds double, double* %30797, i64 0
%30799 = load double, double* %30798
%30800 = fsub double %30796, %30799
%30801 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30800, double* %30801
%30802 = load double*, double** %9
%30803 = getelementptr inbounds double, double* %30802, i64 1
%30804 = load double, double* %30803
%30805 = load double*, double** %10
%30806 = getelementptr inbounds double, double* %30805, i64 1
%30807 = load double, double* %30806
%30808 = fsub double %30804, %30807
%30809 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30808, double* %30809
%30810 = load double*, double** %9
%30811 = getelementptr inbounds double, double* %30810, i64 2
%30812 = load double, double* %30811
%30813 = load double*, double** %10
%30814 = getelementptr inbounds double, double* %30813, i64 2
%30815 = load double, double* %30814
%30816 = fsub double %30812, %30815
%30817 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30816, double* %30817
%30818 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30819 = load double, double* %30818
%30820 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30821 = load double, double* %30820
%30822 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30823 = load double, double* %30822
%30824 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30825 = load double, double* %30824
%30826 = fmul double %30823, %30825
%30827 = fneg double %30826
%30828 = call double @llvm.fmuladd.f64(double %30819, double %30821, double %30827)
%30829 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30828, double* %30829
%30830 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30831 = load double, double* %30830
%30832 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30833 = load double, double* %30832
%30834 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30835 = load double, double* %30834
%30836 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30837 = load double, double* %30836
%30838 = fmul double %30835, %30837
%30839 = fneg double %30838
%30840 = call double @llvm.fmuladd.f64(double %30831, double %30833, double %30839)
%30841 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30840, double* %30841
%30842 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30843 = load double, double* %30842
%30844 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30845 = load double, double* %30844
%30846 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30847 = load double, double* %30846
%30848 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30849 = load double, double* %30848
%30850 = fmul double %30847, %30849
%30851 = fneg double %30850
%30852 = call double @llvm.fmuladd.f64(double %30843, double %30845, double %30851)
%30853 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30852, double* %30853
%30854 = load double*, double** %11
%30855 = getelementptr inbounds double, double* %30854, i64 0
%30856 = load double, double* %30855
%30857 = load double*, double** %10
%30858 = getelementptr inbounds double, double* %30857, i64 0
%30859 = load double, double* %30858
%30860 = fsub double %30856, %30859
%30861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30860, double* %30861
%30862 = load double*, double** %11
%30863 = getelementptr inbounds double, double* %30862, i64 1
%30864 = load double, double* %30863
%30865 = load double*, double** %10
%30866 = getelementptr inbounds double, double* %30865, i64 1
%30867 = load double, double* %30866
%30868 = fsub double %30864, %30867
%30869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30868, double* %30869
%30870 = load double*, double** %11
%30871 = getelementptr inbounds double, double* %30870, i64 2
%30872 = load double, double* %30871
%30873 = load double*, double** %10
%30874 = getelementptr inbounds double, double* %30873, i64 2
%30875 = load double, double* %30874
%30876 = fsub double %30872, %30875
%30877 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30876, double* %30877
%30878 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30879 = load double, double* %30878
%30880 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%30881 = load double, double* %30880
%30882 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30883 = load double, double* %30882
%30884 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%30885 = load double, double* %30884
%30886 = fmul double %30883, %30885
%30887 = call double @llvm.fmuladd.f64(double %30879, double %30881, double %30886)
%30888 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30889 = load double, double* %30888
%30890 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%30891 = load double, double* %30890
%30892 = call double @llvm.fmuladd.f64(double %30889, double %30891, double %30887)
%30893 = fcmp ogt double %30892, 0.000000e+00
br i1 %30893, label %30894, label %30895
30894: ; preds = %30769
store i32 0, i32* %7
br label %37464
30895: ; preds = %30769
%30896 = load double*, double** %13
%30897 = getelementptr inbounds double, double* %30896, i64 0
%30898 = load double, double* %30897
%30899 = load double*, double** %9
%30900 = getelementptr inbounds double, double* %30899, i64 0
%30901 = load double, double* %30900
%30902 = fsub double %30898, %30901
%30903 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30902, double* %30903
%30904 = load double*, double** %13
%30905 = getelementptr inbounds double, double* %30904, i64 1
%30906 = load double, double* %30905
%30907 = load double*, double** %9
%30908 = getelementptr inbounds double, double* %30907, i64 1
%30909 = load double, double* %30908
%30910 = fsub double %30906, %30909
%30911 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30910, double* %30911
%30912 = load double*, double** %13
%30913 = getelementptr inbounds double, double* %30912, i64 2
%30914 = load double, double* %30913
%30915 = load double*, double** %9
%30916 = getelementptr inbounds double, double* %30915, i64 2
%30917 = load double, double* %30916
%30918 = fsub double %30914, %30917
%30919 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %30918, double* %30919
%30920 = load double*, double** %8
%30921 = getelementptr inbounds double, double* %30920, i64 0
%30922 = load double, double* %30921
%30923 = load double*, double** %9
%30924 = getelementptr inbounds double, double* %30923, i64 0
%30925 = load double, double* %30924
%30926 = fsub double %30922, %30925
%30927 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %30926, double* %30927
%30928 = load double*, double** %8
%30929 = getelementptr inbounds double, double* %30928, i64 1
%30930 = load double, double* %30929
%30931 = load double*, double** %9
%30932 = getelementptr inbounds double, double* %30931, i64 1
%30933 = load double, double* %30932
%30934 = fsub double %30930, %30933
%30935 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %30934, double* %30935
%30936 = load double*, double** %8
%30937 = getelementptr inbounds double, double* %30936, i64 2
%30938 = load double, double* %30937
%30939 = load double*, double** %9
%30940 = getelementptr inbounds double, double* %30939, i64 2
%30941 = load double, double* %30940
%30942 = fsub double %30938, %30941
%30943 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %30942, double* %30943
%30944 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30945 = load double, double* %30944
%30946 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30947 = load double, double* %30946
%30948 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30949 = load double, double* %30948
%30950 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30951 = load double, double* %30950
%30952 = fmul double %30949, %30951
%30953 = fneg double %30952
%30954 = call double @llvm.fmuladd.f64(double %30945, double %30947, double %30953)
%30955 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %30954, double* %30955
%30956 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%30957 = load double, double* %30956
%30958 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30959 = load double, double* %30958
%30960 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30961 = load double, double* %30960
%30962 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%30963 = load double, double* %30962
%30964 = fmul double %30961, %30963
%30965 = fneg double %30964
%30966 = call double @llvm.fmuladd.f64(double %30957, double %30959, double %30965)
%30967 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %30966, double* %30967
%30968 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%30969 = load double, double* %30968
%30970 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%30971 = load double, double* %30970
%30972 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%30973 = load double, double* %30972
%30974 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%30975 = load double, double* %30974
%30976 = fmul double %30973, %30975
%30977 = fneg double %30976
%30978 = call double @llvm.fmuladd.f64(double %30969, double %30971, double %30977)
%30979 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %30978, double* %30979
%30980 = load double*, double** %12
%30981 = getelementptr inbounds double, double* %30980, i64 0
%30982 = load double, double* %30981
%30983 = load double*, double** %9
%30984 = getelementptr inbounds double, double* %30983, i64 0
%30985 = load double, double* %30984
%30986 = fsub double %30982, %30985
%30987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %30986, double* %30987
%30988 = load double*, double** %12
%30989 = getelementptr inbounds double, double* %30988, i64 1
%30990 = load double, double* %30989
%30991 = load double*, double** %9
%30992 = getelementptr inbounds double, double* %30991, i64 1
%30993 = load double, double* %30992
%30994 = fsub double %30990, %30993
%30995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %30994, double* %30995
%30996 = load double*, double** %12
%30997 = getelementptr inbounds double, double* %30996, i64 2
%30998 = load double, double* %30997
%30999 = load double*, double** %9
%31000 = getelementptr inbounds double, double* %30999, i64 2
%31001 = load double, double* %31000
%31002 = fsub double %30998, %31001
%31003 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31002, double* %31003
%31004 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31005 = load double, double* %31004
%31006 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31007 = load double, double* %31006
%31008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31009 = load double, double* %31008
%31010 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31011 = load double, double* %31010
%31012 = fmul double %31009, %31011
%31013 = call double @llvm.fmuladd.f64(double %31005, double %31007, double %31012)
%31014 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31015 = load double, double* %31014
%31016 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31017 = load double, double* %31016
%31018 = call double @llvm.fmuladd.f64(double %31015, double %31017, double %31013)
%31019 = fcmp ogt double %31018, 0.000000e+00
br i1 %31019, label %31020, label %31021
31020: ; preds = %30895
store i32 0, i32* %7
br label %37464
31021: ; preds = %30895
store i32 1, i32* %7
br label %37464
31022: ; preds = %30766
%31023 = load double, double* %19
%31024 = fcmp olt double %31023, 0.000000e+00
br i1 %31024, label %31025, label %31278
31025: ; preds = %31022
%31026 = load double*, double** %13
%31027 = getelementptr inbounds double, double* %31026, i64 0
%31028 = load double, double* %31027
%31029 = load double*, double** %8
%31030 = getelementptr inbounds double, double* %31029, i64 0
%31031 = load double, double* %31030
%31032 = fsub double %31028, %31031
%31033 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31032, double* %31033
%31034 = load double*, double** %13
%31035 = getelementptr inbounds double, double* %31034, i64 1
%31036 = load double, double* %31035
%31037 = load double*, double** %8
%31038 = getelementptr inbounds double, double* %31037, i64 1
%31039 = load double, double* %31038
%31040 = fsub double %31036, %31039
%31041 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31040, double* %31041
%31042 = load double*, double** %13
%31043 = getelementptr inbounds double, double* %31042, i64 2
%31044 = load double, double* %31043
%31045 = load double*, double** %8
%31046 = getelementptr inbounds double, double* %31045, i64 2
%31047 = load double, double* %31046
%31048 = fsub double %31044, %31047
%31049 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31048, double* %31049
%31050 = load double*, double** %9
%31051 = getelementptr inbounds double, double* %31050, i64 0
%31052 = load double, double* %31051
%31053 = load double*, double** %8
%31054 = getelementptr inbounds double, double* %31053, i64 0
%31055 = load double, double* %31054
%31056 = fsub double %31052, %31055
%31057 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31056, double* %31057
%31058 = load double*, double** %9
%31059 = getelementptr inbounds double, double* %31058, i64 1
%31060 = load double, double* %31059
%31061 = load double*, double** %8
%31062 = getelementptr inbounds double, double* %31061, i64 1
%31063 = load double, double* %31062
%31064 = fsub double %31060, %31063
%31065 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31064, double* %31065
%31066 = load double*, double** %9
%31067 = getelementptr inbounds double, double* %31066, i64 2
%31068 = load double, double* %31067
%31069 = load double*, double** %8
%31070 = getelementptr inbounds double, double* %31069, i64 2
%31071 = load double, double* %31070
%31072 = fsub double %31068, %31071
%31073 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31072, double* %31073
%31074 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31075 = load double, double* %31074
%31076 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31077 = load double, double* %31076
%31078 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31079 = load double, double* %31078
%31080 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31081 = load double, double* %31080
%31082 = fmul double %31079, %31081
%31083 = fneg double %31082
%31084 = call double @llvm.fmuladd.f64(double %31075, double %31077, double %31083)
%31085 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31084, double* %31085
%31086 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31087 = load double, double* %31086
%31088 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31089 = load double, double* %31088
%31090 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31091 = load double, double* %31090
%31092 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31093 = load double, double* %31092
%31094 = fmul double %31091, %31093
%31095 = fneg double %31094
%31096 = call double @llvm.fmuladd.f64(double %31087, double %31089, double %31095)
%31097 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31096, double* %31097
%31098 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31099 = load double, double* %31098
%31100 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31101 = load double, double* %31100
%31102 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31103 = load double, double* %31102
%31104 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31105 = load double, double* %31104
%31106 = fmul double %31103, %31105
%31107 = fneg double %31106
%31108 = call double @llvm.fmuladd.f64(double %31099, double %31101, double %31107)
%31109 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31108, double* %31109
%31110 = load double*, double** %11
%31111 = getelementptr inbounds double, double* %31110, i64 0
%31112 = load double, double* %31111
%31113 = load double*, double** %8
%31114 = getelementptr inbounds double, double* %31113, i64 0
%31115 = load double, double* %31114
%31116 = fsub double %31112, %31115
%31117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31116, double* %31117
%31118 = load double*, double** %11
%31119 = getelementptr inbounds double, double* %31118, i64 1
%31120 = load double, double* %31119
%31121 = load double*, double** %8
%31122 = getelementptr inbounds double, double* %31121, i64 1
%31123 = load double, double* %31122
%31124 = fsub double %31120, %31123
%31125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31124, double* %31125
%31126 = load double*, double** %11
%31127 = getelementptr inbounds double, double* %31126, i64 2
%31128 = load double, double* %31127
%31129 = load double*, double** %8
%31130 = getelementptr inbounds double, double* %31129, i64 2
%31131 = load double, double* %31130
%31132 = fsub double %31128, %31131
%31133 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31132, double* %31133
%31134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31135 = load double, double* %31134
%31136 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31137 = load double, double* %31136
%31138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31139 = load double, double* %31138
%31140 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31141 = load double, double* %31140
%31142 = fmul double %31139, %31141
%31143 = call double @llvm.fmuladd.f64(double %31135, double %31137, double %31142)
%31144 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31145 = load double, double* %31144
%31146 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31147 = load double, double* %31146
%31148 = call double @llvm.fmuladd.f64(double %31145, double %31147, double %31143)
%31149 = fcmp ogt double %31148, 0.000000e+00
br i1 %31149, label %31150, label %31151
31150: ; preds = %31025
store i32 0, i32* %7
br label %37464
31151: ; preds = %31025
%31152 = load double*, double** %13
%31153 = getelementptr inbounds double, double* %31152, i64 0
%31154 = load double, double* %31153
%31155 = load double*, double** %9
%31156 = getelementptr inbounds double, double* %31155, i64 0
%31157 = load double, double* %31156
%31158 = fsub double %31154, %31157
%31159 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31158, double* %31159
%31160 = load double*, double** %13
%31161 = getelementptr inbounds double, double* %31160, i64 1
%31162 = load double, double* %31161
%31163 = load double*, double** %9
%31164 = getelementptr inbounds double, double* %31163, i64 1
%31165 = load double, double* %31164
%31166 = fsub double %31162, %31165
%31167 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31166, double* %31167
%31168 = load double*, double** %13
%31169 = getelementptr inbounds double, double* %31168, i64 2
%31170 = load double, double* %31169
%31171 = load double*, double** %9
%31172 = getelementptr inbounds double, double* %31171, i64 2
%31173 = load double, double* %31172
%31174 = fsub double %31170, %31173
%31175 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31174, double* %31175
%31176 = load double*, double** %10
%31177 = getelementptr inbounds double, double* %31176, i64 0
%31178 = load double, double* %31177
%31179 = load double*, double** %9
%31180 = getelementptr inbounds double, double* %31179, i64 0
%31181 = load double, double* %31180
%31182 = fsub double %31178, %31181
%31183 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31182, double* %31183
%31184 = load double*, double** %10
%31185 = getelementptr inbounds double, double* %31184, i64 1
%31186 = load double, double* %31185
%31187 = load double*, double** %9
%31188 = getelementptr inbounds double, double* %31187, i64 1
%31189 = load double, double* %31188
%31190 = fsub double %31186, %31189
%31191 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31190, double* %31191
%31192 = load double*, double** %10
%31193 = getelementptr inbounds double, double* %31192, i64 2
%31194 = load double, double* %31193
%31195 = load double*, double** %9
%31196 = getelementptr inbounds double, double* %31195, i64 2
%31197 = load double, double* %31196
%31198 = fsub double %31194, %31197
%31199 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31198, double* %31199
%31200 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31201 = load double, double* %31200
%31202 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31203 = load double, double* %31202
%31204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31205 = load double, double* %31204
%31206 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31207 = load double, double* %31206
%31208 = fmul double %31205, %31207
%31209 = fneg double %31208
%31210 = call double @llvm.fmuladd.f64(double %31201, double %31203, double %31209)
%31211 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31210, double* %31211
%31212 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31213 = load double, double* %31212
%31214 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31215 = load double, double* %31214
%31216 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31217 = load double, double* %31216
%31218 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31219 = load double, double* %31218
%31220 = fmul double %31217, %31219
%31221 = fneg double %31220
%31222 = call double @llvm.fmuladd.f64(double %31213, double %31215, double %31221)
%31223 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31222, double* %31223
%31224 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31225 = load double, double* %31224
%31226 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31227 = load double, double* %31226
%31228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31229 = load double, double* %31228
%31230 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31231 = load double, double* %31230
%31232 = fmul double %31229, %31231
%31233 = fneg double %31232
%31234 = call double @llvm.fmuladd.f64(double %31225, double %31227, double %31233)
%31235 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31234, double* %31235
%31236 = load double*, double** %12
%31237 = getelementptr inbounds double, double* %31236, i64 0
%31238 = load double, double* %31237
%31239 = load double*, double** %9
%31240 = getelementptr inbounds double, double* %31239, i64 0
%31241 = load double, double* %31240
%31242 = fsub double %31238, %31241
%31243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31242, double* %31243
%31244 = load double*, double** %12
%31245 = getelementptr inbounds double, double* %31244, i64 1
%31246 = load double, double* %31245
%31247 = load double*, double** %9
%31248 = getelementptr inbounds double, double* %31247, i64 1
%31249 = load double, double* %31248
%31250 = fsub double %31246, %31249
%31251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31250, double* %31251
%31252 = load double*, double** %12
%31253 = getelementptr inbounds double, double* %31252, i64 2
%31254 = load double, double* %31253
%31255 = load double*, double** %9
%31256 = getelementptr inbounds double, double* %31255, i64 2
%31257 = load double, double* %31256
%31258 = fsub double %31254, %31257
%31259 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31258, double* %31259
%31260 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31261 = load double, double* %31260
%31262 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31263 = load double, double* %31262
%31264 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31265 = load double, double* %31264
%31266 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31267 = load double, double* %31266
%31268 = fmul double %31265, %31267
%31269 = call double @llvm.fmuladd.f64(double %31261, double %31263, double %31268)
%31270 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31271 = load double, double* %31270
%31272 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31273 = load double, double* %31272
%31274 = call double @llvm.fmuladd.f64(double %31271, double %31273, double %31269)
%31275 = fcmp ogt double %31274, 0.000000e+00
br i1 %31275, label %31276, label %31277
31276: ; preds = %31151
store i32 0, i32* %7
br label %37464
31277: ; preds = %31151
store i32 1, i32* %7
br label %37464
31278: ; preds = %31022
%31279 = load double*, double** %9
%31280 = load double*, double** %10
%31281 = load double*, double** %8
%31282 = load double*, double** %11
%31283 = load double*, double** %12
%31284 = load double*, double** %13
%31285 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31286 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %31279, double* %31280, double* %31281, double* %31282, double* %31283, double* %31284, double* %31285)
store i32 %31286, i32* %7
br label %37464
31287: ; preds = %25119
%31288 = load double, double* %16
%31289 = fcmp ogt double %31288, 0.000000e+00
br i1 %31289, label %31290, label %34371
31290: ; preds = %31287
%31291 = load double, double* %17
%31292 = fcmp ogt double %31291, 0.000000e+00
br i1 %31292, label %31293, label %32058
31293: ; preds = %31290
%31294 = load double, double* %18
%31295 = fcmp ogt double %31294, 0.000000e+00
br i1 %31295, label %31296, label %31549
31296: ; preds = %31293
%31297 = load double*, double** %13
%31298 = getelementptr inbounds double, double* %31297, i64 0
%31299 = load double, double* %31298
%31300 = load double*, double** %9
%31301 = getelementptr inbounds double, double* %31300, i64 0
%31302 = load double, double* %31301
%31303 = fsub double %31299, %31302
%31304 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31303, double* %31304
%31305 = load double*, double** %13
%31306 = getelementptr inbounds double, double* %31305, i64 1
%31307 = load double, double* %31306
%31308 = load double*, double** %9
%31309 = getelementptr inbounds double, double* %31308, i64 1
%31310 = load double, double* %31309
%31311 = fsub double %31307, %31310
%31312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31311, double* %31312
%31313 = load double*, double** %13
%31314 = getelementptr inbounds double, double* %31313, i64 2
%31315 = load double, double* %31314
%31316 = load double*, double** %9
%31317 = getelementptr inbounds double, double* %31316, i64 2
%31318 = load double, double* %31317
%31319 = fsub double %31315, %31318
%31320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31319, double* %31320
%31321 = load double*, double** %10
%31322 = getelementptr inbounds double, double* %31321, i64 0
%31323 = load double, double* %31322
%31324 = load double*, double** %9
%31325 = getelementptr inbounds double, double* %31324, i64 0
%31326 = load double, double* %31325
%31327 = fsub double %31323, %31326
%31328 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31327, double* %31328
%31329 = load double*, double** %10
%31330 = getelementptr inbounds double, double* %31329, i64 1
%31331 = load double, double* %31330
%31332 = load double*, double** %9
%31333 = getelementptr inbounds double, double* %31332, i64 1
%31334 = load double, double* %31333
%31335 = fsub double %31331, %31334
%31336 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31335, double* %31336
%31337 = load double*, double** %10
%31338 = getelementptr inbounds double, double* %31337, i64 2
%31339 = load double, double* %31338
%31340 = load double*, double** %9
%31341 = getelementptr inbounds double, double* %31340, i64 2
%31342 = load double, double* %31341
%31343 = fsub double %31339, %31342
%31344 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31343, double* %31344
%31345 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31346 = load double, double* %31345
%31347 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31348 = load double, double* %31347
%31349 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31350 = load double, double* %31349
%31351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31352 = load double, double* %31351
%31353 = fmul double %31350, %31352
%31354 = fneg double %31353
%31355 = call double @llvm.fmuladd.f64(double %31346, double %31348, double %31354)
%31356 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31355, double* %31356
%31357 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31358 = load double, double* %31357
%31359 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31360 = load double, double* %31359
%31361 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31362 = load double, double* %31361
%31363 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31364 = load double, double* %31363
%31365 = fmul double %31362, %31364
%31366 = fneg double %31365
%31367 = call double @llvm.fmuladd.f64(double %31358, double %31360, double %31366)
%31368 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31367, double* %31368
%31369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31370 = load double, double* %31369
%31371 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31372 = load double, double* %31371
%31373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31374 = load double, double* %31373
%31375 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31376 = load double, double* %31375
%31377 = fmul double %31374, %31376
%31378 = fneg double %31377
%31379 = call double @llvm.fmuladd.f64(double %31370, double %31372, double %31378)
%31380 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31379, double* %31380
%31381 = load double*, double** %11
%31382 = getelementptr inbounds double, double* %31381, i64 0
%31383 = load double, double* %31382
%31384 = load double*, double** %9
%31385 = getelementptr inbounds double, double* %31384, i64 0
%31386 = load double, double* %31385
%31387 = fsub double %31383, %31386
%31388 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31387, double* %31388
%31389 = load double*, double** %11
%31390 = getelementptr inbounds double, double* %31389, i64 1
%31391 = load double, double* %31390
%31392 = load double*, double** %9
%31393 = getelementptr inbounds double, double* %31392, i64 1
%31394 = load double, double* %31393
%31395 = fsub double %31391, %31394
%31396 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31395, double* %31396
%31397 = load double*, double** %11
%31398 = getelementptr inbounds double, double* %31397, i64 2
%31399 = load double, double* %31398
%31400 = load double*, double** %9
%31401 = getelementptr inbounds double, double* %31400, i64 2
%31402 = load double, double* %31401
%31403 = fsub double %31399, %31402
%31404 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31403, double* %31404
%31405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31406 = load double, double* %31405
%31407 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31408 = load double, double* %31407
%31409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31410 = load double, double* %31409
%31411 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31412 = load double, double* %31411
%31413 = fmul double %31410, %31412
%31414 = call double @llvm.fmuladd.f64(double %31406, double %31408, double %31413)
%31415 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31416 = load double, double* %31415
%31417 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31418 = load double, double* %31417
%31419 = call double @llvm.fmuladd.f64(double %31416, double %31418, double %31414)
%31420 = fcmp ogt double %31419, 0.000000e+00
br i1 %31420, label %31421, label %31422
31421: ; preds = %31296
store i32 0, i32* %7
br label %37464
31422: ; preds = %31296
%31423 = load double*, double** %13
%31424 = getelementptr inbounds double, double* %31423, i64 0
%31425 = load double, double* %31424
%31426 = load double*, double** %10
%31427 = getelementptr inbounds double, double* %31426, i64 0
%31428 = load double, double* %31427
%31429 = fsub double %31425, %31428
%31430 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31429, double* %31430
%31431 = load double*, double** %13
%31432 = getelementptr inbounds double, double* %31431, i64 1
%31433 = load double, double* %31432
%31434 = load double*, double** %10
%31435 = getelementptr inbounds double, double* %31434, i64 1
%31436 = load double, double* %31435
%31437 = fsub double %31433, %31436
%31438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31437, double* %31438
%31439 = load double*, double** %13
%31440 = getelementptr inbounds double, double* %31439, i64 2
%31441 = load double, double* %31440
%31442 = load double*, double** %10
%31443 = getelementptr inbounds double, double* %31442, i64 2
%31444 = load double, double* %31443
%31445 = fsub double %31441, %31444
%31446 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31445, double* %31446
%31447 = load double*, double** %8
%31448 = getelementptr inbounds double, double* %31447, i64 0
%31449 = load double, double* %31448
%31450 = load double*, double** %10
%31451 = getelementptr inbounds double, double* %31450, i64 0
%31452 = load double, double* %31451
%31453 = fsub double %31449, %31452
%31454 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31453, double* %31454
%31455 = load double*, double** %8
%31456 = getelementptr inbounds double, double* %31455, i64 1
%31457 = load double, double* %31456
%31458 = load double*, double** %10
%31459 = getelementptr inbounds double, double* %31458, i64 1
%31460 = load double, double* %31459
%31461 = fsub double %31457, %31460
%31462 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31461, double* %31462
%31463 = load double*, double** %8
%31464 = getelementptr inbounds double, double* %31463, i64 2
%31465 = load double, double* %31464
%31466 = load double*, double** %10
%31467 = getelementptr inbounds double, double* %31466, i64 2
%31468 = load double, double* %31467
%31469 = fsub double %31465, %31468
%31470 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31469, double* %31470
%31471 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31472 = load double, double* %31471
%31473 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31474 = load double, double* %31473
%31475 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31476 = load double, double* %31475
%31477 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31478 = load double, double* %31477
%31479 = fmul double %31476, %31478
%31480 = fneg double %31479
%31481 = call double @llvm.fmuladd.f64(double %31472, double %31474, double %31480)
%31482 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31481, double* %31482
%31483 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31484 = load double, double* %31483
%31485 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31486 = load double, double* %31485
%31487 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31488 = load double, double* %31487
%31489 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31490 = load double, double* %31489
%31491 = fmul double %31488, %31490
%31492 = fneg double %31491
%31493 = call double @llvm.fmuladd.f64(double %31484, double %31486, double %31492)
%31494 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31493, double* %31494
%31495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31496 = load double, double* %31495
%31497 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31498 = load double, double* %31497
%31499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31500 = load double, double* %31499
%31501 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31502 = load double, double* %31501
%31503 = fmul double %31500, %31502
%31504 = fneg double %31503
%31505 = call double @llvm.fmuladd.f64(double %31496, double %31498, double %31504)
%31506 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31505, double* %31506
%31507 = load double*, double** %12
%31508 = getelementptr inbounds double, double* %31507, i64 0
%31509 = load double, double* %31508
%31510 = load double*, double** %10
%31511 = getelementptr inbounds double, double* %31510, i64 0
%31512 = load double, double* %31511
%31513 = fsub double %31509, %31512
%31514 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31513, double* %31514
%31515 = load double*, double** %12
%31516 = getelementptr inbounds double, double* %31515, i64 1
%31517 = load double, double* %31516
%31518 = load double*, double** %10
%31519 = getelementptr inbounds double, double* %31518, i64 1
%31520 = load double, double* %31519
%31521 = fsub double %31517, %31520
%31522 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31521, double* %31522
%31523 = load double*, double** %12
%31524 = getelementptr inbounds double, double* %31523, i64 2
%31525 = load double, double* %31524
%31526 = load double*, double** %10
%31527 = getelementptr inbounds double, double* %31526, i64 2
%31528 = load double, double* %31527
%31529 = fsub double %31525, %31528
%31530 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31529, double* %31530
%31531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31532 = load double, double* %31531
%31533 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31534 = load double, double* %31533
%31535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31536 = load double, double* %31535
%31537 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31538 = load double, double* %31537
%31539 = fmul double %31536, %31538
%31540 = call double @llvm.fmuladd.f64(double %31532, double %31534, double %31539)
%31541 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31542 = load double, double* %31541
%31543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31544 = load double, double* %31543
%31545 = call double @llvm.fmuladd.f64(double %31542, double %31544, double %31540)
%31546 = fcmp ogt double %31545, 0.000000e+00
br i1 %31546, label %31547, label %31548
31547: ; preds = %31422
store i32 0, i32* %7
br label %37464
31548: ; preds = %31422
store i32 1, i32* %7
br label %37464
31549: ; preds = %31293
%31550 = load double, double* %19
%31551 = fcmp ogt double %31550, 0.000000e+00
br i1 %31551, label %31552, label %31805
31552: ; preds = %31549
%31553 = load double*, double** %12
%31554 = getelementptr inbounds double, double* %31553, i64 0
%31555 = load double, double* %31554
%31556 = load double*, double** %9
%31557 = getelementptr inbounds double, double* %31556, i64 0
%31558 = load double, double* %31557
%31559 = fsub double %31555, %31558
%31560 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31559, double* %31560
%31561 = load double*, double** %12
%31562 = getelementptr inbounds double, double* %31561, i64 1
%31563 = load double, double* %31562
%31564 = load double*, double** %9
%31565 = getelementptr inbounds double, double* %31564, i64 1
%31566 = load double, double* %31565
%31567 = fsub double %31563, %31566
%31568 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31567, double* %31568
%31569 = load double*, double** %12
%31570 = getelementptr inbounds double, double* %31569, i64 2
%31571 = load double, double* %31570
%31572 = load double*, double** %9
%31573 = getelementptr inbounds double, double* %31572, i64 2
%31574 = load double, double* %31573
%31575 = fsub double %31571, %31574
%31576 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31575, double* %31576
%31577 = load double*, double** %10
%31578 = getelementptr inbounds double, double* %31577, i64 0
%31579 = load double, double* %31578
%31580 = load double*, double** %9
%31581 = getelementptr inbounds double, double* %31580, i64 0
%31582 = load double, double* %31581
%31583 = fsub double %31579, %31582
%31584 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31583, double* %31584
%31585 = load double*, double** %10
%31586 = getelementptr inbounds double, double* %31585, i64 1
%31587 = load double, double* %31586
%31588 = load double*, double** %9
%31589 = getelementptr inbounds double, double* %31588, i64 1
%31590 = load double, double* %31589
%31591 = fsub double %31587, %31590
%31592 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31591, double* %31592
%31593 = load double*, double** %10
%31594 = getelementptr inbounds double, double* %31593, i64 2
%31595 = load double, double* %31594
%31596 = load double*, double** %9
%31597 = getelementptr inbounds double, double* %31596, i64 2
%31598 = load double, double* %31597
%31599 = fsub double %31595, %31598
%31600 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31599, double* %31600
%31601 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31602 = load double, double* %31601
%31603 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31604 = load double, double* %31603
%31605 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31606 = load double, double* %31605
%31607 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31608 = load double, double* %31607
%31609 = fmul double %31606, %31608
%31610 = fneg double %31609
%31611 = call double @llvm.fmuladd.f64(double %31602, double %31604, double %31610)
%31612 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31611, double* %31612
%31613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31614 = load double, double* %31613
%31615 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31616 = load double, double* %31615
%31617 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31618 = load double, double* %31617
%31619 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31620 = load double, double* %31619
%31621 = fmul double %31618, %31620
%31622 = fneg double %31621
%31623 = call double @llvm.fmuladd.f64(double %31614, double %31616, double %31622)
%31624 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31623, double* %31624
%31625 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31626 = load double, double* %31625
%31627 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31628 = load double, double* %31627
%31629 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31630 = load double, double* %31629
%31631 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31632 = load double, double* %31631
%31633 = fmul double %31630, %31632
%31634 = fneg double %31633
%31635 = call double @llvm.fmuladd.f64(double %31626, double %31628, double %31634)
%31636 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31635, double* %31636
%31637 = load double*, double** %13
%31638 = getelementptr inbounds double, double* %31637, i64 0
%31639 = load double, double* %31638
%31640 = load double*, double** %9
%31641 = getelementptr inbounds double, double* %31640, i64 0
%31642 = load double, double* %31641
%31643 = fsub double %31639, %31642
%31644 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31643, double* %31644
%31645 = load double*, double** %13
%31646 = getelementptr inbounds double, double* %31645, i64 1
%31647 = load double, double* %31646
%31648 = load double*, double** %9
%31649 = getelementptr inbounds double, double* %31648, i64 1
%31650 = load double, double* %31649
%31651 = fsub double %31647, %31650
%31652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31651, double* %31652
%31653 = load double*, double** %13
%31654 = getelementptr inbounds double, double* %31653, i64 2
%31655 = load double, double* %31654
%31656 = load double*, double** %9
%31657 = getelementptr inbounds double, double* %31656, i64 2
%31658 = load double, double* %31657
%31659 = fsub double %31655, %31658
%31660 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31659, double* %31660
%31661 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31662 = load double, double* %31661
%31663 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31664 = load double, double* %31663
%31665 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31666 = load double, double* %31665
%31667 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31668 = load double, double* %31667
%31669 = fmul double %31666, %31668
%31670 = call double @llvm.fmuladd.f64(double %31662, double %31664, double %31669)
%31671 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31672 = load double, double* %31671
%31673 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31674 = load double, double* %31673
%31675 = call double @llvm.fmuladd.f64(double %31672, double %31674, double %31670)
%31676 = fcmp ogt double %31675, 0.000000e+00
br i1 %31676, label %31677, label %31678
31677: ; preds = %31552
store i32 0, i32* %7
br label %37464
31678: ; preds = %31552
%31679 = load double*, double** %12
%31680 = getelementptr inbounds double, double* %31679, i64 0
%31681 = load double, double* %31680
%31682 = load double*, double** %10
%31683 = getelementptr inbounds double, double* %31682, i64 0
%31684 = load double, double* %31683
%31685 = fsub double %31681, %31684
%31686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31685, double* %31686
%31687 = load double*, double** %12
%31688 = getelementptr inbounds double, double* %31687, i64 1
%31689 = load double, double* %31688
%31690 = load double*, double** %10
%31691 = getelementptr inbounds double, double* %31690, i64 1
%31692 = load double, double* %31691
%31693 = fsub double %31689, %31692
%31694 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31693, double* %31694
%31695 = load double*, double** %12
%31696 = getelementptr inbounds double, double* %31695, i64 2
%31697 = load double, double* %31696
%31698 = load double*, double** %10
%31699 = getelementptr inbounds double, double* %31698, i64 2
%31700 = load double, double* %31699
%31701 = fsub double %31697, %31700
%31702 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31701, double* %31702
%31703 = load double*, double** %8
%31704 = getelementptr inbounds double, double* %31703, i64 0
%31705 = load double, double* %31704
%31706 = load double*, double** %10
%31707 = getelementptr inbounds double, double* %31706, i64 0
%31708 = load double, double* %31707
%31709 = fsub double %31705, %31708
%31710 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31709, double* %31710
%31711 = load double*, double** %8
%31712 = getelementptr inbounds double, double* %31711, i64 1
%31713 = load double, double* %31712
%31714 = load double*, double** %10
%31715 = getelementptr inbounds double, double* %31714, i64 1
%31716 = load double, double* %31715
%31717 = fsub double %31713, %31716
%31718 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31717, double* %31718
%31719 = load double*, double** %8
%31720 = getelementptr inbounds double, double* %31719, i64 2
%31721 = load double, double* %31720
%31722 = load double*, double** %10
%31723 = getelementptr inbounds double, double* %31722, i64 2
%31724 = load double, double* %31723
%31725 = fsub double %31721, %31724
%31726 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31725, double* %31726
%31727 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31728 = load double, double* %31727
%31729 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31730 = load double, double* %31729
%31731 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31732 = load double, double* %31731
%31733 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31734 = load double, double* %31733
%31735 = fmul double %31732, %31734
%31736 = fneg double %31735
%31737 = call double @llvm.fmuladd.f64(double %31728, double %31730, double %31736)
%31738 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31737, double* %31738
%31739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31740 = load double, double* %31739
%31741 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31742 = load double, double* %31741
%31743 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31744 = load double, double* %31743
%31745 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31746 = load double, double* %31745
%31747 = fmul double %31744, %31746
%31748 = fneg double %31747
%31749 = call double @llvm.fmuladd.f64(double %31740, double %31742, double %31748)
%31750 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31749, double* %31750
%31751 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31752 = load double, double* %31751
%31753 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31754 = load double, double* %31753
%31755 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31756 = load double, double* %31755
%31757 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31758 = load double, double* %31757
%31759 = fmul double %31756, %31758
%31760 = fneg double %31759
%31761 = call double @llvm.fmuladd.f64(double %31752, double %31754, double %31760)
%31762 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31761, double* %31762
%31763 = load double*, double** %11
%31764 = getelementptr inbounds double, double* %31763, i64 0
%31765 = load double, double* %31764
%31766 = load double*, double** %10
%31767 = getelementptr inbounds double, double* %31766, i64 0
%31768 = load double, double* %31767
%31769 = fsub double %31765, %31768
%31770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31769, double* %31770
%31771 = load double*, double** %11
%31772 = getelementptr inbounds double, double* %31771, i64 1
%31773 = load double, double* %31772
%31774 = load double*, double** %10
%31775 = getelementptr inbounds double, double* %31774, i64 1
%31776 = load double, double* %31775
%31777 = fsub double %31773, %31776
%31778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31777, double* %31778
%31779 = load double*, double** %11
%31780 = getelementptr inbounds double, double* %31779, i64 2
%31781 = load double, double* %31780
%31782 = load double*, double** %10
%31783 = getelementptr inbounds double, double* %31782, i64 2
%31784 = load double, double* %31783
%31785 = fsub double %31781, %31784
%31786 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31785, double* %31786
%31787 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31788 = load double, double* %31787
%31789 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31790 = load double, double* %31789
%31791 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31792 = load double, double* %31791
%31793 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31794 = load double, double* %31793
%31795 = fmul double %31792, %31794
%31796 = call double @llvm.fmuladd.f64(double %31788, double %31790, double %31795)
%31797 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31798 = load double, double* %31797
%31799 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31800 = load double, double* %31799
%31801 = call double @llvm.fmuladd.f64(double %31798, double %31800, double %31796)
%31802 = fcmp ogt double %31801, 0.000000e+00
br i1 %31802, label %31803, label %31804
31803: ; preds = %31678
store i32 0, i32* %7
br label %37464
31804: ; preds = %31678
store i32 1, i32* %7
br label %37464
31805: ; preds = %31549
%31806 = load double*, double** %11
%31807 = getelementptr inbounds double, double* %31806, i64 0
%31808 = load double, double* %31807
%31809 = load double*, double** %8
%31810 = getelementptr inbounds double, double* %31809, i64 0
%31811 = load double, double* %31810
%31812 = fsub double %31808, %31811
%31813 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31812, double* %31813
%31814 = load double*, double** %11
%31815 = getelementptr inbounds double, double* %31814, i64 1
%31816 = load double, double* %31815
%31817 = load double*, double** %8
%31818 = getelementptr inbounds double, double* %31817, i64 1
%31819 = load double, double* %31818
%31820 = fsub double %31816, %31819
%31821 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31820, double* %31821
%31822 = load double*, double** %11
%31823 = getelementptr inbounds double, double* %31822, i64 2
%31824 = load double, double* %31823
%31825 = load double*, double** %8
%31826 = getelementptr inbounds double, double* %31825, i64 2
%31827 = load double, double* %31826
%31828 = fsub double %31824, %31827
%31829 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31828, double* %31829
%31830 = load double*, double** %10
%31831 = getelementptr inbounds double, double* %31830, i64 0
%31832 = load double, double* %31831
%31833 = load double*, double** %8
%31834 = getelementptr inbounds double, double* %31833, i64 0
%31835 = load double, double* %31834
%31836 = fsub double %31832, %31835
%31837 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31836, double* %31837
%31838 = load double*, double** %10
%31839 = getelementptr inbounds double, double* %31838, i64 1
%31840 = load double, double* %31839
%31841 = load double*, double** %8
%31842 = getelementptr inbounds double, double* %31841, i64 1
%31843 = load double, double* %31842
%31844 = fsub double %31840, %31843
%31845 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31844, double* %31845
%31846 = load double*, double** %10
%31847 = getelementptr inbounds double, double* %31846, i64 2
%31848 = load double, double* %31847
%31849 = load double*, double** %8
%31850 = getelementptr inbounds double, double* %31849, i64 2
%31851 = load double, double* %31850
%31852 = fsub double %31848, %31851
%31853 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31852, double* %31853
%31854 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31855 = load double, double* %31854
%31856 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31857 = load double, double* %31856
%31858 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31859 = load double, double* %31858
%31860 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31861 = load double, double* %31860
%31862 = fmul double %31859, %31861
%31863 = fneg double %31862
%31864 = call double @llvm.fmuladd.f64(double %31855, double %31857, double %31863)
%31865 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31864, double* %31865
%31866 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31867 = load double, double* %31866
%31868 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31869 = load double, double* %31868
%31870 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31871 = load double, double* %31870
%31872 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31873 = load double, double* %31872
%31874 = fmul double %31871, %31873
%31875 = fneg double %31874
%31876 = call double @llvm.fmuladd.f64(double %31867, double %31869, double %31875)
%31877 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %31876, double* %31877
%31878 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31879 = load double, double* %31878
%31880 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31881 = load double, double* %31880
%31882 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31883 = load double, double* %31882
%31884 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31885 = load double, double* %31884
%31886 = fmul double %31883, %31885
%31887 = fneg double %31886
%31888 = call double @llvm.fmuladd.f64(double %31879, double %31881, double %31887)
%31889 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %31888, double* %31889
%31890 = load double*, double** %12
%31891 = getelementptr inbounds double, double* %31890, i64 0
%31892 = load double, double* %31891
%31893 = load double*, double** %8
%31894 = getelementptr inbounds double, double* %31893, i64 0
%31895 = load double, double* %31894
%31896 = fsub double %31892, %31895
%31897 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31896, double* %31897
%31898 = load double*, double** %12
%31899 = getelementptr inbounds double, double* %31898, i64 1
%31900 = load double, double* %31899
%31901 = load double*, double** %8
%31902 = getelementptr inbounds double, double* %31901, i64 1
%31903 = load double, double* %31902
%31904 = fsub double %31900, %31903
%31905 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31904, double* %31905
%31906 = load double*, double** %12
%31907 = getelementptr inbounds double, double* %31906, i64 2
%31908 = load double, double* %31907
%31909 = load double*, double** %8
%31910 = getelementptr inbounds double, double* %31909, i64 2
%31911 = load double, double* %31910
%31912 = fsub double %31908, %31911
%31913 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31912, double* %31913
%31914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31915 = load double, double* %31914
%31916 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%31917 = load double, double* %31916
%31918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31919 = load double, double* %31918
%31920 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%31921 = load double, double* %31920
%31922 = fmul double %31919, %31921
%31923 = call double @llvm.fmuladd.f64(double %31915, double %31917, double %31922)
%31924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31925 = load double, double* %31924
%31926 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%31927 = load double, double* %31926
%31928 = call double @llvm.fmuladd.f64(double %31925, double %31927, double %31923)
%31929 = fcmp ogt double %31928, 0.000000e+00
br i1 %31929, label %31930, label %31931
31930: ; preds = %31805
store i32 0, i32* %7
br label %37464
31931: ; preds = %31805
%31932 = load double*, double** %11
%31933 = getelementptr inbounds double, double* %31932, i64 0
%31934 = load double, double* %31933
%31935 = load double*, double** %10
%31936 = getelementptr inbounds double, double* %31935, i64 0
%31937 = load double, double* %31936
%31938 = fsub double %31934, %31937
%31939 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %31938, double* %31939
%31940 = load double*, double** %11
%31941 = getelementptr inbounds double, double* %31940, i64 1
%31942 = load double, double* %31941
%31943 = load double*, double** %10
%31944 = getelementptr inbounds double, double* %31943, i64 1
%31945 = load double, double* %31944
%31946 = fsub double %31942, %31945
%31947 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %31946, double* %31947
%31948 = load double*, double** %11
%31949 = getelementptr inbounds double, double* %31948, i64 2
%31950 = load double, double* %31949
%31951 = load double*, double** %10
%31952 = getelementptr inbounds double, double* %31951, i64 2
%31953 = load double, double* %31952
%31954 = fsub double %31950, %31953
%31955 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %31954, double* %31955
%31956 = load double*, double** %9
%31957 = getelementptr inbounds double, double* %31956, i64 0
%31958 = load double, double* %31957
%31959 = load double*, double** %10
%31960 = getelementptr inbounds double, double* %31959, i64 0
%31961 = load double, double* %31960
%31962 = fsub double %31958, %31961
%31963 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %31962, double* %31963
%31964 = load double*, double** %9
%31965 = getelementptr inbounds double, double* %31964, i64 1
%31966 = load double, double* %31965
%31967 = load double*, double** %10
%31968 = getelementptr inbounds double, double* %31967, i64 1
%31969 = load double, double* %31968
%31970 = fsub double %31966, %31969
%31971 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %31970, double* %31971
%31972 = load double*, double** %9
%31973 = getelementptr inbounds double, double* %31972, i64 2
%31974 = load double, double* %31973
%31975 = load double*, double** %10
%31976 = getelementptr inbounds double, double* %31975, i64 2
%31977 = load double, double* %31976
%31978 = fsub double %31974, %31977
%31979 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %31978, double* %31979
%31980 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%31981 = load double, double* %31980
%31982 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31983 = load double, double* %31982
%31984 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31985 = load double, double* %31984
%31986 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%31987 = load double, double* %31986
%31988 = fmul double %31985, %31987
%31989 = fneg double %31988
%31990 = call double @llvm.fmuladd.f64(double %31981, double %31983, double %31989)
%31991 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %31990, double* %31991
%31992 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%31993 = load double, double* %31992
%31994 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%31995 = load double, double* %31994
%31996 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%31997 = load double, double* %31996
%31998 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%31999 = load double, double* %31998
%32000 = fmul double %31997, %31999
%32001 = fneg double %32000
%32002 = call double @llvm.fmuladd.f64(double %31993, double %31995, double %32001)
%32003 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32002, double* %32003
%32004 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32005 = load double, double* %32004
%32006 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32007 = load double, double* %32006
%32008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32009 = load double, double* %32008
%32010 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32011 = load double, double* %32010
%32012 = fmul double %32009, %32011
%32013 = fneg double %32012
%32014 = call double @llvm.fmuladd.f64(double %32005, double %32007, double %32013)
%32015 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32014, double* %32015
%32016 = load double*, double** %13
%32017 = getelementptr inbounds double, double* %32016, i64 0
%32018 = load double, double* %32017
%32019 = load double*, double** %10
%32020 = getelementptr inbounds double, double* %32019, i64 0
%32021 = load double, double* %32020
%32022 = fsub double %32018, %32021
%32023 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32022, double* %32023
%32024 = load double*, double** %13
%32025 = getelementptr inbounds double, double* %32024, i64 1
%32026 = load double, double* %32025
%32027 = load double*, double** %10
%32028 = getelementptr inbounds double, double* %32027, i64 1
%32029 = load double, double* %32028
%32030 = fsub double %32026, %32029
%32031 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32030, double* %32031
%32032 = load double*, double** %13
%32033 = getelementptr inbounds double, double* %32032, i64 2
%32034 = load double, double* %32033
%32035 = load double*, double** %10
%32036 = getelementptr inbounds double, double* %32035, i64 2
%32037 = load double, double* %32036
%32038 = fsub double %32034, %32037
%32039 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32038, double* %32039
%32040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32041 = load double, double* %32040
%32042 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32043 = load double, double* %32042
%32044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32045 = load double, double* %32044
%32046 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32047 = load double, double* %32046
%32048 = fmul double %32045, %32047
%32049 = call double @llvm.fmuladd.f64(double %32041, double %32043, double %32048)
%32050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32051 = load double, double* %32050
%32052 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32053 = load double, double* %32052
%32054 = call double @llvm.fmuladd.f64(double %32051, double %32053, double %32049)
%32055 = fcmp ogt double %32054, 0.000000e+00
br i1 %32055, label %32056, label %32057
32056: ; preds = %31931
store i32 0, i32* %7
br label %37464
32057: ; preds = %31931
store i32 1, i32* %7
br label %37464
32058: ; preds = %31290
%32059 = load double, double* %17
%32060 = fcmp olt double %32059, 0.000000e+00
br i1 %32060, label %32061, label %32826
32061: ; preds = %32058
%32062 = load double, double* %18
%32063 = fcmp olt double %32062, 0.000000e+00
br i1 %32063, label %32064, label %32317
32064: ; preds = %32061
%32065 = load double*, double** %13
%32066 = getelementptr inbounds double, double* %32065, i64 0
%32067 = load double, double* %32066
%32068 = load double*, double** %8
%32069 = getelementptr inbounds double, double* %32068, i64 0
%32070 = load double, double* %32069
%32071 = fsub double %32067, %32070
%32072 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32071, double* %32072
%32073 = load double*, double** %13
%32074 = getelementptr inbounds double, double* %32073, i64 1
%32075 = load double, double* %32074
%32076 = load double*, double** %8
%32077 = getelementptr inbounds double, double* %32076, i64 1
%32078 = load double, double* %32077
%32079 = fsub double %32075, %32078
%32080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32079, double* %32080
%32081 = load double*, double** %13
%32082 = getelementptr inbounds double, double* %32081, i64 2
%32083 = load double, double* %32082
%32084 = load double*, double** %8
%32085 = getelementptr inbounds double, double* %32084, i64 2
%32086 = load double, double* %32085
%32087 = fsub double %32083, %32086
%32088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32087, double* %32088
%32089 = load double*, double** %10
%32090 = getelementptr inbounds double, double* %32089, i64 0
%32091 = load double, double* %32090
%32092 = load double*, double** %8
%32093 = getelementptr inbounds double, double* %32092, i64 0
%32094 = load double, double* %32093
%32095 = fsub double %32091, %32094
%32096 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32095, double* %32096
%32097 = load double*, double** %10
%32098 = getelementptr inbounds double, double* %32097, i64 1
%32099 = load double, double* %32098
%32100 = load double*, double** %8
%32101 = getelementptr inbounds double, double* %32100, i64 1
%32102 = load double, double* %32101
%32103 = fsub double %32099, %32102
%32104 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32103, double* %32104
%32105 = load double*, double** %10
%32106 = getelementptr inbounds double, double* %32105, i64 2
%32107 = load double, double* %32106
%32108 = load double*, double** %8
%32109 = getelementptr inbounds double, double* %32108, i64 2
%32110 = load double, double* %32109
%32111 = fsub double %32107, %32110
%32112 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32111, double* %32112
%32113 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32114 = load double, double* %32113
%32115 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32116 = load double, double* %32115
%32117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32118 = load double, double* %32117
%32119 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32120 = load double, double* %32119
%32121 = fmul double %32118, %32120
%32122 = fneg double %32121
%32123 = call double @llvm.fmuladd.f64(double %32114, double %32116, double %32122)
%32124 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32123, double* %32124
%32125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32126 = load double, double* %32125
%32127 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32128 = load double, double* %32127
%32129 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32130 = load double, double* %32129
%32131 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32132 = load double, double* %32131
%32133 = fmul double %32130, %32132
%32134 = fneg double %32133
%32135 = call double @llvm.fmuladd.f64(double %32126, double %32128, double %32134)
%32136 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32135, double* %32136
%32137 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32138 = load double, double* %32137
%32139 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32140 = load double, double* %32139
%32141 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32142 = load double, double* %32141
%32143 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32144 = load double, double* %32143
%32145 = fmul double %32142, %32144
%32146 = fneg double %32145
%32147 = call double @llvm.fmuladd.f64(double %32138, double %32140, double %32146)
%32148 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32147, double* %32148
%32149 = load double*, double** %11
%32150 = getelementptr inbounds double, double* %32149, i64 0
%32151 = load double, double* %32150
%32152 = load double*, double** %8
%32153 = getelementptr inbounds double, double* %32152, i64 0
%32154 = load double, double* %32153
%32155 = fsub double %32151, %32154
%32156 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32155, double* %32156
%32157 = load double*, double** %11
%32158 = getelementptr inbounds double, double* %32157, i64 1
%32159 = load double, double* %32158
%32160 = load double*, double** %8
%32161 = getelementptr inbounds double, double* %32160, i64 1
%32162 = load double, double* %32161
%32163 = fsub double %32159, %32162
%32164 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32163, double* %32164
%32165 = load double*, double** %11
%32166 = getelementptr inbounds double, double* %32165, i64 2
%32167 = load double, double* %32166
%32168 = load double*, double** %8
%32169 = getelementptr inbounds double, double* %32168, i64 2
%32170 = load double, double* %32169
%32171 = fsub double %32167, %32170
%32172 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32171, double* %32172
%32173 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32174 = load double, double* %32173
%32175 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32176 = load double, double* %32175
%32177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32178 = load double, double* %32177
%32179 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32180 = load double, double* %32179
%32181 = fmul double %32178, %32180
%32182 = call double @llvm.fmuladd.f64(double %32174, double %32176, double %32181)
%32183 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32184 = load double, double* %32183
%32185 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32186 = load double, double* %32185
%32187 = call double @llvm.fmuladd.f64(double %32184, double %32186, double %32182)
%32188 = fcmp ogt double %32187, 0.000000e+00
br i1 %32188, label %32189, label %32190
32189: ; preds = %32064
store i32 0, i32* %7
br label %37464
32190: ; preds = %32064
%32191 = load double*, double** %13
%32192 = getelementptr inbounds double, double* %32191, i64 0
%32193 = load double, double* %32192
%32194 = load double*, double** %10
%32195 = getelementptr inbounds double, double* %32194, i64 0
%32196 = load double, double* %32195
%32197 = fsub double %32193, %32196
%32198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32197, double* %32198
%32199 = load double*, double** %13
%32200 = getelementptr inbounds double, double* %32199, i64 1
%32201 = load double, double* %32200
%32202 = load double*, double** %10
%32203 = getelementptr inbounds double, double* %32202, i64 1
%32204 = load double, double* %32203
%32205 = fsub double %32201, %32204
%32206 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32205, double* %32206
%32207 = load double*, double** %13
%32208 = getelementptr inbounds double, double* %32207, i64 2
%32209 = load double, double* %32208
%32210 = load double*, double** %10
%32211 = getelementptr inbounds double, double* %32210, i64 2
%32212 = load double, double* %32211
%32213 = fsub double %32209, %32212
%32214 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32213, double* %32214
%32215 = load double*, double** %9
%32216 = getelementptr inbounds double, double* %32215, i64 0
%32217 = load double, double* %32216
%32218 = load double*, double** %10
%32219 = getelementptr inbounds double, double* %32218, i64 0
%32220 = load double, double* %32219
%32221 = fsub double %32217, %32220
%32222 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32221, double* %32222
%32223 = load double*, double** %9
%32224 = getelementptr inbounds double, double* %32223, i64 1
%32225 = load double, double* %32224
%32226 = load double*, double** %10
%32227 = getelementptr inbounds double, double* %32226, i64 1
%32228 = load double, double* %32227
%32229 = fsub double %32225, %32228
%32230 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32229, double* %32230
%32231 = load double*, double** %9
%32232 = getelementptr inbounds double, double* %32231, i64 2
%32233 = load double, double* %32232
%32234 = load double*, double** %10
%32235 = getelementptr inbounds double, double* %32234, i64 2
%32236 = load double, double* %32235
%32237 = fsub double %32233, %32236
%32238 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32237, double* %32238
%32239 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32240 = load double, double* %32239
%32241 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32242 = load double, double* %32241
%32243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32244 = load double, double* %32243
%32245 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32246 = load double, double* %32245
%32247 = fmul double %32244, %32246
%32248 = fneg double %32247
%32249 = call double @llvm.fmuladd.f64(double %32240, double %32242, double %32248)
%32250 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32249, double* %32250
%32251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32252 = load double, double* %32251
%32253 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32254 = load double, double* %32253
%32255 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32256 = load double, double* %32255
%32257 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32258 = load double, double* %32257
%32259 = fmul double %32256, %32258
%32260 = fneg double %32259
%32261 = call double @llvm.fmuladd.f64(double %32252, double %32254, double %32260)
%32262 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32261, double* %32262
%32263 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32264 = load double, double* %32263
%32265 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32266 = load double, double* %32265
%32267 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32268 = load double, double* %32267
%32269 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32270 = load double, double* %32269
%32271 = fmul double %32268, %32270
%32272 = fneg double %32271
%32273 = call double @llvm.fmuladd.f64(double %32264, double %32266, double %32272)
%32274 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32273, double* %32274
%32275 = load double*, double** %12
%32276 = getelementptr inbounds double, double* %32275, i64 0
%32277 = load double, double* %32276
%32278 = load double*, double** %10
%32279 = getelementptr inbounds double, double* %32278, i64 0
%32280 = load double, double* %32279
%32281 = fsub double %32277, %32280
%32282 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32281, double* %32282
%32283 = load double*, double** %12
%32284 = getelementptr inbounds double, double* %32283, i64 1
%32285 = load double, double* %32284
%32286 = load double*, double** %10
%32287 = getelementptr inbounds double, double* %32286, i64 1
%32288 = load double, double* %32287
%32289 = fsub double %32285, %32288
%32290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32289, double* %32290
%32291 = load double*, double** %12
%32292 = getelementptr inbounds double, double* %32291, i64 2
%32293 = load double, double* %32292
%32294 = load double*, double** %10
%32295 = getelementptr inbounds double, double* %32294, i64 2
%32296 = load double, double* %32295
%32297 = fsub double %32293, %32296
%32298 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32297, double* %32298
%32299 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32300 = load double, double* %32299
%32301 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32302 = load double, double* %32301
%32303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32304 = load double, double* %32303
%32305 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32306 = load double, double* %32305
%32307 = fmul double %32304, %32306
%32308 = call double @llvm.fmuladd.f64(double %32300, double %32302, double %32307)
%32309 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32310 = load double, double* %32309
%32311 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32312 = load double, double* %32311
%32313 = call double @llvm.fmuladd.f64(double %32310, double %32312, double %32308)
%32314 = fcmp ogt double %32313, 0.000000e+00
br i1 %32314, label %32315, label %32316
32315: ; preds = %32190
store i32 0, i32* %7
br label %37464
32316: ; preds = %32190
store i32 1, i32* %7
br label %37464
32317: ; preds = %32061
%32318 = load double, double* %19
%32319 = fcmp olt double %32318, 0.000000e+00
br i1 %32319, label %32320, label %32573
32320: ; preds = %32317
%32321 = load double*, double** %12
%32322 = getelementptr inbounds double, double* %32321, i64 0
%32323 = load double, double* %32322
%32324 = load double*, double** %8
%32325 = getelementptr inbounds double, double* %32324, i64 0
%32326 = load double, double* %32325
%32327 = fsub double %32323, %32326
%32328 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32327, double* %32328
%32329 = load double*, double** %12
%32330 = getelementptr inbounds double, double* %32329, i64 1
%32331 = load double, double* %32330
%32332 = load double*, double** %8
%32333 = getelementptr inbounds double, double* %32332, i64 1
%32334 = load double, double* %32333
%32335 = fsub double %32331, %32334
%32336 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32335, double* %32336
%32337 = load double*, double** %12
%32338 = getelementptr inbounds double, double* %32337, i64 2
%32339 = load double, double* %32338
%32340 = load double*, double** %8
%32341 = getelementptr inbounds double, double* %32340, i64 2
%32342 = load double, double* %32341
%32343 = fsub double %32339, %32342
%32344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32343, double* %32344
%32345 = load double*, double** %10
%32346 = getelementptr inbounds double, double* %32345, i64 0
%32347 = load double, double* %32346
%32348 = load double*, double** %8
%32349 = getelementptr inbounds double, double* %32348, i64 0
%32350 = load double, double* %32349
%32351 = fsub double %32347, %32350
%32352 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32351, double* %32352
%32353 = load double*, double** %10
%32354 = getelementptr inbounds double, double* %32353, i64 1
%32355 = load double, double* %32354
%32356 = load double*, double** %8
%32357 = getelementptr inbounds double, double* %32356, i64 1
%32358 = load double, double* %32357
%32359 = fsub double %32355, %32358
%32360 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32359, double* %32360
%32361 = load double*, double** %10
%32362 = getelementptr inbounds double, double* %32361, i64 2
%32363 = load double, double* %32362
%32364 = load double*, double** %8
%32365 = getelementptr inbounds double, double* %32364, i64 2
%32366 = load double, double* %32365
%32367 = fsub double %32363, %32366
%32368 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32367, double* %32368
%32369 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32370 = load double, double* %32369
%32371 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32372 = load double, double* %32371
%32373 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32374 = load double, double* %32373
%32375 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32376 = load double, double* %32375
%32377 = fmul double %32374, %32376
%32378 = fneg double %32377
%32379 = call double @llvm.fmuladd.f64(double %32370, double %32372, double %32378)
%32380 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32379, double* %32380
%32381 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32382 = load double, double* %32381
%32383 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32384 = load double, double* %32383
%32385 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32386 = load double, double* %32385
%32387 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32388 = load double, double* %32387
%32389 = fmul double %32386, %32388
%32390 = fneg double %32389
%32391 = call double @llvm.fmuladd.f64(double %32382, double %32384, double %32390)
%32392 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32391, double* %32392
%32393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32394 = load double, double* %32393
%32395 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32396 = load double, double* %32395
%32397 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32398 = load double, double* %32397
%32399 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32400 = load double, double* %32399
%32401 = fmul double %32398, %32400
%32402 = fneg double %32401
%32403 = call double @llvm.fmuladd.f64(double %32394, double %32396, double %32402)
%32404 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32403, double* %32404
%32405 = load double*, double** %13
%32406 = getelementptr inbounds double, double* %32405, i64 0
%32407 = load double, double* %32406
%32408 = load double*, double** %8
%32409 = getelementptr inbounds double, double* %32408, i64 0
%32410 = load double, double* %32409
%32411 = fsub double %32407, %32410
%32412 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32411, double* %32412
%32413 = load double*, double** %13
%32414 = getelementptr inbounds double, double* %32413, i64 1
%32415 = load double, double* %32414
%32416 = load double*, double** %8
%32417 = getelementptr inbounds double, double* %32416, i64 1
%32418 = load double, double* %32417
%32419 = fsub double %32415, %32418
%32420 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32419, double* %32420
%32421 = load double*, double** %13
%32422 = getelementptr inbounds double, double* %32421, i64 2
%32423 = load double, double* %32422
%32424 = load double*, double** %8
%32425 = getelementptr inbounds double, double* %32424, i64 2
%32426 = load double, double* %32425
%32427 = fsub double %32423, %32426
%32428 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32427, double* %32428
%32429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32430 = load double, double* %32429
%32431 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32432 = load double, double* %32431
%32433 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32434 = load double, double* %32433
%32435 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32436 = load double, double* %32435
%32437 = fmul double %32434, %32436
%32438 = call double @llvm.fmuladd.f64(double %32430, double %32432, double %32437)
%32439 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32440 = load double, double* %32439
%32441 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32442 = load double, double* %32441
%32443 = call double @llvm.fmuladd.f64(double %32440, double %32442, double %32438)
%32444 = fcmp ogt double %32443, 0.000000e+00
br i1 %32444, label %32445, label %32446
32445: ; preds = %32320
store i32 0, i32* %7
br label %37464
32446: ; preds = %32320
%32447 = load double*, double** %12
%32448 = getelementptr inbounds double, double* %32447, i64 0
%32449 = load double, double* %32448
%32450 = load double*, double** %10
%32451 = getelementptr inbounds double, double* %32450, i64 0
%32452 = load double, double* %32451
%32453 = fsub double %32449, %32452
%32454 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32453, double* %32454
%32455 = load double*, double** %12
%32456 = getelementptr inbounds double, double* %32455, i64 1
%32457 = load double, double* %32456
%32458 = load double*, double** %10
%32459 = getelementptr inbounds double, double* %32458, i64 1
%32460 = load double, double* %32459
%32461 = fsub double %32457, %32460
%32462 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32461, double* %32462
%32463 = load double*, double** %12
%32464 = getelementptr inbounds double, double* %32463, i64 2
%32465 = load double, double* %32464
%32466 = load double*, double** %10
%32467 = getelementptr inbounds double, double* %32466, i64 2
%32468 = load double, double* %32467
%32469 = fsub double %32465, %32468
%32470 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32469, double* %32470
%32471 = load double*, double** %9
%32472 = getelementptr inbounds double, double* %32471, i64 0
%32473 = load double, double* %32472
%32474 = load double*, double** %10
%32475 = getelementptr inbounds double, double* %32474, i64 0
%32476 = load double, double* %32475
%32477 = fsub double %32473, %32476
%32478 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32477, double* %32478
%32479 = load double*, double** %9
%32480 = getelementptr inbounds double, double* %32479, i64 1
%32481 = load double, double* %32480
%32482 = load double*, double** %10
%32483 = getelementptr inbounds double, double* %32482, i64 1
%32484 = load double, double* %32483
%32485 = fsub double %32481, %32484
%32486 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32485, double* %32486
%32487 = load double*, double** %9
%32488 = getelementptr inbounds double, double* %32487, i64 2
%32489 = load double, double* %32488
%32490 = load double*, double** %10
%32491 = getelementptr inbounds double, double* %32490, i64 2
%32492 = load double, double* %32491
%32493 = fsub double %32489, %32492
%32494 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32493, double* %32494
%32495 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32496 = load double, double* %32495
%32497 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32498 = load double, double* %32497
%32499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32500 = load double, double* %32499
%32501 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32502 = load double, double* %32501
%32503 = fmul double %32500, %32502
%32504 = fneg double %32503
%32505 = call double @llvm.fmuladd.f64(double %32496, double %32498, double %32504)
%32506 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32505, double* %32506
%32507 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32508 = load double, double* %32507
%32509 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32510 = load double, double* %32509
%32511 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32512 = load double, double* %32511
%32513 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32514 = load double, double* %32513
%32515 = fmul double %32512, %32514
%32516 = fneg double %32515
%32517 = call double @llvm.fmuladd.f64(double %32508, double %32510, double %32516)
%32518 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32517, double* %32518
%32519 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32520 = load double, double* %32519
%32521 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32522 = load double, double* %32521
%32523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32524 = load double, double* %32523
%32525 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32526 = load double, double* %32525
%32527 = fmul double %32524, %32526
%32528 = fneg double %32527
%32529 = call double @llvm.fmuladd.f64(double %32520, double %32522, double %32528)
%32530 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32529, double* %32530
%32531 = load double*, double** %11
%32532 = getelementptr inbounds double, double* %32531, i64 0
%32533 = load double, double* %32532
%32534 = load double*, double** %10
%32535 = getelementptr inbounds double, double* %32534, i64 0
%32536 = load double, double* %32535
%32537 = fsub double %32533, %32536
%32538 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32537, double* %32538
%32539 = load double*, double** %11
%32540 = getelementptr inbounds double, double* %32539, i64 1
%32541 = load double, double* %32540
%32542 = load double*, double** %10
%32543 = getelementptr inbounds double, double* %32542, i64 1
%32544 = load double, double* %32543
%32545 = fsub double %32541, %32544
%32546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32545, double* %32546
%32547 = load double*, double** %11
%32548 = getelementptr inbounds double, double* %32547, i64 2
%32549 = load double, double* %32548
%32550 = load double*, double** %10
%32551 = getelementptr inbounds double, double* %32550, i64 2
%32552 = load double, double* %32551
%32553 = fsub double %32549, %32552
%32554 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32553, double* %32554
%32555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32556 = load double, double* %32555
%32557 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32558 = load double, double* %32557
%32559 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32560 = load double, double* %32559
%32561 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32562 = load double, double* %32561
%32563 = fmul double %32560, %32562
%32564 = call double @llvm.fmuladd.f64(double %32556, double %32558, double %32563)
%32565 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32566 = load double, double* %32565
%32567 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32568 = load double, double* %32567
%32569 = call double @llvm.fmuladd.f64(double %32566, double %32568, double %32564)
%32570 = fcmp ogt double %32569, 0.000000e+00
br i1 %32570, label %32571, label %32572
32571: ; preds = %32446
store i32 0, i32* %7
br label %37464
32572: ; preds = %32446
store i32 1, i32* %7
br label %37464
32573: ; preds = %32317
%32574 = load double*, double** %11
%32575 = getelementptr inbounds double, double* %32574, i64 0
%32576 = load double, double* %32575
%32577 = load double*, double** %9
%32578 = getelementptr inbounds double, double* %32577, i64 0
%32579 = load double, double* %32578
%32580 = fsub double %32576, %32579
%32581 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32580, double* %32581
%32582 = load double*, double** %11
%32583 = getelementptr inbounds double, double* %32582, i64 1
%32584 = load double, double* %32583
%32585 = load double*, double** %9
%32586 = getelementptr inbounds double, double* %32585, i64 1
%32587 = load double, double* %32586
%32588 = fsub double %32584, %32587
%32589 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32588, double* %32589
%32590 = load double*, double** %11
%32591 = getelementptr inbounds double, double* %32590, i64 2
%32592 = load double, double* %32591
%32593 = load double*, double** %9
%32594 = getelementptr inbounds double, double* %32593, i64 2
%32595 = load double, double* %32594
%32596 = fsub double %32592, %32595
%32597 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32596, double* %32597
%32598 = load double*, double** %10
%32599 = getelementptr inbounds double, double* %32598, i64 0
%32600 = load double, double* %32599
%32601 = load double*, double** %9
%32602 = getelementptr inbounds double, double* %32601, i64 0
%32603 = load double, double* %32602
%32604 = fsub double %32600, %32603
%32605 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32604, double* %32605
%32606 = load double*, double** %10
%32607 = getelementptr inbounds double, double* %32606, i64 1
%32608 = load double, double* %32607
%32609 = load double*, double** %9
%32610 = getelementptr inbounds double, double* %32609, i64 1
%32611 = load double, double* %32610
%32612 = fsub double %32608, %32611
%32613 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32612, double* %32613
%32614 = load double*, double** %10
%32615 = getelementptr inbounds double, double* %32614, i64 2
%32616 = load double, double* %32615
%32617 = load double*, double** %9
%32618 = getelementptr inbounds double, double* %32617, i64 2
%32619 = load double, double* %32618
%32620 = fsub double %32616, %32619
%32621 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32620, double* %32621
%32622 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32623 = load double, double* %32622
%32624 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32625 = load double, double* %32624
%32626 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32627 = load double, double* %32626
%32628 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32629 = load double, double* %32628
%32630 = fmul double %32627, %32629
%32631 = fneg double %32630
%32632 = call double @llvm.fmuladd.f64(double %32623, double %32625, double %32631)
%32633 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32632, double* %32633
%32634 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32635 = load double, double* %32634
%32636 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32637 = load double, double* %32636
%32638 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32639 = load double, double* %32638
%32640 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32641 = load double, double* %32640
%32642 = fmul double %32639, %32641
%32643 = fneg double %32642
%32644 = call double @llvm.fmuladd.f64(double %32635, double %32637, double %32643)
%32645 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32644, double* %32645
%32646 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32647 = load double, double* %32646
%32648 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32649 = load double, double* %32648
%32650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32651 = load double, double* %32650
%32652 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32653 = load double, double* %32652
%32654 = fmul double %32651, %32653
%32655 = fneg double %32654
%32656 = call double @llvm.fmuladd.f64(double %32647, double %32649, double %32655)
%32657 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32656, double* %32657
%32658 = load double*, double** %12
%32659 = getelementptr inbounds double, double* %32658, i64 0
%32660 = load double, double* %32659
%32661 = load double*, double** %9
%32662 = getelementptr inbounds double, double* %32661, i64 0
%32663 = load double, double* %32662
%32664 = fsub double %32660, %32663
%32665 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32664, double* %32665
%32666 = load double*, double** %12
%32667 = getelementptr inbounds double, double* %32666, i64 1
%32668 = load double, double* %32667
%32669 = load double*, double** %9
%32670 = getelementptr inbounds double, double* %32669, i64 1
%32671 = load double, double* %32670
%32672 = fsub double %32668, %32671
%32673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32672, double* %32673
%32674 = load double*, double** %12
%32675 = getelementptr inbounds double, double* %32674, i64 2
%32676 = load double, double* %32675
%32677 = load double*, double** %9
%32678 = getelementptr inbounds double, double* %32677, i64 2
%32679 = load double, double* %32678
%32680 = fsub double %32676, %32679
%32681 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32680, double* %32681
%32682 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32683 = load double, double* %32682
%32684 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32685 = load double, double* %32684
%32686 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32687 = load double, double* %32686
%32688 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32689 = load double, double* %32688
%32690 = fmul double %32687, %32689
%32691 = call double @llvm.fmuladd.f64(double %32683, double %32685, double %32690)
%32692 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32693 = load double, double* %32692
%32694 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32695 = load double, double* %32694
%32696 = call double @llvm.fmuladd.f64(double %32693, double %32695, double %32691)
%32697 = fcmp ogt double %32696, 0.000000e+00
br i1 %32697, label %32698, label %32699
32698: ; preds = %32573
store i32 0, i32* %7
br label %37464
32699: ; preds = %32573
%32700 = load double*, double** %11
%32701 = getelementptr inbounds double, double* %32700, i64 0
%32702 = load double, double* %32701
%32703 = load double*, double** %10
%32704 = getelementptr inbounds double, double* %32703, i64 0
%32705 = load double, double* %32704
%32706 = fsub double %32702, %32705
%32707 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32706, double* %32707
%32708 = load double*, double** %11
%32709 = getelementptr inbounds double, double* %32708, i64 1
%32710 = load double, double* %32709
%32711 = load double*, double** %10
%32712 = getelementptr inbounds double, double* %32711, i64 1
%32713 = load double, double* %32712
%32714 = fsub double %32710, %32713
%32715 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32714, double* %32715
%32716 = load double*, double** %11
%32717 = getelementptr inbounds double, double* %32716, i64 2
%32718 = load double, double* %32717
%32719 = load double*, double** %10
%32720 = getelementptr inbounds double, double* %32719, i64 2
%32721 = load double, double* %32720
%32722 = fsub double %32718, %32721
%32723 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32722, double* %32723
%32724 = load double*, double** %8
%32725 = getelementptr inbounds double, double* %32724, i64 0
%32726 = load double, double* %32725
%32727 = load double*, double** %10
%32728 = getelementptr inbounds double, double* %32727, i64 0
%32729 = load double, double* %32728
%32730 = fsub double %32726, %32729
%32731 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32730, double* %32731
%32732 = load double*, double** %8
%32733 = getelementptr inbounds double, double* %32732, i64 1
%32734 = load double, double* %32733
%32735 = load double*, double** %10
%32736 = getelementptr inbounds double, double* %32735, i64 1
%32737 = load double, double* %32736
%32738 = fsub double %32734, %32737
%32739 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32738, double* %32739
%32740 = load double*, double** %8
%32741 = getelementptr inbounds double, double* %32740, i64 2
%32742 = load double, double* %32741
%32743 = load double*, double** %10
%32744 = getelementptr inbounds double, double* %32743, i64 2
%32745 = load double, double* %32744
%32746 = fsub double %32742, %32745
%32747 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32746, double* %32747
%32748 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32749 = load double, double* %32748
%32750 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32751 = load double, double* %32750
%32752 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32753 = load double, double* %32752
%32754 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32755 = load double, double* %32754
%32756 = fmul double %32753, %32755
%32757 = fneg double %32756
%32758 = call double @llvm.fmuladd.f64(double %32749, double %32751, double %32757)
%32759 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32758, double* %32759
%32760 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32761 = load double, double* %32760
%32762 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32763 = load double, double* %32762
%32764 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32765 = load double, double* %32764
%32766 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32767 = load double, double* %32766
%32768 = fmul double %32765, %32767
%32769 = fneg double %32768
%32770 = call double @llvm.fmuladd.f64(double %32761, double %32763, double %32769)
%32771 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32770, double* %32771
%32772 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32773 = load double, double* %32772
%32774 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32775 = load double, double* %32774
%32776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32777 = load double, double* %32776
%32778 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32779 = load double, double* %32778
%32780 = fmul double %32777, %32779
%32781 = fneg double %32780
%32782 = call double @llvm.fmuladd.f64(double %32773, double %32775, double %32781)
%32783 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32782, double* %32783
%32784 = load double*, double** %13
%32785 = getelementptr inbounds double, double* %32784, i64 0
%32786 = load double, double* %32785
%32787 = load double*, double** %10
%32788 = getelementptr inbounds double, double* %32787, i64 0
%32789 = load double, double* %32788
%32790 = fsub double %32786, %32789
%32791 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32790, double* %32791
%32792 = load double*, double** %13
%32793 = getelementptr inbounds double, double* %32792, i64 1
%32794 = load double, double* %32793
%32795 = load double*, double** %10
%32796 = getelementptr inbounds double, double* %32795, i64 1
%32797 = load double, double* %32796
%32798 = fsub double %32794, %32797
%32799 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32798, double* %32799
%32800 = load double*, double** %13
%32801 = getelementptr inbounds double, double* %32800, i64 2
%32802 = load double, double* %32801
%32803 = load double*, double** %10
%32804 = getelementptr inbounds double, double* %32803, i64 2
%32805 = load double, double* %32804
%32806 = fsub double %32802, %32805
%32807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32806, double* %32807
%32808 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32809 = load double, double* %32808
%32810 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32811 = load double, double* %32810
%32812 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32813 = load double, double* %32812
%32814 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32815 = load double, double* %32814
%32816 = fmul double %32813, %32815
%32817 = call double @llvm.fmuladd.f64(double %32809, double %32811, double %32816)
%32818 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32819 = load double, double* %32818
%32820 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32821 = load double, double* %32820
%32822 = call double @llvm.fmuladd.f64(double %32819, double %32821, double %32817)
%32823 = fcmp ogt double %32822, 0.000000e+00
br i1 %32823, label %32824, label %32825
32824: ; preds = %32699
store i32 0, i32* %7
br label %37464
32825: ; preds = %32699
store i32 1, i32* %7
br label %37464
32826: ; preds = %32058
%32827 = load double, double* %18
%32828 = fcmp olt double %32827, 0.000000e+00
br i1 %32828, label %32829, label %33338
32829: ; preds = %32826
%32830 = load double, double* %19
%32831 = fcmp oge double %32830, 0.000000e+00
br i1 %32831, label %32832, label %33085
32832: ; preds = %32829
%32833 = load double*, double** %12
%32834 = getelementptr inbounds double, double* %32833, i64 0
%32835 = load double, double* %32834
%32836 = load double*, double** %9
%32837 = getelementptr inbounds double, double* %32836, i64 0
%32838 = load double, double* %32837
%32839 = fsub double %32835, %32838
%32840 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32839, double* %32840
%32841 = load double*, double** %12
%32842 = getelementptr inbounds double, double* %32841, i64 1
%32843 = load double, double* %32842
%32844 = load double*, double** %9
%32845 = getelementptr inbounds double, double* %32844, i64 1
%32846 = load double, double* %32845
%32847 = fsub double %32843, %32846
%32848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32847, double* %32848
%32849 = load double*, double** %12
%32850 = getelementptr inbounds double, double* %32849, i64 2
%32851 = load double, double* %32850
%32852 = load double*, double** %9
%32853 = getelementptr inbounds double, double* %32852, i64 2
%32854 = load double, double* %32853
%32855 = fsub double %32851, %32854
%32856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32855, double* %32856
%32857 = load double*, double** %10
%32858 = getelementptr inbounds double, double* %32857, i64 0
%32859 = load double, double* %32858
%32860 = load double*, double** %9
%32861 = getelementptr inbounds double, double* %32860, i64 0
%32862 = load double, double* %32861
%32863 = fsub double %32859, %32862
%32864 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32863, double* %32864
%32865 = load double*, double** %10
%32866 = getelementptr inbounds double, double* %32865, i64 1
%32867 = load double, double* %32866
%32868 = load double*, double** %9
%32869 = getelementptr inbounds double, double* %32868, i64 1
%32870 = load double, double* %32869
%32871 = fsub double %32867, %32870
%32872 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32871, double* %32872
%32873 = load double*, double** %10
%32874 = getelementptr inbounds double, double* %32873, i64 2
%32875 = load double, double* %32874
%32876 = load double*, double** %9
%32877 = getelementptr inbounds double, double* %32876, i64 2
%32878 = load double, double* %32877
%32879 = fsub double %32875, %32878
%32880 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %32879, double* %32880
%32881 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32882 = load double, double* %32881
%32883 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32884 = load double, double* %32883
%32885 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32886 = load double, double* %32885
%32887 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32888 = load double, double* %32887
%32889 = fmul double %32886, %32888
%32890 = fneg double %32889
%32891 = call double @llvm.fmuladd.f64(double %32882, double %32884, double %32890)
%32892 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %32891, double* %32892
%32893 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32894 = load double, double* %32893
%32895 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32896 = load double, double* %32895
%32897 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32898 = load double, double* %32897
%32899 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%32900 = load double, double* %32899
%32901 = fmul double %32898, %32900
%32902 = fneg double %32901
%32903 = call double @llvm.fmuladd.f64(double %32894, double %32896, double %32902)
%32904 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %32903, double* %32904
%32905 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32906 = load double, double* %32905
%32907 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%32908 = load double, double* %32907
%32909 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32910 = load double, double* %32909
%32911 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%32912 = load double, double* %32911
%32913 = fmul double %32910, %32912
%32914 = fneg double %32913
%32915 = call double @llvm.fmuladd.f64(double %32906, double %32908, double %32914)
%32916 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %32915, double* %32916
%32917 = load double*, double** %13
%32918 = getelementptr inbounds double, double* %32917, i64 0
%32919 = load double, double* %32918
%32920 = load double*, double** %9
%32921 = getelementptr inbounds double, double* %32920, i64 0
%32922 = load double, double* %32921
%32923 = fsub double %32919, %32922
%32924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32923, double* %32924
%32925 = load double*, double** %13
%32926 = getelementptr inbounds double, double* %32925, i64 1
%32927 = load double, double* %32926
%32928 = load double*, double** %9
%32929 = getelementptr inbounds double, double* %32928, i64 1
%32930 = load double, double* %32929
%32931 = fsub double %32927, %32930
%32932 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32931, double* %32932
%32933 = load double*, double** %13
%32934 = getelementptr inbounds double, double* %32933, i64 2
%32935 = load double, double* %32934
%32936 = load double*, double** %9
%32937 = getelementptr inbounds double, double* %32936, i64 2
%32938 = load double, double* %32937
%32939 = fsub double %32935, %32938
%32940 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32939, double* %32940
%32941 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%32942 = load double, double* %32941
%32943 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%32944 = load double, double* %32943
%32945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%32946 = load double, double* %32945
%32947 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%32948 = load double, double* %32947
%32949 = fmul double %32946, %32948
%32950 = call double @llvm.fmuladd.f64(double %32942, double %32944, double %32949)
%32951 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%32952 = load double, double* %32951
%32953 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%32954 = load double, double* %32953
%32955 = call double @llvm.fmuladd.f64(double %32952, double %32954, double %32950)
%32956 = fcmp ogt double %32955, 0.000000e+00
br i1 %32956, label %32957, label %32958
32957: ; preds = %32832
store i32 0, i32* %7
br label %37464
32958: ; preds = %32832
%32959 = load double*, double** %12
%32960 = getelementptr inbounds double, double* %32959, i64 0
%32961 = load double, double* %32960
%32962 = load double*, double** %10
%32963 = getelementptr inbounds double, double* %32962, i64 0
%32964 = load double, double* %32963
%32965 = fsub double %32961, %32964
%32966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %32965, double* %32966
%32967 = load double*, double** %12
%32968 = getelementptr inbounds double, double* %32967, i64 1
%32969 = load double, double* %32968
%32970 = load double*, double** %10
%32971 = getelementptr inbounds double, double* %32970, i64 1
%32972 = load double, double* %32971
%32973 = fsub double %32969, %32972
%32974 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %32973, double* %32974
%32975 = load double*, double** %12
%32976 = getelementptr inbounds double, double* %32975, i64 2
%32977 = load double, double* %32976
%32978 = load double*, double** %10
%32979 = getelementptr inbounds double, double* %32978, i64 2
%32980 = load double, double* %32979
%32981 = fsub double %32977, %32980
%32982 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %32981, double* %32982
%32983 = load double*, double** %8
%32984 = getelementptr inbounds double, double* %32983, i64 0
%32985 = load double, double* %32984
%32986 = load double*, double** %10
%32987 = getelementptr inbounds double, double* %32986, i64 0
%32988 = load double, double* %32987
%32989 = fsub double %32985, %32988
%32990 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %32989, double* %32990
%32991 = load double*, double** %8
%32992 = getelementptr inbounds double, double* %32991, i64 1
%32993 = load double, double* %32992
%32994 = load double*, double** %10
%32995 = getelementptr inbounds double, double* %32994, i64 1
%32996 = load double, double* %32995
%32997 = fsub double %32993, %32996
%32998 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %32997, double* %32998
%32999 = load double*, double** %8
%33000 = getelementptr inbounds double, double* %32999, i64 2
%33001 = load double, double* %33000
%33002 = load double*, double** %10
%33003 = getelementptr inbounds double, double* %33002, i64 2
%33004 = load double, double* %33003
%33005 = fsub double %33001, %33004
%33006 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33005, double* %33006
%33007 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33008 = load double, double* %33007
%33009 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33010 = load double, double* %33009
%33011 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33012 = load double, double* %33011
%33013 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33014 = load double, double* %33013
%33015 = fmul double %33012, %33014
%33016 = fneg double %33015
%33017 = call double @llvm.fmuladd.f64(double %33008, double %33010, double %33016)
%33018 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33017, double* %33018
%33019 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33020 = load double, double* %33019
%33021 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33022 = load double, double* %33021
%33023 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33024 = load double, double* %33023
%33025 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33026 = load double, double* %33025
%33027 = fmul double %33024, %33026
%33028 = fneg double %33027
%33029 = call double @llvm.fmuladd.f64(double %33020, double %33022, double %33028)
%33030 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33029, double* %33030
%33031 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33032 = load double, double* %33031
%33033 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33034 = load double, double* %33033
%33035 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33036 = load double, double* %33035
%33037 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33038 = load double, double* %33037
%33039 = fmul double %33036, %33038
%33040 = fneg double %33039
%33041 = call double @llvm.fmuladd.f64(double %33032, double %33034, double %33040)
%33042 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33041, double* %33042
%33043 = load double*, double** %11
%33044 = getelementptr inbounds double, double* %33043, i64 0
%33045 = load double, double* %33044
%33046 = load double*, double** %10
%33047 = getelementptr inbounds double, double* %33046, i64 0
%33048 = load double, double* %33047
%33049 = fsub double %33045, %33048
%33050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33049, double* %33050
%33051 = load double*, double** %11
%33052 = getelementptr inbounds double, double* %33051, i64 1
%33053 = load double, double* %33052
%33054 = load double*, double** %10
%33055 = getelementptr inbounds double, double* %33054, i64 1
%33056 = load double, double* %33055
%33057 = fsub double %33053, %33056
%33058 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33057, double* %33058
%33059 = load double*, double** %11
%33060 = getelementptr inbounds double, double* %33059, i64 2
%33061 = load double, double* %33060
%33062 = load double*, double** %10
%33063 = getelementptr inbounds double, double* %33062, i64 2
%33064 = load double, double* %33063
%33065 = fsub double %33061, %33064
%33066 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33065, double* %33066
%33067 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33068 = load double, double* %33067
%33069 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33070 = load double, double* %33069
%33071 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33072 = load double, double* %33071
%33073 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33074 = load double, double* %33073
%33075 = fmul double %33072, %33074
%33076 = call double @llvm.fmuladd.f64(double %33068, double %33070, double %33075)
%33077 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33078 = load double, double* %33077
%33079 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33080 = load double, double* %33079
%33081 = call double @llvm.fmuladd.f64(double %33078, double %33080, double %33076)
%33082 = fcmp ogt double %33081, 0.000000e+00
br i1 %33082, label %33083, label %33084
33083: ; preds = %32958
store i32 0, i32* %7
br label %37464
33084: ; preds = %32958
store i32 1, i32* %7
br label %37464
33085: ; preds = %32829
%33086 = load double*, double** %11
%33087 = getelementptr inbounds double, double* %33086, i64 0
%33088 = load double, double* %33087
%33089 = load double*, double** %8
%33090 = getelementptr inbounds double, double* %33089, i64 0
%33091 = load double, double* %33090
%33092 = fsub double %33088, %33091
%33093 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33092, double* %33093
%33094 = load double*, double** %11
%33095 = getelementptr inbounds double, double* %33094, i64 1
%33096 = load double, double* %33095
%33097 = load double*, double** %8
%33098 = getelementptr inbounds double, double* %33097, i64 1
%33099 = load double, double* %33098
%33100 = fsub double %33096, %33099
%33101 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33100, double* %33101
%33102 = load double*, double** %11
%33103 = getelementptr inbounds double, double* %33102, i64 2
%33104 = load double, double* %33103
%33105 = load double*, double** %8
%33106 = getelementptr inbounds double, double* %33105, i64 2
%33107 = load double, double* %33106
%33108 = fsub double %33104, %33107
%33109 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33108, double* %33109
%33110 = load double*, double** %10
%33111 = getelementptr inbounds double, double* %33110, i64 0
%33112 = load double, double* %33111
%33113 = load double*, double** %8
%33114 = getelementptr inbounds double, double* %33113, i64 0
%33115 = load double, double* %33114
%33116 = fsub double %33112, %33115
%33117 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33116, double* %33117
%33118 = load double*, double** %10
%33119 = getelementptr inbounds double, double* %33118, i64 1
%33120 = load double, double* %33119
%33121 = load double*, double** %8
%33122 = getelementptr inbounds double, double* %33121, i64 1
%33123 = load double, double* %33122
%33124 = fsub double %33120, %33123
%33125 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33124, double* %33125
%33126 = load double*, double** %10
%33127 = getelementptr inbounds double, double* %33126, i64 2
%33128 = load double, double* %33127
%33129 = load double*, double** %8
%33130 = getelementptr inbounds double, double* %33129, i64 2
%33131 = load double, double* %33130
%33132 = fsub double %33128, %33131
%33133 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33132, double* %33133
%33134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33135 = load double, double* %33134
%33136 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33137 = load double, double* %33136
%33138 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33139 = load double, double* %33138
%33140 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33141 = load double, double* %33140
%33142 = fmul double %33139, %33141
%33143 = fneg double %33142
%33144 = call double @llvm.fmuladd.f64(double %33135, double %33137, double %33143)
%33145 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33144, double* %33145
%33146 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33147 = load double, double* %33146
%33148 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33149 = load double, double* %33148
%33150 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33151 = load double, double* %33150
%33152 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33153 = load double, double* %33152
%33154 = fmul double %33151, %33153
%33155 = fneg double %33154
%33156 = call double @llvm.fmuladd.f64(double %33147, double %33149, double %33155)
%33157 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33156, double* %33157
%33158 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33159 = load double, double* %33158
%33160 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33161 = load double, double* %33160
%33162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33163 = load double, double* %33162
%33164 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33165 = load double, double* %33164
%33166 = fmul double %33163, %33165
%33167 = fneg double %33166
%33168 = call double @llvm.fmuladd.f64(double %33159, double %33161, double %33167)
%33169 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33168, double* %33169
%33170 = load double*, double** %12
%33171 = getelementptr inbounds double, double* %33170, i64 0
%33172 = load double, double* %33171
%33173 = load double*, double** %8
%33174 = getelementptr inbounds double, double* %33173, i64 0
%33175 = load double, double* %33174
%33176 = fsub double %33172, %33175
%33177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33176, double* %33177
%33178 = load double*, double** %12
%33179 = getelementptr inbounds double, double* %33178, i64 1
%33180 = load double, double* %33179
%33181 = load double*, double** %8
%33182 = getelementptr inbounds double, double* %33181, i64 1
%33183 = load double, double* %33182
%33184 = fsub double %33180, %33183
%33185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33184, double* %33185
%33186 = load double*, double** %12
%33187 = getelementptr inbounds double, double* %33186, i64 2
%33188 = load double, double* %33187
%33189 = load double*, double** %8
%33190 = getelementptr inbounds double, double* %33189, i64 2
%33191 = load double, double* %33190
%33192 = fsub double %33188, %33191
%33193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33192, double* %33193
%33194 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33195 = load double, double* %33194
%33196 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33197 = load double, double* %33196
%33198 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33199 = load double, double* %33198
%33200 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33201 = load double, double* %33200
%33202 = fmul double %33199, %33201
%33203 = call double @llvm.fmuladd.f64(double %33195, double %33197, double %33202)
%33204 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33205 = load double, double* %33204
%33206 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33207 = load double, double* %33206
%33208 = call double @llvm.fmuladd.f64(double %33205, double %33207, double %33203)
%33209 = fcmp ogt double %33208, 0.000000e+00
br i1 %33209, label %33210, label %33211
33210: ; preds = %33085
store i32 0, i32* %7
br label %37464
33211: ; preds = %33085
%33212 = load double*, double** %11
%33213 = getelementptr inbounds double, double* %33212, i64 0
%33214 = load double, double* %33213
%33215 = load double*, double** %10
%33216 = getelementptr inbounds double, double* %33215, i64 0
%33217 = load double, double* %33216
%33218 = fsub double %33214, %33217
%33219 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33218, double* %33219
%33220 = load double*, double** %11
%33221 = getelementptr inbounds double, double* %33220, i64 1
%33222 = load double, double* %33221
%33223 = load double*, double** %10
%33224 = getelementptr inbounds double, double* %33223, i64 1
%33225 = load double, double* %33224
%33226 = fsub double %33222, %33225
%33227 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33226, double* %33227
%33228 = load double*, double** %11
%33229 = getelementptr inbounds double, double* %33228, i64 2
%33230 = load double, double* %33229
%33231 = load double*, double** %10
%33232 = getelementptr inbounds double, double* %33231, i64 2
%33233 = load double, double* %33232
%33234 = fsub double %33230, %33233
%33235 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33234, double* %33235
%33236 = load double*, double** %9
%33237 = getelementptr inbounds double, double* %33236, i64 0
%33238 = load double, double* %33237
%33239 = load double*, double** %10
%33240 = getelementptr inbounds double, double* %33239, i64 0
%33241 = load double, double* %33240
%33242 = fsub double %33238, %33241
%33243 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33242, double* %33243
%33244 = load double*, double** %9
%33245 = getelementptr inbounds double, double* %33244, i64 1
%33246 = load double, double* %33245
%33247 = load double*, double** %10
%33248 = getelementptr inbounds double, double* %33247, i64 1
%33249 = load double, double* %33248
%33250 = fsub double %33246, %33249
%33251 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33250, double* %33251
%33252 = load double*, double** %9
%33253 = getelementptr inbounds double, double* %33252, i64 2
%33254 = load double, double* %33253
%33255 = load double*, double** %10
%33256 = getelementptr inbounds double, double* %33255, i64 2
%33257 = load double, double* %33256
%33258 = fsub double %33254, %33257
%33259 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33258, double* %33259
%33260 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33261 = load double, double* %33260
%33262 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33263 = load double, double* %33262
%33264 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33265 = load double, double* %33264
%33266 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33267 = load double, double* %33266
%33268 = fmul double %33265, %33267
%33269 = fneg double %33268
%33270 = call double @llvm.fmuladd.f64(double %33261, double %33263, double %33269)
%33271 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33270, double* %33271
%33272 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33273 = load double, double* %33272
%33274 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33275 = load double, double* %33274
%33276 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33277 = load double, double* %33276
%33278 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33279 = load double, double* %33278
%33280 = fmul double %33277, %33279
%33281 = fneg double %33280
%33282 = call double @llvm.fmuladd.f64(double %33273, double %33275, double %33281)
%33283 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33282, double* %33283
%33284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33285 = load double, double* %33284
%33286 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33287 = load double, double* %33286
%33288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33289 = load double, double* %33288
%33290 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33291 = load double, double* %33290
%33292 = fmul double %33289, %33291
%33293 = fneg double %33292
%33294 = call double @llvm.fmuladd.f64(double %33285, double %33287, double %33293)
%33295 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33294, double* %33295
%33296 = load double*, double** %13
%33297 = getelementptr inbounds double, double* %33296, i64 0
%33298 = load double, double* %33297
%33299 = load double*, double** %10
%33300 = getelementptr inbounds double, double* %33299, i64 0
%33301 = load double, double* %33300
%33302 = fsub double %33298, %33301
%33303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33302, double* %33303
%33304 = load double*, double** %13
%33305 = getelementptr inbounds double, double* %33304, i64 1
%33306 = load double, double* %33305
%33307 = load double*, double** %10
%33308 = getelementptr inbounds double, double* %33307, i64 1
%33309 = load double, double* %33308
%33310 = fsub double %33306, %33309
%33311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33310, double* %33311
%33312 = load double*, double** %13
%33313 = getelementptr inbounds double, double* %33312, i64 2
%33314 = load double, double* %33313
%33315 = load double*, double** %10
%33316 = getelementptr inbounds double, double* %33315, i64 2
%33317 = load double, double* %33316
%33318 = fsub double %33314, %33317
%33319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33318, double* %33319
%33320 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33321 = load double, double* %33320
%33322 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33323 = load double, double* %33322
%33324 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33325 = load double, double* %33324
%33326 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33327 = load double, double* %33326
%33328 = fmul double %33325, %33327
%33329 = call double @llvm.fmuladd.f64(double %33321, double %33323, double %33328)
%33330 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33331 = load double, double* %33330
%33332 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33333 = load double, double* %33332
%33334 = call double @llvm.fmuladd.f64(double %33331, double %33333, double %33329)
%33335 = fcmp ogt double %33334, 0.000000e+00
br i1 %33335, label %33336, label %33337
33336: ; preds = %33211
store i32 0, i32* %7
br label %37464
33337: ; preds = %33211
store i32 1, i32* %7
br label %37464
33338: ; preds = %32826
%33339 = load double, double* %18
%33340 = fcmp ogt double %33339, 0.000000e+00
br i1 %33340, label %33341, label %33850
33341: ; preds = %33338
%33342 = load double, double* %19
%33343 = fcmp ogt double %33342, 0.000000e+00
br i1 %33343, label %33344, label %33597
33344: ; preds = %33341
%33345 = load double*, double** %11
%33346 = getelementptr inbounds double, double* %33345, i64 0
%33347 = load double, double* %33346
%33348 = load double*, double** %9
%33349 = getelementptr inbounds double, double* %33348, i64 0
%33350 = load double, double* %33349
%33351 = fsub double %33347, %33350
%33352 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33351, double* %33352
%33353 = load double*, double** %11
%33354 = getelementptr inbounds double, double* %33353, i64 1
%33355 = load double, double* %33354
%33356 = load double*, double** %9
%33357 = getelementptr inbounds double, double* %33356, i64 1
%33358 = load double, double* %33357
%33359 = fsub double %33355, %33358
%33360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33359, double* %33360
%33361 = load double*, double** %11
%33362 = getelementptr inbounds double, double* %33361, i64 2
%33363 = load double, double* %33362
%33364 = load double*, double** %9
%33365 = getelementptr inbounds double, double* %33364, i64 2
%33366 = load double, double* %33365
%33367 = fsub double %33363, %33366
%33368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33367, double* %33368
%33369 = load double*, double** %10
%33370 = getelementptr inbounds double, double* %33369, i64 0
%33371 = load double, double* %33370
%33372 = load double*, double** %9
%33373 = getelementptr inbounds double, double* %33372, i64 0
%33374 = load double, double* %33373
%33375 = fsub double %33371, %33374
%33376 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33375, double* %33376
%33377 = load double*, double** %10
%33378 = getelementptr inbounds double, double* %33377, i64 1
%33379 = load double, double* %33378
%33380 = load double*, double** %9
%33381 = getelementptr inbounds double, double* %33380, i64 1
%33382 = load double, double* %33381
%33383 = fsub double %33379, %33382
%33384 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33383, double* %33384
%33385 = load double*, double** %10
%33386 = getelementptr inbounds double, double* %33385, i64 2
%33387 = load double, double* %33386
%33388 = load double*, double** %9
%33389 = getelementptr inbounds double, double* %33388, i64 2
%33390 = load double, double* %33389
%33391 = fsub double %33387, %33390
%33392 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33391, double* %33392
%33393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33394 = load double, double* %33393
%33395 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33396 = load double, double* %33395
%33397 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33398 = load double, double* %33397
%33399 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33400 = load double, double* %33399
%33401 = fmul double %33398, %33400
%33402 = fneg double %33401
%33403 = call double @llvm.fmuladd.f64(double %33394, double %33396, double %33402)
%33404 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33403, double* %33404
%33405 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33406 = load double, double* %33405
%33407 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33408 = load double, double* %33407
%33409 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33410 = load double, double* %33409
%33411 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33412 = load double, double* %33411
%33413 = fmul double %33410, %33412
%33414 = fneg double %33413
%33415 = call double @llvm.fmuladd.f64(double %33406, double %33408, double %33414)
%33416 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33415, double* %33416
%33417 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33418 = load double, double* %33417
%33419 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33420 = load double, double* %33419
%33421 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33422 = load double, double* %33421
%33423 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33424 = load double, double* %33423
%33425 = fmul double %33422, %33424
%33426 = fneg double %33425
%33427 = call double @llvm.fmuladd.f64(double %33418, double %33420, double %33426)
%33428 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33427, double* %33428
%33429 = load double*, double** %12
%33430 = getelementptr inbounds double, double* %33429, i64 0
%33431 = load double, double* %33430
%33432 = load double*, double** %9
%33433 = getelementptr inbounds double, double* %33432, i64 0
%33434 = load double, double* %33433
%33435 = fsub double %33431, %33434
%33436 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33435, double* %33436
%33437 = load double*, double** %12
%33438 = getelementptr inbounds double, double* %33437, i64 1
%33439 = load double, double* %33438
%33440 = load double*, double** %9
%33441 = getelementptr inbounds double, double* %33440, i64 1
%33442 = load double, double* %33441
%33443 = fsub double %33439, %33442
%33444 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33443, double* %33444
%33445 = load double*, double** %12
%33446 = getelementptr inbounds double, double* %33445, i64 2
%33447 = load double, double* %33446
%33448 = load double*, double** %9
%33449 = getelementptr inbounds double, double* %33448, i64 2
%33450 = load double, double* %33449
%33451 = fsub double %33447, %33450
%33452 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33451, double* %33452
%33453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33454 = load double, double* %33453
%33455 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33456 = load double, double* %33455
%33457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33458 = load double, double* %33457
%33459 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33460 = load double, double* %33459
%33461 = fmul double %33458, %33460
%33462 = call double @llvm.fmuladd.f64(double %33454, double %33456, double %33461)
%33463 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33464 = load double, double* %33463
%33465 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33466 = load double, double* %33465
%33467 = call double @llvm.fmuladd.f64(double %33464, double %33466, double %33462)
%33468 = fcmp ogt double %33467, 0.000000e+00
br i1 %33468, label %33469, label %33470
33469: ; preds = %33344
store i32 0, i32* %7
br label %37464
33470: ; preds = %33344
%33471 = load double*, double** %11
%33472 = getelementptr inbounds double, double* %33471, i64 0
%33473 = load double, double* %33472
%33474 = load double*, double** %10
%33475 = getelementptr inbounds double, double* %33474, i64 0
%33476 = load double, double* %33475
%33477 = fsub double %33473, %33476
%33478 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33477, double* %33478
%33479 = load double*, double** %11
%33480 = getelementptr inbounds double, double* %33479, i64 1
%33481 = load double, double* %33480
%33482 = load double*, double** %10
%33483 = getelementptr inbounds double, double* %33482, i64 1
%33484 = load double, double* %33483
%33485 = fsub double %33481, %33484
%33486 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33485, double* %33486
%33487 = load double*, double** %11
%33488 = getelementptr inbounds double, double* %33487, i64 2
%33489 = load double, double* %33488
%33490 = load double*, double** %10
%33491 = getelementptr inbounds double, double* %33490, i64 2
%33492 = load double, double* %33491
%33493 = fsub double %33489, %33492
%33494 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33493, double* %33494
%33495 = load double*, double** %8
%33496 = getelementptr inbounds double, double* %33495, i64 0
%33497 = load double, double* %33496
%33498 = load double*, double** %10
%33499 = getelementptr inbounds double, double* %33498, i64 0
%33500 = load double, double* %33499
%33501 = fsub double %33497, %33500
%33502 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33501, double* %33502
%33503 = load double*, double** %8
%33504 = getelementptr inbounds double, double* %33503, i64 1
%33505 = load double, double* %33504
%33506 = load double*, double** %10
%33507 = getelementptr inbounds double, double* %33506, i64 1
%33508 = load double, double* %33507
%33509 = fsub double %33505, %33508
%33510 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33509, double* %33510
%33511 = load double*, double** %8
%33512 = getelementptr inbounds double, double* %33511, i64 2
%33513 = load double, double* %33512
%33514 = load double*, double** %10
%33515 = getelementptr inbounds double, double* %33514, i64 2
%33516 = load double, double* %33515
%33517 = fsub double %33513, %33516
%33518 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33517, double* %33518
%33519 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33520 = load double, double* %33519
%33521 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33522 = load double, double* %33521
%33523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33524 = load double, double* %33523
%33525 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33526 = load double, double* %33525
%33527 = fmul double %33524, %33526
%33528 = fneg double %33527
%33529 = call double @llvm.fmuladd.f64(double %33520, double %33522, double %33528)
%33530 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33529, double* %33530
%33531 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33532 = load double, double* %33531
%33533 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33534 = load double, double* %33533
%33535 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33536 = load double, double* %33535
%33537 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33538 = load double, double* %33537
%33539 = fmul double %33536, %33538
%33540 = fneg double %33539
%33541 = call double @llvm.fmuladd.f64(double %33532, double %33534, double %33540)
%33542 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33541, double* %33542
%33543 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33544 = load double, double* %33543
%33545 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33546 = load double, double* %33545
%33547 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33548 = load double, double* %33547
%33549 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33550 = load double, double* %33549
%33551 = fmul double %33548, %33550
%33552 = fneg double %33551
%33553 = call double @llvm.fmuladd.f64(double %33544, double %33546, double %33552)
%33554 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33553, double* %33554
%33555 = load double*, double** %13
%33556 = getelementptr inbounds double, double* %33555, i64 0
%33557 = load double, double* %33556
%33558 = load double*, double** %10
%33559 = getelementptr inbounds double, double* %33558, i64 0
%33560 = load double, double* %33559
%33561 = fsub double %33557, %33560
%33562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33561, double* %33562
%33563 = load double*, double** %13
%33564 = getelementptr inbounds double, double* %33563, i64 1
%33565 = load double, double* %33564
%33566 = load double*, double** %10
%33567 = getelementptr inbounds double, double* %33566, i64 1
%33568 = load double, double* %33567
%33569 = fsub double %33565, %33568
%33570 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33569, double* %33570
%33571 = load double*, double** %13
%33572 = getelementptr inbounds double, double* %33571, i64 2
%33573 = load double, double* %33572
%33574 = load double*, double** %10
%33575 = getelementptr inbounds double, double* %33574, i64 2
%33576 = load double, double* %33575
%33577 = fsub double %33573, %33576
%33578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33577, double* %33578
%33579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33580 = load double, double* %33579
%33581 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33582 = load double, double* %33581
%33583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33584 = load double, double* %33583
%33585 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33586 = load double, double* %33585
%33587 = fmul double %33584, %33586
%33588 = call double @llvm.fmuladd.f64(double %33580, double %33582, double %33587)
%33589 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33590 = load double, double* %33589
%33591 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33592 = load double, double* %33591
%33593 = call double @llvm.fmuladd.f64(double %33590, double %33592, double %33588)
%33594 = fcmp ogt double %33593, 0.000000e+00
br i1 %33594, label %33595, label %33596
33595: ; preds = %33470
store i32 0, i32* %7
br label %37464
33596: ; preds = %33470
store i32 1, i32* %7
br label %37464
33597: ; preds = %33341
%33598 = load double*, double** %12
%33599 = getelementptr inbounds double, double* %33598, i64 0
%33600 = load double, double* %33599
%33601 = load double*, double** %8
%33602 = getelementptr inbounds double, double* %33601, i64 0
%33603 = load double, double* %33602
%33604 = fsub double %33600, %33603
%33605 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33604, double* %33605
%33606 = load double*, double** %12
%33607 = getelementptr inbounds double, double* %33606, i64 1
%33608 = load double, double* %33607
%33609 = load double*, double** %8
%33610 = getelementptr inbounds double, double* %33609, i64 1
%33611 = load double, double* %33610
%33612 = fsub double %33608, %33611
%33613 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33612, double* %33613
%33614 = load double*, double** %12
%33615 = getelementptr inbounds double, double* %33614, i64 2
%33616 = load double, double* %33615
%33617 = load double*, double** %8
%33618 = getelementptr inbounds double, double* %33617, i64 2
%33619 = load double, double* %33618
%33620 = fsub double %33616, %33619
%33621 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33620, double* %33621
%33622 = load double*, double** %10
%33623 = getelementptr inbounds double, double* %33622, i64 0
%33624 = load double, double* %33623
%33625 = load double*, double** %8
%33626 = getelementptr inbounds double, double* %33625, i64 0
%33627 = load double, double* %33626
%33628 = fsub double %33624, %33627
%33629 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33628, double* %33629
%33630 = load double*, double** %10
%33631 = getelementptr inbounds double, double* %33630, i64 1
%33632 = load double, double* %33631
%33633 = load double*, double** %8
%33634 = getelementptr inbounds double, double* %33633, i64 1
%33635 = load double, double* %33634
%33636 = fsub double %33632, %33635
%33637 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33636, double* %33637
%33638 = load double*, double** %10
%33639 = getelementptr inbounds double, double* %33638, i64 2
%33640 = load double, double* %33639
%33641 = load double*, double** %8
%33642 = getelementptr inbounds double, double* %33641, i64 2
%33643 = load double, double* %33642
%33644 = fsub double %33640, %33643
%33645 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33644, double* %33645
%33646 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33647 = load double, double* %33646
%33648 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33649 = load double, double* %33648
%33650 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33651 = load double, double* %33650
%33652 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33653 = load double, double* %33652
%33654 = fmul double %33651, %33653
%33655 = fneg double %33654
%33656 = call double @llvm.fmuladd.f64(double %33647, double %33649, double %33655)
%33657 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33656, double* %33657
%33658 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33659 = load double, double* %33658
%33660 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33661 = load double, double* %33660
%33662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33663 = load double, double* %33662
%33664 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33665 = load double, double* %33664
%33666 = fmul double %33663, %33665
%33667 = fneg double %33666
%33668 = call double @llvm.fmuladd.f64(double %33659, double %33661, double %33667)
%33669 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33668, double* %33669
%33670 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33671 = load double, double* %33670
%33672 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33673 = load double, double* %33672
%33674 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33675 = load double, double* %33674
%33676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33677 = load double, double* %33676
%33678 = fmul double %33675, %33677
%33679 = fneg double %33678
%33680 = call double @llvm.fmuladd.f64(double %33671, double %33673, double %33679)
%33681 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33680, double* %33681
%33682 = load double*, double** %13
%33683 = getelementptr inbounds double, double* %33682, i64 0
%33684 = load double, double* %33683
%33685 = load double*, double** %8
%33686 = getelementptr inbounds double, double* %33685, i64 0
%33687 = load double, double* %33686
%33688 = fsub double %33684, %33687
%33689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33688, double* %33689
%33690 = load double*, double** %13
%33691 = getelementptr inbounds double, double* %33690, i64 1
%33692 = load double, double* %33691
%33693 = load double*, double** %8
%33694 = getelementptr inbounds double, double* %33693, i64 1
%33695 = load double, double* %33694
%33696 = fsub double %33692, %33695
%33697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33696, double* %33697
%33698 = load double*, double** %13
%33699 = getelementptr inbounds double, double* %33698, i64 2
%33700 = load double, double* %33699
%33701 = load double*, double** %8
%33702 = getelementptr inbounds double, double* %33701, i64 2
%33703 = load double, double* %33702
%33704 = fsub double %33700, %33703
%33705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33704, double* %33705
%33706 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33707 = load double, double* %33706
%33708 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33709 = load double, double* %33708
%33710 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33711 = load double, double* %33710
%33712 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33713 = load double, double* %33712
%33714 = fmul double %33711, %33713
%33715 = call double @llvm.fmuladd.f64(double %33707, double %33709, double %33714)
%33716 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33717 = load double, double* %33716
%33718 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33719 = load double, double* %33718
%33720 = call double @llvm.fmuladd.f64(double %33717, double %33719, double %33715)
%33721 = fcmp ogt double %33720, 0.000000e+00
br i1 %33721, label %33722, label %33723
33722: ; preds = %33597
store i32 0, i32* %7
br label %37464
33723: ; preds = %33597
%33724 = load double*, double** %12
%33725 = getelementptr inbounds double, double* %33724, i64 0
%33726 = load double, double* %33725
%33727 = load double*, double** %10
%33728 = getelementptr inbounds double, double* %33727, i64 0
%33729 = load double, double* %33728
%33730 = fsub double %33726, %33729
%33731 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33730, double* %33731
%33732 = load double*, double** %12
%33733 = getelementptr inbounds double, double* %33732, i64 1
%33734 = load double, double* %33733
%33735 = load double*, double** %10
%33736 = getelementptr inbounds double, double* %33735, i64 1
%33737 = load double, double* %33736
%33738 = fsub double %33734, %33737
%33739 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33738, double* %33739
%33740 = load double*, double** %12
%33741 = getelementptr inbounds double, double* %33740, i64 2
%33742 = load double, double* %33741
%33743 = load double*, double** %10
%33744 = getelementptr inbounds double, double* %33743, i64 2
%33745 = load double, double* %33744
%33746 = fsub double %33742, %33745
%33747 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33746, double* %33747
%33748 = load double*, double** %9
%33749 = getelementptr inbounds double, double* %33748, i64 0
%33750 = load double, double* %33749
%33751 = load double*, double** %10
%33752 = getelementptr inbounds double, double* %33751, i64 0
%33753 = load double, double* %33752
%33754 = fsub double %33750, %33753
%33755 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33754, double* %33755
%33756 = load double*, double** %9
%33757 = getelementptr inbounds double, double* %33756, i64 1
%33758 = load double, double* %33757
%33759 = load double*, double** %10
%33760 = getelementptr inbounds double, double* %33759, i64 1
%33761 = load double, double* %33760
%33762 = fsub double %33758, %33761
%33763 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33762, double* %33763
%33764 = load double*, double** %9
%33765 = getelementptr inbounds double, double* %33764, i64 2
%33766 = load double, double* %33765
%33767 = load double*, double** %10
%33768 = getelementptr inbounds double, double* %33767, i64 2
%33769 = load double, double* %33768
%33770 = fsub double %33766, %33769
%33771 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33770, double* %33771
%33772 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33773 = load double, double* %33772
%33774 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33775 = load double, double* %33774
%33776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33777 = load double, double* %33776
%33778 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33779 = load double, double* %33778
%33780 = fmul double %33777, %33779
%33781 = fneg double %33780
%33782 = call double @llvm.fmuladd.f64(double %33773, double %33775, double %33781)
%33783 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33782, double* %33783
%33784 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33785 = load double, double* %33784
%33786 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33787 = load double, double* %33786
%33788 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33789 = load double, double* %33788
%33790 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33791 = load double, double* %33790
%33792 = fmul double %33789, %33791
%33793 = fneg double %33792
%33794 = call double @llvm.fmuladd.f64(double %33785, double %33787, double %33793)
%33795 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33794, double* %33795
%33796 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33797 = load double, double* %33796
%33798 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33799 = load double, double* %33798
%33800 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33801 = load double, double* %33800
%33802 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33803 = load double, double* %33802
%33804 = fmul double %33801, %33803
%33805 = fneg double %33804
%33806 = call double @llvm.fmuladd.f64(double %33797, double %33799, double %33805)
%33807 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33806, double* %33807
%33808 = load double*, double** %11
%33809 = getelementptr inbounds double, double* %33808, i64 0
%33810 = load double, double* %33809
%33811 = load double*, double** %10
%33812 = getelementptr inbounds double, double* %33811, i64 0
%33813 = load double, double* %33812
%33814 = fsub double %33810, %33813
%33815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33814, double* %33815
%33816 = load double*, double** %11
%33817 = getelementptr inbounds double, double* %33816, i64 1
%33818 = load double, double* %33817
%33819 = load double*, double** %10
%33820 = getelementptr inbounds double, double* %33819, i64 1
%33821 = load double, double* %33820
%33822 = fsub double %33818, %33821
%33823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33822, double* %33823
%33824 = load double*, double** %11
%33825 = getelementptr inbounds double, double* %33824, i64 2
%33826 = load double, double* %33825
%33827 = load double*, double** %10
%33828 = getelementptr inbounds double, double* %33827, i64 2
%33829 = load double, double* %33828
%33830 = fsub double %33826, %33829
%33831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33830, double* %33831
%33832 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33833 = load double, double* %33832
%33834 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33835 = load double, double* %33834
%33836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33837 = load double, double* %33836
%33838 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33839 = load double, double* %33838
%33840 = fmul double %33837, %33839
%33841 = call double @llvm.fmuladd.f64(double %33833, double %33835, double %33840)
%33842 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33843 = load double, double* %33842
%33844 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33845 = load double, double* %33844
%33846 = call double @llvm.fmuladd.f64(double %33843, double %33845, double %33841)
%33847 = fcmp ogt double %33846, 0.000000e+00
br i1 %33847, label %33848, label %33849
33848: ; preds = %33723
store i32 0, i32* %7
br label %37464
33849: ; preds = %33723
store i32 1, i32* %7
br label %37464
33850: ; preds = %33338
%33851 = load double, double* %19
%33852 = fcmp ogt double %33851, 0.000000e+00
br i1 %33852, label %33853, label %34106
33853: ; preds = %33850
%33854 = load double*, double** %13
%33855 = getelementptr inbounds double, double* %33854, i64 0
%33856 = load double, double* %33855
%33857 = load double*, double** %8
%33858 = getelementptr inbounds double, double* %33857, i64 0
%33859 = load double, double* %33858
%33860 = fsub double %33856, %33859
%33861 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33860, double* %33861
%33862 = load double*, double** %13
%33863 = getelementptr inbounds double, double* %33862, i64 1
%33864 = load double, double* %33863
%33865 = load double*, double** %8
%33866 = getelementptr inbounds double, double* %33865, i64 1
%33867 = load double, double* %33866
%33868 = fsub double %33864, %33867
%33869 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33868, double* %33869
%33870 = load double*, double** %13
%33871 = getelementptr inbounds double, double* %33870, i64 2
%33872 = load double, double* %33871
%33873 = load double*, double** %8
%33874 = getelementptr inbounds double, double* %33873, i64 2
%33875 = load double, double* %33874
%33876 = fsub double %33872, %33875
%33877 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33876, double* %33877
%33878 = load double*, double** %10
%33879 = getelementptr inbounds double, double* %33878, i64 0
%33880 = load double, double* %33879
%33881 = load double*, double** %8
%33882 = getelementptr inbounds double, double* %33881, i64 0
%33883 = load double, double* %33882
%33884 = fsub double %33880, %33883
%33885 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %33884, double* %33885
%33886 = load double*, double** %10
%33887 = getelementptr inbounds double, double* %33886, i64 1
%33888 = load double, double* %33887
%33889 = load double*, double** %8
%33890 = getelementptr inbounds double, double* %33889, i64 1
%33891 = load double, double* %33890
%33892 = fsub double %33888, %33891
%33893 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %33892, double* %33893
%33894 = load double*, double** %10
%33895 = getelementptr inbounds double, double* %33894, i64 2
%33896 = load double, double* %33895
%33897 = load double*, double** %8
%33898 = getelementptr inbounds double, double* %33897, i64 2
%33899 = load double, double* %33898
%33900 = fsub double %33896, %33899
%33901 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %33900, double* %33901
%33902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33903 = load double, double* %33902
%33904 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33905 = load double, double* %33904
%33906 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33907 = load double, double* %33906
%33908 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33909 = load double, double* %33908
%33910 = fmul double %33907, %33909
%33911 = fneg double %33910
%33912 = call double @llvm.fmuladd.f64(double %33903, double %33905, double %33911)
%33913 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %33912, double* %33913
%33914 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33915 = load double, double* %33914
%33916 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33917 = load double, double* %33916
%33918 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33919 = load double, double* %33918
%33920 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%33921 = load double, double* %33920
%33922 = fmul double %33919, %33921
%33923 = fneg double %33922
%33924 = call double @llvm.fmuladd.f64(double %33915, double %33917, double %33923)
%33925 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %33924, double* %33925
%33926 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33927 = load double, double* %33926
%33928 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%33929 = load double, double* %33928
%33930 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33931 = load double, double* %33930
%33932 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%33933 = load double, double* %33932
%33934 = fmul double %33931, %33933
%33935 = fneg double %33934
%33936 = call double @llvm.fmuladd.f64(double %33927, double %33929, double %33935)
%33937 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %33936, double* %33937
%33938 = load double*, double** %11
%33939 = getelementptr inbounds double, double* %33938, i64 0
%33940 = load double, double* %33939
%33941 = load double*, double** %8
%33942 = getelementptr inbounds double, double* %33941, i64 0
%33943 = load double, double* %33942
%33944 = fsub double %33940, %33943
%33945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33944, double* %33945
%33946 = load double*, double** %11
%33947 = getelementptr inbounds double, double* %33946, i64 1
%33948 = load double, double* %33947
%33949 = load double*, double** %8
%33950 = getelementptr inbounds double, double* %33949, i64 1
%33951 = load double, double* %33950
%33952 = fsub double %33948, %33951
%33953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33952, double* %33953
%33954 = load double*, double** %11
%33955 = getelementptr inbounds double, double* %33954, i64 2
%33956 = load double, double* %33955
%33957 = load double*, double** %8
%33958 = getelementptr inbounds double, double* %33957, i64 2
%33959 = load double, double* %33958
%33960 = fsub double %33956, %33959
%33961 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %33960, double* %33961
%33962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%33963 = load double, double* %33962
%33964 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%33965 = load double, double* %33964
%33966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%33967 = load double, double* %33966
%33968 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%33969 = load double, double* %33968
%33970 = fmul double %33967, %33969
%33971 = call double @llvm.fmuladd.f64(double %33963, double %33965, double %33970)
%33972 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%33973 = load double, double* %33972
%33974 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%33975 = load double, double* %33974
%33976 = call double @llvm.fmuladd.f64(double %33973, double %33975, double %33971)
%33977 = fcmp ogt double %33976, 0.000000e+00
br i1 %33977, label %33978, label %33979
33978: ; preds = %33853
store i32 0, i32* %7
br label %37464
33979: ; preds = %33853
%33980 = load double*, double** %13
%33981 = getelementptr inbounds double, double* %33980, i64 0
%33982 = load double, double* %33981
%33983 = load double*, double** %10
%33984 = getelementptr inbounds double, double* %33983, i64 0
%33985 = load double, double* %33984
%33986 = fsub double %33982, %33985
%33987 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %33986, double* %33987
%33988 = load double*, double** %13
%33989 = getelementptr inbounds double, double* %33988, i64 1
%33990 = load double, double* %33989
%33991 = load double*, double** %10
%33992 = getelementptr inbounds double, double* %33991, i64 1
%33993 = load double, double* %33992
%33994 = fsub double %33990, %33993
%33995 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %33994, double* %33995
%33996 = load double*, double** %13
%33997 = getelementptr inbounds double, double* %33996, i64 2
%33998 = load double, double* %33997
%33999 = load double*, double** %10
%34000 = getelementptr inbounds double, double* %33999, i64 2
%34001 = load double, double* %34000
%34002 = fsub double %33998, %34001
%34003 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34002, double* %34003
%34004 = load double*, double** %9
%34005 = getelementptr inbounds double, double* %34004, i64 0
%34006 = load double, double* %34005
%34007 = load double*, double** %10
%34008 = getelementptr inbounds double, double* %34007, i64 0
%34009 = load double, double* %34008
%34010 = fsub double %34006, %34009
%34011 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34010, double* %34011
%34012 = load double*, double** %9
%34013 = getelementptr inbounds double, double* %34012, i64 1
%34014 = load double, double* %34013
%34015 = load double*, double** %10
%34016 = getelementptr inbounds double, double* %34015, i64 1
%34017 = load double, double* %34016
%34018 = fsub double %34014, %34017
%34019 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34018, double* %34019
%34020 = load double*, double** %9
%34021 = getelementptr inbounds double, double* %34020, i64 2
%34022 = load double, double* %34021
%34023 = load double*, double** %10
%34024 = getelementptr inbounds double, double* %34023, i64 2
%34025 = load double, double* %34024
%34026 = fsub double %34022, %34025
%34027 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34026, double* %34027
%34028 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34029 = load double, double* %34028
%34030 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34031 = load double, double* %34030
%34032 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34033 = load double, double* %34032
%34034 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34035 = load double, double* %34034
%34036 = fmul double %34033, %34035
%34037 = fneg double %34036
%34038 = call double @llvm.fmuladd.f64(double %34029, double %34031, double %34037)
%34039 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34038, double* %34039
%34040 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34041 = load double, double* %34040
%34042 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34043 = load double, double* %34042
%34044 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34045 = load double, double* %34044
%34046 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34047 = load double, double* %34046
%34048 = fmul double %34045, %34047
%34049 = fneg double %34048
%34050 = call double @llvm.fmuladd.f64(double %34041, double %34043, double %34049)
%34051 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34050, double* %34051
%34052 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34053 = load double, double* %34052
%34054 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34055 = load double, double* %34054
%34056 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34057 = load double, double* %34056
%34058 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34059 = load double, double* %34058
%34060 = fmul double %34057, %34059
%34061 = fneg double %34060
%34062 = call double @llvm.fmuladd.f64(double %34053, double %34055, double %34061)
%34063 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34062, double* %34063
%34064 = load double*, double** %12
%34065 = getelementptr inbounds double, double* %34064, i64 0
%34066 = load double, double* %34065
%34067 = load double*, double** %10
%34068 = getelementptr inbounds double, double* %34067, i64 0
%34069 = load double, double* %34068
%34070 = fsub double %34066, %34069
%34071 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34070, double* %34071
%34072 = load double*, double** %12
%34073 = getelementptr inbounds double, double* %34072, i64 1
%34074 = load double, double* %34073
%34075 = load double*, double** %10
%34076 = getelementptr inbounds double, double* %34075, i64 1
%34077 = load double, double* %34076
%34078 = fsub double %34074, %34077
%34079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34078, double* %34079
%34080 = load double*, double** %12
%34081 = getelementptr inbounds double, double* %34080, i64 2
%34082 = load double, double* %34081
%34083 = load double*, double** %10
%34084 = getelementptr inbounds double, double* %34083, i64 2
%34085 = load double, double* %34084
%34086 = fsub double %34082, %34085
%34087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34086, double* %34087
%34088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34089 = load double, double* %34088
%34090 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34091 = load double, double* %34090
%34092 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34093 = load double, double* %34092
%34094 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34095 = load double, double* %34094
%34096 = fmul double %34093, %34095
%34097 = call double @llvm.fmuladd.f64(double %34089, double %34091, double %34096)
%34098 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34099 = load double, double* %34098
%34100 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34101 = load double, double* %34100
%34102 = call double @llvm.fmuladd.f64(double %34099, double %34101, double %34097)
%34103 = fcmp ogt double %34102, 0.000000e+00
br i1 %34103, label %34104, label %34105
34104: ; preds = %33979
store i32 0, i32* %7
br label %37464
34105: ; preds = %33979
store i32 1, i32* %7
br label %37464
34106: ; preds = %33850
%34107 = load double, double* %19
%34108 = fcmp olt double %34107, 0.000000e+00
br i1 %34108, label %34109, label %34362
34109: ; preds = %34106
%34110 = load double*, double** %13
%34111 = getelementptr inbounds double, double* %34110, i64 0
%34112 = load double, double* %34111
%34113 = load double*, double** %9
%34114 = getelementptr inbounds double, double* %34113, i64 0
%34115 = load double, double* %34114
%34116 = fsub double %34112, %34115
%34117 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34116, double* %34117
%34118 = load double*, double** %13
%34119 = getelementptr inbounds double, double* %34118, i64 1
%34120 = load double, double* %34119
%34121 = load double*, double** %9
%34122 = getelementptr inbounds double, double* %34121, i64 1
%34123 = load double, double* %34122
%34124 = fsub double %34120, %34123
%34125 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34124, double* %34125
%34126 = load double*, double** %13
%34127 = getelementptr inbounds double, double* %34126, i64 2
%34128 = load double, double* %34127
%34129 = load double*, double** %9
%34130 = getelementptr inbounds double, double* %34129, i64 2
%34131 = load double, double* %34130
%34132 = fsub double %34128, %34131
%34133 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34132, double* %34133
%34134 = load double*, double** %10
%34135 = getelementptr inbounds double, double* %34134, i64 0
%34136 = load double, double* %34135
%34137 = load double*, double** %9
%34138 = getelementptr inbounds double, double* %34137, i64 0
%34139 = load double, double* %34138
%34140 = fsub double %34136, %34139
%34141 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34140, double* %34141
%34142 = load double*, double** %10
%34143 = getelementptr inbounds double, double* %34142, i64 1
%34144 = load double, double* %34143
%34145 = load double*, double** %9
%34146 = getelementptr inbounds double, double* %34145, i64 1
%34147 = load double, double* %34146
%34148 = fsub double %34144, %34147
%34149 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34148, double* %34149
%34150 = load double*, double** %10
%34151 = getelementptr inbounds double, double* %34150, i64 2
%34152 = load double, double* %34151
%34153 = load double*, double** %9
%34154 = getelementptr inbounds double, double* %34153, i64 2
%34155 = load double, double* %34154
%34156 = fsub double %34152, %34155
%34157 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34156, double* %34157
%34158 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34159 = load double, double* %34158
%34160 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34161 = load double, double* %34160
%34162 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34163 = load double, double* %34162
%34164 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34165 = load double, double* %34164
%34166 = fmul double %34163, %34165
%34167 = fneg double %34166
%34168 = call double @llvm.fmuladd.f64(double %34159, double %34161, double %34167)
%34169 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34168, double* %34169
%34170 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34171 = load double, double* %34170
%34172 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34173 = load double, double* %34172
%34174 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34175 = load double, double* %34174
%34176 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34177 = load double, double* %34176
%34178 = fmul double %34175, %34177
%34179 = fneg double %34178
%34180 = call double @llvm.fmuladd.f64(double %34171, double %34173, double %34179)
%34181 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34180, double* %34181
%34182 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34183 = load double, double* %34182
%34184 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34185 = load double, double* %34184
%34186 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34187 = load double, double* %34186
%34188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34189 = load double, double* %34188
%34190 = fmul double %34187, %34189
%34191 = fneg double %34190
%34192 = call double @llvm.fmuladd.f64(double %34183, double %34185, double %34191)
%34193 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34192, double* %34193
%34194 = load double*, double** %11
%34195 = getelementptr inbounds double, double* %34194, i64 0
%34196 = load double, double* %34195
%34197 = load double*, double** %9
%34198 = getelementptr inbounds double, double* %34197, i64 0
%34199 = load double, double* %34198
%34200 = fsub double %34196, %34199
%34201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34200, double* %34201
%34202 = load double*, double** %11
%34203 = getelementptr inbounds double, double* %34202, i64 1
%34204 = load double, double* %34203
%34205 = load double*, double** %9
%34206 = getelementptr inbounds double, double* %34205, i64 1
%34207 = load double, double* %34206
%34208 = fsub double %34204, %34207
%34209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34208, double* %34209
%34210 = load double*, double** %11
%34211 = getelementptr inbounds double, double* %34210, i64 2
%34212 = load double, double* %34211
%34213 = load double*, double** %9
%34214 = getelementptr inbounds double, double* %34213, i64 2
%34215 = load double, double* %34214
%34216 = fsub double %34212, %34215
%34217 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34216, double* %34217
%34218 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34219 = load double, double* %34218
%34220 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34221 = load double, double* %34220
%34222 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34223 = load double, double* %34222
%34224 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34225 = load double, double* %34224
%34226 = fmul double %34223, %34225
%34227 = call double @llvm.fmuladd.f64(double %34219, double %34221, double %34226)
%34228 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34229 = load double, double* %34228
%34230 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34231 = load double, double* %34230
%34232 = call double @llvm.fmuladd.f64(double %34229, double %34231, double %34227)
%34233 = fcmp ogt double %34232, 0.000000e+00
br i1 %34233, label %34234, label %34235
34234: ; preds = %34109
store i32 0, i32* %7
br label %37464
34235: ; preds = %34109
%34236 = load double*, double** %13
%34237 = getelementptr inbounds double, double* %34236, i64 0
%34238 = load double, double* %34237
%34239 = load double*, double** %10
%34240 = getelementptr inbounds double, double* %34239, i64 0
%34241 = load double, double* %34240
%34242 = fsub double %34238, %34241
%34243 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34242, double* %34243
%34244 = load double*, double** %13
%34245 = getelementptr inbounds double, double* %34244, i64 1
%34246 = load double, double* %34245
%34247 = load double*, double** %10
%34248 = getelementptr inbounds double, double* %34247, i64 1
%34249 = load double, double* %34248
%34250 = fsub double %34246, %34249
%34251 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34250, double* %34251
%34252 = load double*, double** %13
%34253 = getelementptr inbounds double, double* %34252, i64 2
%34254 = load double, double* %34253
%34255 = load double*, double** %10
%34256 = getelementptr inbounds double, double* %34255, i64 2
%34257 = load double, double* %34256
%34258 = fsub double %34254, %34257
%34259 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34258, double* %34259
%34260 = load double*, double** %8
%34261 = getelementptr inbounds double, double* %34260, i64 0
%34262 = load double, double* %34261
%34263 = load double*, double** %10
%34264 = getelementptr inbounds double, double* %34263, i64 0
%34265 = load double, double* %34264
%34266 = fsub double %34262, %34265
%34267 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34266, double* %34267
%34268 = load double*, double** %8
%34269 = getelementptr inbounds double, double* %34268, i64 1
%34270 = load double, double* %34269
%34271 = load double*, double** %10
%34272 = getelementptr inbounds double, double* %34271, i64 1
%34273 = load double, double* %34272
%34274 = fsub double %34270, %34273
%34275 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34274, double* %34275
%34276 = load double*, double** %8
%34277 = getelementptr inbounds double, double* %34276, i64 2
%34278 = load double, double* %34277
%34279 = load double*, double** %10
%34280 = getelementptr inbounds double, double* %34279, i64 2
%34281 = load double, double* %34280
%34282 = fsub double %34278, %34281
%34283 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34282, double* %34283
%34284 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34285 = load double, double* %34284
%34286 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34287 = load double, double* %34286
%34288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34289 = load double, double* %34288
%34290 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34291 = load double, double* %34290
%34292 = fmul double %34289, %34291
%34293 = fneg double %34292
%34294 = call double @llvm.fmuladd.f64(double %34285, double %34287, double %34293)
%34295 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34294, double* %34295
%34296 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34297 = load double, double* %34296
%34298 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34299 = load double, double* %34298
%34300 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34301 = load double, double* %34300
%34302 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34303 = load double, double* %34302
%34304 = fmul double %34301, %34303
%34305 = fneg double %34304
%34306 = call double @llvm.fmuladd.f64(double %34297, double %34299, double %34305)
%34307 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34306, double* %34307
%34308 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34309 = load double, double* %34308
%34310 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34311 = load double, double* %34310
%34312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34313 = load double, double* %34312
%34314 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34315 = load double, double* %34314
%34316 = fmul double %34313, %34315
%34317 = fneg double %34316
%34318 = call double @llvm.fmuladd.f64(double %34309, double %34311, double %34317)
%34319 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34318, double* %34319
%34320 = load double*, double** %12
%34321 = getelementptr inbounds double, double* %34320, i64 0
%34322 = load double, double* %34321
%34323 = load double*, double** %10
%34324 = getelementptr inbounds double, double* %34323, i64 0
%34325 = load double, double* %34324
%34326 = fsub double %34322, %34325
%34327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34326, double* %34327
%34328 = load double*, double** %12
%34329 = getelementptr inbounds double, double* %34328, i64 1
%34330 = load double, double* %34329
%34331 = load double*, double** %10
%34332 = getelementptr inbounds double, double* %34331, i64 1
%34333 = load double, double* %34332
%34334 = fsub double %34330, %34333
%34335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34334, double* %34335
%34336 = load double*, double** %12
%34337 = getelementptr inbounds double, double* %34336, i64 2
%34338 = load double, double* %34337
%34339 = load double*, double** %10
%34340 = getelementptr inbounds double, double* %34339, i64 2
%34341 = load double, double* %34340
%34342 = fsub double %34338, %34341
%34343 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34342, double* %34343
%34344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34345 = load double, double* %34344
%34346 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34347 = load double, double* %34346
%34348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34349 = load double, double* %34348
%34350 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34351 = load double, double* %34350
%34352 = fmul double %34349, %34351
%34353 = call double @llvm.fmuladd.f64(double %34345, double %34347, double %34352)
%34354 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34355 = load double, double* %34354
%34356 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34357 = load double, double* %34356
%34358 = call double @llvm.fmuladd.f64(double %34355, double %34357, double %34353)
%34359 = fcmp ogt double %34358, 0.000000e+00
br i1 %34359, label %34360, label %34361
34360: ; preds = %34235
store i32 0, i32* %7
br label %37464
34361: ; preds = %34235
store i32 1, i32* %7
br label %37464
34362: ; preds = %34106
%34363 = load double*, double** %10
%34364 = load double*, double** %8
%34365 = load double*, double** %9
%34366 = load double*, double** %11
%34367 = load double*, double** %12
%34368 = load double*, double** %13
%34369 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34370 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %34363, double* %34364, double* %34365, double* %34366, double* %34367, double* %34368, double* %34369)
store i32 %34370, i32* %7
br label %37464
34371: ; preds = %31287
%34372 = load double, double* %16
%34373 = fcmp olt double %34372, 0.000000e+00
br i1 %34373, label %34374, label %37455
34374: ; preds = %34371
%34375 = load double, double* %17
%34376 = fcmp ogt double %34375, 0.000000e+00
br i1 %34376, label %34377, label %35142
34377: ; preds = %34374
%34378 = load double, double* %19
%34379 = fcmp ogt double %34378, 0.000000e+00
br i1 %34379, label %34380, label %34633
34380: ; preds = %34377
%34381 = load double*, double** %12
%34382 = getelementptr inbounds double, double* %34381, i64 0
%34383 = load double, double* %34382
%34384 = load double*, double** %9
%34385 = getelementptr inbounds double, double* %34384, i64 0
%34386 = load double, double* %34385
%34387 = fsub double %34383, %34386
%34388 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34387, double* %34388
%34389 = load double*, double** %12
%34390 = getelementptr inbounds double, double* %34389, i64 1
%34391 = load double, double* %34390
%34392 = load double*, double** %9
%34393 = getelementptr inbounds double, double* %34392, i64 1
%34394 = load double, double* %34393
%34395 = fsub double %34391, %34394
%34396 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34395, double* %34396
%34397 = load double*, double** %12
%34398 = getelementptr inbounds double, double* %34397, i64 2
%34399 = load double, double* %34398
%34400 = load double*, double** %9
%34401 = getelementptr inbounds double, double* %34400, i64 2
%34402 = load double, double* %34401
%34403 = fsub double %34399, %34402
%34404 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34403, double* %34404
%34405 = load double*, double** %10
%34406 = getelementptr inbounds double, double* %34405, i64 0
%34407 = load double, double* %34406
%34408 = load double*, double** %9
%34409 = getelementptr inbounds double, double* %34408, i64 0
%34410 = load double, double* %34409
%34411 = fsub double %34407, %34410
%34412 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34411, double* %34412
%34413 = load double*, double** %10
%34414 = getelementptr inbounds double, double* %34413, i64 1
%34415 = load double, double* %34414
%34416 = load double*, double** %9
%34417 = getelementptr inbounds double, double* %34416, i64 1
%34418 = load double, double* %34417
%34419 = fsub double %34415, %34418
%34420 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34419, double* %34420
%34421 = load double*, double** %10
%34422 = getelementptr inbounds double, double* %34421, i64 2
%34423 = load double, double* %34422
%34424 = load double*, double** %9
%34425 = getelementptr inbounds double, double* %34424, i64 2
%34426 = load double, double* %34425
%34427 = fsub double %34423, %34426
%34428 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34427, double* %34428
%34429 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34430 = load double, double* %34429
%34431 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34432 = load double, double* %34431
%34433 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34434 = load double, double* %34433
%34435 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34436 = load double, double* %34435
%34437 = fmul double %34434, %34436
%34438 = fneg double %34437
%34439 = call double @llvm.fmuladd.f64(double %34430, double %34432, double %34438)
%34440 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34439, double* %34440
%34441 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34442 = load double, double* %34441
%34443 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34444 = load double, double* %34443
%34445 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34446 = load double, double* %34445
%34447 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34448 = load double, double* %34447
%34449 = fmul double %34446, %34448
%34450 = fneg double %34449
%34451 = call double @llvm.fmuladd.f64(double %34442, double %34444, double %34450)
%34452 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34451, double* %34452
%34453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34454 = load double, double* %34453
%34455 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34456 = load double, double* %34455
%34457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34458 = load double, double* %34457
%34459 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34460 = load double, double* %34459
%34461 = fmul double %34458, %34460
%34462 = fneg double %34461
%34463 = call double @llvm.fmuladd.f64(double %34454, double %34456, double %34462)
%34464 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34463, double* %34464
%34465 = load double*, double** %11
%34466 = getelementptr inbounds double, double* %34465, i64 0
%34467 = load double, double* %34466
%34468 = load double*, double** %9
%34469 = getelementptr inbounds double, double* %34468, i64 0
%34470 = load double, double* %34469
%34471 = fsub double %34467, %34470
%34472 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34471, double* %34472
%34473 = load double*, double** %11
%34474 = getelementptr inbounds double, double* %34473, i64 1
%34475 = load double, double* %34474
%34476 = load double*, double** %9
%34477 = getelementptr inbounds double, double* %34476, i64 1
%34478 = load double, double* %34477
%34479 = fsub double %34475, %34478
%34480 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34479, double* %34480
%34481 = load double*, double** %11
%34482 = getelementptr inbounds double, double* %34481, i64 2
%34483 = load double, double* %34482
%34484 = load double*, double** %9
%34485 = getelementptr inbounds double, double* %34484, i64 2
%34486 = load double, double* %34485
%34487 = fsub double %34483, %34486
%34488 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34487, double* %34488
%34489 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34490 = load double, double* %34489
%34491 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34492 = load double, double* %34491
%34493 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34494 = load double, double* %34493
%34495 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34496 = load double, double* %34495
%34497 = fmul double %34494, %34496
%34498 = call double @llvm.fmuladd.f64(double %34490, double %34492, double %34497)
%34499 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34500 = load double, double* %34499
%34501 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34502 = load double, double* %34501
%34503 = call double @llvm.fmuladd.f64(double %34500, double %34502, double %34498)
%34504 = fcmp ogt double %34503, 0.000000e+00
br i1 %34504, label %34505, label %34506
34505: ; preds = %34380
store i32 0, i32* %7
br label %37464
34506: ; preds = %34380
%34507 = load double*, double** %12
%34508 = getelementptr inbounds double, double* %34507, i64 0
%34509 = load double, double* %34508
%34510 = load double*, double** %10
%34511 = getelementptr inbounds double, double* %34510, i64 0
%34512 = load double, double* %34511
%34513 = fsub double %34509, %34512
%34514 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34513, double* %34514
%34515 = load double*, double** %12
%34516 = getelementptr inbounds double, double* %34515, i64 1
%34517 = load double, double* %34516
%34518 = load double*, double** %10
%34519 = getelementptr inbounds double, double* %34518, i64 1
%34520 = load double, double* %34519
%34521 = fsub double %34517, %34520
%34522 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34521, double* %34522
%34523 = load double*, double** %12
%34524 = getelementptr inbounds double, double* %34523, i64 2
%34525 = load double, double* %34524
%34526 = load double*, double** %10
%34527 = getelementptr inbounds double, double* %34526, i64 2
%34528 = load double, double* %34527
%34529 = fsub double %34525, %34528
%34530 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34529, double* %34530
%34531 = load double*, double** %8
%34532 = getelementptr inbounds double, double* %34531, i64 0
%34533 = load double, double* %34532
%34534 = load double*, double** %10
%34535 = getelementptr inbounds double, double* %34534, i64 0
%34536 = load double, double* %34535
%34537 = fsub double %34533, %34536
%34538 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34537, double* %34538
%34539 = load double*, double** %8
%34540 = getelementptr inbounds double, double* %34539, i64 1
%34541 = load double, double* %34540
%34542 = load double*, double** %10
%34543 = getelementptr inbounds double, double* %34542, i64 1
%34544 = load double, double* %34543
%34545 = fsub double %34541, %34544
%34546 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34545, double* %34546
%34547 = load double*, double** %8
%34548 = getelementptr inbounds double, double* %34547, i64 2
%34549 = load double, double* %34548
%34550 = load double*, double** %10
%34551 = getelementptr inbounds double, double* %34550, i64 2
%34552 = load double, double* %34551
%34553 = fsub double %34549, %34552
%34554 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34553, double* %34554
%34555 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34556 = load double, double* %34555
%34557 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34558 = load double, double* %34557
%34559 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34560 = load double, double* %34559
%34561 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34562 = load double, double* %34561
%34563 = fmul double %34560, %34562
%34564 = fneg double %34563
%34565 = call double @llvm.fmuladd.f64(double %34556, double %34558, double %34564)
%34566 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34565, double* %34566
%34567 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34568 = load double, double* %34567
%34569 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34570 = load double, double* %34569
%34571 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34572 = load double, double* %34571
%34573 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34574 = load double, double* %34573
%34575 = fmul double %34572, %34574
%34576 = fneg double %34575
%34577 = call double @llvm.fmuladd.f64(double %34568, double %34570, double %34576)
%34578 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34577, double* %34578
%34579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34580 = load double, double* %34579
%34581 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34582 = load double, double* %34581
%34583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34584 = load double, double* %34583
%34585 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34586 = load double, double* %34585
%34587 = fmul double %34584, %34586
%34588 = fneg double %34587
%34589 = call double @llvm.fmuladd.f64(double %34580, double %34582, double %34588)
%34590 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34589, double* %34590
%34591 = load double*, double** %13
%34592 = getelementptr inbounds double, double* %34591, i64 0
%34593 = load double, double* %34592
%34594 = load double*, double** %10
%34595 = getelementptr inbounds double, double* %34594, i64 0
%34596 = load double, double* %34595
%34597 = fsub double %34593, %34596
%34598 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34597, double* %34598
%34599 = load double*, double** %13
%34600 = getelementptr inbounds double, double* %34599, i64 1
%34601 = load double, double* %34600
%34602 = load double*, double** %10
%34603 = getelementptr inbounds double, double* %34602, i64 1
%34604 = load double, double* %34603
%34605 = fsub double %34601, %34604
%34606 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34605, double* %34606
%34607 = load double*, double** %13
%34608 = getelementptr inbounds double, double* %34607, i64 2
%34609 = load double, double* %34608
%34610 = load double*, double** %10
%34611 = getelementptr inbounds double, double* %34610, i64 2
%34612 = load double, double* %34611
%34613 = fsub double %34609, %34612
%34614 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34613, double* %34614
%34615 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34616 = load double, double* %34615
%34617 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34618 = load double, double* %34617
%34619 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34620 = load double, double* %34619
%34621 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34622 = load double, double* %34621
%34623 = fmul double %34620, %34622
%34624 = call double @llvm.fmuladd.f64(double %34616, double %34618, double %34623)
%34625 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34626 = load double, double* %34625
%34627 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34628 = load double, double* %34627
%34629 = call double @llvm.fmuladd.f64(double %34626, double %34628, double %34624)
%34630 = fcmp ogt double %34629, 0.000000e+00
br i1 %34630, label %34631, label %34632
34631: ; preds = %34506
store i32 0, i32* %7
br label %37464
34632: ; preds = %34506
store i32 1, i32* %7
br label %37464
34633: ; preds = %34377
%34634 = load double, double* %18
%34635 = fcmp ogt double %34634, 0.000000e+00
br i1 %34635, label %34636, label %34889
34636: ; preds = %34633
%34637 = load double*, double** %13
%34638 = getelementptr inbounds double, double* %34637, i64 0
%34639 = load double, double* %34638
%34640 = load double*, double** %9
%34641 = getelementptr inbounds double, double* %34640, i64 0
%34642 = load double, double* %34641
%34643 = fsub double %34639, %34642
%34644 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34643, double* %34644
%34645 = load double*, double** %13
%34646 = getelementptr inbounds double, double* %34645, i64 1
%34647 = load double, double* %34646
%34648 = load double*, double** %9
%34649 = getelementptr inbounds double, double* %34648, i64 1
%34650 = load double, double* %34649
%34651 = fsub double %34647, %34650
%34652 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34651, double* %34652
%34653 = load double*, double** %13
%34654 = getelementptr inbounds double, double* %34653, i64 2
%34655 = load double, double* %34654
%34656 = load double*, double** %9
%34657 = getelementptr inbounds double, double* %34656, i64 2
%34658 = load double, double* %34657
%34659 = fsub double %34655, %34658
%34660 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34659, double* %34660
%34661 = load double*, double** %10
%34662 = getelementptr inbounds double, double* %34661, i64 0
%34663 = load double, double* %34662
%34664 = load double*, double** %9
%34665 = getelementptr inbounds double, double* %34664, i64 0
%34666 = load double, double* %34665
%34667 = fsub double %34663, %34666
%34668 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34667, double* %34668
%34669 = load double*, double** %10
%34670 = getelementptr inbounds double, double* %34669, i64 1
%34671 = load double, double* %34670
%34672 = load double*, double** %9
%34673 = getelementptr inbounds double, double* %34672, i64 1
%34674 = load double, double* %34673
%34675 = fsub double %34671, %34674
%34676 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34675, double* %34676
%34677 = load double*, double** %10
%34678 = getelementptr inbounds double, double* %34677, i64 2
%34679 = load double, double* %34678
%34680 = load double*, double** %9
%34681 = getelementptr inbounds double, double* %34680, i64 2
%34682 = load double, double* %34681
%34683 = fsub double %34679, %34682
%34684 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34683, double* %34684
%34685 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34686 = load double, double* %34685
%34687 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34688 = load double, double* %34687
%34689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34690 = load double, double* %34689
%34691 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34692 = load double, double* %34691
%34693 = fmul double %34690, %34692
%34694 = fneg double %34693
%34695 = call double @llvm.fmuladd.f64(double %34686, double %34688, double %34694)
%34696 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34695, double* %34696
%34697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34698 = load double, double* %34697
%34699 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34700 = load double, double* %34699
%34701 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34702 = load double, double* %34701
%34703 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34704 = load double, double* %34703
%34705 = fmul double %34702, %34704
%34706 = fneg double %34705
%34707 = call double @llvm.fmuladd.f64(double %34698, double %34700, double %34706)
%34708 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34707, double* %34708
%34709 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34710 = load double, double* %34709
%34711 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34712 = load double, double* %34711
%34713 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34714 = load double, double* %34713
%34715 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34716 = load double, double* %34715
%34717 = fmul double %34714, %34716
%34718 = fneg double %34717
%34719 = call double @llvm.fmuladd.f64(double %34710, double %34712, double %34718)
%34720 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34719, double* %34720
%34721 = load double*, double** %12
%34722 = getelementptr inbounds double, double* %34721, i64 0
%34723 = load double, double* %34722
%34724 = load double*, double** %9
%34725 = getelementptr inbounds double, double* %34724, i64 0
%34726 = load double, double* %34725
%34727 = fsub double %34723, %34726
%34728 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34727, double* %34728
%34729 = load double*, double** %12
%34730 = getelementptr inbounds double, double* %34729, i64 1
%34731 = load double, double* %34730
%34732 = load double*, double** %9
%34733 = getelementptr inbounds double, double* %34732, i64 1
%34734 = load double, double* %34733
%34735 = fsub double %34731, %34734
%34736 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34735, double* %34736
%34737 = load double*, double** %12
%34738 = getelementptr inbounds double, double* %34737, i64 2
%34739 = load double, double* %34738
%34740 = load double*, double** %9
%34741 = getelementptr inbounds double, double* %34740, i64 2
%34742 = load double, double* %34741
%34743 = fsub double %34739, %34742
%34744 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34743, double* %34744
%34745 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34746 = load double, double* %34745
%34747 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34748 = load double, double* %34747
%34749 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34750 = load double, double* %34749
%34751 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34752 = load double, double* %34751
%34753 = fmul double %34750, %34752
%34754 = call double @llvm.fmuladd.f64(double %34746, double %34748, double %34753)
%34755 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34756 = load double, double* %34755
%34757 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34758 = load double, double* %34757
%34759 = call double @llvm.fmuladd.f64(double %34756, double %34758, double %34754)
%34760 = fcmp ogt double %34759, 0.000000e+00
br i1 %34760, label %34761, label %34762
34761: ; preds = %34636
store i32 0, i32* %7
br label %37464
34762: ; preds = %34636
%34763 = load double*, double** %13
%34764 = getelementptr inbounds double, double* %34763, i64 0
%34765 = load double, double* %34764
%34766 = load double*, double** %10
%34767 = getelementptr inbounds double, double* %34766, i64 0
%34768 = load double, double* %34767
%34769 = fsub double %34765, %34768
%34770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34769, double* %34770
%34771 = load double*, double** %13
%34772 = getelementptr inbounds double, double* %34771, i64 1
%34773 = load double, double* %34772
%34774 = load double*, double** %10
%34775 = getelementptr inbounds double, double* %34774, i64 1
%34776 = load double, double* %34775
%34777 = fsub double %34773, %34776
%34778 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34777, double* %34778
%34779 = load double*, double** %13
%34780 = getelementptr inbounds double, double* %34779, i64 2
%34781 = load double, double* %34780
%34782 = load double*, double** %10
%34783 = getelementptr inbounds double, double* %34782, i64 2
%34784 = load double, double* %34783
%34785 = fsub double %34781, %34784
%34786 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34785, double* %34786
%34787 = load double*, double** %8
%34788 = getelementptr inbounds double, double* %34787, i64 0
%34789 = load double, double* %34788
%34790 = load double*, double** %10
%34791 = getelementptr inbounds double, double* %34790, i64 0
%34792 = load double, double* %34791
%34793 = fsub double %34789, %34792
%34794 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34793, double* %34794
%34795 = load double*, double** %8
%34796 = getelementptr inbounds double, double* %34795, i64 1
%34797 = load double, double* %34796
%34798 = load double*, double** %10
%34799 = getelementptr inbounds double, double* %34798, i64 1
%34800 = load double, double* %34799
%34801 = fsub double %34797, %34800
%34802 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34801, double* %34802
%34803 = load double*, double** %8
%34804 = getelementptr inbounds double, double* %34803, i64 2
%34805 = load double, double* %34804
%34806 = load double*, double** %10
%34807 = getelementptr inbounds double, double* %34806, i64 2
%34808 = load double, double* %34807
%34809 = fsub double %34805, %34808
%34810 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34809, double* %34810
%34811 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34812 = load double, double* %34811
%34813 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34814 = load double, double* %34813
%34815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34816 = load double, double* %34815
%34817 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34818 = load double, double* %34817
%34819 = fmul double %34816, %34818
%34820 = fneg double %34819
%34821 = call double @llvm.fmuladd.f64(double %34812, double %34814, double %34820)
%34822 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34821, double* %34822
%34823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34824 = load double, double* %34823
%34825 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34826 = load double, double* %34825
%34827 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34828 = load double, double* %34827
%34829 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34830 = load double, double* %34829
%34831 = fmul double %34828, %34830
%34832 = fneg double %34831
%34833 = call double @llvm.fmuladd.f64(double %34824, double %34826, double %34832)
%34834 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34833, double* %34834
%34835 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34836 = load double, double* %34835
%34837 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34838 = load double, double* %34837
%34839 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34840 = load double, double* %34839
%34841 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34842 = load double, double* %34841
%34843 = fmul double %34840, %34842
%34844 = fneg double %34843
%34845 = call double @llvm.fmuladd.f64(double %34836, double %34838, double %34844)
%34846 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34845, double* %34846
%34847 = load double*, double** %11
%34848 = getelementptr inbounds double, double* %34847, i64 0
%34849 = load double, double* %34848
%34850 = load double*, double** %10
%34851 = getelementptr inbounds double, double* %34850, i64 0
%34852 = load double, double* %34851
%34853 = fsub double %34849, %34852
%34854 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34853, double* %34854
%34855 = load double*, double** %11
%34856 = getelementptr inbounds double, double* %34855, i64 1
%34857 = load double, double* %34856
%34858 = load double*, double** %10
%34859 = getelementptr inbounds double, double* %34858, i64 1
%34860 = load double, double* %34859
%34861 = fsub double %34857, %34860
%34862 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34861, double* %34862
%34863 = load double*, double** %11
%34864 = getelementptr inbounds double, double* %34863, i64 2
%34865 = load double, double* %34864
%34866 = load double*, double** %10
%34867 = getelementptr inbounds double, double* %34866, i64 2
%34868 = load double, double* %34867
%34869 = fsub double %34865, %34868
%34870 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34869, double* %34870
%34871 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34872 = load double, double* %34871
%34873 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%34874 = load double, double* %34873
%34875 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34876 = load double, double* %34875
%34877 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%34878 = load double, double* %34877
%34879 = fmul double %34876, %34878
%34880 = call double @llvm.fmuladd.f64(double %34872, double %34874, double %34879)
%34881 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34882 = load double, double* %34881
%34883 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%34884 = load double, double* %34883
%34885 = call double @llvm.fmuladd.f64(double %34882, double %34884, double %34880)
%34886 = fcmp ogt double %34885, 0.000000e+00
br i1 %34886, label %34887, label %34888
34887: ; preds = %34762
store i32 0, i32* %7
br label %37464
34888: ; preds = %34762
store i32 1, i32* %7
br label %37464
34889: ; preds = %34633
%34890 = load double*, double** %11
%34891 = getelementptr inbounds double, double* %34890, i64 0
%34892 = load double, double* %34891
%34893 = load double*, double** %8
%34894 = getelementptr inbounds double, double* %34893, i64 0
%34895 = load double, double* %34894
%34896 = fsub double %34892, %34895
%34897 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34896, double* %34897
%34898 = load double*, double** %11
%34899 = getelementptr inbounds double, double* %34898, i64 1
%34900 = load double, double* %34899
%34901 = load double*, double** %8
%34902 = getelementptr inbounds double, double* %34901, i64 1
%34903 = load double, double* %34902
%34904 = fsub double %34900, %34903
%34905 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34904, double* %34905
%34906 = load double*, double** %11
%34907 = getelementptr inbounds double, double* %34906, i64 2
%34908 = load double, double* %34907
%34909 = load double*, double** %8
%34910 = getelementptr inbounds double, double* %34909, i64 2
%34911 = load double, double* %34910
%34912 = fsub double %34908, %34911
%34913 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34912, double* %34913
%34914 = load double*, double** %10
%34915 = getelementptr inbounds double, double* %34914, i64 0
%34916 = load double, double* %34915
%34917 = load double*, double** %8
%34918 = getelementptr inbounds double, double* %34917, i64 0
%34919 = load double, double* %34918
%34920 = fsub double %34916, %34919
%34921 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %34920, double* %34921
%34922 = load double*, double** %10
%34923 = getelementptr inbounds double, double* %34922, i64 1
%34924 = load double, double* %34923
%34925 = load double*, double** %8
%34926 = getelementptr inbounds double, double* %34925, i64 1
%34927 = load double, double* %34926
%34928 = fsub double %34924, %34927
%34929 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %34928, double* %34929
%34930 = load double*, double** %10
%34931 = getelementptr inbounds double, double* %34930, i64 2
%34932 = load double, double* %34931
%34933 = load double*, double** %8
%34934 = getelementptr inbounds double, double* %34933, i64 2
%34935 = load double, double* %34934
%34936 = fsub double %34932, %34935
%34937 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %34936, double* %34937
%34938 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34939 = load double, double* %34938
%34940 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34941 = load double, double* %34940
%34942 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34943 = load double, double* %34942
%34944 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34945 = load double, double* %34944
%34946 = fmul double %34943, %34945
%34947 = fneg double %34946
%34948 = call double @llvm.fmuladd.f64(double %34939, double %34941, double %34947)
%34949 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %34948, double* %34949
%34950 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%34951 = load double, double* %34950
%34952 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34953 = load double, double* %34952
%34954 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34955 = load double, double* %34954
%34956 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%34957 = load double, double* %34956
%34958 = fmul double %34955, %34957
%34959 = fneg double %34958
%34960 = call double @llvm.fmuladd.f64(double %34951, double %34953, double %34959)
%34961 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %34960, double* %34961
%34962 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34963 = load double, double* %34962
%34964 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%34965 = load double, double* %34964
%34966 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%34967 = load double, double* %34966
%34968 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%34969 = load double, double* %34968
%34970 = fmul double %34967, %34969
%34971 = fneg double %34970
%34972 = call double @llvm.fmuladd.f64(double %34963, double %34965, double %34971)
%34973 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %34972, double* %34973
%34974 = load double*, double** %13
%34975 = getelementptr inbounds double, double* %34974, i64 0
%34976 = load double, double* %34975
%34977 = load double*, double** %8
%34978 = getelementptr inbounds double, double* %34977, i64 0
%34979 = load double, double* %34978
%34980 = fsub double %34976, %34979
%34981 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %34980, double* %34981
%34982 = load double*, double** %13
%34983 = getelementptr inbounds double, double* %34982, i64 1
%34984 = load double, double* %34983
%34985 = load double*, double** %8
%34986 = getelementptr inbounds double, double* %34985, i64 1
%34987 = load double, double* %34986
%34988 = fsub double %34984, %34987
%34989 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %34988, double* %34989
%34990 = load double*, double** %13
%34991 = getelementptr inbounds double, double* %34990, i64 2
%34992 = load double, double* %34991
%34993 = load double*, double** %8
%34994 = getelementptr inbounds double, double* %34993, i64 2
%34995 = load double, double* %34994
%34996 = fsub double %34992, %34995
%34997 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %34996, double* %34997
%34998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%34999 = load double, double* %34998
%35000 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35001 = load double, double* %35000
%35002 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35003 = load double, double* %35002
%35004 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35005 = load double, double* %35004
%35006 = fmul double %35003, %35005
%35007 = call double @llvm.fmuladd.f64(double %34999, double %35001, double %35006)
%35008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35009 = load double, double* %35008
%35010 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35011 = load double, double* %35010
%35012 = call double @llvm.fmuladd.f64(double %35009, double %35011, double %35007)
%35013 = fcmp ogt double %35012, 0.000000e+00
br i1 %35013, label %35014, label %35015
35014: ; preds = %34889
store i32 0, i32* %7
br label %37464
35015: ; preds = %34889
%35016 = load double*, double** %11
%35017 = getelementptr inbounds double, double* %35016, i64 0
%35018 = load double, double* %35017
%35019 = load double*, double** %10
%35020 = getelementptr inbounds double, double* %35019, i64 0
%35021 = load double, double* %35020
%35022 = fsub double %35018, %35021
%35023 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35022, double* %35023
%35024 = load double*, double** %11
%35025 = getelementptr inbounds double, double* %35024, i64 1
%35026 = load double, double* %35025
%35027 = load double*, double** %10
%35028 = getelementptr inbounds double, double* %35027, i64 1
%35029 = load double, double* %35028
%35030 = fsub double %35026, %35029
%35031 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35030, double* %35031
%35032 = load double*, double** %11
%35033 = getelementptr inbounds double, double* %35032, i64 2
%35034 = load double, double* %35033
%35035 = load double*, double** %10
%35036 = getelementptr inbounds double, double* %35035, i64 2
%35037 = load double, double* %35036
%35038 = fsub double %35034, %35037
%35039 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35038, double* %35039
%35040 = load double*, double** %9
%35041 = getelementptr inbounds double, double* %35040, i64 0
%35042 = load double, double* %35041
%35043 = load double*, double** %10
%35044 = getelementptr inbounds double, double* %35043, i64 0
%35045 = load double, double* %35044
%35046 = fsub double %35042, %35045
%35047 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35046, double* %35047
%35048 = load double*, double** %9
%35049 = getelementptr inbounds double, double* %35048, i64 1
%35050 = load double, double* %35049
%35051 = load double*, double** %10
%35052 = getelementptr inbounds double, double* %35051, i64 1
%35053 = load double, double* %35052
%35054 = fsub double %35050, %35053
%35055 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35054, double* %35055
%35056 = load double*, double** %9
%35057 = getelementptr inbounds double, double* %35056, i64 2
%35058 = load double, double* %35057
%35059 = load double*, double** %10
%35060 = getelementptr inbounds double, double* %35059, i64 2
%35061 = load double, double* %35060
%35062 = fsub double %35058, %35061
%35063 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35062, double* %35063
%35064 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35065 = load double, double* %35064
%35066 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35067 = load double, double* %35066
%35068 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35069 = load double, double* %35068
%35070 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35071 = load double, double* %35070
%35072 = fmul double %35069, %35071
%35073 = fneg double %35072
%35074 = call double @llvm.fmuladd.f64(double %35065, double %35067, double %35073)
%35075 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35074, double* %35075
%35076 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35077 = load double, double* %35076
%35078 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35079 = load double, double* %35078
%35080 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35081 = load double, double* %35080
%35082 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35083 = load double, double* %35082
%35084 = fmul double %35081, %35083
%35085 = fneg double %35084
%35086 = call double @llvm.fmuladd.f64(double %35077, double %35079, double %35085)
%35087 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35086, double* %35087
%35088 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35089 = load double, double* %35088
%35090 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35091 = load double, double* %35090
%35092 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35093 = load double, double* %35092
%35094 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35095 = load double, double* %35094
%35096 = fmul double %35093, %35095
%35097 = fneg double %35096
%35098 = call double @llvm.fmuladd.f64(double %35089, double %35091, double %35097)
%35099 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35098, double* %35099
%35100 = load double*, double** %12
%35101 = getelementptr inbounds double, double* %35100, i64 0
%35102 = load double, double* %35101
%35103 = load double*, double** %10
%35104 = getelementptr inbounds double, double* %35103, i64 0
%35105 = load double, double* %35104
%35106 = fsub double %35102, %35105
%35107 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35106, double* %35107
%35108 = load double*, double** %12
%35109 = getelementptr inbounds double, double* %35108, i64 1
%35110 = load double, double* %35109
%35111 = load double*, double** %10
%35112 = getelementptr inbounds double, double* %35111, i64 1
%35113 = load double, double* %35112
%35114 = fsub double %35110, %35113
%35115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35114, double* %35115
%35116 = load double*, double** %12
%35117 = getelementptr inbounds double, double* %35116, i64 2
%35118 = load double, double* %35117
%35119 = load double*, double** %10
%35120 = getelementptr inbounds double, double* %35119, i64 2
%35121 = load double, double* %35120
%35122 = fsub double %35118, %35121
%35123 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35122, double* %35123
%35124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35125 = load double, double* %35124
%35126 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35127 = load double, double* %35126
%35128 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35129 = load double, double* %35128
%35130 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35131 = load double, double* %35130
%35132 = fmul double %35129, %35131
%35133 = call double @llvm.fmuladd.f64(double %35125, double %35127, double %35132)
%35134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35135 = load double, double* %35134
%35136 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35137 = load double, double* %35136
%35138 = call double @llvm.fmuladd.f64(double %35135, double %35137, double %35133)
%35139 = fcmp ogt double %35138, 0.000000e+00
br i1 %35139, label %35140, label %35141
35140: ; preds = %35015
store i32 0, i32* %7
br label %37464
35141: ; preds = %35015
store i32 1, i32* %7
br label %37464
35142: ; preds = %34374
%35143 = load double, double* %17
%35144 = fcmp olt double %35143, 0.000000e+00
br i1 %35144, label %35145, label %35910
35145: ; preds = %35142
%35146 = load double, double* %19
%35147 = fcmp olt double %35146, 0.000000e+00
br i1 %35147, label %35148, label %35401
35148: ; preds = %35145
%35149 = load double*, double** %12
%35150 = getelementptr inbounds double, double* %35149, i64 0
%35151 = load double, double* %35150
%35152 = load double*, double** %8
%35153 = getelementptr inbounds double, double* %35152, i64 0
%35154 = load double, double* %35153
%35155 = fsub double %35151, %35154
%35156 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35155, double* %35156
%35157 = load double*, double** %12
%35158 = getelementptr inbounds double, double* %35157, i64 1
%35159 = load double, double* %35158
%35160 = load double*, double** %8
%35161 = getelementptr inbounds double, double* %35160, i64 1
%35162 = load double, double* %35161
%35163 = fsub double %35159, %35162
%35164 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35163, double* %35164
%35165 = load double*, double** %12
%35166 = getelementptr inbounds double, double* %35165, i64 2
%35167 = load double, double* %35166
%35168 = load double*, double** %8
%35169 = getelementptr inbounds double, double* %35168, i64 2
%35170 = load double, double* %35169
%35171 = fsub double %35167, %35170
%35172 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35171, double* %35172
%35173 = load double*, double** %10
%35174 = getelementptr inbounds double, double* %35173, i64 0
%35175 = load double, double* %35174
%35176 = load double*, double** %8
%35177 = getelementptr inbounds double, double* %35176, i64 0
%35178 = load double, double* %35177
%35179 = fsub double %35175, %35178
%35180 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35179, double* %35180
%35181 = load double*, double** %10
%35182 = getelementptr inbounds double, double* %35181, i64 1
%35183 = load double, double* %35182
%35184 = load double*, double** %8
%35185 = getelementptr inbounds double, double* %35184, i64 1
%35186 = load double, double* %35185
%35187 = fsub double %35183, %35186
%35188 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35187, double* %35188
%35189 = load double*, double** %10
%35190 = getelementptr inbounds double, double* %35189, i64 2
%35191 = load double, double* %35190
%35192 = load double*, double** %8
%35193 = getelementptr inbounds double, double* %35192, i64 2
%35194 = load double, double* %35193
%35195 = fsub double %35191, %35194
%35196 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35195, double* %35196
%35197 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35198 = load double, double* %35197
%35199 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35200 = load double, double* %35199
%35201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35202 = load double, double* %35201
%35203 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35204 = load double, double* %35203
%35205 = fmul double %35202, %35204
%35206 = fneg double %35205
%35207 = call double @llvm.fmuladd.f64(double %35198, double %35200, double %35206)
%35208 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35207, double* %35208
%35209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35210 = load double, double* %35209
%35211 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35212 = load double, double* %35211
%35213 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35214 = load double, double* %35213
%35215 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35216 = load double, double* %35215
%35217 = fmul double %35214, %35216
%35218 = fneg double %35217
%35219 = call double @llvm.fmuladd.f64(double %35210, double %35212, double %35218)
%35220 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35219, double* %35220
%35221 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35222 = load double, double* %35221
%35223 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35224 = load double, double* %35223
%35225 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35226 = load double, double* %35225
%35227 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35228 = load double, double* %35227
%35229 = fmul double %35226, %35228
%35230 = fneg double %35229
%35231 = call double @llvm.fmuladd.f64(double %35222, double %35224, double %35230)
%35232 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35231, double* %35232
%35233 = load double*, double** %11
%35234 = getelementptr inbounds double, double* %35233, i64 0
%35235 = load double, double* %35234
%35236 = load double*, double** %8
%35237 = getelementptr inbounds double, double* %35236, i64 0
%35238 = load double, double* %35237
%35239 = fsub double %35235, %35238
%35240 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35239, double* %35240
%35241 = load double*, double** %11
%35242 = getelementptr inbounds double, double* %35241, i64 1
%35243 = load double, double* %35242
%35244 = load double*, double** %8
%35245 = getelementptr inbounds double, double* %35244, i64 1
%35246 = load double, double* %35245
%35247 = fsub double %35243, %35246
%35248 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35247, double* %35248
%35249 = load double*, double** %11
%35250 = getelementptr inbounds double, double* %35249, i64 2
%35251 = load double, double* %35250
%35252 = load double*, double** %8
%35253 = getelementptr inbounds double, double* %35252, i64 2
%35254 = load double, double* %35253
%35255 = fsub double %35251, %35254
%35256 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35255, double* %35256
%35257 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35258 = load double, double* %35257
%35259 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35260 = load double, double* %35259
%35261 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35262 = load double, double* %35261
%35263 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35264 = load double, double* %35263
%35265 = fmul double %35262, %35264
%35266 = call double @llvm.fmuladd.f64(double %35258, double %35260, double %35265)
%35267 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35268 = load double, double* %35267
%35269 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35270 = load double, double* %35269
%35271 = call double @llvm.fmuladd.f64(double %35268, double %35270, double %35266)
%35272 = fcmp ogt double %35271, 0.000000e+00
br i1 %35272, label %35273, label %35274
35273: ; preds = %35148
store i32 0, i32* %7
br label %37464
35274: ; preds = %35148
%35275 = load double*, double** %12
%35276 = getelementptr inbounds double, double* %35275, i64 0
%35277 = load double, double* %35276
%35278 = load double*, double** %10
%35279 = getelementptr inbounds double, double* %35278, i64 0
%35280 = load double, double* %35279
%35281 = fsub double %35277, %35280
%35282 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35281, double* %35282
%35283 = load double*, double** %12
%35284 = getelementptr inbounds double, double* %35283, i64 1
%35285 = load double, double* %35284
%35286 = load double*, double** %10
%35287 = getelementptr inbounds double, double* %35286, i64 1
%35288 = load double, double* %35287
%35289 = fsub double %35285, %35288
%35290 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35289, double* %35290
%35291 = load double*, double** %12
%35292 = getelementptr inbounds double, double* %35291, i64 2
%35293 = load double, double* %35292
%35294 = load double*, double** %10
%35295 = getelementptr inbounds double, double* %35294, i64 2
%35296 = load double, double* %35295
%35297 = fsub double %35293, %35296
%35298 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35297, double* %35298
%35299 = load double*, double** %9
%35300 = getelementptr inbounds double, double* %35299, i64 0
%35301 = load double, double* %35300
%35302 = load double*, double** %10
%35303 = getelementptr inbounds double, double* %35302, i64 0
%35304 = load double, double* %35303
%35305 = fsub double %35301, %35304
%35306 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35305, double* %35306
%35307 = load double*, double** %9
%35308 = getelementptr inbounds double, double* %35307, i64 1
%35309 = load double, double* %35308
%35310 = load double*, double** %10
%35311 = getelementptr inbounds double, double* %35310, i64 1
%35312 = load double, double* %35311
%35313 = fsub double %35309, %35312
%35314 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35313, double* %35314
%35315 = load double*, double** %9
%35316 = getelementptr inbounds double, double* %35315, i64 2
%35317 = load double, double* %35316
%35318 = load double*, double** %10
%35319 = getelementptr inbounds double, double* %35318, i64 2
%35320 = load double, double* %35319
%35321 = fsub double %35317, %35320
%35322 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35321, double* %35322
%35323 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35324 = load double, double* %35323
%35325 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35326 = load double, double* %35325
%35327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35328 = load double, double* %35327
%35329 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35330 = load double, double* %35329
%35331 = fmul double %35328, %35330
%35332 = fneg double %35331
%35333 = call double @llvm.fmuladd.f64(double %35324, double %35326, double %35332)
%35334 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35333, double* %35334
%35335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35336 = load double, double* %35335
%35337 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35338 = load double, double* %35337
%35339 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35340 = load double, double* %35339
%35341 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35342 = load double, double* %35341
%35343 = fmul double %35340, %35342
%35344 = fneg double %35343
%35345 = call double @llvm.fmuladd.f64(double %35336, double %35338, double %35344)
%35346 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35345, double* %35346
%35347 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35348 = load double, double* %35347
%35349 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35350 = load double, double* %35349
%35351 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35352 = load double, double* %35351
%35353 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35354 = load double, double* %35353
%35355 = fmul double %35352, %35354
%35356 = fneg double %35355
%35357 = call double @llvm.fmuladd.f64(double %35348, double %35350, double %35356)
%35358 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35357, double* %35358
%35359 = load double*, double** %13
%35360 = getelementptr inbounds double, double* %35359, i64 0
%35361 = load double, double* %35360
%35362 = load double*, double** %10
%35363 = getelementptr inbounds double, double* %35362, i64 0
%35364 = load double, double* %35363
%35365 = fsub double %35361, %35364
%35366 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35365, double* %35366
%35367 = load double*, double** %13
%35368 = getelementptr inbounds double, double* %35367, i64 1
%35369 = load double, double* %35368
%35370 = load double*, double** %10
%35371 = getelementptr inbounds double, double* %35370, i64 1
%35372 = load double, double* %35371
%35373 = fsub double %35369, %35372
%35374 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35373, double* %35374
%35375 = load double*, double** %13
%35376 = getelementptr inbounds double, double* %35375, i64 2
%35377 = load double, double* %35376
%35378 = load double*, double** %10
%35379 = getelementptr inbounds double, double* %35378, i64 2
%35380 = load double, double* %35379
%35381 = fsub double %35377, %35380
%35382 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35381, double* %35382
%35383 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35384 = load double, double* %35383
%35385 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35386 = load double, double* %35385
%35387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35388 = load double, double* %35387
%35389 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35390 = load double, double* %35389
%35391 = fmul double %35388, %35390
%35392 = call double @llvm.fmuladd.f64(double %35384, double %35386, double %35391)
%35393 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35394 = load double, double* %35393
%35395 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35396 = load double, double* %35395
%35397 = call double @llvm.fmuladd.f64(double %35394, double %35396, double %35392)
%35398 = fcmp ogt double %35397, 0.000000e+00
br i1 %35398, label %35399, label %35400
35399: ; preds = %35274
store i32 0, i32* %7
br label %37464
35400: ; preds = %35274
store i32 1, i32* %7
br label %37464
35401: ; preds = %35145
%35402 = load double, double* %18
%35403 = fcmp olt double %35402, 0.000000e+00
br i1 %35403, label %35404, label %35657
35404: ; preds = %35401
%35405 = load double*, double** %13
%35406 = getelementptr inbounds double, double* %35405, i64 0
%35407 = load double, double* %35406
%35408 = load double*, double** %8
%35409 = getelementptr inbounds double, double* %35408, i64 0
%35410 = load double, double* %35409
%35411 = fsub double %35407, %35410
%35412 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35411, double* %35412
%35413 = load double*, double** %13
%35414 = getelementptr inbounds double, double* %35413, i64 1
%35415 = load double, double* %35414
%35416 = load double*, double** %8
%35417 = getelementptr inbounds double, double* %35416, i64 1
%35418 = load double, double* %35417
%35419 = fsub double %35415, %35418
%35420 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35419, double* %35420
%35421 = load double*, double** %13
%35422 = getelementptr inbounds double, double* %35421, i64 2
%35423 = load double, double* %35422
%35424 = load double*, double** %8
%35425 = getelementptr inbounds double, double* %35424, i64 2
%35426 = load double, double* %35425
%35427 = fsub double %35423, %35426
%35428 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35427, double* %35428
%35429 = load double*, double** %10
%35430 = getelementptr inbounds double, double* %35429, i64 0
%35431 = load double, double* %35430
%35432 = load double*, double** %8
%35433 = getelementptr inbounds double, double* %35432, i64 0
%35434 = load double, double* %35433
%35435 = fsub double %35431, %35434
%35436 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35435, double* %35436
%35437 = load double*, double** %10
%35438 = getelementptr inbounds double, double* %35437, i64 1
%35439 = load double, double* %35438
%35440 = load double*, double** %8
%35441 = getelementptr inbounds double, double* %35440, i64 1
%35442 = load double, double* %35441
%35443 = fsub double %35439, %35442
%35444 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35443, double* %35444
%35445 = load double*, double** %10
%35446 = getelementptr inbounds double, double* %35445, i64 2
%35447 = load double, double* %35446
%35448 = load double*, double** %8
%35449 = getelementptr inbounds double, double* %35448, i64 2
%35450 = load double, double* %35449
%35451 = fsub double %35447, %35450
%35452 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35451, double* %35452
%35453 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35454 = load double, double* %35453
%35455 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35456 = load double, double* %35455
%35457 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35458 = load double, double* %35457
%35459 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35460 = load double, double* %35459
%35461 = fmul double %35458, %35460
%35462 = fneg double %35461
%35463 = call double @llvm.fmuladd.f64(double %35454, double %35456, double %35462)
%35464 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35463, double* %35464
%35465 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35466 = load double, double* %35465
%35467 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35468 = load double, double* %35467
%35469 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35470 = load double, double* %35469
%35471 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35472 = load double, double* %35471
%35473 = fmul double %35470, %35472
%35474 = fneg double %35473
%35475 = call double @llvm.fmuladd.f64(double %35466, double %35468, double %35474)
%35476 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35475, double* %35476
%35477 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35478 = load double, double* %35477
%35479 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35480 = load double, double* %35479
%35481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35482 = load double, double* %35481
%35483 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35484 = load double, double* %35483
%35485 = fmul double %35482, %35484
%35486 = fneg double %35485
%35487 = call double @llvm.fmuladd.f64(double %35478, double %35480, double %35486)
%35488 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35487, double* %35488
%35489 = load double*, double** %12
%35490 = getelementptr inbounds double, double* %35489, i64 0
%35491 = load double, double* %35490
%35492 = load double*, double** %8
%35493 = getelementptr inbounds double, double* %35492, i64 0
%35494 = load double, double* %35493
%35495 = fsub double %35491, %35494
%35496 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35495, double* %35496
%35497 = load double*, double** %12
%35498 = getelementptr inbounds double, double* %35497, i64 1
%35499 = load double, double* %35498
%35500 = load double*, double** %8
%35501 = getelementptr inbounds double, double* %35500, i64 1
%35502 = load double, double* %35501
%35503 = fsub double %35499, %35502
%35504 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35503, double* %35504
%35505 = load double*, double** %12
%35506 = getelementptr inbounds double, double* %35505, i64 2
%35507 = load double, double* %35506
%35508 = load double*, double** %8
%35509 = getelementptr inbounds double, double* %35508, i64 2
%35510 = load double, double* %35509
%35511 = fsub double %35507, %35510
%35512 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35511, double* %35512
%35513 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35514 = load double, double* %35513
%35515 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35516 = load double, double* %35515
%35517 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35518 = load double, double* %35517
%35519 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35520 = load double, double* %35519
%35521 = fmul double %35518, %35520
%35522 = call double @llvm.fmuladd.f64(double %35514, double %35516, double %35521)
%35523 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35524 = load double, double* %35523
%35525 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35526 = load double, double* %35525
%35527 = call double @llvm.fmuladd.f64(double %35524, double %35526, double %35522)
%35528 = fcmp ogt double %35527, 0.000000e+00
br i1 %35528, label %35529, label %35530
35529: ; preds = %35404
store i32 0, i32* %7
br label %37464
35530: ; preds = %35404
%35531 = load double*, double** %13
%35532 = getelementptr inbounds double, double* %35531, i64 0
%35533 = load double, double* %35532
%35534 = load double*, double** %10
%35535 = getelementptr inbounds double, double* %35534, i64 0
%35536 = load double, double* %35535
%35537 = fsub double %35533, %35536
%35538 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35537, double* %35538
%35539 = load double*, double** %13
%35540 = getelementptr inbounds double, double* %35539, i64 1
%35541 = load double, double* %35540
%35542 = load double*, double** %10
%35543 = getelementptr inbounds double, double* %35542, i64 1
%35544 = load double, double* %35543
%35545 = fsub double %35541, %35544
%35546 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35545, double* %35546
%35547 = load double*, double** %13
%35548 = getelementptr inbounds double, double* %35547, i64 2
%35549 = load double, double* %35548
%35550 = load double*, double** %10
%35551 = getelementptr inbounds double, double* %35550, i64 2
%35552 = load double, double* %35551
%35553 = fsub double %35549, %35552
%35554 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35553, double* %35554
%35555 = load double*, double** %9
%35556 = getelementptr inbounds double, double* %35555, i64 0
%35557 = load double, double* %35556
%35558 = load double*, double** %10
%35559 = getelementptr inbounds double, double* %35558, i64 0
%35560 = load double, double* %35559
%35561 = fsub double %35557, %35560
%35562 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35561, double* %35562
%35563 = load double*, double** %9
%35564 = getelementptr inbounds double, double* %35563, i64 1
%35565 = load double, double* %35564
%35566 = load double*, double** %10
%35567 = getelementptr inbounds double, double* %35566, i64 1
%35568 = load double, double* %35567
%35569 = fsub double %35565, %35568
%35570 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35569, double* %35570
%35571 = load double*, double** %9
%35572 = getelementptr inbounds double, double* %35571, i64 2
%35573 = load double, double* %35572
%35574 = load double*, double** %10
%35575 = getelementptr inbounds double, double* %35574, i64 2
%35576 = load double, double* %35575
%35577 = fsub double %35573, %35576
%35578 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35577, double* %35578
%35579 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35580 = load double, double* %35579
%35581 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35582 = load double, double* %35581
%35583 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35584 = load double, double* %35583
%35585 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35586 = load double, double* %35585
%35587 = fmul double %35584, %35586
%35588 = fneg double %35587
%35589 = call double @llvm.fmuladd.f64(double %35580, double %35582, double %35588)
%35590 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35589, double* %35590
%35591 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35592 = load double, double* %35591
%35593 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35594 = load double, double* %35593
%35595 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35596 = load double, double* %35595
%35597 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35598 = load double, double* %35597
%35599 = fmul double %35596, %35598
%35600 = fneg double %35599
%35601 = call double @llvm.fmuladd.f64(double %35592, double %35594, double %35600)
%35602 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35601, double* %35602
%35603 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35604 = load double, double* %35603
%35605 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35606 = load double, double* %35605
%35607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35608 = load double, double* %35607
%35609 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35610 = load double, double* %35609
%35611 = fmul double %35608, %35610
%35612 = fneg double %35611
%35613 = call double @llvm.fmuladd.f64(double %35604, double %35606, double %35612)
%35614 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35613, double* %35614
%35615 = load double*, double** %11
%35616 = getelementptr inbounds double, double* %35615, i64 0
%35617 = load double, double* %35616
%35618 = load double*, double** %10
%35619 = getelementptr inbounds double, double* %35618, i64 0
%35620 = load double, double* %35619
%35621 = fsub double %35617, %35620
%35622 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35621, double* %35622
%35623 = load double*, double** %11
%35624 = getelementptr inbounds double, double* %35623, i64 1
%35625 = load double, double* %35624
%35626 = load double*, double** %10
%35627 = getelementptr inbounds double, double* %35626, i64 1
%35628 = load double, double* %35627
%35629 = fsub double %35625, %35628
%35630 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35629, double* %35630
%35631 = load double*, double** %11
%35632 = getelementptr inbounds double, double* %35631, i64 2
%35633 = load double, double* %35632
%35634 = load double*, double** %10
%35635 = getelementptr inbounds double, double* %35634, i64 2
%35636 = load double, double* %35635
%35637 = fsub double %35633, %35636
%35638 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35637, double* %35638
%35639 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35640 = load double, double* %35639
%35641 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35642 = load double, double* %35641
%35643 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35644 = load double, double* %35643
%35645 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35646 = load double, double* %35645
%35647 = fmul double %35644, %35646
%35648 = call double @llvm.fmuladd.f64(double %35640, double %35642, double %35647)
%35649 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35650 = load double, double* %35649
%35651 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35652 = load double, double* %35651
%35653 = call double @llvm.fmuladd.f64(double %35650, double %35652, double %35648)
%35654 = fcmp ogt double %35653, 0.000000e+00
br i1 %35654, label %35655, label %35656
35655: ; preds = %35530
store i32 0, i32* %7
br label %37464
35656: ; preds = %35530
store i32 1, i32* %7
br label %37464
35657: ; preds = %35401
%35658 = load double*, double** %11
%35659 = getelementptr inbounds double, double* %35658, i64 0
%35660 = load double, double* %35659
%35661 = load double*, double** %9
%35662 = getelementptr inbounds double, double* %35661, i64 0
%35663 = load double, double* %35662
%35664 = fsub double %35660, %35663
%35665 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35664, double* %35665
%35666 = load double*, double** %11
%35667 = getelementptr inbounds double, double* %35666, i64 1
%35668 = load double, double* %35667
%35669 = load double*, double** %9
%35670 = getelementptr inbounds double, double* %35669, i64 1
%35671 = load double, double* %35670
%35672 = fsub double %35668, %35671
%35673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35672, double* %35673
%35674 = load double*, double** %11
%35675 = getelementptr inbounds double, double* %35674, i64 2
%35676 = load double, double* %35675
%35677 = load double*, double** %9
%35678 = getelementptr inbounds double, double* %35677, i64 2
%35679 = load double, double* %35678
%35680 = fsub double %35676, %35679
%35681 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35680, double* %35681
%35682 = load double*, double** %10
%35683 = getelementptr inbounds double, double* %35682, i64 0
%35684 = load double, double* %35683
%35685 = load double*, double** %9
%35686 = getelementptr inbounds double, double* %35685, i64 0
%35687 = load double, double* %35686
%35688 = fsub double %35684, %35687
%35689 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35688, double* %35689
%35690 = load double*, double** %10
%35691 = getelementptr inbounds double, double* %35690, i64 1
%35692 = load double, double* %35691
%35693 = load double*, double** %9
%35694 = getelementptr inbounds double, double* %35693, i64 1
%35695 = load double, double* %35694
%35696 = fsub double %35692, %35695
%35697 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35696, double* %35697
%35698 = load double*, double** %10
%35699 = getelementptr inbounds double, double* %35698, i64 2
%35700 = load double, double* %35699
%35701 = load double*, double** %9
%35702 = getelementptr inbounds double, double* %35701, i64 2
%35703 = load double, double* %35702
%35704 = fsub double %35700, %35703
%35705 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35704, double* %35705
%35706 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35707 = load double, double* %35706
%35708 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35709 = load double, double* %35708
%35710 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35711 = load double, double* %35710
%35712 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35713 = load double, double* %35712
%35714 = fmul double %35711, %35713
%35715 = fneg double %35714
%35716 = call double @llvm.fmuladd.f64(double %35707, double %35709, double %35715)
%35717 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35716, double* %35717
%35718 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35719 = load double, double* %35718
%35720 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35721 = load double, double* %35720
%35722 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35723 = load double, double* %35722
%35724 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35725 = load double, double* %35724
%35726 = fmul double %35723, %35725
%35727 = fneg double %35726
%35728 = call double @llvm.fmuladd.f64(double %35719, double %35721, double %35727)
%35729 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35728, double* %35729
%35730 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35731 = load double, double* %35730
%35732 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35733 = load double, double* %35732
%35734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35735 = load double, double* %35734
%35736 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35737 = load double, double* %35736
%35738 = fmul double %35735, %35737
%35739 = fneg double %35738
%35740 = call double @llvm.fmuladd.f64(double %35731, double %35733, double %35739)
%35741 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35740, double* %35741
%35742 = load double*, double** %13
%35743 = getelementptr inbounds double, double* %35742, i64 0
%35744 = load double, double* %35743
%35745 = load double*, double** %9
%35746 = getelementptr inbounds double, double* %35745, i64 0
%35747 = load double, double* %35746
%35748 = fsub double %35744, %35747
%35749 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35748, double* %35749
%35750 = load double*, double** %13
%35751 = getelementptr inbounds double, double* %35750, i64 1
%35752 = load double, double* %35751
%35753 = load double*, double** %9
%35754 = getelementptr inbounds double, double* %35753, i64 1
%35755 = load double, double* %35754
%35756 = fsub double %35752, %35755
%35757 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35756, double* %35757
%35758 = load double*, double** %13
%35759 = getelementptr inbounds double, double* %35758, i64 2
%35760 = load double, double* %35759
%35761 = load double*, double** %9
%35762 = getelementptr inbounds double, double* %35761, i64 2
%35763 = load double, double* %35762
%35764 = fsub double %35760, %35763
%35765 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35764, double* %35765
%35766 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35767 = load double, double* %35766
%35768 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35769 = load double, double* %35768
%35770 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35771 = load double, double* %35770
%35772 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35773 = load double, double* %35772
%35774 = fmul double %35771, %35773
%35775 = call double @llvm.fmuladd.f64(double %35767, double %35769, double %35774)
%35776 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35777 = load double, double* %35776
%35778 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35779 = load double, double* %35778
%35780 = call double @llvm.fmuladd.f64(double %35777, double %35779, double %35775)
%35781 = fcmp ogt double %35780, 0.000000e+00
br i1 %35781, label %35782, label %35783
35782: ; preds = %35657
store i32 0, i32* %7
br label %37464
35783: ; preds = %35657
%35784 = load double*, double** %11
%35785 = getelementptr inbounds double, double* %35784, i64 0
%35786 = load double, double* %35785
%35787 = load double*, double** %10
%35788 = getelementptr inbounds double, double* %35787, i64 0
%35789 = load double, double* %35788
%35790 = fsub double %35786, %35789
%35791 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35790, double* %35791
%35792 = load double*, double** %11
%35793 = getelementptr inbounds double, double* %35792, i64 1
%35794 = load double, double* %35793
%35795 = load double*, double** %10
%35796 = getelementptr inbounds double, double* %35795, i64 1
%35797 = load double, double* %35796
%35798 = fsub double %35794, %35797
%35799 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35798, double* %35799
%35800 = load double*, double** %11
%35801 = getelementptr inbounds double, double* %35800, i64 2
%35802 = load double, double* %35801
%35803 = load double*, double** %10
%35804 = getelementptr inbounds double, double* %35803, i64 2
%35805 = load double, double* %35804
%35806 = fsub double %35802, %35805
%35807 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35806, double* %35807
%35808 = load double*, double** %8
%35809 = getelementptr inbounds double, double* %35808, i64 0
%35810 = load double, double* %35809
%35811 = load double*, double** %10
%35812 = getelementptr inbounds double, double* %35811, i64 0
%35813 = load double, double* %35812
%35814 = fsub double %35810, %35813
%35815 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35814, double* %35815
%35816 = load double*, double** %8
%35817 = getelementptr inbounds double, double* %35816, i64 1
%35818 = load double, double* %35817
%35819 = load double*, double** %10
%35820 = getelementptr inbounds double, double* %35819, i64 1
%35821 = load double, double* %35820
%35822 = fsub double %35818, %35821
%35823 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35822, double* %35823
%35824 = load double*, double** %8
%35825 = getelementptr inbounds double, double* %35824, i64 2
%35826 = load double, double* %35825
%35827 = load double*, double** %10
%35828 = getelementptr inbounds double, double* %35827, i64 2
%35829 = load double, double* %35828
%35830 = fsub double %35826, %35829
%35831 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35830, double* %35831
%35832 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35833 = load double, double* %35832
%35834 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35835 = load double, double* %35834
%35836 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35837 = load double, double* %35836
%35838 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35839 = load double, double* %35838
%35840 = fmul double %35837, %35839
%35841 = fneg double %35840
%35842 = call double @llvm.fmuladd.f64(double %35833, double %35835, double %35841)
%35843 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35842, double* %35843
%35844 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35845 = load double, double* %35844
%35846 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35847 = load double, double* %35846
%35848 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35849 = load double, double* %35848
%35850 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35851 = load double, double* %35850
%35852 = fmul double %35849, %35851
%35853 = fneg double %35852
%35854 = call double @llvm.fmuladd.f64(double %35845, double %35847, double %35853)
%35855 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35854, double* %35855
%35856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35857 = load double, double* %35856
%35858 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35859 = load double, double* %35858
%35860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35861 = load double, double* %35860
%35862 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35863 = load double, double* %35862
%35864 = fmul double %35861, %35863
%35865 = fneg double %35864
%35866 = call double @llvm.fmuladd.f64(double %35857, double %35859, double %35865)
%35867 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35866, double* %35867
%35868 = load double*, double** %12
%35869 = getelementptr inbounds double, double* %35868, i64 0
%35870 = load double, double* %35869
%35871 = load double*, double** %10
%35872 = getelementptr inbounds double, double* %35871, i64 0
%35873 = load double, double* %35872
%35874 = fsub double %35870, %35873
%35875 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35874, double* %35875
%35876 = load double*, double** %12
%35877 = getelementptr inbounds double, double* %35876, i64 1
%35878 = load double, double* %35877
%35879 = load double*, double** %10
%35880 = getelementptr inbounds double, double* %35879, i64 1
%35881 = load double, double* %35880
%35882 = fsub double %35878, %35881
%35883 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35882, double* %35883
%35884 = load double*, double** %12
%35885 = getelementptr inbounds double, double* %35884, i64 2
%35886 = load double, double* %35885
%35887 = load double*, double** %10
%35888 = getelementptr inbounds double, double* %35887, i64 2
%35889 = load double, double* %35888
%35890 = fsub double %35886, %35889
%35891 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35890, double* %35891
%35892 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35893 = load double, double* %35892
%35894 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%35895 = load double, double* %35894
%35896 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35897 = load double, double* %35896
%35898 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%35899 = load double, double* %35898
%35900 = fmul double %35897, %35899
%35901 = call double @llvm.fmuladd.f64(double %35893, double %35895, double %35900)
%35902 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35903 = load double, double* %35902
%35904 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%35905 = load double, double* %35904
%35906 = call double @llvm.fmuladd.f64(double %35903, double %35905, double %35901)
%35907 = fcmp ogt double %35906, 0.000000e+00
br i1 %35907, label %35908, label %35909
35908: ; preds = %35783
store i32 0, i32* %7
br label %37464
35909: ; preds = %35783
store i32 1, i32* %7
br label %37464
35910: ; preds = %35142
%35911 = load double, double* %19
%35912 = fcmp olt double %35911, 0.000000e+00
br i1 %35912, label %35913, label %36422
35913: ; preds = %35910
%35914 = load double, double* %18
%35915 = fcmp oge double %35914, 0.000000e+00
br i1 %35915, label %35916, label %36169
35916: ; preds = %35913
%35917 = load double*, double** %13
%35918 = getelementptr inbounds double, double* %35917, i64 0
%35919 = load double, double* %35918
%35920 = load double*, double** %9
%35921 = getelementptr inbounds double, double* %35920, i64 0
%35922 = load double, double* %35921
%35923 = fsub double %35919, %35922
%35924 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %35923, double* %35924
%35925 = load double*, double** %13
%35926 = getelementptr inbounds double, double* %35925, i64 1
%35927 = load double, double* %35926
%35928 = load double*, double** %9
%35929 = getelementptr inbounds double, double* %35928, i64 1
%35930 = load double, double* %35929
%35931 = fsub double %35927, %35930
%35932 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %35931, double* %35932
%35933 = load double*, double** %13
%35934 = getelementptr inbounds double, double* %35933, i64 2
%35935 = load double, double* %35934
%35936 = load double*, double** %9
%35937 = getelementptr inbounds double, double* %35936, i64 2
%35938 = load double, double* %35937
%35939 = fsub double %35935, %35938
%35940 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %35939, double* %35940
%35941 = load double*, double** %10
%35942 = getelementptr inbounds double, double* %35941, i64 0
%35943 = load double, double* %35942
%35944 = load double*, double** %9
%35945 = getelementptr inbounds double, double* %35944, i64 0
%35946 = load double, double* %35945
%35947 = fsub double %35943, %35946
%35948 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %35947, double* %35948
%35949 = load double*, double** %10
%35950 = getelementptr inbounds double, double* %35949, i64 1
%35951 = load double, double* %35950
%35952 = load double*, double** %9
%35953 = getelementptr inbounds double, double* %35952, i64 1
%35954 = load double, double* %35953
%35955 = fsub double %35951, %35954
%35956 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %35955, double* %35956
%35957 = load double*, double** %10
%35958 = getelementptr inbounds double, double* %35957, i64 2
%35959 = load double, double* %35958
%35960 = load double*, double** %9
%35961 = getelementptr inbounds double, double* %35960, i64 2
%35962 = load double, double* %35961
%35963 = fsub double %35959, %35962
%35964 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %35963, double* %35964
%35965 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35966 = load double, double* %35965
%35967 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35968 = load double, double* %35967
%35969 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35970 = load double, double* %35969
%35971 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35972 = load double, double* %35971
%35973 = fmul double %35970, %35972
%35974 = fneg double %35973
%35975 = call double @llvm.fmuladd.f64(double %35966, double %35968, double %35974)
%35976 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %35975, double* %35976
%35977 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%35978 = load double, double* %35977
%35979 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35980 = load double, double* %35979
%35981 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35982 = load double, double* %35981
%35983 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%35984 = load double, double* %35983
%35985 = fmul double %35982, %35984
%35986 = fneg double %35985
%35987 = call double @llvm.fmuladd.f64(double %35978, double %35980, double %35986)
%35988 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %35987, double* %35988
%35989 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%35990 = load double, double* %35989
%35991 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%35992 = load double, double* %35991
%35993 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%35994 = load double, double* %35993
%35995 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%35996 = load double, double* %35995
%35997 = fmul double %35994, %35996
%35998 = fneg double %35997
%35999 = call double @llvm.fmuladd.f64(double %35990, double %35992, double %35998)
%36000 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %35999, double* %36000
%36001 = load double*, double** %12
%36002 = getelementptr inbounds double, double* %36001, i64 0
%36003 = load double, double* %36002
%36004 = load double*, double** %9
%36005 = getelementptr inbounds double, double* %36004, i64 0
%36006 = load double, double* %36005
%36007 = fsub double %36003, %36006
%36008 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36007, double* %36008
%36009 = load double*, double** %12
%36010 = getelementptr inbounds double, double* %36009, i64 1
%36011 = load double, double* %36010
%36012 = load double*, double** %9
%36013 = getelementptr inbounds double, double* %36012, i64 1
%36014 = load double, double* %36013
%36015 = fsub double %36011, %36014
%36016 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36015, double* %36016
%36017 = load double*, double** %12
%36018 = getelementptr inbounds double, double* %36017, i64 2
%36019 = load double, double* %36018
%36020 = load double*, double** %9
%36021 = getelementptr inbounds double, double* %36020, i64 2
%36022 = load double, double* %36021
%36023 = fsub double %36019, %36022
%36024 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36023, double* %36024
%36025 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36026 = load double, double* %36025
%36027 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36028 = load double, double* %36027
%36029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36030 = load double, double* %36029
%36031 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36032 = load double, double* %36031
%36033 = fmul double %36030, %36032
%36034 = call double @llvm.fmuladd.f64(double %36026, double %36028, double %36033)
%36035 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36036 = load double, double* %36035
%36037 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36038 = load double, double* %36037
%36039 = call double @llvm.fmuladd.f64(double %36036, double %36038, double %36034)
%36040 = fcmp ogt double %36039, 0.000000e+00
br i1 %36040, label %36041, label %36042
36041: ; preds = %35916
store i32 0, i32* %7
br label %37464
36042: ; preds = %35916
%36043 = load double*, double** %13
%36044 = getelementptr inbounds double, double* %36043, i64 0
%36045 = load double, double* %36044
%36046 = load double*, double** %10
%36047 = getelementptr inbounds double, double* %36046, i64 0
%36048 = load double, double* %36047
%36049 = fsub double %36045, %36048
%36050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36049, double* %36050
%36051 = load double*, double** %13
%36052 = getelementptr inbounds double, double* %36051, i64 1
%36053 = load double, double* %36052
%36054 = load double*, double** %10
%36055 = getelementptr inbounds double, double* %36054, i64 1
%36056 = load double, double* %36055
%36057 = fsub double %36053, %36056
%36058 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36057, double* %36058
%36059 = load double*, double** %13
%36060 = getelementptr inbounds double, double* %36059, i64 2
%36061 = load double, double* %36060
%36062 = load double*, double** %10
%36063 = getelementptr inbounds double, double* %36062, i64 2
%36064 = load double, double* %36063
%36065 = fsub double %36061, %36064
%36066 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36065, double* %36066
%36067 = load double*, double** %8
%36068 = getelementptr inbounds double, double* %36067, i64 0
%36069 = load double, double* %36068
%36070 = load double*, double** %10
%36071 = getelementptr inbounds double, double* %36070, i64 0
%36072 = load double, double* %36071
%36073 = fsub double %36069, %36072
%36074 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36073, double* %36074
%36075 = load double*, double** %8
%36076 = getelementptr inbounds double, double* %36075, i64 1
%36077 = load double, double* %36076
%36078 = load double*, double** %10
%36079 = getelementptr inbounds double, double* %36078, i64 1
%36080 = load double, double* %36079
%36081 = fsub double %36077, %36080
%36082 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36081, double* %36082
%36083 = load double*, double** %8
%36084 = getelementptr inbounds double, double* %36083, i64 2
%36085 = load double, double* %36084
%36086 = load double*, double** %10
%36087 = getelementptr inbounds double, double* %36086, i64 2
%36088 = load double, double* %36087
%36089 = fsub double %36085, %36088
%36090 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36089, double* %36090
%36091 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36092 = load double, double* %36091
%36093 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36094 = load double, double* %36093
%36095 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36096 = load double, double* %36095
%36097 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36098 = load double, double* %36097
%36099 = fmul double %36096, %36098
%36100 = fneg double %36099
%36101 = call double @llvm.fmuladd.f64(double %36092, double %36094, double %36100)
%36102 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36101, double* %36102
%36103 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36104 = load double, double* %36103
%36105 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36106 = load double, double* %36105
%36107 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36108 = load double, double* %36107
%36109 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36110 = load double, double* %36109
%36111 = fmul double %36108, %36110
%36112 = fneg double %36111
%36113 = call double @llvm.fmuladd.f64(double %36104, double %36106, double %36112)
%36114 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36113, double* %36114
%36115 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36116 = load double, double* %36115
%36117 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36118 = load double, double* %36117
%36119 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36120 = load double, double* %36119
%36121 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36122 = load double, double* %36121
%36123 = fmul double %36120, %36122
%36124 = fneg double %36123
%36125 = call double @llvm.fmuladd.f64(double %36116, double %36118, double %36124)
%36126 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36125, double* %36126
%36127 = load double*, double** %11
%36128 = getelementptr inbounds double, double* %36127, i64 0
%36129 = load double, double* %36128
%36130 = load double*, double** %10
%36131 = getelementptr inbounds double, double* %36130, i64 0
%36132 = load double, double* %36131
%36133 = fsub double %36129, %36132
%36134 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36133, double* %36134
%36135 = load double*, double** %11
%36136 = getelementptr inbounds double, double* %36135, i64 1
%36137 = load double, double* %36136
%36138 = load double*, double** %10
%36139 = getelementptr inbounds double, double* %36138, i64 1
%36140 = load double, double* %36139
%36141 = fsub double %36137, %36140
%36142 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36141, double* %36142
%36143 = load double*, double** %11
%36144 = getelementptr inbounds double, double* %36143, i64 2
%36145 = load double, double* %36144
%36146 = load double*, double** %10
%36147 = getelementptr inbounds double, double* %36146, i64 2
%36148 = load double, double* %36147
%36149 = fsub double %36145, %36148
%36150 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36149, double* %36150
%36151 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36152 = load double, double* %36151
%36153 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36154 = load double, double* %36153
%36155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36156 = load double, double* %36155
%36157 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36158 = load double, double* %36157
%36159 = fmul double %36156, %36158
%36160 = call double @llvm.fmuladd.f64(double %36152, double %36154, double %36159)
%36161 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36162 = load double, double* %36161
%36163 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36164 = load double, double* %36163
%36165 = call double @llvm.fmuladd.f64(double %36162, double %36164, double %36160)
%36166 = fcmp ogt double %36165, 0.000000e+00
br i1 %36166, label %36167, label %36168
36167: ; preds = %36042
store i32 0, i32* %7
br label %37464
36168: ; preds = %36042
store i32 1, i32* %7
br label %37464
36169: ; preds = %35913
%36170 = load double*, double** %11
%36171 = getelementptr inbounds double, double* %36170, i64 0
%36172 = load double, double* %36171
%36173 = load double*, double** %8
%36174 = getelementptr inbounds double, double* %36173, i64 0
%36175 = load double, double* %36174
%36176 = fsub double %36172, %36175
%36177 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36176, double* %36177
%36178 = load double*, double** %11
%36179 = getelementptr inbounds double, double* %36178, i64 1
%36180 = load double, double* %36179
%36181 = load double*, double** %8
%36182 = getelementptr inbounds double, double* %36181, i64 1
%36183 = load double, double* %36182
%36184 = fsub double %36180, %36183
%36185 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36184, double* %36185
%36186 = load double*, double** %11
%36187 = getelementptr inbounds double, double* %36186, i64 2
%36188 = load double, double* %36187
%36189 = load double*, double** %8
%36190 = getelementptr inbounds double, double* %36189, i64 2
%36191 = load double, double* %36190
%36192 = fsub double %36188, %36191
%36193 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36192, double* %36193
%36194 = load double*, double** %10
%36195 = getelementptr inbounds double, double* %36194, i64 0
%36196 = load double, double* %36195
%36197 = load double*, double** %8
%36198 = getelementptr inbounds double, double* %36197, i64 0
%36199 = load double, double* %36198
%36200 = fsub double %36196, %36199
%36201 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36200, double* %36201
%36202 = load double*, double** %10
%36203 = getelementptr inbounds double, double* %36202, i64 1
%36204 = load double, double* %36203
%36205 = load double*, double** %8
%36206 = getelementptr inbounds double, double* %36205, i64 1
%36207 = load double, double* %36206
%36208 = fsub double %36204, %36207
%36209 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36208, double* %36209
%36210 = load double*, double** %10
%36211 = getelementptr inbounds double, double* %36210, i64 2
%36212 = load double, double* %36211
%36213 = load double*, double** %8
%36214 = getelementptr inbounds double, double* %36213, i64 2
%36215 = load double, double* %36214
%36216 = fsub double %36212, %36215
%36217 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36216, double* %36217
%36218 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36219 = load double, double* %36218
%36220 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36221 = load double, double* %36220
%36222 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36223 = load double, double* %36222
%36224 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36225 = load double, double* %36224
%36226 = fmul double %36223, %36225
%36227 = fneg double %36226
%36228 = call double @llvm.fmuladd.f64(double %36219, double %36221, double %36227)
%36229 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36228, double* %36229
%36230 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36231 = load double, double* %36230
%36232 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36233 = load double, double* %36232
%36234 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36235 = load double, double* %36234
%36236 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36237 = load double, double* %36236
%36238 = fmul double %36235, %36237
%36239 = fneg double %36238
%36240 = call double @llvm.fmuladd.f64(double %36231, double %36233, double %36239)
%36241 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36240, double* %36241
%36242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36243 = load double, double* %36242
%36244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36245 = load double, double* %36244
%36246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36247 = load double, double* %36246
%36248 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36249 = load double, double* %36248
%36250 = fmul double %36247, %36249
%36251 = fneg double %36250
%36252 = call double @llvm.fmuladd.f64(double %36243, double %36245, double %36251)
%36253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36252, double* %36253
%36254 = load double*, double** %13
%36255 = getelementptr inbounds double, double* %36254, i64 0
%36256 = load double, double* %36255
%36257 = load double*, double** %8
%36258 = getelementptr inbounds double, double* %36257, i64 0
%36259 = load double, double* %36258
%36260 = fsub double %36256, %36259
%36261 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36260, double* %36261
%36262 = load double*, double** %13
%36263 = getelementptr inbounds double, double* %36262, i64 1
%36264 = load double, double* %36263
%36265 = load double*, double** %8
%36266 = getelementptr inbounds double, double* %36265, i64 1
%36267 = load double, double* %36266
%36268 = fsub double %36264, %36267
%36269 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36268, double* %36269
%36270 = load double*, double** %13
%36271 = getelementptr inbounds double, double* %36270, i64 2
%36272 = load double, double* %36271
%36273 = load double*, double** %8
%36274 = getelementptr inbounds double, double* %36273, i64 2
%36275 = load double, double* %36274
%36276 = fsub double %36272, %36275
%36277 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36276, double* %36277
%36278 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36279 = load double, double* %36278
%36280 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36281 = load double, double* %36280
%36282 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36283 = load double, double* %36282
%36284 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36285 = load double, double* %36284
%36286 = fmul double %36283, %36285
%36287 = call double @llvm.fmuladd.f64(double %36279, double %36281, double %36286)
%36288 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36289 = load double, double* %36288
%36290 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36291 = load double, double* %36290
%36292 = call double @llvm.fmuladd.f64(double %36289, double %36291, double %36287)
%36293 = fcmp ogt double %36292, 0.000000e+00
br i1 %36293, label %36294, label %36295
36294: ; preds = %36169
store i32 0, i32* %7
br label %37464
36295: ; preds = %36169
%36296 = load double*, double** %11
%36297 = getelementptr inbounds double, double* %36296, i64 0
%36298 = load double, double* %36297
%36299 = load double*, double** %10
%36300 = getelementptr inbounds double, double* %36299, i64 0
%36301 = load double, double* %36300
%36302 = fsub double %36298, %36301
%36303 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36302, double* %36303
%36304 = load double*, double** %11
%36305 = getelementptr inbounds double, double* %36304, i64 1
%36306 = load double, double* %36305
%36307 = load double*, double** %10
%36308 = getelementptr inbounds double, double* %36307, i64 1
%36309 = load double, double* %36308
%36310 = fsub double %36306, %36309
%36311 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36310, double* %36311
%36312 = load double*, double** %11
%36313 = getelementptr inbounds double, double* %36312, i64 2
%36314 = load double, double* %36313
%36315 = load double*, double** %10
%36316 = getelementptr inbounds double, double* %36315, i64 2
%36317 = load double, double* %36316
%36318 = fsub double %36314, %36317
%36319 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36318, double* %36319
%36320 = load double*, double** %9
%36321 = getelementptr inbounds double, double* %36320, i64 0
%36322 = load double, double* %36321
%36323 = load double*, double** %10
%36324 = getelementptr inbounds double, double* %36323, i64 0
%36325 = load double, double* %36324
%36326 = fsub double %36322, %36325
%36327 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36326, double* %36327
%36328 = load double*, double** %9
%36329 = getelementptr inbounds double, double* %36328, i64 1
%36330 = load double, double* %36329
%36331 = load double*, double** %10
%36332 = getelementptr inbounds double, double* %36331, i64 1
%36333 = load double, double* %36332
%36334 = fsub double %36330, %36333
%36335 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36334, double* %36335
%36336 = load double*, double** %9
%36337 = getelementptr inbounds double, double* %36336, i64 2
%36338 = load double, double* %36337
%36339 = load double*, double** %10
%36340 = getelementptr inbounds double, double* %36339, i64 2
%36341 = load double, double* %36340
%36342 = fsub double %36338, %36341
%36343 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36342, double* %36343
%36344 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36345 = load double, double* %36344
%36346 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36347 = load double, double* %36346
%36348 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36349 = load double, double* %36348
%36350 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36351 = load double, double* %36350
%36352 = fmul double %36349, %36351
%36353 = fneg double %36352
%36354 = call double @llvm.fmuladd.f64(double %36345, double %36347, double %36353)
%36355 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36354, double* %36355
%36356 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36357 = load double, double* %36356
%36358 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36359 = load double, double* %36358
%36360 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36361 = load double, double* %36360
%36362 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36363 = load double, double* %36362
%36364 = fmul double %36361, %36363
%36365 = fneg double %36364
%36366 = call double @llvm.fmuladd.f64(double %36357, double %36359, double %36365)
%36367 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36366, double* %36367
%36368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36369 = load double, double* %36368
%36370 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36371 = load double, double* %36370
%36372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36373 = load double, double* %36372
%36374 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36375 = load double, double* %36374
%36376 = fmul double %36373, %36375
%36377 = fneg double %36376
%36378 = call double @llvm.fmuladd.f64(double %36369, double %36371, double %36377)
%36379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36378, double* %36379
%36380 = load double*, double** %12
%36381 = getelementptr inbounds double, double* %36380, i64 0
%36382 = load double, double* %36381
%36383 = load double*, double** %10
%36384 = getelementptr inbounds double, double* %36383, i64 0
%36385 = load double, double* %36384
%36386 = fsub double %36382, %36385
%36387 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36386, double* %36387
%36388 = load double*, double** %12
%36389 = getelementptr inbounds double, double* %36388, i64 1
%36390 = load double, double* %36389
%36391 = load double*, double** %10
%36392 = getelementptr inbounds double, double* %36391, i64 1
%36393 = load double, double* %36392
%36394 = fsub double %36390, %36393
%36395 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36394, double* %36395
%36396 = load double*, double** %12
%36397 = getelementptr inbounds double, double* %36396, i64 2
%36398 = load double, double* %36397
%36399 = load double*, double** %10
%36400 = getelementptr inbounds double, double* %36399, i64 2
%36401 = load double, double* %36400
%36402 = fsub double %36398, %36401
%36403 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36402, double* %36403
%36404 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36405 = load double, double* %36404
%36406 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36407 = load double, double* %36406
%36408 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36409 = load double, double* %36408
%36410 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36411 = load double, double* %36410
%36412 = fmul double %36409, %36411
%36413 = call double @llvm.fmuladd.f64(double %36405, double %36407, double %36412)
%36414 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36415 = load double, double* %36414
%36416 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36417 = load double, double* %36416
%36418 = call double @llvm.fmuladd.f64(double %36415, double %36417, double %36413)
%36419 = fcmp ogt double %36418, 0.000000e+00
br i1 %36419, label %36420, label %36421
36420: ; preds = %36295
store i32 0, i32* %7
br label %37464
36421: ; preds = %36295
store i32 1, i32* %7
br label %37464
36422: ; preds = %35910
%36423 = load double, double* %19
%36424 = fcmp ogt double %36423, 0.000000e+00
br i1 %36424, label %36425, label %36934
36425: ; preds = %36422
%36426 = load double, double* %18
%36427 = fcmp ogt double %36426, 0.000000e+00
br i1 %36427, label %36428, label %36681
36428: ; preds = %36425
%36429 = load double*, double** %11
%36430 = getelementptr inbounds double, double* %36429, i64 0
%36431 = load double, double* %36430
%36432 = load double*, double** %9
%36433 = getelementptr inbounds double, double* %36432, i64 0
%36434 = load double, double* %36433
%36435 = fsub double %36431, %36434
%36436 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36435, double* %36436
%36437 = load double*, double** %11
%36438 = getelementptr inbounds double, double* %36437, i64 1
%36439 = load double, double* %36438
%36440 = load double*, double** %9
%36441 = getelementptr inbounds double, double* %36440, i64 1
%36442 = load double, double* %36441
%36443 = fsub double %36439, %36442
%36444 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36443, double* %36444
%36445 = load double*, double** %11
%36446 = getelementptr inbounds double, double* %36445, i64 2
%36447 = load double, double* %36446
%36448 = load double*, double** %9
%36449 = getelementptr inbounds double, double* %36448, i64 2
%36450 = load double, double* %36449
%36451 = fsub double %36447, %36450
%36452 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36451, double* %36452
%36453 = load double*, double** %10
%36454 = getelementptr inbounds double, double* %36453, i64 0
%36455 = load double, double* %36454
%36456 = load double*, double** %9
%36457 = getelementptr inbounds double, double* %36456, i64 0
%36458 = load double, double* %36457
%36459 = fsub double %36455, %36458
%36460 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36459, double* %36460
%36461 = load double*, double** %10
%36462 = getelementptr inbounds double, double* %36461, i64 1
%36463 = load double, double* %36462
%36464 = load double*, double** %9
%36465 = getelementptr inbounds double, double* %36464, i64 1
%36466 = load double, double* %36465
%36467 = fsub double %36463, %36466
%36468 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36467, double* %36468
%36469 = load double*, double** %10
%36470 = getelementptr inbounds double, double* %36469, i64 2
%36471 = load double, double* %36470
%36472 = load double*, double** %9
%36473 = getelementptr inbounds double, double* %36472, i64 2
%36474 = load double, double* %36473
%36475 = fsub double %36471, %36474
%36476 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36475, double* %36476
%36477 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36478 = load double, double* %36477
%36479 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36480 = load double, double* %36479
%36481 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36482 = load double, double* %36481
%36483 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36484 = load double, double* %36483
%36485 = fmul double %36482, %36484
%36486 = fneg double %36485
%36487 = call double @llvm.fmuladd.f64(double %36478, double %36480, double %36486)
%36488 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36487, double* %36488
%36489 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36490 = load double, double* %36489
%36491 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36492 = load double, double* %36491
%36493 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36494 = load double, double* %36493
%36495 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36496 = load double, double* %36495
%36497 = fmul double %36494, %36496
%36498 = fneg double %36497
%36499 = call double @llvm.fmuladd.f64(double %36490, double %36492, double %36498)
%36500 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36499, double* %36500
%36501 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36502 = load double, double* %36501
%36503 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36504 = load double, double* %36503
%36505 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36506 = load double, double* %36505
%36507 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36508 = load double, double* %36507
%36509 = fmul double %36506, %36508
%36510 = fneg double %36509
%36511 = call double @llvm.fmuladd.f64(double %36502, double %36504, double %36510)
%36512 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36511, double* %36512
%36513 = load double*, double** %13
%36514 = getelementptr inbounds double, double* %36513, i64 0
%36515 = load double, double* %36514
%36516 = load double*, double** %9
%36517 = getelementptr inbounds double, double* %36516, i64 0
%36518 = load double, double* %36517
%36519 = fsub double %36515, %36518
%36520 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36519, double* %36520
%36521 = load double*, double** %13
%36522 = getelementptr inbounds double, double* %36521, i64 1
%36523 = load double, double* %36522
%36524 = load double*, double** %9
%36525 = getelementptr inbounds double, double* %36524, i64 1
%36526 = load double, double* %36525
%36527 = fsub double %36523, %36526
%36528 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36527, double* %36528
%36529 = load double*, double** %13
%36530 = getelementptr inbounds double, double* %36529, i64 2
%36531 = load double, double* %36530
%36532 = load double*, double** %9
%36533 = getelementptr inbounds double, double* %36532, i64 2
%36534 = load double, double* %36533
%36535 = fsub double %36531, %36534
%36536 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36535, double* %36536
%36537 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36538 = load double, double* %36537
%36539 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36540 = load double, double* %36539
%36541 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36542 = load double, double* %36541
%36543 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36544 = load double, double* %36543
%36545 = fmul double %36542, %36544
%36546 = call double @llvm.fmuladd.f64(double %36538, double %36540, double %36545)
%36547 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36548 = load double, double* %36547
%36549 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36550 = load double, double* %36549
%36551 = call double @llvm.fmuladd.f64(double %36548, double %36550, double %36546)
%36552 = fcmp ogt double %36551, 0.000000e+00
br i1 %36552, label %36553, label %36554
36553: ; preds = %36428
store i32 0, i32* %7
br label %37464
36554: ; preds = %36428
%36555 = load double*, double** %11
%36556 = getelementptr inbounds double, double* %36555, i64 0
%36557 = load double, double* %36556
%36558 = load double*, double** %10
%36559 = getelementptr inbounds double, double* %36558, i64 0
%36560 = load double, double* %36559
%36561 = fsub double %36557, %36560
%36562 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36561, double* %36562
%36563 = load double*, double** %11
%36564 = getelementptr inbounds double, double* %36563, i64 1
%36565 = load double, double* %36564
%36566 = load double*, double** %10
%36567 = getelementptr inbounds double, double* %36566, i64 1
%36568 = load double, double* %36567
%36569 = fsub double %36565, %36568
%36570 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36569, double* %36570
%36571 = load double*, double** %11
%36572 = getelementptr inbounds double, double* %36571, i64 2
%36573 = load double, double* %36572
%36574 = load double*, double** %10
%36575 = getelementptr inbounds double, double* %36574, i64 2
%36576 = load double, double* %36575
%36577 = fsub double %36573, %36576
%36578 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36577, double* %36578
%36579 = load double*, double** %8
%36580 = getelementptr inbounds double, double* %36579, i64 0
%36581 = load double, double* %36580
%36582 = load double*, double** %10
%36583 = getelementptr inbounds double, double* %36582, i64 0
%36584 = load double, double* %36583
%36585 = fsub double %36581, %36584
%36586 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36585, double* %36586
%36587 = load double*, double** %8
%36588 = getelementptr inbounds double, double* %36587, i64 1
%36589 = load double, double* %36588
%36590 = load double*, double** %10
%36591 = getelementptr inbounds double, double* %36590, i64 1
%36592 = load double, double* %36591
%36593 = fsub double %36589, %36592
%36594 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36593, double* %36594
%36595 = load double*, double** %8
%36596 = getelementptr inbounds double, double* %36595, i64 2
%36597 = load double, double* %36596
%36598 = load double*, double** %10
%36599 = getelementptr inbounds double, double* %36598, i64 2
%36600 = load double, double* %36599
%36601 = fsub double %36597, %36600
%36602 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36601, double* %36602
%36603 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36604 = load double, double* %36603
%36605 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36606 = load double, double* %36605
%36607 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36608 = load double, double* %36607
%36609 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36610 = load double, double* %36609
%36611 = fmul double %36608, %36610
%36612 = fneg double %36611
%36613 = call double @llvm.fmuladd.f64(double %36604, double %36606, double %36612)
%36614 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36613, double* %36614
%36615 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36616 = load double, double* %36615
%36617 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36618 = load double, double* %36617
%36619 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36620 = load double, double* %36619
%36621 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36622 = load double, double* %36621
%36623 = fmul double %36620, %36622
%36624 = fneg double %36623
%36625 = call double @llvm.fmuladd.f64(double %36616, double %36618, double %36624)
%36626 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36625, double* %36626
%36627 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36628 = load double, double* %36627
%36629 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36630 = load double, double* %36629
%36631 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36632 = load double, double* %36631
%36633 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36634 = load double, double* %36633
%36635 = fmul double %36632, %36634
%36636 = fneg double %36635
%36637 = call double @llvm.fmuladd.f64(double %36628, double %36630, double %36636)
%36638 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36637, double* %36638
%36639 = load double*, double** %12
%36640 = getelementptr inbounds double, double* %36639, i64 0
%36641 = load double, double* %36640
%36642 = load double*, double** %10
%36643 = getelementptr inbounds double, double* %36642, i64 0
%36644 = load double, double* %36643
%36645 = fsub double %36641, %36644
%36646 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36645, double* %36646
%36647 = load double*, double** %12
%36648 = getelementptr inbounds double, double* %36647, i64 1
%36649 = load double, double* %36648
%36650 = load double*, double** %10
%36651 = getelementptr inbounds double, double* %36650, i64 1
%36652 = load double, double* %36651
%36653 = fsub double %36649, %36652
%36654 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36653, double* %36654
%36655 = load double*, double** %12
%36656 = getelementptr inbounds double, double* %36655, i64 2
%36657 = load double, double* %36656
%36658 = load double*, double** %10
%36659 = getelementptr inbounds double, double* %36658, i64 2
%36660 = load double, double* %36659
%36661 = fsub double %36657, %36660
%36662 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36661, double* %36662
%36663 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36664 = load double, double* %36663
%36665 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36666 = load double, double* %36665
%36667 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36668 = load double, double* %36667
%36669 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36670 = load double, double* %36669
%36671 = fmul double %36668, %36670
%36672 = call double @llvm.fmuladd.f64(double %36664, double %36666, double %36671)
%36673 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36674 = load double, double* %36673
%36675 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36676 = load double, double* %36675
%36677 = call double @llvm.fmuladd.f64(double %36674, double %36676, double %36672)
%36678 = fcmp ogt double %36677, 0.000000e+00
br i1 %36678, label %36679, label %36680
36679: ; preds = %36554
store i32 0, i32* %7
br label %37464
36680: ; preds = %36554
store i32 1, i32* %7
br label %37464
36681: ; preds = %36425
%36682 = load double*, double** %13
%36683 = getelementptr inbounds double, double* %36682, i64 0
%36684 = load double, double* %36683
%36685 = load double*, double** %8
%36686 = getelementptr inbounds double, double* %36685, i64 0
%36687 = load double, double* %36686
%36688 = fsub double %36684, %36687
%36689 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36688, double* %36689
%36690 = load double*, double** %13
%36691 = getelementptr inbounds double, double* %36690, i64 1
%36692 = load double, double* %36691
%36693 = load double*, double** %8
%36694 = getelementptr inbounds double, double* %36693, i64 1
%36695 = load double, double* %36694
%36696 = fsub double %36692, %36695
%36697 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36696, double* %36697
%36698 = load double*, double** %13
%36699 = getelementptr inbounds double, double* %36698, i64 2
%36700 = load double, double* %36699
%36701 = load double*, double** %8
%36702 = getelementptr inbounds double, double* %36701, i64 2
%36703 = load double, double* %36702
%36704 = fsub double %36700, %36703
%36705 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36704, double* %36705
%36706 = load double*, double** %10
%36707 = getelementptr inbounds double, double* %36706, i64 0
%36708 = load double, double* %36707
%36709 = load double*, double** %8
%36710 = getelementptr inbounds double, double* %36709, i64 0
%36711 = load double, double* %36710
%36712 = fsub double %36708, %36711
%36713 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36712, double* %36713
%36714 = load double*, double** %10
%36715 = getelementptr inbounds double, double* %36714, i64 1
%36716 = load double, double* %36715
%36717 = load double*, double** %8
%36718 = getelementptr inbounds double, double* %36717, i64 1
%36719 = load double, double* %36718
%36720 = fsub double %36716, %36719
%36721 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36720, double* %36721
%36722 = load double*, double** %10
%36723 = getelementptr inbounds double, double* %36722, i64 2
%36724 = load double, double* %36723
%36725 = load double*, double** %8
%36726 = getelementptr inbounds double, double* %36725, i64 2
%36727 = load double, double* %36726
%36728 = fsub double %36724, %36727
%36729 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36728, double* %36729
%36730 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36731 = load double, double* %36730
%36732 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36733 = load double, double* %36732
%36734 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36735 = load double, double* %36734
%36736 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36737 = load double, double* %36736
%36738 = fmul double %36735, %36737
%36739 = fneg double %36738
%36740 = call double @llvm.fmuladd.f64(double %36731, double %36733, double %36739)
%36741 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36740, double* %36741
%36742 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36743 = load double, double* %36742
%36744 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36745 = load double, double* %36744
%36746 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36747 = load double, double* %36746
%36748 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36749 = load double, double* %36748
%36750 = fmul double %36747, %36749
%36751 = fneg double %36750
%36752 = call double @llvm.fmuladd.f64(double %36743, double %36745, double %36751)
%36753 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36752, double* %36753
%36754 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36755 = load double, double* %36754
%36756 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36757 = load double, double* %36756
%36758 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36759 = load double, double* %36758
%36760 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36761 = load double, double* %36760
%36762 = fmul double %36759, %36761
%36763 = fneg double %36762
%36764 = call double @llvm.fmuladd.f64(double %36755, double %36757, double %36763)
%36765 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36764, double* %36765
%36766 = load double*, double** %12
%36767 = getelementptr inbounds double, double* %36766, i64 0
%36768 = load double, double* %36767
%36769 = load double*, double** %8
%36770 = getelementptr inbounds double, double* %36769, i64 0
%36771 = load double, double* %36770
%36772 = fsub double %36768, %36771
%36773 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36772, double* %36773
%36774 = load double*, double** %12
%36775 = getelementptr inbounds double, double* %36774, i64 1
%36776 = load double, double* %36775
%36777 = load double*, double** %8
%36778 = getelementptr inbounds double, double* %36777, i64 1
%36779 = load double, double* %36778
%36780 = fsub double %36776, %36779
%36781 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36780, double* %36781
%36782 = load double*, double** %12
%36783 = getelementptr inbounds double, double* %36782, i64 2
%36784 = load double, double* %36783
%36785 = load double*, double** %8
%36786 = getelementptr inbounds double, double* %36785, i64 2
%36787 = load double, double* %36786
%36788 = fsub double %36784, %36787
%36789 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36788, double* %36789
%36790 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36791 = load double, double* %36790
%36792 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36793 = load double, double* %36792
%36794 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36795 = load double, double* %36794
%36796 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36797 = load double, double* %36796
%36798 = fmul double %36795, %36797
%36799 = call double @llvm.fmuladd.f64(double %36791, double %36793, double %36798)
%36800 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36801 = load double, double* %36800
%36802 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36803 = load double, double* %36802
%36804 = call double @llvm.fmuladd.f64(double %36801, double %36803, double %36799)
%36805 = fcmp ogt double %36804, 0.000000e+00
br i1 %36805, label %36806, label %36807
36806: ; preds = %36681
store i32 0, i32* %7
br label %37464
36807: ; preds = %36681
%36808 = load double*, double** %13
%36809 = getelementptr inbounds double, double* %36808, i64 0
%36810 = load double, double* %36809
%36811 = load double*, double** %10
%36812 = getelementptr inbounds double, double* %36811, i64 0
%36813 = load double, double* %36812
%36814 = fsub double %36810, %36813
%36815 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36814, double* %36815
%36816 = load double*, double** %13
%36817 = getelementptr inbounds double, double* %36816, i64 1
%36818 = load double, double* %36817
%36819 = load double*, double** %10
%36820 = getelementptr inbounds double, double* %36819, i64 1
%36821 = load double, double* %36820
%36822 = fsub double %36818, %36821
%36823 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36822, double* %36823
%36824 = load double*, double** %13
%36825 = getelementptr inbounds double, double* %36824, i64 2
%36826 = load double, double* %36825
%36827 = load double*, double** %10
%36828 = getelementptr inbounds double, double* %36827, i64 2
%36829 = load double, double* %36828
%36830 = fsub double %36826, %36829
%36831 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36830, double* %36831
%36832 = load double*, double** %9
%36833 = getelementptr inbounds double, double* %36832, i64 0
%36834 = load double, double* %36833
%36835 = load double*, double** %10
%36836 = getelementptr inbounds double, double* %36835, i64 0
%36837 = load double, double* %36836
%36838 = fsub double %36834, %36837
%36839 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36838, double* %36839
%36840 = load double*, double** %9
%36841 = getelementptr inbounds double, double* %36840, i64 1
%36842 = load double, double* %36841
%36843 = load double*, double** %10
%36844 = getelementptr inbounds double, double* %36843, i64 1
%36845 = load double, double* %36844
%36846 = fsub double %36842, %36845
%36847 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36846, double* %36847
%36848 = load double*, double** %9
%36849 = getelementptr inbounds double, double* %36848, i64 2
%36850 = load double, double* %36849
%36851 = load double*, double** %10
%36852 = getelementptr inbounds double, double* %36851, i64 2
%36853 = load double, double* %36852
%36854 = fsub double %36850, %36853
%36855 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36854, double* %36855
%36856 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36857 = load double, double* %36856
%36858 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36859 = load double, double* %36858
%36860 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36861 = load double, double* %36860
%36862 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36863 = load double, double* %36862
%36864 = fmul double %36861, %36863
%36865 = fneg double %36864
%36866 = call double @llvm.fmuladd.f64(double %36857, double %36859, double %36865)
%36867 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36866, double* %36867
%36868 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36869 = load double, double* %36868
%36870 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36871 = load double, double* %36870
%36872 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36873 = load double, double* %36872
%36874 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36875 = load double, double* %36874
%36876 = fmul double %36873, %36875
%36877 = fneg double %36876
%36878 = call double @llvm.fmuladd.f64(double %36869, double %36871, double %36877)
%36879 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %36878, double* %36879
%36880 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36881 = load double, double* %36880
%36882 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36883 = load double, double* %36882
%36884 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36885 = load double, double* %36884
%36886 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%36887 = load double, double* %36886
%36888 = fmul double %36885, %36887
%36889 = fneg double %36888
%36890 = call double @llvm.fmuladd.f64(double %36881, double %36883, double %36889)
%36891 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %36890, double* %36891
%36892 = load double*, double** %11
%36893 = getelementptr inbounds double, double* %36892, i64 0
%36894 = load double, double* %36893
%36895 = load double*, double** %10
%36896 = getelementptr inbounds double, double* %36895, i64 0
%36897 = load double, double* %36896
%36898 = fsub double %36894, %36897
%36899 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36898, double* %36899
%36900 = load double*, double** %11
%36901 = getelementptr inbounds double, double* %36900, i64 1
%36902 = load double, double* %36901
%36903 = load double*, double** %10
%36904 = getelementptr inbounds double, double* %36903, i64 1
%36905 = load double, double* %36904
%36906 = fsub double %36902, %36905
%36907 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36906, double* %36907
%36908 = load double*, double** %11
%36909 = getelementptr inbounds double, double* %36908, i64 2
%36910 = load double, double* %36909
%36911 = load double*, double** %10
%36912 = getelementptr inbounds double, double* %36911, i64 2
%36913 = load double, double* %36912
%36914 = fsub double %36910, %36913
%36915 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36914, double* %36915
%36916 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%36917 = load double, double* %36916
%36918 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%36919 = load double, double* %36918
%36920 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36921 = load double, double* %36920
%36922 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%36923 = load double, double* %36922
%36924 = fmul double %36921, %36923
%36925 = call double @llvm.fmuladd.f64(double %36917, double %36919, double %36924)
%36926 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36927 = load double, double* %36926
%36928 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%36929 = load double, double* %36928
%36930 = call double @llvm.fmuladd.f64(double %36927, double %36929, double %36925)
%36931 = fcmp ogt double %36930, 0.000000e+00
br i1 %36931, label %36932, label %36933
36932: ; preds = %36807
store i32 0, i32* %7
br label %37464
36933: ; preds = %36807
store i32 1, i32* %7
br label %37464
36934: ; preds = %36422
%36935 = load double, double* %18
%36936 = fcmp ogt double %36935, 0.000000e+00
br i1 %36936, label %36937, label %37190
36937: ; preds = %36934
%36938 = load double*, double** %12
%36939 = getelementptr inbounds double, double* %36938, i64 0
%36940 = load double, double* %36939
%36941 = load double*, double** %8
%36942 = getelementptr inbounds double, double* %36941, i64 0
%36943 = load double, double* %36942
%36944 = fsub double %36940, %36943
%36945 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %36944, double* %36945
%36946 = load double*, double** %12
%36947 = getelementptr inbounds double, double* %36946, i64 1
%36948 = load double, double* %36947
%36949 = load double*, double** %8
%36950 = getelementptr inbounds double, double* %36949, i64 1
%36951 = load double, double* %36950
%36952 = fsub double %36948, %36951
%36953 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %36952, double* %36953
%36954 = load double*, double** %12
%36955 = getelementptr inbounds double, double* %36954, i64 2
%36956 = load double, double* %36955
%36957 = load double*, double** %8
%36958 = getelementptr inbounds double, double* %36957, i64 2
%36959 = load double, double* %36958
%36960 = fsub double %36956, %36959
%36961 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %36960, double* %36961
%36962 = load double*, double** %10
%36963 = getelementptr inbounds double, double* %36962, i64 0
%36964 = load double, double* %36963
%36965 = load double*, double** %8
%36966 = getelementptr inbounds double, double* %36965, i64 0
%36967 = load double, double* %36966
%36968 = fsub double %36964, %36967
%36969 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %36968, double* %36969
%36970 = load double*, double** %10
%36971 = getelementptr inbounds double, double* %36970, i64 1
%36972 = load double, double* %36971
%36973 = load double*, double** %8
%36974 = getelementptr inbounds double, double* %36973, i64 1
%36975 = load double, double* %36974
%36976 = fsub double %36972, %36975
%36977 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %36976, double* %36977
%36978 = load double*, double** %10
%36979 = getelementptr inbounds double, double* %36978, i64 2
%36980 = load double, double* %36979
%36981 = load double*, double** %8
%36982 = getelementptr inbounds double, double* %36981, i64 2
%36983 = load double, double* %36982
%36984 = fsub double %36980, %36983
%36985 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %36984, double* %36985
%36986 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%36987 = load double, double* %36986
%36988 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%36989 = load double, double* %36988
%36990 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36991 = load double, double* %36990
%36992 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%36993 = load double, double* %36992
%36994 = fmul double %36991, %36993
%36995 = fneg double %36994
%36996 = call double @llvm.fmuladd.f64(double %36987, double %36989, double %36995)
%36997 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %36996, double* %36997
%36998 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%36999 = load double, double* %36998
%37000 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37001 = load double, double* %37000
%37002 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37003 = load double, double* %37002
%37004 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37005 = load double, double* %37004
%37006 = fmul double %37003, %37005
%37007 = fneg double %37006
%37008 = call double @llvm.fmuladd.f64(double %36999, double %37001, double %37007)
%37009 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %37008, double* %37009
%37010 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37011 = load double, double* %37010
%37012 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37013 = load double, double* %37012
%37014 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37015 = load double, double* %37014
%37016 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37017 = load double, double* %37016
%37018 = fmul double %37015, %37017
%37019 = fneg double %37018
%37020 = call double @llvm.fmuladd.f64(double %37011, double %37013, double %37019)
%37021 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %37020, double* %37021
%37022 = load double*, double** %11
%37023 = getelementptr inbounds double, double* %37022, i64 0
%37024 = load double, double* %37023
%37025 = load double*, double** %8
%37026 = getelementptr inbounds double, double* %37025, i64 0
%37027 = load double, double* %37026
%37028 = fsub double %37024, %37027
%37029 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37028, double* %37029
%37030 = load double*, double** %11
%37031 = getelementptr inbounds double, double* %37030, i64 1
%37032 = load double, double* %37031
%37033 = load double*, double** %8
%37034 = getelementptr inbounds double, double* %37033, i64 1
%37035 = load double, double* %37034
%37036 = fsub double %37032, %37035
%37037 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37036, double* %37037
%37038 = load double*, double** %11
%37039 = getelementptr inbounds double, double* %37038, i64 2
%37040 = load double, double* %37039
%37041 = load double*, double** %8
%37042 = getelementptr inbounds double, double* %37041, i64 2
%37043 = load double, double* %37042
%37044 = fsub double %37040, %37043
%37045 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37044, double* %37045
%37046 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37047 = load double, double* %37046
%37048 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37049 = load double, double* %37048
%37050 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37051 = load double, double* %37050
%37052 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%37053 = load double, double* %37052
%37054 = fmul double %37051, %37053
%37055 = call double @llvm.fmuladd.f64(double %37047, double %37049, double %37054)
%37056 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37057 = load double, double* %37056
%37058 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%37059 = load double, double* %37058
%37060 = call double @llvm.fmuladd.f64(double %37057, double %37059, double %37055)
%37061 = fcmp ogt double %37060, 0.000000e+00
br i1 %37061, label %37062, label %37063
37062: ; preds = %36937
store i32 0, i32* %7
br label %37464
37063: ; preds = %36937
%37064 = load double*, double** %12
%37065 = getelementptr inbounds double, double* %37064, i64 0
%37066 = load double, double* %37065
%37067 = load double*, double** %10
%37068 = getelementptr inbounds double, double* %37067, i64 0
%37069 = load double, double* %37068
%37070 = fsub double %37066, %37069
%37071 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37070, double* %37071
%37072 = load double*, double** %12
%37073 = getelementptr inbounds double, double* %37072, i64 1
%37074 = load double, double* %37073
%37075 = load double*, double** %10
%37076 = getelementptr inbounds double, double* %37075, i64 1
%37077 = load double, double* %37076
%37078 = fsub double %37074, %37077
%37079 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37078, double* %37079
%37080 = load double*, double** %12
%37081 = getelementptr inbounds double, double* %37080, i64 2
%37082 = load double, double* %37081
%37083 = load double*, double** %10
%37084 = getelementptr inbounds double, double* %37083, i64 2
%37085 = load double, double* %37084
%37086 = fsub double %37082, %37085
%37087 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37086, double* %37087
%37088 = load double*, double** %9
%37089 = getelementptr inbounds double, double* %37088, i64 0
%37090 = load double, double* %37089
%37091 = load double*, double** %10
%37092 = getelementptr inbounds double, double* %37091, i64 0
%37093 = load double, double* %37092
%37094 = fsub double %37090, %37093
%37095 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %37094, double* %37095
%37096 = load double*, double** %9
%37097 = getelementptr inbounds double, double* %37096, i64 1
%37098 = load double, double* %37097
%37099 = load double*, double** %10
%37100 = getelementptr inbounds double, double* %37099, i64 1
%37101 = load double, double* %37100
%37102 = fsub double %37098, %37101
%37103 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %37102, double* %37103
%37104 = load double*, double** %9
%37105 = getelementptr inbounds double, double* %37104, i64 2
%37106 = load double, double* %37105
%37107 = load double*, double** %10
%37108 = getelementptr inbounds double, double* %37107, i64 2
%37109 = load double, double* %37108
%37110 = fsub double %37106, %37109
%37111 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %37110, double* %37111
%37112 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37113 = load double, double* %37112
%37114 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37115 = load double, double* %37114
%37116 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37117 = load double, double* %37116
%37118 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37119 = load double, double* %37118
%37120 = fmul double %37117, %37119
%37121 = fneg double %37120
%37122 = call double @llvm.fmuladd.f64(double %37113, double %37115, double %37121)
%37123 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %37122, double* %37123
%37124 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37125 = load double, double* %37124
%37126 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37127 = load double, double* %37126
%37128 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37129 = load double, double* %37128
%37130 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37131 = load double, double* %37130
%37132 = fmul double %37129, %37131
%37133 = fneg double %37132
%37134 = call double @llvm.fmuladd.f64(double %37125, double %37127, double %37133)
%37135 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %37134, double* %37135
%37136 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37137 = load double, double* %37136
%37138 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37139 = load double, double* %37138
%37140 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37141 = load double, double* %37140
%37142 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37143 = load double, double* %37142
%37144 = fmul double %37141, %37143
%37145 = fneg double %37144
%37146 = call double @llvm.fmuladd.f64(double %37137, double %37139, double %37145)
%37147 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %37146, double* %37147
%37148 = load double*, double** %13
%37149 = getelementptr inbounds double, double* %37148, i64 0
%37150 = load double, double* %37149
%37151 = load double*, double** %10
%37152 = getelementptr inbounds double, double* %37151, i64 0
%37153 = load double, double* %37152
%37154 = fsub double %37150, %37153
%37155 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37154, double* %37155
%37156 = load double*, double** %13
%37157 = getelementptr inbounds double, double* %37156, i64 1
%37158 = load double, double* %37157
%37159 = load double*, double** %10
%37160 = getelementptr inbounds double, double* %37159, i64 1
%37161 = load double, double* %37160
%37162 = fsub double %37158, %37161
%37163 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37162, double* %37163
%37164 = load double*, double** %13
%37165 = getelementptr inbounds double, double* %37164, i64 2
%37166 = load double, double* %37165
%37167 = load double*, double** %10
%37168 = getelementptr inbounds double, double* %37167, i64 2
%37169 = load double, double* %37168
%37170 = fsub double %37166, %37169
%37171 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37170, double* %37171
%37172 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37173 = load double, double* %37172
%37174 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37175 = load double, double* %37174
%37176 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37177 = load double, double* %37176
%37178 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%37179 = load double, double* %37178
%37180 = fmul double %37177, %37179
%37181 = call double @llvm.fmuladd.f64(double %37173, double %37175, double %37180)
%37182 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37183 = load double, double* %37182
%37184 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%37185 = load double, double* %37184
%37186 = call double @llvm.fmuladd.f64(double %37183, double %37185, double %37181)
%37187 = fcmp ogt double %37186, 0.000000e+00
br i1 %37187, label %37188, label %37189
37188: ; preds = %37063
store i32 0, i32* %7
br label %37464
37189: ; preds = %37063
store i32 1, i32* %7
br label %37464
37190: ; preds = %36934
%37191 = load double, double* %18
%37192 = fcmp olt double %37191, 0.000000e+00
br i1 %37192, label %37193, label %37446
37193: ; preds = %37190
%37194 = load double*, double** %12
%37195 = getelementptr inbounds double, double* %37194, i64 0
%37196 = load double, double* %37195
%37197 = load double*, double** %9
%37198 = getelementptr inbounds double, double* %37197, i64 0
%37199 = load double, double* %37198
%37200 = fsub double %37196, %37199
%37201 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37200, double* %37201
%37202 = load double*, double** %12
%37203 = getelementptr inbounds double, double* %37202, i64 1
%37204 = load double, double* %37203
%37205 = load double*, double** %9
%37206 = getelementptr inbounds double, double* %37205, i64 1
%37207 = load double, double* %37206
%37208 = fsub double %37204, %37207
%37209 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37208, double* %37209
%37210 = load double*, double** %12
%37211 = getelementptr inbounds double, double* %37210, i64 2
%37212 = load double, double* %37211
%37213 = load double*, double** %9
%37214 = getelementptr inbounds double, double* %37213, i64 2
%37215 = load double, double* %37214
%37216 = fsub double %37212, %37215
%37217 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37216, double* %37217
%37218 = load double*, double** %10
%37219 = getelementptr inbounds double, double* %37218, i64 0
%37220 = load double, double* %37219
%37221 = load double*, double** %9
%37222 = getelementptr inbounds double, double* %37221, i64 0
%37223 = load double, double* %37222
%37224 = fsub double %37220, %37223
%37225 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %37224, double* %37225
%37226 = load double*, double** %10
%37227 = getelementptr inbounds double, double* %37226, i64 1
%37228 = load double, double* %37227
%37229 = load double*, double** %9
%37230 = getelementptr inbounds double, double* %37229, i64 1
%37231 = load double, double* %37230
%37232 = fsub double %37228, %37231
%37233 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %37232, double* %37233
%37234 = load double*, double** %10
%37235 = getelementptr inbounds double, double* %37234, i64 2
%37236 = load double, double* %37235
%37237 = load double*, double** %9
%37238 = getelementptr inbounds double, double* %37237, i64 2
%37239 = load double, double* %37238
%37240 = fsub double %37236, %37239
%37241 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %37240, double* %37241
%37242 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37243 = load double, double* %37242
%37244 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37245 = load double, double* %37244
%37246 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37247 = load double, double* %37246
%37248 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37249 = load double, double* %37248
%37250 = fmul double %37247, %37249
%37251 = fneg double %37250
%37252 = call double @llvm.fmuladd.f64(double %37243, double %37245, double %37251)
%37253 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %37252, double* %37253
%37254 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37255 = load double, double* %37254
%37256 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37257 = load double, double* %37256
%37258 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37259 = load double, double* %37258
%37260 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37261 = load double, double* %37260
%37262 = fmul double %37259, %37261
%37263 = fneg double %37262
%37264 = call double @llvm.fmuladd.f64(double %37255, double %37257, double %37263)
%37265 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %37264, double* %37265
%37266 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37267 = load double, double* %37266
%37268 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37269 = load double, double* %37268
%37270 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37271 = load double, double* %37270
%37272 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37273 = load double, double* %37272
%37274 = fmul double %37271, %37273
%37275 = fneg double %37274
%37276 = call double @llvm.fmuladd.f64(double %37267, double %37269, double %37275)
%37277 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %37276, double* %37277
%37278 = load double*, double** %11
%37279 = getelementptr inbounds double, double* %37278, i64 0
%37280 = load double, double* %37279
%37281 = load double*, double** %9
%37282 = getelementptr inbounds double, double* %37281, i64 0
%37283 = load double, double* %37282
%37284 = fsub double %37280, %37283
%37285 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37284, double* %37285
%37286 = load double*, double** %11
%37287 = getelementptr inbounds double, double* %37286, i64 1
%37288 = load double, double* %37287
%37289 = load double*, double** %9
%37290 = getelementptr inbounds double, double* %37289, i64 1
%37291 = load double, double* %37290
%37292 = fsub double %37288, %37291
%37293 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37292, double* %37293
%37294 = load double*, double** %11
%37295 = getelementptr inbounds double, double* %37294, i64 2
%37296 = load double, double* %37295
%37297 = load double*, double** %9
%37298 = getelementptr inbounds double, double* %37297, i64 2
%37299 = load double, double* %37298
%37300 = fsub double %37296, %37299
%37301 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37300, double* %37301
%37302 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37303 = load double, double* %37302
%37304 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37305 = load double, double* %37304
%37306 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37307 = load double, double* %37306
%37308 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%37309 = load double, double* %37308
%37310 = fmul double %37307, %37309
%37311 = call double @llvm.fmuladd.f64(double %37303, double %37305, double %37310)
%37312 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37313 = load double, double* %37312
%37314 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%37315 = load double, double* %37314
%37316 = call double @llvm.fmuladd.f64(double %37313, double %37315, double %37311)
%37317 = fcmp ogt double %37316, 0.000000e+00
br i1 %37317, label %37318, label %37319
37318: ; preds = %37193
store i32 0, i32* %7
br label %37464
37319: ; preds = %37193
%37320 = load double*, double** %12
%37321 = getelementptr inbounds double, double* %37320, i64 0
%37322 = load double, double* %37321
%37323 = load double*, double** %10
%37324 = getelementptr inbounds double, double* %37323, i64 0
%37325 = load double, double* %37324
%37326 = fsub double %37322, %37325
%37327 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37326, double* %37327
%37328 = load double*, double** %12
%37329 = getelementptr inbounds double, double* %37328, i64 1
%37330 = load double, double* %37329
%37331 = load double*, double** %10
%37332 = getelementptr inbounds double, double* %37331, i64 1
%37333 = load double, double* %37332
%37334 = fsub double %37330, %37333
%37335 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37334, double* %37335
%37336 = load double*, double** %12
%37337 = getelementptr inbounds double, double* %37336, i64 2
%37338 = load double, double* %37337
%37339 = load double*, double** %10
%37340 = getelementptr inbounds double, double* %37339, i64 2
%37341 = load double, double* %37340
%37342 = fsub double %37338, %37341
%37343 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37342, double* %37343
%37344 = load double*, double** %8
%37345 = getelementptr inbounds double, double* %37344, i64 0
%37346 = load double, double* %37345
%37347 = load double*, double** %10
%37348 = getelementptr inbounds double, double* %37347, i64 0
%37349 = load double, double* %37348
%37350 = fsub double %37346, %37349
%37351 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
store double %37350, double* %37351
%37352 = load double*, double** %8
%37353 = getelementptr inbounds double, double* %37352, i64 1
%37354 = load double, double* %37353
%37355 = load double*, double** %10
%37356 = getelementptr inbounds double, double* %37355, i64 1
%37357 = load double, double* %37356
%37358 = fsub double %37354, %37357
%37359 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
store double %37358, double* %37359
%37360 = load double*, double** %8
%37361 = getelementptr inbounds double, double* %37360, i64 2
%37362 = load double, double* %37361
%37363 = load double*, double** %10
%37364 = getelementptr inbounds double, double* %37363, i64 2
%37365 = load double, double* %37364
%37366 = fsub double %37362, %37365
%37367 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
store double %37366, double* %37367
%37368 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37369 = load double, double* %37368
%37370 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37371 = load double, double* %37370
%37372 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37373 = load double, double* %37372
%37374 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37375 = load double, double* %37374
%37376 = fmul double %37373, %37375
%37377 = fneg double %37376
%37378 = call double @llvm.fmuladd.f64(double %37369, double %37371, double %37377)
%37379 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
store double %37378, double* %37379
%37380 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37381 = load double, double* %37380
%37382 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37383 = load double, double* %37382
%37384 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37385 = load double, double* %37384
%37386 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 2
%37387 = load double, double* %37386
%37388 = fmul double %37385, %37387
%37389 = fneg double %37388
%37390 = call double @llvm.fmuladd.f64(double %37381, double %37383, double %37389)
%37391 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
store double %37390, double* %37391
%37392 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37393 = load double, double* %37392
%37394 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 1
%37395 = load double, double* %37394
%37396 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37397 = load double, double* %37396
%37398 = getelementptr inbounds [3 x double], [3 x double]* %21, i64 0, i64 0
%37399 = load double, double* %37398
%37400 = fmul double %37397, %37399
%37401 = fneg double %37400
%37402 = call double @llvm.fmuladd.f64(double %37393, double %37395, double %37401)
%37403 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
store double %37402, double* %37403
%37404 = load double*, double** %13
%37405 = getelementptr inbounds double, double* %37404, i64 0
%37406 = load double, double* %37405
%37407 = load double*, double** %10
%37408 = getelementptr inbounds double, double* %37407, i64 0
%37409 = load double, double* %37408
%37410 = fsub double %37406, %37409
%37411 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
store double %37410, double* %37411
%37412 = load double*, double** %13
%37413 = getelementptr inbounds double, double* %37412, i64 1
%37414 = load double, double* %37413
%37415 = load double*, double** %10
%37416 = getelementptr inbounds double, double* %37415, i64 1
%37417 = load double, double* %37416
%37418 = fsub double %37414, %37417
%37419 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
store double %37418, double* %37419
%37420 = load double*, double** %13
%37421 = getelementptr inbounds double, double* %37420, i64 2
%37422 = load double, double* %37421
%37423 = load double*, double** %10
%37424 = getelementptr inbounds double, double* %37423, i64 2
%37425 = load double, double* %37424
%37426 = fsub double %37422, %37425
%37427 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
store double %37426, double* %37427
%37428 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 0
%37429 = load double, double* %37428
%37430 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37431 = load double, double* %37430
%37432 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 1
%37433 = load double, double* %37432
%37434 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 1
%37435 = load double, double* %37434
%37436 = fmul double %37433, %37435
%37437 = call double @llvm.fmuladd.f64(double %37429, double %37431, double %37436)
%37438 = getelementptr inbounds [3 x double], [3 x double]* %20, i64 0, i64 2
%37439 = load double, double* %37438
%37440 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 2
%37441 = load double, double* %37440
%37442 = call double @llvm.fmuladd.f64(double %37439, double %37441, double %37437)
%37443 = fcmp ogt double %37442, 0.000000e+00
br i1 %37443, label %37444, label %37445
37444: ; preds = %37319
store i32 0, i32* %7
br label %37464
37445: ; preds = %37319
store i32 1, i32* %7
br label %37464
37446: ; preds = %37190
%37447 = load double*, double** %10
%37448 = load double*, double** %8
%37449 = load double*, double** %9
%37450 = load double*, double** %11
%37451 = load double*, double** %13
%37452 = load double*, double** %12
%37453 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37454 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %37447, double* %37448, double* %37449, double* %37450, double* %37451, double* %37452, double* %37453)
store i32 %37454, i32* %7
br label %37464
37455: ; preds = %34371
%37456 = load double*, double** %8
%37457 = load double*, double** %9
%37458 = load double*, double** %10
%37459 = load double*, double** %11
%37460 = load double*, double** %12
%37461 = load double*, double** %13
%37462 = getelementptr inbounds [3 x double], [3 x double]* %22, i64 0, i64 0
%37463 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %37456, double* %37457, double* %37458, double* %37459, double* %37460, double* %37461, double* %37462)
store i32 %37463, i32* %7
br label %37464
37464: ; preds = %37455, %37446, %37445, %37444, %37318, %37189, %37188, %37062, %36933, %36932, %36806, %36680, %36679, %36553, %36421, %36420, %36294, %36168, %36167, %36041, %35909, %35908, %35782, %35656, %35655, %35529, %35400, %35399, %35273, %35141, %35140, %35014, %34888, %34887, %34761, %34632, %34631, %34505, %34362, %34361, %34360, %34234, %34105, %34104, %33978, %33849, %33848, %33722, %33596, %33595, %33469, %33337, %33336, %33210, %33084, %33083, %32957, %32825, %32824, %32698, %32572, %32571, %32445, %32316, %32315, %32189, %32057, %32056, %31930, %31804, %31803, %31677, %31548, %31547, %31421, %31278, %31277, %31276, %31150, %31021, %31020, %30894, %30765, %30764, %30638, %30512, %30511, %30385, %30253, %30252, %30126, %30000, %29999, %29873, %29741, %29740, %29614, %29488, %29487, %29361, %29232, %29231, %29105, %28973, %28972, %28846, %28720, %28719, %28593, %28464, %28463, %28337, %28197, %28196, %28195, %28069, %27940, %27939, %27813, %27684, %27683, %27557, %27431, %27430, %27304, %27172, %27171, %27045, %26919, %26918, %26792, %26660, %26659, %26533, %26407, %26406, %26280, %26151, %26150, %26024, %25892, %25891, %25765, %25639, %25638, %25512, %25383, %25382, %25256, %25110, %25109, %25108, %24982, %24853, %24852, %24726, %24597, %24596, %24470, %24344, %24343, %24217, %24085, %24084, %23958, %23832, %23831, %23705, %23573, %23572, %23446, %23320, %23319, %23193, %23064, %23063, %22937, %22805, %22804, %22678, %22552, %22551, %22425, %22296, %22295, %22169, %22029, %22028, %22027, %21901, %21772, %21771, %21645, %21516, %21515, %21389, %21263, %21262, %21136, %21004, %21003, %20877, %20751, %20750, %20624, %20492, %20491, %20365, %20239, %20238, %20112, %19983, %19982, %19856, %19724, %19723, %19597, %19471, %19470, %19344, %19215, %19214, %19088, %18942, %18941, %18940, %18814, %18685, %18684, %18558, %18429, %18428, %18302, %18176, %18175, %18049, %17917, %17916, %17790, %17664, %17663, %17537, %17405, %17404, %17278, %17152, %17151, %17025, %16896, %16895, %16769, %16637, %16636, %16510, %16384, %16383, %16257, %16128, %16127, %16001, %15861, %15860, %15859, %15733, %15604, %15603, %15477, %15348, %15347, %15221, %15095, %15094, %14968, %14836, %14835, %14709, %14583, %14582, %14456, %14324, %14323, %14197, %14071, %14070, %13944, %13815, %13814, %13688, %13556, %13555, %13429, %13303, %13302, %13176, %13047, %13046, %12920, %12777, %12776, %12775, %12649, %12520, %12519, %12393, %12264, %12263, %12137, %12011, %12010, %11884, %11752, %11751, %11625, %11499, %11498, %11372, %11240, %11239, %11113, %10987, %10986, %10860, %10731, %10730, %10604, %10472, %10471, %10345, %10219, %10218, %10092, %9963, %9962, %9836, %9690, %9689, %9688, %9562, %9433, %9432, %9306, %9177, %9176, %9050, %8924, %8923, %8797, %8665, %8664, %8538, %8412, %8411, %8285, %8153, %8152, %8026, %7900, %7899, %7773, %7644, %7643, %7517, %7385, %7384, %7258, %7132, %7131, %7005, %6876, %6875, %6749, %6609, %6608, %6607, %6481, %6352, %6351, %6225, %6096, %6095, %5969, %5843, %5842, %5716, %5584, %5583, %5457, %5331, %5330, %5204, %5072, %5071, %4945, %4819, %4818, %4692, %4563, %4562, %4436, %4304, %4303, %4177, %4051, %4050, %3924, %3795, %3794, %3668, %3525, %3524, %3523, %3397, %3268, %3267, %3141, %3012, %3011, %2885, %2759, %2758, %2632, %2500, %2499, %2373, %2247, %2246, %2120, %1988, %1987, %1861, %1735, %1734, %1608, %1479, %1478, %1352, %1220, %1219, %1093, %967, %966, %840, %711, %710, %584, %446, %234
%37465 = load i32, i32* %7
ret i32 %37465
}

LLVM IR (-O2):
define i32 @tri_tri_overlap_test_3d(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5) {
%7 = alloca [3 x double]
%8 = bitcast [3 x double]* %7 to i8*
%9 = load double, double* %3
%10 = load double, double* %5
%11 = fsub double %9, %10
%12 = getelementptr inbounds double, double* %3, i64 1
%13 = getelementptr inbounds double, double* %5, i64 1
%14 = bitcast double* %13 to <2 x double>*
%15 = load <2 x double>, <2 x double>* %14
%16 = bitcast double* %12 to <2 x double>*
%17 = load <2 x double>, <2 x double>* %16
%18 = fsub <2 x double> %17, %15
%19 = extractelement <2 x double> %18, i64 0
%20 = extractelement <2 x double> %15, i64 1
%21 = extractelement <2 x double> %17, i64 1
%22 = fsub double %21, %20
%23 = load double, double* %4
%24 = fsub double %23, %10
%25 = getelementptr inbounds double, double* %4, i64 1
%26 = bitcast double* %25 to <2 x double>*
%27 = load <2 x double>, <2 x double>* %26
%28 = fsub <2 x double> %27, %15
%29 = extractelement <2 x double> %28, i64 0
%30 = extractelement <2 x double> %27, i64 1
%31 = fsub double %30, %20
%32 = fneg double %22
%33 = fmul double %29, %32
%34 = tail call double @llvm.fmuladd.f64(double %19, double %31, double %33)
%35 = fneg double %11
%36 = fmul double %31, %35
%37 = tail call double @llvm.fmuladd.f64(double %22, double %24, double %36)
%38 = fneg double %19
%39 = fmul double %24, %38
%40 = tail call double @llvm.fmuladd.f64(double %11, double %29, double %39)
%41 = load double, double* %0
%42 = fsub double %41, %10
%43 = getelementptr inbounds double, double* %0, i64 1
%44 = bitcast double* %43 to <2 x double>*
%45 = load <2 x double>, <2 x double>* %44
%46 = fsub <2 x double> %45, %15
%47 = extractelement <2 x double> %46, i64 0
%48 = extractelement <2 x double> %45, i64 1
%49 = fsub double %48, %20
%50 = fmul double %47, %37
%51 = tail call double @llvm.fmuladd.f64(double %42, double %34, double %50)
%52 = tail call double @llvm.fmuladd.f64(double %49, double %40, double %51)
%53 = load double, double* %1
%54 = getelementptr inbounds double, double* %1, i64 1
%55 = bitcast double* %54 to <2 x double>*
%56 = load <2 x double>, <2 x double>* %55
%57 = extractelement <2 x double> %56, i64 1
%58 = load double, double* %2
%59 = insertelement <2 x double> poison, double %58, i64 0
%60 = insertelement <2 x double> %59, double %53, i64 1
%61 = insertelement <2 x double> poison, double %10, i64 0
%62 = shufflevector <2 x double> %61, <2 x double> poison, <2 x i32> zeroinitializer
%63 = fsub <2 x double> %60, %62
%64 = getelementptr inbounds double, double* %2, i64 1
%65 = bitcast double* %64 to <2 x double>*
%66 = load <2 x double>, <2 x double>* %65
%67 = shufflevector <2 x double> %66, <2 x double> %56, <2 x i32> <i32 0, i32 2>
%68 = shufflevector <2 x double> %15, <2 x double> undef, <2 x i32> zeroinitializer
%69 = fsub <2 x double> %67, %68
%70 = extractelement <2 x double> %66, i64 1
%71 = shufflevector <2 x double> %66, <2 x double> undef, <2 x i32> <i32 1, i32 undef>
%72 = shufflevector <2 x double> %71, <2 x double> %56, <2 x i32> <i32 0, i32 3>
%73 = shufflevector <2 x double> %15, <2 x double> undef, <2 x i32> <i32 1, i32 1>
%74 = fsub <2 x double> %72, %73
%75 = insertelement <2 x double> poison, double %37, i64 0
%76 = shufflevector <2 x double> %75, <2 x double> poison, <2 x i32> zeroinitializer
%77 = fmul <2 x double> %76, %69
%78 = insertelement <2 x double> poison, double %34, i64 0
%79 = shufflevector <2 x double> %78, <2 x double> poison, <2 x i32> zeroinitializer
%80 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %63, <2 x double> %79, <2 x double> %77)
%81 = insertelement <2 x double> poison, double %40, i64 0
%82 = shufflevector <2 x double> %81, <2 x double> poison, <2 x i32> zeroinitializer
%83 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %74, <2 x double> %82, <2 x double> %80)
%84 = extractelement <2 x double> %83, i64 1
%85 = fmul double %52, %84
%86 = fcmp ogt double %85, 0.000000e+00
%87 = extractelement <2 x double> %83, i64 0
%88 = fmul double %52, %87
%89 = fcmp ogt double %88, 0.000000e+00
%90 = select i1 %86, i1 %89, i1 false
br i1 %90, label %7621, label %91
91: ; preds = %6
%92 = fsub <2 x double> %56, %45
%93 = extractelement <2 x double> %92, i64 0
%94 = insertelement <2 x double> %56, double %53, i64 0
%95 = insertelement <2 x double> %45, double %41, i64 0
%96 = fsub <2 x double> %94, %95
%97 = shufflevector <2 x double> %96, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%98 = fsub <2 x double> %66, %45
%99 = extractelement <2 x double> %98, i64 0
%100 = insertelement <2 x double> %71, double %58, i64 1
%101 = insertelement <2 x double> poison, double %48, i64 0
%102 = insertelement <2 x double> %101, double %41, i64 1
%103 = fsub <2 x double> %100, %102
%104 = getelementptr inbounds [3 x double], [3 x double]* %7, i64 0, i64 0
%105 = fneg <2 x double> %97
%106 = extractelement <2 x double> %103, i64 0
%107 = shufflevector <2 x double> %98, <2 x double> %103, <2 x i32> <i32 0, i32 2>
%108 = fmul <2 x double> %107, %105
%109 = extractelement <2 x double> %96, i64 1
%110 = shufflevector <2 x double> %92, <2 x double> %96, <2 x i32> <i32 0, i32 3>
%111 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %110, <2 x double> %103, <2 x double> %108)
%112 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %111, <2 x double>* %112
%113 = fneg double %93
%114 = extractelement <2 x double> %103, i64 1
%115 = fmul double %114, %113
%116 = extractelement <2 x double> %96, i64 0
%117 = tail call double @llvm.fmuladd.f64(double %116, double %99, double %115)
%118 = getelementptr inbounds [3 x double], [3 x double]* %7, i64 0, i64 2
store double %117, double* %118
%119 = fsub double %9, %58
%120 = fsub <2 x double> %17, %66
%121 = extractelement <2 x double> %120, i64 0
%122 = extractelement <2 x double> %111, i64 1
%123 = fmul double %121, %122
%124 = extractelement <2 x double> %111, i64 0
%125 = tail call double @llvm.fmuladd.f64(double %119, double %124, double %123)
%126 = extractelement <2 x double> %120, i64 1
%127 = tail call double @llvm.fmuladd.f64(double %126, double %117, double %125)
%128 = fsub <2 x double> %27, %66
%129 = extractelement <2 x double> %128, i64 0
%130 = extractelement <2 x double> %128, i64 1
%131 = insertelement <2 x double> poison, double %23, i64 0
%132 = insertelement <2 x double> %131, double %10, i64 1
%133 = shufflevector <2 x double> %59, <2 x double> poison, <2 x i32> zeroinitializer
%134 = fsub <2 x double> %132, %133
%135 = fsub <2 x double> %15, %66
%136 = extractelement <2 x double> %135, i64 0
%137 = shufflevector <2 x double> %128, <2 x double> %135, <2 x i32> <i32 0, i32 2>
%138 = shufflevector <2 x double> %111, <2 x double> undef, <2 x i32> <i32 1, i32 1>
%139 = fmul <2 x double> %137, %138
%140 = shufflevector <2 x double> %111, <2 x double> undef, <2 x i32> zeroinitializer
%141 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %134, <2 x double> %140, <2 x double> %139)
%142 = extractelement <2 x double> %135, i64 1
%143 = shufflevector <2 x double> %128, <2 x double> undef, <2 x i32> <i32 1, i32 undef>
%144 = shufflevector <2 x double> %143, <2 x double> %135, <2 x i32> <i32 0, i32 3>
%145 = insertelement <2 x double> poison, double %117, i64 0
%146 = shufflevector <2 x double> %145, <2 x double> poison, <2 x i32> zeroinitializer
%147 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %144, <2 x double> %146, <2 x double> %141)
%148 = extractelement <2 x double> %147, i64 0
%149 = fmul double %127, %148
%150 = fcmp ogt double %149, 0.000000e+00
%151 = extractelement <2 x double> %147, i64 1
%152 = fmul double %127, %151
%153 = fcmp ogt double %152, 0.000000e+00
%154 = select i1 %150, i1 %153, i1 false
br i1 %154, label %7621, label %155
155: ; preds = %91
%156 = fcmp ogt double %52, 0.000000e+00
br i1 %156, label %157, label %2024
157: ; preds = %155
%158 = fcmp ogt double %84, 0.000000e+00
br i1 %158, label %159, label %771
159: ; preds = %157
%160 = fcmp ogt double %127, 0.000000e+00
br i1 %160, label %161, label %314
161: ; preds = %159
%162 = fcmp ogt double %151, 0.000000e+00
br i1 %162, label %163, label %215
163: ; preds = %161
%164 = fsub double %23, %53
%165 = fsub <2 x double> %27, %56
%166 = extractelement <2 x double> %165, i64 0
%167 = fsub double %30, %57
%168 = fsub double %58, %53
%169 = fsub <2 x double> %66, %56
%170 = extractelement <2 x double> %169, i64 0
%171 = fsub double %70, %57
%172 = fneg double %167
%173 = fmul double %170, %172
%174 = tail call double @llvm.fmuladd.f64(double %166, double %171, double %173)
%175 = fneg double %164
%176 = fmul double %171, %175
%177 = tail call double @llvm.fmuladd.f64(double %167, double %168, double %176)
%178 = fneg double %166
%179 = fmul double %168, %178
%180 = tail call double @llvm.fmuladd.f64(double %164, double %170, double %179)
%181 = fsub double %9, %53
%182 = fsub <2 x double> %17, %56
%183 = extractelement <2 x double> %182, i64 0
%184 = fsub double %21, %57
%185 = fmul double %183, %177
%186 = tail call double @llvm.fmuladd.f64(double %181, double %174, double %185)
%187 = tail call double @llvm.fmuladd.f64(double %184, double %180, double %186)
%188 = fcmp ogt double %187, 0.000000e+00
br i1 %188, label %7621, label %189
189: ; preds = %163
%190 = fsub <2 x double> %45, %66
%191 = extractelement <2 x double> %190, i64 0
%192 = insertelement <2 x double> %66, double %58, i64 0
%193 = fsub <2 x double> %95, %192
%194 = shufflevector <2 x double> %193, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%195 = extractelement <2 x double> %134, i64 0
%196 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%197 = fneg <2 x double> %196
%198 = shufflevector <2 x double> %190, <2 x double> %193, <2 x i32> <i32 0, i32 3>
%199 = fmul <2 x double> %198, %197
%200 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %194, <2 x double> %199)
%201 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %200, <2 x double>* %201
%202 = fneg double %129
%203 = extractelement <2 x double> %193, i64 0
%204 = fmul double %203, %202
%205 = tail call double @llvm.fmuladd.f64(double %195, double %191, double %204)
%206 = shufflevector <2 x double> %200, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%207 = fmul <2 x double> %135, %206
%208 = extractelement <2 x double> %207, i64 0
%209 = extractelement <2 x double> %200, i64 0
%210 = extractelement <2 x double> %134, i64 1
%211 = tail call double @llvm.fmuladd.f64(double %210, double %209, double %208)
%212 = tail call double @llvm.fmuladd.f64(double %142, double %205, double %211)
%213 = fcmp ule double %212, 0.000000e+00
%214 = zext i1 %213 to i32
br label %7621
215: ; preds = %161
%216 = fcmp ogt double %148, 0.000000e+00
br i1 %216, label %217, label %266
217: ; preds = %215
%218 = fsub double %10, %53
%219 = fsub <2 x double> %15, %56
%220 = extractelement <2 x double> %219, i64 0
%221 = fsub double %20, %57
%222 = fsub double %58, %53
%223 = fsub <2 x double> %66, %56
%224 = extractelement <2 x double> %223, i64 0
%225 = fsub double %70, %57
%226 = fneg double %221
%227 = fmul double %224, %226
%228 = tail call double @llvm.fmuladd.f64(double %220, double %225, double %227)
%229 = fneg double %218
%230 = fmul double %225, %229
%231 = tail call double @llvm.fmuladd.f64(double %221, double %222, double %230)
%232 = fneg double %220
%233 = fmul double %222, %232
%234 = tail call double @llvm.fmuladd.f64(double %218, double %224, double %233)
%235 = fsub double %23, %53
%236 = fsub <2 x double> %27, %56
%237 = extractelement <2 x double> %236, i64 0
%238 = fsub double %30, %57
%239 = fmul double %237, %231
%240 = tail call double @llvm.fmuladd.f64(double %235, double %228, double %239)
%241 = tail call double @llvm.fmuladd.f64(double %238, double %234, double %240)
%242 = fcmp ogt double %241, 0.000000e+00
br i1 %242, label %7621, label %243
243: ; preds = %217
%244 = fsub <2 x double> %45, %66
%245 = extractelement <2 x double> %244, i64 0
%246 = fsub <2 x double> %102, %100
%247 = extractelement <2 x double> %134, i64 1
%248 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%249 = fneg <2 x double> %248
%250 = shufflevector <2 x double> %244, <2 x double> %246, <2 x i32> <i32 0, i32 2>
%251 = fmul <2 x double> %250, %249
%252 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %246, <2 x double> %251)
%253 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %252, <2 x double>* %253
%254 = fneg double %136
%255 = extractelement <2 x double> %246, i64 1
%256 = fmul double %255, %254
%257 = tail call double @llvm.fmuladd.f64(double %247, double %245, double %256)
%258 = shufflevector <2 x double> %252, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%259 = fmul <2 x double> %120, %258
%260 = extractelement <2 x double> %259, i64 0
%261 = extractelement <2 x double> %252, i64 0
%262 = tail call double @llvm.fmuladd.f64(double %119, double %261, double %260)
%263 = tail call double @llvm.fmuladd.f64(double %126, double %257, double %262)
%264 = fcmp ule double %263, 0.000000e+00
%265 = zext i1 %264 to i32
br label %7621
266: ; preds = %215
%267 = fsub double %9, %41
%268 = fsub <2 x double> %17, %45
%269 = extractelement <2 x double> %268, i64 0
%270 = fsub double %21, %48
%271 = fneg double %270
%272 = fmul double %99, %271
%273 = tail call double @llvm.fmuladd.f64(double %269, double %106, double %272)
%274 = fneg double %267
%275 = fmul double %106, %274
%276 = tail call double @llvm.fmuladd.f64(double %270, double %114, double %275)
%277 = fneg double %269
%278 = fmul double %114, %277
%279 = tail call double @llvm.fmuladd.f64(double %267, double %99, double %278)
%280 = fsub double %10, %41
%281 = fsub <2 x double> %15, %45
%282 = extractelement <2 x double> %281, i64 0
%283 = fsub double %20, %48
%284 = fmul double %282, %276
%285 = tail call double @llvm.fmuladd.f64(double %280, double %273, double %284)
%286 = tail call double @llvm.fmuladd.f64(double %283, double %279, double %285)
%287 = fcmp ogt double %286, 0.000000e+00
br i1 %287, label %7621, label %288
288: ; preds = %266
%289 = fsub <2 x double> %56, %66
%290 = extractelement <2 x double> %289, i64 0
%291 = insertelement <2 x double> poison, double %57, i64 0
%292 = insertelement <2 x double> %291, double %53, i64 1
%293 = fsub <2 x double> %292, %100
%294 = insertelement <2 x double> poison, double %126, i64 0
%295 = insertelement <2 x double> %294, double %119, i64 1
%296 = fneg <2 x double> %295
%297 = shufflevector <2 x double> %289, <2 x double> %293, <2 x i32> <i32 0, i32 2>
%298 = fmul <2 x double> %297, %296
%299 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %293, <2 x double> %298)
%300 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %299, <2 x double>* %300
%301 = fneg double %121
%302 = extractelement <2 x double> %293, i64 1
%303 = fmul double %302, %301
%304 = tail call double @llvm.fmuladd.f64(double %119, double %290, double %303)
%305 = shufflevector <2 x double> %299, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%306 = fmul <2 x double> %128, %305
%307 = extractelement <2 x double> %306, i64 0
%308 = extractelement <2 x double> %299, i64 0
%309 = extractelement <2 x double> %134, i64 0
%310 = tail call double @llvm.fmuladd.f64(double %309, double %308, double %307)
%311 = tail call double @llvm.fmuladd.f64(double %130, double %304, double %310)
%312 = fcmp ule double %311, 0.000000e+00
%313 = zext i1 %312 to i32
br label %7621
314: ; preds = %159
%315 = fcmp olt double %127, 0.000000e+00
%316 = fcmp olt double %151, 0.000000e+00
br i1 %315, label %317, label %465
317: ; preds = %314
br i1 %316, label %318, label %366
318: ; preds = %317
%319 = fsub double %23, %41
%320 = fsub <2 x double> %27, %45
%321 = extractelement <2 x double> %320, i64 0
%322 = fsub double %30, %48
%323 = fneg double %322
%324 = fmul double %99, %323
%325 = tail call double @llvm.fmuladd.f64(double %321, double %106, double %324)
%326 = fneg double %319
%327 = fmul double %106, %326
%328 = tail call double @llvm.fmuladd.f64(double %322, double %114, double %327)
%329 = fneg double %321
%330 = fmul double %114, %329
%331 = tail call double @llvm.fmuladd.f64(double %319, double %99, double %330)
%332 = fsub double %9, %41
%333 = fsub <2 x double> %17, %45
%334 = extractelement <2 x double> %333, i64 0
%335 = fsub double %21, %48
%336 = fmul double %334, %328
%337 = tail call double @llvm.fmuladd.f64(double %332, double %325, double %336)
%338 = tail call double @llvm.fmuladd.f64(double %335, double %331, double %337)
%339 = fcmp ogt double %338, 0.000000e+00
br i1 %339, label %7621, label %340
340: ; preds = %318
%341 = fsub <2 x double> %56, %66
%342 = extractelement <2 x double> %341, i64 0
%343 = insertelement <2 x double> poison, double %57, i64 0
%344 = insertelement <2 x double> %343, double %53, i64 1
%345 = fsub <2 x double> %344, %100
%346 = extractelement <2 x double> %134, i64 0
%347 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%348 = fneg <2 x double> %347
%349 = shufflevector <2 x double> %341, <2 x double> %345, <2 x i32> <i32 0, i32 2>
%350 = fmul <2 x double> %349, %348
%351 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %345, <2 x double> %350)
%352 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %351, <2 x double>* %352
%353 = fneg double %129
%354 = extractelement <2 x double> %345, i64 1
%355 = fmul double %354, %353
%356 = tail call double @llvm.fmuladd.f64(double %346, double %342, double %355)
%357 = shufflevector <2 x double> %351, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%358 = fmul <2 x double> %135, %357
%359 = extractelement <2 x double> %358, i64 0
%360 = extractelement <2 x double> %351, i64 0
%361 = extractelement <2 x double> %134, i64 1
%362 = tail call double @llvm.fmuladd.f64(double %361, double %360, double %359)
%363 = tail call double @llvm.fmuladd.f64(double %142, double %356, double %362)
%364 = fcmp ule double %363, 0.000000e+00
%365 = zext i1 %364 to i32
br label %7621
366: ; preds = %317
%367 = fcmp olt double %148, 0.000000e+00
br i1 %367, label %368, label %415
368: ; preds = %366
%369 = fsub double %10, %41
%370 = fsub <2 x double> %15, %45
%371 = extractelement <2 x double> %370, i64 0
%372 = fsub double %20, %48
%373 = fneg double %372
%374 = fmul double %99, %373
%375 = tail call double @llvm.fmuladd.f64(double %371, double %106, double %374)
%376 = fneg double %369
%377 = fmul double %106, %376
%378 = tail call double @llvm.fmuladd.f64(double %372, double %114, double %377)
%379 = fneg double %371
%380 = fmul double %114, %379
%381 = tail call double @llvm.fmuladd.f64(double %369, double %99, double %380)
%382 = fsub double %23, %41
%383 = fsub <2 x double> %27, %45
%384 = extractelement <2 x double> %383, i64 0
%385 = fsub double %30, %48
%386 = fmul double %384, %378
%387 = tail call double @llvm.fmuladd.f64(double %382, double %375, double %386)
%388 = tail call double @llvm.fmuladd.f64(double %385, double %381, double %387)
%389 = fcmp ogt double %388, 0.000000e+00
br i1 %389, label %7621, label %390
390: ; preds = %368
%391 = fsub <2 x double> %56, %66
%392 = extractelement <2 x double> %391, i64 0
%393 = insertelement <2 x double> poison, double %57, i64 0
%394 = insertelement <2 x double> %393, double %53, i64 1
%395 = fsub <2 x double> %394, %100
%396 = extractelement <2 x double> %134, i64 1
%397 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%398 = fneg <2 x double> %397
%399 = shufflevector <2 x double> %391, <2 x double> %395, <2 x i32> <i32 0, i32 2>
%400 = fmul <2 x double> %399, %398
%401 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %395, <2 x double> %400)
%402 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %401, <2 x double>* %402
%403 = fneg double %136
%404 = extractelement <2 x double> %395, i64 1
%405 = fmul double %404, %403
%406 = tail call double @llvm.fmuladd.f64(double %396, double %392, double %405)
%407 = shufflevector <2 x double> %401, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%408 = fmul <2 x double> %120, %407
%409 = extractelement <2 x double> %408, i64 0
%410 = extractelement <2 x double> %401, i64 0
%411 = tail call double @llvm.fmuladd.f64(double %119, double %410, double %409)
%412 = tail call double @llvm.fmuladd.f64(double %126, double %406, double %411)
%413 = fcmp ule double %412, 0.000000e+00
%414 = zext i1 %413 to i32
br label %7621
415: ; preds = %366
%416 = fsub double %9, %53
%417 = fsub <2 x double> %17, %56
%418 = extractelement <2 x double> %417, i64 0
%419 = fsub double %21, %57
%420 = fsub double %58, %53
%421 = fsub <2 x double> %66, %56
%422 = extractelement <2 x double> %421, i64 0
%423 = fsub double %70, %57
%424 = fneg double %419
%425 = fmul double %422, %424
%426 = tail call double @llvm.fmuladd.f64(double %418, double %423, double %425)
%427 = fneg double %416
%428 = fmul double %423, %427
%429 = tail call double @llvm.fmuladd.f64(double %419, double %420, double %428)
%430 = fneg double %418
%431 = fmul double %420, %430
%432 = tail call double @llvm.fmuladd.f64(double %416, double %422, double %431)
%433 = fsub double %10, %53
%434 = fsub <2 x double> %15, %56
%435 = extractelement <2 x double> %434, i64 0
%436 = fsub double %20, %57
%437 = fmul double %435, %429
%438 = tail call double @llvm.fmuladd.f64(double %433, double %426, double %437)
%439 = tail call double @llvm.fmuladd.f64(double %436, double %432, double %438)
%440 = fcmp ogt double %439, 0.000000e+00
br i1 %440, label %7621, label %441
441: ; preds = %415
%442 = fsub <2 x double> %45, %66
%443 = extractelement <2 x double> %442, i64 0
%444 = fsub <2 x double> %102, %100
%445 = insertelement <2 x double> poison, double %126, i64 0
%446 = insertelement <2 x double> %445, double %119, i64 1
%447 = fneg <2 x double> %446
%448 = shufflevector <2 x double> %442, <2 x double> %444, <2 x i32> <i32 0, i32 2>
%449 = fmul <2 x double> %448, %447
%450 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %444, <2 x double> %449)
%451 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %450, <2 x double>* %451
%452 = fneg double %121
%453 = extractelement <2 x double> %444, i64 1
%454 = fmul double %453, %452
%455 = tail call double @llvm.fmuladd.f64(double %119, double %443, double %454)
%456 = shufflevector <2 x double> %450, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%457 = fmul <2 x double> %128, %456
%458 = extractelement <2 x double> %457, i64 0
%459 = extractelement <2 x double> %450, i64 0
%460 = extractelement <2 x double> %134, i64 0
%461 = tail call double @llvm.fmuladd.f64(double %460, double %459, double %458)
%462 = tail call double @llvm.fmuladd.f64(double %130, double %455, double %461)
%463 = fcmp ule double %462, 0.000000e+00
%464 = zext i1 %463 to i32
br label %7621
465: ; preds = %314
br i1 %316, label %466, label %565
466: ; preds = %465
%467 = fcmp ult double %148, 0.000000e+00
br i1 %467, label %517, label %468
468: ; preds = %466
%469 = fsub double %10, %53
%470 = fsub <2 x double> %15, %56
%471 = extractelement <2 x double> %470, i64 0
%472 = fsub double %20, %57
%473 = fsub double %58, %53
%474 = fsub <2 x double> %66, %56
%475 = extractelement <2 x double> %474, i64 0
%476 = fsub double %70, %57
%477 = fneg double %472
%478 = fmul double %475, %477
%479 = tail call double @llvm.fmuladd.f64(double %471, double %476, double %478)
%480 = fneg double %469
%481 = fmul double %476, %480
%482 = tail call double @llvm.fmuladd.f64(double %472, double %473, double %481)
%483 = fneg double %471
%484 = fmul double %473, %483
%485 = tail call double @llvm.fmuladd.f64(double %469, double %475, double %484)
%486 = fsub double %23, %53
%487 = fsub <2 x double> %27, %56
%488 = extractelement <2 x double> %487, i64 0
%489 = fsub double %30, %57
%490 = fmul double %488, %482
%491 = tail call double @llvm.fmuladd.f64(double %486, double %479, double %490)
%492 = tail call double @llvm.fmuladd.f64(double %489, double %485, double %491)
%493 = fcmp ogt double %492, 0.000000e+00
br i1 %493, label %7621, label %494
494: ; preds = %468
%495 = fsub <2 x double> %45, %66
%496 = extractelement <2 x double> %495, i64 0
%497 = fsub <2 x double> %102, %100
%498 = extractelement <2 x double> %134, i64 1
%499 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%500 = fneg <2 x double> %499
%501 = shufflevector <2 x double> %495, <2 x double> %497, <2 x i32> <i32 0, i32 2>
%502 = fmul <2 x double> %501, %500
%503 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %497, <2 x double> %502)
%504 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %503, <2 x double>* %504
%505 = fneg double %136
%506 = extractelement <2 x double> %497, i64 1
%507 = fmul double %506, %505
%508 = tail call double @llvm.fmuladd.f64(double %498, double %496, double %507)
store double %508, double* %118
%509 = shufflevector <2 x double> %503, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%510 = fmul <2 x double> %120, %509
%511 = extractelement <2 x double> %510, i64 0
%512 = extractelement <2 x double> %503, i64 0
%513 = tail call double @llvm.fmuladd.f64(double %119, double %512, double %511)
%514 = tail call double @llvm.fmuladd.f64(double %126, double %508, double %513)
%515 = fcmp ule double %514, 0.000000e+00
%516 = zext i1 %515 to i32
br label %7621
517: ; preds = %466
%518 = fsub double %9, %41
%519 = fsub <2 x double> %17, %45
%520 = extractelement <2 x double> %519, i64 0
%521 = fsub double %21, %48
%522 = fneg double %521
%523 = fmul double %99, %522
%524 = tail call double @llvm.fmuladd.f64(double %520, double %106, double %523)
%525 = fneg double %518
%526 = fmul double %106, %525
%527 = tail call double @llvm.fmuladd.f64(double %521, double %114, double %526)
%528 = fneg double %520
%529 = fmul double %114, %528
%530 = tail call double @llvm.fmuladd.f64(double %518, double %99, double %529)
%531 = fsub double %10, %41
%532 = fsub <2 x double> %15, %45
%533 = extractelement <2 x double> %532, i64 0
%534 = fsub double %20, %48
%535 = fmul double %533, %527
%536 = tail call double @llvm.fmuladd.f64(double %531, double %524, double %535)
%537 = tail call double @llvm.fmuladd.f64(double %534, double %530, double %536)
%538 = fcmp ogt double %537, 0.000000e+00
br i1 %538, label %7621, label %539
539: ; preds = %517
%540 = fsub <2 x double> %56, %66
%541 = extractelement <2 x double> %540, i64 0
%542 = insertelement <2 x double> poison, double %57, i64 0
%543 = insertelement <2 x double> %542, double %53, i64 1
%544 = fsub <2 x double> %543, %100
%545 = insertelement <2 x double> poison, double %126, i64 0
%546 = insertelement <2 x double> %545, double %119, i64 1
%547 = fneg <2 x double> %546
%548 = shufflevector <2 x double> %540, <2 x double> %544, <2 x i32> <i32 0, i32 2>
%549 = fmul <2 x double> %548, %547
%550 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %544, <2 x double> %549)
%551 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %550, <2 x double>* %551
%552 = fneg double %121
%553 = extractelement <2 x double> %544, i64 1
%554 = fmul double %553, %552
%555 = tail call double @llvm.fmuladd.f64(double %119, double %541, double %554)
%556 = shufflevector <2 x double> %550, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%557 = fmul <2 x double> %128, %556
%558 = extractelement <2 x double> %557, i64 0
%559 = extractelement <2 x double> %550, i64 0
%560 = extractelement <2 x double> %134, i64 0
%561 = tail call double @llvm.fmuladd.f64(double %560, double %559, double %558)
%562 = tail call double @llvm.fmuladd.f64(double %130, double %555, double %561)
%563 = fcmp ule double %562, 0.000000e+00
%564 = zext i1 %563 to i32
br label %7621
565: ; preds = %465
%566 = fcmp ogt <2 x double> %147, zeroinitializer
%567 = extractelement <2 x i1> %566, i64 1
br i1 %567, label %568, label %667
568: ; preds = %565
%569 = extractelement <2 x i1> %566, i64 0
br i1 %569, label %570, label %620
570: ; preds = %568
%571 = fsub double %9, %53
%572 = fsub <2 x double> %17, %56
%573 = extractelement <2 x double> %572, i64 0
%574 = fsub double %21, %57
%575 = fsub double %58, %53
%576 = fsub <2 x double> %66, %56
%577 = extractelement <2 x double> %576, i64 0
%578 = fsub double %70, %57
%579 = fneg double %574
%580 = fmul double %577, %579
%581 = tail call double @llvm.fmuladd.f64(double %573, double %578, double %580)
%582 = fneg double %571
%583 = fmul double %578, %582
%584 = tail call double @llvm.fmuladd.f64(double %574, double %575, double %583)
%585 = fneg double %573
%586 = fmul double %575, %585
%587 = tail call double @llvm.fmuladd.f64(double %571, double %577, double %586)
%588 = fsub double %10, %53
%589 = fsub <2 x double> %15, %56
%590 = extractelement <2 x double> %589, i64 0
%591 = fsub double %20, %57
%592 = fmul double %590, %584
%593 = tail call double @llvm.fmuladd.f64(double %588, double %581, double %592)
%594 = tail call double @llvm.fmuladd.f64(double %591, double %587, double %593)
%595 = fcmp ogt double %594, 0.000000e+00
br i1 %595, label %7621, label %596
596: ; preds = %570
%597 = fsub <2 x double> %45, %66
%598 = extractelement <2 x double> %597, i64 0
%599 = fsub <2 x double> %102, %100
%600 = insertelement <2 x double> poison, double %126, i64 0
%601 = insertelement <2 x double> %600, double %119, i64 1
%602 = fneg <2 x double> %601
%603 = shufflevector <2 x double> %597, <2 x double> %599, <2 x i32> <i32 0, i32 2>
%604 = fmul <2 x double> %603, %602
%605 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %599, <2 x double> %604)
%606 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %605, <2 x double>* %606
%607 = fneg double %121
%608 = extractelement <2 x double> %599, i64 1
%609 = fmul double %608, %607
%610 = tail call double @llvm.fmuladd.f64(double %119, double %598, double %609)
store double %610, double* %118
%611 = shufflevector <2 x double> %605, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%612 = fmul <2 x double> %128, %611
%613 = extractelement <2 x double> %612, i64 0
%614 = extractelement <2 x double> %605, i64 0
%615 = extractelement <2 x double> %134, i64 0
%616 = tail call double @llvm.fmuladd.f64(double %615, double %614, double %613)
%617 = tail call double @llvm.fmuladd.f64(double %130, double %610, double %616)
%618 = fcmp ule double %617, 0.000000e+00
%619 = zext i1 %618 to i32
br label %7621
620: ; preds = %568
%621 = fsub double %10, %41
%622 = fsub <2 x double> %15, %45
%623 = extractelement <2 x double> %622, i64 0
%624 = fsub double %20, %48
%625 = fneg double %624
%626 = fmul double %99, %625
%627 = tail call double @llvm.fmuladd.f64(double %623, double %106, double %626)
%628 = fneg double %621
%629 = fmul double %106, %628
%630 = tail call double @llvm.fmuladd.f64(double %624, double %114, double %629)
%631 = fneg double %623
%632 = fmul double %114, %631
%633 = tail call double @llvm.fmuladd.f64(double %621, double %99, double %632)
%634 = fsub double %23, %41
%635 = fsub <2 x double> %27, %45
%636 = extractelement <2 x double> %635, i64 0
%637 = fsub double %30, %48
%638 = fmul double %636, %630
%639 = tail call double @llvm.fmuladd.f64(double %634, double %627, double %638)
%640 = tail call double @llvm.fmuladd.f64(double %637, double %633, double %639)
%641 = fcmp ogt double %640, 0.000000e+00
br i1 %641, label %7621, label %642
642: ; preds = %620
%643 = fsub <2 x double> %56, %66
%644 = extractelement <2 x double> %643, i64 0
%645 = insertelement <2 x double> poison, double %57, i64 0
%646 = insertelement <2 x double> %645, double %53, i64 1
%647 = fsub <2 x double> %646, %100
%648 = extractelement <2 x double> %134, i64 1
%649 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%650 = fneg <2 x double> %649
%651 = shufflevector <2 x double> %643, <2 x double> %647, <2 x i32> <i32 0, i32 2>
%652 = fmul <2 x double> %651, %650
%653 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %647, <2 x double> %652)
%654 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %653, <2 x double>* %654
%655 = fneg double %136
%656 = extractelement <2 x double> %647, i64 1
%657 = fmul double %656, %655
%658 = tail call double @llvm.fmuladd.f64(double %648, double %644, double %657)
store double %658, double* %118
%659 = shufflevector <2 x double> %653, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%660 = fmul <2 x double> %120, %659
%661 = extractelement <2 x double> %660, i64 0
%662 = extractelement <2 x double> %653, i64 0
%663 = tail call double @llvm.fmuladd.f64(double %119, double %662, double %661)
%664 = tail call double @llvm.fmuladd.f64(double %126, double %658, double %663)
%665 = fcmp ule double %664, 0.000000e+00
%666 = zext i1 %665 to i32
br label %7621
667: ; preds = %565
%668 = extractelement <2 x i1> %566, i64 0
br i1 %668, label %669, label %717
669: ; preds = %667
%670 = fsub double %23, %41
%671 = fsub <2 x double> %27, %45
%672 = extractelement <2 x double> %671, i64 0
%673 = fsub double %30, %48
%674 = fneg double %673
%675 = fmul double %99, %674
%676 = tail call double @llvm.fmuladd.f64(double %672, double %106, double %675)
%677 = fneg double %670
%678 = fmul double %106, %677
%679 = tail call double @llvm.fmuladd.f64(double %673, double %114, double %678)
%680 = fneg double %672
%681 = fmul double %114, %680
%682 = tail call double @llvm.fmuladd.f64(double %670, double %99, double %681)
%683 = fsub double %9, %41
%684 = fsub <2 x double> %17, %45
%685 = extractelement <2 x double> %684, i64 0
%686 = fsub double %21, %48
%687 = fmul double %685, %679
%688 = tail call double @llvm.fmuladd.f64(double %683, double %676, double %687)
%689 = tail call double @llvm.fmuladd.f64(double %686, double %682, double %688)
%690 = fcmp ogt double %689, 0.000000e+00
br i1 %690, label %7621, label %691
691: ; preds = %669
%692 = fsub <2 x double> %56, %66
%693 = extractelement <2 x double> %692, i64 0
%694 = insertelement <2 x double> poison, double %57, i64 0
%695 = insertelement <2 x double> %694, double %53, i64 1
%696 = fsub <2 x double> %695, %100
%697 = extractelement <2 x double> %134, i64 0
%698 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%699 = fneg <2 x double> %698
%700 = shufflevector <2 x double> %692, <2 x double> %696, <2 x i32> <i32 0, i32 2>
%701 = fmul <2 x double> %700, %699
%702 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %696, <2 x double> %701)
%703 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %702, <2 x double>* %703
%704 = fneg double %129
%705 = extractelement <2 x double> %696, i64 1
%706 = fmul double %705, %704
%707 = tail call double @llvm.fmuladd.f64(double %697, double %693, double %706)
store double %707, double* %118
%708 = shufflevector <2 x double> %702, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%709 = fmul <2 x double> %135, %708
%710 = extractelement <2 x double> %709, i64 0
%711 = extractelement <2 x double> %702, i64 0
%712 = extractelement <2 x double> %134, i64 1
%713 = tail call double @llvm.fmuladd.f64(double %712, double %711, double %710)
%714 = tail call double @llvm.fmuladd.f64(double %142, double %707, double %713)
%715 = fcmp ule double %714, 0.000000e+00
%716 = zext i1 %715 to i32
br label %7621
717: ; preds = %667
%718 = fcmp olt double %148, 0.000000e+00
br i1 %718, label %719, label %769
719: ; preds = %717
%720 = fsub double %23, %53
%721 = fsub <2 x double> %27, %56
%722 = extractelement <2 x double> %721, i64 0
%723 = fsub double %30, %57
%724 = fsub double %58, %53
%725 = fsub <2 x double> %66, %56
%726 = extractelement <2 x double> %725, i64 0
%727 = fsub double %70, %57
%728 = fneg double %723
%729 = fmul double %726, %728
%730 = tail call double @llvm.fmuladd.f64(double %722, double %727, double %729)
%731 = fneg double %720
%732 = fmul double %727, %731
%733 = tail call double @llvm.fmuladd.f64(double %723, double %724, double %732)
%734 = fneg double %722
%735 = fmul double %724, %734
%736 = tail call double @llvm.fmuladd.f64(double %720, double %726, double %735)
%737 = fsub double %9, %53
%738 = fsub <2 x double> %17, %56
%739 = extractelement <2 x double> %738, i64 0
%740 = fsub double %21, %57
%741 = fmul double %739, %733
%742 = tail call double @llvm.fmuladd.f64(double %737, double %730, double %741)
%743 = tail call double @llvm.fmuladd.f64(double %740, double %736, double %742)
%744 = fcmp ogt double %743, 0.000000e+00
br i1 %744, label %7621, label %745
745: ; preds = %719
%746 = fsub <2 x double> %45, %66
%747 = extractelement <2 x double> %746, i64 0
%748 = fsub <2 x double> %102, %100
%749 = extractelement <2 x double> %134, i64 0
%750 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%751 = fneg <2 x double> %750
%752 = shufflevector <2 x double> %746, <2 x double> %748, <2 x i32> <i32 0, i32 2>
%753 = fmul <2 x double> %752, %751
%754 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %748, <2 x double> %753)
%755 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %754, <2 x double>* %755
%756 = fneg double %129
%757 = extractelement <2 x double> %748, i64 1
%758 = fmul double %757, %756
%759 = tail call double @llvm.fmuladd.f64(double %749, double %747, double %758)
store double %759, double* %118
%760 = shufflevector <2 x double> %754, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%761 = fmul <2 x double> %135, %760
%762 = extractelement <2 x double> %761, i64 0
%763 = extractelement <2 x double> %754, i64 0
%764 = extractelement <2 x double> %134, i64 1
%765 = tail call double @llvm.fmuladd.f64(double %764, double %763, double %762)
%766 = tail call double @llvm.fmuladd.f64(double %142, double %759, double %765)
%767 = fcmp ule double %766, 0.000000e+00
%768 = zext i1 %767 to i32
br label %7621
769: ; preds = %717
%770 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %2, double* %0, double* %1, double* %3, double* %5, double* %4, double* %104)
br label %7621
771: ; preds = %157
%772 = fcmp ogt double %87, 0.000000e+00
%773 = fcmp ogt double %127, 0.000000e+00
br i1 %772, label %774, label %1429
774: ; preds = %771
br i1 %773, label %775, label %938
775: ; preds = %774
%776 = fcmp ogt double %151, 0.000000e+00
br i1 %776, label %777, label %831
777: ; preds = %775
%778 = fsub double %23, %41
%779 = fsub <2 x double> %27, %45
%780 = extractelement <2 x double> %779, i64 0
%781 = fsub double %30, %48
%782 = fneg double %781
%783 = fmul double %93, %782
%784 = tail call double @llvm.fmuladd.f64(double %780, double %109, double %783)
%785 = fneg double %778
%786 = fmul double %109, %785
%787 = tail call double @llvm.fmuladd.f64(double %781, double %116, double %786)
%788 = fneg double %780
%789 = fmul double %116, %788
%790 = tail call double @llvm.fmuladd.f64(double %778, double %93, double %789)
%791 = fsub double %9, %41
%792 = fsub <2 x double> %17, %45
%793 = extractelement <2 x double> %792, i64 0
%794 = fsub double %21, %48
%795 = fmul double %793, %787
%796 = tail call double @llvm.fmuladd.f64(double %791, double %784, double %795)
%797 = tail call double @llvm.fmuladd.f64(double %794, double %790, double %796)
%798 = fcmp ogt double %797, 0.000000e+00
br i1 %798, label %7621, label %799
799: ; preds = %777
%800 = fsub double %23, %53
%801 = fsub <2 x double> %27, %56
%802 = fsub <2 x double> %66, %56
%803 = extractelement <2 x double> %802, i64 0
%804 = insertelement <2 x double> %66, double %58, i64 0
%805 = fsub <2 x double> %804, %94
%806 = shufflevector <2 x double> %805, <2 x double> poison, <2 x i32> <i32 1, i32 0>
%807 = extractelement <2 x double> %801, i64 1
%808 = insertelement <2 x double> poison, double %807, i64 0
%809 = insertelement <2 x double> %808, double %800, i64 1
%810 = fneg <2 x double> %809
%811 = shufflevector <2 x double> %802, <2 x double> %805, <2 x i32> <i32 0, i32 3>
%812 = fmul <2 x double> %811, %810
%813 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %801, <2 x double> %806, <2 x double> %812)
%814 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %813, <2 x double>* %814
%815 = extractelement <2 x double> %801, i64 0
%816 = fneg double %815
%817 = extractelement <2 x double> %805, i64 0
%818 = fmul double %817, %816
%819 = tail call double @llvm.fmuladd.f64(double %800, double %803, double %818)
store double %819, double* %118
%820 = fsub double %10, %53
%821 = fsub <2 x double> %15, %56
%822 = fsub double %20, %57
%823 = shufflevector <2 x double> %813, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%824 = fmul <2 x double> %821, %823
%825 = extractelement <2 x double> %824, i64 0
%826 = extractelement <2 x double> %813, i64 0
%827 = tail call double @llvm.fmuladd.f64(double %820, double %826, double %825)
%828 = tail call double @llvm.fmuladd.f64(double %822, double %819, double %827)
%829 = fcmp ule double %828, 0.000000e+00
%830 = zext i1 %829 to i32
br label %7621
831: ; preds = %775
%832 = fcmp ogt double %148, 0.000000e+00
br i1 %832, label %833, label %887
833: ; preds = %831
%834 = fsub double %10, %41
%835 = fsub <2 x double> %15, %45
%836 = extractelement <2 x double> %835, i64 0
%837 = fsub double %20, %48
%838 = fneg double %837
%839 = fmul double %93, %838
%840 = tail call double @llvm.fmuladd.f64(double %836, double %109, double %839)
%841 = fneg double %834
%842 = fmul double %109, %841
%843 = tail call double @llvm.fmuladd.f64(double %837, double %116, double %842)
%844 = fneg double %836
%845 = fmul double %116, %844
%846 = tail call double @llvm.fmuladd.f64(double %834, double %93, double %845)
%847 = fsub double %23, %41
%848 = fsub <2 x double> %27, %45
%849 = extractelement <2 x double> %848, i64 0
%850 = fsub double %30, %48
%851 = fmul double %849, %843
%852 = tail call double @llvm.fmuladd.f64(double %847, double %840, double %851)
%853 = tail call double @llvm.fmuladd.f64(double %850, double %846, double %852)
%854 = fcmp ogt double %853, 0.000000e+00
br i1 %854, label %7621, label %855
855: ; preds = %833
%856 = fsub double %10, %53
%857 = fsub <2 x double> %15, %56
%858 = fsub <2 x double> %66, %56
%859 = extractelement <2 x double> %858, i64 0
%860 = insertelement <2 x double> poison, double %57, i64 0
%861 = insertelement <2 x double> %860, double %53, i64 1
%862 = fsub <2 x double> %100, %861
%863 = extractelement <2 x double> %857, i64 1
%864 = insertelement <2 x double> poison, double %863, i64 0
%865 = insertelement <2 x double> %864, double %856, i64 1
%866 = fneg <2 x double> %865
%867 = shufflevector <2 x double> %858, <2 x double> %862, <2 x i32> <i32 0, i32 2>
%868 = fmul <2 x double> %867, %866
%869 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %857, <2 x double> %862, <2 x double> %868)
%870 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %869, <2 x double>* %870
%871 = extractelement <2 x double> %857, i64 0
%872 = fneg double %871
%873 = extractelement <2 x double> %862, i64 1
%874 = fmul double %873, %872
%875 = tail call double @llvm.fmuladd.f64(double %856, double %859, double %874)
store double %875, double* %118
%876 = fsub double %9, %53
%877 = fsub <2 x double> %17, %56
%878 = fsub double %21, %57
%879 = shufflevector <2 x double> %869, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%880 = fmul <2 x double> %877, %879
%881 = extractelement <2 x double> %880, i64 0
%882 = extractelement <2 x double> %869, i64 0
%883 = tail call double @llvm.fmuladd.f64(double %876, double %882, double %881)
%884 = tail call double @llvm.fmuladd.f64(double %878, double %875, double %883)
%885 = fcmp ule double %884, 0.000000e+00
%886 = zext i1 %885 to i32
br label %7621
887: ; preds = %831
%888 = fsub double %53, %58
%889 = fsub <2 x double> %56, %66
%890 = extractelement <2 x double> %889, i64 0
%891 = fsub double %57, %70
%892 = fneg double %126
%893 = fmul double %890, %892
%894 = tail call double @llvm.fmuladd.f64(double %121, double %891, double %893)
%895 = fneg double %119
%896 = fmul double %891, %895
%897 = tail call double @llvm.fmuladd.f64(double %126, double %888, double %896)
%898 = fneg double %121
%899 = fmul double %888, %898
%900 = tail call double @llvm.fmuladd.f64(double %119, double %890, double %899)
%901 = fmul double %136, %897
%902 = extractelement <2 x double> %134, i64 1
%903 = tail call double @llvm.fmuladd.f64(double %902, double %894, double %901)
%904 = tail call double @llvm.fmuladd.f64(double %142, double %900, double %903)
%905 = fcmp ogt double %904, 0.000000e+00
br i1 %905, label %7621, label %906
906: ; preds = %887
%907 = fsub double %9, %53
%908 = fsub <2 x double> %17, %56
%909 = fsub <2 x double> %45, %56
%910 = extractelement <2 x double> %909, i64 0
%911 = insertelement <2 x double> poison, double %57, i64 0
%912 = insertelement <2 x double> %911, double %53, i64 1
%913 = fsub <2 x double> %102, %912
%914 = extractelement <2 x double> %908, i64 1
%915 = insertelement <2 x double> poison, double %914, i64 0
%916 = insertelement <2 x double> %915, double %907, i64 1
%917 = fneg <2 x double> %916
%918 = shufflevector <2 x double> %909, <2 x double> %913, <2 x i32> <i32 0, i32 2>
%919 = fmul <2 x double> %918, %917
%920 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %908, <2 x double> %913, <2 x double> %919)
%921 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %920, <2 x double>* %921
%922 = extractelement <2 x double> %908, i64 0
%923 = fneg double %922
%924 = extractelement <2 x double> %913, i64 1
%925 = fmul double %924, %923
%926 = tail call double @llvm.fmuladd.f64(double %907, double %910, double %925)
store double %926, double* %118
%927 = fsub double %23, %53
%928 = fsub <2 x double> %27, %56
%929 = fsub double %30, %57
%930 = shufflevector <2 x double> %920, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%931 = fmul <2 x double> %928, %930
%932 = extractelement <2 x double> %931, i64 0
%933 = extractelement <2 x double> %920, i64 0
%934 = tail call double @llvm.fmuladd.f64(double %927, double %933, double %932)
%935 = tail call double @llvm.fmuladd.f64(double %929, double %926, double %934)
%936 = fcmp ule double %935, 0.000000e+00
%937 = zext i1 %936 to i32
br label %7621
938: ; preds = %774
%939 = fcmp olt double %127, 0.000000e+00
%940 = fcmp olt double %151, 0.000000e+00
br i1 %939, label %941, label %1101
941: ; preds = %938
br i1 %940, label %942, label %993
942: ; preds = %941
%943 = fsub double %53, %58
%944 = fsub <2 x double> %56, %66
%945 = extractelement <2 x double> %944, i64 0
%946 = fsub double %57, %70
%947 = fneg double %130
%948 = fmul double %945, %947
%949 = tail call double @llvm.fmuladd.f64(double %129, double %946, double %948)
%950 = extractelement <2 x double> %134, i64 0
%951 = fneg double %950
%952 = fmul double %946, %951
%953 = tail call double @llvm.fmuladd.f64(double %130, double %943, double %952)
%954 = fneg double %129
%955 = fmul double %943, %954
%956 = tail call double @llvm.fmuladd.f64(double %950, double %945, double %955)
%957 = fmul double %121, %953
%958 = tail call double @llvm.fmuladd.f64(double %119, double %949, double %957)
%959 = tail call double @llvm.fmuladd.f64(double %126, double %956, double %958)
%960 = fcmp ogt double %959, 0.000000e+00
br i1 %960, label %7621, label %961
961: ; preds = %942
%962 = fsub double %23, %53
%963 = fsub <2 x double> %27, %56
%964 = fsub <2 x double> %45, %56
%965 = extractelement <2 x double> %964, i64 0
%966 = insertelement <2 x double> poison, double %57, i64 0
%967 = insertelement <2 x double> %966, double %53, i64 1
%968 = fsub <2 x double> %102, %967
%969 = extractelement <2 x double> %963, i64 1
%970 = insertelement <2 x double> poison, double %969, i64 0
%971 = insertelement <2 x double> %970, double %962, i64 1
%972 = fneg <2 x double> %971
%973 = shufflevector <2 x double> %964, <2 x double> %968, <2 x i32> <i32 0, i32 2>
%974 = fmul <2 x double> %973, %972
%975 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %963, <2 x double> %968, <2 x double> %974)
%976 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %975, <2 x double>* %976
%977 = extractelement <2 x double> %963, i64 0
%978 = fneg double %977
%979 = extractelement <2 x double> %968, i64 1
%980 = fmul double %979, %978
%981 = tail call double @llvm.fmuladd.f64(double %962, double %965, double %980)
store double %981, double* %118
%982 = fsub double %10, %53
%983 = fsub <2 x double> %15, %56
%984 = fsub double %20, %57
%985 = shufflevector <2 x double> %975, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%986 = fmul <2 x double> %983, %985
%987 = extractelement <2 x double> %986, i64 0
%988 = extractelement <2 x double> %975, i64 0
%989 = tail call double @llvm.fmuladd.f64(double %982, double %988, double %987)
%990 = tail call double @llvm.fmuladd.f64(double %984, double %981, double %989)
%991 = fcmp ule double %990, 0.000000e+00
%992 = zext i1 %991 to i32
br label %7621
993: ; preds = %941
%994 = fcmp olt double %148, 0.000000e+00
br i1 %994, label %995, label %1047
995: ; preds = %993
%996 = fsub double %53, %58
%997 = fsub <2 x double> %56, %66
%998 = extractelement <2 x double> %997, i64 0
%999 = fsub double %57, %70
%1000 = fneg double %142
%1001 = fmul double %998, %1000
%1002 = tail call double @llvm.fmuladd.f64(double %136, double %999, double %1001)
%1003 = extractelement <2 x double> %134, i64 1
%1004 = fneg double %1003
%1005 = fmul double %999, %1004
%1006 = tail call double @llvm.fmuladd.f64(double %142, double %996, double %1005)
%1007 = fneg double %136
%1008 = fmul double %996, %1007
%1009 = tail call double @llvm.fmuladd.f64(double %1003, double %998, double %1008)
%1010 = fmul double %129, %1006
%1011 = extractelement <2 x double> %134, i64 0
%1012 = tail call double @llvm.fmuladd.f64(double %1011, double %1002, double %1010)
%1013 = tail call double @llvm.fmuladd.f64(double %130, double %1009, double %1012)
%1014 = fcmp ogt double %1013, 0.000000e+00
br i1 %1014, label %7621, label %1015
1015: ; preds = %995
%1016 = fsub double %10, %53
%1017 = fsub <2 x double> %15, %56
%1018 = fsub <2 x double> %45, %56
%1019 = extractelement <2 x double> %1018, i64 0
%1020 = insertelement <2 x double> poison, double %57, i64 0
%1021 = insertelement <2 x double> %1020, double %53, i64 1
%1022 = fsub <2 x double> %102, %1021
%1023 = extractelement <2 x double> %1017, i64 1
%1024 = insertelement <2 x double> poison, double %1023, i64 0
%1025 = insertelement <2 x double> %1024, double %1016, i64 1
%1026 = fneg <2 x double> %1025
%1027 = shufflevector <2 x double> %1018, <2 x double> %1022, <2 x i32> <i32 0, i32 2>
%1028 = fmul <2 x double> %1027, %1026
%1029 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1017, <2 x double> %1022, <2 x double> %1028)
%1030 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1029, <2 x double>* %1030
%1031 = extractelement <2 x double> %1017, i64 0
%1032 = fneg double %1031
%1033 = extractelement <2 x double> %1022, i64 1
%1034 = fmul double %1033, %1032
%1035 = tail call double @llvm.fmuladd.f64(double %1016, double %1019, double %1034)
store double %1035, double* %118
%1036 = fsub double %9, %53
%1037 = fsub <2 x double> %17, %56
%1038 = fsub double %21, %57
%1039 = shufflevector <2 x double> %1029, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1040 = fmul <2 x double> %1037, %1039
%1041 = extractelement <2 x double> %1040, i64 0
%1042 = extractelement <2 x double> %1029, i64 0
%1043 = tail call double @llvm.fmuladd.f64(double %1036, double %1042, double %1041)
%1044 = tail call double @llvm.fmuladd.f64(double %1038, double %1035, double %1043)
%1045 = fcmp ule double %1044, 0.000000e+00
%1046 = zext i1 %1045 to i32
br label %7621
1047: ; preds = %993
%1048 = fsub double %9, %41
%1049 = fsub <2 x double> %17, %45
%1050 = extractelement <2 x double> %1049, i64 0
%1051 = fsub double %21, %48
%1052 = fneg double %1051
%1053 = fmul double %93, %1052
%1054 = tail call double @llvm.fmuladd.f64(double %1050, double %109, double %1053)
%1055 = fneg double %1048
%1056 = fmul double %109, %1055
%1057 = tail call double @llvm.fmuladd.f64(double %1051, double %116, double %1056)
%1058 = fneg double %1050
%1059 = fmul double %116, %1058
%1060 = tail call double @llvm.fmuladd.f64(double %1048, double %93, double %1059)
%1061 = fsub double %10, %41
%1062 = fsub <2 x double> %15, %45
%1063 = extractelement <2 x double> %1062, i64 0
%1064 = fsub double %20, %48
%1065 = fmul double %1063, %1057
%1066 = tail call double @llvm.fmuladd.f64(double %1061, double %1054, double %1065)
%1067 = tail call double @llvm.fmuladd.f64(double %1064, double %1060, double %1066)
%1068 = fcmp ogt double %1067, 0.000000e+00
br i1 %1068, label %7621, label %1069
1069: ; preds = %1047
%1070 = fsub double %9, %53
%1071 = fsub <2 x double> %17, %56
%1072 = fsub <2 x double> %66, %56
%1073 = extractelement <2 x double> %1072, i64 0
%1074 = insertelement <2 x double> poison, double %57, i64 0
%1075 = insertelement <2 x double> %1074, double %53, i64 1
%1076 = fsub <2 x double> %100, %1075
%1077 = extractelement <2 x double> %1071, i64 1
%1078 = insertelement <2 x double> poison, double %1077, i64 0
%1079 = insertelement <2 x double> %1078, double %1070, i64 1
%1080 = fneg <2 x double> %1079
%1081 = shufflevector <2 x double> %1072, <2 x double> %1076, <2 x i32> <i32 0, i32 2>
%1082 = fmul <2 x double> %1081, %1080
%1083 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1071, <2 x double> %1076, <2 x double> %1082)
%1084 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1083, <2 x double>* %1084
%1085 = extractelement <2 x double> %1071, i64 0
%1086 = fneg double %1085
%1087 = extractelement <2 x double> %1076, i64 1
%1088 = fmul double %1087, %1086
%1089 = tail call double @llvm.fmuladd.f64(double %1070, double %1073, double %1088)
store double %1089, double* %118
%1090 = fsub double %23, %53
%1091 = fsub <2 x double> %27, %56
%1092 = fsub double %30, %57
%1093 = shufflevector <2 x double> %1083, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1094 = fmul <2 x double> %1091, %1093
%1095 = extractelement <2 x double> %1094, i64 0
%1096 = extractelement <2 x double> %1083, i64 0
%1097 = tail call double @llvm.fmuladd.f64(double %1090, double %1096, double %1095)
%1098 = tail call double @llvm.fmuladd.f64(double %1092, double %1089, double %1097)
%1099 = fcmp ule double %1098, 0.000000e+00
%1100 = zext i1 %1099 to i32
br label %7621
1101: ; preds = %938
br i1 %940, label %1102, label %1209
1102: ; preds = %1101
%1103 = fcmp ult double %148, 0.000000e+00
br i1 %1103, label %1158, label %1104
1104: ; preds = %1102
%1105 = fsub double %10, %41
%1106 = fsub <2 x double> %15, %45
%1107 = extractelement <2 x double> %1106, i64 0
%1108 = fsub double %20, %48
%1109 = fneg double %1108
%1110 = fmul double %93, %1109
%1111 = tail call double @llvm.fmuladd.f64(double %1107, double %109, double %1110)
%1112 = fneg double %1105
%1113 = fmul double %109, %1112
%1114 = tail call double @llvm.fmuladd.f64(double %1108, double %116, double %1113)
%1115 = fneg double %1107
%1116 = fmul double %116, %1115
%1117 = tail call double @llvm.fmuladd.f64(double %1105, double %93, double %1116)
%1118 = fsub double %23, %41
%1119 = fsub <2 x double> %27, %45
%1120 = extractelement <2 x double> %1119, i64 0
%1121 = fsub double %30, %48
%1122 = fmul double %1120, %1114
%1123 = tail call double @llvm.fmuladd.f64(double %1118, double %1111, double %1122)
%1124 = tail call double @llvm.fmuladd.f64(double %1121, double %1117, double %1123)
%1125 = fcmp ogt double %1124, 0.000000e+00
br i1 %1125, label %7621, label %1126
1126: ; preds = %1104
%1127 = fsub double %10, %53
%1128 = fsub <2 x double> %15, %56
%1129 = fsub <2 x double> %66, %56
%1130 = extractelement <2 x double> %1129, i64 0
%1131 = insertelement <2 x double> poison, double %57, i64 0
%1132 = insertelement <2 x double> %1131, double %53, i64 1
%1133 = fsub <2 x double> %100, %1132
%1134 = extractelement <2 x double> %1128, i64 1
%1135 = insertelement <2 x double> poison, double %1134, i64 0
%1136 = insertelement <2 x double> %1135, double %1127, i64 1
%1137 = fneg <2 x double> %1136
%1138 = shufflevector <2 x double> %1129, <2 x double> %1133, <2 x i32> <i32 0, i32 2>
%1139 = fmul <2 x double> %1138, %1137
%1140 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1128, <2 x double> %1133, <2 x double> %1139)
%1141 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1140, <2 x double>* %1141
%1142 = extractelement <2 x double> %1128, i64 0
%1143 = fneg double %1142
%1144 = extractelement <2 x double> %1133, i64 1
%1145 = fmul double %1144, %1143
%1146 = tail call double @llvm.fmuladd.f64(double %1127, double %1130, double %1145)
store double %1146, double* %118
%1147 = fsub double %9, %53
%1148 = fsub <2 x double> %17, %56
%1149 = fsub double %21, %57
%1150 = shufflevector <2 x double> %1140, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1151 = fmul <2 x double> %1148, %1150
%1152 = extractelement <2 x double> %1151, i64 0
%1153 = extractelement <2 x double> %1140, i64 0
%1154 = tail call double @llvm.fmuladd.f64(double %1147, double %1153, double %1152)
%1155 = tail call double @llvm.fmuladd.f64(double %1149, double %1146, double %1154)
%1156 = fcmp ule double %1155, 0.000000e+00
%1157 = zext i1 %1156 to i32
br label %7621
1158: ; preds = %1102
%1159 = fsub double %53, %58
%1160 = fsub <2 x double> %56, %66
%1161 = extractelement <2 x double> %1160, i64 0
%1162 = fsub double %57, %70
%1163 = fneg double %126
%1164 = fmul double %1161, %1163
%1165 = tail call double @llvm.fmuladd.f64(double %121, double %1162, double %1164)
%1166 = fneg double %119
%1167 = fmul double %1162, %1166
%1168 = tail call double @llvm.fmuladd.f64(double %126, double %1159, double %1167)
%1169 = fneg double %121
%1170 = fmul double %1159, %1169
%1171 = tail call double @llvm.fmuladd.f64(double %119, double %1161, double %1170)
%1172 = fmul double %136, %1168
%1173 = extractelement <2 x double> %134, i64 1
%1174 = tail call double @llvm.fmuladd.f64(double %1173, double %1165, double %1172)
%1175 = tail call double @llvm.fmuladd.f64(double %142, double %1171, double %1174)
%1176 = fcmp ogt double %1175, 0.000000e+00
br i1 %1176, label %7621, label %1177
1177: ; preds = %1158
%1178 = fsub double %9, %53
%1179 = fsub <2 x double> %17, %56
%1180 = fsub <2 x double> %45, %56
%1181 = extractelement <2 x double> %1180, i64 0
%1182 = insertelement <2 x double> poison, double %57, i64 0
%1183 = insertelement <2 x double> %1182, double %53, i64 1
%1184 = fsub <2 x double> %102, %1183
%1185 = extractelement <2 x double> %1179, i64 1
%1186 = insertelement <2 x double> poison, double %1185, i64 0
%1187 = insertelement <2 x double> %1186, double %1178, i64 1
%1188 = fneg <2 x double> %1187
%1189 = shufflevector <2 x double> %1180, <2 x double> %1184, <2 x i32> <i32 0, i32 2>
%1190 = fmul <2 x double> %1189, %1188
%1191 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1179, <2 x double> %1184, <2 x double> %1190)
%1192 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1191, <2 x double>* %1192
%1193 = extractelement <2 x double> %1179, i64 0
%1194 = fneg double %1193
%1195 = extractelement <2 x double> %1184, i64 1
%1196 = fmul double %1195, %1194
%1197 = tail call double @llvm.fmuladd.f64(double %1178, double %1181, double %1196)
store double %1197, double* %118
%1198 = fsub double %23, %53
%1199 = fsub <2 x double> %27, %56
%1200 = fsub double %30, %57
%1201 = shufflevector <2 x double> %1191, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1202 = fmul <2 x double> %1199, %1201
%1203 = extractelement <2 x double> %1202, i64 0
%1204 = extractelement <2 x double> %1191, i64 0
%1205 = tail call double @llvm.fmuladd.f64(double %1198, double %1204, double %1203)
%1206 = tail call double @llvm.fmuladd.f64(double %1200, double %1197, double %1205)
%1207 = fcmp ule double %1206, 0.000000e+00
%1208 = zext i1 %1207 to i32
br label %7621
1209: ; preds = %1101
%1210 = fcmp ogt double %151, 0.000000e+00
%1211 = fcmp ogt double %148, 0.000000e+00
br i1 %1210, label %1212, label %1319
1212: ; preds = %1209
br i1 %1211, label %1213, label %1267
1213: ; preds = %1212
%1214 = fsub double %9, %41
%1215 = fsub <2 x double> %17, %45
%1216 = extractelement <2 x double> %1215, i64 0
%1217 = fsub double %21, %48
%1218 = fneg double %1217
%1219 = fmul double %93, %1218
%1220 = tail call double @llvm.fmuladd.f64(double %1216, double %109, double %1219)
%1221 = fneg double %1214
%1222 = fmul double %109, %1221
%1223 = tail call double @llvm.fmuladd.f64(double %1217, double %116, double %1222)
%1224 = fneg double %1216
%1225 = fmul double %116, %1224
%1226 = tail call double @llvm.fmuladd.f64(double %1214, double %93, double %1225)
%1227 = fsub double %10, %41
%1228 = fsub <2 x double> %15, %45
%1229 = extractelement <2 x double> %1228, i64 0
%1230 = fsub double %20, %48
%1231 = fmul double %1229, %1223
%1232 = tail call double @llvm.fmuladd.f64(double %1227, double %1220, double %1231)
%1233 = tail call double @llvm.fmuladd.f64(double %1230, double %1226, double %1232)
%1234 = fcmp ogt double %1233, 0.000000e+00
br i1 %1234, label %7621, label %1235
1235: ; preds = %1213
%1236 = fsub double %9, %53
%1237 = fsub <2 x double> %17, %56
%1238 = fsub <2 x double> %66, %56
%1239 = extractelement <2 x double> %1238, i64 0
%1240 = insertelement <2 x double> poison, double %57, i64 0
%1241 = insertelement <2 x double> %1240, double %53, i64 1
%1242 = fsub <2 x double> %100, %1241
%1243 = extractelement <2 x double> %1237, i64 1
%1244 = insertelement <2 x double> poison, double %1243, i64 0
%1245 = insertelement <2 x double> %1244, double %1236, i64 1
%1246 = fneg <2 x double> %1245
%1247 = shufflevector <2 x double> %1238, <2 x double> %1242, <2 x i32> <i32 0, i32 2>
%1248 = fmul <2 x double> %1247, %1246
%1249 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1237, <2 x double> %1242, <2 x double> %1248)
%1250 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1249, <2 x double>* %1250
%1251 = extractelement <2 x double> %1237, i64 0
%1252 = fneg double %1251
%1253 = extractelement <2 x double> %1242, i64 1
%1254 = fmul double %1253, %1252
%1255 = tail call double @llvm.fmuladd.f64(double %1236, double %1239, double %1254)
store double %1255, double* %118
%1256 = fsub double %23, %53
%1257 = fsub <2 x double> %27, %56
%1258 = fsub double %30, %57
%1259 = shufflevector <2 x double> %1249, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1260 = fmul <2 x double> %1257, %1259
%1261 = extractelement <2 x double> %1260, i64 0
%1262 = extractelement <2 x double> %1249, i64 0
%1263 = tail call double @llvm.fmuladd.f64(double %1256, double %1262, double %1261)
%1264 = tail call double @llvm.fmuladd.f64(double %1258, double %1255, double %1263)
%1265 = fcmp ule double %1264, 0.000000e+00
%1266 = zext i1 %1265 to i32
br label %7621
1267: ; preds = %1212
%1268 = fsub double %53, %58
%1269 = fsub <2 x double> %56, %66
%1270 = extractelement <2 x double> %1269, i64 0
%1271 = fsub double %57, %70
%1272 = fneg double %142
%1273 = fmul double %1270, %1272
%1274 = tail call double @llvm.fmuladd.f64(double %136, double %1271, double %1273)
%1275 = extractelement <2 x double> %134, i64 1
%1276 = fneg double %1275
%1277 = fmul double %1271, %1276
%1278 = tail call double @llvm.fmuladd.f64(double %142, double %1268, double %1277)
%1279 = fneg double %136
%1280 = fmul double %1268, %1279
%1281 = tail call double @llvm.fmuladd.f64(double %1275, double %1270, double %1280)
%1282 = fmul double %129, %1278
%1283 = extractelement <2 x double> %134, i64 0
%1284 = tail call double @llvm.fmuladd.f64(double %1283, double %1274, double %1282)
%1285 = tail call double @llvm.fmuladd.f64(double %130, double %1281, double %1284)
%1286 = fcmp ogt double %1285, 0.000000e+00
br i1 %1286, label %7621, label %1287
1287: ; preds = %1267
%1288 = fsub double %10, %53
%1289 = fsub <2 x double> %15, %56
%1290 = fsub <2 x double> %45, %56
%1291 = extractelement <2 x double> %1290, i64 0
%1292 = insertelement <2 x double> poison, double %57, i64 0
%1293 = insertelement <2 x double> %1292, double %53, i64 1
%1294 = fsub <2 x double> %102, %1293
%1295 = extractelement <2 x double> %1289, i64 1
%1296 = insertelement <2 x double> poison, double %1295, i64 0
%1297 = insertelement <2 x double> %1296, double %1288, i64 1
%1298 = fneg <2 x double> %1297
%1299 = shufflevector <2 x double> %1290, <2 x double> %1294, <2 x i32> <i32 0, i32 2>
%1300 = fmul <2 x double> %1299, %1298
%1301 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1289, <2 x double> %1294, <2 x double> %1300)
%1302 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1301, <2 x double>* %1302
%1303 = extractelement <2 x double> %1289, i64 0
%1304 = fneg double %1303
%1305 = extractelement <2 x double> %1294, i64 1
%1306 = fmul double %1305, %1304
%1307 = tail call double @llvm.fmuladd.f64(double %1288, double %1291, double %1306)
store double %1307, double* %118
%1308 = fsub double %9, %53
%1309 = fsub <2 x double> %17, %56
%1310 = fsub double %21, %57
%1311 = shufflevector <2 x double> %1301, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1312 = fmul <2 x double> %1309, %1311
%1313 = extractelement <2 x double> %1312, i64 0
%1314 = extractelement <2 x double> %1301, i64 0
%1315 = tail call double @llvm.fmuladd.f64(double %1308, double %1314, double %1313)
%1316 = tail call double @llvm.fmuladd.f64(double %1310, double %1307, double %1315)
%1317 = fcmp ule double %1316, 0.000000e+00
%1318 = zext i1 %1317 to i32
br label %7621
1319: ; preds = %1209
br i1 %1211, label %1320, label %1371
1320: ; preds = %1319
%1321 = fsub double %53, %58
%1322 = fsub <2 x double> %56, %66
%1323 = extractelement <2 x double> %1322, i64 0
%1324 = fsub double %57, %70
%1325 = fneg double %130
%1326 = fmul double %1323, %1325
%1327 = tail call double @llvm.fmuladd.f64(double %129, double %1324, double %1326)
%1328 = extractelement <2 x double> %134, i64 0
%1329 = fneg double %1328
%1330 = fmul double %1324, %1329
%1331 = tail call double @llvm.fmuladd.f64(double %130, double %1321, double %1330)
%1332 = fneg double %129
%1333 = fmul double %1321, %1332
%1334 = tail call double @llvm.fmuladd.f64(double %1328, double %1323, double %1333)
%1335 = fmul double %121, %1331
%1336 = tail call double @llvm.fmuladd.f64(double %119, double %1327, double %1335)
%1337 = tail call double @llvm.fmuladd.f64(double %126, double %1334, double %1336)
%1338 = fcmp ogt double %1337, 0.000000e+00
br i1 %1338, label %7621, label %1339
1339: ; preds = %1320
%1340 = fsub double %23, %53
%1341 = fsub <2 x double> %27, %56
%1342 = fsub <2 x double> %45, %56
%1343 = extractelement <2 x double> %1342, i64 0
%1344 = insertelement <2 x double> poison, double %57, i64 0
%1345 = insertelement <2 x double> %1344, double %53, i64 1
%1346 = fsub <2 x double> %102, %1345
%1347 = extractelement <2 x double> %1341, i64 1
%1348 = insertelement <2 x double> poison, double %1347, i64 0
%1349 = insertelement <2 x double> %1348, double %1340, i64 1
%1350 = fneg <2 x double> %1349
%1351 = shufflevector <2 x double> %1342, <2 x double> %1346, <2 x i32> <i32 0, i32 2>
%1352 = fmul <2 x double> %1351, %1350
%1353 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1341, <2 x double> %1346, <2 x double> %1352)
%1354 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1353, <2 x double>* %1354
%1355 = extractelement <2 x double> %1341, i64 0
%1356 = fneg double %1355
%1357 = extractelement <2 x double> %1346, i64 1
%1358 = fmul double %1357, %1356
%1359 = tail call double @llvm.fmuladd.f64(double %1340, double %1343, double %1358)
store double %1359, double* %118
%1360 = fsub double %10, %53
%1361 = fsub <2 x double> %15, %56
%1362 = fsub double %20, %57
%1363 = shufflevector <2 x double> %1353, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1364 = fmul <2 x double> %1361, %1363
%1365 = extractelement <2 x double> %1364, i64 0
%1366 = extractelement <2 x double> %1353, i64 0
%1367 = tail call double @llvm.fmuladd.f64(double %1360, double %1366, double %1365)
%1368 = tail call double @llvm.fmuladd.f64(double %1362, double %1359, double %1367)
%1369 = fcmp ule double %1368, 0.000000e+00
%1370 = zext i1 %1369 to i32
br label %7621
1371: ; preds = %1319
%1372 = fcmp olt double %148, 0.000000e+00
br i1 %1372, label %1373, label %1427
1373: ; preds = %1371
%1374 = fsub double %23, %41
%1375 = fsub <2 x double> %27, %45
%1376 = extractelement <2 x double> %1375, i64 0
%1377 = fsub double %30, %48
%1378 = fneg double %1377
%1379 = fmul double %93, %1378
%1380 = tail call double @llvm.fmuladd.f64(double %1376, double %109, double %1379)
%1381 = fneg double %1374
%1382 = fmul double %109, %1381
%1383 = tail call double @llvm.fmuladd.f64(double %1377, double %116, double %1382)
%1384 = fneg double %1376
%1385 = fmul double %116, %1384
%1386 = tail call double @llvm.fmuladd.f64(double %1374, double %93, double %1385)
%1387 = fsub double %9, %41
%1388 = fsub <2 x double> %17, %45
%1389 = extractelement <2 x double> %1388, i64 0
%1390 = fsub double %21, %48
%1391 = fmul double %1389, %1383
%1392 = tail call double @llvm.fmuladd.f64(double %1387, double %1380, double %1391)
%1393 = tail call double @llvm.fmuladd.f64(double %1390, double %1386, double %1392)
%1394 = fcmp ogt double %1393, 0.000000e+00
br i1 %1394, label %7621, label %1395
1395: ; preds = %1373
%1396 = fsub double %23, %53
%1397 = fsub <2 x double> %27, %56
%1398 = fsub <2 x double> %66, %56
%1399 = extractelement <2 x double> %1398, i64 0
%1400 = insertelement <2 x double> poison, double %57, i64 0
%1401 = insertelement <2 x double> %1400, double %53, i64 1
%1402 = fsub <2 x double> %100, %1401
%1403 = extractelement <2 x double> %1397, i64 1
%1404 = insertelement <2 x double> poison, double %1403, i64 0
%1405 = insertelement <2 x double> %1404, double %1396, i64 1
%1406 = fneg <2 x double> %1405
%1407 = shufflevector <2 x double> %1398, <2 x double> %1402, <2 x i32> <i32 0, i32 2>
%1408 = fmul <2 x double> %1407, %1406
%1409 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1397, <2 x double> %1402, <2 x double> %1408)
%1410 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1409, <2 x double>* %1410
%1411 = extractelement <2 x double> %1397, i64 0
%1412 = fneg double %1411
%1413 = extractelement <2 x double> %1402, i64 1
%1414 = fmul double %1413, %1412
%1415 = tail call double @llvm.fmuladd.f64(double %1396, double %1399, double %1414)
store double %1415, double* %118
%1416 = fsub double %10, %53
%1417 = fsub <2 x double> %15, %56
%1418 = fsub double %20, %57
%1419 = shufflevector <2 x double> %1409, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1420 = fmul <2 x double> %1417, %1419
%1421 = extractelement <2 x double> %1420, i64 0
%1422 = extractelement <2 x double> %1409, i64 0
%1423 = tail call double @llvm.fmuladd.f64(double %1416, double %1422, double %1421)
%1424 = tail call double @llvm.fmuladd.f64(double %1418, double %1415, double %1423)
%1425 = fcmp ule double %1424, 0.000000e+00
%1426 = zext i1 %1425 to i32
br label %7621
1427: ; preds = %1371
%1428 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %1, double* %2, double* %0, double* %3, double* %5, double* %4, double* %104)
br label %7621
1429: ; preds = %771
br i1 %773, label %1430, label %1574
1430: ; preds = %1429
%1431 = fcmp ogt double %148, 0.000000e+00
br i1 %1431, label %1432, label %1476
1432: ; preds = %1430
%1433 = fsub double %41, %58
%1434 = fsub <2 x double> %45, %66
%1435 = extractelement <2 x double> %1434, i64 0
%1436 = fsub double %48, %70
%1437 = fneg double %142
%1438 = fmul double %1435, %1437
%1439 = tail call double @llvm.fmuladd.f64(double %136, double %1436, double %1438)
%1440 = extractelement <2 x double> %134, i64 1
%1441 = fneg double %1440
%1442 = fmul double %1436, %1441
%1443 = tail call double @llvm.fmuladd.f64(double %142, double %1433, double %1442)
%1444 = fneg double %136
%1445 = fmul double %1433, %1444
%1446 = tail call double @llvm.fmuladd.f64(double %1440, double %1435, double %1445)
%1447 = fmul double %121, %1443
%1448 = tail call double @llvm.fmuladd.f64(double %119, double %1439, double %1447)
%1449 = tail call double @llvm.fmuladd.f64(double %126, double %1446, double %1448)
%1450 = fcmp ogt double %1449, 0.000000e+00
br i1 %1450, label %7621, label %1451
1451: ; preds = %1432
%1452 = fsub double %10, %41
%1453 = fsub <2 x double> %15, %45
%1454 = extractelement <2 x double> %1453, i64 1
%1455 = insertelement <2 x double> poison, double %1454, i64 0
%1456 = insertelement <2 x double> %1455, double %1452, i64 1
%1457 = fneg <2 x double> %1456
%1458 = fmul <2 x double> %110, %1457
%1459 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1453, <2 x double> %97, <2 x double> %1458)
%1460 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1459, <2 x double>* %1460
%1461 = extractelement <2 x double> %1453, i64 0
%1462 = fneg double %1461
%1463 = fmul double %116, %1462
%1464 = tail call double @llvm.fmuladd.f64(double %1452, double %93, double %1463)
store double %1464, double* %118
%1465 = fsub double %23, %41
%1466 = fsub <2 x double> %27, %45
%1467 = fsub double %30, %48
%1468 = shufflevector <2 x double> %1459, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1469 = fmul <2 x double> %1466, %1468
%1470 = extractelement <2 x double> %1469, i64 0
%1471 = extractelement <2 x double> %1459, i64 0
%1472 = tail call double @llvm.fmuladd.f64(double %1465, double %1471, double %1470)
%1473 = tail call double @llvm.fmuladd.f64(double %1467, double %1464, double %1472)
%1474 = fcmp ule double %1473, 0.000000e+00
%1475 = zext i1 %1474 to i32
br label %7621
1476: ; preds = %1430
%1477 = fcmp ogt double %151, 0.000000e+00
br i1 %1477, label %1478, label %1523
1478: ; preds = %1476
%1479 = fsub double %41, %58
%1480 = fsub <2 x double> %45, %66
%1481 = extractelement <2 x double> %1480, i64 0
%1482 = fsub double %48, %70
%1483 = fneg double %130
%1484 = fmul double %1481, %1483
%1485 = tail call double @llvm.fmuladd.f64(double %129, double %1482, double %1484)
%1486 = extractelement <2 x double> %134, i64 0
%1487 = fneg double %1486
%1488 = fmul double %1482, %1487
%1489 = tail call double @llvm.fmuladd.f64(double %130, double %1479, double %1488)
%1490 = fneg double %129
%1491 = fmul double %1479, %1490
%1492 = tail call double @llvm.fmuladd.f64(double %1486, double %1481, double %1491)
%1493 = fmul double %136, %1489
%1494 = extractelement <2 x double> %134, i64 1
%1495 = tail call double @llvm.fmuladd.f64(double %1494, double %1485, double %1493)
%1496 = tail call double @llvm.fmuladd.f64(double %142, double %1492, double %1495)
%1497 = fcmp ogt double %1496, 0.000000e+00
br i1 %1497, label %7621, label %1498
1498: ; preds = %1478
%1499 = fsub double %23, %41
%1500 = fsub <2 x double> %27, %45
%1501 = extractelement <2 x double> %1500, i64 1
%1502 = insertelement <2 x double> poison, double %1501, i64 0
%1503 = insertelement <2 x double> %1502, double %1499, i64 1
%1504 = fneg <2 x double> %1503
%1505 = fmul <2 x double> %110, %1504
%1506 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1500, <2 x double> %97, <2 x double> %1505)
%1507 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1506, <2 x double>* %1507
%1508 = extractelement <2 x double> %1500, i64 0
%1509 = fneg double %1508
%1510 = fmul double %116, %1509
%1511 = tail call double @llvm.fmuladd.f64(double %1499, double %93, double %1510)
store double %1511, double* %118
%1512 = fsub double %9, %41
%1513 = fsub <2 x double> %17, %45
%1514 = fsub double %21, %48
%1515 = shufflevector <2 x double> %1506, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1516 = fmul <2 x double> %1513, %1515
%1517 = extractelement <2 x double> %1516, i64 0
%1518 = extractelement <2 x double> %1506, i64 0
%1519 = tail call double @llvm.fmuladd.f64(double %1512, double %1518, double %1517)
%1520 = tail call double @llvm.fmuladd.f64(double %1514, double %1511, double %1519)
%1521 = fcmp ule double %1520, 0.000000e+00
%1522 = zext i1 %1521 to i32
br label %7621
1523: ; preds = %1476
%1524 = fsub double %9, %53
%1525 = fsub <2 x double> %17, %56
%1526 = extractelement <2 x double> %1525, i64 0
%1527 = fsub double %21, %57
%1528 = fsub double %41, %53
%1529 = fsub <2 x double> %45, %56
%1530 = extractelement <2 x double> %1529, i64 0
%1531 = fsub double %48, %57
%1532 = fneg double %1527
%1533 = fmul double %1530, %1532
%1534 = tail call double @llvm.fmuladd.f64(double %1526, double %1531, double %1533)
%1535 = fneg double %1524
%1536 = fmul double %1531, %1535
%1537 = tail call double @llvm.fmuladd.f64(double %1527, double %1528, double %1536)
%1538 = fneg double %1526
%1539 = fmul double %1528, %1538
%1540 = tail call double @llvm.fmuladd.f64(double %1524, double %1530, double %1539)
%1541 = fsub double %23, %53
%1542 = fsub <2 x double> %27, %56
%1543 = extractelement <2 x double> %1542, i64 0
%1544 = fsub double %30, %57
%1545 = fmul double %1543, %1537
%1546 = tail call double @llvm.fmuladd.f64(double %1541, double %1534, double %1545)
%1547 = tail call double @llvm.fmuladd.f64(double %1544, double %1540, double %1546)
%1548 = fcmp ogt double %1547, 0.000000e+00
br i1 %1548, label %7621, label %1549
1549: ; preds = %1523
%1550 = fsub double %9, %41
%1551 = fsub <2 x double> %17, %45
%1552 = extractelement <2 x double> %1551, i64 1
%1553 = insertelement <2 x double> poison, double %1552, i64 0
%1554 = insertelement <2 x double> %1553, double %1550, i64 1
%1555 = fneg <2 x double> %1554
%1556 = fmul <2 x double> %107, %1555
%1557 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1551, <2 x double> %103, <2 x double> %1556)
%1558 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1557, <2 x double>* %1558
%1559 = extractelement <2 x double> %1551, i64 0
%1560 = fneg double %1559
%1561 = fmul double %114, %1560
%1562 = tail call double @llvm.fmuladd.f64(double %1550, double %99, double %1561)
store double %1562, double* %118
%1563 = fsub double %10, %41
%1564 = fsub <2 x double> %15, %45
%1565 = fsub double %20, %48
%1566 = shufflevector <2 x double> %1557, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1567 = fmul <2 x double> %1564, %1566
%1568 = extractelement <2 x double> %1567, i64 0
%1569 = extractelement <2 x double> %1557, i64 0
%1570 = tail call double @llvm.fmuladd.f64(double %1563, double %1569, double %1568)
%1571 = tail call double @llvm.fmuladd.f64(double %1565, double %1562, double %1570)
%1572 = fcmp ule double %1571, 0.000000e+00
%1573 = zext i1 %1572 to i32
br label %7621
1574: ; preds = %1429
%1575 = fcmp olt double %127, 0.000000e+00
%1576 = fcmp olt double %148, 0.000000e+00
br i1 %1575, label %1577, label %1726
1577: ; preds = %1574
br i1 %1576, label %1578, label %1629
1578: ; preds = %1577
%1579 = fsub double %10, %53
%1580 = fsub <2 x double> %15, %56
%1581 = extractelement <2 x double> %1580, i64 0
%1582 = fsub double %20, %57
%1583 = fsub double %41, %53
%1584 = fsub <2 x double> %45, %56
%1585 = extractelement <2 x double> %1584, i64 0
%1586 = fsub double %48, %57
%1587 = fneg double %1582
%1588 = fmul double %1585, %1587
%1589 = tail call double @llvm.fmuladd.f64(double %1581, double %1586, double %1588)
%1590 = fneg double %1579
%1591 = fmul double %1586, %1590
%1592 = tail call double @llvm.fmuladd.f64(double %1582, double %1583, double %1591)
%1593 = fneg double %1581
%1594 = fmul double %1583, %1593
%1595 = tail call double @llvm.fmuladd.f64(double %1579, double %1585, double %1594)
%1596 = fsub double %9, %53
%1597 = fsub <2 x double> %17, %56
%1598 = extractelement <2 x double> %1597, i64 0
%1599 = fsub double %21, %57
%1600 = fmul double %1598, %1592
%1601 = tail call double @llvm.fmuladd.f64(double %1596, double %1589, double %1600)
%1602 = tail call double @llvm.fmuladd.f64(double %1599, double %1595, double %1601)
%1603 = fcmp ogt double %1602, 0.000000e+00
br i1 %1603, label %7621, label %1604
1604: ; preds = %1578
%1605 = fsub double %10, %41
%1606 = fsub <2 x double> %15, %45
%1607 = extractelement <2 x double> %1606, i64 1
%1608 = insertelement <2 x double> poison, double %1607, i64 0
%1609 = insertelement <2 x double> %1608, double %1605, i64 1
%1610 = fneg <2 x double> %1609
%1611 = fmul <2 x double> %107, %1610
%1612 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1606, <2 x double> %103, <2 x double> %1611)
%1613 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1612, <2 x double>* %1613
%1614 = extractelement <2 x double> %1606, i64 0
%1615 = fneg double %1614
%1616 = fmul double %114, %1615
%1617 = tail call double @llvm.fmuladd.f64(double %1605, double %99, double %1616)
store double %1617, double* %118
%1618 = fsub double %23, %41
%1619 = fsub <2 x double> %27, %45
%1620 = fsub double %30, %48
%1621 = shufflevector <2 x double> %1612, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1622 = fmul <2 x double> %1619, %1621
%1623 = extractelement <2 x double> %1622, i64 0
%1624 = extractelement <2 x double> %1612, i64 0
%1625 = tail call double @llvm.fmuladd.f64(double %1618, double %1624, double %1623)
%1626 = tail call double @llvm.fmuladd.f64(double %1620, double %1617, double %1625)
%1627 = fcmp ule double %1626, 0.000000e+00
%1628 = zext i1 %1627 to i32
br label %7621
1629: ; preds = %1577
%1630 = fcmp olt double %151, 0.000000e+00
br i1 %1630, label %1631, label %1682
1631: ; preds = %1629
%1632 = fsub double %23, %53
%1633 = fsub <2 x double> %27, %56
%1634 = extractelement <2 x double> %1633, i64 0
%1635 = fsub double %30, %57
%1636 = fsub double %41, %53
%1637 = fsub <2 x double> %45, %56
%1638 = extractelement <2 x double> %1637, i64 0
%1639 = fsub double %48, %57
%1640 = fneg double %1635
%1641 = fmul double %1638, %1640
%1642 = tail call double @llvm.fmuladd.f64(double %1634, double %1639, double %1641)
%1643 = fneg double %1632
%1644 = fmul double %1639, %1643
%1645 = tail call double @llvm.fmuladd.f64(double %1635, double %1636, double %1644)
%1646 = fneg double %1634
%1647 = fmul double %1636, %1646
%1648 = tail call double @llvm.fmuladd.f64(double %1632, double %1638, double %1647)
%1649 = fsub double %10, %53
%1650 = fsub <2 x double> %15, %56
%1651 = extractelement <2 x double> %1650, i64 0
%1652 = fsub double %20, %57
%1653 = fmul double %1651, %1645
%1654 = tail call double @llvm.fmuladd.f64(double %1649, double %1642, double %1653)
%1655 = tail call double @llvm.fmuladd.f64(double %1652, double %1648, double %1654)
%1656 = fcmp ogt double %1655, 0.000000e+00
br i1 %1656, label %7621, label %1657
1657: ; preds = %1631
%1658 = fsub double %23, %41
%1659 = fsub <2 x double> %27, %45
%1660 = extractelement <2 x double> %1659, i64 1
%1661 = insertelement <2 x double> poison, double %1660, i64 0
%1662 = insertelement <2 x double> %1661, double %1658, i64 1
%1663 = fneg <2 x double> %1662
%1664 = fmul <2 x double> %107, %1663
%1665 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1659, <2 x double> %103, <2 x double> %1664)
%1666 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1665, <2 x double>* %1666
%1667 = extractelement <2 x double> %1659, i64 0
%1668 = fneg double %1667
%1669 = fmul double %114, %1668
%1670 = tail call double @llvm.fmuladd.f64(double %1658, double %99, double %1669)
store double %1670, double* %118
%1671 = fsub double %9, %41
%1672 = fsub <2 x double> %17, %45
%1673 = fsub double %21, %48
%1674 = shufflevector <2 x double> %1665, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1675 = fmul <2 x double> %1672, %1674
%1676 = extractelement <2 x double> %1675, i64 0
%1677 = extractelement <2 x double> %1665, i64 0
%1678 = tail call double @llvm.fmuladd.f64(double %1671, double %1677, double %1676)
%1679 = tail call double @llvm.fmuladd.f64(double %1673, double %1670, double %1678)
%1680 = fcmp ule double %1679, 0.000000e+00
%1681 = zext i1 %1680 to i32
br label %7621
1682: ; preds = %1629
%1683 = fsub double %41, %58
%1684 = fsub <2 x double> %45, %66
%1685 = extractelement <2 x double> %1684, i64 0
%1686 = fsub double %48, %70
%1687 = fneg double %126
%1688 = fmul double %1685, %1687
%1689 = tail call double @llvm.fmuladd.f64(double %121, double %1686, double %1688)
%1690 = fneg double %119
%1691 = fmul double %1686, %1690
%1692 = tail call double @llvm.fmuladd.f64(double %126, double %1683, double %1691)
%1693 = fneg double %121
%1694 = fmul double %1683, %1693
%1695 = tail call double @llvm.fmuladd.f64(double %119, double %1685, double %1694)
%1696 = fmul double %129, %1692
%1697 = extractelement <2 x double> %134, i64 0
%1698 = tail call double @llvm.fmuladd.f64(double %1697, double %1689, double %1696)
%1699 = tail call double @llvm.fmuladd.f64(double %130, double %1695, double %1698)
%1700 = fcmp ogt double %1699, 0.000000e+00
br i1 %1700, label %7621, label %1701
1701: ; preds = %1682
%1702 = fsub double %9, %41
%1703 = fsub <2 x double> %17, %45
%1704 = extractelement <2 x double> %1703, i64 1
%1705 = insertelement <2 x double> poison, double %1704, i64 0
%1706 = insertelement <2 x double> %1705, double %1702, i64 1
%1707 = fneg <2 x double> %1706
%1708 = fmul <2 x double> %110, %1707
%1709 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1703, <2 x double> %97, <2 x double> %1708)
%1710 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1709, <2 x double>* %1710
%1711 = extractelement <2 x double> %1703, i64 0
%1712 = fneg double %1711
%1713 = fmul double %116, %1712
%1714 = tail call double @llvm.fmuladd.f64(double %1702, double %93, double %1713)
store double %1714, double* %118
%1715 = fsub double %10, %41
%1716 = fsub <2 x double> %15, %45
%1717 = fsub double %20, %48
%1718 = shufflevector <2 x double> %1709, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1719 = fmul <2 x double> %1716, %1718
%1720 = extractelement <2 x double> %1719, i64 0
%1721 = extractelement <2 x double> %1709, i64 0
%1722 = tail call double @llvm.fmuladd.f64(double %1715, double %1721, double %1720)
%1723 = tail call double @llvm.fmuladd.f64(double %1717, double %1714, double %1722)
%1724 = fcmp ule double %1723, 0.000000e+00
%1725 = zext i1 %1724 to i32
br label %7621
1726: ; preds = %1574
br i1 %1576, label %1727, label %1825
1727: ; preds = %1726
%1728 = fcmp ult double %151, 0.000000e+00
br i1 %1728, label %1774, label %1729
1729: ; preds = %1727
%1730 = fsub double %41, %58
%1731 = fsub <2 x double> %45, %66
%1732 = extractelement <2 x double> %1731, i64 0
%1733 = fsub double %48, %70
%1734 = fneg double %130
%1735 = fmul double %1732, %1734
%1736 = tail call double @llvm.fmuladd.f64(double %129, double %1733, double %1735)
%1737 = extractelement <2 x double> %134, i64 0
%1738 = fneg double %1737
%1739 = fmul double %1733, %1738
%1740 = tail call double @llvm.fmuladd.f64(double %130, double %1730, double %1739)
%1741 = fneg double %129
%1742 = fmul double %1730, %1741
%1743 = tail call double @llvm.fmuladd.f64(double %1737, double %1732, double %1742)
%1744 = fmul double %136, %1740
%1745 = extractelement <2 x double> %134, i64 1
%1746 = tail call double @llvm.fmuladd.f64(double %1745, double %1736, double %1744)
%1747 = tail call double @llvm.fmuladd.f64(double %142, double %1743, double %1746)
%1748 = fcmp ogt double %1747, 0.000000e+00
br i1 %1748, label %7621, label %1749
1749: ; preds = %1729
%1750 = fsub double %23, %41
%1751 = fsub <2 x double> %27, %45
%1752 = extractelement <2 x double> %1751, i64 1
%1753 = insertelement <2 x double> poison, double %1752, i64 0
%1754 = insertelement <2 x double> %1753, double %1750, i64 1
%1755 = fneg <2 x double> %1754
%1756 = fmul <2 x double> %110, %1755
%1757 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1751, <2 x double> %97, <2 x double> %1756)
%1758 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1757, <2 x double>* %1758
%1759 = extractelement <2 x double> %1751, i64 0
%1760 = fneg double %1759
%1761 = fmul double %116, %1760
%1762 = tail call double @llvm.fmuladd.f64(double %1750, double %93, double %1761)
store double %1762, double* %118
%1763 = fsub double %9, %41
%1764 = fsub <2 x double> %17, %45
%1765 = fsub double %21, %48
%1766 = shufflevector <2 x double> %1757, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1767 = fmul <2 x double> %1764, %1766
%1768 = extractelement <2 x double> %1767, i64 0
%1769 = extractelement <2 x double> %1757, i64 0
%1770 = tail call double @llvm.fmuladd.f64(double %1763, double %1769, double %1768)
%1771 = tail call double @llvm.fmuladd.f64(double %1765, double %1762, double %1770)
%1772 = fcmp ule double %1771, 0.000000e+00
%1773 = zext i1 %1772 to i32
br label %7621
1774: ; preds = %1727
%1775 = fsub double %9, %53
%1776 = fsub <2 x double> %17, %56
%1777 = extractelement <2 x double> %1776, i64 0
%1778 = fsub double %21, %57
%1779 = fsub double %41, %53
%1780 = fsub <2 x double> %45, %56
%1781 = extractelement <2 x double> %1780, i64 0
%1782 = fsub double %48, %57
%1783 = fneg double %1778
%1784 = fmul double %1781, %1783
%1785 = tail call double @llvm.fmuladd.f64(double %1777, double %1782, double %1784)
%1786 = fneg double %1775
%1787 = fmul double %1782, %1786
%1788 = tail call double @llvm.fmuladd.f64(double %1778, double %1779, double %1787)
%1789 = fneg double %1777
%1790 = fmul double %1779, %1789
%1791 = tail call double @llvm.fmuladd.f64(double %1775, double %1781, double %1790)
%1792 = fsub double %23, %53
%1793 = fsub <2 x double> %27, %56
%1794 = extractelement <2 x double> %1793, i64 0
%1795 = fsub double %30, %57
%1796 = fmul double %1794, %1788
%1797 = tail call double @llvm.fmuladd.f64(double %1792, double %1785, double %1796)
%1798 = tail call double @llvm.fmuladd.f64(double %1795, double %1791, double %1797)
%1799 = fcmp ogt double %1798, 0.000000e+00
br i1 %1799, label %7621, label %1800
1800: ; preds = %1774
%1801 = fsub double %9, %41
%1802 = fsub <2 x double> %17, %45
%1803 = extractelement <2 x double> %1802, i64 1
%1804 = insertelement <2 x double> poison, double %1803, i64 0
%1805 = insertelement <2 x double> %1804, double %1801, i64 1
%1806 = fneg <2 x double> %1805
%1807 = fmul <2 x double> %107, %1806
%1808 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1802, <2 x double> %103, <2 x double> %1807)
%1809 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1808, <2 x double>* %1809
%1810 = extractelement <2 x double> %1802, i64 0
%1811 = fneg double %1810
%1812 = fmul double %114, %1811
%1813 = tail call double @llvm.fmuladd.f64(double %1801, double %99, double %1812)
store double %1813, double* %118
%1814 = fsub double %10, %41
%1815 = fsub <2 x double> %15, %45
%1816 = fsub double %20, %48
%1817 = shufflevector <2 x double> %1808, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1818 = fmul <2 x double> %1815, %1817
%1819 = extractelement <2 x double> %1818, i64 0
%1820 = extractelement <2 x double> %1808, i64 0
%1821 = tail call double @llvm.fmuladd.f64(double %1814, double %1820, double %1819)
%1822 = tail call double @llvm.fmuladd.f64(double %1816, double %1813, double %1821)
%1823 = fcmp ule double %1822, 0.000000e+00
%1824 = zext i1 %1823 to i32
br label %7621
1825: ; preds = %1726
%1826 = fcmp ogt double %148, 0.000000e+00
%1827 = fcmp ogt double %151, 0.000000e+00
br i1 %1826, label %1828, label %1924
1828: ; preds = %1825
br i1 %1827, label %1829, label %1873
1829: ; preds = %1828
%1830 = fsub double %41, %58
%1831 = fsub <2 x double> %45, %66
%1832 = extractelement <2 x double> %1831, i64 0
%1833 = fsub double %48, %70
%1834 = fneg double %126
%1835 = fmul double %1832, %1834
%1836 = tail call double @llvm.fmuladd.f64(double %121, double %1833, double %1835)
%1837 = fneg double %119
%1838 = fmul double %1833, %1837
%1839 = tail call double @llvm.fmuladd.f64(double %126, double %1830, double %1838)
%1840 = fneg double %121
%1841 = fmul double %1830, %1840
%1842 = tail call double @llvm.fmuladd.f64(double %119, double %1832, double %1841)
%1843 = fmul double %129, %1839
%1844 = extractelement <2 x double> %134, i64 0
%1845 = tail call double @llvm.fmuladd.f64(double %1844, double %1836, double %1843)
%1846 = tail call double @llvm.fmuladd.f64(double %130, double %1842, double %1845)
%1847 = fcmp ogt double %1846, 0.000000e+00
br i1 %1847, label %7621, label %1848
1848: ; preds = %1829
%1849 = fsub double %9, %41
%1850 = fsub <2 x double> %17, %45
%1851 = extractelement <2 x double> %1850, i64 1
%1852 = insertelement <2 x double> poison, double %1851, i64 0
%1853 = insertelement <2 x double> %1852, double %1849, i64 1
%1854 = fneg <2 x double> %1853
%1855 = fmul <2 x double> %110, %1854
%1856 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1850, <2 x double> %97, <2 x double> %1855)
%1857 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1856, <2 x double>* %1857
%1858 = extractelement <2 x double> %1850, i64 0
%1859 = fneg double %1858
%1860 = fmul double %116, %1859
%1861 = tail call double @llvm.fmuladd.f64(double %1849, double %93, double %1860)
store double %1861, double* %118
%1862 = fsub double %10, %41
%1863 = fsub <2 x double> %15, %45
%1864 = fsub double %20, %48
%1865 = shufflevector <2 x double> %1856, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1866 = fmul <2 x double> %1863, %1865
%1867 = extractelement <2 x double> %1866, i64 0
%1868 = extractelement <2 x double> %1856, i64 0
%1869 = tail call double @llvm.fmuladd.f64(double %1862, double %1868, double %1867)
%1870 = tail call double @llvm.fmuladd.f64(double %1864, double %1861, double %1869)
%1871 = fcmp ule double %1870, 0.000000e+00
%1872 = zext i1 %1871 to i32
br label %7621
1873: ; preds = %1828
%1874 = fsub double %23, %53
%1875 = fsub <2 x double> %27, %56
%1876 = extractelement <2 x double> %1875, i64 0
%1877 = fsub double %30, %57
%1878 = fsub double %41, %53
%1879 = fsub <2 x double> %45, %56
%1880 = extractelement <2 x double> %1879, i64 0
%1881 = fsub double %48, %57
%1882 = fneg double %1877
%1883 = fmul double %1880, %1882
%1884 = tail call double @llvm.fmuladd.f64(double %1876, double %1881, double %1883)
%1885 = fneg double %1874
%1886 = fmul double %1881, %1885
%1887 = tail call double @llvm.fmuladd.f64(double %1877, double %1878, double %1886)
%1888 = fneg double %1876
%1889 = fmul double %1878, %1888
%1890 = tail call double @llvm.fmuladd.f64(double %1874, double %1880, double %1889)
%1891 = fsub double %10, %53
%1892 = fsub <2 x double> %15, %56
%1893 = extractelement <2 x double> %1892, i64 0
%1894 = fsub double %20, %57
%1895 = fmul double %1893, %1887
%1896 = tail call double @llvm.fmuladd.f64(double %1891, double %1884, double %1895)
%1897 = tail call double @llvm.fmuladd.f64(double %1894, double %1890, double %1896)
%1898 = fcmp ogt double %1897, 0.000000e+00
br i1 %1898, label %7621, label %1899
1899: ; preds = %1873
%1900 = fsub double %23, %41
%1901 = fsub <2 x double> %27, %45
%1902 = extractelement <2 x double> %1901, i64 1
%1903 = insertelement <2 x double> poison, double %1902, i64 0
%1904 = insertelement <2 x double> %1903, double %1900, i64 1
%1905 = fneg <2 x double> %1904
%1906 = fmul <2 x double> %107, %1905
%1907 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1901, <2 x double> %103, <2 x double> %1906)
%1908 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1907, <2 x double>* %1908
%1909 = extractelement <2 x double> %1901, i64 0
%1910 = fneg double %1909
%1911 = fmul double %114, %1910
%1912 = tail call double @llvm.fmuladd.f64(double %1900, double %99, double %1911)
store double %1912, double* %118
%1913 = fsub double %9, %41
%1914 = fsub <2 x double> %17, %45
%1915 = fsub double %21, %48
%1916 = shufflevector <2 x double> %1907, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1917 = fmul <2 x double> %1914, %1916
%1918 = extractelement <2 x double> %1917, i64 0
%1919 = extractelement <2 x double> %1907, i64 0
%1920 = tail call double @llvm.fmuladd.f64(double %1913, double %1919, double %1918)
%1921 = tail call double @llvm.fmuladd.f64(double %1915, double %1912, double %1920)
%1922 = fcmp ule double %1921, 0.000000e+00
%1923 = zext i1 %1922 to i32
br label %7621
1924: ; preds = %1825
br i1 %1827, label %1925, label %1976
1925: ; preds = %1924
%1926 = fsub double %10, %53
%1927 = fsub <2 x double> %15, %56
%1928 = extractelement <2 x double> %1927, i64 0
%1929 = fsub double %20, %57
%1930 = fsub double %41, %53
%1931 = fsub <2 x double> %45, %56
%1932 = extractelement <2 x double> %1931, i64 0
%1933 = fsub double %48, %57
%1934 = fneg double %1929
%1935 = fmul double %1932, %1934
%1936 = tail call double @llvm.fmuladd.f64(double %1928, double %1933, double %1935)
%1937 = fneg double %1926
%1938 = fmul double %1933, %1937
%1939 = tail call double @llvm.fmuladd.f64(double %1929, double %1930, double %1938)
%1940 = fneg double %1928
%1941 = fmul double %1930, %1940
%1942 = tail call double @llvm.fmuladd.f64(double %1926, double %1932, double %1941)
%1943 = fsub double %9, %53
%1944 = fsub <2 x double> %17, %56
%1945 = extractelement <2 x double> %1944, i64 0
%1946 = fsub double %21, %57
%1947 = fmul double %1945, %1939
%1948 = tail call double @llvm.fmuladd.f64(double %1943, double %1936, double %1947)
%1949 = tail call double @llvm.fmuladd.f64(double %1946, double %1942, double %1948)
%1950 = fcmp ogt double %1949, 0.000000e+00
br i1 %1950, label %7621, label %1951
1951: ; preds = %1925
%1952 = fsub double %10, %41
%1953 = fsub <2 x double> %15, %45
%1954 = extractelement <2 x double> %1953, i64 1
%1955 = insertelement <2 x double> poison, double %1954, i64 0
%1956 = insertelement <2 x double> %1955, double %1952, i64 1
%1957 = fneg <2 x double> %1956
%1958 = fmul <2 x double> %107, %1957
%1959 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1953, <2 x double> %103, <2 x double> %1958)
%1960 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %1959, <2 x double>* %1960
%1961 = extractelement <2 x double> %1953, i64 0
%1962 = fneg double %1961
%1963 = fmul double %114, %1962
%1964 = tail call double @llvm.fmuladd.f64(double %1952, double %99, double %1963)
store double %1964, double* %118
%1965 = fsub double %23, %41
%1966 = fsub <2 x double> %27, %45
%1967 = fsub double %30, %48
%1968 = shufflevector <2 x double> %1959, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%1969 = fmul <2 x double> %1966, %1968
%1970 = extractelement <2 x double> %1969, i64 0
%1971 = extractelement <2 x double> %1959, i64 0
%1972 = tail call double @llvm.fmuladd.f64(double %1965, double %1971, double %1970)
%1973 = tail call double @llvm.fmuladd.f64(double %1967, double %1964, double %1972)
%1974 = fcmp ule double %1973, 0.000000e+00
%1975 = zext i1 %1974 to i32
br label %7621
1976: ; preds = %1924
%1977 = fcmp olt double %151, 0.000000e+00
br i1 %1977, label %1978, label %2022
1978: ; preds = %1976
%1979 = fsub double %41, %58
%1980 = fsub <2 x double> %45, %66
%1981 = extractelement <2 x double> %1980, i64 0
%1982 = fsub double %48, %70
%1983 = fneg double %142
%1984 = fmul double %1981, %1983
%1985 = tail call double @llvm.fmuladd.f64(double %136, double %1982, double %1984)
%1986 = extractelement <2 x double> %134, i64 1
%1987 = fneg double %1986
%1988 = fmul double %1982, %1987
%1989 = tail call double @llvm.fmuladd.f64(double %142, double %1979, double %1988)
%1990 = fneg double %136
%1991 = fmul double %1979, %1990
%1992 = tail call double @llvm.fmuladd.f64(double %1986, double %1981, double %1991)
%1993 = fmul double %121, %1989
%1994 = tail call double @llvm.fmuladd.f64(double %119, double %1985, double %1993)
%1995 = tail call double @llvm.fmuladd.f64(double %126, double %1992, double %1994)
%1996 = fcmp ogt double %1995, 0.000000e+00
br i1 %1996, label %7621, label %1997
1997: ; preds = %1978
%1998 = fsub double %10, %41
%1999 = fsub <2 x double> %15, %45
%2000 = extractelement <2 x double> %1999, i64 1
%2001 = insertelement <2 x double> poison, double %2000, i64 0
%2002 = insertelement <2 x double> %2001, double %1998, i64 1
%2003 = fneg <2 x double> %2002
%2004 = fmul <2 x double> %110, %2003
%2005 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %1999, <2 x double> %97, <2 x double> %2004)
%2006 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2005, <2 x double>* %2006
%2007 = extractelement <2 x double> %1999, i64 0
%2008 = fneg double %2007
%2009 = fmul double %116, %2008
%2010 = tail call double @llvm.fmuladd.f64(double %1998, double %93, double %2009)
store double %2010, double* %118
%2011 = fsub double %23, %41
%2012 = fsub <2 x double> %27, %45
%2013 = fsub double %30, %48
%2014 = shufflevector <2 x double> %2005, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2015 = fmul <2 x double> %2012, %2014
%2016 = extractelement <2 x double> %2015, i64 0
%2017 = extractelement <2 x double> %2005, i64 0
%2018 = tail call double @llvm.fmuladd.f64(double %2011, double %2017, double %2016)
%2019 = tail call double @llvm.fmuladd.f64(double %2013, double %2010, double %2018)
%2020 = fcmp ule double %2019, 0.000000e+00
%2021 = zext i1 %2020 to i32
br label %7621
2022: ; preds = %1976
%2023 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %104)
br label %7621
2024: ; preds = %155
%2025 = fcmp olt double %52, 0.000000e+00
%2026 = fcmp olt double %84, 0.000000e+00
br i1 %2025, label %2027, label %3889
2027: ; preds = %2024
br i1 %2026, label %2028, label %2636
2028: ; preds = %2027
%2029 = fcmp ogt double %127, 0.000000e+00
br i1 %2029, label %2030, label %2181
2030: ; preds = %2028
%2031 = fcmp ogt double %148, 0.000000e+00
br i1 %2031, label %2032, label %2082
2032: ; preds = %2030
%2033 = fsub double %10, %53
%2034 = fsub <2 x double> %15, %56
%2035 = extractelement <2 x double> %2034, i64 0
%2036 = fsub double %20, %57
%2037 = fsub double %58, %53
%2038 = fsub <2 x double> %66, %56
%2039 = extractelement <2 x double> %2038, i64 0
%2040 = fsub double %70, %57
%2041 = fneg double %2036
%2042 = fmul double %2039, %2041
%2043 = tail call double @llvm.fmuladd.f64(double %2035, double %2040, double %2042)
%2044 = fneg double %2033
%2045 = fmul double %2040, %2044
%2046 = tail call double @llvm.fmuladd.f64(double %2036, double %2037, double %2045)
%2047 = fneg double %2035
%2048 = fmul double %2037, %2047
%2049 = tail call double @llvm.fmuladd.f64(double %2033, double %2039, double %2048)
%2050 = fsub double %9, %53
%2051 = fsub <2 x double> %17, %56
%2052 = extractelement <2 x double> %2051, i64 0
%2053 = fsub double %21, %57
%2054 = fmul double %2052, %2046
%2055 = tail call double @llvm.fmuladd.f64(double %2050, double %2043, double %2054)
%2056 = tail call double @llvm.fmuladd.f64(double %2053, double %2049, double %2055)
%2057 = fcmp ogt double %2056, 0.000000e+00
br i1 %2057, label %7621, label %2058
2058: ; preds = %2032
%2059 = fsub <2 x double> %45, %66
%2060 = extractelement <2 x double> %2059, i64 0
%2061 = fsub <2 x double> %102, %100
%2062 = extractelement <2 x double> %134, i64 1
%2063 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%2064 = fneg <2 x double> %2063
%2065 = shufflevector <2 x double> %2059, <2 x double> %2061, <2 x i32> <i32 0, i32 2>
%2066 = fmul <2 x double> %2065, %2064
%2067 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %2061, <2 x double> %2066)
%2068 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2067, <2 x double>* %2068
%2069 = fneg double %136
%2070 = extractelement <2 x double> %2061, i64 1
%2071 = fmul double %2070, %2069
%2072 = tail call double @llvm.fmuladd.f64(double %2062, double %2060, double %2071)
store double %2072, double* %118
%2073 = shufflevector <2 x double> %2067, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2074 = fmul <2 x double> %128, %2073
%2075 = extractelement <2 x double> %2074, i64 0
%2076 = extractelement <2 x double> %134, i64 0
%2077 = extractelement <2 x double> %2067, i64 0
%2078 = tail call double @llvm.fmuladd.f64(double %2076, double %2077, double %2075)
%2079 = tail call double @llvm.fmuladd.f64(double %130, double %2072, double %2078)
%2080 = fcmp ule double %2079, 0.000000e+00
%2081 = zext i1 %2080 to i32
br label %7621
2082: ; preds = %2030
%2083 = fcmp ogt double %151, 0.000000e+00
br i1 %2083, label %2084, label %2133
2084: ; preds = %2082
%2085 = fsub double %23, %53
%2086 = fsub <2 x double> %27, %56
%2087 = extractelement <2 x double> %2086, i64 0
%2088 = fsub double %30, %57
%2089 = fsub double %58, %53
%2090 = fsub <2 x double> %66, %56
%2091 = extractelement <2 x double> %2090, i64 0
%2092 = fsub double %70, %57
%2093 = fneg double %2088
%2094 = fmul double %2091, %2093
%2095 = tail call double @llvm.fmuladd.f64(double %2087, double %2092, double %2094)
%2096 = fneg double %2085
%2097 = fmul double %2092, %2096
%2098 = tail call double @llvm.fmuladd.f64(double %2088, double %2089, double %2097)
%2099 = fneg double %2087
%2100 = fmul double %2089, %2099
%2101 = tail call double @llvm.fmuladd.f64(double %2085, double %2091, double %2100)
%2102 = fsub double %10, %53
%2103 = fsub <2 x double> %15, %56
%2104 = extractelement <2 x double> %2103, i64 0
%2105 = fsub double %20, %57
%2106 = fmul double %2104, %2098
%2107 = tail call double @llvm.fmuladd.f64(double %2102, double %2095, double %2106)
%2108 = tail call double @llvm.fmuladd.f64(double %2105, double %2101, double %2107)
%2109 = fcmp ogt double %2108, 0.000000e+00
br i1 %2109, label %7621, label %2110
2110: ; preds = %2084
%2111 = fsub <2 x double> %45, %66
%2112 = extractelement <2 x double> %2111, i64 0
%2113 = fsub <2 x double> %102, %100
%2114 = extractelement <2 x double> %134, i64 0
%2115 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%2116 = fneg <2 x double> %2115
%2117 = shufflevector <2 x double> %2111, <2 x double> %2113, <2 x i32> <i32 0, i32 2>
%2118 = fmul <2 x double> %2117, %2116
%2119 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %2113, <2 x double> %2118)
%2120 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2119, <2 x double>* %2120
%2121 = fneg double %129
%2122 = extractelement <2 x double> %2113, i64 1
%2123 = fmul double %2122, %2121
%2124 = tail call double @llvm.fmuladd.f64(double %2114, double %2112, double %2123)
store double %2124, double* %118
%2125 = shufflevector <2 x double> %2119, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2126 = fmul <2 x double> %120, %2125
%2127 = extractelement <2 x double> %2126, i64 0
%2128 = extractelement <2 x double> %2119, i64 0
%2129 = tail call double @llvm.fmuladd.f64(double %119, double %2128, double %2127)
%2130 = tail call double @llvm.fmuladd.f64(double %126, double %2124, double %2129)
%2131 = fcmp ule double %2130, 0.000000e+00
%2132 = zext i1 %2131 to i32
br label %7621
2133: ; preds = %2082
%2134 = fsub double %9, %41
%2135 = fsub <2 x double> %17, %45
%2136 = extractelement <2 x double> %2135, i64 0
%2137 = fsub double %21, %48
%2138 = fneg double %2137
%2139 = fmul double %99, %2138
%2140 = tail call double @llvm.fmuladd.f64(double %2136, double %106, double %2139)
%2141 = fneg double %2134
%2142 = fmul double %106, %2141
%2143 = tail call double @llvm.fmuladd.f64(double %2137, double %114, double %2142)
%2144 = fneg double %2136
%2145 = fmul double %114, %2144
%2146 = tail call double @llvm.fmuladd.f64(double %2134, double %99, double %2145)
%2147 = fsub double %23, %41
%2148 = fsub <2 x double> %27, %45
%2149 = extractelement <2 x double> %2148, i64 0
%2150 = fsub double %30, %48
%2151 = fmul double %2149, %2143
%2152 = tail call double @llvm.fmuladd.f64(double %2147, double %2140, double %2151)
%2153 = tail call double @llvm.fmuladd.f64(double %2150, double %2146, double %2152)
%2154 = fcmp ogt double %2153, 0.000000e+00
br i1 %2154, label %7621, label %2155
2155: ; preds = %2133
%2156 = fsub <2 x double> %56, %66
%2157 = extractelement <2 x double> %2156, i64 0
%2158 = insertelement <2 x double> poison, double %57, i64 0
%2159 = insertelement <2 x double> %2158, double %53, i64 1
%2160 = fsub <2 x double> %2159, %100
%2161 = insertelement <2 x double> poison, double %126, i64 0
%2162 = insertelement <2 x double> %2161, double %119, i64 1
%2163 = fneg <2 x double> %2162
%2164 = shufflevector <2 x double> %2156, <2 x double> %2160, <2 x i32> <i32 0, i32 2>
%2165 = fmul <2 x double> %2164, %2163
%2166 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %2160, <2 x double> %2165)
%2167 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2166, <2 x double>* %2167
%2168 = fneg double %121
%2169 = extractelement <2 x double> %2160, i64 1
%2170 = fmul double %2169, %2168
%2171 = tail call double @llvm.fmuladd.f64(double %119, double %2157, double %2170)
store double %2171, double* %118
%2172 = shufflevector <2 x double> %2166, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2173 = fmul <2 x double> %135, %2172
%2174 = extractelement <2 x double> %2173, i64 0
%2175 = extractelement <2 x double> %134, i64 1
%2176 = extractelement <2 x double> %2166, i64 0
%2177 = tail call double @llvm.fmuladd.f64(double %2175, double %2176, double %2174)
%2178 = tail call double @llvm.fmuladd.f64(double %142, double %2171, double %2177)
%2179 = fcmp ule double %2178, 0.000000e+00
%2180 = zext i1 %2179 to i32
br label %7621
2181: ; preds = %2028
%2182 = fcmp olt double %127, 0.000000e+00
%2183 = fcmp olt double %148, 0.000000e+00
br i1 %2182, label %2184, label %2332
2184: ; preds = %2181
br i1 %2183, label %2185, label %2233
2185: ; preds = %2184
%2186 = fsub double %10, %41
%2187 = fsub <2 x double> %15, %45
%2188 = extractelement <2 x double> %2187, i64 0
%2189 = fsub double %20, %48
%2190 = fneg double %2189
%2191 = fmul double %99, %2190
%2192 = tail call double @llvm.fmuladd.f64(double %2188, double %106, double %2191)
%2193 = fneg double %2186
%2194 = fmul double %106, %2193
%2195 = tail call double @llvm.fmuladd.f64(double %2189, double %114, double %2194)
%2196 = fneg double %2188
%2197 = fmul double %114, %2196
%2198 = tail call double @llvm.fmuladd.f64(double %2186, double %99, double %2197)
%2199 = fsub double %9, %41
%2200 = fsub <2 x double> %17, %45
%2201 = extractelement <2 x double> %2200, i64 0
%2202 = fsub double %21, %48
%2203 = fmul double %2201, %2195
%2204 = tail call double @llvm.fmuladd.f64(double %2199, double %2192, double %2203)
%2205 = tail call double @llvm.fmuladd.f64(double %2202, double %2198, double %2204)
%2206 = fcmp ogt double %2205, 0.000000e+00
br i1 %2206, label %7621, label %2207
2207: ; preds = %2185
%2208 = fsub <2 x double> %56, %66
%2209 = extractelement <2 x double> %2208, i64 0
%2210 = insertelement <2 x double> poison, double %57, i64 0
%2211 = insertelement <2 x double> %2210, double %53, i64 1
%2212 = fsub <2 x double> %2211, %100
%2213 = extractelement <2 x double> %134, i64 1
%2214 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%2215 = fneg <2 x double> %2214
%2216 = shufflevector <2 x double> %2208, <2 x double> %2212, <2 x i32> <i32 0, i32 2>
%2217 = fmul <2 x double> %2216, %2215
%2218 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %2212, <2 x double> %2217)
%2219 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2218, <2 x double>* %2219
%2220 = fneg double %136
%2221 = extractelement <2 x double> %2212, i64 1
%2222 = fmul double %2221, %2220
%2223 = tail call double @llvm.fmuladd.f64(double %2213, double %2209, double %2222)
store double %2223, double* %118
%2224 = shufflevector <2 x double> %2218, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2225 = fmul <2 x double> %128, %2224
%2226 = extractelement <2 x double> %2225, i64 0
%2227 = extractelement <2 x double> %134, i64 0
%2228 = extractelement <2 x double> %2218, i64 0
%2229 = tail call double @llvm.fmuladd.f64(double %2227, double %2228, double %2226)
%2230 = tail call double @llvm.fmuladd.f64(double %130, double %2223, double %2229)
%2231 = fcmp ule double %2230, 0.000000e+00
%2232 = zext i1 %2231 to i32
br label %7621
2233: ; preds = %2184
%2234 = fcmp olt double %151, 0.000000e+00
br i1 %2234, label %2235, label %2282
2235: ; preds = %2233
%2236 = fsub double %23, %41
%2237 = fsub <2 x double> %27, %45
%2238 = extractelement <2 x double> %2237, i64 0
%2239 = fsub double %30, %48
%2240 = fneg double %2239
%2241 = fmul double %99, %2240
%2242 = tail call double @llvm.fmuladd.f64(double %2238, double %106, double %2241)
%2243 = fneg double %2236
%2244 = fmul double %106, %2243
%2245 = tail call double @llvm.fmuladd.f64(double %2239, double %114, double %2244)
%2246 = fneg double %2238
%2247 = fmul double %114, %2246
%2248 = tail call double @llvm.fmuladd.f64(double %2236, double %99, double %2247)
%2249 = fsub double %10, %41
%2250 = fsub <2 x double> %15, %45
%2251 = extractelement <2 x double> %2250, i64 0
%2252 = fsub double %20, %48
%2253 = fmul double %2251, %2245
%2254 = tail call double @llvm.fmuladd.f64(double %2249, double %2242, double %2253)
%2255 = tail call double @llvm.fmuladd.f64(double %2252, double %2248, double %2254)
%2256 = fcmp ogt double %2255, 0.000000e+00
br i1 %2256, label %7621, label %2257
2257: ; preds = %2235
%2258 = fsub <2 x double> %56, %66
%2259 = extractelement <2 x double> %2258, i64 0
%2260 = insertelement <2 x double> poison, double %57, i64 0
%2261 = insertelement <2 x double> %2260, double %53, i64 1
%2262 = fsub <2 x double> %2261, %100
%2263 = extractelement <2 x double> %134, i64 0
%2264 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%2265 = fneg <2 x double> %2264
%2266 = shufflevector <2 x double> %2258, <2 x double> %2262, <2 x i32> <i32 0, i32 2>
%2267 = fmul <2 x double> %2266, %2265
%2268 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %2262, <2 x double> %2267)
%2269 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2268, <2 x double>* %2269
%2270 = fneg double %129
%2271 = extractelement <2 x double> %2262, i64 1
%2272 = fmul double %2271, %2270
%2273 = tail call double @llvm.fmuladd.f64(double %2263, double %2259, double %2272)
store double %2273, double* %118
%2274 = shufflevector <2 x double> %2268, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2275 = fmul <2 x double> %120, %2274
%2276 = extractelement <2 x double> %2275, i64 0
%2277 = extractelement <2 x double> %2268, i64 0
%2278 = tail call double @llvm.fmuladd.f64(double %119, double %2277, double %2276)
%2279 = tail call double @llvm.fmuladd.f64(double %126, double %2273, double %2278)
%2280 = fcmp ule double %2279, 0.000000e+00
%2281 = zext i1 %2280 to i32
br label %7621
2282: ; preds = %2233
%2283 = fsub double %9, %53
%2284 = fsub <2 x double> %17, %56
%2285 = extractelement <2 x double> %2284, i64 0
%2286 = fsub double %21, %57
%2287 = fsub double %58, %53
%2288 = fsub <2 x double> %66, %56
%2289 = extractelement <2 x double> %2288, i64 0
%2290 = fsub double %70, %57
%2291 = fneg double %2286
%2292 = fmul double %2289, %2291
%2293 = tail call double @llvm.fmuladd.f64(double %2285, double %2290, double %2292)
%2294 = fneg double %2283
%2295 = fmul double %2290, %2294
%2296 = tail call double @llvm.fmuladd.f64(double %2286, double %2287, double %2295)
%2297 = fneg double %2285
%2298 = fmul double %2287, %2297
%2299 = tail call double @llvm.fmuladd.f64(double %2283, double %2289, double %2298)
%2300 = fsub double %23, %53
%2301 = fsub <2 x double> %27, %56
%2302 = extractelement <2 x double> %2301, i64 0
%2303 = fsub double %30, %57
%2304 = fmul double %2302, %2296
%2305 = tail call double @llvm.fmuladd.f64(double %2300, double %2293, double %2304)
%2306 = tail call double @llvm.fmuladd.f64(double %2303, double %2299, double %2305)
%2307 = fcmp ogt double %2306, 0.000000e+00
br i1 %2307, label %7621, label %2308
2308: ; preds = %2282
%2309 = fsub <2 x double> %45, %66
%2310 = extractelement <2 x double> %2309, i64 0
%2311 = fsub <2 x double> %102, %100
%2312 = insertelement <2 x double> poison, double %126, i64 0
%2313 = insertelement <2 x double> %2312, double %119, i64 1
%2314 = fneg <2 x double> %2313
%2315 = shufflevector <2 x double> %2309, <2 x double> %2311, <2 x i32> <i32 0, i32 2>
%2316 = fmul <2 x double> %2315, %2314
%2317 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %2311, <2 x double> %2316)
%2318 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2317, <2 x double>* %2318
%2319 = fneg double %121
%2320 = extractelement <2 x double> %2311, i64 1
%2321 = fmul double %2320, %2319
%2322 = tail call double @llvm.fmuladd.f64(double %119, double %2310, double %2321)
store double %2322, double* %118
%2323 = shufflevector <2 x double> %2317, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2324 = fmul <2 x double> %135, %2323
%2325 = extractelement <2 x double> %2324, i64 0
%2326 = extractelement <2 x double> %134, i64 1
%2327 = extractelement <2 x double> %2317, i64 0
%2328 = tail call double @llvm.fmuladd.f64(double %2326, double %2327, double %2325)
%2329 = tail call double @llvm.fmuladd.f64(double %142, double %2322, double %2328)
%2330 = fcmp ule double %2329, 0.000000e+00
%2331 = zext i1 %2330 to i32
br label %7621
2332: ; preds = %2181
br i1 %2183, label %2333, label %2432
2333: ; preds = %2332
%2334 = fcmp ult double %151, 0.000000e+00
br i1 %2334, label %2384, label %2335
2335: ; preds = %2333
%2336 = fsub double %23, %53
%2337 = fsub <2 x double> %27, %56
%2338 = extractelement <2 x double> %2337, i64 0
%2339 = fsub double %30, %57
%2340 = fsub double %58, %53
%2341 = fsub <2 x double> %66, %56
%2342 = extractelement <2 x double> %2341, i64 0
%2343 = fsub double %70, %57
%2344 = fneg double %2339
%2345 = fmul double %2342, %2344
%2346 = tail call double @llvm.fmuladd.f64(double %2338, double %2343, double %2345)
%2347 = fneg double %2336
%2348 = fmul double %2343, %2347
%2349 = tail call double @llvm.fmuladd.f64(double %2339, double %2340, double %2348)
%2350 = fneg double %2338
%2351 = fmul double %2340, %2350
%2352 = tail call double @llvm.fmuladd.f64(double %2336, double %2342, double %2351)
%2353 = fsub double %10, %53
%2354 = fsub <2 x double> %15, %56
%2355 = extractelement <2 x double> %2354, i64 0
%2356 = fsub double %20, %57
%2357 = fmul double %2355, %2349
%2358 = tail call double @llvm.fmuladd.f64(double %2353, double %2346, double %2357)
%2359 = tail call double @llvm.fmuladd.f64(double %2356, double %2352, double %2358)
%2360 = fcmp ogt double %2359, 0.000000e+00
br i1 %2360, label %7621, label %2361
2361: ; preds = %2335
%2362 = fsub <2 x double> %45, %66
%2363 = extractelement <2 x double> %2362, i64 0
%2364 = fsub <2 x double> %102, %100
%2365 = extractelement <2 x double> %134, i64 0
%2366 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%2367 = fneg <2 x double> %2366
%2368 = shufflevector <2 x double> %2362, <2 x double> %2364, <2 x i32> <i32 0, i32 2>
%2369 = fmul <2 x double> %2368, %2367
%2370 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %2364, <2 x double> %2369)
%2371 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2370, <2 x double>* %2371
%2372 = fneg double %129
%2373 = extractelement <2 x double> %2364, i64 1
%2374 = fmul double %2373, %2372
%2375 = tail call double @llvm.fmuladd.f64(double %2365, double %2363, double %2374)
store double %2375, double* %118
%2376 = shufflevector <2 x double> %2370, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2377 = fmul <2 x double> %120, %2376
%2378 = extractelement <2 x double> %2377, i64 0
%2379 = extractelement <2 x double> %2370, i64 0
%2380 = tail call double @llvm.fmuladd.f64(double %119, double %2379, double %2378)
%2381 = tail call double @llvm.fmuladd.f64(double %126, double %2375, double %2380)
%2382 = fcmp ule double %2381, 0.000000e+00
%2383 = zext i1 %2382 to i32
br label %7621
2384: ; preds = %2333
%2385 = fsub double %9, %41
%2386 = fsub <2 x double> %17, %45
%2387 = extractelement <2 x double> %2386, i64 0
%2388 = fsub double %21, %48
%2389 = fneg double %2388
%2390 = fmul double %99, %2389
%2391 = tail call double @llvm.fmuladd.f64(double %2387, double %106, double %2390)
%2392 = fneg double %2385
%2393 = fmul double %106, %2392
%2394 = tail call double @llvm.fmuladd.f64(double %2388, double %114, double %2393)
%2395 = fneg double %2387
%2396 = fmul double %114, %2395
%2397 = tail call double @llvm.fmuladd.f64(double %2385, double %99, double %2396)
%2398 = fsub double %23, %41
%2399 = fsub <2 x double> %27, %45
%2400 = extractelement <2 x double> %2399, i64 0
%2401 = fsub double %30, %48
%2402 = fmul double %2400, %2394
%2403 = tail call double @llvm.fmuladd.f64(double %2398, double %2391, double %2402)
%2404 = tail call double @llvm.fmuladd.f64(double %2401, double %2397, double %2403)
%2405 = fcmp ogt double %2404, 0.000000e+00
br i1 %2405, label %7621, label %2406
2406: ; preds = %2384
%2407 = fsub <2 x double> %56, %66
%2408 = extractelement <2 x double> %2407, i64 0
%2409 = insertelement <2 x double> poison, double %57, i64 0
%2410 = insertelement <2 x double> %2409, double %53, i64 1
%2411 = fsub <2 x double> %2410, %100
%2412 = insertelement <2 x double> poison, double %126, i64 0
%2413 = insertelement <2 x double> %2412, double %119, i64 1
%2414 = fneg <2 x double> %2413
%2415 = shufflevector <2 x double> %2407, <2 x double> %2411, <2 x i32> <i32 0, i32 2>
%2416 = fmul <2 x double> %2415, %2414
%2417 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %2411, <2 x double> %2416)
%2418 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2417, <2 x double>* %2418
%2419 = fneg double %121
%2420 = extractelement <2 x double> %2411, i64 1
%2421 = fmul double %2420, %2419
%2422 = tail call double @llvm.fmuladd.f64(double %119, double %2408, double %2421)
store double %2422, double* %118
%2423 = shufflevector <2 x double> %2417, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2424 = fmul <2 x double> %135, %2423
%2425 = extractelement <2 x double> %2424, i64 0
%2426 = extractelement <2 x double> %134, i64 1
%2427 = extractelement <2 x double> %2417, i64 0
%2428 = tail call double @llvm.fmuladd.f64(double %2426, double %2427, double %2425)
%2429 = tail call double @llvm.fmuladd.f64(double %142, double %2422, double %2428)
%2430 = fcmp ule double %2429, 0.000000e+00
%2431 = zext i1 %2430 to i32
br label %7621
2432: ; preds = %2332
%2433 = fcmp ogt double %148, 0.000000e+00
%2434 = fcmp ogt double %151, 0.000000e+00
br i1 %2433, label %2435, label %2533
2435: ; preds = %2432
br i1 %2434, label %2436, label %2486
2436: ; preds = %2435
%2437 = fsub double %9, %53
%2438 = fsub <2 x double> %17, %56
%2439 = extractelement <2 x double> %2438, i64 0
%2440 = fsub double %21, %57
%2441 = fsub double %58, %53
%2442 = fsub <2 x double> %66, %56
%2443 = extractelement <2 x double> %2442, i64 0
%2444 = fsub double %70, %57
%2445 = fneg double %2440
%2446 = fmul double %2443, %2445
%2447 = tail call double @llvm.fmuladd.f64(double %2439, double %2444, double %2446)
%2448 = fneg double %2437
%2449 = fmul double %2444, %2448
%2450 = tail call double @llvm.fmuladd.f64(double %2440, double %2441, double %2449)
%2451 = fneg double %2439
%2452 = fmul double %2441, %2451
%2453 = tail call double @llvm.fmuladd.f64(double %2437, double %2443, double %2452)
%2454 = fsub double %23, %53
%2455 = fsub <2 x double> %27, %56
%2456 = extractelement <2 x double> %2455, i64 0
%2457 = fsub double %30, %57
%2458 = fmul double %2456, %2450
%2459 = tail call double @llvm.fmuladd.f64(double %2454, double %2447, double %2458)
%2460 = tail call double @llvm.fmuladd.f64(double %2457, double %2453, double %2459)
%2461 = fcmp ogt double %2460, 0.000000e+00
br i1 %2461, label %7621, label %2462
2462: ; preds = %2436
%2463 = fsub <2 x double> %45, %66
%2464 = extractelement <2 x double> %2463, i64 0
%2465 = fsub <2 x double> %102, %100
%2466 = insertelement <2 x double> poison, double %126, i64 0
%2467 = insertelement <2 x double> %2466, double %119, i64 1
%2468 = fneg <2 x double> %2467
%2469 = shufflevector <2 x double> %2463, <2 x double> %2465, <2 x i32> <i32 0, i32 2>
%2470 = fmul <2 x double> %2469, %2468
%2471 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %2465, <2 x double> %2470)
%2472 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2471, <2 x double>* %2472
%2473 = fneg double %121
%2474 = extractelement <2 x double> %2465, i64 1
%2475 = fmul double %2474, %2473
%2476 = tail call double @llvm.fmuladd.f64(double %119, double %2464, double %2475)
store double %2476, double* %118
%2477 = shufflevector <2 x double> %2471, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2478 = fmul <2 x double> %135, %2477
%2479 = extractelement <2 x double> %2478, i64 0
%2480 = extractelement <2 x double> %134, i64 1
%2481 = extractelement <2 x double> %2471, i64 0
%2482 = tail call double @llvm.fmuladd.f64(double %2480, double %2481, double %2479)
%2483 = tail call double @llvm.fmuladd.f64(double %142, double %2476, double %2482)
%2484 = fcmp ule double %2483, 0.000000e+00
%2485 = zext i1 %2484 to i32
br label %7621
2486: ; preds = %2435
%2487 = fsub double %23, %41
%2488 = fsub <2 x double> %27, %45
%2489 = extractelement <2 x double> %2488, i64 0
%2490 = fsub double %30, %48
%2491 = fneg double %2490
%2492 = fmul double %99, %2491
%2493 = tail call double @llvm.fmuladd.f64(double %2489, double %106, double %2492)
%2494 = fneg double %2487
%2495 = fmul double %106, %2494
%2496 = tail call double @llvm.fmuladd.f64(double %2490, double %114, double %2495)
%2497 = fneg double %2489
%2498 = fmul double %114, %2497
%2499 = tail call double @llvm.fmuladd.f64(double %2487, double %99, double %2498)
%2500 = fsub double %10, %41
%2501 = fsub <2 x double> %15, %45
%2502 = extractelement <2 x double> %2501, i64 0
%2503 = fsub double %20, %48
%2504 = fmul double %2502, %2496
%2505 = tail call double @llvm.fmuladd.f64(double %2500, double %2493, double %2504)
%2506 = tail call double @llvm.fmuladd.f64(double %2503, double %2499, double %2505)
%2507 = fcmp ogt double %2506, 0.000000e+00
br i1 %2507, label %7621, label %2508
2508: ; preds = %2486
%2509 = fsub <2 x double> %56, %66
%2510 = extractelement <2 x double> %2509, i64 0
%2511 = insertelement <2 x double> poison, double %57, i64 0
%2512 = insertelement <2 x double> %2511, double %53, i64 1
%2513 = fsub <2 x double> %2512, %100
%2514 = extractelement <2 x double> %134, i64 0
%2515 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%2516 = fneg <2 x double> %2515
%2517 = shufflevector <2 x double> %2509, <2 x double> %2513, <2 x i32> <i32 0, i32 2>
%2518 = fmul <2 x double> %2517, %2516
%2519 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %2513, <2 x double> %2518)
%2520 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2519, <2 x double>* %2520
%2521 = fneg double %129
%2522 = extractelement <2 x double> %2513, i64 1
%2523 = fmul double %2522, %2521
%2524 = tail call double @llvm.fmuladd.f64(double %2514, double %2510, double %2523)
store double %2524, double* %118
%2525 = shufflevector <2 x double> %2519, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2526 = fmul <2 x double> %120, %2525
%2527 = extractelement <2 x double> %2526, i64 0
%2528 = extractelement <2 x double> %2519, i64 0
%2529 = tail call double @llvm.fmuladd.f64(double %119, double %2528, double %2527)
%2530 = tail call double @llvm.fmuladd.f64(double %126, double %2524, double %2529)
%2531 = fcmp ule double %2530, 0.000000e+00
%2532 = zext i1 %2531 to i32
br label %7621
2533: ; preds = %2432
br i1 %2434, label %2534, label %2582
2534: ; preds = %2533
%2535 = fsub double %10, %41
%2536 = fsub <2 x double> %15, %45
%2537 = extractelement <2 x double> %2536, i64 0
%2538 = fsub double %20, %48
%2539 = fneg double %2538
%2540 = fmul double %99, %2539
%2541 = tail call double @llvm.fmuladd.f64(double %2537, double %106, double %2540)
%2542 = fneg double %2535
%2543 = fmul double %106, %2542
%2544 = tail call double @llvm.fmuladd.f64(double %2538, double %114, double %2543)
%2545 = fneg double %2537
%2546 = fmul double %114, %2545
%2547 = tail call double @llvm.fmuladd.f64(double %2535, double %99, double %2546)
%2548 = fsub double %9, %41
%2549 = fsub <2 x double> %17, %45
%2550 = extractelement <2 x double> %2549, i64 0
%2551 = fsub double %21, %48
%2552 = fmul double %2550, %2544
%2553 = tail call double @llvm.fmuladd.f64(double %2548, double %2541, double %2552)
%2554 = tail call double @llvm.fmuladd.f64(double %2551, double %2547, double %2553)
%2555 = fcmp ogt double %2554, 0.000000e+00
br i1 %2555, label %7621, label %2556
2556: ; preds = %2534
%2557 = fsub <2 x double> %56, %66
%2558 = extractelement <2 x double> %2557, i64 0
%2559 = insertelement <2 x double> poison, double %57, i64 0
%2560 = insertelement <2 x double> %2559, double %53, i64 1
%2561 = fsub <2 x double> %2560, %100
%2562 = extractelement <2 x double> %134, i64 1
%2563 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%2564 = fneg <2 x double> %2563
%2565 = shufflevector <2 x double> %2557, <2 x double> %2561, <2 x i32> <i32 0, i32 2>
%2566 = fmul <2 x double> %2565, %2564
%2567 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %2561, <2 x double> %2566)
%2568 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2567, <2 x double>* %2568
%2569 = fneg double %136
%2570 = extractelement <2 x double> %2561, i64 1
%2571 = fmul double %2570, %2569
%2572 = tail call double @llvm.fmuladd.f64(double %2562, double %2558, double %2571)
store double %2572, double* %118
%2573 = shufflevector <2 x double> %2567, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2574 = fmul <2 x double> %128, %2573
%2575 = extractelement <2 x double> %2574, i64 0
%2576 = extractelement <2 x double> %134, i64 0
%2577 = extractelement <2 x double> %2567, i64 0
%2578 = tail call double @llvm.fmuladd.f64(double %2576, double %2577, double %2575)
%2579 = tail call double @llvm.fmuladd.f64(double %130, double %2572, double %2578)
%2580 = fcmp ule double %2579, 0.000000e+00
%2581 = zext i1 %2580 to i32
br label %7621
2582: ; preds = %2533
%2583 = fcmp olt double %151, 0.000000e+00
br i1 %2583, label %2584, label %2634
2584: ; preds = %2582
%2585 = fsub double %10, %53
%2586 = fsub <2 x double> %15, %56
%2587 = extractelement <2 x double> %2586, i64 0
%2588 = fsub double %20, %57
%2589 = fsub double %58, %53
%2590 = fsub <2 x double> %66, %56
%2591 = extractelement <2 x double> %2590, i64 0
%2592 = fsub double %70, %57
%2593 = fneg double %2588
%2594 = fmul double %2591, %2593
%2595 = tail call double @llvm.fmuladd.f64(double %2587, double %2592, double %2594)
%2596 = fneg double %2585
%2597 = fmul double %2592, %2596
%2598 = tail call double @llvm.fmuladd.f64(double %2588, double %2589, double %2597)
%2599 = fneg double %2587
%2600 = fmul double %2589, %2599
%2601 = tail call double @llvm.fmuladd.f64(double %2585, double %2591, double %2600)
%2602 = fsub double %9, %53
%2603 = fsub <2 x double> %17, %56
%2604 = extractelement <2 x double> %2603, i64 0
%2605 = fsub double %21, %57
%2606 = fmul double %2604, %2598
%2607 = tail call double @llvm.fmuladd.f64(double %2602, double %2595, double %2606)
%2608 = tail call double @llvm.fmuladd.f64(double %2605, double %2601, double %2607)
%2609 = fcmp ogt double %2608, 0.000000e+00
br i1 %2609, label %7621, label %2610
2610: ; preds = %2584
%2611 = fsub <2 x double> %45, %66
%2612 = extractelement <2 x double> %2611, i64 0
%2613 = fsub <2 x double> %102, %100
%2614 = extractelement <2 x double> %134, i64 1
%2615 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%2616 = fneg <2 x double> %2615
%2617 = shufflevector <2 x double> %2611, <2 x double> %2613, <2 x i32> <i32 0, i32 2>
%2618 = fmul <2 x double> %2617, %2616
%2619 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %2613, <2 x double> %2618)
%2620 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2619, <2 x double>* %2620
%2621 = fneg double %136
%2622 = extractelement <2 x double> %2613, i64 1
%2623 = fmul double %2622, %2621
%2624 = tail call double @llvm.fmuladd.f64(double %2614, double %2612, double %2623)
store double %2624, double* %118
%2625 = shufflevector <2 x double> %2619, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2626 = fmul <2 x double> %128, %2625
%2627 = extractelement <2 x double> %2626, i64 0
%2628 = extractelement <2 x double> %134, i64 0
%2629 = extractelement <2 x double> %2619, i64 0
%2630 = tail call double @llvm.fmuladd.f64(double %2628, double %2629, double %2627)
%2631 = tail call double @llvm.fmuladd.f64(double %130, double %2624, double %2630)
%2632 = fcmp ule double %2631, 0.000000e+00
%2633 = zext i1 %2632 to i32
br label %7621
2634: ; preds = %2582
%2635 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %2, double* %0, double* %1, double* %3, double* %4, double* %5, double* %104)
br label %7621
2636: ; preds = %2027
%2637 = fcmp olt double %87, 0.000000e+00
%2638 = fcmp ogt double %127, 0.000000e+00
br i1 %2637, label %2639, label %3294
2639: ; preds = %2636
br i1 %2638, label %2640, label %2803
2640: ; preds = %2639
%2641 = fcmp ogt double %148, 0.000000e+00
br i1 %2641, label %2642, label %2696
2642: ; preds = %2640
%2643 = fsub double %10, %41
%2644 = fsub <2 x double> %15, %45
%2645 = extractelement <2 x double> %2644, i64 0
%2646 = fsub double %20, %48
%2647 = fneg double %2646
%2648 = fmul double %93, %2647
%2649 = tail call double @llvm.fmuladd.f64(double %2645, double %109, double %2648)
%2650 = fneg double %2643
%2651 = fmul double %109, %2650
%2652 = tail call double @llvm.fmuladd.f64(double %2646, double %116, double %2651)
%2653 = fneg double %2645
%2654 = fmul double %116, %2653
%2655 = tail call double @llvm.fmuladd.f64(double %2643, double %93, double %2654)
%2656 = fsub double %9, %41
%2657 = fsub <2 x double> %17, %45
%2658 = extractelement <2 x double> %2657, i64 0
%2659 = fsub double %21, %48
%2660 = fmul double %2658, %2652
%2661 = tail call double @llvm.fmuladd.f64(double %2656, double %2649, double %2660)
%2662 = tail call double @llvm.fmuladd.f64(double %2659, double %2655, double %2661)
%2663 = fcmp ogt double %2662, 0.000000e+00
br i1 %2663, label %7621, label %2664
2664: ; preds = %2642
%2665 = fsub double %10, %53
%2666 = fsub <2 x double> %15, %56
%2667 = fsub <2 x double> %66, %56
%2668 = extractelement <2 x double> %2667, i64 0
%2669 = insertelement <2 x double> poison, double %57, i64 0
%2670 = insertelement <2 x double> %2669, double %53, i64 1
%2671 = fsub <2 x double> %100, %2670
%2672 = extractelement <2 x double> %2666, i64 1
%2673 = insertelement <2 x double> poison, double %2672, i64 0
%2674 = insertelement <2 x double> %2673, double %2665, i64 1
%2675 = fneg <2 x double> %2674
%2676 = shufflevector <2 x double> %2667, <2 x double> %2671, <2 x i32> <i32 0, i32 2>
%2677 = fmul <2 x double> %2676, %2675
%2678 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2666, <2 x double> %2671, <2 x double> %2677)
%2679 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2678, <2 x double>* %2679
%2680 = extractelement <2 x double> %2666, i64 0
%2681 = fneg double %2680
%2682 = extractelement <2 x double> %2671, i64 1
%2683 = fmul double %2682, %2681
%2684 = tail call double @llvm.fmuladd.f64(double %2665, double %2668, double %2683)
store double %2684, double* %118
%2685 = fsub double %23, %53
%2686 = fsub <2 x double> %27, %56
%2687 = fsub double %30, %57
%2688 = shufflevector <2 x double> %2678, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2689 = fmul <2 x double> %2686, %2688
%2690 = extractelement <2 x double> %2689, i64 0
%2691 = extractelement <2 x double> %2678, i64 0
%2692 = tail call double @llvm.fmuladd.f64(double %2685, double %2691, double %2690)
%2693 = tail call double @llvm.fmuladd.f64(double %2687, double %2684, double %2692)
%2694 = fcmp ule double %2693, 0.000000e+00
%2695 = zext i1 %2694 to i32
br label %7621
2696: ; preds = %2640
%2697 = fcmp ogt double %151, 0.000000e+00
br i1 %2697, label %2698, label %2752
2698: ; preds = %2696
%2699 = fsub double %23, %41
%2700 = fsub <2 x double> %27, %45
%2701 = extractelement <2 x double> %2700, i64 0
%2702 = fsub double %30, %48
%2703 = fneg double %2702
%2704 = fmul double %93, %2703
%2705 = tail call double @llvm.fmuladd.f64(double %2701, double %109, double %2704)
%2706 = fneg double %2699
%2707 = fmul double %109, %2706
%2708 = tail call double @llvm.fmuladd.f64(double %2702, double %116, double %2707)
%2709 = fneg double %2701
%2710 = fmul double %116, %2709
%2711 = tail call double @llvm.fmuladd.f64(double %2699, double %93, double %2710)
%2712 = fsub double %10, %41
%2713 = fsub <2 x double> %15, %45
%2714 = extractelement <2 x double> %2713, i64 0
%2715 = fsub double %20, %48
%2716 = fmul double %2714, %2708
%2717 = tail call double @llvm.fmuladd.f64(double %2712, double %2705, double %2716)
%2718 = tail call double @llvm.fmuladd.f64(double %2715, double %2711, double %2717)
%2719 = fcmp ogt double %2718, 0.000000e+00
br i1 %2719, label %7621, label %2720
2720: ; preds = %2698
%2721 = fsub double %23, %53
%2722 = fsub <2 x double> %27, %56
%2723 = fsub <2 x double> %66, %56
%2724 = extractelement <2 x double> %2723, i64 0
%2725 = insertelement <2 x double> poison, double %57, i64 0
%2726 = insertelement <2 x double> %2725, double %53, i64 1
%2727 = fsub <2 x double> %100, %2726
%2728 = extractelement <2 x double> %2722, i64 1
%2729 = insertelement <2 x double> poison, double %2728, i64 0
%2730 = insertelement <2 x double> %2729, double %2721, i64 1
%2731 = fneg <2 x double> %2730
%2732 = shufflevector <2 x double> %2723, <2 x double> %2727, <2 x i32> <i32 0, i32 2>
%2733 = fmul <2 x double> %2732, %2731
%2734 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2722, <2 x double> %2727, <2 x double> %2733)
%2735 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2734, <2 x double>* %2735
%2736 = extractelement <2 x double> %2722, i64 0
%2737 = fneg double %2736
%2738 = extractelement <2 x double> %2727, i64 1
%2739 = fmul double %2738, %2737
%2740 = tail call double @llvm.fmuladd.f64(double %2721, double %2724, double %2739)
store double %2740, double* %118
%2741 = fsub double %9, %53
%2742 = fsub <2 x double> %17, %56
%2743 = fsub double %21, %57
%2744 = shufflevector <2 x double> %2734, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2745 = fmul <2 x double> %2742, %2744
%2746 = extractelement <2 x double> %2745, i64 0
%2747 = extractelement <2 x double> %2734, i64 0
%2748 = tail call double @llvm.fmuladd.f64(double %2741, double %2747, double %2746)
%2749 = tail call double @llvm.fmuladd.f64(double %2743, double %2740, double %2748)
%2750 = fcmp ule double %2749, 0.000000e+00
%2751 = zext i1 %2750 to i32
br label %7621
2752: ; preds = %2696
%2753 = fsub double %53, %58
%2754 = fsub <2 x double> %56, %66
%2755 = extractelement <2 x double> %2754, i64 0
%2756 = fsub double %57, %70
%2757 = fneg double %126
%2758 = fmul double %2755, %2757
%2759 = tail call double @llvm.fmuladd.f64(double %121, double %2756, double %2758)
%2760 = fneg double %119
%2761 = fmul double %2756, %2760
%2762 = tail call double @llvm.fmuladd.f64(double %126, double %2753, double %2761)
%2763 = fneg double %121
%2764 = fmul double %2753, %2763
%2765 = tail call double @llvm.fmuladd.f64(double %119, double %2755, double %2764)
%2766 = fmul double %129, %2762
%2767 = extractelement <2 x double> %134, i64 0
%2768 = tail call double @llvm.fmuladd.f64(double %2767, double %2759, double %2766)
%2769 = tail call double @llvm.fmuladd.f64(double %130, double %2765, double %2768)
%2770 = fcmp ogt double %2769, 0.000000e+00
br i1 %2770, label %7621, label %2771
2771: ; preds = %2752
%2772 = fsub double %9, %53
%2773 = fsub <2 x double> %17, %56
%2774 = fsub <2 x double> %45, %56
%2775 = extractelement <2 x double> %2774, i64 0
%2776 = insertelement <2 x double> poison, double %57, i64 0
%2777 = insertelement <2 x double> %2776, double %53, i64 1
%2778 = fsub <2 x double> %102, %2777
%2779 = extractelement <2 x double> %2773, i64 1
%2780 = insertelement <2 x double> poison, double %2779, i64 0
%2781 = insertelement <2 x double> %2780, double %2772, i64 1
%2782 = fneg <2 x double> %2781
%2783 = shufflevector <2 x double> %2774, <2 x double> %2778, <2 x i32> <i32 0, i32 2>
%2784 = fmul <2 x double> %2783, %2782
%2785 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2773, <2 x double> %2778, <2 x double> %2784)
%2786 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2785, <2 x double>* %2786
%2787 = extractelement <2 x double> %2773, i64 0
%2788 = fneg double %2787
%2789 = extractelement <2 x double> %2778, i64 1
%2790 = fmul double %2789, %2788
%2791 = tail call double @llvm.fmuladd.f64(double %2772, double %2775, double %2790)
store double %2791, double* %118
%2792 = fsub double %10, %53
%2793 = fsub <2 x double> %15, %56
%2794 = fsub double %20, %57
%2795 = shufflevector <2 x double> %2785, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2796 = fmul <2 x double> %2793, %2795
%2797 = extractelement <2 x double> %2796, i64 0
%2798 = extractelement <2 x double> %2785, i64 0
%2799 = tail call double @llvm.fmuladd.f64(double %2792, double %2798, double %2797)
%2800 = tail call double @llvm.fmuladd.f64(double %2794, double %2791, double %2799)
%2801 = fcmp ule double %2800, 0.000000e+00
%2802 = zext i1 %2801 to i32
br label %7621
2803: ; preds = %2639
%2804 = fcmp olt double %127, 0.000000e+00
%2805 = fcmp olt double %148, 0.000000e+00
br i1 %2804, label %2806, label %2966
2806: ; preds = %2803
br i1 %2805, label %2807, label %2858
2807: ; preds = %2806
%2808 = fsub double %53, %58
%2809 = fsub <2 x double> %56, %66
%2810 = extractelement <2 x double> %2809, i64 0
%2811 = fsub double %57, %70
%2812 = fneg double %142
%2813 = fmul double %2810, %2812
%2814 = tail call double @llvm.fmuladd.f64(double %136, double %2811, double %2813)
%2815 = extractelement <2 x double> %134, i64 1
%2816 = fneg double %2815
%2817 = fmul double %2811, %2816
%2818 = tail call double @llvm.fmuladd.f64(double %142, double %2808, double %2817)
%2819 = fneg double %136
%2820 = fmul double %2808, %2819
%2821 = tail call double @llvm.fmuladd.f64(double %2815, double %2810, double %2820)
%2822 = fmul double %121, %2818
%2823 = tail call double @llvm.fmuladd.f64(double %119, double %2814, double %2822)
%2824 = tail call double @llvm.fmuladd.f64(double %126, double %2821, double %2823)
%2825 = fcmp ogt double %2824, 0.000000e+00
br i1 %2825, label %7621, label %2826
2826: ; preds = %2807
%2827 = fsub double %10, %53
%2828 = fsub <2 x double> %15, %56
%2829 = fsub <2 x double> %45, %56
%2830 = extractelement <2 x double> %2829, i64 0
%2831 = insertelement <2 x double> poison, double %57, i64 0
%2832 = insertelement <2 x double> %2831, double %53, i64 1
%2833 = fsub <2 x double> %102, %2832
%2834 = extractelement <2 x double> %2828, i64 1
%2835 = insertelement <2 x double> poison, double %2834, i64 0
%2836 = insertelement <2 x double> %2835, double %2827, i64 1
%2837 = fneg <2 x double> %2836
%2838 = shufflevector <2 x double> %2829, <2 x double> %2833, <2 x i32> <i32 0, i32 2>
%2839 = fmul <2 x double> %2838, %2837
%2840 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2828, <2 x double> %2833, <2 x double> %2839)
%2841 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2840, <2 x double>* %2841
%2842 = extractelement <2 x double> %2828, i64 0
%2843 = fneg double %2842
%2844 = extractelement <2 x double> %2833, i64 1
%2845 = fmul double %2844, %2843
%2846 = tail call double @llvm.fmuladd.f64(double %2827, double %2830, double %2845)
store double %2846, double* %118
%2847 = fsub double %23, %53
%2848 = fsub <2 x double> %27, %56
%2849 = fsub double %30, %57
%2850 = shufflevector <2 x double> %2840, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2851 = fmul <2 x double> %2848, %2850
%2852 = extractelement <2 x double> %2851, i64 0
%2853 = extractelement <2 x double> %2840, i64 0
%2854 = tail call double @llvm.fmuladd.f64(double %2847, double %2853, double %2852)
%2855 = tail call double @llvm.fmuladd.f64(double %2849, double %2846, double %2854)
%2856 = fcmp ule double %2855, 0.000000e+00
%2857 = zext i1 %2856 to i32
br label %7621
2858: ; preds = %2806
%2859 = fcmp olt double %151, 0.000000e+00
br i1 %2859, label %2860, label %2912
2860: ; preds = %2858
%2861 = fsub double %53, %58
%2862 = fsub <2 x double> %56, %66
%2863 = extractelement <2 x double> %2862, i64 0
%2864 = fsub double %57, %70
%2865 = fneg double %130
%2866 = fmul double %2863, %2865
%2867 = tail call double @llvm.fmuladd.f64(double %129, double %2864, double %2866)
%2868 = extractelement <2 x double> %134, i64 0
%2869 = fneg double %2868
%2870 = fmul double %2864, %2869
%2871 = tail call double @llvm.fmuladd.f64(double %130, double %2861, double %2870)
%2872 = fneg double %129
%2873 = fmul double %2861, %2872
%2874 = tail call double @llvm.fmuladd.f64(double %2868, double %2863, double %2873)
%2875 = fmul double %136, %2871
%2876 = extractelement <2 x double> %134, i64 1
%2877 = tail call double @llvm.fmuladd.f64(double %2876, double %2867, double %2875)
%2878 = tail call double @llvm.fmuladd.f64(double %142, double %2874, double %2877)
%2879 = fcmp ogt double %2878, 0.000000e+00
br i1 %2879, label %7621, label %2880
2880: ; preds = %2860
%2881 = fsub double %23, %53
%2882 = fsub <2 x double> %27, %56
%2883 = fsub <2 x double> %45, %56
%2884 = extractelement <2 x double> %2883, i64 0
%2885 = insertelement <2 x double> poison, double %57, i64 0
%2886 = insertelement <2 x double> %2885, double %53, i64 1
%2887 = fsub <2 x double> %102, %2886
%2888 = extractelement <2 x double> %2882, i64 1
%2889 = insertelement <2 x double> poison, double %2888, i64 0
%2890 = insertelement <2 x double> %2889, double %2881, i64 1
%2891 = fneg <2 x double> %2890
%2892 = shufflevector <2 x double> %2883, <2 x double> %2887, <2 x i32> <i32 0, i32 2>
%2893 = fmul <2 x double> %2892, %2891
%2894 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2882, <2 x double> %2887, <2 x double> %2893)
%2895 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2894, <2 x double>* %2895
%2896 = extractelement <2 x double> %2882, i64 0
%2897 = fneg double %2896
%2898 = extractelement <2 x double> %2887, i64 1
%2899 = fmul double %2898, %2897
%2900 = tail call double @llvm.fmuladd.f64(double %2881, double %2884, double %2899)
store double %2900, double* %118
%2901 = fsub double %9, %53
%2902 = fsub <2 x double> %17, %56
%2903 = fsub double %21, %57
%2904 = shufflevector <2 x double> %2894, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2905 = fmul <2 x double> %2902, %2904
%2906 = extractelement <2 x double> %2905, i64 0
%2907 = extractelement <2 x double> %2894, i64 0
%2908 = tail call double @llvm.fmuladd.f64(double %2901, double %2907, double %2906)
%2909 = tail call double @llvm.fmuladd.f64(double %2903, double %2900, double %2908)
%2910 = fcmp ule double %2909, 0.000000e+00
%2911 = zext i1 %2910 to i32
br label %7621
2912: ; preds = %2858
%2913 = fsub double %9, %41
%2914 = fsub <2 x double> %17, %45
%2915 = extractelement <2 x double> %2914, i64 0
%2916 = fsub double %21, %48
%2917 = fneg double %2916
%2918 = fmul double %93, %2917
%2919 = tail call double @llvm.fmuladd.f64(double %2915, double %109, double %2918)
%2920 = fneg double %2913
%2921 = fmul double %109, %2920
%2922 = tail call double @llvm.fmuladd.f64(double %2916, double %116, double %2921)
%2923 = fneg double %2915
%2924 = fmul double %116, %2923
%2925 = tail call double @llvm.fmuladd.f64(double %2913, double %93, double %2924)
%2926 = fsub double %23, %41
%2927 = fsub <2 x double> %27, %45
%2928 = extractelement <2 x double> %2927, i64 0
%2929 = fsub double %30, %48
%2930 = fmul double %2928, %2922
%2931 = tail call double @llvm.fmuladd.f64(double %2926, double %2919, double %2930)
%2932 = tail call double @llvm.fmuladd.f64(double %2929, double %2925, double %2931)
%2933 = fcmp ogt double %2932, 0.000000e+00
br i1 %2933, label %7621, label %2934
2934: ; preds = %2912
%2935 = fsub double %9, %53
%2936 = fsub <2 x double> %17, %56
%2937 = fsub <2 x double> %66, %56
%2938 = extractelement <2 x double> %2937, i64 0
%2939 = insertelement <2 x double> poison, double %57, i64 0
%2940 = insertelement <2 x double> %2939, double %53, i64 1
%2941 = fsub <2 x double> %100, %2940
%2942 = extractelement <2 x double> %2936, i64 1
%2943 = insertelement <2 x double> poison, double %2942, i64 0
%2944 = insertelement <2 x double> %2943, double %2935, i64 1
%2945 = fneg <2 x double> %2944
%2946 = shufflevector <2 x double> %2937, <2 x double> %2941, <2 x i32> <i32 0, i32 2>
%2947 = fmul <2 x double> %2946, %2945
%2948 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2936, <2 x double> %2941, <2 x double> %2947)
%2949 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %2948, <2 x double>* %2949
%2950 = extractelement <2 x double> %2936, i64 0
%2951 = fneg double %2950
%2952 = extractelement <2 x double> %2941, i64 1
%2953 = fmul double %2952, %2951
%2954 = tail call double @llvm.fmuladd.f64(double %2935, double %2938, double %2953)
store double %2954, double* %118
%2955 = fsub double %10, %53
%2956 = fsub <2 x double> %15, %56
%2957 = fsub double %20, %57
%2958 = shufflevector <2 x double> %2948, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%2959 = fmul <2 x double> %2956, %2958
%2960 = extractelement <2 x double> %2959, i64 0
%2961 = extractelement <2 x double> %2948, i64 0
%2962 = tail call double @llvm.fmuladd.f64(double %2955, double %2961, double %2960)
%2963 = tail call double @llvm.fmuladd.f64(double %2957, double %2954, double %2962)
%2964 = fcmp ule double %2963, 0.000000e+00
%2965 = zext i1 %2964 to i32
br label %7621
2966: ; preds = %2803
br i1 %2805, label %2967, label %3074
2967: ; preds = %2966
%2968 = fcmp ult double %151, 0.000000e+00
br i1 %2968, label %3023, label %2969
2969: ; preds = %2967
%2970 = fsub double %23, %41
%2971 = fsub <2 x double> %27, %45
%2972 = extractelement <2 x double> %2971, i64 0
%2973 = fsub double %30, %48
%2974 = fneg double %2973
%2975 = fmul double %93, %2974
%2976 = tail call double @llvm.fmuladd.f64(double %2972, double %109, double %2975)
%2977 = fneg double %2970
%2978 = fmul double %109, %2977
%2979 = tail call double @llvm.fmuladd.f64(double %2973, double %116, double %2978)
%2980 = fneg double %2972
%2981 = fmul double %116, %2980
%2982 = tail call double @llvm.fmuladd.f64(double %2970, double %93, double %2981)
%2983 = fsub double %10, %41
%2984 = fsub <2 x double> %15, %45
%2985 = extractelement <2 x double> %2984, i64 0
%2986 = fsub double %20, %48
%2987 = fmul double %2985, %2979
%2988 = tail call double @llvm.fmuladd.f64(double %2983, double %2976, double %2987)
%2989 = tail call double @llvm.fmuladd.f64(double %2986, double %2982, double %2988)
%2990 = fcmp ogt double %2989, 0.000000e+00
br i1 %2990, label %7621, label %2991
2991: ; preds = %2969
%2992 = fsub double %23, %53
%2993 = fsub <2 x double> %27, %56
%2994 = fsub <2 x double> %66, %56
%2995 = extractelement <2 x double> %2994, i64 0
%2996 = insertelement <2 x double> poison, double %57, i64 0
%2997 = insertelement <2 x double> %2996, double %53, i64 1
%2998 = fsub <2 x double> %100, %2997
%2999 = extractelement <2 x double> %2993, i64 1
%3000 = insertelement <2 x double> poison, double %2999, i64 0
%3001 = insertelement <2 x double> %3000, double %2992, i64 1
%3002 = fneg <2 x double> %3001
%3003 = shufflevector <2 x double> %2994, <2 x double> %2998, <2 x i32> <i32 0, i32 2>
%3004 = fmul <2 x double> %3003, %3002
%3005 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %2993, <2 x double> %2998, <2 x double> %3004)
%3006 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3005, <2 x double>* %3006
%3007 = extractelement <2 x double> %2993, i64 0
%3008 = fneg double %3007
%3009 = extractelement <2 x double> %2998, i64 1
%3010 = fmul double %3009, %3008
%3011 = tail call double @llvm.fmuladd.f64(double %2992, double %2995, double %3010)
store double %3011, double* %118
%3012 = fsub double %9, %53
%3013 = fsub <2 x double> %17, %56
%3014 = fsub double %21, %57
%3015 = shufflevector <2 x double> %3005, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3016 = fmul <2 x double> %3013, %3015
%3017 = extractelement <2 x double> %3016, i64 0
%3018 = extractelement <2 x double> %3005, i64 0
%3019 = tail call double @llvm.fmuladd.f64(double %3012, double %3018, double %3017)
%3020 = tail call double @llvm.fmuladd.f64(double %3014, double %3011, double %3019)
%3021 = fcmp ule double %3020, 0.000000e+00
%3022 = zext i1 %3021 to i32
br label %7621
3023: ; preds = %2967
%3024 = fsub double %53, %58
%3025 = fsub <2 x double> %56, %66
%3026 = extractelement <2 x double> %3025, i64 0
%3027 = fsub double %57, %70
%3028 = fneg double %126
%3029 = fmul double %3026, %3028
%3030 = tail call double @llvm.fmuladd.f64(double %121, double %3027, double %3029)
%3031 = fneg double %119
%3032 = fmul double %3027, %3031
%3033 = tail call double @llvm.fmuladd.f64(double %126, double %3024, double %3032)
%3034 = fneg double %121
%3035 = fmul double %3024, %3034
%3036 = tail call double @llvm.fmuladd.f64(double %119, double %3026, double %3035)
%3037 = fmul double %129, %3033
%3038 = extractelement <2 x double> %134, i64 0
%3039 = tail call double @llvm.fmuladd.f64(double %3038, double %3030, double %3037)
%3040 = tail call double @llvm.fmuladd.f64(double %130, double %3036, double %3039)
%3041 = fcmp ogt double %3040, 0.000000e+00
br i1 %3041, label %7621, label %3042
3042: ; preds = %3023
%3043 = fsub double %9, %53
%3044 = fsub <2 x double> %17, %56
%3045 = fsub <2 x double> %45, %56
%3046 = extractelement <2 x double> %3045, i64 0
%3047 = insertelement <2 x double> poison, double %57, i64 0
%3048 = insertelement <2 x double> %3047, double %53, i64 1
%3049 = fsub <2 x double> %102, %3048
%3050 = extractelement <2 x double> %3044, i64 1
%3051 = insertelement <2 x double> poison, double %3050, i64 0
%3052 = insertelement <2 x double> %3051, double %3043, i64 1
%3053 = fneg <2 x double> %3052
%3054 = shufflevector <2 x double> %3045, <2 x double> %3049, <2 x i32> <i32 0, i32 2>
%3055 = fmul <2 x double> %3054, %3053
%3056 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3044, <2 x double> %3049, <2 x double> %3055)
%3057 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3056, <2 x double>* %3057
%3058 = extractelement <2 x double> %3044, i64 0
%3059 = fneg double %3058
%3060 = extractelement <2 x double> %3049, i64 1
%3061 = fmul double %3060, %3059
%3062 = tail call double @llvm.fmuladd.f64(double %3043, double %3046, double %3061)
store double %3062, double* %118
%3063 = fsub double %10, %53
%3064 = fsub <2 x double> %15, %56
%3065 = fsub double %20, %57
%3066 = shufflevector <2 x double> %3056, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3067 = fmul <2 x double> %3064, %3066
%3068 = extractelement <2 x double> %3067, i64 0
%3069 = extractelement <2 x double> %3056, i64 0
%3070 = tail call double @llvm.fmuladd.f64(double %3063, double %3069, double %3068)
%3071 = tail call double @llvm.fmuladd.f64(double %3065, double %3062, double %3070)
%3072 = fcmp ule double %3071, 0.000000e+00
%3073 = zext i1 %3072 to i32
br label %7621
3074: ; preds = %2966
%3075 = fcmp ogt double %148, 0.000000e+00
%3076 = fcmp ogt double %151, 0.000000e+00
br i1 %3075, label %3077, label %3184
3077: ; preds = %3074
br i1 %3076, label %3078, label %3132
3078: ; preds = %3077
%3079 = fsub double %9, %41
%3080 = fsub <2 x double> %17, %45
%3081 = extractelement <2 x double> %3080, i64 0
%3082 = fsub double %21, %48
%3083 = fneg double %3082
%3084 = fmul double %93, %3083
%3085 = tail call double @llvm.fmuladd.f64(double %3081, double %109, double %3084)
%3086 = fneg double %3079
%3087 = fmul double %109, %3086
%3088 = tail call double @llvm.fmuladd.f64(double %3082, double %116, double %3087)
%3089 = fneg double %3081
%3090 = fmul double %116, %3089
%3091 = tail call double @llvm.fmuladd.f64(double %3079, double %93, double %3090)
%3092 = fsub double %23, %41
%3093 = fsub <2 x double> %27, %45
%3094 = extractelement <2 x double> %3093, i64 0
%3095 = fsub double %30, %48
%3096 = fmul double %3094, %3088
%3097 = tail call double @llvm.fmuladd.f64(double %3092, double %3085, double %3096)
%3098 = tail call double @llvm.fmuladd.f64(double %3095, double %3091, double %3097)
%3099 = fcmp ogt double %3098, 0.000000e+00
br i1 %3099, label %7621, label %3100
3100: ; preds = %3078
%3101 = fsub double %9, %53
%3102 = fsub <2 x double> %17, %56
%3103 = fsub <2 x double> %66, %56
%3104 = extractelement <2 x double> %3103, i64 0
%3105 = insertelement <2 x double> poison, double %57, i64 0
%3106 = insertelement <2 x double> %3105, double %53, i64 1
%3107 = fsub <2 x double> %100, %3106
%3108 = extractelement <2 x double> %3102, i64 1
%3109 = insertelement <2 x double> poison, double %3108, i64 0
%3110 = insertelement <2 x double> %3109, double %3101, i64 1
%3111 = fneg <2 x double> %3110
%3112 = shufflevector <2 x double> %3103, <2 x double> %3107, <2 x i32> <i32 0, i32 2>
%3113 = fmul <2 x double> %3112, %3111
%3114 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3102, <2 x double> %3107, <2 x double> %3113)
%3115 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3114, <2 x double>* %3115
%3116 = extractelement <2 x double> %3102, i64 0
%3117 = fneg double %3116
%3118 = extractelement <2 x double> %3107, i64 1
%3119 = fmul double %3118, %3117
%3120 = tail call double @llvm.fmuladd.f64(double %3101, double %3104, double %3119)
store double %3120, double* %118
%3121 = fsub double %10, %53
%3122 = fsub <2 x double> %15, %56
%3123 = fsub double %20, %57
%3124 = shufflevector <2 x double> %3114, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3125 = fmul <2 x double> %3122, %3124
%3126 = extractelement <2 x double> %3125, i64 0
%3127 = extractelement <2 x double> %3114, i64 0
%3128 = tail call double @llvm.fmuladd.f64(double %3121, double %3127, double %3126)
%3129 = tail call double @llvm.fmuladd.f64(double %3123, double %3120, double %3128)
%3130 = fcmp ule double %3129, 0.000000e+00
%3131 = zext i1 %3130 to i32
br label %7621
3132: ; preds = %3077
%3133 = fsub double %53, %58
%3134 = fsub <2 x double> %56, %66
%3135 = extractelement <2 x double> %3134, i64 0
%3136 = fsub double %57, %70
%3137 = fneg double %130
%3138 = fmul double %3135, %3137
%3139 = tail call double @llvm.fmuladd.f64(double %129, double %3136, double %3138)
%3140 = extractelement <2 x double> %134, i64 0
%3141 = fneg double %3140
%3142 = fmul double %3136, %3141
%3143 = tail call double @llvm.fmuladd.f64(double %130, double %3133, double %3142)
%3144 = fneg double %129
%3145 = fmul double %3133, %3144
%3146 = tail call double @llvm.fmuladd.f64(double %3140, double %3135, double %3145)
%3147 = fmul double %136, %3143
%3148 = extractelement <2 x double> %134, i64 1
%3149 = tail call double @llvm.fmuladd.f64(double %3148, double %3139, double %3147)
%3150 = tail call double @llvm.fmuladd.f64(double %142, double %3146, double %3149)
%3151 = fcmp ogt double %3150, 0.000000e+00
br i1 %3151, label %7621, label %3152
3152: ; preds = %3132
%3153 = fsub double %23, %53
%3154 = fsub <2 x double> %27, %56
%3155 = fsub <2 x double> %45, %56
%3156 = extractelement <2 x double> %3155, i64 0
%3157 = insertelement <2 x double> poison, double %57, i64 0
%3158 = insertelement <2 x double> %3157, double %53, i64 1
%3159 = fsub <2 x double> %102, %3158
%3160 = extractelement <2 x double> %3154, i64 1
%3161 = insertelement <2 x double> poison, double %3160, i64 0
%3162 = insertelement <2 x double> %3161, double %3153, i64 1
%3163 = fneg <2 x double> %3162
%3164 = shufflevector <2 x double> %3155, <2 x double> %3159, <2 x i32> <i32 0, i32 2>
%3165 = fmul <2 x double> %3164, %3163
%3166 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3154, <2 x double> %3159, <2 x double> %3165)
%3167 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3166, <2 x double>* %3167
%3168 = extractelement <2 x double> %3154, i64 0
%3169 = fneg double %3168
%3170 = extractelement <2 x double> %3159, i64 1
%3171 = fmul double %3170, %3169
%3172 = tail call double @llvm.fmuladd.f64(double %3153, double %3156, double %3171)
store double %3172, double* %118
%3173 = fsub double %9, %53
%3174 = fsub <2 x double> %17, %56
%3175 = fsub double %21, %57
%3176 = shufflevector <2 x double> %3166, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3177 = fmul <2 x double> %3174, %3176
%3178 = extractelement <2 x double> %3177, i64 0
%3179 = extractelement <2 x double> %3166, i64 0
%3180 = tail call double @llvm.fmuladd.f64(double %3173, double %3179, double %3178)
%3181 = tail call double @llvm.fmuladd.f64(double %3175, double %3172, double %3180)
%3182 = fcmp ule double %3181, 0.000000e+00
%3183 = zext i1 %3182 to i32
br label %7621
3184: ; preds = %3074
br i1 %3076, label %3185, label %3236
3185: ; preds = %3184
%3186 = fsub double %53, %58
%3187 = fsub <2 x double> %56, %66
%3188 = extractelement <2 x double> %3187, i64 0
%3189 = fsub double %57, %70
%3190 = fneg double %142
%3191 = fmul double %3188, %3190
%3192 = tail call double @llvm.fmuladd.f64(double %136, double %3189, double %3191)
%3193 = extractelement <2 x double> %134, i64 1
%3194 = fneg double %3193
%3195 = fmul double %3189, %3194
%3196 = tail call double @llvm.fmuladd.f64(double %142, double %3186, double %3195)
%3197 = fneg double %136
%3198 = fmul double %3186, %3197
%3199 = tail call double @llvm.fmuladd.f64(double %3193, double %3188, double %3198)
%3200 = fmul double %121, %3196
%3201 = tail call double @llvm.fmuladd.f64(double %119, double %3192, double %3200)
%3202 = tail call double @llvm.fmuladd.f64(double %126, double %3199, double %3201)
%3203 = fcmp ogt double %3202, 0.000000e+00
br i1 %3203, label %7621, label %3204
3204: ; preds = %3185
%3205 = fsub double %10, %53
%3206 = fsub <2 x double> %15, %56
%3207 = fsub <2 x double> %45, %56
%3208 = extractelement <2 x double> %3207, i64 0
%3209 = insertelement <2 x double> poison, double %57, i64 0
%3210 = insertelement <2 x double> %3209, double %53, i64 1
%3211 = fsub <2 x double> %102, %3210
%3212 = extractelement <2 x double> %3206, i64 1
%3213 = insertelement <2 x double> poison, double %3212, i64 0
%3214 = insertelement <2 x double> %3213, double %3205, i64 1
%3215 = fneg <2 x double> %3214
%3216 = shufflevector <2 x double> %3207, <2 x double> %3211, <2 x i32> <i32 0, i32 2>
%3217 = fmul <2 x double> %3216, %3215
%3218 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3206, <2 x double> %3211, <2 x double> %3217)
%3219 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3218, <2 x double>* %3219
%3220 = extractelement <2 x double> %3206, i64 0
%3221 = fneg double %3220
%3222 = extractelement <2 x double> %3211, i64 1
%3223 = fmul double %3222, %3221
%3224 = tail call double @llvm.fmuladd.f64(double %3205, double %3208, double %3223)
store double %3224, double* %118
%3225 = fsub double %23, %53
%3226 = fsub <2 x double> %27, %56
%3227 = fsub double %30, %57
%3228 = shufflevector <2 x double> %3218, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3229 = fmul <2 x double> %3226, %3228
%3230 = extractelement <2 x double> %3229, i64 0
%3231 = extractelement <2 x double> %3218, i64 0
%3232 = tail call double @llvm.fmuladd.f64(double %3225, double %3231, double %3230)
%3233 = tail call double @llvm.fmuladd.f64(double %3227, double %3224, double %3232)
%3234 = fcmp ule double %3233, 0.000000e+00
%3235 = zext i1 %3234 to i32
br label %7621
3236: ; preds = %3184
%3237 = fcmp olt double %151, 0.000000e+00
br i1 %3237, label %3238, label %3292
3238: ; preds = %3236
%3239 = fsub double %10, %41
%3240 = fsub <2 x double> %15, %45
%3241 = extractelement <2 x double> %3240, i64 0
%3242 = fsub double %20, %48
%3243 = fneg double %3242
%3244 = fmul double %93, %3243
%3245 = tail call double @llvm.fmuladd.f64(double %3241, double %109, double %3244)
%3246 = fneg double %3239
%3247 = fmul double %109, %3246
%3248 = tail call double @llvm.fmuladd.f64(double %3242, double %116, double %3247)
%3249 = fneg double %3241
%3250 = fmul double %116, %3249
%3251 = tail call double @llvm.fmuladd.f64(double %3239, double %93, double %3250)
%3252 = fsub double %9, %41
%3253 = fsub <2 x double> %17, %45
%3254 = extractelement <2 x double> %3253, i64 0
%3255 = fsub double %21, %48
%3256 = fmul double %3254, %3248
%3257 = tail call double @llvm.fmuladd.f64(double %3252, double %3245, double %3256)
%3258 = tail call double @llvm.fmuladd.f64(double %3255, double %3251, double %3257)
%3259 = fcmp ogt double %3258, 0.000000e+00
br i1 %3259, label %7621, label %3260
3260: ; preds = %3238
%3261 = fsub double %10, %53
%3262 = fsub <2 x double> %15, %56
%3263 = fsub <2 x double> %66, %56
%3264 = extractelement <2 x double> %3263, i64 0
%3265 = insertelement <2 x double> poison, double %57, i64 0
%3266 = insertelement <2 x double> %3265, double %53, i64 1
%3267 = fsub <2 x double> %100, %3266
%3268 = extractelement <2 x double> %3262, i64 1
%3269 = insertelement <2 x double> poison, double %3268, i64 0
%3270 = insertelement <2 x double> %3269, double %3261, i64 1
%3271 = fneg <2 x double> %3270
%3272 = shufflevector <2 x double> %3263, <2 x double> %3267, <2 x i32> <i32 0, i32 2>
%3273 = fmul <2 x double> %3272, %3271
%3274 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3262, <2 x double> %3267, <2 x double> %3273)
%3275 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3274, <2 x double>* %3275
%3276 = extractelement <2 x double> %3262, i64 0
%3277 = fneg double %3276
%3278 = extractelement <2 x double> %3267, i64 1
%3279 = fmul double %3278, %3277
%3280 = tail call double @llvm.fmuladd.f64(double %3261, double %3264, double %3279)
store double %3280, double* %118
%3281 = fsub double %23, %53
%3282 = fsub <2 x double> %27, %56
%3283 = fsub double %30, %57
%3284 = shufflevector <2 x double> %3274, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3285 = fmul <2 x double> %3282, %3284
%3286 = extractelement <2 x double> %3285, i64 0
%3287 = extractelement <2 x double> %3274, i64 0
%3288 = tail call double @llvm.fmuladd.f64(double %3281, double %3287, double %3286)
%3289 = tail call double @llvm.fmuladd.f64(double %3283, double %3280, double %3288)
%3290 = fcmp ule double %3289, 0.000000e+00
%3291 = zext i1 %3290 to i32
br label %7621
3292: ; preds = %3236
%3293 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %1, double* %2, double* %0, double* %3, double* %4, double* %5, double* %104)
br label %7621
3294: ; preds = %2636
br i1 %2638, label %3295, label %3439
3295: ; preds = %3294
%3296 = fcmp ogt double %151, 0.000000e+00
br i1 %3296, label %3297, label %3341
3297: ; preds = %3295
%3298 = fsub double %41, %58
%3299 = fsub <2 x double> %45, %66
%3300 = extractelement <2 x double> %3299, i64 0
%3301 = fsub double %48, %70
%3302 = fneg double %130
%3303 = fmul double %3300, %3302
%3304 = tail call double @llvm.fmuladd.f64(double %129, double %3301, double %3303)
%3305 = extractelement <2 x double> %134, i64 0
%3306 = fneg double %3305
%3307 = fmul double %3301, %3306
%3308 = tail call double @llvm.fmuladd.f64(double %130, double %3298, double %3307)
%3309 = fneg double %129
%3310 = fmul double %3298, %3309
%3311 = tail call double @llvm.fmuladd.f64(double %3305, double %3300, double %3310)
%3312 = fmul double %121, %3308
%3313 = tail call double @llvm.fmuladd.f64(double %119, double %3304, double %3312)
%3314 = tail call double @llvm.fmuladd.f64(double %126, double %3311, double %3313)
%3315 = fcmp ogt double %3314, 0.000000e+00
br i1 %3315, label %7621, label %3316
3316: ; preds = %3297
%3317 = fsub double %23, %41
%3318 = fsub <2 x double> %27, %45
%3319 = extractelement <2 x double> %3318, i64 1
%3320 = insertelement <2 x double> poison, double %3319, i64 0
%3321 = insertelement <2 x double> %3320, double %3317, i64 1
%3322 = fneg <2 x double> %3321
%3323 = fmul <2 x double> %110, %3322
%3324 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3318, <2 x double> %97, <2 x double> %3323)
%3325 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3324, <2 x double>* %3325
%3326 = extractelement <2 x double> %3318, i64 0
%3327 = fneg double %3326
%3328 = fmul double %116, %3327
%3329 = tail call double @llvm.fmuladd.f64(double %3317, double %93, double %3328)
store double %3329, double* %118
%3330 = fsub double %10, %41
%3331 = fsub <2 x double> %15, %45
%3332 = fsub double %20, %48
%3333 = shufflevector <2 x double> %3324, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3334 = fmul <2 x double> %3331, %3333
%3335 = extractelement <2 x double> %3334, i64 0
%3336 = extractelement <2 x double> %3324, i64 0
%3337 = tail call double @llvm.fmuladd.f64(double %3330, double %3336, double %3335)
%3338 = tail call double @llvm.fmuladd.f64(double %3332, double %3329, double %3337)
%3339 = fcmp ule double %3338, 0.000000e+00
%3340 = zext i1 %3339 to i32
br label %7621
3341: ; preds = %3295
%3342 = fcmp ogt double %148, 0.000000e+00
br i1 %3342, label %3343, label %3388
3343: ; preds = %3341
%3344 = fsub double %41, %58
%3345 = fsub <2 x double> %45, %66
%3346 = extractelement <2 x double> %3345, i64 0
%3347 = fsub double %48, %70
%3348 = fneg double %142
%3349 = fmul double %3346, %3348
%3350 = tail call double @llvm.fmuladd.f64(double %136, double %3347, double %3349)
%3351 = extractelement <2 x double> %134, i64 1
%3352 = fneg double %3351
%3353 = fmul double %3347, %3352
%3354 = tail call double @llvm.fmuladd.f64(double %142, double %3344, double %3353)
%3355 = fneg double %136
%3356 = fmul double %3344, %3355
%3357 = tail call double @llvm.fmuladd.f64(double %3351, double %3346, double %3356)
%3358 = fmul double %129, %3354
%3359 = extractelement <2 x double> %134, i64 0
%3360 = tail call double @llvm.fmuladd.f64(double %3359, double %3350, double %3358)
%3361 = tail call double @llvm.fmuladd.f64(double %130, double %3357, double %3360)
%3362 = fcmp ogt double %3361, 0.000000e+00
br i1 %3362, label %7621, label %3363
3363: ; preds = %3343
%3364 = fsub double %10, %41
%3365 = fsub <2 x double> %15, %45
%3366 = extractelement <2 x double> %3365, i64 1
%3367 = insertelement <2 x double> poison, double %3366, i64 0
%3368 = insertelement <2 x double> %3367, double %3364, i64 1
%3369 = fneg <2 x double> %3368
%3370 = fmul <2 x double> %110, %3369
%3371 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3365, <2 x double> %97, <2 x double> %3370)
%3372 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3371, <2 x double>* %3372
%3373 = extractelement <2 x double> %3365, i64 0
%3374 = fneg double %3373
%3375 = fmul double %116, %3374
%3376 = tail call double @llvm.fmuladd.f64(double %3364, double %93, double %3375)
store double %3376, double* %118
%3377 = fsub double %9, %41
%3378 = fsub <2 x double> %17, %45
%3379 = fsub double %21, %48
%3380 = shufflevector <2 x double> %3371, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3381 = fmul <2 x double> %3378, %3380
%3382 = extractelement <2 x double> %3381, i64 0
%3383 = extractelement <2 x double> %3371, i64 0
%3384 = tail call double @llvm.fmuladd.f64(double %3377, double %3383, double %3382)
%3385 = tail call double @llvm.fmuladd.f64(double %3379, double %3376, double %3384)
%3386 = fcmp ule double %3385, 0.000000e+00
%3387 = zext i1 %3386 to i32
br label %7621
3388: ; preds = %3341
%3389 = fsub double %9, %53
%3390 = fsub <2 x double> %17, %56
%3391 = extractelement <2 x double> %3390, i64 0
%3392 = fsub double %21, %57
%3393 = fsub double %41, %53
%3394 = fsub <2 x double> %45, %56
%3395 = extractelement <2 x double> %3394, i64 0
%3396 = fsub double %48, %57
%3397 = fneg double %3392
%3398 = fmul double %3395, %3397
%3399 = tail call double @llvm.fmuladd.f64(double %3391, double %3396, double %3398)
%3400 = fneg double %3389
%3401 = fmul double %3396, %3400
%3402 = tail call double @llvm.fmuladd.f64(double %3392, double %3393, double %3401)
%3403 = fneg double %3391
%3404 = fmul double %3393, %3403
%3405 = tail call double @llvm.fmuladd.f64(double %3389, double %3395, double %3404)
%3406 = fsub double %10, %53
%3407 = fsub <2 x double> %15, %56
%3408 = extractelement <2 x double> %3407, i64 0
%3409 = fsub double %20, %57
%3410 = fmul double %3408, %3402
%3411 = tail call double @llvm.fmuladd.f64(double %3406, double %3399, double %3410)
%3412 = tail call double @llvm.fmuladd.f64(double %3409, double %3405, double %3411)
%3413 = fcmp ogt double %3412, 0.000000e+00
br i1 %3413, label %7621, label %3414
3414: ; preds = %3388
%3415 = fsub double %9, %41
%3416 = fsub <2 x double> %17, %45
%3417 = extractelement <2 x double> %3416, i64 1
%3418 = insertelement <2 x double> poison, double %3417, i64 0
%3419 = insertelement <2 x double> %3418, double %3415, i64 1
%3420 = fneg <2 x double> %3419
%3421 = fmul <2 x double> %107, %3420
%3422 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3416, <2 x double> %103, <2 x double> %3421)
%3423 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3422, <2 x double>* %3423
%3424 = extractelement <2 x double> %3416, i64 0
%3425 = fneg double %3424
%3426 = fmul double %114, %3425
%3427 = tail call double @llvm.fmuladd.f64(double %3415, double %99, double %3426)
store double %3427, double* %118
%3428 = fsub double %23, %41
%3429 = fsub <2 x double> %27, %45
%3430 = fsub double %30, %48
%3431 = shufflevector <2 x double> %3422, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3432 = fmul <2 x double> %3429, %3431
%3433 = extractelement <2 x double> %3432, i64 0
%3434 = extractelement <2 x double> %3422, i64 0
%3435 = tail call double @llvm.fmuladd.f64(double %3428, double %3434, double %3433)
%3436 = tail call double @llvm.fmuladd.f64(double %3430, double %3427, double %3435)
%3437 = fcmp ule double %3436, 0.000000e+00
%3438 = zext i1 %3437 to i32
br label %7621
3439: ; preds = %3294
%3440 = fcmp olt double %127, 0.000000e+00
%3441 = fcmp olt double %151, 0.000000e+00
br i1 %3440, label %3442, label %3591
3442: ; preds = %3439
br i1 %3441, label %3443, label %3494
3443: ; preds = %3442
%3444 = fsub double %23, %53
%3445 = fsub <2 x double> %27, %56
%3446 = extractelement <2 x double> %3445, i64 0
%3447 = fsub double %30, %57
%3448 = fsub double %41, %53
%3449 = fsub <2 x double> %45, %56
%3450 = extractelement <2 x double> %3449, i64 0
%3451 = fsub double %48, %57
%3452 = fneg double %3447
%3453 = fmul double %3450, %3452
%3454 = tail call double @llvm.fmuladd.f64(double %3446, double %3451, double %3453)
%3455 = fneg double %3444
%3456 = fmul double %3451, %3455
%3457 = tail call double @llvm.fmuladd.f64(double %3447, double %3448, double %3456)
%3458 = fneg double %3446
%3459 = fmul double %3448, %3458
%3460 = tail call double @llvm.fmuladd.f64(double %3444, double %3450, double %3459)
%3461 = fsub double %9, %53
%3462 = fsub <2 x double> %17, %56
%3463 = extractelement <2 x double> %3462, i64 0
%3464 = fsub double %21, %57
%3465 = fmul double %3463, %3457
%3466 = tail call double @llvm.fmuladd.f64(double %3461, double %3454, double %3465)
%3467 = tail call double @llvm.fmuladd.f64(double %3464, double %3460, double %3466)
%3468 = fcmp ogt double %3467, 0.000000e+00
br i1 %3468, label %7621, label %3469
3469: ; preds = %3443
%3470 = fsub double %23, %41
%3471 = fsub <2 x double> %27, %45
%3472 = extractelement <2 x double> %3471, i64 1
%3473 = insertelement <2 x double> poison, double %3472, i64 0
%3474 = insertelement <2 x double> %3473, double %3470, i64 1
%3475 = fneg <2 x double> %3474
%3476 = fmul <2 x double> %107, %3475
%3477 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3471, <2 x double> %103, <2 x double> %3476)
%3478 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3477, <2 x double>* %3478
%3479 = extractelement <2 x double> %3471, i64 0
%3480 = fneg double %3479
%3481 = fmul double %114, %3480
%3482 = tail call double @llvm.fmuladd.f64(double %3470, double %99, double %3481)
store double %3482, double* %118
%3483 = fsub double %10, %41
%3484 = fsub <2 x double> %15, %45
%3485 = fsub double %20, %48
%3486 = shufflevector <2 x double> %3477, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3487 = fmul <2 x double> %3484, %3486
%3488 = extractelement <2 x double> %3487, i64 0
%3489 = extractelement <2 x double> %3477, i64 0
%3490 = tail call double @llvm.fmuladd.f64(double %3483, double %3489, double %3488)
%3491 = tail call double @llvm.fmuladd.f64(double %3485, double %3482, double %3490)
%3492 = fcmp ule double %3491, 0.000000e+00
%3493 = zext i1 %3492 to i32
br label %7621
3494: ; preds = %3442
%3495 = fcmp olt double %148, 0.000000e+00
br i1 %3495, label %3496, label %3547
3496: ; preds = %3494
%3497 = fsub double %10, %53
%3498 = fsub <2 x double> %15, %56
%3499 = extractelement <2 x double> %3498, i64 0
%3500 = fsub double %20, %57
%3501 = fsub double %41, %53
%3502 = fsub <2 x double> %45, %56
%3503 = extractelement <2 x double> %3502, i64 0
%3504 = fsub double %48, %57
%3505 = fneg double %3500
%3506 = fmul double %3503, %3505
%3507 = tail call double @llvm.fmuladd.f64(double %3499, double %3504, double %3506)
%3508 = fneg double %3497
%3509 = fmul double %3504, %3508
%3510 = tail call double @llvm.fmuladd.f64(double %3500, double %3501, double %3509)
%3511 = fneg double %3499
%3512 = fmul double %3501, %3511
%3513 = tail call double @llvm.fmuladd.f64(double %3497, double %3503, double %3512)
%3514 = fsub double %23, %53
%3515 = fsub <2 x double> %27, %56
%3516 = extractelement <2 x double> %3515, i64 0
%3517 = fsub double %30, %57
%3518 = fmul double %3516, %3510
%3519 = tail call double @llvm.fmuladd.f64(double %3514, double %3507, double %3518)
%3520 = tail call double @llvm.fmuladd.f64(double %3517, double %3513, double %3519)
%3521 = fcmp ogt double %3520, 0.000000e+00
br i1 %3521, label %7621, label %3522
3522: ; preds = %3496
%3523 = fsub double %10, %41
%3524 = fsub <2 x double> %15, %45
%3525 = extractelement <2 x double> %3524, i64 1
%3526 = insertelement <2 x double> poison, double %3525, i64 0
%3527 = insertelement <2 x double> %3526, double %3523, i64 1
%3528 = fneg <2 x double> %3527
%3529 = fmul <2 x double> %107, %3528
%3530 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3524, <2 x double> %103, <2 x double> %3529)
%3531 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3530, <2 x double>* %3531
%3532 = extractelement <2 x double> %3524, i64 0
%3533 = fneg double %3532
%3534 = fmul double %114, %3533
%3535 = tail call double @llvm.fmuladd.f64(double %3523, double %99, double %3534)
store double %3535, double* %118
%3536 = fsub double %9, %41
%3537 = fsub <2 x double> %17, %45
%3538 = fsub double %21, %48
%3539 = shufflevector <2 x double> %3530, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3540 = fmul <2 x double> %3537, %3539
%3541 = extractelement <2 x double> %3540, i64 0
%3542 = extractelement <2 x double> %3530, i64 0
%3543 = tail call double @llvm.fmuladd.f64(double %3536, double %3542, double %3541)
%3544 = tail call double @llvm.fmuladd.f64(double %3538, double %3535, double %3543)
%3545 = fcmp ule double %3544, 0.000000e+00
%3546 = zext i1 %3545 to i32
br label %7621
3547: ; preds = %3494
%3548 = fsub double %41, %58
%3549 = fsub <2 x double> %45, %66
%3550 = extractelement <2 x double> %3549, i64 0
%3551 = fsub double %48, %70
%3552 = fneg double %126
%3553 = fmul double %3550, %3552
%3554 = tail call double @llvm.fmuladd.f64(double %121, double %3551, double %3553)
%3555 = fneg double %119
%3556 = fmul double %3551, %3555
%3557 = tail call double @llvm.fmuladd.f64(double %126, double %3548, double %3556)
%3558 = fneg double %121
%3559 = fmul double %3548, %3558
%3560 = tail call double @llvm.fmuladd.f64(double %119, double %3550, double %3559)
%3561 = fmul double %136, %3557
%3562 = extractelement <2 x double> %134, i64 1
%3563 = tail call double @llvm.fmuladd.f64(double %3562, double %3554, double %3561)
%3564 = tail call double @llvm.fmuladd.f64(double %142, double %3560, double %3563)
%3565 = fcmp ogt double %3564, 0.000000e+00
br i1 %3565, label %7621, label %3566
3566: ; preds = %3547
%3567 = fsub double %9, %41
%3568 = fsub <2 x double> %17, %45
%3569 = extractelement <2 x double> %3568, i64 1
%3570 = insertelement <2 x double> poison, double %3569, i64 0
%3571 = insertelement <2 x double> %3570, double %3567, i64 1
%3572 = fneg <2 x double> %3571
%3573 = fmul <2 x double> %110, %3572
%3574 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3568, <2 x double> %97, <2 x double> %3573)
%3575 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3574, <2 x double>* %3575
%3576 = extractelement <2 x double> %3568, i64 0
%3577 = fneg double %3576
%3578 = fmul double %116, %3577
%3579 = tail call double @llvm.fmuladd.f64(double %3567, double %93, double %3578)
store double %3579, double* %118
%3580 = fsub double %23, %41
%3581 = fsub <2 x double> %27, %45
%3582 = fsub double %30, %48
%3583 = shufflevector <2 x double> %3574, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3584 = fmul <2 x double> %3581, %3583
%3585 = extractelement <2 x double> %3584, i64 0
%3586 = extractelement <2 x double> %3574, i64 0
%3587 = tail call double @llvm.fmuladd.f64(double %3580, double %3586, double %3585)
%3588 = tail call double @llvm.fmuladd.f64(double %3582, double %3579, double %3587)
%3589 = fcmp ule double %3588, 0.000000e+00
%3590 = zext i1 %3589 to i32
br label %7621
3591: ; preds = %3439
br i1 %3441, label %3592, label %3690
3592: ; preds = %3591
%3593 = fcmp ult double %148, 0.000000e+00
br i1 %3593, label %3639, label %3594
3594: ; preds = %3592
%3595 = fsub double %41, %58
%3596 = fsub <2 x double> %45, %66
%3597 = extractelement <2 x double> %3596, i64 0
%3598 = fsub double %48, %70
%3599 = fneg double %142
%3600 = fmul double %3597, %3599
%3601 = tail call double @llvm.fmuladd.f64(double %136, double %3598, double %3600)
%3602 = extractelement <2 x double> %134, i64 1
%3603 = fneg double %3602
%3604 = fmul double %3598, %3603
%3605 = tail call double @llvm.fmuladd.f64(double %142, double %3595, double %3604)
%3606 = fneg double %136
%3607 = fmul double %3595, %3606
%3608 = tail call double @llvm.fmuladd.f64(double %3602, double %3597, double %3607)
%3609 = fmul double %129, %3605
%3610 = extractelement <2 x double> %134, i64 0
%3611 = tail call double @llvm.fmuladd.f64(double %3610, double %3601, double %3609)
%3612 = tail call double @llvm.fmuladd.f64(double %130, double %3608, double %3611)
%3613 = fcmp ogt double %3612, 0.000000e+00
br i1 %3613, label %7621, label %3614
3614: ; preds = %3594
%3615 = fsub double %10, %41
%3616 = fsub <2 x double> %15, %45
%3617 = extractelement <2 x double> %3616, i64 1
%3618 = insertelement <2 x double> poison, double %3617, i64 0
%3619 = insertelement <2 x double> %3618, double %3615, i64 1
%3620 = fneg <2 x double> %3619
%3621 = fmul <2 x double> %110, %3620
%3622 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3616, <2 x double> %97, <2 x double> %3621)
%3623 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3622, <2 x double>* %3623
%3624 = extractelement <2 x double> %3616, i64 0
%3625 = fneg double %3624
%3626 = fmul double %116, %3625
%3627 = tail call double @llvm.fmuladd.f64(double %3615, double %93, double %3626)
store double %3627, double* %118
%3628 = fsub double %9, %41
%3629 = fsub <2 x double> %17, %45
%3630 = fsub double %21, %48
%3631 = shufflevector <2 x double> %3622, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3632 = fmul <2 x double> %3629, %3631
%3633 = extractelement <2 x double> %3632, i64 0
%3634 = extractelement <2 x double> %3622, i64 0
%3635 = tail call double @llvm.fmuladd.f64(double %3628, double %3634, double %3633)
%3636 = tail call double @llvm.fmuladd.f64(double %3630, double %3627, double %3635)
%3637 = fcmp ule double %3636, 0.000000e+00
%3638 = zext i1 %3637 to i32
br label %7621
3639: ; preds = %3592
%3640 = fsub double %9, %53
%3641 = fsub <2 x double> %17, %56
%3642 = extractelement <2 x double> %3641, i64 0
%3643 = fsub double %21, %57
%3644 = fsub double %41, %53
%3645 = fsub <2 x double> %45, %56
%3646 = extractelement <2 x double> %3645, i64 0
%3647 = fsub double %48, %57
%3648 = fneg double %3643
%3649 = fmul double %3646, %3648
%3650 = tail call double @llvm.fmuladd.f64(double %3642, double %3647, double %3649)
%3651 = fneg double %3640
%3652 = fmul double %3647, %3651
%3653 = tail call double @llvm.fmuladd.f64(double %3643, double %3644, double %3652)
%3654 = fneg double %3642
%3655 = fmul double %3644, %3654
%3656 = tail call double @llvm.fmuladd.f64(double %3640, double %3646, double %3655)
%3657 = fsub double %10, %53
%3658 = fsub <2 x double> %15, %56
%3659 = extractelement <2 x double> %3658, i64 0
%3660 = fsub double %20, %57
%3661 = fmul double %3659, %3653
%3662 = tail call double @llvm.fmuladd.f64(double %3657, double %3650, double %3661)
%3663 = tail call double @llvm.fmuladd.f64(double %3660, double %3656, double %3662)
%3664 = fcmp ogt double %3663, 0.000000e+00
br i1 %3664, label %7621, label %3665
3665: ; preds = %3639
%3666 = fsub double %9, %41
%3667 = fsub <2 x double> %17, %45
%3668 = extractelement <2 x double> %3667, i64 1
%3669 = insertelement <2 x double> poison, double %3668, i64 0
%3670 = insertelement <2 x double> %3669, double %3666, i64 1
%3671 = fneg <2 x double> %3670
%3672 = fmul <2 x double> %107, %3671
%3673 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3667, <2 x double> %103, <2 x double> %3672)
%3674 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3673, <2 x double>* %3674
%3675 = extractelement <2 x double> %3667, i64 0
%3676 = fneg double %3675
%3677 = fmul double %114, %3676
%3678 = tail call double @llvm.fmuladd.f64(double %3666, double %99, double %3677)
store double %3678, double* %118
%3679 = fsub double %23, %41
%3680 = fsub <2 x double> %27, %45
%3681 = fsub double %30, %48
%3682 = shufflevector <2 x double> %3673, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3683 = fmul <2 x double> %3680, %3682
%3684 = extractelement <2 x double> %3683, i64 0
%3685 = extractelement <2 x double> %3673, i64 0
%3686 = tail call double @llvm.fmuladd.f64(double %3679, double %3685, double %3684)
%3687 = tail call double @llvm.fmuladd.f64(double %3681, double %3678, double %3686)
%3688 = fcmp ule double %3687, 0.000000e+00
%3689 = zext i1 %3688 to i32
br label %7621
3690: ; preds = %3591
%3691 = fcmp ogt double %151, 0.000000e+00
%3692 = fcmp ogt double %148, 0.000000e+00
br i1 %3691, label %3693, label %3789
3693: ; preds = %3690
br i1 %3692, label %3694, label %3738
3694: ; preds = %3693
%3695 = fsub double %41, %58
%3696 = fsub <2 x double> %45, %66
%3697 = extractelement <2 x double> %3696, i64 0
%3698 = fsub double %48, %70
%3699 = fneg double %126
%3700 = fmul double %3697, %3699
%3701 = tail call double @llvm.fmuladd.f64(double %121, double %3698, double %3700)
%3702 = fneg double %119
%3703 = fmul double %3698, %3702
%3704 = tail call double @llvm.fmuladd.f64(double %126, double %3695, double %3703)
%3705 = fneg double %121
%3706 = fmul double %3695, %3705
%3707 = tail call double @llvm.fmuladd.f64(double %119, double %3697, double %3706)
%3708 = fmul double %136, %3704
%3709 = extractelement <2 x double> %134, i64 1
%3710 = tail call double @llvm.fmuladd.f64(double %3709, double %3701, double %3708)
%3711 = tail call double @llvm.fmuladd.f64(double %142, double %3707, double %3710)
%3712 = fcmp ogt double %3711, 0.000000e+00
br i1 %3712, label %7621, label %3713
3713: ; preds = %3694
%3714 = fsub double %9, %41
%3715 = fsub <2 x double> %17, %45
%3716 = extractelement <2 x double> %3715, i64 1
%3717 = insertelement <2 x double> poison, double %3716, i64 0
%3718 = insertelement <2 x double> %3717, double %3714, i64 1
%3719 = fneg <2 x double> %3718
%3720 = fmul <2 x double> %110, %3719
%3721 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3715, <2 x double> %97, <2 x double> %3720)
%3722 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3721, <2 x double>* %3722
%3723 = extractelement <2 x double> %3715, i64 0
%3724 = fneg double %3723
%3725 = fmul double %116, %3724
%3726 = tail call double @llvm.fmuladd.f64(double %3714, double %93, double %3725)
store double %3726, double* %118
%3727 = fsub double %23, %41
%3728 = fsub <2 x double> %27, %45
%3729 = fsub double %30, %48
%3730 = shufflevector <2 x double> %3721, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3731 = fmul <2 x double> %3728, %3730
%3732 = extractelement <2 x double> %3731, i64 0
%3733 = extractelement <2 x double> %3721, i64 0
%3734 = tail call double @llvm.fmuladd.f64(double %3727, double %3733, double %3732)
%3735 = tail call double @llvm.fmuladd.f64(double %3729, double %3726, double %3734)
%3736 = fcmp ule double %3735, 0.000000e+00
%3737 = zext i1 %3736 to i32
br label %7621
3738: ; preds = %3693
%3739 = fsub double %10, %53
%3740 = fsub <2 x double> %15, %56
%3741 = extractelement <2 x double> %3740, i64 0
%3742 = fsub double %20, %57
%3743 = fsub double %41, %53
%3744 = fsub <2 x double> %45, %56
%3745 = extractelement <2 x double> %3744, i64 0
%3746 = fsub double %48, %57
%3747 = fneg double %3742
%3748 = fmul double %3745, %3747
%3749 = tail call double @llvm.fmuladd.f64(double %3741, double %3746, double %3748)
%3750 = fneg double %3739
%3751 = fmul double %3746, %3750
%3752 = tail call double @llvm.fmuladd.f64(double %3742, double %3743, double %3751)
%3753 = fneg double %3741
%3754 = fmul double %3743, %3753
%3755 = tail call double @llvm.fmuladd.f64(double %3739, double %3745, double %3754)
%3756 = fsub double %23, %53
%3757 = fsub <2 x double> %27, %56
%3758 = extractelement <2 x double> %3757, i64 0
%3759 = fsub double %30, %57
%3760 = fmul double %3758, %3752
%3761 = tail call double @llvm.fmuladd.f64(double %3756, double %3749, double %3760)
%3762 = tail call double @llvm.fmuladd.f64(double %3759, double %3755, double %3761)
%3763 = fcmp ogt double %3762, 0.000000e+00
br i1 %3763, label %7621, label %3764
3764: ; preds = %3738
%3765 = fsub double %10, %41
%3766 = fsub <2 x double> %15, %45
%3767 = extractelement <2 x double> %3766, i64 1
%3768 = insertelement <2 x double> poison, double %3767, i64 0
%3769 = insertelement <2 x double> %3768, double %3765, i64 1
%3770 = fneg <2 x double> %3769
%3771 = fmul <2 x double> %107, %3770
%3772 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3766, <2 x double> %103, <2 x double> %3771)
%3773 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3772, <2 x double>* %3773
%3774 = extractelement <2 x double> %3766, i64 0
%3775 = fneg double %3774
%3776 = fmul double %114, %3775
%3777 = tail call double @llvm.fmuladd.f64(double %3765, double %99, double %3776)
store double %3777, double* %118
%3778 = fsub double %9, %41
%3779 = fsub <2 x double> %17, %45
%3780 = fsub double %21, %48
%3781 = shufflevector <2 x double> %3772, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3782 = fmul <2 x double> %3779, %3781
%3783 = extractelement <2 x double> %3782, i64 0
%3784 = extractelement <2 x double> %3772, i64 0
%3785 = tail call double @llvm.fmuladd.f64(double %3778, double %3784, double %3783)
%3786 = tail call double @llvm.fmuladd.f64(double %3780, double %3777, double %3785)
%3787 = fcmp ule double %3786, 0.000000e+00
%3788 = zext i1 %3787 to i32
br label %7621
3789: ; preds = %3690
br i1 %3692, label %3790, label %3841
3790: ; preds = %3789
%3791 = fsub double %23, %53
%3792 = fsub <2 x double> %27, %56
%3793 = extractelement <2 x double> %3792, i64 0
%3794 = fsub double %30, %57
%3795 = fsub double %41, %53
%3796 = fsub <2 x double> %45, %56
%3797 = extractelement <2 x double> %3796, i64 0
%3798 = fsub double %48, %57
%3799 = fneg double %3794
%3800 = fmul double %3797, %3799
%3801 = tail call double @llvm.fmuladd.f64(double %3793, double %3798, double %3800)
%3802 = fneg double %3791
%3803 = fmul double %3798, %3802
%3804 = tail call double @llvm.fmuladd.f64(double %3794, double %3795, double %3803)
%3805 = fneg double %3793
%3806 = fmul double %3795, %3805
%3807 = tail call double @llvm.fmuladd.f64(double %3791, double %3797, double %3806)
%3808 = fsub double %9, %53
%3809 = fsub <2 x double> %17, %56
%3810 = extractelement <2 x double> %3809, i64 0
%3811 = fsub double %21, %57
%3812 = fmul double %3810, %3804
%3813 = tail call double @llvm.fmuladd.f64(double %3808, double %3801, double %3812)
%3814 = tail call double @llvm.fmuladd.f64(double %3811, double %3807, double %3813)
%3815 = fcmp ogt double %3814, 0.000000e+00
br i1 %3815, label %7621, label %3816
3816: ; preds = %3790
%3817 = fsub double %23, %41
%3818 = fsub <2 x double> %27, %45
%3819 = extractelement <2 x double> %3818, i64 1
%3820 = insertelement <2 x double> poison, double %3819, i64 0
%3821 = insertelement <2 x double> %3820, double %3817, i64 1
%3822 = fneg <2 x double> %3821
%3823 = fmul <2 x double> %107, %3822
%3824 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3818, <2 x double> %103, <2 x double> %3823)
%3825 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3824, <2 x double>* %3825
%3826 = extractelement <2 x double> %3818, i64 0
%3827 = fneg double %3826
%3828 = fmul double %114, %3827
%3829 = tail call double @llvm.fmuladd.f64(double %3817, double %99, double %3828)
store double %3829, double* %118
%3830 = fsub double %10, %41
%3831 = fsub <2 x double> %15, %45
%3832 = fsub double %20, %48
%3833 = shufflevector <2 x double> %3824, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3834 = fmul <2 x double> %3831, %3833
%3835 = extractelement <2 x double> %3834, i64 0
%3836 = extractelement <2 x double> %3824, i64 0
%3837 = tail call double @llvm.fmuladd.f64(double %3830, double %3836, double %3835)
%3838 = tail call double @llvm.fmuladd.f64(double %3832, double %3829, double %3837)
%3839 = fcmp ule double %3838, 0.000000e+00
%3840 = zext i1 %3839 to i32
br label %7621
3841: ; preds = %3789
%3842 = fcmp olt double %148, 0.000000e+00
br i1 %3842, label %3843, label %3887
3843: ; preds = %3841
%3844 = fsub double %41, %58
%3845 = fsub <2 x double> %45, %66
%3846 = extractelement <2 x double> %3845, i64 0
%3847 = fsub double %48, %70
%3848 = fneg double %130
%3849 = fmul double %3846, %3848
%3850 = tail call double @llvm.fmuladd.f64(double %129, double %3847, double %3849)
%3851 = extractelement <2 x double> %134, i64 0
%3852 = fneg double %3851
%3853 = fmul double %3847, %3852
%3854 = tail call double @llvm.fmuladd.f64(double %130, double %3844, double %3853)
%3855 = fneg double %129
%3856 = fmul double %3844, %3855
%3857 = tail call double @llvm.fmuladd.f64(double %3851, double %3846, double %3856)
%3858 = fmul double %121, %3854
%3859 = tail call double @llvm.fmuladd.f64(double %119, double %3850, double %3858)
%3860 = tail call double @llvm.fmuladd.f64(double %126, double %3857, double %3859)
%3861 = fcmp ogt double %3860, 0.000000e+00
br i1 %3861, label %7621, label %3862
3862: ; preds = %3843
%3863 = fsub double %23, %41
%3864 = fsub <2 x double> %27, %45
%3865 = extractelement <2 x double> %3864, i64 1
%3866 = insertelement <2 x double> poison, double %3865, i64 0
%3867 = insertelement <2 x double> %3866, double %3863, i64 1
%3868 = fneg <2 x double> %3867
%3869 = fmul <2 x double> %110, %3868
%3870 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3864, <2 x double> %97, <2 x double> %3869)
%3871 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3870, <2 x double>* %3871
%3872 = extractelement <2 x double> %3864, i64 0
%3873 = fneg double %3872
%3874 = fmul double %116, %3873
%3875 = tail call double @llvm.fmuladd.f64(double %3863, double %93, double %3874)
store double %3875, double* %118
%3876 = fsub double %10, %41
%3877 = fsub <2 x double> %15, %45
%3878 = fsub double %20, %48
%3879 = shufflevector <2 x double> %3870, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3880 = fmul <2 x double> %3877, %3879
%3881 = extractelement <2 x double> %3880, i64 0
%3882 = extractelement <2 x double> %3870, i64 0
%3883 = tail call double @llvm.fmuladd.f64(double %3876, double %3882, double %3881)
%3884 = tail call double @llvm.fmuladd.f64(double %3878, double %3875, double %3883)
%3885 = fcmp ule double %3884, 0.000000e+00
%3886 = zext i1 %3885 to i32
br label %7621
3887: ; preds = %3841
%3888 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %0, double* %1, double* %2, double* %3, double* %5, double* %4, double* %104)
br label %7621
3889: ; preds = %2024
br i1 %2026, label %3890, label %5143
3890: ; preds = %3889
%3891 = fcmp ult double %87, 0.000000e+00
%3892 = fcmp ogt double %127, 0.000000e+00
br i1 %3891, label %4548, label %3893
3893: ; preds = %3890
br i1 %3892, label %3894, label %4057
3894: ; preds = %3893
%3895 = fcmp ogt double %151, 0.000000e+00
br i1 %3895, label %3896, label %3950
3896: ; preds = %3894
%3897 = fsub double %23, %41
%3898 = fsub <2 x double> %27, %45
%3899 = extractelement <2 x double> %3898, i64 0
%3900 = fsub double %30, %48
%3901 = fneg double %3900
%3902 = fmul double %93, %3901
%3903 = tail call double @llvm.fmuladd.f64(double %3899, double %109, double %3902)
%3904 = fneg double %3897
%3905 = fmul double %109, %3904
%3906 = tail call double @llvm.fmuladd.f64(double %3900, double %116, double %3905)
%3907 = fneg double %3899
%3908 = fmul double %116, %3907
%3909 = tail call double @llvm.fmuladd.f64(double %3897, double %93, double %3908)
%3910 = fsub double %9, %41
%3911 = fsub <2 x double> %17, %45
%3912 = extractelement <2 x double> %3911, i64 0
%3913 = fsub double %21, %48
%3914 = fmul double %3912, %3906
%3915 = tail call double @llvm.fmuladd.f64(double %3910, double %3903, double %3914)
%3916 = tail call double @llvm.fmuladd.f64(double %3913, double %3909, double %3915)
%3917 = fcmp ogt double %3916, 0.000000e+00
br i1 %3917, label %7621, label %3918
3918: ; preds = %3896
%3919 = fsub double %23, %53
%3920 = fsub <2 x double> %27, %56
%3921 = fsub <2 x double> %66, %56
%3922 = extractelement <2 x double> %3921, i64 0
%3923 = insertelement <2 x double> poison, double %57, i64 0
%3924 = insertelement <2 x double> %3923, double %53, i64 1
%3925 = fsub <2 x double> %100, %3924
%3926 = extractelement <2 x double> %3920, i64 1
%3927 = insertelement <2 x double> poison, double %3926, i64 0
%3928 = insertelement <2 x double> %3927, double %3919, i64 1
%3929 = fneg <2 x double> %3928
%3930 = shufflevector <2 x double> %3921, <2 x double> %3925, <2 x i32> <i32 0, i32 2>
%3931 = fmul <2 x double> %3930, %3929
%3932 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3920, <2 x double> %3925, <2 x double> %3931)
%3933 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3932, <2 x double>* %3933
%3934 = extractelement <2 x double> %3920, i64 0
%3935 = fneg double %3934
%3936 = extractelement <2 x double> %3925, i64 1
%3937 = fmul double %3936, %3935
%3938 = tail call double @llvm.fmuladd.f64(double %3919, double %3922, double %3937)
store double %3938, double* %118
%3939 = fsub double %10, %53
%3940 = fsub <2 x double> %15, %56
%3941 = fsub double %20, %57
%3942 = shufflevector <2 x double> %3932, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3943 = fmul <2 x double> %3940, %3942
%3944 = extractelement <2 x double> %3943, i64 0
%3945 = extractelement <2 x double> %3932, i64 0
%3946 = tail call double @llvm.fmuladd.f64(double %3939, double %3945, double %3944)
%3947 = tail call double @llvm.fmuladd.f64(double %3941, double %3938, double %3946)
%3948 = fcmp ule double %3947, 0.000000e+00
%3949 = zext i1 %3948 to i32
br label %7621
3950: ; preds = %3894
%3951 = fcmp ogt double %148, 0.000000e+00
br i1 %3951, label %3952, label %4006
3952: ; preds = %3950
%3953 = fsub double %10, %41
%3954 = fsub <2 x double> %15, %45
%3955 = extractelement <2 x double> %3954, i64 0
%3956 = fsub double %20, %48
%3957 = fneg double %3956
%3958 = fmul double %93, %3957
%3959 = tail call double @llvm.fmuladd.f64(double %3955, double %109, double %3958)
%3960 = fneg double %3953
%3961 = fmul double %109, %3960
%3962 = tail call double @llvm.fmuladd.f64(double %3956, double %116, double %3961)
%3963 = fneg double %3955
%3964 = fmul double %116, %3963
%3965 = tail call double @llvm.fmuladd.f64(double %3953, double %93, double %3964)
%3966 = fsub double %23, %41
%3967 = fsub <2 x double> %27, %45
%3968 = extractelement <2 x double> %3967, i64 0
%3969 = fsub double %30, %48
%3970 = fmul double %3968, %3962
%3971 = tail call double @llvm.fmuladd.f64(double %3966, double %3959, double %3970)
%3972 = tail call double @llvm.fmuladd.f64(double %3969, double %3965, double %3971)
%3973 = fcmp ogt double %3972, 0.000000e+00
br i1 %3973, label %7621, label %3974
3974: ; preds = %3952
%3975 = fsub double %10, %53
%3976 = fsub <2 x double> %15, %56
%3977 = fsub <2 x double> %66, %56
%3978 = extractelement <2 x double> %3977, i64 0
%3979 = insertelement <2 x double> poison, double %57, i64 0
%3980 = insertelement <2 x double> %3979, double %53, i64 1
%3981 = fsub <2 x double> %100, %3980
%3982 = extractelement <2 x double> %3976, i64 1
%3983 = insertelement <2 x double> poison, double %3982, i64 0
%3984 = insertelement <2 x double> %3983, double %3975, i64 1
%3985 = fneg <2 x double> %3984
%3986 = shufflevector <2 x double> %3977, <2 x double> %3981, <2 x i32> <i32 0, i32 2>
%3987 = fmul <2 x double> %3986, %3985
%3988 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %3976, <2 x double> %3981, <2 x double> %3987)
%3989 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %3988, <2 x double>* %3989
%3990 = extractelement <2 x double> %3976, i64 0
%3991 = fneg double %3990
%3992 = extractelement <2 x double> %3981, i64 1
%3993 = fmul double %3992, %3991
%3994 = tail call double @llvm.fmuladd.f64(double %3975, double %3978, double %3993)
store double %3994, double* %118
%3995 = fsub double %9, %53
%3996 = fsub <2 x double> %17, %56
%3997 = fsub double %21, %57
%3998 = shufflevector <2 x double> %3988, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%3999 = fmul <2 x double> %3996, %3998
%4000 = extractelement <2 x double> %3999, i64 0
%4001 = extractelement <2 x double> %3988, i64 0
%4002 = tail call double @llvm.fmuladd.f64(double %3995, double %4001, double %4000)
%4003 = tail call double @llvm.fmuladd.f64(double %3997, double %3994, double %4002)
%4004 = fcmp ule double %4003, 0.000000e+00
%4005 = zext i1 %4004 to i32
br label %7621
4006: ; preds = %3950
%4007 = fsub double %53, %58
%4008 = fsub <2 x double> %56, %66
%4009 = extractelement <2 x double> %4008, i64 0
%4010 = fsub double %57, %70
%4011 = fneg double %126
%4012 = fmul double %4009, %4011
%4013 = tail call double @llvm.fmuladd.f64(double %121, double %4010, double %4012)
%4014 = fneg double %119
%4015 = fmul double %4010, %4014
%4016 = tail call double @llvm.fmuladd.f64(double %126, double %4007, double %4015)
%4017 = fneg double %121
%4018 = fmul double %4007, %4017
%4019 = tail call double @llvm.fmuladd.f64(double %119, double %4009, double %4018)
%4020 = fmul double %136, %4016
%4021 = extractelement <2 x double> %134, i64 1
%4022 = tail call double @llvm.fmuladd.f64(double %4021, double %4013, double %4020)
%4023 = tail call double @llvm.fmuladd.f64(double %142, double %4019, double %4022)
%4024 = fcmp ogt double %4023, 0.000000e+00
br i1 %4024, label %7621, label %4025
4025: ; preds = %4006
%4026 = fsub double %9, %53
%4027 = fsub <2 x double> %17, %56
%4028 = fsub <2 x double> %45, %56
%4029 = extractelement <2 x double> %4028, i64 0
%4030 = insertelement <2 x double> poison, double %57, i64 0
%4031 = insertelement <2 x double> %4030, double %53, i64 1
%4032 = fsub <2 x double> %102, %4031
%4033 = extractelement <2 x double> %4027, i64 1
%4034 = insertelement <2 x double> poison, double %4033, i64 0
%4035 = insertelement <2 x double> %4034, double %4026, i64 1
%4036 = fneg <2 x double> %4035
%4037 = shufflevector <2 x double> %4028, <2 x double> %4032, <2 x i32> <i32 0, i32 2>
%4038 = fmul <2 x double> %4037, %4036
%4039 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4027, <2 x double> %4032, <2 x double> %4038)
%4040 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4039, <2 x double>* %4040
%4041 = extractelement <2 x double> %4027, i64 0
%4042 = fneg double %4041
%4043 = extractelement <2 x double> %4032, i64 1
%4044 = fmul double %4043, %4042
%4045 = tail call double @llvm.fmuladd.f64(double %4026, double %4029, double %4044)
store double %4045, double* %118
%4046 = fsub double %23, %53
%4047 = fsub <2 x double> %27, %56
%4048 = fsub double %30, %57
%4049 = shufflevector <2 x double> %4039, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4050 = fmul <2 x double> %4047, %4049
%4051 = extractelement <2 x double> %4050, i64 0
%4052 = extractelement <2 x double> %4039, i64 0
%4053 = tail call double @llvm.fmuladd.f64(double %4046, double %4052, double %4051)
%4054 = tail call double @llvm.fmuladd.f64(double %4048, double %4045, double %4053)
%4055 = fcmp ule double %4054, 0.000000e+00
%4056 = zext i1 %4055 to i32
br label %7621
4057: ; preds = %3893
%4058 = fcmp olt double %127, 0.000000e+00
%4059 = fcmp olt double %151, 0.000000e+00
br i1 %4058, label %4060, label %4220
4060: ; preds = %4057
br i1 %4059, label %4061, label %4112
4061: ; preds = %4060
%4062 = fsub double %53, %58
%4063 = fsub <2 x double> %56, %66
%4064 = extractelement <2 x double> %4063, i64 0
%4065 = fsub double %57, %70
%4066 = fneg double %130
%4067 = fmul double %4064, %4066
%4068 = tail call double @llvm.fmuladd.f64(double %129, double %4065, double %4067)
%4069 = extractelement <2 x double> %134, i64 0
%4070 = fneg double %4069
%4071 = fmul double %4065, %4070
%4072 = tail call double @llvm.fmuladd.f64(double %130, double %4062, double %4071)
%4073 = fneg double %129
%4074 = fmul double %4062, %4073
%4075 = tail call double @llvm.fmuladd.f64(double %4069, double %4064, double %4074)
%4076 = fmul double %121, %4072
%4077 = tail call double @llvm.fmuladd.f64(double %119, double %4068, double %4076)
%4078 = tail call double @llvm.fmuladd.f64(double %126, double %4075, double %4077)
%4079 = fcmp ogt double %4078, 0.000000e+00
br i1 %4079, label %7621, label %4080
4080: ; preds = %4061
%4081 = fsub double %23, %53
%4082 = fsub <2 x double> %27, %56
%4083 = fsub <2 x double> %45, %56
%4084 = extractelement <2 x double> %4083, i64 0
%4085 = insertelement <2 x double> poison, double %57, i64 0
%4086 = insertelement <2 x double> %4085, double %53, i64 1
%4087 = fsub <2 x double> %102, %4086
%4088 = extractelement <2 x double> %4082, i64 1
%4089 = insertelement <2 x double> poison, double %4088, i64 0
%4090 = insertelement <2 x double> %4089, double %4081, i64 1
%4091 = fneg <2 x double> %4090
%4092 = shufflevector <2 x double> %4083, <2 x double> %4087, <2 x i32> <i32 0, i32 2>
%4093 = fmul <2 x double> %4092, %4091
%4094 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4082, <2 x double> %4087, <2 x double> %4093)
%4095 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4094, <2 x double>* %4095
%4096 = extractelement <2 x double> %4082, i64 0
%4097 = fneg double %4096
%4098 = extractelement <2 x double> %4087, i64 1
%4099 = fmul double %4098, %4097
%4100 = tail call double @llvm.fmuladd.f64(double %4081, double %4084, double %4099)
store double %4100, double* %118
%4101 = fsub double %10, %53
%4102 = fsub <2 x double> %15, %56
%4103 = fsub double %20, %57
%4104 = shufflevector <2 x double> %4094, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4105 = fmul <2 x double> %4102, %4104
%4106 = extractelement <2 x double> %4105, i64 0
%4107 = extractelement <2 x double> %4094, i64 0
%4108 = tail call double @llvm.fmuladd.f64(double %4101, double %4107, double %4106)
%4109 = tail call double @llvm.fmuladd.f64(double %4103, double %4100, double %4108)
%4110 = fcmp ule double %4109, 0.000000e+00
%4111 = zext i1 %4110 to i32
br label %7621
4112: ; preds = %4060
%4113 = fcmp olt double %148, 0.000000e+00
br i1 %4113, label %4114, label %4166
4114: ; preds = %4112
%4115 = fsub double %53, %58
%4116 = fsub <2 x double> %56, %66
%4117 = extractelement <2 x double> %4116, i64 0
%4118 = fsub double %57, %70
%4119 = fneg double %142
%4120 = fmul double %4117, %4119
%4121 = tail call double @llvm.fmuladd.f64(double %136, double %4118, double %4120)
%4122 = extractelement <2 x double> %134, i64 1
%4123 = fneg double %4122
%4124 = fmul double %4118, %4123
%4125 = tail call double @llvm.fmuladd.f64(double %142, double %4115, double %4124)
%4126 = fneg double %136
%4127 = fmul double %4115, %4126
%4128 = tail call double @llvm.fmuladd.f64(double %4122, double %4117, double %4127)
%4129 = fmul double %129, %4125
%4130 = extractelement <2 x double> %134, i64 0
%4131 = tail call double @llvm.fmuladd.f64(double %4130, double %4121, double %4129)
%4132 = tail call double @llvm.fmuladd.f64(double %130, double %4128, double %4131)
%4133 = fcmp ogt double %4132, 0.000000e+00
br i1 %4133, label %7621, label %4134
4134: ; preds = %4114
%4135 = fsub double %10, %53
%4136 = fsub <2 x double> %15, %56
%4137 = fsub <2 x double> %45, %56
%4138 = extractelement <2 x double> %4137, i64 0
%4139 = insertelement <2 x double> poison, double %57, i64 0
%4140 = insertelement <2 x double> %4139, double %53, i64 1
%4141 = fsub <2 x double> %102, %4140
%4142 = extractelement <2 x double> %4136, i64 1
%4143 = insertelement <2 x double> poison, double %4142, i64 0
%4144 = insertelement <2 x double> %4143, double %4135, i64 1
%4145 = fneg <2 x double> %4144
%4146 = shufflevector <2 x double> %4137, <2 x double> %4141, <2 x i32> <i32 0, i32 2>
%4147 = fmul <2 x double> %4146, %4145
%4148 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4136, <2 x double> %4141, <2 x double> %4147)
%4149 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4148, <2 x double>* %4149
%4150 = extractelement <2 x double> %4136, i64 0
%4151 = fneg double %4150
%4152 = extractelement <2 x double> %4141, i64 1
%4153 = fmul double %4152, %4151
%4154 = tail call double @llvm.fmuladd.f64(double %4135, double %4138, double %4153)
store double %4154, double* %118
%4155 = fsub double %9, %53
%4156 = fsub <2 x double> %17, %56
%4157 = fsub double %21, %57
%4158 = shufflevector <2 x double> %4148, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4159 = fmul <2 x double> %4156, %4158
%4160 = extractelement <2 x double> %4159, i64 0
%4161 = extractelement <2 x double> %4148, i64 0
%4162 = tail call double @llvm.fmuladd.f64(double %4155, double %4161, double %4160)
%4163 = tail call double @llvm.fmuladd.f64(double %4157, double %4154, double %4162)
%4164 = fcmp ule double %4163, 0.000000e+00
%4165 = zext i1 %4164 to i32
br label %7621
4166: ; preds = %4112
%4167 = fsub double %9, %41
%4168 = fsub <2 x double> %17, %45
%4169 = extractelement <2 x double> %4168, i64 0
%4170 = fsub double %21, %48
%4171 = fneg double %4170
%4172 = fmul double %93, %4171
%4173 = tail call double @llvm.fmuladd.f64(double %4169, double %109, double %4172)
%4174 = fneg double %4167
%4175 = fmul double %109, %4174
%4176 = tail call double @llvm.fmuladd.f64(double %4170, double %116, double %4175)
%4177 = fneg double %4169
%4178 = fmul double %116, %4177
%4179 = tail call double @llvm.fmuladd.f64(double %4167, double %93, double %4178)
%4180 = fsub double %10, %41
%4181 = fsub <2 x double> %15, %45
%4182 = extractelement <2 x double> %4181, i64 0
%4183 = fsub double %20, %48
%4184 = fmul double %4182, %4176
%4185 = tail call double @llvm.fmuladd.f64(double %4180, double %4173, double %4184)
%4186 = tail call double @llvm.fmuladd.f64(double %4183, double %4179, double %4185)
%4187 = fcmp ogt double %4186, 0.000000e+00
br i1 %4187, label %7621, label %4188
4188: ; preds = %4166
%4189 = fsub double %9, %53
%4190 = fsub <2 x double> %17, %56
%4191 = fsub <2 x double> %66, %56
%4192 = extractelement <2 x double> %4191, i64 0
%4193 = insertelement <2 x double> poison, double %57, i64 0
%4194 = insertelement <2 x double> %4193, double %53, i64 1
%4195 = fsub <2 x double> %100, %4194
%4196 = extractelement <2 x double> %4190, i64 1
%4197 = insertelement <2 x double> poison, double %4196, i64 0
%4198 = insertelement <2 x double> %4197, double %4189, i64 1
%4199 = fneg <2 x double> %4198
%4200 = shufflevector <2 x double> %4191, <2 x double> %4195, <2 x i32> <i32 0, i32 2>
%4201 = fmul <2 x double> %4200, %4199
%4202 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4190, <2 x double> %4195, <2 x double> %4201)
%4203 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4202, <2 x double>* %4203
%4204 = extractelement <2 x double> %4190, i64 0
%4205 = fneg double %4204
%4206 = extractelement <2 x double> %4195, i64 1
%4207 = fmul double %4206, %4205
%4208 = tail call double @llvm.fmuladd.f64(double %4189, double %4192, double %4207)
store double %4208, double* %118
%4209 = fsub double %23, %53
%4210 = fsub <2 x double> %27, %56
%4211 = fsub double %30, %57
%4212 = shufflevector <2 x double> %4202, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4213 = fmul <2 x double> %4210, %4212
%4214 = extractelement <2 x double> %4213, i64 0
%4215 = extractelement <2 x double> %4202, i64 0
%4216 = tail call double @llvm.fmuladd.f64(double %4209, double %4215, double %4214)
%4217 = tail call double @llvm.fmuladd.f64(double %4211, double %4208, double %4216)
%4218 = fcmp ule double %4217, 0.000000e+00
%4219 = zext i1 %4218 to i32
br label %7621
4220: ; preds = %4057
br i1 %4059, label %4221, label %4328
4221: ; preds = %4220
%4222 = fcmp ult double %148, 0.000000e+00
br i1 %4222, label %4277, label %4223
4223: ; preds = %4221
%4224 = fsub double %10, %41
%4225 = fsub <2 x double> %15, %45
%4226 = extractelement <2 x double> %4225, i64 0
%4227 = fsub double %20, %48
%4228 = fneg double %4227
%4229 = fmul double %93, %4228
%4230 = tail call double @llvm.fmuladd.f64(double %4226, double %109, double %4229)
%4231 = fneg double %4224
%4232 = fmul double %109, %4231
%4233 = tail call double @llvm.fmuladd.f64(double %4227, double %116, double %4232)
%4234 = fneg double %4226
%4235 = fmul double %116, %4234
%4236 = tail call double @llvm.fmuladd.f64(double %4224, double %93, double %4235)
%4237 = fsub double %23, %41
%4238 = fsub <2 x double> %27, %45
%4239 = extractelement <2 x double> %4238, i64 0
%4240 = fsub double %30, %48
%4241 = fmul double %4239, %4233
%4242 = tail call double @llvm.fmuladd.f64(double %4237, double %4230, double %4241)
%4243 = tail call double @llvm.fmuladd.f64(double %4240, double %4236, double %4242)
%4244 = fcmp ogt double %4243, 0.000000e+00
br i1 %4244, label %7621, label %4245
4245: ; preds = %4223
%4246 = fsub double %10, %53
%4247 = fsub <2 x double> %15, %56
%4248 = fsub <2 x double> %66, %56
%4249 = extractelement <2 x double> %4248, i64 0
%4250 = insertelement <2 x double> poison, double %57, i64 0
%4251 = insertelement <2 x double> %4250, double %53, i64 1
%4252 = fsub <2 x double> %100, %4251
%4253 = extractelement <2 x double> %4247, i64 1
%4254 = insertelement <2 x double> poison, double %4253, i64 0
%4255 = insertelement <2 x double> %4254, double %4246, i64 1
%4256 = fneg <2 x double> %4255
%4257 = shufflevector <2 x double> %4248, <2 x double> %4252, <2 x i32> <i32 0, i32 2>
%4258 = fmul <2 x double> %4257, %4256
%4259 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4247, <2 x double> %4252, <2 x double> %4258)
%4260 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4259, <2 x double>* %4260
%4261 = extractelement <2 x double> %4247, i64 0
%4262 = fneg double %4261
%4263 = extractelement <2 x double> %4252, i64 1
%4264 = fmul double %4263, %4262
%4265 = tail call double @llvm.fmuladd.f64(double %4246, double %4249, double %4264)
store double %4265, double* %118
%4266 = fsub double %9, %53
%4267 = fsub <2 x double> %17, %56
%4268 = fsub double %21, %57
%4269 = shufflevector <2 x double> %4259, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4270 = fmul <2 x double> %4267, %4269
%4271 = extractelement <2 x double> %4270, i64 0
%4272 = extractelement <2 x double> %4259, i64 0
%4273 = tail call double @llvm.fmuladd.f64(double %4266, double %4272, double %4271)
%4274 = tail call double @llvm.fmuladd.f64(double %4268, double %4265, double %4273)
%4275 = fcmp ule double %4274, 0.000000e+00
%4276 = zext i1 %4275 to i32
br label %7621
4277: ; preds = %4221
%4278 = fsub double %53, %58
%4279 = fsub <2 x double> %56, %66
%4280 = extractelement <2 x double> %4279, i64 0
%4281 = fsub double %57, %70
%4282 = fneg double %126
%4283 = fmul double %4280, %4282
%4284 = tail call double @llvm.fmuladd.f64(double %121, double %4281, double %4283)
%4285 = fneg double %119
%4286 = fmul double %4281, %4285
%4287 = tail call double @llvm.fmuladd.f64(double %126, double %4278, double %4286)
%4288 = fneg double %121
%4289 = fmul double %4278, %4288
%4290 = tail call double @llvm.fmuladd.f64(double %119, double %4280, double %4289)
%4291 = fmul double %136, %4287
%4292 = extractelement <2 x double> %134, i64 1
%4293 = tail call double @llvm.fmuladd.f64(double %4292, double %4284, double %4291)
%4294 = tail call double @llvm.fmuladd.f64(double %142, double %4290, double %4293)
%4295 = fcmp ogt double %4294, 0.000000e+00
br i1 %4295, label %7621, label %4296
4296: ; preds = %4277
%4297 = fsub double %9, %53
%4298 = fsub <2 x double> %17, %56
%4299 = fsub <2 x double> %45, %56
%4300 = extractelement <2 x double> %4299, i64 0
%4301 = insertelement <2 x double> poison, double %57, i64 0
%4302 = insertelement <2 x double> %4301, double %53, i64 1
%4303 = fsub <2 x double> %102, %4302
%4304 = extractelement <2 x double> %4298, i64 1
%4305 = insertelement <2 x double> poison, double %4304, i64 0
%4306 = insertelement <2 x double> %4305, double %4297, i64 1
%4307 = fneg <2 x double> %4306
%4308 = shufflevector <2 x double> %4299, <2 x double> %4303, <2 x i32> <i32 0, i32 2>
%4309 = fmul <2 x double> %4308, %4307
%4310 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4298, <2 x double> %4303, <2 x double> %4309)
%4311 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4310, <2 x double>* %4311
%4312 = extractelement <2 x double> %4298, i64 0
%4313 = fneg double %4312
%4314 = extractelement <2 x double> %4303, i64 1
%4315 = fmul double %4314, %4313
%4316 = tail call double @llvm.fmuladd.f64(double %4297, double %4300, double %4315)
store double %4316, double* %118
%4317 = fsub double %23, %53
%4318 = fsub <2 x double> %27, %56
%4319 = fsub double %30, %57
%4320 = shufflevector <2 x double> %4310, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4321 = fmul <2 x double> %4318, %4320
%4322 = extractelement <2 x double> %4321, i64 0
%4323 = extractelement <2 x double> %4310, i64 0
%4324 = tail call double @llvm.fmuladd.f64(double %4317, double %4323, double %4322)
%4325 = tail call double @llvm.fmuladd.f64(double %4319, double %4316, double %4324)
%4326 = fcmp ule double %4325, 0.000000e+00
%4327 = zext i1 %4326 to i32
br label %7621
4328: ; preds = %4220
%4329 = fcmp ogt double %151, 0.000000e+00
%4330 = fcmp ogt double %148, 0.000000e+00
br i1 %4329, label %4331, label %4438
4331: ; preds = %4328
br i1 %4330, label %4332, label %4386
4332: ; preds = %4331
%4333 = fsub double %9, %41
%4334 = fsub <2 x double> %17, %45
%4335 = extractelement <2 x double> %4334, i64 0
%4336 = fsub double %21, %48
%4337 = fneg double %4336
%4338 = fmul double %93, %4337
%4339 = tail call double @llvm.fmuladd.f64(double %4335, double %109, double %4338)
%4340 = fneg double %4333
%4341 = fmul double %109, %4340
%4342 = tail call double @llvm.fmuladd.f64(double %4336, double %116, double %4341)
%4343 = fneg double %4335
%4344 = fmul double %116, %4343
%4345 = tail call double @llvm.fmuladd.f64(double %4333, double %93, double %4344)
%4346 = fsub double %10, %41
%4347 = fsub <2 x double> %15, %45
%4348 = extractelement <2 x double> %4347, i64 0
%4349 = fsub double %20, %48
%4350 = fmul double %4348, %4342
%4351 = tail call double @llvm.fmuladd.f64(double %4346, double %4339, double %4350)
%4352 = tail call double @llvm.fmuladd.f64(double %4349, double %4345, double %4351)
%4353 = fcmp ogt double %4352, 0.000000e+00
br i1 %4353, label %7621, label %4354
4354: ; preds = %4332
%4355 = fsub double %9, %53
%4356 = fsub <2 x double> %17, %56
%4357 = fsub <2 x double> %66, %56
%4358 = extractelement <2 x double> %4357, i64 0
%4359 = insertelement <2 x double> poison, double %57, i64 0
%4360 = insertelement <2 x double> %4359, double %53, i64 1
%4361 = fsub <2 x double> %100, %4360
%4362 = extractelement <2 x double> %4356, i64 1
%4363 = insertelement <2 x double> poison, double %4362, i64 0
%4364 = insertelement <2 x double> %4363, double %4355, i64 1
%4365 = fneg <2 x double> %4364
%4366 = shufflevector <2 x double> %4357, <2 x double> %4361, <2 x i32> <i32 0, i32 2>
%4367 = fmul <2 x double> %4366, %4365
%4368 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4356, <2 x double> %4361, <2 x double> %4367)
%4369 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4368, <2 x double>* %4369
%4370 = extractelement <2 x double> %4356, i64 0
%4371 = fneg double %4370
%4372 = extractelement <2 x double> %4361, i64 1
%4373 = fmul double %4372, %4371
%4374 = tail call double @llvm.fmuladd.f64(double %4355, double %4358, double %4373)
store double %4374, double* %118
%4375 = fsub double %23, %53
%4376 = fsub <2 x double> %27, %56
%4377 = fsub double %30, %57
%4378 = shufflevector <2 x double> %4368, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4379 = fmul <2 x double> %4376, %4378
%4380 = extractelement <2 x double> %4379, i64 0
%4381 = extractelement <2 x double> %4368, i64 0
%4382 = tail call double @llvm.fmuladd.f64(double %4375, double %4381, double %4380)
%4383 = tail call double @llvm.fmuladd.f64(double %4377, double %4374, double %4382)
%4384 = fcmp ule double %4383, 0.000000e+00
%4385 = zext i1 %4384 to i32
br label %7621
4386: ; preds = %4331
%4387 = fsub double %53, %58
%4388 = fsub <2 x double> %56, %66
%4389 = extractelement <2 x double> %4388, i64 0
%4390 = fsub double %57, %70
%4391 = fneg double %142
%4392 = fmul double %4389, %4391
%4393 = tail call double @llvm.fmuladd.f64(double %136, double %4390, double %4392)
%4394 = extractelement <2 x double> %134, i64 1
%4395 = fneg double %4394
%4396 = fmul double %4390, %4395
%4397 = tail call double @llvm.fmuladd.f64(double %142, double %4387, double %4396)
%4398 = fneg double %136
%4399 = fmul double %4387, %4398
%4400 = tail call double @llvm.fmuladd.f64(double %4394, double %4389, double %4399)
%4401 = fmul double %129, %4397
%4402 = extractelement <2 x double> %134, i64 0
%4403 = tail call double @llvm.fmuladd.f64(double %4402, double %4393, double %4401)
%4404 = tail call double @llvm.fmuladd.f64(double %130, double %4400, double %4403)
%4405 = fcmp ogt double %4404, 0.000000e+00
br i1 %4405, label %7621, label %4406
4406: ; preds = %4386
%4407 = fsub double %10, %53
%4408 = fsub <2 x double> %15, %56
%4409 = fsub <2 x double> %45, %56
%4410 = extractelement <2 x double> %4409, i64 0
%4411 = insertelement <2 x double> poison, double %57, i64 0
%4412 = insertelement <2 x double> %4411, double %53, i64 1
%4413 = fsub <2 x double> %102, %4412
%4414 = extractelement <2 x double> %4408, i64 1
%4415 = insertelement <2 x double> poison, double %4414, i64 0
%4416 = insertelement <2 x double> %4415, double %4407, i64 1
%4417 = fneg <2 x double> %4416
%4418 = shufflevector <2 x double> %4409, <2 x double> %4413, <2 x i32> <i32 0, i32 2>
%4419 = fmul <2 x double> %4418, %4417
%4420 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4408, <2 x double> %4413, <2 x double> %4419)
%4421 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4420, <2 x double>* %4421
%4422 = extractelement <2 x double> %4408, i64 0
%4423 = fneg double %4422
%4424 = extractelement <2 x double> %4413, i64 1
%4425 = fmul double %4424, %4423
%4426 = tail call double @llvm.fmuladd.f64(double %4407, double %4410, double %4425)
store double %4426, double* %118
%4427 = fsub double %9, %53
%4428 = fsub <2 x double> %17, %56
%4429 = fsub double %21, %57
%4430 = shufflevector <2 x double> %4420, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4431 = fmul <2 x double> %4428, %4430
%4432 = extractelement <2 x double> %4431, i64 0
%4433 = extractelement <2 x double> %4420, i64 0
%4434 = tail call double @llvm.fmuladd.f64(double %4427, double %4433, double %4432)
%4435 = tail call double @llvm.fmuladd.f64(double %4429, double %4426, double %4434)
%4436 = fcmp ule double %4435, 0.000000e+00
%4437 = zext i1 %4436 to i32
br label %7621
4438: ; preds = %4328
br i1 %4330, label %4439, label %4490
4439: ; preds = %4438
%4440 = fsub double %53, %58
%4441 = fsub <2 x double> %56, %66
%4442 = extractelement <2 x double> %4441, i64 0
%4443 = fsub double %57, %70
%4444 = fneg double %130
%4445 = fmul double %4442, %4444
%4446 = tail call double @llvm.fmuladd.f64(double %129, double %4443, double %4445)
%4447 = extractelement <2 x double> %134, i64 0
%4448 = fneg double %4447
%4449 = fmul double %4443, %4448
%4450 = tail call double @llvm.fmuladd.f64(double %130, double %4440, double %4449)
%4451 = fneg double %129
%4452 = fmul double %4440, %4451
%4453 = tail call double @llvm.fmuladd.f64(double %4447, double %4442, double %4452)
%4454 = fmul double %121, %4450
%4455 = tail call double @llvm.fmuladd.f64(double %119, double %4446, double %4454)
%4456 = tail call double @llvm.fmuladd.f64(double %126, double %4453, double %4455)
%4457 = fcmp ogt double %4456, 0.000000e+00
br i1 %4457, label %7621, label %4458
4458: ; preds = %4439
%4459 = fsub double %23, %53
%4460 = fsub <2 x double> %27, %56
%4461 = fsub <2 x double> %45, %56
%4462 = extractelement <2 x double> %4461, i64 0
%4463 = insertelement <2 x double> poison, double %57, i64 0
%4464 = insertelement <2 x double> %4463, double %53, i64 1
%4465 = fsub <2 x double> %102, %4464
%4466 = extractelement <2 x double> %4460, i64 1
%4467 = insertelement <2 x double> poison, double %4466, i64 0
%4468 = insertelement <2 x double> %4467, double %4459, i64 1
%4469 = fneg <2 x double> %4468
%4470 = shufflevector <2 x double> %4461, <2 x double> %4465, <2 x i32> <i32 0, i32 2>
%4471 = fmul <2 x double> %4470, %4469
%4472 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4460, <2 x double> %4465, <2 x double> %4471)
%4473 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4472, <2 x double>* %4473
%4474 = extractelement <2 x double> %4460, i64 0
%4475 = fneg double %4474
%4476 = extractelement <2 x double> %4465, i64 1
%4477 = fmul double %4476, %4475
%4478 = tail call double @llvm.fmuladd.f64(double %4459, double %4462, double %4477)
store double %4478, double* %118
%4479 = fsub double %10, %53
%4480 = fsub <2 x double> %15, %56
%4481 = fsub double %20, %57
%4482 = shufflevector <2 x double> %4472, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4483 = fmul <2 x double> %4480, %4482
%4484 = extractelement <2 x double> %4483, i64 0
%4485 = extractelement <2 x double> %4472, i64 0
%4486 = tail call double @llvm.fmuladd.f64(double %4479, double %4485, double %4484)
%4487 = tail call double @llvm.fmuladd.f64(double %4481, double %4478, double %4486)
%4488 = fcmp ule double %4487, 0.000000e+00
%4489 = zext i1 %4488 to i32
br label %7621
4490: ; preds = %4438
%4491 = fcmp olt double %148, 0.000000e+00
br i1 %4491, label %4492, label %4546
4492: ; preds = %4490
%4493 = fsub double %23, %41
%4494 = fsub <2 x double> %27, %45
%4495 = extractelement <2 x double> %4494, i64 0
%4496 = fsub double %30, %48
%4497 = fneg double %4496
%4498 = fmul double %93, %4497
%4499 = tail call double @llvm.fmuladd.f64(double %4495, double %109, double %4498)
%4500 = fneg double %4493
%4501 = fmul double %109, %4500
%4502 = tail call double @llvm.fmuladd.f64(double %4496, double %116, double %4501)
%4503 = fneg double %4495
%4504 = fmul double %116, %4503
%4505 = tail call double @llvm.fmuladd.f64(double %4493, double %93, double %4504)
%4506 = fsub double %9, %41
%4507 = fsub <2 x double> %17, %45
%4508 = extractelement <2 x double> %4507, i64 0
%4509 = fsub double %21, %48
%4510 = fmul double %4508, %4502
%4511 = tail call double @llvm.fmuladd.f64(double %4506, double %4499, double %4510)
%4512 = tail call double @llvm.fmuladd.f64(double %4509, double %4505, double %4511)
%4513 = fcmp ogt double %4512, 0.000000e+00
br i1 %4513, label %7621, label %4514
4514: ; preds = %4492
%4515 = fsub double %23, %53
%4516 = fsub <2 x double> %27, %56
%4517 = fsub <2 x double> %66, %56
%4518 = extractelement <2 x double> %4517, i64 0
%4519 = insertelement <2 x double> poison, double %57, i64 0
%4520 = insertelement <2 x double> %4519, double %53, i64 1
%4521 = fsub <2 x double> %100, %4520
%4522 = extractelement <2 x double> %4516, i64 1
%4523 = insertelement <2 x double> poison, double %4522, i64 0
%4524 = insertelement <2 x double> %4523, double %4515, i64 1
%4525 = fneg <2 x double> %4524
%4526 = shufflevector <2 x double> %4517, <2 x double> %4521, <2 x i32> <i32 0, i32 2>
%4527 = fmul <2 x double> %4526, %4525
%4528 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4516, <2 x double> %4521, <2 x double> %4527)
%4529 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4528, <2 x double>* %4529
%4530 = extractelement <2 x double> %4516, i64 0
%4531 = fneg double %4530
%4532 = extractelement <2 x double> %4521, i64 1
%4533 = fmul double %4532, %4531
%4534 = tail call double @llvm.fmuladd.f64(double %4515, double %4518, double %4533)
store double %4534, double* %118
%4535 = fsub double %10, %53
%4536 = fsub <2 x double> %15, %56
%4537 = fsub double %20, %57
%4538 = shufflevector <2 x double> %4528, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4539 = fmul <2 x double> %4536, %4538
%4540 = extractelement <2 x double> %4539, i64 0
%4541 = extractelement <2 x double> %4528, i64 0
%4542 = tail call double @llvm.fmuladd.f64(double %4535, double %4541, double %4540)
%4543 = tail call double @llvm.fmuladd.f64(double %4537, double %4534, double %4542)
%4544 = fcmp ule double %4543, 0.000000e+00
%4545 = zext i1 %4544 to i32
br label %7621
4546: ; preds = %4490
%4547 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %1, double* %2, double* %0, double* %3, double* %5, double* %4, double* %104)
br label %7621
4548: ; preds = %3890
br i1 %3892, label %4549, label %4693
4549: ; preds = %4548
%4550 = fcmp ogt double %148, 0.000000e+00
br i1 %4550, label %4551, label %4595
4551: ; preds = %4549
%4552 = fsub double %41, %58
%4553 = fsub <2 x double> %45, %66
%4554 = extractelement <2 x double> %4553, i64 0
%4555 = fsub double %48, %70
%4556 = fneg double %142
%4557 = fmul double %4554, %4556
%4558 = tail call double @llvm.fmuladd.f64(double %136, double %4555, double %4557)
%4559 = extractelement <2 x double> %134, i64 1
%4560 = fneg double %4559
%4561 = fmul double %4555, %4560
%4562 = tail call double @llvm.fmuladd.f64(double %142, double %4552, double %4561)
%4563 = fneg double %136
%4564 = fmul double %4552, %4563
%4565 = tail call double @llvm.fmuladd.f64(double %4559, double %4554, double %4564)
%4566 = fmul double %121, %4562
%4567 = tail call double @llvm.fmuladd.f64(double %119, double %4558, double %4566)
%4568 = tail call double @llvm.fmuladd.f64(double %126, double %4565, double %4567)
%4569 = fcmp ogt double %4568, 0.000000e+00
br i1 %4569, label %7621, label %4570
4570: ; preds = %4551
%4571 = fsub double %10, %41
%4572 = fsub <2 x double> %15, %45
%4573 = extractelement <2 x double> %4572, i64 1
%4574 = insertelement <2 x double> poison, double %4573, i64 0
%4575 = insertelement <2 x double> %4574, double %4571, i64 1
%4576 = fneg <2 x double> %4575
%4577 = fmul <2 x double> %110, %4576
%4578 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4572, <2 x double> %97, <2 x double> %4577)
%4579 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4578, <2 x double>* %4579
%4580 = extractelement <2 x double> %4572, i64 0
%4581 = fneg double %4580
%4582 = fmul double %116, %4581
%4583 = tail call double @llvm.fmuladd.f64(double %4571, double %93, double %4582)
store double %4583, double* %118
%4584 = fsub double %23, %41
%4585 = fsub <2 x double> %27, %45
%4586 = fsub double %30, %48
%4587 = shufflevector <2 x double> %4578, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4588 = fmul <2 x double> %4585, %4587
%4589 = extractelement <2 x double> %4588, i64 0
%4590 = extractelement <2 x double> %4578, i64 0
%4591 = tail call double @llvm.fmuladd.f64(double %4584, double %4590, double %4589)
%4592 = tail call double @llvm.fmuladd.f64(double %4586, double %4583, double %4591)
%4593 = fcmp ule double %4592, 0.000000e+00
%4594 = zext i1 %4593 to i32
br label %7621
4595: ; preds = %4549
%4596 = fcmp ogt double %151, 0.000000e+00
br i1 %4596, label %4597, label %4642
4597: ; preds = %4595
%4598 = fsub double %41, %58
%4599 = fsub <2 x double> %45, %66
%4600 = extractelement <2 x double> %4599, i64 0
%4601 = fsub double %48, %70
%4602 = fneg double %130
%4603 = fmul double %4600, %4602
%4604 = tail call double @llvm.fmuladd.f64(double %129, double %4601, double %4603)
%4605 = extractelement <2 x double> %134, i64 0
%4606 = fneg double %4605
%4607 = fmul double %4601, %4606
%4608 = tail call double @llvm.fmuladd.f64(double %130, double %4598, double %4607)
%4609 = fneg double %129
%4610 = fmul double %4598, %4609
%4611 = tail call double @llvm.fmuladd.f64(double %4605, double %4600, double %4610)
%4612 = fmul double %136, %4608
%4613 = extractelement <2 x double> %134, i64 1
%4614 = tail call double @llvm.fmuladd.f64(double %4613, double %4604, double %4612)
%4615 = tail call double @llvm.fmuladd.f64(double %142, double %4611, double %4614)
%4616 = fcmp ogt double %4615, 0.000000e+00
br i1 %4616, label %7621, label %4617
4617: ; preds = %4597
%4618 = fsub double %23, %41
%4619 = fsub <2 x double> %27, %45
%4620 = extractelement <2 x double> %4619, i64 1
%4621 = insertelement <2 x double> poison, double %4620, i64 0
%4622 = insertelement <2 x double> %4621, double %4618, i64 1
%4623 = fneg <2 x double> %4622
%4624 = fmul <2 x double> %110, %4623
%4625 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4619, <2 x double> %97, <2 x double> %4624)
%4626 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4625, <2 x double>* %4626
%4627 = extractelement <2 x double> %4619, i64 0
%4628 = fneg double %4627
%4629 = fmul double %116, %4628
%4630 = tail call double @llvm.fmuladd.f64(double %4618, double %93, double %4629)
store double %4630, double* %118
%4631 = fsub double %9, %41
%4632 = fsub <2 x double> %17, %45
%4633 = fsub double %21, %48
%4634 = shufflevector <2 x double> %4625, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4635 = fmul <2 x double> %4632, %4634
%4636 = extractelement <2 x double> %4635, i64 0
%4637 = extractelement <2 x double> %4625, i64 0
%4638 = tail call double @llvm.fmuladd.f64(double %4631, double %4637, double %4636)
%4639 = tail call double @llvm.fmuladd.f64(double %4633, double %4630, double %4638)
%4640 = fcmp ule double %4639, 0.000000e+00
%4641 = zext i1 %4640 to i32
br label %7621
4642: ; preds = %4595
%4643 = fsub double %9, %53
%4644 = fsub <2 x double> %17, %56
%4645 = extractelement <2 x double> %4644, i64 0
%4646 = fsub double %21, %57
%4647 = fsub double %41, %53
%4648 = fsub <2 x double> %45, %56
%4649 = extractelement <2 x double> %4648, i64 0
%4650 = fsub double %48, %57
%4651 = fneg double %4646
%4652 = fmul double %4649, %4651
%4653 = tail call double @llvm.fmuladd.f64(double %4645, double %4650, double %4652)
%4654 = fneg double %4643
%4655 = fmul double %4650, %4654
%4656 = tail call double @llvm.fmuladd.f64(double %4646, double %4647, double %4655)
%4657 = fneg double %4645
%4658 = fmul double %4647, %4657
%4659 = tail call double @llvm.fmuladd.f64(double %4643, double %4649, double %4658)
%4660 = fsub double %23, %53
%4661 = fsub <2 x double> %27, %56
%4662 = extractelement <2 x double> %4661, i64 0
%4663 = fsub double %30, %57
%4664 = fmul double %4662, %4656
%4665 = tail call double @llvm.fmuladd.f64(double %4660, double %4653, double %4664)
%4666 = tail call double @llvm.fmuladd.f64(double %4663, double %4659, double %4665)
%4667 = fcmp ogt double %4666, 0.000000e+00
br i1 %4667, label %7621, label %4668
4668: ; preds = %4642
%4669 = fsub double %9, %41
%4670 = fsub <2 x double> %17, %45
%4671 = extractelement <2 x double> %4670, i64 1
%4672 = insertelement <2 x double> poison, double %4671, i64 0
%4673 = insertelement <2 x double> %4672, double %4669, i64 1
%4674 = fneg <2 x double> %4673
%4675 = fmul <2 x double> %107, %4674
%4676 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4670, <2 x double> %103, <2 x double> %4675)
%4677 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4676, <2 x double>* %4677
%4678 = extractelement <2 x double> %4670, i64 0
%4679 = fneg double %4678
%4680 = fmul double %114, %4679
%4681 = tail call double @llvm.fmuladd.f64(double %4669, double %99, double %4680)
store double %4681, double* %118
%4682 = fsub double %10, %41
%4683 = fsub <2 x double> %15, %45
%4684 = fsub double %20, %48
%4685 = shufflevector <2 x double> %4676, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4686 = fmul <2 x double> %4683, %4685
%4687 = extractelement <2 x double> %4686, i64 0
%4688 = extractelement <2 x double> %4676, i64 0
%4689 = tail call double @llvm.fmuladd.f64(double %4682, double %4688, double %4687)
%4690 = tail call double @llvm.fmuladd.f64(double %4684, double %4681, double %4689)
%4691 = fcmp ule double %4690, 0.000000e+00
%4692 = zext i1 %4691 to i32
br label %7621
4693: ; preds = %4548
%4694 = fcmp olt double %127, 0.000000e+00
%4695 = fcmp olt double %148, 0.000000e+00
br i1 %4694, label %4696, label %4845
4696: ; preds = %4693
br i1 %4695, label %4697, label %4748
4697: ; preds = %4696
%4698 = fsub double %10, %53
%4699 = fsub <2 x double> %15, %56
%4700 = extractelement <2 x double> %4699, i64 0
%4701 = fsub double %20, %57
%4702 = fsub double %41, %53
%4703 = fsub <2 x double> %45, %56
%4704 = extractelement <2 x double> %4703, i64 0
%4705 = fsub double %48, %57
%4706 = fneg double %4701
%4707 = fmul double %4704, %4706
%4708 = tail call double @llvm.fmuladd.f64(double %4700, double %4705, double %4707)
%4709 = fneg double %4698
%4710 = fmul double %4705, %4709
%4711 = tail call double @llvm.fmuladd.f64(double %4701, double %4702, double %4710)
%4712 = fneg double %4700
%4713 = fmul double %4702, %4712
%4714 = tail call double @llvm.fmuladd.f64(double %4698, double %4704, double %4713)
%4715 = fsub double %9, %53
%4716 = fsub <2 x double> %17, %56
%4717 = extractelement <2 x double> %4716, i64 0
%4718 = fsub double %21, %57
%4719 = fmul double %4717, %4711
%4720 = tail call double @llvm.fmuladd.f64(double %4715, double %4708, double %4719)
%4721 = tail call double @llvm.fmuladd.f64(double %4718, double %4714, double %4720)
%4722 = fcmp ogt double %4721, 0.000000e+00
br i1 %4722, label %7621, label %4723
4723: ; preds = %4697
%4724 = fsub double %10, %41
%4725 = fsub <2 x double> %15, %45
%4726 = extractelement <2 x double> %4725, i64 1
%4727 = insertelement <2 x double> poison, double %4726, i64 0
%4728 = insertelement <2 x double> %4727, double %4724, i64 1
%4729 = fneg <2 x double> %4728
%4730 = fmul <2 x double> %107, %4729
%4731 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4725, <2 x double> %103, <2 x double> %4730)
%4732 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4731, <2 x double>* %4732
%4733 = extractelement <2 x double> %4725, i64 0
%4734 = fneg double %4733
%4735 = fmul double %114, %4734
%4736 = tail call double @llvm.fmuladd.f64(double %4724, double %99, double %4735)
store double %4736, double* %118
%4737 = fsub double %23, %41
%4738 = fsub <2 x double> %27, %45
%4739 = fsub double %30, %48
%4740 = shufflevector <2 x double> %4731, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4741 = fmul <2 x double> %4738, %4740
%4742 = extractelement <2 x double> %4741, i64 0
%4743 = extractelement <2 x double> %4731, i64 0
%4744 = tail call double @llvm.fmuladd.f64(double %4737, double %4743, double %4742)
%4745 = tail call double @llvm.fmuladd.f64(double %4739, double %4736, double %4744)
%4746 = fcmp ule double %4745, 0.000000e+00
%4747 = zext i1 %4746 to i32
br label %7621
4748: ; preds = %4696
%4749 = fcmp olt double %151, 0.000000e+00
br i1 %4749, label %4750, label %4801
4750: ; preds = %4748
%4751 = fsub double %23, %53
%4752 = fsub <2 x double> %27, %56
%4753 = extractelement <2 x double> %4752, i64 0
%4754 = fsub double %30, %57
%4755 = fsub double %41, %53
%4756 = fsub <2 x double> %45, %56
%4757 = extractelement <2 x double> %4756, i64 0
%4758 = fsub double %48, %57
%4759 = fneg double %4754
%4760 = fmul double %4757, %4759
%4761 = tail call double @llvm.fmuladd.f64(double %4753, double %4758, double %4760)
%4762 = fneg double %4751
%4763 = fmul double %4758, %4762
%4764 = tail call double @llvm.fmuladd.f64(double %4754, double %4755, double %4763)
%4765 = fneg double %4753
%4766 = fmul double %4755, %4765
%4767 = tail call double @llvm.fmuladd.f64(double %4751, double %4757, double %4766)
%4768 = fsub double %10, %53
%4769 = fsub <2 x double> %15, %56
%4770 = extractelement <2 x double> %4769, i64 0
%4771 = fsub double %20, %57
%4772 = fmul double %4770, %4764
%4773 = tail call double @llvm.fmuladd.f64(double %4768, double %4761, double %4772)
%4774 = tail call double @llvm.fmuladd.f64(double %4771, double %4767, double %4773)
%4775 = fcmp ogt double %4774, 0.000000e+00
br i1 %4775, label %7621, label %4776
4776: ; preds = %4750
%4777 = fsub double %23, %41
%4778 = fsub <2 x double> %27, %45
%4779 = extractelement <2 x double> %4778, i64 1
%4780 = insertelement <2 x double> poison, double %4779, i64 0
%4781 = insertelement <2 x double> %4780, double %4777, i64 1
%4782 = fneg <2 x double> %4781
%4783 = fmul <2 x double> %107, %4782
%4784 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4778, <2 x double> %103, <2 x double> %4783)
%4785 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4784, <2 x double>* %4785
%4786 = extractelement <2 x double> %4778, i64 0
%4787 = fneg double %4786
%4788 = fmul double %114, %4787
%4789 = tail call double @llvm.fmuladd.f64(double %4777, double %99, double %4788)
store double %4789, double* %118
%4790 = fsub double %9, %41
%4791 = fsub <2 x double> %17, %45
%4792 = fsub double %21, %48
%4793 = shufflevector <2 x double> %4784, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4794 = fmul <2 x double> %4791, %4793
%4795 = extractelement <2 x double> %4794, i64 0
%4796 = extractelement <2 x double> %4784, i64 0
%4797 = tail call double @llvm.fmuladd.f64(double %4790, double %4796, double %4795)
%4798 = tail call double @llvm.fmuladd.f64(double %4792, double %4789, double %4797)
%4799 = fcmp ule double %4798, 0.000000e+00
%4800 = zext i1 %4799 to i32
br label %7621
4801: ; preds = %4748
%4802 = fsub double %41, %58
%4803 = fsub <2 x double> %45, %66
%4804 = extractelement <2 x double> %4803, i64 0
%4805 = fsub double %48, %70
%4806 = fneg double %126
%4807 = fmul double %4804, %4806
%4808 = tail call double @llvm.fmuladd.f64(double %121, double %4805, double %4807)
%4809 = fneg double %119
%4810 = fmul double %4805, %4809
%4811 = tail call double @llvm.fmuladd.f64(double %126, double %4802, double %4810)
%4812 = fneg double %121
%4813 = fmul double %4802, %4812
%4814 = tail call double @llvm.fmuladd.f64(double %119, double %4804, double %4813)
%4815 = fmul double %129, %4811
%4816 = extractelement <2 x double> %134, i64 0
%4817 = tail call double @llvm.fmuladd.f64(double %4816, double %4808, double %4815)
%4818 = tail call double @llvm.fmuladd.f64(double %130, double %4814, double %4817)
%4819 = fcmp ogt double %4818, 0.000000e+00
br i1 %4819, label %7621, label %4820
4820: ; preds = %4801
%4821 = fsub double %9, %41
%4822 = fsub <2 x double> %17, %45
%4823 = extractelement <2 x double> %4822, i64 1
%4824 = insertelement <2 x double> poison, double %4823, i64 0
%4825 = insertelement <2 x double> %4824, double %4821, i64 1
%4826 = fneg <2 x double> %4825
%4827 = fmul <2 x double> %110, %4826
%4828 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4822, <2 x double> %97, <2 x double> %4827)
%4829 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4828, <2 x double>* %4829
%4830 = extractelement <2 x double> %4822, i64 0
%4831 = fneg double %4830
%4832 = fmul double %116, %4831
%4833 = tail call double @llvm.fmuladd.f64(double %4821, double %93, double %4832)
store double %4833, double* %118
%4834 = fsub double %10, %41
%4835 = fsub <2 x double> %15, %45
%4836 = fsub double %20, %48
%4837 = shufflevector <2 x double> %4828, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4838 = fmul <2 x double> %4835, %4837
%4839 = extractelement <2 x double> %4838, i64 0
%4840 = extractelement <2 x double> %4828, i64 0
%4841 = tail call double @llvm.fmuladd.f64(double %4834, double %4840, double %4839)
%4842 = tail call double @llvm.fmuladd.f64(double %4836, double %4833, double %4841)
%4843 = fcmp ule double %4842, 0.000000e+00
%4844 = zext i1 %4843 to i32
br label %7621
4845: ; preds = %4693
br i1 %4695, label %4846, label %4944
4846: ; preds = %4845
%4847 = fcmp ult double %151, 0.000000e+00
br i1 %4847, label %4893, label %4848
4848: ; preds = %4846
%4849 = fsub double %41, %58
%4850 = fsub <2 x double> %45, %66
%4851 = extractelement <2 x double> %4850, i64 0
%4852 = fsub double %48, %70
%4853 = fneg double %130
%4854 = fmul double %4851, %4853
%4855 = tail call double @llvm.fmuladd.f64(double %129, double %4852, double %4854)
%4856 = extractelement <2 x double> %134, i64 0
%4857 = fneg double %4856
%4858 = fmul double %4852, %4857
%4859 = tail call double @llvm.fmuladd.f64(double %130, double %4849, double %4858)
%4860 = fneg double %129
%4861 = fmul double %4849, %4860
%4862 = tail call double @llvm.fmuladd.f64(double %4856, double %4851, double %4861)
%4863 = fmul double %136, %4859
%4864 = extractelement <2 x double> %134, i64 1
%4865 = tail call double @llvm.fmuladd.f64(double %4864, double %4855, double %4863)
%4866 = tail call double @llvm.fmuladd.f64(double %142, double %4862, double %4865)
%4867 = fcmp ogt double %4866, 0.000000e+00
br i1 %4867, label %7621, label %4868
4868: ; preds = %4848
%4869 = fsub double %23, %41
%4870 = fsub <2 x double> %27, %45
%4871 = extractelement <2 x double> %4870, i64 1
%4872 = insertelement <2 x double> poison, double %4871, i64 0
%4873 = insertelement <2 x double> %4872, double %4869, i64 1
%4874 = fneg <2 x double> %4873
%4875 = fmul <2 x double> %110, %4874
%4876 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4870, <2 x double> %97, <2 x double> %4875)
%4877 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4876, <2 x double>* %4877
%4878 = extractelement <2 x double> %4870, i64 0
%4879 = fneg double %4878
%4880 = fmul double %116, %4879
%4881 = tail call double @llvm.fmuladd.f64(double %4869, double %93, double %4880)
store double %4881, double* %118
%4882 = fsub double %9, %41
%4883 = fsub <2 x double> %17, %45
%4884 = fsub double %21, %48
%4885 = shufflevector <2 x double> %4876, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4886 = fmul <2 x double> %4883, %4885
%4887 = extractelement <2 x double> %4886, i64 0
%4888 = extractelement <2 x double> %4876, i64 0
%4889 = tail call double @llvm.fmuladd.f64(double %4882, double %4888, double %4887)
%4890 = tail call double @llvm.fmuladd.f64(double %4884, double %4881, double %4889)
%4891 = fcmp ule double %4890, 0.000000e+00
%4892 = zext i1 %4891 to i32
br label %7621
4893: ; preds = %4846
%4894 = fsub double %9, %53
%4895 = fsub <2 x double> %17, %56
%4896 = extractelement <2 x double> %4895, i64 0
%4897 = fsub double %21, %57
%4898 = fsub double %41, %53
%4899 = fsub <2 x double> %45, %56
%4900 = extractelement <2 x double> %4899, i64 0
%4901 = fsub double %48, %57
%4902 = fneg double %4897
%4903 = fmul double %4900, %4902
%4904 = tail call double @llvm.fmuladd.f64(double %4896, double %4901, double %4903)
%4905 = fneg double %4894
%4906 = fmul double %4901, %4905
%4907 = tail call double @llvm.fmuladd.f64(double %4897, double %4898, double %4906)
%4908 = fneg double %4896
%4909 = fmul double %4898, %4908
%4910 = tail call double @llvm.fmuladd.f64(double %4894, double %4900, double %4909)
%4911 = fsub double %23, %53
%4912 = fsub <2 x double> %27, %56
%4913 = extractelement <2 x double> %4912, i64 0
%4914 = fsub double %30, %57
%4915 = fmul double %4913, %4907
%4916 = tail call double @llvm.fmuladd.f64(double %4911, double %4904, double %4915)
%4917 = tail call double @llvm.fmuladd.f64(double %4914, double %4910, double %4916)
%4918 = fcmp ogt double %4917, 0.000000e+00
br i1 %4918, label %7621, label %4919
4919: ; preds = %4893
%4920 = fsub double %9, %41
%4921 = fsub <2 x double> %17, %45
%4922 = extractelement <2 x double> %4921, i64 1
%4923 = insertelement <2 x double> poison, double %4922, i64 0
%4924 = insertelement <2 x double> %4923, double %4920, i64 1
%4925 = fneg <2 x double> %4924
%4926 = fmul <2 x double> %107, %4925
%4927 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4921, <2 x double> %103, <2 x double> %4926)
%4928 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4927, <2 x double>* %4928
%4929 = extractelement <2 x double> %4921, i64 0
%4930 = fneg double %4929
%4931 = fmul double %114, %4930
%4932 = tail call double @llvm.fmuladd.f64(double %4920, double %99, double %4931)
store double %4932, double* %118
%4933 = fsub double %10, %41
%4934 = fsub <2 x double> %15, %45
%4935 = fsub double %20, %48
%4936 = shufflevector <2 x double> %4927, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4937 = fmul <2 x double> %4934, %4936
%4938 = extractelement <2 x double> %4937, i64 0
%4939 = extractelement <2 x double> %4927, i64 0
%4940 = tail call double @llvm.fmuladd.f64(double %4933, double %4939, double %4938)
%4941 = tail call double @llvm.fmuladd.f64(double %4935, double %4932, double %4940)
%4942 = fcmp ule double %4941, 0.000000e+00
%4943 = zext i1 %4942 to i32
br label %7621
4944: ; preds = %4845
%4945 = fcmp ogt double %148, 0.000000e+00
%4946 = fcmp ogt double %151, 0.000000e+00
br i1 %4945, label %4947, label %5043
4947: ; preds = %4944
br i1 %4946, label %4948, label %4992
4948: ; preds = %4947
%4949 = fsub double %41, %58
%4950 = fsub <2 x double> %45, %66
%4951 = extractelement <2 x double> %4950, i64 0
%4952 = fsub double %48, %70
%4953 = fneg double %126
%4954 = fmul double %4951, %4953
%4955 = tail call double @llvm.fmuladd.f64(double %121, double %4952, double %4954)
%4956 = fneg double %119
%4957 = fmul double %4952, %4956
%4958 = tail call double @llvm.fmuladd.f64(double %126, double %4949, double %4957)
%4959 = fneg double %121
%4960 = fmul double %4949, %4959
%4961 = tail call double @llvm.fmuladd.f64(double %119, double %4951, double %4960)
%4962 = fmul double %129, %4958
%4963 = extractelement <2 x double> %134, i64 0
%4964 = tail call double @llvm.fmuladd.f64(double %4963, double %4955, double %4962)
%4965 = tail call double @llvm.fmuladd.f64(double %130, double %4961, double %4964)
%4966 = fcmp ogt double %4965, 0.000000e+00
br i1 %4966, label %7621, label %4967
4967: ; preds = %4948
%4968 = fsub double %9, %41
%4969 = fsub <2 x double> %17, %45
%4970 = extractelement <2 x double> %4969, i64 1
%4971 = insertelement <2 x double> poison, double %4970, i64 0
%4972 = insertelement <2 x double> %4971, double %4968, i64 1
%4973 = fneg <2 x double> %4972
%4974 = fmul <2 x double> %110, %4973
%4975 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %4969, <2 x double> %97, <2 x double> %4974)
%4976 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %4975, <2 x double>* %4976
%4977 = extractelement <2 x double> %4969, i64 0
%4978 = fneg double %4977
%4979 = fmul double %116, %4978
%4980 = tail call double @llvm.fmuladd.f64(double %4968, double %93, double %4979)
store double %4980, double* %118
%4981 = fsub double %10, %41
%4982 = fsub <2 x double> %15, %45
%4983 = fsub double %20, %48
%4984 = shufflevector <2 x double> %4975, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%4985 = fmul <2 x double> %4982, %4984
%4986 = extractelement <2 x double> %4985, i64 0
%4987 = extractelement <2 x double> %4975, i64 0
%4988 = tail call double @llvm.fmuladd.f64(double %4981, double %4987, double %4986)
%4989 = tail call double @llvm.fmuladd.f64(double %4983, double %4980, double %4988)
%4990 = fcmp ule double %4989, 0.000000e+00
%4991 = zext i1 %4990 to i32
br label %7621
4992: ; preds = %4947
%4993 = fsub double %23, %53
%4994 = fsub <2 x double> %27, %56
%4995 = extractelement <2 x double> %4994, i64 0
%4996 = fsub double %30, %57
%4997 = fsub double %41, %53
%4998 = fsub <2 x double> %45, %56
%4999 = extractelement <2 x double> %4998, i64 0
%5000 = fsub double %48, %57
%5001 = fneg double %4996
%5002 = fmul double %4999, %5001
%5003 = tail call double @llvm.fmuladd.f64(double %4995, double %5000, double %5002)
%5004 = fneg double %4993
%5005 = fmul double %5000, %5004
%5006 = tail call double @llvm.fmuladd.f64(double %4996, double %4997, double %5005)
%5007 = fneg double %4995
%5008 = fmul double %4997, %5007
%5009 = tail call double @llvm.fmuladd.f64(double %4993, double %4999, double %5008)
%5010 = fsub double %10, %53
%5011 = fsub <2 x double> %15, %56
%5012 = extractelement <2 x double> %5011, i64 0
%5013 = fsub double %20, %57
%5014 = fmul double %5012, %5006
%5015 = tail call double @llvm.fmuladd.f64(double %5010, double %5003, double %5014)
%5016 = tail call double @llvm.fmuladd.f64(double %5013, double %5009, double %5015)
%5017 = fcmp ogt double %5016, 0.000000e+00
br i1 %5017, label %7621, label %5018
5018: ; preds = %4992
%5019 = fsub double %23, %41
%5020 = fsub <2 x double> %27, %45
%5021 = extractelement <2 x double> %5020, i64 1
%5022 = insertelement <2 x double> poison, double %5021, i64 0
%5023 = insertelement <2 x double> %5022, double %5019, i64 1
%5024 = fneg <2 x double> %5023
%5025 = fmul <2 x double> %107, %5024
%5026 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5020, <2 x double> %103, <2 x double> %5025)
%5027 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5026, <2 x double>* %5027
%5028 = extractelement <2 x double> %5020, i64 0
%5029 = fneg double %5028
%5030 = fmul double %114, %5029
%5031 = tail call double @llvm.fmuladd.f64(double %5019, double %99, double %5030)
store double %5031, double* %118
%5032 = fsub double %9, %41
%5033 = fsub <2 x double> %17, %45
%5034 = fsub double %21, %48
%5035 = shufflevector <2 x double> %5026, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5036 = fmul <2 x double> %5033, %5035
%5037 = extractelement <2 x double> %5036, i64 0
%5038 = extractelement <2 x double> %5026, i64 0
%5039 = tail call double @llvm.fmuladd.f64(double %5032, double %5038, double %5037)
%5040 = tail call double @llvm.fmuladd.f64(double %5034, double %5031, double %5039)
%5041 = fcmp ule double %5040, 0.000000e+00
%5042 = zext i1 %5041 to i32
br label %7621
5043: ; preds = %4944
br i1 %4946, label %5044, label %5095
5044: ; preds = %5043
%5045 = fsub double %10, %53
%5046 = fsub <2 x double> %15, %56
%5047 = extractelement <2 x double> %5046, i64 0
%5048 = fsub double %20, %57
%5049 = fsub double %41, %53
%5050 = fsub <2 x double> %45, %56
%5051 = extractelement <2 x double> %5050, i64 0
%5052 = fsub double %48, %57
%5053 = fneg double %5048
%5054 = fmul double %5051, %5053
%5055 = tail call double @llvm.fmuladd.f64(double %5047, double %5052, double %5054)
%5056 = fneg double %5045
%5057 = fmul double %5052, %5056
%5058 = tail call double @llvm.fmuladd.f64(double %5048, double %5049, double %5057)
%5059 = fneg double %5047
%5060 = fmul double %5049, %5059
%5061 = tail call double @llvm.fmuladd.f64(double %5045, double %5051, double %5060)
%5062 = fsub double %9, %53
%5063 = fsub <2 x double> %17, %56
%5064 = extractelement <2 x double> %5063, i64 0
%5065 = fsub double %21, %57
%5066 = fmul double %5064, %5058
%5067 = tail call double @llvm.fmuladd.f64(double %5062, double %5055, double %5066)
%5068 = tail call double @llvm.fmuladd.f64(double %5065, double %5061, double %5067)
%5069 = fcmp ogt double %5068, 0.000000e+00
br i1 %5069, label %7621, label %5070
5070: ; preds = %5044
%5071 = fsub double %10, %41
%5072 = fsub <2 x double> %15, %45
%5073 = extractelement <2 x double> %5072, i64 1
%5074 = insertelement <2 x double> poison, double %5073, i64 0
%5075 = insertelement <2 x double> %5074, double %5071, i64 1
%5076 = fneg <2 x double> %5075
%5077 = fmul <2 x double> %107, %5076
%5078 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5072, <2 x double> %103, <2 x double> %5077)
%5079 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5078, <2 x double>* %5079
%5080 = extractelement <2 x double> %5072, i64 0
%5081 = fneg double %5080
%5082 = fmul double %114, %5081
%5083 = tail call double @llvm.fmuladd.f64(double %5071, double %99, double %5082)
store double %5083, double* %118
%5084 = fsub double %23, %41
%5085 = fsub <2 x double> %27, %45
%5086 = fsub double %30, %48
%5087 = shufflevector <2 x double> %5078, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5088 = fmul <2 x double> %5085, %5087
%5089 = extractelement <2 x double> %5088, i64 0
%5090 = extractelement <2 x double> %5078, i64 0
%5091 = tail call double @llvm.fmuladd.f64(double %5084, double %5090, double %5089)
%5092 = tail call double @llvm.fmuladd.f64(double %5086, double %5083, double %5091)
%5093 = fcmp ule double %5092, 0.000000e+00
%5094 = zext i1 %5093 to i32
br label %7621
5095: ; preds = %5043
%5096 = fcmp olt double %151, 0.000000e+00
br i1 %5096, label %5097, label %5141
5097: ; preds = %5095
%5098 = fsub double %41, %58
%5099 = fsub <2 x double> %45, %66
%5100 = extractelement <2 x double> %5099, i64 0
%5101 = fsub double %48, %70
%5102 = fneg double %142
%5103 = fmul double %5100, %5102
%5104 = tail call double @llvm.fmuladd.f64(double %136, double %5101, double %5103)
%5105 = extractelement <2 x double> %134, i64 1
%5106 = fneg double %5105
%5107 = fmul double %5101, %5106
%5108 = tail call double @llvm.fmuladd.f64(double %142, double %5098, double %5107)
%5109 = fneg double %136
%5110 = fmul double %5098, %5109
%5111 = tail call double @llvm.fmuladd.f64(double %5105, double %5100, double %5110)
%5112 = fmul double %121, %5108
%5113 = tail call double @llvm.fmuladd.f64(double %119, double %5104, double %5112)
%5114 = tail call double @llvm.fmuladd.f64(double %126, double %5111, double %5113)
%5115 = fcmp ogt double %5114, 0.000000e+00
br i1 %5115, label %7621, label %5116
5116: ; preds = %5097
%5117 = fsub double %10, %41
%5118 = fsub <2 x double> %15, %45
%5119 = extractelement <2 x double> %5118, i64 1
%5120 = insertelement <2 x double> poison, double %5119, i64 0
%5121 = insertelement <2 x double> %5120, double %5117, i64 1
%5122 = fneg <2 x double> %5121
%5123 = fmul <2 x double> %110, %5122
%5124 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5118, <2 x double> %97, <2 x double> %5123)
%5125 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5124, <2 x double>* %5125
%5126 = extractelement <2 x double> %5118, i64 0
%5127 = fneg double %5126
%5128 = fmul double %116, %5127
%5129 = tail call double @llvm.fmuladd.f64(double %5117, double %93, double %5128)
store double %5129, double* %118
%5130 = fsub double %23, %41
%5131 = fsub <2 x double> %27, %45
%5132 = fsub double %30, %48
%5133 = shufflevector <2 x double> %5124, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5134 = fmul <2 x double> %5131, %5133
%5135 = extractelement <2 x double> %5134, i64 0
%5136 = extractelement <2 x double> %5124, i64 0
%5137 = tail call double @llvm.fmuladd.f64(double %5130, double %5136, double %5135)
%5138 = tail call double @llvm.fmuladd.f64(double %5132, double %5129, double %5137)
%5139 = fcmp ule double %5138, 0.000000e+00
%5140 = zext i1 %5139 to i32
br label %7621
5141: ; preds = %5095
%5142 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %104)
br label %7621
5143: ; preds = %3889
%5144 = fcmp ogt <2 x double> %83, zeroinitializer
%5145 = extractelement <2 x i1> %5144, i64 1
br i1 %5145, label %5146, label %6399
5146: ; preds = %5143
%5147 = fcmp ogt double %127, 0.000000e+00
%5148 = extractelement <2 x i1> %5144, i64 0
br i1 %5148, label %5149, label %5744
5149: ; preds = %5146
br i1 %5147, label %5150, label %5294
5150: ; preds = %5149
%5151 = fcmp ogt double %151, 0.000000e+00
br i1 %5151, label %5152, label %5196
5152: ; preds = %5150
%5153 = fsub double %41, %58
%5154 = fsub <2 x double> %45, %66
%5155 = extractelement <2 x double> %5154, i64 0
%5156 = fsub double %48, %70
%5157 = fneg double %130
%5158 = fmul double %5155, %5157
%5159 = tail call double @llvm.fmuladd.f64(double %129, double %5156, double %5158)
%5160 = extractelement <2 x double> %134, i64 0
%5161 = fneg double %5160
%5162 = fmul double %5156, %5161
%5163 = tail call double @llvm.fmuladd.f64(double %130, double %5153, double %5162)
%5164 = fneg double %129
%5165 = fmul double %5153, %5164
%5166 = tail call double @llvm.fmuladd.f64(double %5160, double %5155, double %5165)
%5167 = fmul double %121, %5163
%5168 = tail call double @llvm.fmuladd.f64(double %119, double %5159, double %5167)
%5169 = tail call double @llvm.fmuladd.f64(double %126, double %5166, double %5168)
%5170 = fcmp ogt double %5169, 0.000000e+00
br i1 %5170, label %7621, label %5171
5171: ; preds = %5152
%5172 = fsub double %23, %41
%5173 = fsub <2 x double> %27, %45
%5174 = extractelement <2 x double> %5173, i64 1
%5175 = insertelement <2 x double> poison, double %5174, i64 0
%5176 = insertelement <2 x double> %5175, double %5172, i64 1
%5177 = fneg <2 x double> %5176
%5178 = fmul <2 x double> %110, %5177
%5179 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5173, <2 x double> %97, <2 x double> %5178)
%5180 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5179, <2 x double>* %5180
%5181 = extractelement <2 x double> %5173, i64 0
%5182 = fneg double %5181
%5183 = fmul double %116, %5182
%5184 = tail call double @llvm.fmuladd.f64(double %5172, double %93, double %5183)
store double %5184, double* %118
%5185 = fsub double %10, %41
%5186 = fsub <2 x double> %15, %45
%5187 = fsub double %20, %48
%5188 = shufflevector <2 x double> %5179, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5189 = fmul <2 x double> %5186, %5188
%5190 = extractelement <2 x double> %5189, i64 0
%5191 = extractelement <2 x double> %5179, i64 0
%5192 = tail call double @llvm.fmuladd.f64(double %5185, double %5191, double %5190)
%5193 = tail call double @llvm.fmuladd.f64(double %5187, double %5184, double %5192)
%5194 = fcmp ule double %5193, 0.000000e+00
%5195 = zext i1 %5194 to i32
br label %7621
5196: ; preds = %5150
%5197 = fcmp ogt double %148, 0.000000e+00
br i1 %5197, label %5198, label %5243
5198: ; preds = %5196
%5199 = fsub double %41, %58
%5200 = fsub <2 x double> %45, %66
%5201 = extractelement <2 x double> %5200, i64 0
%5202 = fsub double %48, %70
%5203 = fneg double %142
%5204 = fmul double %5201, %5203
%5205 = tail call double @llvm.fmuladd.f64(double %136, double %5202, double %5204)
%5206 = extractelement <2 x double> %134, i64 1
%5207 = fneg double %5206
%5208 = fmul double %5202, %5207
%5209 = tail call double @llvm.fmuladd.f64(double %142, double %5199, double %5208)
%5210 = fneg double %136
%5211 = fmul double %5199, %5210
%5212 = tail call double @llvm.fmuladd.f64(double %5206, double %5201, double %5211)
%5213 = fmul double %129, %5209
%5214 = extractelement <2 x double> %134, i64 0
%5215 = tail call double @llvm.fmuladd.f64(double %5214, double %5205, double %5213)
%5216 = tail call double @llvm.fmuladd.f64(double %130, double %5212, double %5215)
%5217 = fcmp ogt double %5216, 0.000000e+00
br i1 %5217, label %7621, label %5218
5218: ; preds = %5198
%5219 = fsub double %10, %41
%5220 = fsub <2 x double> %15, %45
%5221 = extractelement <2 x double> %5220, i64 1
%5222 = insertelement <2 x double> poison, double %5221, i64 0
%5223 = insertelement <2 x double> %5222, double %5219, i64 1
%5224 = fneg <2 x double> %5223
%5225 = fmul <2 x double> %110, %5224
%5226 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5220, <2 x double> %97, <2 x double> %5225)
%5227 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5226, <2 x double>* %5227
%5228 = extractelement <2 x double> %5220, i64 0
%5229 = fneg double %5228
%5230 = fmul double %116, %5229
%5231 = tail call double @llvm.fmuladd.f64(double %5219, double %93, double %5230)
store double %5231, double* %118
%5232 = fsub double %9, %41
%5233 = fsub <2 x double> %17, %45
%5234 = fsub double %21, %48
%5235 = shufflevector <2 x double> %5226, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5236 = fmul <2 x double> %5233, %5235
%5237 = extractelement <2 x double> %5236, i64 0
%5238 = extractelement <2 x double> %5226, i64 0
%5239 = tail call double @llvm.fmuladd.f64(double %5232, double %5238, double %5237)
%5240 = tail call double @llvm.fmuladd.f64(double %5234, double %5231, double %5239)
%5241 = fcmp ule double %5240, 0.000000e+00
%5242 = zext i1 %5241 to i32
br label %7621
5243: ; preds = %5196
%5244 = fsub double %9, %53
%5245 = fsub <2 x double> %17, %56
%5246 = extractelement <2 x double> %5245, i64 0
%5247 = fsub double %21, %57
%5248 = fsub double %41, %53
%5249 = fsub <2 x double> %45, %56
%5250 = extractelement <2 x double> %5249, i64 0
%5251 = fsub double %48, %57
%5252 = fneg double %5247
%5253 = fmul double %5250, %5252
%5254 = tail call double @llvm.fmuladd.f64(double %5246, double %5251, double %5253)
%5255 = fneg double %5244
%5256 = fmul double %5251, %5255
%5257 = tail call double @llvm.fmuladd.f64(double %5247, double %5248, double %5256)
%5258 = fneg double %5246
%5259 = fmul double %5248, %5258
%5260 = tail call double @llvm.fmuladd.f64(double %5244, double %5250, double %5259)
%5261 = fsub double %10, %53
%5262 = fsub <2 x double> %15, %56
%5263 = extractelement <2 x double> %5262, i64 0
%5264 = fsub double %20, %57
%5265 = fmul double %5263, %5257
%5266 = tail call double @llvm.fmuladd.f64(double %5261, double %5254, double %5265)
%5267 = tail call double @llvm.fmuladd.f64(double %5264, double %5260, double %5266)
%5268 = fcmp ogt double %5267, 0.000000e+00
br i1 %5268, label %7621, label %5269
5269: ; preds = %5243
%5270 = fsub double %9, %41
%5271 = fsub <2 x double> %17, %45
%5272 = extractelement <2 x double> %5271, i64 1
%5273 = insertelement <2 x double> poison, double %5272, i64 0
%5274 = insertelement <2 x double> %5273, double %5270, i64 1
%5275 = fneg <2 x double> %5274
%5276 = fmul <2 x double> %107, %5275
%5277 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5271, <2 x double> %103, <2 x double> %5276)
%5278 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5277, <2 x double>* %5278
%5279 = extractelement <2 x double> %5271, i64 0
%5280 = fneg double %5279
%5281 = fmul double %114, %5280
%5282 = tail call double @llvm.fmuladd.f64(double %5270, double %99, double %5281)
store double %5282, double* %118
%5283 = fsub double %23, %41
%5284 = fsub <2 x double> %27, %45
%5285 = fsub double %30, %48
%5286 = shufflevector <2 x double> %5277, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5287 = fmul <2 x double> %5284, %5286
%5288 = extractelement <2 x double> %5287, i64 0
%5289 = extractelement <2 x double> %5277, i64 0
%5290 = tail call double @llvm.fmuladd.f64(double %5283, double %5289, double %5288)
%5291 = tail call double @llvm.fmuladd.f64(double %5285, double %5282, double %5290)
%5292 = fcmp ule double %5291, 0.000000e+00
%5293 = zext i1 %5292 to i32
br label %7621
5294: ; preds = %5149
%5295 = fcmp olt double %127, 0.000000e+00
%5296 = fcmp olt double %151, 0.000000e+00
br i1 %5295, label %5297, label %5446
5297: ; preds = %5294
br i1 %5296, label %5298, label %5349
5298: ; preds = %5297
%5299 = fsub double %23, %53
%5300 = fsub <2 x double> %27, %56
%5301 = extractelement <2 x double> %5300, i64 0
%5302 = fsub double %30, %57
%5303 = fsub double %41, %53
%5304 = fsub <2 x double> %45, %56
%5305 = extractelement <2 x double> %5304, i64 0
%5306 = fsub double %48, %57
%5307 = fneg double %5302
%5308 = fmul double %5305, %5307
%5309 = tail call double @llvm.fmuladd.f64(double %5301, double %5306, double %5308)
%5310 = fneg double %5299
%5311 = fmul double %5306, %5310
%5312 = tail call double @llvm.fmuladd.f64(double %5302, double %5303, double %5311)
%5313 = fneg double %5301
%5314 = fmul double %5303, %5313
%5315 = tail call double @llvm.fmuladd.f64(double %5299, double %5305, double %5314)
%5316 = fsub double %9, %53
%5317 = fsub <2 x double> %17, %56
%5318 = extractelement <2 x double> %5317, i64 0
%5319 = fsub double %21, %57
%5320 = fmul double %5318, %5312
%5321 = tail call double @llvm.fmuladd.f64(double %5316, double %5309, double %5320)
%5322 = tail call double @llvm.fmuladd.f64(double %5319, double %5315, double %5321)
%5323 = fcmp ogt double %5322, 0.000000e+00
br i1 %5323, label %7621, label %5324
5324: ; preds = %5298
%5325 = fsub double %23, %41
%5326 = fsub <2 x double> %27, %45
%5327 = extractelement <2 x double> %5326, i64 1
%5328 = insertelement <2 x double> poison, double %5327, i64 0
%5329 = insertelement <2 x double> %5328, double %5325, i64 1
%5330 = fneg <2 x double> %5329
%5331 = fmul <2 x double> %107, %5330
%5332 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5326, <2 x double> %103, <2 x double> %5331)
%5333 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5332, <2 x double>* %5333
%5334 = extractelement <2 x double> %5326, i64 0
%5335 = fneg double %5334
%5336 = fmul double %114, %5335
%5337 = tail call double @llvm.fmuladd.f64(double %5325, double %99, double %5336)
store double %5337, double* %118
%5338 = fsub double %10, %41
%5339 = fsub <2 x double> %15, %45
%5340 = fsub double %20, %48
%5341 = shufflevector <2 x double> %5332, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5342 = fmul <2 x double> %5339, %5341
%5343 = extractelement <2 x double> %5342, i64 0
%5344 = extractelement <2 x double> %5332, i64 0
%5345 = tail call double @llvm.fmuladd.f64(double %5338, double %5344, double %5343)
%5346 = tail call double @llvm.fmuladd.f64(double %5340, double %5337, double %5345)
%5347 = fcmp ule double %5346, 0.000000e+00
%5348 = zext i1 %5347 to i32
br label %7621
5349: ; preds = %5297
%5350 = fcmp olt double %148, 0.000000e+00
br i1 %5350, label %5351, label %5402
5351: ; preds = %5349
%5352 = fsub double %10, %53
%5353 = fsub <2 x double> %15, %56
%5354 = extractelement <2 x double> %5353, i64 0
%5355 = fsub double %20, %57
%5356 = fsub double %41, %53
%5357 = fsub <2 x double> %45, %56
%5358 = extractelement <2 x double> %5357, i64 0
%5359 = fsub double %48, %57
%5360 = fneg double %5355
%5361 = fmul double %5358, %5360
%5362 = tail call double @llvm.fmuladd.f64(double %5354, double %5359, double %5361)
%5363 = fneg double %5352
%5364 = fmul double %5359, %5363
%5365 = tail call double @llvm.fmuladd.f64(double %5355, double %5356, double %5364)
%5366 = fneg double %5354
%5367 = fmul double %5356, %5366
%5368 = tail call double @llvm.fmuladd.f64(double %5352, double %5358, double %5367)
%5369 = fsub double %23, %53
%5370 = fsub <2 x double> %27, %56
%5371 = extractelement <2 x double> %5370, i64 0
%5372 = fsub double %30, %57
%5373 = fmul double %5371, %5365
%5374 = tail call double @llvm.fmuladd.f64(double %5369, double %5362, double %5373)
%5375 = tail call double @llvm.fmuladd.f64(double %5372, double %5368, double %5374)
%5376 = fcmp ogt double %5375, 0.000000e+00
br i1 %5376, label %7621, label %5377
5377: ; preds = %5351
%5378 = fsub double %10, %41
%5379 = fsub <2 x double> %15, %45
%5380 = extractelement <2 x double> %5379, i64 1
%5381 = insertelement <2 x double> poison, double %5380, i64 0
%5382 = insertelement <2 x double> %5381, double %5378, i64 1
%5383 = fneg <2 x double> %5382
%5384 = fmul <2 x double> %107, %5383
%5385 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5379, <2 x double> %103, <2 x double> %5384)
%5386 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5385, <2 x double>* %5386
%5387 = extractelement <2 x double> %5379, i64 0
%5388 = fneg double %5387
%5389 = fmul double %114, %5388
%5390 = tail call double @llvm.fmuladd.f64(double %5378, double %99, double %5389)
store double %5390, double* %118
%5391 = fsub double %9, %41
%5392 = fsub <2 x double> %17, %45
%5393 = fsub double %21, %48
%5394 = shufflevector <2 x double> %5385, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5395 = fmul <2 x double> %5392, %5394
%5396 = extractelement <2 x double> %5395, i64 0
%5397 = extractelement <2 x double> %5385, i64 0
%5398 = tail call double @llvm.fmuladd.f64(double %5391, double %5397, double %5396)
%5399 = tail call double @llvm.fmuladd.f64(double %5393, double %5390, double %5398)
%5400 = fcmp ule double %5399, 0.000000e+00
%5401 = zext i1 %5400 to i32
br label %7621
5402: ; preds = %5349
%5403 = fsub double %41, %58
%5404 = fsub <2 x double> %45, %66
%5405 = extractelement <2 x double> %5404, i64 0
%5406 = fsub double %48, %70
%5407 = fneg double %126
%5408 = fmul double %5405, %5407
%5409 = tail call double @llvm.fmuladd.f64(double %121, double %5406, double %5408)
%5410 = fneg double %119
%5411 = fmul double %5406, %5410
%5412 = tail call double @llvm.fmuladd.f64(double %126, double %5403, double %5411)
%5413 = fneg double %121
%5414 = fmul double %5403, %5413
%5415 = tail call double @llvm.fmuladd.f64(double %119, double %5405, double %5414)
%5416 = fmul double %136, %5412
%5417 = extractelement <2 x double> %134, i64 1
%5418 = tail call double @llvm.fmuladd.f64(double %5417, double %5409, double %5416)
%5419 = tail call double @llvm.fmuladd.f64(double %142, double %5415, double %5418)
%5420 = fcmp ogt double %5419, 0.000000e+00
br i1 %5420, label %7621, label %5421
5421: ; preds = %5402
%5422 = fsub double %9, %41
%5423 = fsub <2 x double> %17, %45
%5424 = extractelement <2 x double> %5423, i64 1
%5425 = insertelement <2 x double> poison, double %5424, i64 0
%5426 = insertelement <2 x double> %5425, double %5422, i64 1
%5427 = fneg <2 x double> %5426
%5428 = fmul <2 x double> %110, %5427
%5429 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5423, <2 x double> %97, <2 x double> %5428)
%5430 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5429, <2 x double>* %5430
%5431 = extractelement <2 x double> %5423, i64 0
%5432 = fneg double %5431
%5433 = fmul double %116, %5432
%5434 = tail call double @llvm.fmuladd.f64(double %5422, double %93, double %5433)
store double %5434, double* %118
%5435 = fsub double %23, %41
%5436 = fsub <2 x double> %27, %45
%5437 = fsub double %30, %48
%5438 = shufflevector <2 x double> %5429, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5439 = fmul <2 x double> %5436, %5438
%5440 = extractelement <2 x double> %5439, i64 0
%5441 = extractelement <2 x double> %5429, i64 0
%5442 = tail call double @llvm.fmuladd.f64(double %5435, double %5441, double %5440)
%5443 = tail call double @llvm.fmuladd.f64(double %5437, double %5434, double %5442)
%5444 = fcmp ule double %5443, 0.000000e+00
%5445 = zext i1 %5444 to i32
br label %7621
5446: ; preds = %5294
br i1 %5296, label %5447, label %5545
5447: ; preds = %5446
%5448 = fcmp ult double %148, 0.000000e+00
br i1 %5448, label %5494, label %5449
5449: ; preds = %5447
%5450 = fsub double %41, %58
%5451 = fsub <2 x double> %45, %66
%5452 = extractelement <2 x double> %5451, i64 0
%5453 = fsub double %48, %70
%5454 = fneg double %142
%5455 = fmul double %5452, %5454
%5456 = tail call double @llvm.fmuladd.f64(double %136, double %5453, double %5455)
%5457 = extractelement <2 x double> %134, i64 1
%5458 = fneg double %5457
%5459 = fmul double %5453, %5458
%5460 = tail call double @llvm.fmuladd.f64(double %142, double %5450, double %5459)
%5461 = fneg double %136
%5462 = fmul double %5450, %5461
%5463 = tail call double @llvm.fmuladd.f64(double %5457, double %5452, double %5462)
%5464 = fmul double %129, %5460
%5465 = extractelement <2 x double> %134, i64 0
%5466 = tail call double @llvm.fmuladd.f64(double %5465, double %5456, double %5464)
%5467 = tail call double @llvm.fmuladd.f64(double %130, double %5463, double %5466)
%5468 = fcmp ogt double %5467, 0.000000e+00
br i1 %5468, label %7621, label %5469
5469: ; preds = %5449
%5470 = fsub double %10, %41
%5471 = fsub <2 x double> %15, %45
%5472 = extractelement <2 x double> %5471, i64 1
%5473 = insertelement <2 x double> poison, double %5472, i64 0
%5474 = insertelement <2 x double> %5473, double %5470, i64 1
%5475 = fneg <2 x double> %5474
%5476 = fmul <2 x double> %110, %5475
%5477 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5471, <2 x double> %97, <2 x double> %5476)
%5478 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5477, <2 x double>* %5478
%5479 = extractelement <2 x double> %5471, i64 0
%5480 = fneg double %5479
%5481 = fmul double %116, %5480
%5482 = tail call double @llvm.fmuladd.f64(double %5470, double %93, double %5481)
store double %5482, double* %118
%5483 = fsub double %9, %41
%5484 = fsub <2 x double> %17, %45
%5485 = fsub double %21, %48
%5486 = shufflevector <2 x double> %5477, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5487 = fmul <2 x double> %5484, %5486
%5488 = extractelement <2 x double> %5487, i64 0
%5489 = extractelement <2 x double> %5477, i64 0
%5490 = tail call double @llvm.fmuladd.f64(double %5483, double %5489, double %5488)
%5491 = tail call double @llvm.fmuladd.f64(double %5485, double %5482, double %5490)
%5492 = fcmp ule double %5491, 0.000000e+00
%5493 = zext i1 %5492 to i32
br label %7621
5494: ; preds = %5447
%5495 = fsub double %9, %53
%5496 = fsub <2 x double> %17, %56
%5497 = extractelement <2 x double> %5496, i64 0
%5498 = fsub double %21, %57
%5499 = fsub double %41, %53
%5500 = fsub <2 x double> %45, %56
%5501 = extractelement <2 x double> %5500, i64 0
%5502 = fsub double %48, %57
%5503 = fneg double %5498
%5504 = fmul double %5501, %5503
%5505 = tail call double @llvm.fmuladd.f64(double %5497, double %5502, double %5504)
%5506 = fneg double %5495
%5507 = fmul double %5502, %5506
%5508 = tail call double @llvm.fmuladd.f64(double %5498, double %5499, double %5507)
%5509 = fneg double %5497
%5510 = fmul double %5499, %5509
%5511 = tail call double @llvm.fmuladd.f64(double %5495, double %5501, double %5510)
%5512 = fsub double %10, %53
%5513 = fsub <2 x double> %15, %56
%5514 = extractelement <2 x double> %5513, i64 0
%5515 = fsub double %20, %57
%5516 = fmul double %5514, %5508
%5517 = tail call double @llvm.fmuladd.f64(double %5512, double %5505, double %5516)
%5518 = tail call double @llvm.fmuladd.f64(double %5515, double %5511, double %5517)
%5519 = fcmp ogt double %5518, 0.000000e+00
br i1 %5519, label %7621, label %5520
5520: ; preds = %5494
%5521 = fsub double %9, %41
%5522 = fsub <2 x double> %17, %45
%5523 = extractelement <2 x double> %5522, i64 1
%5524 = insertelement <2 x double> poison, double %5523, i64 0
%5525 = insertelement <2 x double> %5524, double %5521, i64 1
%5526 = fneg <2 x double> %5525
%5527 = fmul <2 x double> %107, %5526
%5528 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5522, <2 x double> %103, <2 x double> %5527)
%5529 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5528, <2 x double>* %5529
%5530 = extractelement <2 x double> %5522, i64 0
%5531 = fneg double %5530
%5532 = fmul double %114, %5531
%5533 = tail call double @llvm.fmuladd.f64(double %5521, double %99, double %5532)
store double %5533, double* %118
%5534 = fsub double %23, %41
%5535 = fsub <2 x double> %27, %45
%5536 = fsub double %30, %48
%5537 = shufflevector <2 x double> %5528, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5538 = fmul <2 x double> %5535, %5537
%5539 = extractelement <2 x double> %5538, i64 0
%5540 = extractelement <2 x double> %5528, i64 0
%5541 = tail call double @llvm.fmuladd.f64(double %5534, double %5540, double %5539)
%5542 = tail call double @llvm.fmuladd.f64(double %5536, double %5533, double %5541)
%5543 = fcmp ule double %5542, 0.000000e+00
%5544 = zext i1 %5543 to i32
br label %7621
5545: ; preds = %5446
%5546 = fcmp ogt double %151, 0.000000e+00
%5547 = fcmp ogt double %148, 0.000000e+00
br i1 %5546, label %5548, label %5644
5548: ; preds = %5545
br i1 %5547, label %5549, label %5593
5549: ; preds = %5548
%5550 = fsub double %41, %58
%5551 = fsub <2 x double> %45, %66
%5552 = extractelement <2 x double> %5551, i64 0
%5553 = fsub double %48, %70
%5554 = fneg double %126
%5555 = fmul double %5552, %5554
%5556 = tail call double @llvm.fmuladd.f64(double %121, double %5553, double %5555)
%5557 = fneg double %119
%5558 = fmul double %5553, %5557
%5559 = tail call double @llvm.fmuladd.f64(double %126, double %5550, double %5558)
%5560 = fneg double %121
%5561 = fmul double %5550, %5560
%5562 = tail call double @llvm.fmuladd.f64(double %119, double %5552, double %5561)
%5563 = fmul double %136, %5559
%5564 = extractelement <2 x double> %134, i64 1
%5565 = tail call double @llvm.fmuladd.f64(double %5564, double %5556, double %5563)
%5566 = tail call double @llvm.fmuladd.f64(double %142, double %5562, double %5565)
%5567 = fcmp ogt double %5566, 0.000000e+00
br i1 %5567, label %7621, label %5568
5568: ; preds = %5549
%5569 = fsub double %9, %41
%5570 = fsub <2 x double> %17, %45
%5571 = extractelement <2 x double> %5570, i64 1
%5572 = insertelement <2 x double> poison, double %5571, i64 0
%5573 = insertelement <2 x double> %5572, double %5569, i64 1
%5574 = fneg <2 x double> %5573
%5575 = fmul <2 x double> %110, %5574
%5576 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5570, <2 x double> %97, <2 x double> %5575)
%5577 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5576, <2 x double>* %5577
%5578 = extractelement <2 x double> %5570, i64 0
%5579 = fneg double %5578
%5580 = fmul double %116, %5579
%5581 = tail call double @llvm.fmuladd.f64(double %5569, double %93, double %5580)
store double %5581, double* %118
%5582 = fsub double %23, %41
%5583 = fsub <2 x double> %27, %45
%5584 = fsub double %30, %48
%5585 = shufflevector <2 x double> %5576, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5586 = fmul <2 x double> %5583, %5585
%5587 = extractelement <2 x double> %5586, i64 0
%5588 = extractelement <2 x double> %5576, i64 0
%5589 = tail call double @llvm.fmuladd.f64(double %5582, double %5588, double %5587)
%5590 = tail call double @llvm.fmuladd.f64(double %5584, double %5581, double %5589)
%5591 = fcmp ule double %5590, 0.000000e+00
%5592 = zext i1 %5591 to i32
br label %7621
5593: ; preds = %5548
%5594 = fsub double %10, %53
%5595 = fsub <2 x double> %15, %56
%5596 = extractelement <2 x double> %5595, i64 0
%5597 = fsub double %20, %57
%5598 = fsub double %41, %53
%5599 = fsub <2 x double> %45, %56
%5600 = extractelement <2 x double> %5599, i64 0
%5601 = fsub double %48, %57
%5602 = fneg double %5597
%5603 = fmul double %5600, %5602
%5604 = tail call double @llvm.fmuladd.f64(double %5596, double %5601, double %5603)
%5605 = fneg double %5594
%5606 = fmul double %5601, %5605
%5607 = tail call double @llvm.fmuladd.f64(double %5597, double %5598, double %5606)
%5608 = fneg double %5596
%5609 = fmul double %5598, %5608
%5610 = tail call double @llvm.fmuladd.f64(double %5594, double %5600, double %5609)
%5611 = fsub double %23, %53
%5612 = fsub <2 x double> %27, %56
%5613 = extractelement <2 x double> %5612, i64 0
%5614 = fsub double %30, %57
%5615 = fmul double %5613, %5607
%5616 = tail call double @llvm.fmuladd.f64(double %5611, double %5604, double %5615)
%5617 = tail call double @llvm.fmuladd.f64(double %5614, double %5610, double %5616)
%5618 = fcmp ogt double %5617, 0.000000e+00
br i1 %5618, label %7621, label %5619
5619: ; preds = %5593
%5620 = fsub double %10, %41
%5621 = fsub <2 x double> %15, %45
%5622 = extractelement <2 x double> %5621, i64 1
%5623 = insertelement <2 x double> poison, double %5622, i64 0
%5624 = insertelement <2 x double> %5623, double %5620, i64 1
%5625 = fneg <2 x double> %5624
%5626 = fmul <2 x double> %107, %5625
%5627 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5621, <2 x double> %103, <2 x double> %5626)
%5628 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5627, <2 x double>* %5628
%5629 = extractelement <2 x double> %5621, i64 0
%5630 = fneg double %5629
%5631 = fmul double %114, %5630
%5632 = tail call double @llvm.fmuladd.f64(double %5620, double %99, double %5631)
store double %5632, double* %118
%5633 = fsub double %9, %41
%5634 = fsub <2 x double> %17, %45
%5635 = fsub double %21, %48
%5636 = shufflevector <2 x double> %5627, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5637 = fmul <2 x double> %5634, %5636
%5638 = extractelement <2 x double> %5637, i64 0
%5639 = extractelement <2 x double> %5627, i64 0
%5640 = tail call double @llvm.fmuladd.f64(double %5633, double %5639, double %5638)
%5641 = tail call double @llvm.fmuladd.f64(double %5635, double %5632, double %5640)
%5642 = fcmp ule double %5641, 0.000000e+00
%5643 = zext i1 %5642 to i32
br label %7621
5644: ; preds = %5545
br i1 %5547, label %5645, label %5696
5645: ; preds = %5644
%5646 = fsub double %23, %53
%5647 = fsub <2 x double> %27, %56
%5648 = extractelement <2 x double> %5647, i64 0
%5649 = fsub double %30, %57
%5650 = fsub double %41, %53
%5651 = fsub <2 x double> %45, %56
%5652 = extractelement <2 x double> %5651, i64 0
%5653 = fsub double %48, %57
%5654 = fneg double %5649
%5655 = fmul double %5652, %5654
%5656 = tail call double @llvm.fmuladd.f64(double %5648, double %5653, double %5655)
%5657 = fneg double %5646
%5658 = fmul double %5653, %5657
%5659 = tail call double @llvm.fmuladd.f64(double %5649, double %5650, double %5658)
%5660 = fneg double %5648
%5661 = fmul double %5650, %5660
%5662 = tail call double @llvm.fmuladd.f64(double %5646, double %5652, double %5661)
%5663 = fsub double %9, %53
%5664 = fsub <2 x double> %17, %56
%5665 = extractelement <2 x double> %5664, i64 0
%5666 = fsub double %21, %57
%5667 = fmul double %5665, %5659
%5668 = tail call double @llvm.fmuladd.f64(double %5663, double %5656, double %5667)
%5669 = tail call double @llvm.fmuladd.f64(double %5666, double %5662, double %5668)
%5670 = fcmp ogt double %5669, 0.000000e+00
br i1 %5670, label %7621, label %5671
5671: ; preds = %5645
%5672 = fsub double %23, %41
%5673 = fsub <2 x double> %27, %45
%5674 = extractelement <2 x double> %5673, i64 1
%5675 = insertelement <2 x double> poison, double %5674, i64 0
%5676 = insertelement <2 x double> %5675, double %5672, i64 1
%5677 = fneg <2 x double> %5676
%5678 = fmul <2 x double> %107, %5677
%5679 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5673, <2 x double> %103, <2 x double> %5678)
%5680 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5679, <2 x double>* %5680
%5681 = extractelement <2 x double> %5673, i64 0
%5682 = fneg double %5681
%5683 = fmul double %114, %5682
%5684 = tail call double @llvm.fmuladd.f64(double %5672, double %99, double %5683)
store double %5684, double* %118
%5685 = fsub double %10, %41
%5686 = fsub <2 x double> %15, %45
%5687 = fsub double %20, %48
%5688 = shufflevector <2 x double> %5679, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5689 = fmul <2 x double> %5686, %5688
%5690 = extractelement <2 x double> %5689, i64 0
%5691 = extractelement <2 x double> %5679, i64 0
%5692 = tail call double @llvm.fmuladd.f64(double %5685, double %5691, double %5690)
%5693 = tail call double @llvm.fmuladd.f64(double %5687, double %5684, double %5692)
%5694 = fcmp ule double %5693, 0.000000e+00
%5695 = zext i1 %5694 to i32
br label %7621
5696: ; preds = %5644
%5697 = fcmp olt double %148, 0.000000e+00
br i1 %5697, label %5698, label %5742
5698: ; preds = %5696
%5699 = fsub double %41, %58
%5700 = fsub <2 x double> %45, %66
%5701 = extractelement <2 x double> %5700, i64 0
%5702 = fsub double %48, %70
%5703 = fneg double %130
%5704 = fmul double %5701, %5703
%5705 = tail call double @llvm.fmuladd.f64(double %129, double %5702, double %5704)
%5706 = extractelement <2 x double> %134, i64 0
%5707 = fneg double %5706
%5708 = fmul double %5702, %5707
%5709 = tail call double @llvm.fmuladd.f64(double %130, double %5699, double %5708)
%5710 = fneg double %129
%5711 = fmul double %5699, %5710
%5712 = tail call double @llvm.fmuladd.f64(double %5706, double %5701, double %5711)
%5713 = fmul double %121, %5709
%5714 = tail call double @llvm.fmuladd.f64(double %119, double %5705, double %5713)
%5715 = tail call double @llvm.fmuladd.f64(double %126, double %5712, double %5714)
%5716 = fcmp ogt double %5715, 0.000000e+00
br i1 %5716, label %7621, label %5717
5717: ; preds = %5698
%5718 = fsub double %23, %41
%5719 = fsub <2 x double> %27, %45
%5720 = extractelement <2 x double> %5719, i64 1
%5721 = insertelement <2 x double> poison, double %5720, i64 0
%5722 = insertelement <2 x double> %5721, double %5718, i64 1
%5723 = fneg <2 x double> %5722
%5724 = fmul <2 x double> %110, %5723
%5725 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5719, <2 x double> %97, <2 x double> %5724)
%5726 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5725, <2 x double>* %5726
%5727 = extractelement <2 x double> %5719, i64 0
%5728 = fneg double %5727
%5729 = fmul double %116, %5728
%5730 = tail call double @llvm.fmuladd.f64(double %5718, double %93, double %5729)
store double %5730, double* %118
%5731 = fsub double %10, %41
%5732 = fsub <2 x double> %15, %45
%5733 = fsub double %20, %48
%5734 = shufflevector <2 x double> %5725, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5735 = fmul <2 x double> %5732, %5734
%5736 = extractelement <2 x double> %5735, i64 0
%5737 = extractelement <2 x double> %5725, i64 0
%5738 = tail call double @llvm.fmuladd.f64(double %5731, double %5737, double %5736)
%5739 = tail call double @llvm.fmuladd.f64(double %5733, double %5730, double %5738)
%5740 = fcmp ule double %5739, 0.000000e+00
%5741 = zext i1 %5740 to i32
br label %7621
5742: ; preds = %5696
%5743 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %0, double* %1, double* %2, double* %3, double* %5, double* %4, double* %104)
br label %7621
5744: ; preds = %5146
br i1 %5147, label %5745, label %5908
5745: ; preds = %5744
%5746 = fcmp ogt double %148, 0.000000e+00
br i1 %5746, label %5747, label %5801
5747: ; preds = %5745
%5748 = fsub double %10, %41
%5749 = fsub <2 x double> %15, %45
%5750 = extractelement <2 x double> %5749, i64 0
%5751 = fsub double %20, %48
%5752 = fneg double %5751
%5753 = fmul double %93, %5752
%5754 = tail call double @llvm.fmuladd.f64(double %5750, double %109, double %5753)
%5755 = fneg double %5748
%5756 = fmul double %109, %5755
%5757 = tail call double @llvm.fmuladd.f64(double %5751, double %116, double %5756)
%5758 = fneg double %5750
%5759 = fmul double %116, %5758
%5760 = tail call double @llvm.fmuladd.f64(double %5748, double %93, double %5759)
%5761 = fsub double %9, %41
%5762 = fsub <2 x double> %17, %45
%5763 = extractelement <2 x double> %5762, i64 0
%5764 = fsub double %21, %48
%5765 = fmul double %5763, %5757
%5766 = tail call double @llvm.fmuladd.f64(double %5761, double %5754, double %5765)
%5767 = tail call double @llvm.fmuladd.f64(double %5764, double %5760, double %5766)
%5768 = fcmp ogt double %5767, 0.000000e+00
br i1 %5768, label %7621, label %5769
5769: ; preds = %5747
%5770 = fsub double %10, %53
%5771 = fsub <2 x double> %15, %56
%5772 = fsub <2 x double> %66, %56
%5773 = extractelement <2 x double> %5772, i64 0
%5774 = insertelement <2 x double> poison, double %57, i64 0
%5775 = insertelement <2 x double> %5774, double %53, i64 1
%5776 = fsub <2 x double> %100, %5775
%5777 = extractelement <2 x double> %5771, i64 1
%5778 = insertelement <2 x double> poison, double %5777, i64 0
%5779 = insertelement <2 x double> %5778, double %5770, i64 1
%5780 = fneg <2 x double> %5779
%5781 = shufflevector <2 x double> %5772, <2 x double> %5776, <2 x i32> <i32 0, i32 2>
%5782 = fmul <2 x double> %5781, %5780
%5783 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5771, <2 x double> %5776, <2 x double> %5782)
%5784 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5783, <2 x double>* %5784
%5785 = extractelement <2 x double> %5771, i64 0
%5786 = fneg double %5785
%5787 = extractelement <2 x double> %5776, i64 1
%5788 = fmul double %5787, %5786
%5789 = tail call double @llvm.fmuladd.f64(double %5770, double %5773, double %5788)
store double %5789, double* %118
%5790 = fsub double %23, %53
%5791 = fsub <2 x double> %27, %56
%5792 = fsub double %30, %57
%5793 = shufflevector <2 x double> %5783, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5794 = fmul <2 x double> %5791, %5793
%5795 = extractelement <2 x double> %5794, i64 0
%5796 = extractelement <2 x double> %5783, i64 0
%5797 = tail call double @llvm.fmuladd.f64(double %5790, double %5796, double %5795)
%5798 = tail call double @llvm.fmuladd.f64(double %5792, double %5789, double %5797)
%5799 = fcmp ule double %5798, 0.000000e+00
%5800 = zext i1 %5799 to i32
br label %7621
5801: ; preds = %5745
%5802 = fcmp ogt double %151, 0.000000e+00
br i1 %5802, label %5803, label %5857
5803: ; preds = %5801
%5804 = fsub double %23, %41
%5805 = fsub <2 x double> %27, %45
%5806 = extractelement <2 x double> %5805, i64 0
%5807 = fsub double %30, %48
%5808 = fneg double %5807
%5809 = fmul double %93, %5808
%5810 = tail call double @llvm.fmuladd.f64(double %5806, double %109, double %5809)
%5811 = fneg double %5804
%5812 = fmul double %109, %5811
%5813 = tail call double @llvm.fmuladd.f64(double %5807, double %116, double %5812)
%5814 = fneg double %5806
%5815 = fmul double %116, %5814
%5816 = tail call double @llvm.fmuladd.f64(double %5804, double %93, double %5815)
%5817 = fsub double %10, %41
%5818 = fsub <2 x double> %15, %45
%5819 = extractelement <2 x double> %5818, i64 0
%5820 = fsub double %20, %48
%5821 = fmul double %5819, %5813
%5822 = tail call double @llvm.fmuladd.f64(double %5817, double %5810, double %5821)
%5823 = tail call double @llvm.fmuladd.f64(double %5820, double %5816, double %5822)
%5824 = fcmp ogt double %5823, 0.000000e+00
br i1 %5824, label %7621, label %5825
5825: ; preds = %5803
%5826 = fsub double %23, %53
%5827 = fsub <2 x double> %27, %56
%5828 = fsub <2 x double> %66, %56
%5829 = extractelement <2 x double> %5828, i64 0
%5830 = insertelement <2 x double> poison, double %57, i64 0
%5831 = insertelement <2 x double> %5830, double %53, i64 1
%5832 = fsub <2 x double> %100, %5831
%5833 = extractelement <2 x double> %5827, i64 1
%5834 = insertelement <2 x double> poison, double %5833, i64 0
%5835 = insertelement <2 x double> %5834, double %5826, i64 1
%5836 = fneg <2 x double> %5835
%5837 = shufflevector <2 x double> %5828, <2 x double> %5832, <2 x i32> <i32 0, i32 2>
%5838 = fmul <2 x double> %5837, %5836
%5839 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5827, <2 x double> %5832, <2 x double> %5838)
%5840 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5839, <2 x double>* %5840
%5841 = extractelement <2 x double> %5827, i64 0
%5842 = fneg double %5841
%5843 = extractelement <2 x double> %5832, i64 1
%5844 = fmul double %5843, %5842
%5845 = tail call double @llvm.fmuladd.f64(double %5826, double %5829, double %5844)
store double %5845, double* %118
%5846 = fsub double %9, %53
%5847 = fsub <2 x double> %17, %56
%5848 = fsub double %21, %57
%5849 = shufflevector <2 x double> %5839, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5850 = fmul <2 x double> %5847, %5849
%5851 = extractelement <2 x double> %5850, i64 0
%5852 = extractelement <2 x double> %5839, i64 0
%5853 = tail call double @llvm.fmuladd.f64(double %5846, double %5852, double %5851)
%5854 = tail call double @llvm.fmuladd.f64(double %5848, double %5845, double %5853)
%5855 = fcmp ule double %5854, 0.000000e+00
%5856 = zext i1 %5855 to i32
br label %7621
5857: ; preds = %5801
%5858 = fsub double %53, %58
%5859 = fsub <2 x double> %56, %66
%5860 = extractelement <2 x double> %5859, i64 0
%5861 = fsub double %57, %70
%5862 = fneg double %126
%5863 = fmul double %5860, %5862
%5864 = tail call double @llvm.fmuladd.f64(double %121, double %5861, double %5863)
%5865 = fneg double %119
%5866 = fmul double %5861, %5865
%5867 = tail call double @llvm.fmuladd.f64(double %126, double %5858, double %5866)
%5868 = fneg double %121
%5869 = fmul double %5858, %5868
%5870 = tail call double @llvm.fmuladd.f64(double %119, double %5860, double %5869)
%5871 = fmul double %129, %5867
%5872 = extractelement <2 x double> %134, i64 0
%5873 = tail call double @llvm.fmuladd.f64(double %5872, double %5864, double %5871)
%5874 = tail call double @llvm.fmuladd.f64(double %130, double %5870, double %5873)
%5875 = fcmp ogt double %5874, 0.000000e+00
br i1 %5875, label %7621, label %5876
5876: ; preds = %5857
%5877 = fsub double %9, %53
%5878 = fsub <2 x double> %17, %56
%5879 = fsub <2 x double> %45, %56
%5880 = extractelement <2 x double> %5879, i64 0
%5881 = insertelement <2 x double> poison, double %57, i64 0
%5882 = insertelement <2 x double> %5881, double %53, i64 1
%5883 = fsub <2 x double> %102, %5882
%5884 = extractelement <2 x double> %5878, i64 1
%5885 = insertelement <2 x double> poison, double %5884, i64 0
%5886 = insertelement <2 x double> %5885, double %5877, i64 1
%5887 = fneg <2 x double> %5886
%5888 = shufflevector <2 x double> %5879, <2 x double> %5883, <2 x i32> <i32 0, i32 2>
%5889 = fmul <2 x double> %5888, %5887
%5890 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5878, <2 x double> %5883, <2 x double> %5889)
%5891 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5890, <2 x double>* %5891
%5892 = extractelement <2 x double> %5878, i64 0
%5893 = fneg double %5892
%5894 = extractelement <2 x double> %5883, i64 1
%5895 = fmul double %5894, %5893
%5896 = tail call double @llvm.fmuladd.f64(double %5877, double %5880, double %5895)
store double %5896, double* %118
%5897 = fsub double %10, %53
%5898 = fsub <2 x double> %15, %56
%5899 = fsub double %20, %57
%5900 = shufflevector <2 x double> %5890, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5901 = fmul <2 x double> %5898, %5900
%5902 = extractelement <2 x double> %5901, i64 0
%5903 = extractelement <2 x double> %5890, i64 0
%5904 = tail call double @llvm.fmuladd.f64(double %5897, double %5903, double %5902)
%5905 = tail call double @llvm.fmuladd.f64(double %5899, double %5896, double %5904)
%5906 = fcmp ule double %5905, 0.000000e+00
%5907 = zext i1 %5906 to i32
br label %7621
5908: ; preds = %5744
%5909 = fcmp olt double %127, 0.000000e+00
%5910 = fcmp olt double %148, 0.000000e+00
br i1 %5909, label %5911, label %6071
5911: ; preds = %5908
br i1 %5910, label %5912, label %5963
5912: ; preds = %5911
%5913 = fsub double %53, %58
%5914 = fsub <2 x double> %56, %66
%5915 = extractelement <2 x double> %5914, i64 0
%5916 = fsub double %57, %70
%5917 = fneg double %142
%5918 = fmul double %5915, %5917
%5919 = tail call double @llvm.fmuladd.f64(double %136, double %5916, double %5918)
%5920 = extractelement <2 x double> %134, i64 1
%5921 = fneg double %5920
%5922 = fmul double %5916, %5921
%5923 = tail call double @llvm.fmuladd.f64(double %142, double %5913, double %5922)
%5924 = fneg double %136
%5925 = fmul double %5913, %5924
%5926 = tail call double @llvm.fmuladd.f64(double %5920, double %5915, double %5925)
%5927 = fmul double %121, %5923
%5928 = tail call double @llvm.fmuladd.f64(double %119, double %5919, double %5927)
%5929 = tail call double @llvm.fmuladd.f64(double %126, double %5926, double %5928)
%5930 = fcmp ogt double %5929, 0.000000e+00
br i1 %5930, label %7621, label %5931
5931: ; preds = %5912
%5932 = fsub double %10, %53
%5933 = fsub <2 x double> %15, %56
%5934 = fsub <2 x double> %45, %56
%5935 = extractelement <2 x double> %5934, i64 0
%5936 = insertelement <2 x double> poison, double %57, i64 0
%5937 = insertelement <2 x double> %5936, double %53, i64 1
%5938 = fsub <2 x double> %102, %5937
%5939 = extractelement <2 x double> %5933, i64 1
%5940 = insertelement <2 x double> poison, double %5939, i64 0
%5941 = insertelement <2 x double> %5940, double %5932, i64 1
%5942 = fneg <2 x double> %5941
%5943 = shufflevector <2 x double> %5934, <2 x double> %5938, <2 x i32> <i32 0, i32 2>
%5944 = fmul <2 x double> %5943, %5942
%5945 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5933, <2 x double> %5938, <2 x double> %5944)
%5946 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5945, <2 x double>* %5946
%5947 = extractelement <2 x double> %5933, i64 0
%5948 = fneg double %5947
%5949 = extractelement <2 x double> %5938, i64 1
%5950 = fmul double %5949, %5948
%5951 = tail call double @llvm.fmuladd.f64(double %5932, double %5935, double %5950)
store double %5951, double* %118
%5952 = fsub double %23, %53
%5953 = fsub <2 x double> %27, %56
%5954 = fsub double %30, %57
%5955 = shufflevector <2 x double> %5945, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%5956 = fmul <2 x double> %5953, %5955
%5957 = extractelement <2 x double> %5956, i64 0
%5958 = extractelement <2 x double> %5945, i64 0
%5959 = tail call double @llvm.fmuladd.f64(double %5952, double %5958, double %5957)
%5960 = tail call double @llvm.fmuladd.f64(double %5954, double %5951, double %5959)
%5961 = fcmp ule double %5960, 0.000000e+00
%5962 = zext i1 %5961 to i32
br label %7621
5963: ; preds = %5911
%5964 = fcmp olt double %151, 0.000000e+00
br i1 %5964, label %5965, label %6017
5965: ; preds = %5963
%5966 = fsub double %53, %58
%5967 = fsub <2 x double> %56, %66
%5968 = extractelement <2 x double> %5967, i64 0
%5969 = fsub double %57, %70
%5970 = fneg double %130
%5971 = fmul double %5968, %5970
%5972 = tail call double @llvm.fmuladd.f64(double %129, double %5969, double %5971)
%5973 = extractelement <2 x double> %134, i64 0
%5974 = fneg double %5973
%5975 = fmul double %5969, %5974
%5976 = tail call double @llvm.fmuladd.f64(double %130, double %5966, double %5975)
%5977 = fneg double %129
%5978 = fmul double %5966, %5977
%5979 = tail call double @llvm.fmuladd.f64(double %5973, double %5968, double %5978)
%5980 = fmul double %136, %5976
%5981 = extractelement <2 x double> %134, i64 1
%5982 = tail call double @llvm.fmuladd.f64(double %5981, double %5972, double %5980)
%5983 = tail call double @llvm.fmuladd.f64(double %142, double %5979, double %5982)
%5984 = fcmp ogt double %5983, 0.000000e+00
br i1 %5984, label %7621, label %5985
5985: ; preds = %5965
%5986 = fsub double %23, %53
%5987 = fsub <2 x double> %27, %56
%5988 = fsub <2 x double> %45, %56
%5989 = extractelement <2 x double> %5988, i64 0
%5990 = insertelement <2 x double> poison, double %57, i64 0
%5991 = insertelement <2 x double> %5990, double %53, i64 1
%5992 = fsub <2 x double> %102, %5991
%5993 = extractelement <2 x double> %5987, i64 1
%5994 = insertelement <2 x double> poison, double %5993, i64 0
%5995 = insertelement <2 x double> %5994, double %5986, i64 1
%5996 = fneg <2 x double> %5995
%5997 = shufflevector <2 x double> %5988, <2 x double> %5992, <2 x i32> <i32 0, i32 2>
%5998 = fmul <2 x double> %5997, %5996
%5999 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %5987, <2 x double> %5992, <2 x double> %5998)
%6000 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %5999, <2 x double>* %6000
%6001 = extractelement <2 x double> %5987, i64 0
%6002 = fneg double %6001
%6003 = extractelement <2 x double> %5992, i64 1
%6004 = fmul double %6003, %6002
%6005 = tail call double @llvm.fmuladd.f64(double %5986, double %5989, double %6004)
store double %6005, double* %118
%6006 = fsub double %9, %53
%6007 = fsub <2 x double> %17, %56
%6008 = fsub double %21, %57
%6009 = shufflevector <2 x double> %5999, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6010 = fmul <2 x double> %6007, %6009
%6011 = extractelement <2 x double> %6010, i64 0
%6012 = extractelement <2 x double> %5999, i64 0
%6013 = tail call double @llvm.fmuladd.f64(double %6006, double %6012, double %6011)
%6014 = tail call double @llvm.fmuladd.f64(double %6008, double %6005, double %6013)
%6015 = fcmp ule double %6014, 0.000000e+00
%6016 = zext i1 %6015 to i32
br label %7621
6017: ; preds = %5963
%6018 = fsub double %9, %41
%6019 = fsub <2 x double> %17, %45
%6020 = extractelement <2 x double> %6019, i64 0
%6021 = fsub double %21, %48
%6022 = fneg double %6021
%6023 = fmul double %93, %6022
%6024 = tail call double @llvm.fmuladd.f64(double %6020, double %109, double %6023)
%6025 = fneg double %6018
%6026 = fmul double %109, %6025
%6027 = tail call double @llvm.fmuladd.f64(double %6021, double %116, double %6026)
%6028 = fneg double %6020
%6029 = fmul double %116, %6028
%6030 = tail call double @llvm.fmuladd.f64(double %6018, double %93, double %6029)
%6031 = fsub double %23, %41
%6032 = fsub <2 x double> %27, %45
%6033 = extractelement <2 x double> %6032, i64 0
%6034 = fsub double %30, %48
%6035 = fmul double %6033, %6027
%6036 = tail call double @llvm.fmuladd.f64(double %6031, double %6024, double %6035)
%6037 = tail call double @llvm.fmuladd.f64(double %6034, double %6030, double %6036)
%6038 = fcmp ogt double %6037, 0.000000e+00
br i1 %6038, label %7621, label %6039
6039: ; preds = %6017
%6040 = fsub double %9, %53
%6041 = fsub <2 x double> %17, %56
%6042 = fsub <2 x double> %66, %56
%6043 = extractelement <2 x double> %6042, i64 0
%6044 = insertelement <2 x double> poison, double %57, i64 0
%6045 = insertelement <2 x double> %6044, double %53, i64 1
%6046 = fsub <2 x double> %100, %6045
%6047 = extractelement <2 x double> %6041, i64 1
%6048 = insertelement <2 x double> poison, double %6047, i64 0
%6049 = insertelement <2 x double> %6048, double %6040, i64 1
%6050 = fneg <2 x double> %6049
%6051 = shufflevector <2 x double> %6042, <2 x double> %6046, <2 x i32> <i32 0, i32 2>
%6052 = fmul <2 x double> %6051, %6050
%6053 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6041, <2 x double> %6046, <2 x double> %6052)
%6054 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6053, <2 x double>* %6054
%6055 = extractelement <2 x double> %6041, i64 0
%6056 = fneg double %6055
%6057 = extractelement <2 x double> %6046, i64 1
%6058 = fmul double %6057, %6056
%6059 = tail call double @llvm.fmuladd.f64(double %6040, double %6043, double %6058)
store double %6059, double* %118
%6060 = fsub double %10, %53
%6061 = fsub <2 x double> %15, %56
%6062 = fsub double %20, %57
%6063 = shufflevector <2 x double> %6053, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6064 = fmul <2 x double> %6061, %6063
%6065 = extractelement <2 x double> %6064, i64 0
%6066 = extractelement <2 x double> %6053, i64 0
%6067 = tail call double @llvm.fmuladd.f64(double %6060, double %6066, double %6065)
%6068 = tail call double @llvm.fmuladd.f64(double %6062, double %6059, double %6067)
%6069 = fcmp ule double %6068, 0.000000e+00
%6070 = zext i1 %6069 to i32
br label %7621
6071: ; preds = %5908
br i1 %5910, label %6072, label %6179
6072: ; preds = %6071
%6073 = fcmp ult double %151, 0.000000e+00
br i1 %6073, label %6128, label %6074
6074: ; preds = %6072
%6075 = fsub double %23, %41
%6076 = fsub <2 x double> %27, %45
%6077 = extractelement <2 x double> %6076, i64 0
%6078 = fsub double %30, %48
%6079 = fneg double %6078
%6080 = fmul double %93, %6079
%6081 = tail call double @llvm.fmuladd.f64(double %6077, double %109, double %6080)
%6082 = fneg double %6075
%6083 = fmul double %109, %6082
%6084 = tail call double @llvm.fmuladd.f64(double %6078, double %116, double %6083)
%6085 = fneg double %6077
%6086 = fmul double %116, %6085
%6087 = tail call double @llvm.fmuladd.f64(double %6075, double %93, double %6086)
%6088 = fsub double %10, %41
%6089 = fsub <2 x double> %15, %45
%6090 = extractelement <2 x double> %6089, i64 0
%6091 = fsub double %20, %48
%6092 = fmul double %6090, %6084
%6093 = tail call double @llvm.fmuladd.f64(double %6088, double %6081, double %6092)
%6094 = tail call double @llvm.fmuladd.f64(double %6091, double %6087, double %6093)
%6095 = fcmp ogt double %6094, 0.000000e+00
br i1 %6095, label %7621, label %6096
6096: ; preds = %6074
%6097 = fsub double %23, %53
%6098 = fsub <2 x double> %27, %56
%6099 = fsub <2 x double> %66, %56
%6100 = extractelement <2 x double> %6099, i64 0
%6101 = insertelement <2 x double> poison, double %57, i64 0
%6102 = insertelement <2 x double> %6101, double %53, i64 1
%6103 = fsub <2 x double> %100, %6102
%6104 = extractelement <2 x double> %6098, i64 1
%6105 = insertelement <2 x double> poison, double %6104, i64 0
%6106 = insertelement <2 x double> %6105, double %6097, i64 1
%6107 = fneg <2 x double> %6106
%6108 = shufflevector <2 x double> %6099, <2 x double> %6103, <2 x i32> <i32 0, i32 2>
%6109 = fmul <2 x double> %6108, %6107
%6110 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6098, <2 x double> %6103, <2 x double> %6109)
%6111 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6110, <2 x double>* %6111
%6112 = extractelement <2 x double> %6098, i64 0
%6113 = fneg double %6112
%6114 = extractelement <2 x double> %6103, i64 1
%6115 = fmul double %6114, %6113
%6116 = tail call double @llvm.fmuladd.f64(double %6097, double %6100, double %6115)
store double %6116, double* %118
%6117 = fsub double %9, %53
%6118 = fsub <2 x double> %17, %56
%6119 = fsub double %21, %57
%6120 = shufflevector <2 x double> %6110, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6121 = fmul <2 x double> %6118, %6120
%6122 = extractelement <2 x double> %6121, i64 0
%6123 = extractelement <2 x double> %6110, i64 0
%6124 = tail call double @llvm.fmuladd.f64(double %6117, double %6123, double %6122)
%6125 = tail call double @llvm.fmuladd.f64(double %6119, double %6116, double %6124)
%6126 = fcmp ule double %6125, 0.000000e+00
%6127 = zext i1 %6126 to i32
br label %7621
6128: ; preds = %6072
%6129 = fsub double %53, %58
%6130 = fsub <2 x double> %56, %66
%6131 = extractelement <2 x double> %6130, i64 0
%6132 = fsub double %57, %70
%6133 = fneg double %126
%6134 = fmul double %6131, %6133
%6135 = tail call double @llvm.fmuladd.f64(double %121, double %6132, double %6134)
%6136 = fneg double %119
%6137 = fmul double %6132, %6136
%6138 = tail call double @llvm.fmuladd.f64(double %126, double %6129, double %6137)
%6139 = fneg double %121
%6140 = fmul double %6129, %6139
%6141 = tail call double @llvm.fmuladd.f64(double %119, double %6131, double %6140)
%6142 = fmul double %129, %6138
%6143 = extractelement <2 x double> %134, i64 0
%6144 = tail call double @llvm.fmuladd.f64(double %6143, double %6135, double %6142)
%6145 = tail call double @llvm.fmuladd.f64(double %130, double %6141, double %6144)
%6146 = fcmp ogt double %6145, 0.000000e+00
br i1 %6146, label %7621, label %6147
6147: ; preds = %6128
%6148 = fsub double %9, %53
%6149 = fsub <2 x double> %17, %56
%6150 = fsub <2 x double> %45, %56
%6151 = extractelement <2 x double> %6150, i64 0
%6152 = insertelement <2 x double> poison, double %57, i64 0
%6153 = insertelement <2 x double> %6152, double %53, i64 1
%6154 = fsub <2 x double> %102, %6153
%6155 = extractelement <2 x double> %6149, i64 1
%6156 = insertelement <2 x double> poison, double %6155, i64 0
%6157 = insertelement <2 x double> %6156, double %6148, i64 1
%6158 = fneg <2 x double> %6157
%6159 = shufflevector <2 x double> %6150, <2 x double> %6154, <2 x i32> <i32 0, i32 2>
%6160 = fmul <2 x double> %6159, %6158
%6161 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6149, <2 x double> %6154, <2 x double> %6160)
%6162 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6161, <2 x double>* %6162
%6163 = extractelement <2 x double> %6149, i64 0
%6164 = fneg double %6163
%6165 = extractelement <2 x double> %6154, i64 1
%6166 = fmul double %6165, %6164
%6167 = tail call double @llvm.fmuladd.f64(double %6148, double %6151, double %6166)
store double %6167, double* %118
%6168 = fsub double %10, %53
%6169 = fsub <2 x double> %15, %56
%6170 = fsub double %20, %57
%6171 = shufflevector <2 x double> %6161, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6172 = fmul <2 x double> %6169, %6171
%6173 = extractelement <2 x double> %6172, i64 0
%6174 = extractelement <2 x double> %6161, i64 0
%6175 = tail call double @llvm.fmuladd.f64(double %6168, double %6174, double %6173)
%6176 = tail call double @llvm.fmuladd.f64(double %6170, double %6167, double %6175)
%6177 = fcmp ule double %6176, 0.000000e+00
%6178 = zext i1 %6177 to i32
br label %7621
6179: ; preds = %6071
%6180 = fcmp ogt double %148, 0.000000e+00
%6181 = fcmp ogt double %151, 0.000000e+00
br i1 %6180, label %6182, label %6289
6182: ; preds = %6179
br i1 %6181, label %6183, label %6237
6183: ; preds = %6182
%6184 = fsub double %9, %41
%6185 = fsub <2 x double> %17, %45
%6186 = extractelement <2 x double> %6185, i64 0
%6187 = fsub double %21, %48
%6188 = fneg double %6187
%6189 = fmul double %93, %6188
%6190 = tail call double @llvm.fmuladd.f64(double %6186, double %109, double %6189)
%6191 = fneg double %6184
%6192 = fmul double %109, %6191
%6193 = tail call double @llvm.fmuladd.f64(double %6187, double %116, double %6192)
%6194 = fneg double %6186
%6195 = fmul double %116, %6194
%6196 = tail call double @llvm.fmuladd.f64(double %6184, double %93, double %6195)
%6197 = fsub double %23, %41
%6198 = fsub <2 x double> %27, %45
%6199 = extractelement <2 x double> %6198, i64 0
%6200 = fsub double %30, %48
%6201 = fmul double %6199, %6193
%6202 = tail call double @llvm.fmuladd.f64(double %6197, double %6190, double %6201)
%6203 = tail call double @llvm.fmuladd.f64(double %6200, double %6196, double %6202)
%6204 = fcmp ogt double %6203, 0.000000e+00
br i1 %6204, label %7621, label %6205
6205: ; preds = %6183
%6206 = fsub double %9, %53
%6207 = fsub <2 x double> %17, %56
%6208 = fsub <2 x double> %66, %56
%6209 = extractelement <2 x double> %6208, i64 0
%6210 = insertelement <2 x double> poison, double %57, i64 0
%6211 = insertelement <2 x double> %6210, double %53, i64 1
%6212 = fsub <2 x double> %100, %6211
%6213 = extractelement <2 x double> %6207, i64 1
%6214 = insertelement <2 x double> poison, double %6213, i64 0
%6215 = insertelement <2 x double> %6214, double %6206, i64 1
%6216 = fneg <2 x double> %6215
%6217 = shufflevector <2 x double> %6208, <2 x double> %6212, <2 x i32> <i32 0, i32 2>
%6218 = fmul <2 x double> %6217, %6216
%6219 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6207, <2 x double> %6212, <2 x double> %6218)
%6220 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6219, <2 x double>* %6220
%6221 = extractelement <2 x double> %6207, i64 0
%6222 = fneg double %6221
%6223 = extractelement <2 x double> %6212, i64 1
%6224 = fmul double %6223, %6222
%6225 = tail call double @llvm.fmuladd.f64(double %6206, double %6209, double %6224)
store double %6225, double* %118
%6226 = fsub double %10, %53
%6227 = fsub <2 x double> %15, %56
%6228 = fsub double %20, %57
%6229 = shufflevector <2 x double> %6219, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6230 = fmul <2 x double> %6227, %6229
%6231 = extractelement <2 x double> %6230, i64 0
%6232 = extractelement <2 x double> %6219, i64 0
%6233 = tail call double @llvm.fmuladd.f64(double %6226, double %6232, double %6231)
%6234 = tail call double @llvm.fmuladd.f64(double %6228, double %6225, double %6233)
%6235 = fcmp ule double %6234, 0.000000e+00
%6236 = zext i1 %6235 to i32
br label %7621
6237: ; preds = %6182
%6238 = fsub double %53, %58
%6239 = fsub <2 x double> %56, %66
%6240 = extractelement <2 x double> %6239, i64 0
%6241 = fsub double %57, %70
%6242 = fneg double %130
%6243 = fmul double %6240, %6242
%6244 = tail call double @llvm.fmuladd.f64(double %129, double %6241, double %6243)
%6245 = extractelement <2 x double> %134, i64 0
%6246 = fneg double %6245
%6247 = fmul double %6241, %6246
%6248 = tail call double @llvm.fmuladd.f64(double %130, double %6238, double %6247)
%6249 = fneg double %129
%6250 = fmul double %6238, %6249
%6251 = tail call double @llvm.fmuladd.f64(double %6245, double %6240, double %6250)
%6252 = fmul double %136, %6248
%6253 = extractelement <2 x double> %134, i64 1
%6254 = tail call double @llvm.fmuladd.f64(double %6253, double %6244, double %6252)
%6255 = tail call double @llvm.fmuladd.f64(double %142, double %6251, double %6254)
%6256 = fcmp ogt double %6255, 0.000000e+00
br i1 %6256, label %7621, label %6257
6257: ; preds = %6237
%6258 = fsub double %23, %53
%6259 = fsub <2 x double> %27, %56
%6260 = fsub <2 x double> %45, %56
%6261 = extractelement <2 x double> %6260, i64 0
%6262 = insertelement <2 x double> poison, double %57, i64 0
%6263 = insertelement <2 x double> %6262, double %53, i64 1
%6264 = fsub <2 x double> %102, %6263
%6265 = extractelement <2 x double> %6259, i64 1
%6266 = insertelement <2 x double> poison, double %6265, i64 0
%6267 = insertelement <2 x double> %6266, double %6258, i64 1
%6268 = fneg <2 x double> %6267
%6269 = shufflevector <2 x double> %6260, <2 x double> %6264, <2 x i32> <i32 0, i32 2>
%6270 = fmul <2 x double> %6269, %6268
%6271 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6259, <2 x double> %6264, <2 x double> %6270)
%6272 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6271, <2 x double>* %6272
%6273 = extractelement <2 x double> %6259, i64 0
%6274 = fneg double %6273
%6275 = extractelement <2 x double> %6264, i64 1
%6276 = fmul double %6275, %6274
%6277 = tail call double @llvm.fmuladd.f64(double %6258, double %6261, double %6276)
store double %6277, double* %118
%6278 = fsub double %9, %53
%6279 = fsub <2 x double> %17, %56
%6280 = fsub double %21, %57
%6281 = shufflevector <2 x double> %6271, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6282 = fmul <2 x double> %6279, %6281
%6283 = extractelement <2 x double> %6282, i64 0
%6284 = extractelement <2 x double> %6271, i64 0
%6285 = tail call double @llvm.fmuladd.f64(double %6278, double %6284, double %6283)
%6286 = tail call double @llvm.fmuladd.f64(double %6280, double %6277, double %6285)
%6287 = fcmp ule double %6286, 0.000000e+00
%6288 = zext i1 %6287 to i32
br label %7621
6289: ; preds = %6179
br i1 %6181, label %6290, label %6341
6290: ; preds = %6289
%6291 = fsub double %53, %58
%6292 = fsub <2 x double> %56, %66
%6293 = extractelement <2 x double> %6292, i64 0
%6294 = fsub double %57, %70
%6295 = fneg double %142
%6296 = fmul double %6293, %6295
%6297 = tail call double @llvm.fmuladd.f64(double %136, double %6294, double %6296)
%6298 = extractelement <2 x double> %134, i64 1
%6299 = fneg double %6298
%6300 = fmul double %6294, %6299
%6301 = tail call double @llvm.fmuladd.f64(double %142, double %6291, double %6300)
%6302 = fneg double %136
%6303 = fmul double %6291, %6302
%6304 = tail call double @llvm.fmuladd.f64(double %6298, double %6293, double %6303)
%6305 = fmul double %121, %6301
%6306 = tail call double @llvm.fmuladd.f64(double %119, double %6297, double %6305)
%6307 = tail call double @llvm.fmuladd.f64(double %126, double %6304, double %6306)
%6308 = fcmp ogt double %6307, 0.000000e+00
br i1 %6308, label %7621, label %6309
6309: ; preds = %6290
%6310 = fsub double %10, %53
%6311 = fsub <2 x double> %15, %56
%6312 = fsub <2 x double> %45, %56
%6313 = extractelement <2 x double> %6312, i64 0
%6314 = insertelement <2 x double> poison, double %57, i64 0
%6315 = insertelement <2 x double> %6314, double %53, i64 1
%6316 = fsub <2 x double> %102, %6315
%6317 = extractelement <2 x double> %6311, i64 1
%6318 = insertelement <2 x double> poison, double %6317, i64 0
%6319 = insertelement <2 x double> %6318, double %6310, i64 1
%6320 = fneg <2 x double> %6319
%6321 = shufflevector <2 x double> %6312, <2 x double> %6316, <2 x i32> <i32 0, i32 2>
%6322 = fmul <2 x double> %6321, %6320
%6323 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6311, <2 x double> %6316, <2 x double> %6322)
%6324 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6323, <2 x double>* %6324
%6325 = extractelement <2 x double> %6311, i64 0
%6326 = fneg double %6325
%6327 = extractelement <2 x double> %6316, i64 1
%6328 = fmul double %6327, %6326
%6329 = tail call double @llvm.fmuladd.f64(double %6310, double %6313, double %6328)
store double %6329, double* %118
%6330 = fsub double %23, %53
%6331 = fsub <2 x double> %27, %56
%6332 = fsub double %30, %57
%6333 = shufflevector <2 x double> %6323, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6334 = fmul <2 x double> %6331, %6333
%6335 = extractelement <2 x double> %6334, i64 0
%6336 = extractelement <2 x double> %6323, i64 0
%6337 = tail call double @llvm.fmuladd.f64(double %6330, double %6336, double %6335)
%6338 = tail call double @llvm.fmuladd.f64(double %6332, double %6329, double %6337)
%6339 = fcmp ule double %6338, 0.000000e+00
%6340 = zext i1 %6339 to i32
br label %7621
6341: ; preds = %6289
%6342 = fcmp olt double %151, 0.000000e+00
br i1 %6342, label %6343, label %6397
6343: ; preds = %6341
%6344 = fsub double %10, %41
%6345 = fsub <2 x double> %15, %45
%6346 = extractelement <2 x double> %6345, i64 0
%6347 = fsub double %20, %48
%6348 = fneg double %6347
%6349 = fmul double %93, %6348
%6350 = tail call double @llvm.fmuladd.f64(double %6346, double %109, double %6349)
%6351 = fneg double %6344
%6352 = fmul double %109, %6351
%6353 = tail call double @llvm.fmuladd.f64(double %6347, double %116, double %6352)
%6354 = fneg double %6346
%6355 = fmul double %116, %6354
%6356 = tail call double @llvm.fmuladd.f64(double %6344, double %93, double %6355)
%6357 = fsub double %9, %41
%6358 = fsub <2 x double> %17, %45
%6359 = extractelement <2 x double> %6358, i64 0
%6360 = fsub double %21, %48
%6361 = fmul double %6359, %6353
%6362 = tail call double @llvm.fmuladd.f64(double %6357, double %6350, double %6361)
%6363 = tail call double @llvm.fmuladd.f64(double %6360, double %6356, double %6362)
%6364 = fcmp ogt double %6363, 0.000000e+00
br i1 %6364, label %7621, label %6365
6365: ; preds = %6343
%6366 = fsub double %10, %53
%6367 = fsub <2 x double> %15, %56
%6368 = fsub <2 x double> %66, %56
%6369 = extractelement <2 x double> %6368, i64 0
%6370 = insertelement <2 x double> poison, double %57, i64 0
%6371 = insertelement <2 x double> %6370, double %53, i64 1
%6372 = fsub <2 x double> %100, %6371
%6373 = extractelement <2 x double> %6367, i64 1
%6374 = insertelement <2 x double> poison, double %6373, i64 0
%6375 = insertelement <2 x double> %6374, double %6366, i64 1
%6376 = fneg <2 x double> %6375
%6377 = shufflevector <2 x double> %6368, <2 x double> %6372, <2 x i32> <i32 0, i32 2>
%6378 = fmul <2 x double> %6377, %6376
%6379 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %6367, <2 x double> %6372, <2 x double> %6378)
%6380 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6379, <2 x double>* %6380
%6381 = extractelement <2 x double> %6367, i64 0
%6382 = fneg double %6381
%6383 = extractelement <2 x double> %6372, i64 1
%6384 = fmul double %6383, %6382
%6385 = tail call double @llvm.fmuladd.f64(double %6366, double %6369, double %6384)
store double %6385, double* %118
%6386 = fsub double %23, %53
%6387 = fsub <2 x double> %27, %56
%6388 = fsub double %30, %57
%6389 = shufflevector <2 x double> %6379, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6390 = fmul <2 x double> %6387, %6389
%6391 = extractelement <2 x double> %6390, i64 0
%6392 = extractelement <2 x double> %6379, i64 0
%6393 = tail call double @llvm.fmuladd.f64(double %6386, double %6392, double %6391)
%6394 = tail call double @llvm.fmuladd.f64(double %6388, double %6385, double %6393)
%6395 = fcmp ule double %6394, 0.000000e+00
%6396 = zext i1 %6395 to i32
br label %7621
6397: ; preds = %6341
%6398 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %1, double* %2, double* %0, double* %3, double* %4, double* %5, double* %104)
br label %7621
6399: ; preds = %5143
%6400 = extractelement <2 x i1> %5144, i64 0
br i1 %6400, label %6401, label %7009
6401: ; preds = %6399
%6402 = fcmp ogt double %127, 0.000000e+00
br i1 %6402, label %6403, label %6554
6403: ; preds = %6401
%6404 = fcmp ogt double %148, 0.000000e+00
br i1 %6404, label %6405, label %6455
6405: ; preds = %6403
%6406 = fsub double %10, %53
%6407 = fsub <2 x double> %15, %56
%6408 = extractelement <2 x double> %6407, i64 0
%6409 = fsub double %20, %57
%6410 = fsub double %58, %53
%6411 = fsub <2 x double> %66, %56
%6412 = extractelement <2 x double> %6411, i64 0
%6413 = fsub double %70, %57
%6414 = fneg double %6409
%6415 = fmul double %6412, %6414
%6416 = tail call double @llvm.fmuladd.f64(double %6408, double %6413, double %6415)
%6417 = fneg double %6406
%6418 = fmul double %6413, %6417
%6419 = tail call double @llvm.fmuladd.f64(double %6409, double %6410, double %6418)
%6420 = fneg double %6408
%6421 = fmul double %6410, %6420
%6422 = tail call double @llvm.fmuladd.f64(double %6406, double %6412, double %6421)
%6423 = fsub double %9, %53
%6424 = fsub <2 x double> %17, %56
%6425 = extractelement <2 x double> %6424, i64 0
%6426 = fsub double %21, %57
%6427 = fmul double %6425, %6419
%6428 = tail call double @llvm.fmuladd.f64(double %6423, double %6416, double %6427)
%6429 = tail call double @llvm.fmuladd.f64(double %6426, double %6422, double %6428)
%6430 = fcmp ogt double %6429, 0.000000e+00
br i1 %6430, label %7621, label %6431
6431: ; preds = %6405
%6432 = fsub <2 x double> %45, %66
%6433 = extractelement <2 x double> %6432, i64 0
%6434 = fsub <2 x double> %102, %100
%6435 = extractelement <2 x double> %134, i64 1
%6436 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%6437 = fneg <2 x double> %6436
%6438 = shufflevector <2 x double> %6432, <2 x double> %6434, <2 x i32> <i32 0, i32 2>
%6439 = fmul <2 x double> %6438, %6437
%6440 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %6434, <2 x double> %6439)
%6441 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6440, <2 x double>* %6441
%6442 = fneg double %136
%6443 = extractelement <2 x double> %6434, i64 1
%6444 = fmul double %6443, %6442
%6445 = tail call double @llvm.fmuladd.f64(double %6435, double %6433, double %6444)
store double %6445, double* %118
%6446 = shufflevector <2 x double> %6440, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6447 = fmul <2 x double> %128, %6446
%6448 = extractelement <2 x double> %6447, i64 0
%6449 = extractelement <2 x double> %134, i64 0
%6450 = extractelement <2 x double> %6440, i64 0
%6451 = tail call double @llvm.fmuladd.f64(double %6449, double %6450, double %6448)
%6452 = tail call double @llvm.fmuladd.f64(double %130, double %6445, double %6451)
%6453 = fcmp ule double %6452, 0.000000e+00
%6454 = zext i1 %6453 to i32
br label %7621
6455: ; preds = %6403
%6456 = fcmp ogt double %151, 0.000000e+00
br i1 %6456, label %6457, label %6506
6457: ; preds = %6455
%6458 = fsub double %23, %53
%6459 = fsub <2 x double> %27, %56
%6460 = extractelement <2 x double> %6459, i64 0
%6461 = fsub double %30, %57
%6462 = fsub double %58, %53
%6463 = fsub <2 x double> %66, %56
%6464 = extractelement <2 x double> %6463, i64 0
%6465 = fsub double %70, %57
%6466 = fneg double %6461
%6467 = fmul double %6464, %6466
%6468 = tail call double @llvm.fmuladd.f64(double %6460, double %6465, double %6467)
%6469 = fneg double %6458
%6470 = fmul double %6465, %6469
%6471 = tail call double @llvm.fmuladd.f64(double %6461, double %6462, double %6470)
%6472 = fneg double %6460
%6473 = fmul double %6462, %6472
%6474 = tail call double @llvm.fmuladd.f64(double %6458, double %6464, double %6473)
%6475 = fsub double %10, %53
%6476 = fsub <2 x double> %15, %56
%6477 = extractelement <2 x double> %6476, i64 0
%6478 = fsub double %20, %57
%6479 = fmul double %6477, %6471
%6480 = tail call double @llvm.fmuladd.f64(double %6475, double %6468, double %6479)
%6481 = tail call double @llvm.fmuladd.f64(double %6478, double %6474, double %6480)
%6482 = fcmp ogt double %6481, 0.000000e+00
br i1 %6482, label %7621, label %6483
6483: ; preds = %6457
%6484 = fsub <2 x double> %45, %66
%6485 = extractelement <2 x double> %6484, i64 0
%6486 = fsub <2 x double> %102, %100
%6487 = extractelement <2 x double> %134, i64 0
%6488 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%6489 = fneg <2 x double> %6488
%6490 = shufflevector <2 x double> %6484, <2 x double> %6486, <2 x i32> <i32 0, i32 2>
%6491 = fmul <2 x double> %6490, %6489
%6492 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %6486, <2 x double> %6491)
%6493 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6492, <2 x double>* %6493
%6494 = fneg double %129
%6495 = extractelement <2 x double> %6486, i64 1
%6496 = fmul double %6495, %6494
%6497 = tail call double @llvm.fmuladd.f64(double %6487, double %6485, double %6496)
store double %6497, double* %118
%6498 = shufflevector <2 x double> %6492, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6499 = fmul <2 x double> %120, %6498
%6500 = extractelement <2 x double> %6499, i64 0
%6501 = extractelement <2 x double> %6492, i64 0
%6502 = tail call double @llvm.fmuladd.f64(double %119, double %6501, double %6500)
%6503 = tail call double @llvm.fmuladd.f64(double %126, double %6497, double %6502)
%6504 = fcmp ule double %6503, 0.000000e+00
%6505 = zext i1 %6504 to i32
br label %7621
6506: ; preds = %6455
%6507 = fsub double %9, %41
%6508 = fsub <2 x double> %17, %45
%6509 = extractelement <2 x double> %6508, i64 0
%6510 = fsub double %21, %48
%6511 = fneg double %6510
%6512 = fmul double %99, %6511
%6513 = tail call double @llvm.fmuladd.f64(double %6509, double %106, double %6512)
%6514 = fneg double %6507
%6515 = fmul double %106, %6514
%6516 = tail call double @llvm.fmuladd.f64(double %6510, double %114, double %6515)
%6517 = fneg double %6509
%6518 = fmul double %114, %6517
%6519 = tail call double @llvm.fmuladd.f64(double %6507, double %99, double %6518)
%6520 = fsub double %23, %41
%6521 = fsub <2 x double> %27, %45
%6522 = extractelement <2 x double> %6521, i64 0
%6523 = fsub double %30, %48
%6524 = fmul double %6522, %6516
%6525 = tail call double @llvm.fmuladd.f64(double %6520, double %6513, double %6524)
%6526 = tail call double @llvm.fmuladd.f64(double %6523, double %6519, double %6525)
%6527 = fcmp ogt double %6526, 0.000000e+00
br i1 %6527, label %7621, label %6528
6528: ; preds = %6506
%6529 = fsub <2 x double> %56, %66
%6530 = extractelement <2 x double> %6529, i64 0
%6531 = insertelement <2 x double> poison, double %57, i64 0
%6532 = insertelement <2 x double> %6531, double %53, i64 1
%6533 = fsub <2 x double> %6532, %100
%6534 = insertelement <2 x double> poison, double %126, i64 0
%6535 = insertelement <2 x double> %6534, double %119, i64 1
%6536 = fneg <2 x double> %6535
%6537 = shufflevector <2 x double> %6529, <2 x double> %6533, <2 x i32> <i32 0, i32 2>
%6538 = fmul <2 x double> %6537, %6536
%6539 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %6533, <2 x double> %6538)
%6540 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6539, <2 x double>* %6540
%6541 = fneg double %121
%6542 = extractelement <2 x double> %6533, i64 1
%6543 = fmul double %6542, %6541
%6544 = tail call double @llvm.fmuladd.f64(double %119, double %6530, double %6543)
store double %6544, double* %118
%6545 = shufflevector <2 x double> %6539, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6546 = fmul <2 x double> %135, %6545
%6547 = extractelement <2 x double> %6546, i64 0
%6548 = extractelement <2 x double> %134, i64 1
%6549 = extractelement <2 x double> %6539, i64 0
%6550 = tail call double @llvm.fmuladd.f64(double %6548, double %6549, double %6547)
%6551 = tail call double @llvm.fmuladd.f64(double %142, double %6544, double %6550)
%6552 = fcmp ule double %6551, 0.000000e+00
%6553 = zext i1 %6552 to i32
br label %7621
6554: ; preds = %6401
%6555 = fcmp olt double %127, 0.000000e+00
%6556 = fcmp olt double %148, 0.000000e+00
br i1 %6555, label %6557, label %6705
6557: ; preds = %6554
br i1 %6556, label %6558, label %6606
6558: ; preds = %6557
%6559 = fsub double %10, %41
%6560 = fsub <2 x double> %15, %45
%6561 = extractelement <2 x double> %6560, i64 0
%6562 = fsub double %20, %48
%6563 = fneg double %6562
%6564 = fmul double %99, %6563
%6565 = tail call double @llvm.fmuladd.f64(double %6561, double %106, double %6564)
%6566 = fneg double %6559
%6567 = fmul double %106, %6566
%6568 = tail call double @llvm.fmuladd.f64(double %6562, double %114, double %6567)
%6569 = fneg double %6561
%6570 = fmul double %114, %6569
%6571 = tail call double @llvm.fmuladd.f64(double %6559, double %99, double %6570)
%6572 = fsub double %9, %41
%6573 = fsub <2 x double> %17, %45
%6574 = extractelement <2 x double> %6573, i64 0
%6575 = fsub double %21, %48
%6576 = fmul double %6574, %6568
%6577 = tail call double @llvm.fmuladd.f64(double %6572, double %6565, double %6576)
%6578 = tail call double @llvm.fmuladd.f64(double %6575, double %6571, double %6577)
%6579 = fcmp ogt double %6578, 0.000000e+00
br i1 %6579, label %7621, label %6580
6580: ; preds = %6558
%6581 = fsub <2 x double> %56, %66
%6582 = extractelement <2 x double> %6581, i64 0
%6583 = insertelement <2 x double> poison, double %57, i64 0
%6584 = insertelement <2 x double> %6583, double %53, i64 1
%6585 = fsub <2 x double> %6584, %100
%6586 = extractelement <2 x double> %134, i64 1
%6587 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%6588 = fneg <2 x double> %6587
%6589 = shufflevector <2 x double> %6581, <2 x double> %6585, <2 x i32> <i32 0, i32 2>
%6590 = fmul <2 x double> %6589, %6588
%6591 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %6585, <2 x double> %6590)
%6592 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6591, <2 x double>* %6592
%6593 = fneg double %136
%6594 = extractelement <2 x double> %6585, i64 1
%6595 = fmul double %6594, %6593
%6596 = tail call double @llvm.fmuladd.f64(double %6586, double %6582, double %6595)
store double %6596, double* %118
%6597 = shufflevector <2 x double> %6591, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6598 = fmul <2 x double> %128, %6597
%6599 = extractelement <2 x double> %6598, i64 0
%6600 = extractelement <2 x double> %134, i64 0
%6601 = extractelement <2 x double> %6591, i64 0
%6602 = tail call double @llvm.fmuladd.f64(double %6600, double %6601, double %6599)
%6603 = tail call double @llvm.fmuladd.f64(double %130, double %6596, double %6602)
%6604 = fcmp ule double %6603, 0.000000e+00
%6605 = zext i1 %6604 to i32
br label %7621
6606: ; preds = %6557
%6607 = fcmp olt double %151, 0.000000e+00
br i1 %6607, label %6608, label %6655
6608: ; preds = %6606
%6609 = fsub double %23, %41
%6610 = fsub <2 x double> %27, %45
%6611 = extractelement <2 x double> %6610, i64 0
%6612 = fsub double %30, %48
%6613 = fneg double %6612
%6614 = fmul double %99, %6613
%6615 = tail call double @llvm.fmuladd.f64(double %6611, double %106, double %6614)
%6616 = fneg double %6609
%6617 = fmul double %106, %6616
%6618 = tail call double @llvm.fmuladd.f64(double %6612, double %114, double %6617)
%6619 = fneg double %6611
%6620 = fmul double %114, %6619
%6621 = tail call double @llvm.fmuladd.f64(double %6609, double %99, double %6620)
%6622 = fsub double %10, %41
%6623 = fsub <2 x double> %15, %45
%6624 = extractelement <2 x double> %6623, i64 0
%6625 = fsub double %20, %48
%6626 = fmul double %6624, %6618
%6627 = tail call double @llvm.fmuladd.f64(double %6622, double %6615, double %6626)
%6628 = tail call double @llvm.fmuladd.f64(double %6625, double %6621, double %6627)
%6629 = fcmp ogt double %6628, 0.000000e+00
br i1 %6629, label %7621, label %6630
6630: ; preds = %6608
%6631 = fsub <2 x double> %56, %66
%6632 = extractelement <2 x double> %6631, i64 0
%6633 = insertelement <2 x double> poison, double %57, i64 0
%6634 = insertelement <2 x double> %6633, double %53, i64 1
%6635 = fsub <2 x double> %6634, %100
%6636 = extractelement <2 x double> %134, i64 0
%6637 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%6638 = fneg <2 x double> %6637
%6639 = shufflevector <2 x double> %6631, <2 x double> %6635, <2 x i32> <i32 0, i32 2>
%6640 = fmul <2 x double> %6639, %6638
%6641 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %6635, <2 x double> %6640)
%6642 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6641, <2 x double>* %6642
%6643 = fneg double %129
%6644 = extractelement <2 x double> %6635, i64 1
%6645 = fmul double %6644, %6643
%6646 = tail call double @llvm.fmuladd.f64(double %6636, double %6632, double %6645)
store double %6646, double* %118
%6647 = shufflevector <2 x double> %6641, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6648 = fmul <2 x double> %120, %6647
%6649 = extractelement <2 x double> %6648, i64 0
%6650 = extractelement <2 x double> %6641, i64 0
%6651 = tail call double @llvm.fmuladd.f64(double %119, double %6650, double %6649)
%6652 = tail call double @llvm.fmuladd.f64(double %126, double %6646, double %6651)
%6653 = fcmp ule double %6652, 0.000000e+00
%6654 = zext i1 %6653 to i32
br label %7621
6655: ; preds = %6606
%6656 = fsub double %9, %53
%6657 = fsub <2 x double> %17, %56
%6658 = extractelement <2 x double> %6657, i64 0
%6659 = fsub double %21, %57
%6660 = fsub double %58, %53
%6661 = fsub <2 x double> %66, %56
%6662 = extractelement <2 x double> %6661, i64 0
%6663 = fsub double %70, %57
%6664 = fneg double %6659
%6665 = fmul double %6662, %6664
%6666 = tail call double @llvm.fmuladd.f64(double %6658, double %6663, double %6665)
%6667 = fneg double %6656
%6668 = fmul double %6663, %6667
%6669 = tail call double @llvm.fmuladd.f64(double %6659, double %6660, double %6668)
%6670 = fneg double %6658
%6671 = fmul double %6660, %6670
%6672 = tail call double @llvm.fmuladd.f64(double %6656, double %6662, double %6671)
%6673 = fsub double %23, %53
%6674 = fsub <2 x double> %27, %56
%6675 = extractelement <2 x double> %6674, i64 0
%6676 = fsub double %30, %57
%6677 = fmul double %6675, %6669
%6678 = tail call double @llvm.fmuladd.f64(double %6673, double %6666, double %6677)
%6679 = tail call double @llvm.fmuladd.f64(double %6676, double %6672, double %6678)
%6680 = fcmp ogt double %6679, 0.000000e+00
br i1 %6680, label %7621, label %6681
6681: ; preds = %6655
%6682 = fsub <2 x double> %45, %66
%6683 = extractelement <2 x double> %6682, i64 0
%6684 = fsub <2 x double> %102, %100
%6685 = insertelement <2 x double> poison, double %126, i64 0
%6686 = insertelement <2 x double> %6685, double %119, i64 1
%6687 = fneg <2 x double> %6686
%6688 = shufflevector <2 x double> %6682, <2 x double> %6684, <2 x i32> <i32 0, i32 2>
%6689 = fmul <2 x double> %6688, %6687
%6690 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %6684, <2 x double> %6689)
%6691 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6690, <2 x double>* %6691
%6692 = fneg double %121
%6693 = extractelement <2 x double> %6684, i64 1
%6694 = fmul double %6693, %6692
%6695 = tail call double @llvm.fmuladd.f64(double %119, double %6683, double %6694)
store double %6695, double* %118
%6696 = shufflevector <2 x double> %6690, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6697 = fmul <2 x double> %135, %6696
%6698 = extractelement <2 x double> %6697, i64 0
%6699 = extractelement <2 x double> %134, i64 1
%6700 = extractelement <2 x double> %6690, i64 0
%6701 = tail call double @llvm.fmuladd.f64(double %6699, double %6700, double %6698)
%6702 = tail call double @llvm.fmuladd.f64(double %142, double %6695, double %6701)
%6703 = fcmp ule double %6702, 0.000000e+00
%6704 = zext i1 %6703 to i32
br label %7621
6705: ; preds = %6554
br i1 %6556, label %6706, label %6805
6706: ; preds = %6705
%6707 = fcmp ult double %151, 0.000000e+00
br i1 %6707, label %6757, label %6708
6708: ; preds = %6706
%6709 = fsub double %23, %53
%6710 = fsub <2 x double> %27, %56
%6711 = extractelement <2 x double> %6710, i64 0
%6712 = fsub double %30, %57
%6713 = fsub double %58, %53
%6714 = fsub <2 x double> %66, %56
%6715 = extractelement <2 x double> %6714, i64 0
%6716 = fsub double %70, %57
%6717 = fneg double %6712
%6718 = fmul double %6715, %6717
%6719 = tail call double @llvm.fmuladd.f64(double %6711, double %6716, double %6718)
%6720 = fneg double %6709
%6721 = fmul double %6716, %6720
%6722 = tail call double @llvm.fmuladd.f64(double %6712, double %6713, double %6721)
%6723 = fneg double %6711
%6724 = fmul double %6713, %6723
%6725 = tail call double @llvm.fmuladd.f64(double %6709, double %6715, double %6724)
%6726 = fsub double %10, %53
%6727 = fsub <2 x double> %15, %56
%6728 = extractelement <2 x double> %6727, i64 0
%6729 = fsub double %20, %57
%6730 = fmul double %6728, %6722
%6731 = tail call double @llvm.fmuladd.f64(double %6726, double %6719, double %6730)
%6732 = tail call double @llvm.fmuladd.f64(double %6729, double %6725, double %6731)
%6733 = fcmp ogt double %6732, 0.000000e+00
br i1 %6733, label %7621, label %6734
6734: ; preds = %6708
%6735 = fsub <2 x double> %45, %66
%6736 = extractelement <2 x double> %6735, i64 0
%6737 = fsub <2 x double> %102, %100
%6738 = extractelement <2 x double> %134, i64 0
%6739 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%6740 = fneg <2 x double> %6739
%6741 = shufflevector <2 x double> %6735, <2 x double> %6737, <2 x i32> <i32 0, i32 2>
%6742 = fmul <2 x double> %6741, %6740
%6743 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %6737, <2 x double> %6742)
%6744 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6743, <2 x double>* %6744
%6745 = fneg double %129
%6746 = extractelement <2 x double> %6737, i64 1
%6747 = fmul double %6746, %6745
%6748 = tail call double @llvm.fmuladd.f64(double %6738, double %6736, double %6747)
store double %6748, double* %118
%6749 = shufflevector <2 x double> %6743, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6750 = fmul <2 x double> %120, %6749
%6751 = extractelement <2 x double> %6750, i64 0
%6752 = extractelement <2 x double> %6743, i64 0
%6753 = tail call double @llvm.fmuladd.f64(double %119, double %6752, double %6751)
%6754 = tail call double @llvm.fmuladd.f64(double %126, double %6748, double %6753)
%6755 = fcmp ule double %6754, 0.000000e+00
%6756 = zext i1 %6755 to i32
br label %7621
6757: ; preds = %6706
%6758 = fsub double %9, %41
%6759 = fsub <2 x double> %17, %45
%6760 = extractelement <2 x double> %6759, i64 0
%6761 = fsub double %21, %48
%6762 = fneg double %6761
%6763 = fmul double %99, %6762
%6764 = tail call double @llvm.fmuladd.f64(double %6760, double %106, double %6763)
%6765 = fneg double %6758
%6766 = fmul double %106, %6765
%6767 = tail call double @llvm.fmuladd.f64(double %6761, double %114, double %6766)
%6768 = fneg double %6760
%6769 = fmul double %114, %6768
%6770 = tail call double @llvm.fmuladd.f64(double %6758, double %99, double %6769)
%6771 = fsub double %23, %41
%6772 = fsub <2 x double> %27, %45
%6773 = extractelement <2 x double> %6772, i64 0
%6774 = fsub double %30, %48
%6775 = fmul double %6773, %6767
%6776 = tail call double @llvm.fmuladd.f64(double %6771, double %6764, double %6775)
%6777 = tail call double @llvm.fmuladd.f64(double %6774, double %6770, double %6776)
%6778 = fcmp ogt double %6777, 0.000000e+00
br i1 %6778, label %7621, label %6779
6779: ; preds = %6757
%6780 = fsub <2 x double> %56, %66
%6781 = extractelement <2 x double> %6780, i64 0
%6782 = insertelement <2 x double> poison, double %57, i64 0
%6783 = insertelement <2 x double> %6782, double %53, i64 1
%6784 = fsub <2 x double> %6783, %100
%6785 = insertelement <2 x double> poison, double %126, i64 0
%6786 = insertelement <2 x double> %6785, double %119, i64 1
%6787 = fneg <2 x double> %6786
%6788 = shufflevector <2 x double> %6780, <2 x double> %6784, <2 x i32> <i32 0, i32 2>
%6789 = fmul <2 x double> %6788, %6787
%6790 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %6784, <2 x double> %6789)
%6791 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6790, <2 x double>* %6791
%6792 = fneg double %121
%6793 = extractelement <2 x double> %6784, i64 1
%6794 = fmul double %6793, %6792
%6795 = tail call double @llvm.fmuladd.f64(double %119, double %6781, double %6794)
store double %6795, double* %118
%6796 = shufflevector <2 x double> %6790, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6797 = fmul <2 x double> %135, %6796
%6798 = extractelement <2 x double> %6797, i64 0
%6799 = extractelement <2 x double> %134, i64 1
%6800 = extractelement <2 x double> %6790, i64 0
%6801 = tail call double @llvm.fmuladd.f64(double %6799, double %6800, double %6798)
%6802 = tail call double @llvm.fmuladd.f64(double %142, double %6795, double %6801)
%6803 = fcmp ule double %6802, 0.000000e+00
%6804 = zext i1 %6803 to i32
br label %7621
6805: ; preds = %6705
%6806 = fcmp ogt double %148, 0.000000e+00
%6807 = fcmp ogt double %151, 0.000000e+00
br i1 %6806, label %6808, label %6906
6808: ; preds = %6805
br i1 %6807, label %6809, label %6859
6809: ; preds = %6808
%6810 = fsub double %9, %53
%6811 = fsub <2 x double> %17, %56
%6812 = extractelement <2 x double> %6811, i64 0
%6813 = fsub double %21, %57
%6814 = fsub double %58, %53
%6815 = fsub <2 x double> %66, %56
%6816 = extractelement <2 x double> %6815, i64 0
%6817 = fsub double %70, %57
%6818 = fneg double %6813
%6819 = fmul double %6816, %6818
%6820 = tail call double @llvm.fmuladd.f64(double %6812, double %6817, double %6819)
%6821 = fneg double %6810
%6822 = fmul double %6817, %6821
%6823 = tail call double @llvm.fmuladd.f64(double %6813, double %6814, double %6822)
%6824 = fneg double %6812
%6825 = fmul double %6814, %6824
%6826 = tail call double @llvm.fmuladd.f64(double %6810, double %6816, double %6825)
%6827 = fsub double %23, %53
%6828 = fsub <2 x double> %27, %56
%6829 = extractelement <2 x double> %6828, i64 0
%6830 = fsub double %30, %57
%6831 = fmul double %6829, %6823
%6832 = tail call double @llvm.fmuladd.f64(double %6827, double %6820, double %6831)
%6833 = tail call double @llvm.fmuladd.f64(double %6830, double %6826, double %6832)
%6834 = fcmp ogt double %6833, 0.000000e+00
br i1 %6834, label %7621, label %6835
6835: ; preds = %6809
%6836 = fsub <2 x double> %45, %66
%6837 = extractelement <2 x double> %6836, i64 0
%6838 = fsub <2 x double> %102, %100
%6839 = insertelement <2 x double> poison, double %126, i64 0
%6840 = insertelement <2 x double> %6839, double %119, i64 1
%6841 = fneg <2 x double> %6840
%6842 = shufflevector <2 x double> %6836, <2 x double> %6838, <2 x i32> <i32 0, i32 2>
%6843 = fmul <2 x double> %6842, %6841
%6844 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %6838, <2 x double> %6843)
%6845 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6844, <2 x double>* %6845
%6846 = fneg double %121
%6847 = extractelement <2 x double> %6838, i64 1
%6848 = fmul double %6847, %6846
%6849 = tail call double @llvm.fmuladd.f64(double %119, double %6837, double %6848)
store double %6849, double* %118
%6850 = shufflevector <2 x double> %6844, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6851 = fmul <2 x double> %135, %6850
%6852 = extractelement <2 x double> %6851, i64 0
%6853 = extractelement <2 x double> %134, i64 1
%6854 = extractelement <2 x double> %6844, i64 0
%6855 = tail call double @llvm.fmuladd.f64(double %6853, double %6854, double %6852)
%6856 = tail call double @llvm.fmuladd.f64(double %142, double %6849, double %6855)
%6857 = fcmp ule double %6856, 0.000000e+00
%6858 = zext i1 %6857 to i32
br label %7621
6859: ; preds = %6808
%6860 = fsub double %23, %41
%6861 = fsub <2 x double> %27, %45
%6862 = extractelement <2 x double> %6861, i64 0
%6863 = fsub double %30, %48
%6864 = fneg double %6863
%6865 = fmul double %99, %6864
%6866 = tail call double @llvm.fmuladd.f64(double %6862, double %106, double %6865)
%6867 = fneg double %6860
%6868 = fmul double %106, %6867
%6869 = tail call double @llvm.fmuladd.f64(double %6863, double %114, double %6868)
%6870 = fneg double %6862
%6871 = fmul double %114, %6870
%6872 = tail call double @llvm.fmuladd.f64(double %6860, double %99, double %6871)
%6873 = fsub double %10, %41
%6874 = fsub <2 x double> %15, %45
%6875 = extractelement <2 x double> %6874, i64 0
%6876 = fsub double %20, %48
%6877 = fmul double %6875, %6869
%6878 = tail call double @llvm.fmuladd.f64(double %6873, double %6866, double %6877)
%6879 = tail call double @llvm.fmuladd.f64(double %6876, double %6872, double %6878)
%6880 = fcmp ogt double %6879, 0.000000e+00
br i1 %6880, label %7621, label %6881
6881: ; preds = %6859
%6882 = fsub <2 x double> %56, %66
%6883 = extractelement <2 x double> %6882, i64 0
%6884 = insertelement <2 x double> poison, double %57, i64 0
%6885 = insertelement <2 x double> %6884, double %53, i64 1
%6886 = fsub <2 x double> %6885, %100
%6887 = extractelement <2 x double> %134, i64 0
%6888 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%6889 = fneg <2 x double> %6888
%6890 = shufflevector <2 x double> %6882, <2 x double> %6886, <2 x i32> <i32 0, i32 2>
%6891 = fmul <2 x double> %6890, %6889
%6892 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %6886, <2 x double> %6891)
%6893 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6892, <2 x double>* %6893
%6894 = fneg double %129
%6895 = extractelement <2 x double> %6886, i64 1
%6896 = fmul double %6895, %6894
%6897 = tail call double @llvm.fmuladd.f64(double %6887, double %6883, double %6896)
store double %6897, double* %118
%6898 = shufflevector <2 x double> %6892, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6899 = fmul <2 x double> %120, %6898
%6900 = extractelement <2 x double> %6899, i64 0
%6901 = extractelement <2 x double> %6892, i64 0
%6902 = tail call double @llvm.fmuladd.f64(double %119, double %6901, double %6900)
%6903 = tail call double @llvm.fmuladd.f64(double %126, double %6897, double %6902)
%6904 = fcmp ule double %6903, 0.000000e+00
%6905 = zext i1 %6904 to i32
br label %7621
6906: ; preds = %6805
br i1 %6807, label %6907, label %6955
6907: ; preds = %6906
%6908 = fsub double %10, %41
%6909 = fsub <2 x double> %15, %45
%6910 = extractelement <2 x double> %6909, i64 0
%6911 = fsub double %20, %48
%6912 = fneg double %6911
%6913 = fmul double %99, %6912
%6914 = tail call double @llvm.fmuladd.f64(double %6910, double %106, double %6913)
%6915 = fneg double %6908
%6916 = fmul double %106, %6915
%6917 = tail call double @llvm.fmuladd.f64(double %6911, double %114, double %6916)
%6918 = fneg double %6910
%6919 = fmul double %114, %6918
%6920 = tail call double @llvm.fmuladd.f64(double %6908, double %99, double %6919)
%6921 = fsub double %9, %41
%6922 = fsub <2 x double> %17, %45
%6923 = extractelement <2 x double> %6922, i64 0
%6924 = fsub double %21, %48
%6925 = fmul double %6923, %6917
%6926 = tail call double @llvm.fmuladd.f64(double %6921, double %6914, double %6925)
%6927 = tail call double @llvm.fmuladd.f64(double %6924, double %6920, double %6926)
%6928 = fcmp ogt double %6927, 0.000000e+00
br i1 %6928, label %7621, label %6929
6929: ; preds = %6907
%6930 = fsub <2 x double> %56, %66
%6931 = extractelement <2 x double> %6930, i64 0
%6932 = insertelement <2 x double> poison, double %57, i64 0
%6933 = insertelement <2 x double> %6932, double %53, i64 1
%6934 = fsub <2 x double> %6933, %100
%6935 = extractelement <2 x double> %134, i64 1
%6936 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%6937 = fneg <2 x double> %6936
%6938 = shufflevector <2 x double> %6930, <2 x double> %6934, <2 x i32> <i32 0, i32 2>
%6939 = fmul <2 x double> %6938, %6937
%6940 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %6934, <2 x double> %6939)
%6941 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6940, <2 x double>* %6941
%6942 = fneg double %136
%6943 = extractelement <2 x double> %6934, i64 1
%6944 = fmul double %6943, %6942
%6945 = tail call double @llvm.fmuladd.f64(double %6935, double %6931, double %6944)
store double %6945, double* %118
%6946 = shufflevector <2 x double> %6940, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6947 = fmul <2 x double> %128, %6946
%6948 = extractelement <2 x double> %6947, i64 0
%6949 = extractelement <2 x double> %134, i64 0
%6950 = extractelement <2 x double> %6940, i64 0
%6951 = tail call double @llvm.fmuladd.f64(double %6949, double %6950, double %6948)
%6952 = tail call double @llvm.fmuladd.f64(double %130, double %6945, double %6951)
%6953 = fcmp ule double %6952, 0.000000e+00
%6954 = zext i1 %6953 to i32
br label %7621
6955: ; preds = %6906
%6956 = fcmp olt double %151, 0.000000e+00
br i1 %6956, label %6957, label %7007
6957: ; preds = %6955
%6958 = fsub double %10, %53
%6959 = fsub <2 x double> %15, %56
%6960 = extractelement <2 x double> %6959, i64 0
%6961 = fsub double %20, %57
%6962 = fsub double %58, %53
%6963 = fsub <2 x double> %66, %56
%6964 = extractelement <2 x double> %6963, i64 0
%6965 = fsub double %70, %57
%6966 = fneg double %6961
%6967 = fmul double %6964, %6966
%6968 = tail call double @llvm.fmuladd.f64(double %6960, double %6965, double %6967)
%6969 = fneg double %6958
%6970 = fmul double %6965, %6969
%6971 = tail call double @llvm.fmuladd.f64(double %6961, double %6962, double %6970)
%6972 = fneg double %6960
%6973 = fmul double %6962, %6972
%6974 = tail call double @llvm.fmuladd.f64(double %6958, double %6964, double %6973)
%6975 = fsub double %9, %53
%6976 = fsub <2 x double> %17, %56
%6977 = extractelement <2 x double> %6976, i64 0
%6978 = fsub double %21, %57
%6979 = fmul double %6977, %6971
%6980 = tail call double @llvm.fmuladd.f64(double %6975, double %6968, double %6979)
%6981 = tail call double @llvm.fmuladd.f64(double %6978, double %6974, double %6980)
%6982 = fcmp ogt double %6981, 0.000000e+00
br i1 %6982, label %7621, label %6983
6983: ; preds = %6957
%6984 = fsub <2 x double> %45, %66
%6985 = extractelement <2 x double> %6984, i64 0
%6986 = fsub <2 x double> %102, %100
%6987 = extractelement <2 x double> %134, i64 1
%6988 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%6989 = fneg <2 x double> %6988
%6990 = shufflevector <2 x double> %6984, <2 x double> %6986, <2 x i32> <i32 0, i32 2>
%6991 = fmul <2 x double> %6990, %6989
%6992 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %6986, <2 x double> %6991)
%6993 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %6992, <2 x double>* %6993
%6994 = fneg double %136
%6995 = extractelement <2 x double> %6986, i64 1
%6996 = fmul double %6995, %6994
%6997 = tail call double @llvm.fmuladd.f64(double %6987, double %6985, double %6996)
store double %6997, double* %118
%6998 = shufflevector <2 x double> %6992, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%6999 = fmul <2 x double> %128, %6998
%7000 = extractelement <2 x double> %6999, i64 0
%7001 = extractelement <2 x double> %134, i64 0
%7002 = extractelement <2 x double> %6992, i64 0
%7003 = tail call double @llvm.fmuladd.f64(double %7001, double %7002, double %7000)
%7004 = tail call double @llvm.fmuladd.f64(double %130, double %6997, double %7003)
%7005 = fcmp ule double %7004, 0.000000e+00
%7006 = zext i1 %7005 to i32
br label %7621
7007: ; preds = %6955
%7008 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %2, double* %0, double* %1, double* %3, double* %4, double* %5, double* %104)
br label %7621
7009: ; preds = %6399
%7010 = fcmp olt double %87, 0.000000e+00
br i1 %7010, label %7011, label %7619
7011: ; preds = %7009
%7012 = fcmp ogt double %127, 0.000000e+00
br i1 %7012, label %7013, label %7164
7013: ; preds = %7011
%7014 = fcmp ogt double %151, 0.000000e+00
br i1 %7014, label %7015, label %7065
7015: ; preds = %7013
%7016 = fsub double %23, %53
%7017 = fsub <2 x double> %27, %56
%7018 = extractelement <2 x double> %7017, i64 0
%7019 = fsub double %30, %57
%7020 = fsub double %58, %53
%7021 = fsub <2 x double> %66, %56
%7022 = extractelement <2 x double> %7021, i64 0
%7023 = fsub double %70, %57
%7024 = fneg double %7019
%7025 = fmul double %7022, %7024
%7026 = tail call double @llvm.fmuladd.f64(double %7018, double %7023, double %7025)
%7027 = fneg double %7016
%7028 = fmul double %7023, %7027
%7029 = tail call double @llvm.fmuladd.f64(double %7019, double %7020, double %7028)
%7030 = fneg double %7018
%7031 = fmul double %7020, %7030
%7032 = tail call double @llvm.fmuladd.f64(double %7016, double %7022, double %7031)
%7033 = fsub double %9, %53
%7034 = fsub <2 x double> %17, %56
%7035 = extractelement <2 x double> %7034, i64 0
%7036 = fsub double %21, %57
%7037 = fmul double %7035, %7029
%7038 = tail call double @llvm.fmuladd.f64(double %7033, double %7026, double %7037)
%7039 = tail call double @llvm.fmuladd.f64(double %7036, double %7032, double %7038)
%7040 = fcmp ogt double %7039, 0.000000e+00
br i1 %7040, label %7621, label %7041
7041: ; preds = %7015
%7042 = fsub <2 x double> %45, %66
%7043 = extractelement <2 x double> %7042, i64 0
%7044 = fsub <2 x double> %102, %100
%7045 = extractelement <2 x double> %134, i64 0
%7046 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%7047 = fneg <2 x double> %7046
%7048 = shufflevector <2 x double> %7042, <2 x double> %7044, <2 x i32> <i32 0, i32 2>
%7049 = fmul <2 x double> %7048, %7047
%7050 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %7044, <2 x double> %7049)
%7051 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7050, <2 x double>* %7051
%7052 = fneg double %129
%7053 = extractelement <2 x double> %7044, i64 1
%7054 = fmul double %7053, %7052
%7055 = tail call double @llvm.fmuladd.f64(double %7045, double %7043, double %7054)
store double %7055, double* %118
%7056 = shufflevector <2 x double> %7050, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7057 = fmul <2 x double> %135, %7056
%7058 = extractelement <2 x double> %7057, i64 0
%7059 = extractelement <2 x double> %134, i64 1
%7060 = extractelement <2 x double> %7050, i64 0
%7061 = tail call double @llvm.fmuladd.f64(double %7059, double %7060, double %7058)
%7062 = tail call double @llvm.fmuladd.f64(double %142, double %7055, double %7061)
%7063 = fcmp ule double %7062, 0.000000e+00
%7064 = zext i1 %7063 to i32
br label %7621
7065: ; preds = %7013
%7066 = fcmp ogt double %148, 0.000000e+00
br i1 %7066, label %7067, label %7116
7067: ; preds = %7065
%7068 = fsub double %10, %53
%7069 = fsub <2 x double> %15, %56
%7070 = extractelement <2 x double> %7069, i64 0
%7071 = fsub double %20, %57
%7072 = fsub double %58, %53
%7073 = fsub <2 x double> %66, %56
%7074 = extractelement <2 x double> %7073, i64 0
%7075 = fsub double %70, %57
%7076 = fneg double %7071
%7077 = fmul double %7074, %7076
%7078 = tail call double @llvm.fmuladd.f64(double %7070, double %7075, double %7077)
%7079 = fneg double %7068
%7080 = fmul double %7075, %7079
%7081 = tail call double @llvm.fmuladd.f64(double %7071, double %7072, double %7080)
%7082 = fneg double %7070
%7083 = fmul double %7072, %7082
%7084 = tail call double @llvm.fmuladd.f64(double %7068, double %7074, double %7083)
%7085 = fsub double %23, %53
%7086 = fsub <2 x double> %27, %56
%7087 = extractelement <2 x double> %7086, i64 0
%7088 = fsub double %30, %57
%7089 = fmul double %7087, %7081
%7090 = tail call double @llvm.fmuladd.f64(double %7085, double %7078, double %7089)
%7091 = tail call double @llvm.fmuladd.f64(double %7088, double %7084, double %7090)
%7092 = fcmp ogt double %7091, 0.000000e+00
br i1 %7092, label %7621, label %7093
7093: ; preds = %7067
%7094 = fsub <2 x double> %45, %66
%7095 = extractelement <2 x double> %7094, i64 0
%7096 = fsub <2 x double> %102, %100
%7097 = extractelement <2 x double> %134, i64 1
%7098 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%7099 = fneg <2 x double> %7098
%7100 = shufflevector <2 x double> %7094, <2 x double> %7096, <2 x i32> <i32 0, i32 2>
%7101 = fmul <2 x double> %7100, %7099
%7102 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %7096, <2 x double> %7101)
%7103 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7102, <2 x double>* %7103
%7104 = fneg double %136
%7105 = extractelement <2 x double> %7096, i64 1
%7106 = fmul double %7105, %7104
%7107 = tail call double @llvm.fmuladd.f64(double %7097, double %7095, double %7106)
store double %7107, double* %118
%7108 = shufflevector <2 x double> %7102, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7109 = fmul <2 x double> %120, %7108
%7110 = extractelement <2 x double> %7109, i64 0
%7111 = extractelement <2 x double> %7102, i64 0
%7112 = tail call double @llvm.fmuladd.f64(double %119, double %7111, double %7110)
%7113 = tail call double @llvm.fmuladd.f64(double %126, double %7107, double %7112)
%7114 = fcmp ule double %7113, 0.000000e+00
%7115 = zext i1 %7114 to i32
br label %7621
7116: ; preds = %7065
%7117 = fsub double %9, %41
%7118 = fsub <2 x double> %17, %45
%7119 = extractelement <2 x double> %7118, i64 0
%7120 = fsub double %21, %48
%7121 = fneg double %7120
%7122 = fmul double %99, %7121
%7123 = tail call double @llvm.fmuladd.f64(double %7119, double %106, double %7122)
%7124 = fneg double %7117
%7125 = fmul double %106, %7124
%7126 = tail call double @llvm.fmuladd.f64(double %7120, double %114, double %7125)
%7127 = fneg double %7119
%7128 = fmul double %114, %7127
%7129 = tail call double @llvm.fmuladd.f64(double %7117, double %99, double %7128)
%7130 = fsub double %10, %41
%7131 = fsub <2 x double> %15, %45
%7132 = extractelement <2 x double> %7131, i64 0
%7133 = fsub double %20, %48
%7134 = fmul double %7132, %7126
%7135 = tail call double @llvm.fmuladd.f64(double %7130, double %7123, double %7134)
%7136 = tail call double @llvm.fmuladd.f64(double %7133, double %7129, double %7135)
%7137 = fcmp ogt double %7136, 0.000000e+00
br i1 %7137, label %7621, label %7138
7138: ; preds = %7116
%7139 = fsub <2 x double> %56, %66
%7140 = extractelement <2 x double> %7139, i64 0
%7141 = insertelement <2 x double> poison, double %57, i64 0
%7142 = insertelement <2 x double> %7141, double %53, i64 1
%7143 = fsub <2 x double> %7142, %100
%7144 = insertelement <2 x double> poison, double %126, i64 0
%7145 = insertelement <2 x double> %7144, double %119, i64 1
%7146 = fneg <2 x double> %7145
%7147 = shufflevector <2 x double> %7139, <2 x double> %7143, <2 x i32> <i32 0, i32 2>
%7148 = fmul <2 x double> %7147, %7146
%7149 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %7143, <2 x double> %7148)
%7150 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7149, <2 x double>* %7150
%7151 = fneg double %121
%7152 = extractelement <2 x double> %7143, i64 1
%7153 = fmul double %7152, %7151
%7154 = tail call double @llvm.fmuladd.f64(double %119, double %7140, double %7153)
store double %7154, double* %118
%7155 = shufflevector <2 x double> %7149, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7156 = fmul <2 x double> %128, %7155
%7157 = extractelement <2 x double> %7156, i64 0
%7158 = extractelement <2 x double> %134, i64 0
%7159 = extractelement <2 x double> %7149, i64 0
%7160 = tail call double @llvm.fmuladd.f64(double %7158, double %7159, double %7157)
%7161 = tail call double @llvm.fmuladd.f64(double %130, double %7154, double %7160)
%7162 = fcmp ule double %7161, 0.000000e+00
%7163 = zext i1 %7162 to i32
br label %7621
7164: ; preds = %7011
%7165 = fcmp olt double %127, 0.000000e+00
%7166 = fcmp olt double %151, 0.000000e+00
br i1 %7165, label %7167, label %7315
7167: ; preds = %7164
br i1 %7166, label %7168, label %7216
7168: ; preds = %7167
%7169 = fsub double %23, %41
%7170 = fsub <2 x double> %27, %45
%7171 = extractelement <2 x double> %7170, i64 0
%7172 = fsub double %30, %48
%7173 = fneg double %7172
%7174 = fmul double %99, %7173
%7175 = tail call double @llvm.fmuladd.f64(double %7171, double %106, double %7174)
%7176 = fneg double %7169
%7177 = fmul double %106, %7176
%7178 = tail call double @llvm.fmuladd.f64(double %7172, double %114, double %7177)
%7179 = fneg double %7171
%7180 = fmul double %114, %7179
%7181 = tail call double @llvm.fmuladd.f64(double %7169, double %99, double %7180)
%7182 = fsub double %9, %41
%7183 = fsub <2 x double> %17, %45
%7184 = extractelement <2 x double> %7183, i64 0
%7185 = fsub double %21, %48
%7186 = fmul double %7184, %7178
%7187 = tail call double @llvm.fmuladd.f64(double %7182, double %7175, double %7186)
%7188 = tail call double @llvm.fmuladd.f64(double %7185, double %7181, double %7187)
%7189 = fcmp ogt double %7188, 0.000000e+00
br i1 %7189, label %7621, label %7190
7190: ; preds = %7168
%7191 = fsub <2 x double> %56, %66
%7192 = extractelement <2 x double> %7191, i64 0
%7193 = insertelement <2 x double> poison, double %57, i64 0
%7194 = insertelement <2 x double> %7193, double %53, i64 1
%7195 = fsub <2 x double> %7194, %100
%7196 = extractelement <2 x double> %134, i64 0
%7197 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%7198 = fneg <2 x double> %7197
%7199 = shufflevector <2 x double> %7191, <2 x double> %7195, <2 x i32> <i32 0, i32 2>
%7200 = fmul <2 x double> %7199, %7198
%7201 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %7195, <2 x double> %7200)
%7202 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7201, <2 x double>* %7202
%7203 = fneg double %129
%7204 = extractelement <2 x double> %7195, i64 1
%7205 = fmul double %7204, %7203
%7206 = tail call double @llvm.fmuladd.f64(double %7196, double %7192, double %7205)
store double %7206, double* %118
%7207 = shufflevector <2 x double> %7201, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7208 = fmul <2 x double> %135, %7207
%7209 = extractelement <2 x double> %7208, i64 0
%7210 = extractelement <2 x double> %134, i64 1
%7211 = extractelement <2 x double> %7201, i64 0
%7212 = tail call double @llvm.fmuladd.f64(double %7210, double %7211, double %7209)
%7213 = tail call double @llvm.fmuladd.f64(double %142, double %7206, double %7212)
%7214 = fcmp ule double %7213, 0.000000e+00
%7215 = zext i1 %7214 to i32
br label %7621
7216: ; preds = %7167
%7217 = fcmp olt double %148, 0.000000e+00
br i1 %7217, label %7218, label %7265
7218: ; preds = %7216
%7219 = fsub double %10, %41
%7220 = fsub <2 x double> %15, %45
%7221 = extractelement <2 x double> %7220, i64 0
%7222 = fsub double %20, %48
%7223 = fneg double %7222
%7224 = fmul double %99, %7223
%7225 = tail call double @llvm.fmuladd.f64(double %7221, double %106, double %7224)
%7226 = fneg double %7219
%7227 = fmul double %106, %7226
%7228 = tail call double @llvm.fmuladd.f64(double %7222, double %114, double %7227)
%7229 = fneg double %7221
%7230 = fmul double %114, %7229
%7231 = tail call double @llvm.fmuladd.f64(double %7219, double %99, double %7230)
%7232 = fsub double %23, %41
%7233 = fsub <2 x double> %27, %45
%7234 = extractelement <2 x double> %7233, i64 0
%7235 = fsub double %30, %48
%7236 = fmul double %7234, %7228
%7237 = tail call double @llvm.fmuladd.f64(double %7232, double %7225, double %7236)
%7238 = tail call double @llvm.fmuladd.f64(double %7235, double %7231, double %7237)
%7239 = fcmp ogt double %7238, 0.000000e+00
br i1 %7239, label %7621, label %7240
7240: ; preds = %7218
%7241 = fsub <2 x double> %56, %66
%7242 = extractelement <2 x double> %7241, i64 0
%7243 = insertelement <2 x double> poison, double %57, i64 0
%7244 = insertelement <2 x double> %7243, double %53, i64 1
%7245 = fsub <2 x double> %7244, %100
%7246 = extractelement <2 x double> %134, i64 1
%7247 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%7248 = fneg <2 x double> %7247
%7249 = shufflevector <2 x double> %7241, <2 x double> %7245, <2 x i32> <i32 0, i32 2>
%7250 = fmul <2 x double> %7249, %7248
%7251 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %7245, <2 x double> %7250)
%7252 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7251, <2 x double>* %7252
%7253 = fneg double %136
%7254 = extractelement <2 x double> %7245, i64 1
%7255 = fmul double %7254, %7253
%7256 = tail call double @llvm.fmuladd.f64(double %7246, double %7242, double %7255)
store double %7256, double* %118
%7257 = shufflevector <2 x double> %7251, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7258 = fmul <2 x double> %120, %7257
%7259 = extractelement <2 x double> %7258, i64 0
%7260 = extractelement <2 x double> %7251, i64 0
%7261 = tail call double @llvm.fmuladd.f64(double %119, double %7260, double %7259)
%7262 = tail call double @llvm.fmuladd.f64(double %126, double %7256, double %7261)
%7263 = fcmp ule double %7262, 0.000000e+00
%7264 = zext i1 %7263 to i32
br label %7621
7265: ; preds = %7216
%7266 = fsub double %9, %53
%7267 = fsub <2 x double> %17, %56
%7268 = extractelement <2 x double> %7267, i64 0
%7269 = fsub double %21, %57
%7270 = fsub double %58, %53
%7271 = fsub <2 x double> %66, %56
%7272 = extractelement <2 x double> %7271, i64 0
%7273 = fsub double %70, %57
%7274 = fneg double %7269
%7275 = fmul double %7272, %7274
%7276 = tail call double @llvm.fmuladd.f64(double %7268, double %7273, double %7275)
%7277 = fneg double %7266
%7278 = fmul double %7273, %7277
%7279 = tail call double @llvm.fmuladd.f64(double %7269, double %7270, double %7278)
%7280 = fneg double %7268
%7281 = fmul double %7270, %7280
%7282 = tail call double @llvm.fmuladd.f64(double %7266, double %7272, double %7281)
%7283 = fsub double %10, %53
%7284 = fsub <2 x double> %15, %56
%7285 = extractelement <2 x double> %7284, i64 0
%7286 = fsub double %20, %57
%7287 = fmul double %7285, %7279
%7288 = tail call double @llvm.fmuladd.f64(double %7283, double %7276, double %7287)
%7289 = tail call double @llvm.fmuladd.f64(double %7286, double %7282, double %7288)
%7290 = fcmp ogt double %7289, 0.000000e+00
br i1 %7290, label %7621, label %7291
7291: ; preds = %7265
%7292 = fsub <2 x double> %45, %66
%7293 = extractelement <2 x double> %7292, i64 0
%7294 = fsub <2 x double> %102, %100
%7295 = insertelement <2 x double> poison, double %126, i64 0
%7296 = insertelement <2 x double> %7295, double %119, i64 1
%7297 = fneg <2 x double> %7296
%7298 = shufflevector <2 x double> %7292, <2 x double> %7294, <2 x i32> <i32 0, i32 2>
%7299 = fmul <2 x double> %7298, %7297
%7300 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %7294, <2 x double> %7299)
%7301 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7300, <2 x double>* %7301
%7302 = fneg double %121
%7303 = extractelement <2 x double> %7294, i64 1
%7304 = fmul double %7303, %7302
%7305 = tail call double @llvm.fmuladd.f64(double %119, double %7293, double %7304)
store double %7305, double* %118
%7306 = shufflevector <2 x double> %7300, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7307 = fmul <2 x double> %128, %7306
%7308 = extractelement <2 x double> %7307, i64 0
%7309 = extractelement <2 x double> %134, i64 0
%7310 = extractelement <2 x double> %7300, i64 0
%7311 = tail call double @llvm.fmuladd.f64(double %7309, double %7310, double %7308)
%7312 = tail call double @llvm.fmuladd.f64(double %130, double %7305, double %7311)
%7313 = fcmp ule double %7312, 0.000000e+00
%7314 = zext i1 %7313 to i32
br label %7621
7315: ; preds = %7164
br i1 %7166, label %7316, label %7415
7316: ; preds = %7315
%7317 = fcmp ult double %148, 0.000000e+00
br i1 %7317, label %7367, label %7318
7318: ; preds = %7316
%7319 = fsub double %10, %53
%7320 = fsub <2 x double> %15, %56
%7321 = extractelement <2 x double> %7320, i64 0
%7322 = fsub double %20, %57
%7323 = fsub double %58, %53
%7324 = fsub <2 x double> %66, %56
%7325 = extractelement <2 x double> %7324, i64 0
%7326 = fsub double %70, %57
%7327 = fneg double %7322
%7328 = fmul double %7325, %7327
%7329 = tail call double @llvm.fmuladd.f64(double %7321, double %7326, double %7328)
%7330 = fneg double %7319
%7331 = fmul double %7326, %7330
%7332 = tail call double @llvm.fmuladd.f64(double %7322, double %7323, double %7331)
%7333 = fneg double %7321
%7334 = fmul double %7323, %7333
%7335 = tail call double @llvm.fmuladd.f64(double %7319, double %7325, double %7334)
%7336 = fsub double %23, %53
%7337 = fsub <2 x double> %27, %56
%7338 = extractelement <2 x double> %7337, i64 0
%7339 = fsub double %30, %57
%7340 = fmul double %7338, %7332
%7341 = tail call double @llvm.fmuladd.f64(double %7336, double %7329, double %7340)
%7342 = tail call double @llvm.fmuladd.f64(double %7339, double %7335, double %7341)
%7343 = fcmp ogt double %7342, 0.000000e+00
br i1 %7343, label %7621, label %7344
7344: ; preds = %7318
%7345 = fsub <2 x double> %45, %66
%7346 = extractelement <2 x double> %7345, i64 0
%7347 = fsub <2 x double> %102, %100
%7348 = extractelement <2 x double> %134, i64 1
%7349 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%7350 = fneg <2 x double> %7349
%7351 = shufflevector <2 x double> %7345, <2 x double> %7347, <2 x i32> <i32 0, i32 2>
%7352 = fmul <2 x double> %7351, %7350
%7353 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %7347, <2 x double> %7352)
%7354 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7353, <2 x double>* %7354
%7355 = fneg double %136
%7356 = extractelement <2 x double> %7347, i64 1
%7357 = fmul double %7356, %7355
%7358 = tail call double @llvm.fmuladd.f64(double %7348, double %7346, double %7357)
store double %7358, double* %118
%7359 = shufflevector <2 x double> %7353, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7360 = fmul <2 x double> %120, %7359
%7361 = extractelement <2 x double> %7360, i64 0
%7362 = extractelement <2 x double> %7353, i64 0
%7363 = tail call double @llvm.fmuladd.f64(double %119, double %7362, double %7361)
%7364 = tail call double @llvm.fmuladd.f64(double %126, double %7358, double %7363)
%7365 = fcmp ule double %7364, 0.000000e+00
%7366 = zext i1 %7365 to i32
br label %7621
7367: ; preds = %7316
%7368 = fsub double %9, %41
%7369 = fsub <2 x double> %17, %45
%7370 = extractelement <2 x double> %7369, i64 0
%7371 = fsub double %21, %48
%7372 = fneg double %7371
%7373 = fmul double %99, %7372
%7374 = tail call double @llvm.fmuladd.f64(double %7370, double %106, double %7373)
%7375 = fneg double %7368
%7376 = fmul double %106, %7375
%7377 = tail call double @llvm.fmuladd.f64(double %7371, double %114, double %7376)
%7378 = fneg double %7370
%7379 = fmul double %114, %7378
%7380 = tail call double @llvm.fmuladd.f64(double %7368, double %99, double %7379)
%7381 = fsub double %10, %41
%7382 = fsub <2 x double> %15, %45
%7383 = extractelement <2 x double> %7382, i64 0
%7384 = fsub double %20, %48
%7385 = fmul double %7383, %7377
%7386 = tail call double @llvm.fmuladd.f64(double %7381, double %7374, double %7385)
%7387 = tail call double @llvm.fmuladd.f64(double %7384, double %7380, double %7386)
%7388 = fcmp ogt double %7387, 0.000000e+00
br i1 %7388, label %7621, label %7389
7389: ; preds = %7367
%7390 = fsub <2 x double> %56, %66
%7391 = extractelement <2 x double> %7390, i64 0
%7392 = insertelement <2 x double> poison, double %57, i64 0
%7393 = insertelement <2 x double> %7392, double %53, i64 1
%7394 = fsub <2 x double> %7393, %100
%7395 = insertelement <2 x double> poison, double %126, i64 0
%7396 = insertelement <2 x double> %7395, double %119, i64 1
%7397 = fneg <2 x double> %7396
%7398 = shufflevector <2 x double> %7390, <2 x double> %7394, <2 x i32> <i32 0, i32 2>
%7399 = fmul <2 x double> %7398, %7397
%7400 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %7394, <2 x double> %7399)
%7401 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7400, <2 x double>* %7401
%7402 = fneg double %121
%7403 = extractelement <2 x double> %7394, i64 1
%7404 = fmul double %7403, %7402
%7405 = tail call double @llvm.fmuladd.f64(double %119, double %7391, double %7404)
store double %7405, double* %118
%7406 = shufflevector <2 x double> %7400, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7407 = fmul <2 x double> %128, %7406
%7408 = extractelement <2 x double> %7407, i64 0
%7409 = extractelement <2 x double> %134, i64 0
%7410 = extractelement <2 x double> %7400, i64 0
%7411 = tail call double @llvm.fmuladd.f64(double %7409, double %7410, double %7408)
%7412 = tail call double @llvm.fmuladd.f64(double %130, double %7405, double %7411)
%7413 = fcmp ule double %7412, 0.000000e+00
%7414 = zext i1 %7413 to i32
br label %7621
7415: ; preds = %7315
%7416 = fcmp ogt double %151, 0.000000e+00
%7417 = fcmp ogt double %148, 0.000000e+00
br i1 %7416, label %7418, label %7516
7418: ; preds = %7415
br i1 %7417, label %7419, label %7469
7419: ; preds = %7418
%7420 = fsub double %9, %53
%7421 = fsub <2 x double> %17, %56
%7422 = extractelement <2 x double> %7421, i64 0
%7423 = fsub double %21, %57
%7424 = fsub double %58, %53
%7425 = fsub <2 x double> %66, %56
%7426 = extractelement <2 x double> %7425, i64 0
%7427 = fsub double %70, %57
%7428 = fneg double %7423
%7429 = fmul double %7426, %7428
%7430 = tail call double @llvm.fmuladd.f64(double %7422, double %7427, double %7429)
%7431 = fneg double %7420
%7432 = fmul double %7427, %7431
%7433 = tail call double @llvm.fmuladd.f64(double %7423, double %7424, double %7432)
%7434 = fneg double %7422
%7435 = fmul double %7424, %7434
%7436 = tail call double @llvm.fmuladd.f64(double %7420, double %7426, double %7435)
%7437 = fsub double %10, %53
%7438 = fsub <2 x double> %15, %56
%7439 = extractelement <2 x double> %7438, i64 0
%7440 = fsub double %20, %57
%7441 = fmul double %7439, %7433
%7442 = tail call double @llvm.fmuladd.f64(double %7437, double %7430, double %7441)
%7443 = tail call double @llvm.fmuladd.f64(double %7440, double %7436, double %7442)
%7444 = fcmp ogt double %7443, 0.000000e+00
br i1 %7444, label %7621, label %7445
7445: ; preds = %7419
%7446 = fsub <2 x double> %45, %66
%7447 = extractelement <2 x double> %7446, i64 0
%7448 = fsub <2 x double> %102, %100
%7449 = insertelement <2 x double> poison, double %126, i64 0
%7450 = insertelement <2 x double> %7449, double %119, i64 1
%7451 = fneg <2 x double> %7450
%7452 = shufflevector <2 x double> %7446, <2 x double> %7448, <2 x i32> <i32 0, i32 2>
%7453 = fmul <2 x double> %7452, %7451
%7454 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %120, <2 x double> %7448, <2 x double> %7453)
%7455 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7454, <2 x double>* %7455
%7456 = fneg double %121
%7457 = extractelement <2 x double> %7448, i64 1
%7458 = fmul double %7457, %7456
%7459 = tail call double @llvm.fmuladd.f64(double %119, double %7447, double %7458)
store double %7459, double* %118
%7460 = shufflevector <2 x double> %7454, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7461 = fmul <2 x double> %128, %7460
%7462 = extractelement <2 x double> %7461, i64 0
%7463 = extractelement <2 x double> %134, i64 0
%7464 = extractelement <2 x double> %7454, i64 0
%7465 = tail call double @llvm.fmuladd.f64(double %7463, double %7464, double %7462)
%7466 = tail call double @llvm.fmuladd.f64(double %130, double %7459, double %7465)
%7467 = fcmp ule double %7466, 0.000000e+00
%7468 = zext i1 %7467 to i32
br label %7621
7469: ; preds = %7418
%7470 = fsub double %10, %41
%7471 = fsub <2 x double> %15, %45
%7472 = extractelement <2 x double> %7471, i64 0
%7473 = fsub double %20, %48
%7474 = fneg double %7473
%7475 = fmul double %99, %7474
%7476 = tail call double @llvm.fmuladd.f64(double %7472, double %106, double %7475)
%7477 = fneg double %7470
%7478 = fmul double %106, %7477
%7479 = tail call double @llvm.fmuladd.f64(double %7473, double %114, double %7478)
%7480 = fneg double %7472
%7481 = fmul double %114, %7480
%7482 = tail call double @llvm.fmuladd.f64(double %7470, double %99, double %7481)
%7483 = fsub double %23, %41
%7484 = fsub <2 x double> %27, %45
%7485 = extractelement <2 x double> %7484, i64 0
%7486 = fsub double %30, %48
%7487 = fmul double %7485, %7479
%7488 = tail call double @llvm.fmuladd.f64(double %7483, double %7476, double %7487)
%7489 = tail call double @llvm.fmuladd.f64(double %7486, double %7482, double %7488)
%7490 = fcmp ogt double %7489, 0.000000e+00
br i1 %7490, label %7621, label %7491
7491: ; preds = %7469
%7492 = fsub <2 x double> %56, %66
%7493 = extractelement <2 x double> %7492, i64 0
%7494 = insertelement <2 x double> poison, double %57, i64 0
%7495 = insertelement <2 x double> %7494, double %53, i64 1
%7496 = fsub <2 x double> %7495, %100
%7497 = extractelement <2 x double> %134, i64 1
%7498 = shufflevector <2 x double> %135, <2 x double> %134, <2 x i32> <i32 1, i32 3>
%7499 = fneg <2 x double> %7498
%7500 = shufflevector <2 x double> %7492, <2 x double> %7496, <2 x i32> <i32 0, i32 2>
%7501 = fmul <2 x double> %7500, %7499
%7502 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %135, <2 x double> %7496, <2 x double> %7501)
%7503 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7502, <2 x double>* %7503
%7504 = fneg double %136
%7505 = extractelement <2 x double> %7496, i64 1
%7506 = fmul double %7505, %7504
%7507 = tail call double @llvm.fmuladd.f64(double %7497, double %7493, double %7506)
store double %7507, double* %118
%7508 = shufflevector <2 x double> %7502, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7509 = fmul <2 x double> %120, %7508
%7510 = extractelement <2 x double> %7509, i64 0
%7511 = extractelement <2 x double> %7502, i64 0
%7512 = tail call double @llvm.fmuladd.f64(double %119, double %7511, double %7510)
%7513 = tail call double @llvm.fmuladd.f64(double %126, double %7507, double %7512)
%7514 = fcmp ule double %7513, 0.000000e+00
%7515 = zext i1 %7514 to i32
br label %7621
7516: ; preds = %7415
br i1 %7417, label %7517, label %7565
7517: ; preds = %7516
%7518 = fsub double %23, %41
%7519 = fsub <2 x double> %27, %45
%7520 = extractelement <2 x double> %7519, i64 0
%7521 = fsub double %30, %48
%7522 = fneg double %7521
%7523 = fmul double %99, %7522
%7524 = tail call double @llvm.fmuladd.f64(double %7520, double %106, double %7523)
%7525 = fneg double %7518
%7526 = fmul double %106, %7525
%7527 = tail call double @llvm.fmuladd.f64(double %7521, double %114, double %7526)
%7528 = fneg double %7520
%7529 = fmul double %114, %7528
%7530 = tail call double @llvm.fmuladd.f64(double %7518, double %99, double %7529)
%7531 = fsub double %9, %41
%7532 = fsub <2 x double> %17, %45
%7533 = extractelement <2 x double> %7532, i64 0
%7534 = fsub double %21, %48
%7535 = fmul double %7533, %7527
%7536 = tail call double @llvm.fmuladd.f64(double %7531, double %7524, double %7535)
%7537 = tail call double @llvm.fmuladd.f64(double %7534, double %7530, double %7536)
%7538 = fcmp ogt double %7537, 0.000000e+00
br i1 %7538, label %7621, label %7539
7539: ; preds = %7517
%7540 = fsub <2 x double> %56, %66
%7541 = extractelement <2 x double> %7540, i64 0
%7542 = insertelement <2 x double> poison, double %57, i64 0
%7543 = insertelement <2 x double> %7542, double %53, i64 1
%7544 = fsub <2 x double> %7543, %100
%7545 = extractelement <2 x double> %134, i64 0
%7546 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%7547 = fneg <2 x double> %7546
%7548 = shufflevector <2 x double> %7540, <2 x double> %7544, <2 x i32> <i32 0, i32 2>
%7549 = fmul <2 x double> %7548, %7547
%7550 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %7544, <2 x double> %7549)
%7551 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7550, <2 x double>* %7551
%7552 = fneg double %129
%7553 = extractelement <2 x double> %7544, i64 1
%7554 = fmul double %7553, %7552
%7555 = tail call double @llvm.fmuladd.f64(double %7545, double %7541, double %7554)
store double %7555, double* %118
%7556 = shufflevector <2 x double> %7550, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7557 = fmul <2 x double> %135, %7556
%7558 = extractelement <2 x double> %7557, i64 0
%7559 = extractelement <2 x double> %134, i64 1
%7560 = extractelement <2 x double> %7550, i64 0
%7561 = tail call double @llvm.fmuladd.f64(double %7559, double %7560, double %7558)
%7562 = tail call double @llvm.fmuladd.f64(double %142, double %7555, double %7561)
%7563 = fcmp ule double %7562, 0.000000e+00
%7564 = zext i1 %7563 to i32
br label %7621
7565: ; preds = %7516
%7566 = fcmp olt double %148, 0.000000e+00
br i1 %7566, label %7567, label %7617
7567: ; preds = %7565
%7568 = fsub double %23, %53
%7569 = fsub <2 x double> %27, %56
%7570 = extractelement <2 x double> %7569, i64 0
%7571 = fsub double %30, %57
%7572 = fsub double %58, %53
%7573 = fsub <2 x double> %66, %56
%7574 = extractelement <2 x double> %7573, i64 0
%7575 = fsub double %70, %57
%7576 = fneg double %7571
%7577 = fmul double %7574, %7576
%7578 = tail call double @llvm.fmuladd.f64(double %7570, double %7575, double %7577)
%7579 = fneg double %7568
%7580 = fmul double %7575, %7579
%7581 = tail call double @llvm.fmuladd.f64(double %7571, double %7572, double %7580)
%7582 = fneg double %7570
%7583 = fmul double %7572, %7582
%7584 = tail call double @llvm.fmuladd.f64(double %7568, double %7574, double %7583)
%7585 = fsub double %9, %53
%7586 = fsub <2 x double> %17, %56
%7587 = extractelement <2 x double> %7586, i64 0
%7588 = fsub double %21, %57
%7589 = fmul double %7587, %7581
%7590 = tail call double @llvm.fmuladd.f64(double %7585, double %7578, double %7589)
%7591 = tail call double @llvm.fmuladd.f64(double %7588, double %7584, double %7590)
%7592 = fcmp ogt double %7591, 0.000000e+00
br i1 %7592, label %7621, label %7593
7593: ; preds = %7567
%7594 = fsub <2 x double> %45, %66
%7595 = extractelement <2 x double> %7594, i64 0
%7596 = fsub <2 x double> %102, %100
%7597 = extractelement <2 x double> %134, i64 0
%7598 = shufflevector <2 x double> %143, <2 x double> %134, <2 x i32> <i32 0, i32 2>
%7599 = fneg <2 x double> %7598
%7600 = shufflevector <2 x double> %7594, <2 x double> %7596, <2 x i32> <i32 0, i32 2>
%7601 = fmul <2 x double> %7600, %7599
%7602 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %128, <2 x double> %7596, <2 x double> %7601)
%7603 = bitcast [3 x double]* %7 to <2 x double>*
store <2 x double> %7602, <2 x double>* %7603
%7604 = fneg double %129
%7605 = extractelement <2 x double> %7596, i64 1
%7606 = fmul double %7605, %7604
%7607 = tail call double @llvm.fmuladd.f64(double %7597, double %7595, double %7606)
store double %7607, double* %118
%7608 = shufflevector <2 x double> %7602, <2 x double> poison, <2 x i32> <i32 1, i32 undef>
%7609 = fmul <2 x double> %135, %7608
%7610 = extractelement <2 x double> %7609, i64 0
%7611 = extractelement <2 x double> %134, i64 1
%7612 = extractelement <2 x double> %7602, i64 0
%7613 = tail call double @llvm.fmuladd.f64(double %7611, double %7612, double %7610)
%7614 = tail call double @llvm.fmuladd.f64(double %142, double %7607, double %7613)
%7615 = fcmp ule double %7614, 0.000000e+00
%7616 = zext i1 %7615 to i32
br label %7621
7617: ; preds = %7565
%7618 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %2, double* %0, double* %1, double* %3, double* %5, double* %4, double* %104)
br label %7621
7619: ; preds = %7009
%7620 = call i32 (double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @coplanar_tri_tri3d to i32 (double*, double*, double*, double*, double*, double*, double*, ...)*)(double* %0, double* %1, double* %2, double* %3, double* %4, double* %5, double* %104)
br label %7621
7621: ; preds = %7593, %7567, %7539, %7517, %7491, %7469, %7445, %7419, %7389, %7367, %7344, %7318, %7291, %7265, %7240, %7218, %7190, %7168, %7138, %7116, %7093, %7067, %7041, %7015, %6983, %6957, %6929, %6907, %6881, %6859, %6835, %6809, %6779, %6757, %6734, %6708, %6681, %6655, %6630, %6608, %6580, %6558, %6528, %6506, %6483, %6457, %6431, %6405, %6365, %6343, %6309, %6290, %6257, %6237, %6205, %6183, %6147, %6128, %6096, %6074, %6039, %6017, %5985, %5965, %5931, %5912, %5876, %5857, %5825, %5803, %5769, %5747, %5717, %5698, %5671, %5645, %5619, %5593, %5568, %5549, %5520, %5494, %5469, %5449, %5421, %5402, %5377, %5351, %5324, %5298, %5269, %5243, %5218, %5198, %5171, %5152, %5116, %5097, %5070, %5044, %5018, %4992, %4967, %4948, %4919, %4893, %4868, %4848, %4820, %4801, %4776, %4750, %4723, %4697, %4668, %4642, %4617, %4597, %4570, %4551, %4514, %4492, %4458, %4439, %4406, %4386, %4354, %4332, %4296, %4277, %4245, %4223, %4188, %4166, %4134, %4114, %4080, %4061, %4025, %4006, %3974, %3952, %3918, %3896, %3862, %3843, %3816, %3790, %3764, %3738, %3713, %3694, %3665, %3639, %3614, %3594, %3566, %3547, %3522, %3496, %3469, %3443, %3414, %3388, %3363, %3343, %3316, %3297, %3260, %3238, %3204, %3185, %3152, %3132, %3100, %3078, %3042, %3023, %2991, %2969, %2934, %2912, %2880, %2860, %2826, %2807, %2771, %2752, %2720, %2698, %2664, %2642, %2610, %2584, %2556, %2534, %2508, %2486, %2462, %2436, %2406, %2384, %2361, %2335, %2308, %2282, %2257, %2235, %2207, %2185, %2155, %2133, %2110, %2084, %2058, %2032, %1997, %1978, %1951, %1925, %1899, %1873, %1848, %1829, %1800, %1774, %1749, %1729, %1701, %1682, %1657, %1631, %1604, %1578, %1549, %1523, %1498, %1478, %1451, %1432, %1395, %1373, %1339, %1320, %1287, %1267, %1235, %1213, %1177, %1158, %1126, %1104, %1069, %1047, %1015, %995, %961, %942, %906, %887, %855, %833, %799, %777, %745, %719, %691, %669, %642, %620, %596, %570, %539, %517, %494, %468, %441, %415, %390, %368, %340, %318, %288, %266, %243, %217, %189, %163, %91, %6, %7619, %7617, %7007, %6397, %5742, %5141, %4546, %3887, %3292, %2634, %2022, %1427, %769
%7622 = phi i32 [ %770, %769 ], [ %1428, %1427 ], [ %2023, %2022 ], [ %2635, %2634 ], [ %3293, %3292 ], [ %3888, %3887 ], [ %4547, %4546 ], [ %5142, %5141 ], [ %5743, %5742 ], [ %6398, %6397 ], [ %7008, %7007 ], [ %7618, %7617 ], [ %7620, %7619 ], [ 0, %6 ], [ 0, %91 ], [ 0, %163 ], [ %214, %189 ], [ 0, %217 ], [ %265, %243 ], [ 0, %266 ], [ %313, %288 ], [ 0, %318 ], [ %365, %340 ], [ 0, %368 ], [ %414, %390 ], [ 0, %415 ], [ %464, %441 ], [ 0, %468 ], [ %516, %494 ], [ 0, %517 ], [ %564, %539 ], [ 0, %570 ], [ %619, %596 ], [ 0, %620 ], [ %666, %642 ], [ 0, %669 ], [ %716, %691 ], [ 0, %719 ], [ %768, %745 ], [ 0, %777 ], [ %830, %799 ], [ 0, %833 ], [ %886, %855 ], [ 0, %887 ], [ %937, %906 ], [ 0, %942 ], [ %992, %961 ], [ 0, %995 ], [ %1046, %1015 ], [ 0, %1047 ], [ %1100, %1069 ], [ 0, %1104 ], [ %1157, %1126 ], [ 0, %1158 ], [ %1208, %1177 ], [ 0, %1213 ], [ %1266, %1235 ], [ 0, %1267 ], [ %1318, %1287 ], [ 0, %1320 ], [ %1370, %1339 ], [ 0, %1373 ], [ %1426, %1395 ], [ 0, %1432 ], [ %1475, %1451 ], [ 0, %1478 ], [ %1522, %1498 ], [ 0, %1523 ], [ %1573, %1549 ], [ 0, %1578 ], [ %1628, %1604 ], [ 0, %1631 ], [ %1681, %1657 ], [ 0, %1682 ], [ %1725, %1701 ], [ 0, %1729 ], [ %1773, %1749 ], [ 0, %1774 ], [ %1824, %1800 ], [ 0, %1829 ], [ %1872, %1848 ], [ 0, %1873 ], [ %1923, %1899 ], [ 0, %1925 ], [ %1975, %1951 ], [ 0, %1978 ], [ %2021, %1997 ], [ 0, %2032 ], [ %2081, %2058 ], [ 0, %2084 ], [ %2132, %2110 ], [ 0, %2133 ], [ %2180, %2155 ], [ 0, %2185 ], [ %2232, %2207 ], [ 0, %2235 ], [ %2281, %2257 ], [ 0, %2282 ], [ %2331, %2308 ], [ 0, %2335 ], [ %2383, %2361 ], [ 0, %2384 ], [ %2431, %2406 ], [ 0, %2436 ], [ %2485, %2462 ], [ 0, %2486 ], [ %2532, %2508 ], [ 0, %2534 ], [ %2581, %2556 ], [ 0, %2584 ], [ %2633, %2610 ], [ 0, %2642 ], [ %2695, %2664 ], [ 0, %2698 ], [ %2751, %2720 ], [ 0, %2752 ], [ %2802, %2771 ], [ 0, %2807 ], [ %2857, %2826 ], [ 0, %2860 ], [ %2911, %2880 ], [ 0, %2912 ], [ %2965, %2934 ], [ 0, %2969 ], [ %3022, %2991 ], [ 0, %3023 ], [ %3073, %3042 ], [ 0, %3078 ], [ %3131, %3100 ], [ 0, %3132 ], [ %3183, %3152 ], [ 0, %3185 ], [ %3235, %3204 ], [ 0, %3238 ], [ %3291, %3260 ], [ 0, %3297 ], [ %3340, %3316 ], [ 0, %3343 ], [ %3387, %3363 ], [ 0, %3388 ], [ %3438, %3414 ], [ 0, %3443 ], [ %3493, %3469 ], [ 0, %3496 ], [ %3546, %3522 ], [ 0, %3547 ], [ %3590, %3566 ], [ 0, %3594 ], [ %3638, %3614 ], [ 0, %3639 ], [ %3689, %3665 ], [ 0, %3694 ], [ %3737, %3713 ], [ 0, %3738 ], [ %3788, %3764 ], [ 0, %3790 ], [ %3840, %3816 ], [ 0, %3843 ], [ %3886, %3862 ], [ 0, %3896 ], [ %3949, %3918 ], [ 0, %3952 ], [ %4005, %3974 ], [ 0, %4006 ], [ %4056, %4025 ], [ 0, %4061 ], [ %4111, %4080 ], [ 0, %4114 ], [ %4165, %4134 ], [ 0, %4166 ], [ %4219, %4188 ], [ 0, %4223 ], [ %4276, %4245 ], [ 0, %4277 ], [ %4327, %4296 ], [ 0, %4332 ], [ %4385, %4354 ], [ 0, %4386 ], [ %4437, %4406 ], [ 0, %4439 ], [ %4489, %4458 ], [ 0, %4492 ], [ %4545, %4514 ], [ 0, %4551 ], [ %4594, %4570 ], [ 0, %4597 ], [ %4641, %4617 ], [ 0, %4642 ], [ %4692, %4668 ], [ 0, %4697 ], [ %4747, %4723 ], [ 0, %4750 ], [ %4800, %4776 ], [ 0, %4801 ], [ %4844, %4820 ], [ 0, %4848 ], [ %4892, %4868 ], [ 0, %4893 ], [ %4943, %4919 ], [ 0, %4948 ], [ %4991, %4967 ], [ 0, %4992 ], [ %5042, %5018 ], [ 0, %5044 ], [ %5094, %5070 ], [ 0, %5097 ], [ %5140, %5116 ], [ 0, %5152 ], [ %5195, %5171 ], [ 0, %5198 ], [ %5242, %5218 ], [ 0, %5243 ], [ %5293, %5269 ], [ 0, %5298 ], [ %5348, %5324 ], [ 0, %5351 ], [ %5401, %5377 ], [ 0, %5402 ], [ %5445, %5421 ], [ 0, %5449 ], [ %5493, %5469 ], [ 0, %5494 ], [ %5544, %5520 ], [ 0, %5549 ], [ %5592, %5568 ], [ 0, %5593 ], [ %5643, %5619 ], [ 0, %5645 ], [ %5695, %5671 ], [ 0, %5698 ], [ %5741, %5717 ], [ 0, %5747 ], [ %5800, %5769 ], [ 0, %5803 ], [ %5856, %5825 ], [ 0, %5857 ], [ %5907, %5876 ], [ 0, %5912 ], [ %5962, %5931 ], [ 0, %5965 ], [ %6016, %5985 ], [ 0, %6017 ], [ %6070, %6039 ], [ 0, %6074 ], [ %6127, %6096 ], [ 0, %6128 ], [ %6178, %6147 ], [ 0, %6183 ], [ %6236, %6205 ], [ 0, %6237 ], [ %6288, %6257 ], [ 0, %6290 ], [ %6340, %6309 ], [ 0, %6343 ], [ %6396, %6365 ], [ 0, %6405 ], [ %6454, %6431 ], [ 0, %6457 ], [ %6505, %6483 ], [ 0, %6506 ], [ %6553, %6528 ], [ 0, %6558 ], [ %6605, %6580 ], [ 0, %6608 ], [ %6654, %6630 ], [ 0, %6655 ], [ %6704, %6681 ], [ 0, %6708 ], [ %6756, %6734 ], [ 0, %6757 ], [ %6804, %6779 ], [ 0, %6809 ], [ %6858, %6835 ], [ 0, %6859 ], [ %6905, %6881 ], [ 0, %6907 ], [ %6954, %6929 ], [ 0, %6957 ], [ %7006, %6983 ], [ 0, %7015 ], [ %7064, %7041 ], [ 0, %7067 ], [ %7115, %7093 ], [ 0, %7116 ], [ %7163, %7138 ], [ 0, %7168 ], [ %7215, %7190 ], [ 0, %7218 ], [ %7264, %7240 ], [ 0, %7265 ], [ %7314, %7291 ], [ 0, %7318 ], [ %7366, %7344 ], [ 0, %7367 ], [ %7414, %7389 ], [ 0, %7419 ], [ %7468, %7445 ], [ 0, %7469 ], [ %7515, %7491 ], [ 0, %7517 ], [ %7564, %7539 ], [ 0, %7567 ], [ %7616, %7593 ]
ret i32 %7622
}