#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
struct osn_context {
  int dummy;
};
typedef int int8_t;

/* Variables and functions */
double extrapolate3(struct osn_context const *, int, int, int, double, double,
                    double);
int fastFloor(double);
double open_simplex_noise3(const struct osn_context *ctx, double x, double y,
                           double z) {
  double stretchOffset = (x + y + z) * (-1.0 / 6.0);
  double xs = x + stretchOffset;
  double ys = y + stretchOffset;
  double zs = z + stretchOffset;
  int xsb = fastFloor(xs);
  int ysb = fastFloor(ys);
  int zsb = fastFloor(zs);
  double squishOffset = (xsb + ysb + zsb) * (1.0 / 3.0);
  double xb = xsb + squishOffset;
  double yb = ysb + squishOffset;
  double zb = zsb + squishOffset;
  double xins = xs - xsb;
  double yins = ys - ysb;
  double zins = zs - zsb;
  double inSum = xins + yins + zins;
  double dx0 = x - xb;
  double dy0 = y - yb;
  double dz0 = z - zb;
  double dx_ext0, dy_ext0, dz_ext0;
  double dx_ext1, dy_ext1, dz_ext1;
  int xsv_ext0, ysv_ext0, zsv_ext0;
  int xsv_ext1, ysv_ext1, zsv_ext1;
  double wins;
  int8_t c, c1, c2;
  int8_t aPoint, bPoint;
  double aScore, bScore;
  int aIsFurtherSide;
  int bIsFurtherSide;
  double p1, p2, p3;
  double score;
  double attn0, attn1, attn2, attn3, attn4, attn5, attn6;
  double dx1, dy1, dz1;
  double dx2, dy2, dz2;
  double dx3, dy3, dz3;
  double dx4, dy4, dz4;
  double dx5, dy5, dz5;
  double dx6, dy6, dz6;
  double attn_ext0, attn_ext1;
  double value = 0;
  if (inSum <= 1) {
    aPoint = 0x01;
    aScore = xins;
    bPoint = 0x02;
    bScore = yins;
    if (aScore >= bScore && zins > bScore) {
      bScore = zins;
      bPoint = 0x04;
    } else if (aScore < bScore && zins > aScore) {
      aScore = zins;
      aPoint = 0x04;
    }
    wins = 1 - inSum;
    if (wins > aScore || wins > bScore) {
      c = (bScore > aScore ? bPoint : aPoint);
      if ((c & 0x01) == 0) {
        xsv_ext0 = xsb - 1;
        xsv_ext1 = xsb;
        dx_ext0 = dx0 + 1;
        dx_ext1 = dx0;
      } else {
        xsv_ext0 = xsv_ext1 = xsb + 1;
        dx_ext0 = dx_ext1 = dx0 - 1;
      }
      if ((c & 0x02) == 0) {
        ysv_ext0 = ysv_ext1 = ysb;
        dy_ext0 = dy_ext1 = dy0;
        if ((c & 0x01) == 0) {
          ysv_ext1 -= 1;
          dy_ext1 += 1;
        } else {
          ysv_ext0 -= 1;
          dy_ext0 += 1;
        }
      } else {
        ysv_ext0 = ysv_ext1 = ysb + 1;
        dy_ext0 = dy_ext1 = dy0 - 1;
      }
      if ((c & 0x04) == 0) {
        zsv_ext0 = zsb;
        zsv_ext1 = zsb - 1;
        dz_ext0 = dz0;
        dz_ext1 = dz0 + 1;
      } else {
        zsv_ext0 = zsv_ext1 = zsb + 1;
        dz_ext0 = dz_ext1 = dz0 - 1;
      }
    } else {
      c = (int8_t)(aPoint | bPoint);
      if ((c & 0x01) == 0) {
        xsv_ext0 = xsb;
        xsv_ext1 = xsb - 1;
        dx_ext0 = dx0 - 2 * (1.0 / 3.0);
        dx_ext1 = dx0 + 1 - (1.0 / 3.0);
      } else {
        xsv_ext0 = xsv_ext1 = xsb + 1;
        dx_ext0 = dx0 - 1 - 2 * (1.0 / 3.0);
        dx_ext1 = dx0 - 1 - (1.0 / 3.0);
      }
      if ((c & 0x02) == 0) {
        ysv_ext0 = ysb;
        ysv_ext1 = ysb - 1;
        dy_ext0 = dy0 - 2 * (1.0 / 3.0);
        dy_ext1 = dy0 + 1 - (1.0 / 3.0);
      } else {
        ysv_ext0 = ysv_ext1 = ysb + 1;
        dy_ext0 = dy0 - 1 - 2 * (1.0 / 3.0);
        dy_ext1 = dy0 - 1 - (1.0 / 3.0);
      }
      if ((c & 0x04) == 0) {
        zsv_ext0 = zsb;
        zsv_ext1 = zsb - 1;
        dz_ext0 = dz0 - 2 * (1.0 / 3.0);
        dz_ext1 = dz0 + 1 - (1.0 / 3.0);
      } else {
        zsv_ext0 = zsv_ext1 = zsb + 1;
        dz_ext0 = dz0 - 1 - 2 * (1.0 / 3.0);
        dz_ext1 = dz0 - 1 - (1.0 / 3.0);
      }
    }
    attn0 = 2 - dx0 * dx0 - dy0 * dy0 - dz0 * dz0;
    if (attn0 > 0) {
      attn0 *= attn0;
      value += attn0 * attn0 *
               extrapolate3(ctx, xsb + 0, ysb + 0, zsb + 0, dx0, dy0, dz0);
    }
    dx1 = dx0 - 1 - (1.0 / 3.0);
    dy1 = dy0 - 0 - (1.0 / 3.0);
    dz1 = dz0 - 0 - (1.0 / 3.0);
    attn1 = 2 - dx1 * dx1 - dy1 * dy1 - dz1 * dz1;
    if (attn1 > 0) {
      attn1 *= attn1;
      value += attn1 * attn1 *
               extrapolate3(ctx, xsb + 1, ysb + 0, zsb + 0, dx1, dy1, dz1);
    }
    dx2 = dx0 - 0 - (1.0 / 3.0);
    dy2 = dy0 - 1 - (1.0 / 3.0);
    dz2 = dz1;
    attn2 = 2 - dx2 * dx2 - dy2 * dy2 - dz2 * dz2;
    if (attn2 > 0) {
      attn2 *= attn2;
      value += attn2 * attn2 *
               extrapolate3(ctx, xsb + 0, ysb + 1, zsb + 0, dx2, dy2, dz2);
    }
    dx3 = dx2;
    dy3 = dy1;
    dz3 = dz0 - 1 - (1.0 / 3.0);
    attn3 = 2 - dx3 * dx3 - dy3 * dy3 - dz3 * dz3;
    if (attn3 > 0) {
      attn3 *= attn3;
      value += attn3 * attn3 *
               extrapolate3(ctx, xsb + 0, ysb + 0, zsb + 1, dx3, dy3, dz3);
    }
  } else if (inSum >= 2) {
    aPoint = 0x06;
    aScore = xins;
    bPoint = 0x05;
    bScore = yins;
    if (aScore <= bScore && zins < bScore) {
      bScore = zins;
      bPoint = 0x03;
    } else if (aScore > bScore && zins < aScore) {
      aScore = zins;
      aPoint = 0x03;
    }
    wins = 3 - inSum;
    if (wins < aScore || wins < bScore) {
      c = (bScore < aScore ? bPoint : aPoint);
      if ((c & 0x01) != 0) {
        xsv_ext0 = xsb + 2;
        xsv_ext1 = xsb + 1;
        dx_ext0 = dx0 - 2 - 3 * (1.0 / 3.0);
        dx_ext1 = dx0 - 1 - 3 * (1.0 / 3.0);
      } else {
        xsv_ext0 = xsv_ext1 = xsb;
        dx_ext0 = dx_ext1 = dx0 - 3 * (1.0 / 3.0);
      }
      if ((c & 0x02) != 0) {
        ysv_ext0 = ysv_ext1 = ysb + 1;
        dy_ext0 = dy_ext1 = dy0 - 1 - 3 * (1.0 / 3.0);
        if ((c & 0x01) != 0) {
          ysv_ext1 += 1;
          dy_ext1 -= 1;
        } else {
          ysv_ext0 += 1;
          dy_ext0 -= 1;
        }
      } else {
        ysv_ext0 = ysv_ext1 = ysb;
        dy_ext0 = dy_ext1 = dy0 - 3 * (1.0 / 3.0);
      }
      if ((c & 0x04) != 0) {
        zsv_ext0 = zsb + 1;
        zsv_ext1 = zsb + 2;
        dz_ext0 = dz0 - 1 - 3 * (1.0 / 3.0);
        dz_ext1 = dz0 - 2 - 3 * (1.0 / 3.0);
      } else {
        zsv_ext0 = zsv_ext1 = zsb;
        dz_ext0 = dz_ext1 = dz0 - 3 * (1.0 / 3.0);
      }
    } else {
      c = (int8_t)(aPoint & bPoint);
      if ((c & 0x01) != 0) {
        xsv_ext0 = xsb + 1;
        xsv_ext1 = xsb + 2;
        dx_ext0 = dx0 - 1 - (1.0 / 3.0);
        dx_ext1 = dx0 - 2 - 2 * (1.0 / 3.0);
      } else {
        xsv_ext0 = xsv_ext1 = xsb;
        dx_ext0 = dx0 - (1.0 / 3.0);
        dx_ext1 = dx0 - 2 * (1.0 / 3.0);
      }
      if ((c & 0x02) != 0) {
        ysv_ext0 = ysb + 1;
        ysv_ext1 = ysb + 2;
        dy_ext0 = dy0 - 1 - (1.0 / 3.0);
        dy_ext1 = dy0 - 2 - 2 * (1.0 / 3.0);
      } else {
        ysv_ext0 = ysv_ext1 = ysb;
        dy_ext0 = dy0 - (1.0 / 3.0);
        dy_ext1 = dy0 - 2 * (1.0 / 3.0);
      }
      if ((c & 0x04) != 0) {
        zsv_ext0 = zsb + 1;
        zsv_ext1 = zsb + 2;
        dz_ext0 = dz0 - 1 - (1.0 / 3.0);
        dz_ext1 = dz0 - 2 - 2 * (1.0 / 3.0);
      } else {
        zsv_ext0 = zsv_ext1 = zsb;
        dz_ext0 = dz0 - (1.0 / 3.0);
        dz_ext1 = dz0 - 2 * (1.0 / 3.0);
      }
    }
    dx3 = dx0 - 1 - 2 * (1.0 / 3.0);
    dy3 = dy0 - 1 - 2 * (1.0 / 3.0);
    dz3 = dz0 - 0 - 2 * (1.0 / 3.0);
    attn3 = 2 - dx3 * dx3 - dy3 * dy3 - dz3 * dz3;
    if (attn3 > 0) {
      attn3 *= attn3;
      value += attn3 * attn3 *
               extrapolate3(ctx, xsb + 1, ysb + 1, zsb + 0, dx3, dy3, dz3);
    }
    dx2 = dx3;
    dy2 = dy0 - 0 - 2 * (1.0 / 3.0);
    dz2 = dz0 - 1 - 2 * (1.0 / 3.0);
    attn2 = 2 - dx2 * dx2 - dy2 * dy2 - dz2 * dz2;
    if (attn2 > 0) {
      attn2 *= attn2;
      value += attn2 * attn2 *
               extrapolate3(ctx, xsb + 1, ysb + 0, zsb + 1, dx2, dy2, dz2);
    }
    dx1 = dx0 - 0 - 2 * (1.0 / 3.0);
    dy1 = dy3;
    dz1 = dz2;
    attn1 = 2 - dx1 * dx1 - dy1 * dy1 - dz1 * dz1;
    if (attn1 > 0) {
      attn1 *= attn1;
      value += attn1 * attn1 *
               extrapolate3(ctx, xsb + 0, ysb + 1, zsb + 1, dx1, dy1, dz1);
    }
    dx0 = dx0 - 1 - 3 * (1.0 / 3.0);
    dy0 = dy0 - 1 - 3 * (1.0 / 3.0);
    dz0 = dz0 - 1 - 3 * (1.0 / 3.0);
    attn0 = 2 - dx0 * dx0 - dy0 * dy0 - dz0 * dz0;
    if (attn0 > 0) {
      attn0 *= attn0;
      value += attn0 * attn0 *
               extrapolate3(ctx, xsb + 1, ysb + 1, zsb + 1, dx0, dy0, dz0);
    }
  } else {
    p1 = xins + yins;
    if (p1 > 1) {
      aScore = p1 - 1;
      aPoint = 0x03;
      aIsFurtherSide = 1;
    } else {
      aScore = 1 - p1;
      aPoint = 0x04;
      aIsFurtherSide = 0;
    }
    p2 = xins + zins;
    if (p2 > 1) {
      bScore = p2 - 1;
      bPoint = 0x05;
      bIsFurtherSide = 1;
    } else {
      bScore = 1 - p2;
      bPoint = 0x02;
      bIsFurtherSide = 0;
    }
    p3 = yins + zins;
    if (p3 > 1) {
      score = p3 - 1;
      if (aScore <= bScore && aScore < score) {
        aScore = score;
        aPoint = 0x06;
        aIsFurtherSide = 1;
      } else if (aScore > bScore && bScore < score) {
        bScore = score;
        bPoint = 0x06;
        bIsFurtherSide = 1;
      }
    } else {
      score = 1 - p3;
      if (aScore <= bScore && aScore < score) {
        aScore = score;
        aPoint = 0x01;
        aIsFurtherSide = 0;
      } else if (aScore > bScore && bScore < score) {
        bScore = score;
        bPoint = 0x01;
        bIsFurtherSide = 0;
      }
    }
    if (aIsFurtherSide == bIsFurtherSide) {
      if (aIsFurtherSide) {
        dx_ext0 = dx0 - 1 - 3 * (1.0 / 3.0);
        dy_ext0 = dy0 - 1 - 3 * (1.0 / 3.0);
        dz_ext0 = dz0 - 1 - 3 * (1.0 / 3.0);
        xsv_ext0 = xsb + 1;
        ysv_ext0 = ysb + 1;
        zsv_ext0 = zsb + 1;
        c = (int8_t)(aPoint & bPoint);
        if ((c & 0x01) != 0) {
          dx_ext1 = dx0 - 2 - 2 * (1.0 / 3.0);
          dy_ext1 = dy0 - 2 * (1.0 / 3.0);
          dz_ext1 = dz0 - 2 * (1.0 / 3.0);
          xsv_ext1 = xsb + 2;
          ysv_ext1 = ysb;
          zsv_ext1 = zsb;
        } else if ((c & 0x02) != 0) {
          dx_ext1 = dx0 - 2 * (1.0 / 3.0);
          dy_ext1 = dy0 - 2 - 2 * (1.0 / 3.0);
          dz_ext1 = dz0 - 2 * (1.0 / 3.0);
          xsv_ext1 = xsb;
          ysv_ext1 = ysb + 2;
          zsv_ext1 = zsb;
        } else {
          dx_ext1 = dx0 - 2 * (1.0 / 3.0);
          dy_ext1 = dy0 - 2 * (1.0 / 3.0);
          dz_ext1 = dz0 - 2 - 2 * (1.0 / 3.0);
          xsv_ext1 = xsb;
          ysv_ext1 = ysb;
          zsv_ext1 = zsb + 2;
        }
      } else {
        dx_ext0 = dx0;
        dy_ext0 = dy0;
        dz_ext0 = dz0;
        xsv_ext0 = xsb;
        ysv_ext0 = ysb;
        zsv_ext0 = zsb;
        c = (int8_t)(aPoint | bPoint);
        if ((c & 0x01) == 0) {
          dx_ext1 = dx0 + 1 - (1.0 / 3.0);
          dy_ext1 = dy0 - 1 - (1.0 / 3.0);
          dz_ext1 = dz0 - 1 - (1.0 / 3.0);
          xsv_ext1 = xsb - 1;
          ysv_ext1 = ysb + 1;
          zsv_ext1 = zsb + 1;
        } else if ((c & 0x02) == 0) {
          dx_ext1 = dx0 - 1 - (1.0 / 3.0);
          dy_ext1 = dy0 + 1 - (1.0 / 3.0);
          dz_ext1 = dz0 - 1 - (1.0 / 3.0);
          xsv_ext1 = xsb + 1;
          ysv_ext1 = ysb - 1;
          zsv_ext1 = zsb + 1;
        } else {
          dx_ext1 = dx0 - 1 - (1.0 / 3.0);
          dy_ext1 = dy0 - 1 - (1.0 / 3.0);
          dz_ext1 = dz0 + 1 - (1.0 / 3.0);
          xsv_ext1 = xsb + 1;
          ysv_ext1 = ysb + 1;
          zsv_ext1 = zsb - 1;
        }
      }
    } else {
      if (aIsFurtherSide) {
        c1 = aPoint;
        c2 = bPoint;
      } else {
        c1 = bPoint;
        c2 = aPoint;
      }
      if ((c1 & 0x01) == 0) {
        dx_ext0 = dx0 + 1 - (1.0 / 3.0);
        dy_ext0 = dy0 - 1 - (1.0 / 3.0);
        dz_ext0 = dz0 - 1 - (1.0 / 3.0);
        xsv_ext0 = xsb - 1;
        ysv_ext0 = ysb + 1;
        zsv_ext0 = zsb + 1;
      } else if ((c1 & 0x02) == 0) {
        dx_ext0 = dx0 - 1 - (1.0 / 3.0);
        dy_ext0 = dy0 + 1 - (1.0 / 3.0);
        dz_ext0 = dz0 - 1 - (1.0 / 3.0);
        xsv_ext0 = xsb + 1;
        ysv_ext0 = ysb - 1;
        zsv_ext0 = zsb + 1;
      } else {
        dx_ext0 = dx0 - 1 - (1.0 / 3.0);
        dy_ext0 = dy0 - 1 - (1.0 / 3.0);
        dz_ext0 = dz0 + 1 - (1.0 / 3.0);
        xsv_ext0 = xsb + 1;
        ysv_ext0 = ysb + 1;
        zsv_ext0 = zsb - 1;
      }
      dx_ext1 = dx0 - 2 * (1.0 / 3.0);
      dy_ext1 = dy0 - 2 * (1.0 / 3.0);
      dz_ext1 = dz0 - 2 * (1.0 / 3.0);
      xsv_ext1 = xsb;
      ysv_ext1 = ysb;
      zsv_ext1 = zsb;
      if ((c2 & 0x01) != 0) {
        dx_ext1 -= 2;
        xsv_ext1 += 2;
      } else if ((c2 & 0x02) != 0) {
        dy_ext1 -= 2;
        ysv_ext1 += 2;
      } else {
        dz_ext1 -= 2;
        zsv_ext1 += 2;
      }
    }
    dx1 = dx0 - 1 - (1.0 / 3.0);
    dy1 = dy0 - 0 - (1.0 / 3.0);
    dz1 = dz0 - 0 - (1.0 / 3.0);
    attn1 = 2 - dx1 * dx1 - dy1 * dy1 - dz1 * dz1;
    if (attn1 > 0) {
      attn1 *= attn1;
      value += attn1 * attn1 *
               extrapolate3(ctx, xsb + 1, ysb + 0, zsb + 0, dx1, dy1, dz1);
    }
    dx2 = dx0 - 0 - (1.0 / 3.0);
    dy2 = dy0 - 1 - (1.0 / 3.0);
    dz2 = dz1;
    attn2 = 2 - dx2 * dx2 - dy2 * dy2 - dz2 * dz2;
    if (attn2 > 0) {
      attn2 *= attn2;
      value += attn2 * attn2 *
               extrapolate3(ctx, xsb + 0, ysb + 1, zsb + 0, dx2, dy2, dz2);
    }
    dx3 = dx2;
    dy3 = dy1;
    dz3 = dz0 - 1 - (1.0 / 3.0);
    attn3 = 2 - dx3 * dx3 - dy3 * dy3 - dz3 * dz3;
    if (attn3 > 0) {
      attn3 *= attn3;
      value += attn3 * attn3 *
               extrapolate3(ctx, xsb + 0, ysb + 0, zsb + 1, dx3, dy3, dz3);
    }
    dx4 = dx0 - 1 - 2 * (1.0 / 3.0);
    dy4 = dy0 - 1 - 2 * (1.0 / 3.0);
    dz4 = dz0 - 0 - 2 * (1.0 / 3.0);
    attn4 = 2 - dx4 * dx4 - dy4 * dy4 - dz4 * dz4;
    if (attn4 > 0) {
      attn4 *= attn4;
      value += attn4 * attn4 *
               extrapolate3(ctx, xsb + 1, ysb + 1, zsb + 0, dx4, dy4, dz4);
    }
    dx5 = dx4;
    dy5 = dy0 - 0 - 2 * (1.0 / 3.0);
    dz5 = dz0 - 1 - 2 * (1.0 / 3.0);
    attn5 = 2 - dx5 * dx5 - dy5 * dy5 - dz5 * dz5;
    if (attn5 > 0) {
      attn5 *= attn5;
      value += attn5 * attn5 *
               extrapolate3(ctx, xsb + 1, ysb + 0, zsb + 1, dx5, dy5, dz5);
    }
    dx6 = dx0 - 0 - 2 * (1.0 / 3.0);
    dy6 = dy4;
    dz6 = dz5;
    attn6 = 2 - dx6 * dx6 - dy6 * dy6 - dz6 * dz6;
    if (attn6 > 0) {
      attn6 *= attn6;
      value += attn6 * attn6 *
               extrapolate3(ctx, xsb + 0, ysb + 1, zsb + 1, dx6, dy6, dz6);
    }
  }
  attn_ext0 = 2 - dx_ext0 * dx_ext0 - dy_ext0 * dy_ext0 - dz_ext0 * dz_ext0;
  if (attn_ext0 > 0) {
    attn_ext0 *= attn_ext0;
    value += attn_ext0 * attn_ext0 *
             extrapolate3(ctx, xsv_ext0, ysv_ext0, zsv_ext0, dx_ext0, dy_ext0,
                          dz_ext0);
  }
  attn_ext1 = 2 - dx_ext1 * dx_ext1 - dy_ext1 * dy_ext1 - dz_ext1 * dz_ext1;
  if (attn_ext1 > 0) {
    attn_ext1 *= attn_ext1;
    value += attn_ext1 * attn_ext1 *
             extrapolate3(ctx, xsv_ext1, ysv_ext1, zsv_ext1, dx_ext1, dy_ext1,
                          dz_ext1);
  }
  return value / (103.0);
}


x86 assembly (clang, -O0):
<open_simplex_noise3>:
push   %rbp
mov    %rsp,%rbp
sub    $0x2c0,%rsp
mov    %rdi,-0x8(%rbp)
movsd  %xmm0,-0x10(%rbp)
movsd  %xmm1,-0x18(%rbp)
movsd  %xmm2,-0x20(%rbp)
movsd  -0x10(%rbp),%xmm0
addsd  -0x18(%rbp),%xmm0
addsd  -0x20(%rbp),%xmm0
movsd  0x3ebb(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x10(%rbp),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x20(%rbp),%xmm0
addsd  -0x28(%rbp),%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x30(%rbp),%xmm0
call   1040 <fastFloor@plt>
mov    %eax,-0x44(%rbp)
movsd  -0x38(%rbp),%xmm0
call   1040 <fastFloor@plt>
mov    %eax,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
call   1040 <fastFloor@plt>
mov    %eax,-0x4c(%rbp)
mov    -0x44(%rbp),%eax
add    -0x48(%rbp),%eax
add    -0x4c(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  0x3e41(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
cvtsi2sdl -0x44(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
cvtsi2sdl -0x48(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
cvtsi2sdl -0x4c(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x30(%rbp),%xmm0
cvtsi2sdl -0x44(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
cvtsi2sdl -0x48(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x40(%rbp),%xmm0
cvtsi2sdl -0x4c(%rbp),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
addsd  -0x80(%rbp),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
subsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x18(%rbp),%xmm0
subsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
subsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  0x3d64(%rip),%xmm0
ucomisd -0x90(%rbp),%xmm0
ff
jb     1e5e <open_simplex_noise3+0xd3e>
movl   $0x1,-0x108(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x2,-0x10c(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
ucomisd -0x120(%rbp),%xmm0
ff
jb     1323 <open_simplex_noise3+0x203>
movsd  -0x88(%rbp),%xmm0
ff
ucomisd -0x120(%rbp),%xmm0
ff
jbe    1323 <open_simplex_noise3+0x203>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x4,-0x10c(%rbp)
jmp    1372 <open_simplex_noise3+0x252>
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    136d <open_simplex_noise3+0x24d>
movsd  -0x88(%rbp),%xmm0
ff
ucomisd -0x118(%rbp),%xmm0
ff
jbe    136d <open_simplex_noise3+0x24d>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x4,-0x108(%rbp)
jmp    1372 <open_simplex_noise3+0x252>
movsd  0x3c86(%rip),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
ucomisd -0x118(%rbp),%xmm0
ff
ja     13b6 <open_simplex_noise3+0x296>
movsd  -0xf8(%rbp),%xmm0
ff
ucomisd -0x120(%rbp),%xmm0
ff
jbe    15e7 <open_simplex_noise3+0x4c7>
movsd  -0x120(%rbp),%xmm0
ff
ucomisd -0x118(%rbp),%xmm0
ff
jbe    13dd <open_simplex_noise3+0x2bd>
mov    -0x10c(%rbp),%eax
mov    %eax,-0x22c(%rbp)
jmp    13e9 <open_simplex_noise3+0x2c9>
mov    -0x108(%rbp),%eax
mov    %eax,-0x22c(%rbp)
mov    -0x22c(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    1449 <open_simplex_noise3+0x329>
mov    -0x44(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
movsd  0x3bdc(%rip),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
jmp    147f <open_simplex_noise3+0x35f>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe8(%rbp)
mov    %eax,-0xdc(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x3b95(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
jne    1522 <open_simplex_noise3+0x402>
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    14f6 <open_simplex_noise3+0x3d6>
mov    -0xec(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xec(%rbp)
movsd  0x3b1f(%rip),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
jmp    151d <open_simplex_noise3+0x3fd>
mov    -0xe0(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xe0(%rbp)
movsd  0x3af3(%rip),%xmm0
addsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    1558 <open_simplex_noise3+0x438>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x3abc(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
jne    15ac <open_simplex_noise3+0x48c>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0x4c(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xf0(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x3a69(%rip),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    15e2 <open_simplex_noise3+0x4c2>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf0(%rbp)
mov    %eax,-0xe4(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x3a32(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  %xmm0,-0xc0(%rbp)
ff
jmp    1868 <open_simplex_noise3+0x748>
mov    -0x108(%rbp),%eax
or     -0x10c(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    1665 <open_simplex_noise3+0x545>
mov    -0x44(%rbp),%eax
mov    %eax,-0xdc(%rbp)
mov    -0x44(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xe8(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x39f0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x39bc(%rip),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  0x39b4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
jmp    16c7 <open_simplex_noise3+0x5a7>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe8(%rbp)
mov    %eax,-0xdc(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x3979(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x398d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x3951(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x394d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
jne    1733 <open_simplex_noise3+0x613>
mov    -0x48(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0x48(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xec(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x3922(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x38ee(%rip),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  0x38e6(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
jmp    1795 <open_simplex_noise3+0x675>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x38ab(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x38bf(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x3883(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x387f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
jne    1801 <open_simplex_noise3+0x6e1>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0x4c(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xf0(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x3854(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  0x3820(%rip),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  0x3818(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    1863 <open_simplex_noise3+0x743>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf0(%rbp)
mov    %eax,-0xe4(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x37dd(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x37f1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x37b5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x37b1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    1868 <open_simplex_noise3+0x748>
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x377d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    19a0 <open_simplex_noise3+0x880>
movsd  -0x150(%rbp),%xmm0
ff
mulsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
mulsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x238(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x238(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x3650(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x364c(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x3629(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x3606(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x188(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x35d7(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x190(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x198(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1b46 <open_simplex_noise3+0xa26>
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x240(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x198(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x240(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x34ab(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x3487(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x3483(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x198(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x3444(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1a8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  -0x1b0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1cd9 <open_simplex_noise3+0xbb9>
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x248(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1b0(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x248(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
movsd  0x32f7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x32f3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1b8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x32c4(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x1c8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1e59 <open_simplex_noise3+0xd39>
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x250(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x250(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
jmp    3fc8 <open_simplex_noise3+0x2ea8>
movsd  -0x90(%rbp),%xmm0
ff
movsd  0x31aa(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     2b10 <open_simplex_noise3+0x19f0>
movl   $0x6,-0x108(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x5,-0x10c(%rbp)
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     1ef9 <open_simplex_noise3+0xdd9>
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1ef9 <open_simplex_noise3+0xdd9>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x3,-0x10c(%rbp)
jmp    1f48 <open_simplex_noise3+0xe28>
movsd  -0x118(%rbp),%xmm0
ucomisd -0x120(%rbp),%xmm0
ff
jbe    1f43 <open_simplex_noise3+0xe23>
movsd  -0x88(%rbp),%xmm1
ff
movsd  -0x118(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1f43 <open_simplex_noise3+0xe23>
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x3,-0x108(%rbp)
jmp    1f48 <open_simplex_noise3+0xe28>
movsd  0x30d8(%rip),%xmm0
subsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xf8(%rbp),%xmm1
ff
movsd  -0x118(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
ja     1f94 <open_simplex_noise3+0xe74>
movsd  -0xf8(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2239 <open_simplex_noise3+0x1119>
movsd  -0x120(%rbp),%xmm1
ff
movsd  -0x118(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1fbf <open_simplex_noise3+0xe9f>
mov    -0x10c(%rbp),%eax
mov    %eax,-0x254(%rbp)
jmp    1fcb <open_simplex_noise3+0xeab>
mov    -0x108(%rbp),%eax
mov    %eax,-0x254(%rbp)
mov    -0x254(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     2056 <open_simplex_noise3+0xf36>
mov    -0x44(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe8(%rbp)
movsd  -0x98(%rbp),%xmm0
movsd  0x3007(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2fe3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2fc7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2fbb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
jmp    2089 <open_simplex_noise3+0xf69>
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    %eax,-0xdc(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2f8b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     214f <open_simplex_noise3+0x102f>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2f43(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2f37(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     211f <open_simplex_noise3+0xfff>
mov    -0xec(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0x2ef2(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
jmp    214a <open_simplex_noise3+0x102a>
mov    -0xe0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe0(%rbp)
movsd  -0xb8(%rbp),%xmm0
ff
movsd  0x2ec2(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
jmp    2182 <open_simplex_noise3+0x1062>
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2e92(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     2201 <open_simplex_noise3+0x10e1>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xf0(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2e44(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2e38(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2e34(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2e10(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    2234 <open_simplex_noise3+0x1114>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    %eax,-0xe4(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2de0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  %xmm0,-0xc0(%rbp)
ff
jmp    24a2 <open_simplex_noise3+0x1382>
mov    -0x108(%rbp),%eax
and    -0x10c(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     22ca <open_simplex_noise3+0x11aa>
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x44(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xe8(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2d7b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2d77(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2d6b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2d67(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
jmp    2311 <open_simplex_noise3+0x11f1>
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    %eax,-0xdc(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2d1f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2d1b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     2390 <open_simplex_noise3+0x1270>
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x48(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xec(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2cb5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2cb1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2ca5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2ca1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
jmp    23d7 <open_simplex_noise3+0x12b7>
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    %eax,-0xe0(%rbp)
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2c59(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2c55(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0xfc(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     2456 <open_simplex_noise3+0x1336>
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xf0(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2bef(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2beb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2bdf(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2bdb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    249d <open_simplex_noise3+0x137d>
mov    -0x4c(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    %eax,-0xe4(%rbp)
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2b93(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2b8f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
jmp    24a2 <open_simplex_noise3+0x1382>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2b4e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2b62(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2b26(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2b3a(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x2b17(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1b8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x2ad0(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x1c8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    264d <open_simplex_noise3+0x152d>
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x260(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x260(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x29ac(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2970(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2984(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x293d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1a8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  -0x1b0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    27e0 <open_simplex_noise3+0x16c0>
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x268(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1b0(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x268(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x2829(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm0
ff
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x188(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x27c2(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x190(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x198(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    295b <open_simplex_noise3+0x183b>
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x270(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x198(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x270(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2695(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2689(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x266d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2661(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2645(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2639(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x2612(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    2b0b <open_simplex_noise3+0x19eb>
movsd  -0x150(%rbp),%xmm0
ff
mulsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x150(%rbp),%xmm0
ff
mulsd  -0x150(%rbp),%xmm0
ff
movsd  %xmm0,-0x278(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x278(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
jmp    3fc3 <open_simplex_noise3+0x2ea3>
movsd  -0x78(%rbp),%xmm0
addsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  0x24ce(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    2b71 <open_simplex_noise3+0x1a51>
movsd  -0x130(%rbp),%xmm0
ff
movsd  0x24b4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x3,-0x108(%rbp)
movl   $0x1,-0x124(%rbp)
jmp    2b9d <open_simplex_noise3+0x1a7d>
movsd  0x2487(%rip),%xmm0
subsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x4,-0x108(%rbp)
movl   $0x0,-0x124(%rbp)
movsd  -0x78(%rbp),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  0x243e(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    2c01 <open_simplex_noise3+0x1ae1>
movsd  -0x138(%rbp),%xmm0
ff
movsd  0x2424(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x5,-0x10c(%rbp)
movl   $0x1,-0x128(%rbp)
jmp    2c2d <open_simplex_noise3+0x1b0d>
movsd  0x23f7(%rip),%xmm0
subsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x2,-0x10c(%rbp)
movl   $0x0,-0x128(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x23ae(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    2d33 <open_simplex_noise3+0x1c13>
movsd  -0x140(%rbp),%xmm0
ff
movsd  0x2394(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     2cd5 <open_simplex_noise3+0x1bb5>
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x148(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2cd5 <open_simplex_noise3+0x1bb5>
movsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x6,-0x108(%rbp)
movl   $0x1,-0x124(%rbp)
jmp    2d2e <open_simplex_noise3+0x1c0e>
movsd  -0x118(%rbp),%xmm0
ff
ucomisd -0x120(%rbp),%xmm0
ff
jbe    2d29 <open_simplex_noise3+0x1c09>
movsd  -0x120(%rbp),%xmm1
ff
movsd  -0x148(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2d29 <open_simplex_noise3+0x1c09>
movsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x6,-0x10c(%rbp)
movl   $0x1,-0x128(%rbp)
jmp    2d2e <open_simplex_noise3+0x1c0e>
jmp    2e06 <open_simplex_noise3+0x1ce6>
movsd  0x22c5(%rip),%xmm0
subsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x120(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     2da8 <open_simplex_noise3+0x1c88>
movsd  -0x118(%rbp),%xmm1
ff
movsd  -0x148(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2da8 <open_simplex_noise3+0x1c88>
movsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movl   $0x1,-0x108(%rbp)
movl   $0x0,-0x124(%rbp)
jmp    2e01 <open_simplex_noise3+0x1ce1>
movsd  -0x118(%rbp),%xmm0
ff
ucomisd -0x120(%rbp),%xmm0
ff
jbe    2dfc <open_simplex_noise3+0x1cdc>
movsd  -0x120(%rbp),%xmm1
ff
movsd  -0x148(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    2dfc <open_simplex_noise3+0x1cdc>
movsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movl   $0x1,-0x10c(%rbp)
movl   $0x0,-0x128(%rbp)
jmp    2e01 <open_simplex_noise3+0x1ce1>
jmp    2e06 <open_simplex_noise3+0x1ce6>
mov    -0x124(%rbp),%eax
cmp    -0x128(%rbp),%eax
jne    32e7 <open_simplex_noise3+0x21c7>
cmpl   $0x0,-0x124(%rbp)
je     3085 <open_simplex_noise3+0x1f65>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x21cb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x21bf(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x21a3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x2197(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x217b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x216f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
mov    -0x108(%rbp),%eax
and    -0x10c(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     2f68 <open_simplex_noise3+0x1e48>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2123(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x211f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2103(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x20e7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0xf0(%rbp)
jmp    3080 <open_simplex_noise3+0x1f60>
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     2ffd <open_simplex_noise3+0x1edd>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x2096(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x2072(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x206e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x2052(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0xf0(%rbp)
jmp    307b <open_simplex_noise3+0x1f5b>
movsd  -0x98(%rbp),%xmm0
movsd  0x2013(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1ff7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1fd3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1fcf(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xf0(%rbp)
jmp    3080 <open_simplex_noise3+0x1f60>
jmp    32e2 <open_simplex_noise3+0x21c2>
movsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x44(%rbp),%eax
mov    %eax,-0xdc(%rbp)
mov    -0x48(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0xe4(%rbp)
mov    -0x108(%rbp),%eax
or     -0x10c(%rbp),%eax
mov    %eax,-0xfc(%rbp)
mov    -0xfc(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    3191 <open_simplex_noise3+0x2071>
movsd  0x1f04(%rip),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  0x1efc(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1ed8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1ed4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1eb0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1eac(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf0(%rbp)
jmp    32dd <open_simplex_noise3+0x21bd>
mov    -0xfc(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
jne    3240 <open_simplex_noise3+0x2120>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x1e4d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1e49(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  0x1e2d(%rip),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1e25(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1e01(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1dfd(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xf0(%rbp)
jmp    32d8 <open_simplex_noise3+0x21b8>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x1db0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1dac(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1d88(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1d84(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0x1d68(%rip),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1d60(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xf0(%rbp)
jmp    32dd <open_simplex_noise3+0x21bd>
jmp    32e2 <open_simplex_noise3+0x21c2>
jmp    364c <open_simplex_noise3+0x252c>
cmpl   $0x0,-0x124(%rbp)
je     3311 <open_simplex_noise3+0x21f1>
mov    -0x108(%rbp),%eax
mov    %eax,-0x100(%rbp)
mov    -0x10c(%rbp),%eax
mov    %eax,-0x104(%rbp)
jmp    3329 <open_simplex_noise3+0x2209>
mov    -0x10c(%rbp),%eax
mov    %eax,-0x100(%rbp)
mov    -0x108(%rbp),%eax
mov    %eax,-0x104(%rbp)
mov    -0x100(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
jne    33d8 <open_simplex_noise3+0x22b8>
movsd  0x1cbd(%rip),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  0x1cb5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1c91(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1c8d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1c69(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1c65(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x44(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
jmp    3524 <open_simplex_noise3+0x2404>
mov    -0x100(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
jne    3487 <open_simplex_noise3+0x2367>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x1c06(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1c02(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x1be6(%rip),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1bde(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1bba(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1bb6(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x48(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe4(%rbp)
jmp    351f <open_simplex_noise3+0x23ff>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x1b69(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1b65(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1b41(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1b3d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x1b21(%rip),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1b19(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xdc(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xe0(%rbp)
mov    -0x4c(%rbp),%eax
sub    $0x1,%eax
mov    %eax,-0xe4(%rbp)
jmp    3524 <open_simplex_noise3+0x2404>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x1aec(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x1ad0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x1ab4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x44(%rbp),%eax
mov    %eax,-0xe8(%rbp)
mov    -0x48(%rbp),%eax
mov    %eax,-0xec(%rbp)
mov    -0x4c(%rbp),%eax
mov    %eax,-0xf0(%rbp)
mov    -0x104(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     35d5 <open_simplex_noise3+0x24b5>
movsd  -0xc8(%rbp),%xmm0
ff
movsd  0x1a63(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0xe8(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xe8(%rbp)
jmp    3647 <open_simplex_noise3+0x2527>
mov    -0x104(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     3617 <open_simplex_noise3+0x24f7>
movsd  -0xd0(%rbp),%xmm0
ff
movsd  0x1a21(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0xec(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xec(%rbp)
jmp    3642 <open_simplex_noise3+0x2522>
movsd  -0xd8(%rbp),%xmm0
ff
movsd  0x19f1(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0xf0(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0xf0(%rbp)
jmp    3647 <open_simplex_noise3+0x2527>
jmp    364c <open_simplex_noise3+0x252c>
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x19a4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x19a0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x197d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x190(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x195a(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x188(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x192b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x190(%rbp),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x198(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    37f2 <open_simplex_noise3+0x26d2>
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x158(%rbp),%xmm0
ff
mulsd  -0x158(%rbp),%xmm0
ff
movsd  %xmm0,-0x280(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x188(%rbp),%xmm0
ff
movsd  -0x190(%rbp),%xmm1
ff
movsd  -0x198(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x280(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x17ff(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x17db(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x17d7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x198(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x1798(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1a8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1b0(%rbp),%xmm0
ff
movsd  -0x1b0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3985 <open_simplex_noise3+0x2865>
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x160(%rbp),%xmm0
ff
mulsd  -0x160(%rbp),%xmm0
ff
movsd  %xmm0,-0x288(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  -0x1a8(%rbp),%xmm1
ff
movsd  -0x1b0(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x288(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x1a0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x164b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1647(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1b8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x1618(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1c8(%rbp),%xmm0
ff
movsd  -0x1c8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3b05 <open_simplex_noise3+0x29e5>
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x168(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x290(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x1b8(%rbp),%xmm0
ff
movsd  -0x1c0(%rbp),%xmm1
ff
movsd  -0x1c8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x290(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  0x14eb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x14ff(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  0x14c3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x14d7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x14b4(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movsd  -0x1d0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x146d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1d8(%rbp),%xmm1
ff
movsd  -0x1d8(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1e0(%rbp),%xmm0
ff
movsd  -0x1e0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3cb0 <open_simplex_noise3+0x2b90>
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x298(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x0,%ecx
movsd  -0x1d0(%rbp),%xmm0
ff
movsd  -0x1d8(%rbp),%xmm1
ff
movsd  -0x1e0(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x298(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x1349(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  0x130d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x1321(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x1f8(%rbp)
ff
movsd  -0x1e8(%rbp),%xmm0
ff
movsd  -0x1e8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x12da(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x1f0(%rbp),%xmm1
ff
movsd  -0x1f0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x1f8(%rbp),%xmm0
ff
movsd  -0x1f8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3e43 <open_simplex_noise3+0x2d23>
movsd  -0x178(%rbp),%xmm0
ff
mulsd  -0x178(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
mulsd  -0x178(%rbp),%xmm0
ff
movsd  %xmm0,-0x2a0(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x1,%esi
mov    -0x48(%rbp),%edx
add    $0x0,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x1e8(%rbp),%xmm0
ff
movsd  -0x1f0(%rbp),%xmm1
ff
movsd  -0x1f8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x2a0(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
subsd  %xmm1,%xmm0
movsd  0x11c6(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x200(%rbp)
ff
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  %xmm0,-0x208(%rbp)
ff
movsd  -0x1f8(%rbp),%xmm0
ff
movsd  %xmm0,-0x210(%rbp)
ff
movsd  -0x200(%rbp),%xmm0
ff
movsd  -0x200(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x115f(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x208(%rbp),%xmm1
ff
movsd  -0x208(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x210(%rbp),%xmm0
ff
movsd  -0x210(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x180(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    3fbe <open_simplex_noise3+0x2e9e>
movsd  -0x180(%rbp),%xmm0
ff
mulsd  -0x180(%rbp),%xmm0
ff
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0x180(%rbp),%xmm0
ff
mulsd  -0x180(%rbp),%xmm0
ff
movsd  %xmm0,-0x2a8(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0x44(%rbp),%esi
add    $0x0,%esi
mov    -0x48(%rbp),%edx
add    $0x1,%edx
mov    -0x4c(%rbp),%ecx
add    $0x1,%ecx
movsd  -0x200(%rbp),%xmm0
ff
movsd  -0x208(%rbp),%xmm1
ff
movsd  -0x210(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x2a8(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
jmp    3fc3 <open_simplex_noise3+0x2ea3>
jmp    3fc8 <open_simplex_noise3+0x2ea8>
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0x101d(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0xb8(%rbp),%xmm1
movsd  -0xb8(%rbp),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x218(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4100 <open_simplex_noise3+0x2fe0>
movsd  -0x218(%rbp),%xmm0
ff
mulsd  -0x218(%rbp),%xmm0
ff
movsd  %xmm0,-0x218(%rbp)
ff
movsd  -0x218(%rbp),%xmm0
ff
mulsd  -0x218(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b0(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0xdc(%rbp),%esi
mov    -0xe0(%rbp),%edx
mov    -0xe4(%rbp),%ecx
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0xb8(%rbp),%xmm1
ff
movsd  -0xc0(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x2b0(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm1,%xmm0
movsd  0xee5(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xd0(%rbp),%xmm2
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xd8(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x220(%rbp),%xmm0
ff
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    4238 <open_simplex_noise3+0x3118>
movsd  -0x220(%rbp),%xmm0
ff
mulsd  -0x220(%rbp),%xmm0
ff
movsd  %xmm0,-0x220(%rbp)
ff
movsd  -0x220(%rbp),%xmm0
ff
mulsd  -0x220(%rbp),%xmm0
ff
movsd  %xmm0,-0x2b8(%rbp)
ff
mov    -0x8(%rbp),%rdi
mov    -0xe8(%rbp),%esi
mov    -0xec(%rbp),%edx
mov    -0xf0(%rbp),%ecx
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0xd0(%rbp),%xmm1
ff
movsd  -0xd8(%rbp),%xmm2
ff
call   1030 <extrapolate3@plt>
movaps %xmm0,%xmm2
movsd  -0x2b8(%rbp),%xmm0
ff
movsd  -0x228(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x228(%rbp)
ff
movsd  -0x228(%rbp),%xmm0
ff
movsd  0xde8(%rip),%xmm1
divsd  %xmm1,%xmm0
add    $0x2c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<open_simplex_noise3>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x108,%rsp
movapd %xmm0,0x70(%rsp)
movapd %xmm0,%xmm3
movapd %xmm1,0xc0(%rsp)
addsd  %xmm1,%xmm3
movapd %xmm2,0x60(%rsp)
addsd  %xmm2,%xmm3
mulsd  0x1ea6(%rip),%xmm3
mov    %rdi,%r14
movapd %xmm3,%xmm4
addsd  %xmm0,%xmm4
movsd  %xmm4,0xb0(%rsp)
movapd %xmm3,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rsp)
addsd  %xmm2,%xmm3
movsd  %xmm3,0x20(%rsp)
movapd %xmm4,%xmm0
call   1040 <fastFloor@plt>
mov    %eax,%r15d
movsd  0x10(%rsp),%xmm0
call   1040 <fastFloor@plt>
mov    %eax,%r12d
movsd  0x20(%rsp),%xmm0
call   1040 <fastFloor@plt>
movsd  0x20(%rsp),%xmm7
movsd  0x10(%rsp),%xmm5
movsd  0xb0(%rsp),%xmm6
movapd 0x60(%rsp),%xmm9
movapd 0x70(%rsp),%xmm8
mov    %eax,%r13d
lea    (%r12,%r15,1),%eax
add    %r13d,%eax
xorps  %xmm2,%xmm2
cvtsi2sd %eax,%xmm2
mulsd  0x1e21(%rip),%xmm2
xorps  %xmm0,%xmm0
cvtsi2sd %r15d,%xmm0
movapd %xmm2,%xmm3
addsd  %xmm0,%xmm3
movd   %r12d,%xmm1
movd   %r13d,%xmm4
punpckldq %xmm1,%xmm4
cvtdq2pd %xmm4,%xmm1
unpcklpd %xmm2,%xmm2
addpd  %xmm1,%xmm2
subsd  %xmm0,%xmm6
subsd  %xmm1,%xmm7
unpckhpd %xmm1,%xmm1
subsd  %xmm1,%xmm5
movapd %xmm6,%xmm1
addsd  %xmm5,%xmm1
movapd %xmm1,%xmm0
addsd  %xmm7,%xmm0
subsd  %xmm3,%xmm8
unpcklpd 0xc0(%rsp),%xmm9
subpd  %xmm2,%xmm9
movsd  0x1dc3(%rip),%xmm2
ucomisd %xmm0,%xmm2
movapd %xmm8,0x70(%rsp)
jae    128d <open_simplex_noise3+0x16d>
ucomisd 0x1dce(%rip),%xmm0
jae    136c <open_simplex_noise3+0x24c>
xor    %ecx,%ecx
ucomisd %xmm2,%xmm1
seta   %dil
movsd  0x1d9e(%rip),%xmm0
ja     1500 <open_simplex_noise3+0x3e0>
movapd %xmm2,%xmm3
subsd  %xmm1,%xmm3
jmp    1508 <open_simplex_noise3+0x3e8>
ucomisd %xmm5,%xmm6
jb     12a9 <open_simplex_noise3+0x189>
ucomisd %xmm5,%xmm7
jbe    12a9 <open_simplex_noise3+0x189>
mov    $0x4,%ecx
mov    $0x1,%eax
movapd %xmm7,%xmm5
jmp    12d3 <open_simplex_noise3+0x1b3>
ucomisd %xmm6,%xmm5
seta   %al
ucomisd %xmm6,%xmm7
seta   %cl
and    %al,%cl
movzbl %cl,%eax
test   %al,%al
jne    12c4 <open_simplex_noise3+0x1a4>
movapd %xmm6,%xmm7
lea    (%rax,%rax,2),%eax
add    $0x1,%eax
mov    $0x2,%ecx
movapd %xmm7,%xmm6
subsd  %xmm0,%xmm2
ucomisd %xmm6,%xmm2
movapd %xmm9,%xmm11
unpckhpd %xmm9,%xmm11
ja     1316 <open_simplex_noise3+0x1f6>
ucomisd %xmm5,%xmm2
ja     1316 <open_simplex_noise3+0x1f6>
test   $0x1,%al
jne    1522 <open_simplex_noise3+0x402>
lea    -0x1(%r15),%edx
mov    %edx,(%rsp)
movsd  0x1d0c(%rip),%xmm0
addsd  %xmm8,%xmm0
mov    %r15d,%edx
movapd %xmm8,%xmm1
jmp    153a <open_simplex_noise3+0x41a>
ucomisd %xmm6,%xmm5
cmova  %ecx,%eax
test   $0x1,%al
jne    1388 <open_simplex_noise3+0x268>
lea    -0x1(%r15),%ecx
movsd  0x1ce3(%rip),%xmm1
addsd  %xmm8,%xmm1
test   $0x2,%al
jne    16d1 <open_simplex_noise3+0x5b1>
lea    -0x1(%r12),%edx
mov    %edx,0x4(%rsp)
movsd  0x1cc4(%rip),%xmm10
addsd  %xmm11,%xmm10
movapd %xmm8,%xmm0
mov    %r15d,%edx
mov    %r15d,(%rsp)
mov    %r12d,%ebx
movapd %xmm11,0x30(%rsp)
jmp    1704 <open_simplex_noise3+0x5e4>
ucomisd %xmm6,%xmm5
jb     13d2 <open_simplex_noise3+0x2b2>
ucomisd %xmm7,%xmm5
jbe    13d2 <open_simplex_noise3+0x2b2>
mov    $0x3,%ecx
mov    $0x6,%eax
movapd %xmm7,%xmm5
jmp    1400 <open_simplex_noise3+0x2e0>
lea    0x1(%r15),%ecx
movsd  0x1c84(%rip),%xmm1
addsd  %xmm8,%xmm1
test   $0x2,%al
jne    16df <open_simplex_noise3+0x5bf>
lea    -0x1(%r12),%ebx
movsd  0x1c62(%rip),%xmm0
addsd  %xmm11,%xmm0
movapd %xmm0,0x30(%rsp)
movapd %xmm1,%xmm0
mov    %ecx,(%rsp)
mov    %r12d,%edx
mov    %r12d,0x4(%rsp)
movapd %xmm11,%xmm10
jmp    1704 <open_simplex_noise3+0x5e4>
ucomisd %xmm5,%xmm6
seta   %al
ucomisd %xmm7,%xmm6
seta   %cl
and    %al,%cl
mov    %ecx,%eax
xor    $0x1,%al
movzbl %al,%eax
test   %cl,%cl
jne    13f1 <open_simplex_noise3+0x2d1>
movapd %xmm6,%xmm7
lea    (%rax,%rax,2),%eax
add    $0x3,%eax
mov    $0x5,%ecx
movapd %xmm7,%xmm6
movsd  0x1c30(%rip),%xmm1
subsd  %xmm0,%xmm1
ucomisd %xmm1,%xmm6
ja     14c9 <open_simplex_noise3+0x3a9>
ucomisd %xmm1,%xmm5
ja     14c9 <open_simplex_noise3+0x3a9>
lea    0x1(%r15),%edx
lea    0x2(%r15),%esi
movapd %xmm8,%xmm1
unpcklpd %xmm8,%xmm1
movapd 0x1c26(%rip),%xmm0
test   $0x1,%al
cmove  %r15d,%esi
mov    %esi,(%rsp)
cmove  %r15d,%edx
je     144d <open_simplex_noise3+0x32d>
addpd  %xmm0,%xmm1
movapd %xmm1,%xmm2
movapd 0x1c17(%rip),%xmm1
lea    0x1(%r12),%ebx
lea    0x2(%r12),%esi
movapd %xmm9,%xmm3
unpckhpd %xmm9,%xmm3
test   $0x2,%cl
cmove  %r12d,%esi
mov    %esi,0x4(%rsp)
cmove  %r12d,%ebx
je     1482 <open_simplex_noise3+0x362>
addpd  %xmm0,%xmm3
addpd  %xmm1,%xmm2
addpd  %xmm1,%xmm3
and    %ecx,%eax
test   $0x4,%al
mov    %edx,0xc(%rsp)
je     1d6d <open_simplex_noise3+0xc4d>
lea    0x1(%r13),%ebp
lea    0x2(%r13),%eax
mov    %eax,0x8(%rsp)
movapd %xmm9,%xmm0
unpcklpd %xmm9,%xmm0
addpd  0x1baa(%rip),%xmm0
addpd  0x1bb2(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
jmp    1d90 <open_simplex_noise3+0xc70>
ucomisd %xmm5,%xmm6
cmova  %ecx,%eax
test   $0x1,%al
jne    1a82 <open_simplex_noise3+0x962>
movsd  0x1b38(%rip),%xmm1
addsd  %xmm8,%xmm1
unpcklpd %xmm1,%xmm1
test   $0x2,%al
jne    1d99 <open_simplex_noise3+0xc79>
mov    %r15d,%ecx
mov    %r15d,%edx
mov    %r15d,(%rsp)
jmp    1aaf <open_simplex_noise3+0x98f>
movapd %xmm1,%xmm3
addsd  %xmm0,%xmm3
addsd  %xmm7,%xmm6
xor    %esi,%esi
ucomisd %xmm2,%xmm6
seta   %sil
ja     1566 <open_simplex_noise3+0x446>
movapd %xmm2,%xmm4
subsd  %xmm6,%xmm4
jmp    156e <open_simplex_noise3+0x44e>
lea    0x1(%r15),%edx
movsd  0x1aea(%rip),%xmm0
addsd  %xmm8,%xmm0
mov    %edx,(%rsp)
movapd %xmm0,%xmm1
or     %ecx,%eax
test   $0x2,%cl
jne    15c5 <open_simplex_noise3+0x4a5>
lea    -0x1(%r12),%ecx
mov    %ecx,0x4(%rsp)
movsd  0x1ab9(%rip),%xmm10
addsd  %xmm11,%xmm10
mov    %r12d,%ebx
movapd %xmm11,%xmm2
jmp    15e1 <open_simplex_noise3+0x4c1>
movapd %xmm6,%xmm4
addsd  %xmm0,%xmm4
lea    (%rsi,%rsi,2),%eax
add    $0x2,%eax
addsd  %xmm7,%xmm5
ucomisd %xmm2,%xmm5
jbe    1660 <open_simplex_noise3+0x540>
addsd  0x1a8e(%rip),%xmm5
ucomisd %xmm3,%xmm4
jb     1ad5 <open_simplex_noise3+0x9b5>
ucomisd %xmm3,%xmm5
jbe    1ad5 <open_simplex_noise3+0x9b5>
mov    $0x5,%eax
mov    $0x6,%edx
ucomisd 0x1a60(%rip),%xmm6
ja     1b46 <open_simplex_noise3+0xa26>
mov    $0x2,%eax
mov    $0x1,%ecx
jmp    1bda <open_simplex_noise3+0xaba>
lea    0x1(%r12),%ebx
movsd  0x1a45(%rip),%xmm10
addsd  %xmm11,%xmm10
mov    %ebx,0x4(%rsp)
movapd %xmm10,%xmm2
addsd  0x1a37(%rip),%xmm0
addsd  0x1a37(%rip),%xmm1
addsd  0x1a26(%rip),%xmm10
addsd  0x1a26(%rip),%xmm2
movapd %xmm2,0x30(%rsp)
test   $0x4,%al
movapd %xmm0,0xb0(%rsp)
mov    %edx,0xc(%rsp)
movapd %xmm1,0x90(%rsp)
jne    1697 <open_simplex_noise3+0x577>
lea    -0x1(%r13),%eax
mov    %eax,0x8(%rsp)
movsd  0x19f6(%rip),%xmm0
addsd  %xmm9,%xmm0
movapd %xmm0,0x50(%rsp)
movsd  0x19cb(%rip),%xmm0
addsd  %xmm9,%xmm0
addsd  0x19ce(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
mov    %r13d,%ebp
jmp    1766 <open_simplex_noise3+0x646>
subsd  %xmm5,%xmm2
ucomisd %xmm3,%xmm4
jb     1af7 <open_simplex_noise3+0x9d7>
ucomisd %xmm3,%xmm2
jbe    1af7 <open_simplex_noise3+0x9d7>
mov    $0x1,%esi
xor    %ecx,%ecx
ucomisd 0x1989(%rip),%xmm6
mov    $0x1,%edx
ja     1bda <open_simplex_noise3+0xaba>
jmp    1c12 <open_simplex_noise3+0xaf2>
lea    0x1(%r13),%ebp
movsd  0x1975(%rip),%xmm0
addsd  %xmm9,%xmm0
movsd  0x1978(%rip),%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,0x50(%rsp)
addsd  0x195e(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
mov    %ebp,0x8(%rsp)
jmp    1766 <open_simplex_noise3+0x646>
movapd %xmm8,%xmm0
mov    %r15d,%edx
mov    %r15d,(%rsp)
jmp    16e6 <open_simplex_noise3+0x5c6>
movapd %xmm1,%xmm0
mov    %ecx,(%rsp)
lea    0x1(%r12),%ebx
movsd  0x1924(%rip),%xmm10
addsd  %xmm11,%xmm10
mov    %ebx,0x4(%rsp)
movapd %xmm10,0x30(%rsp)
movapd %xmm1,0x90(%rsp)
mov    %ecx,0xc(%rsp)
movapd %xmm0,0xb0(%rsp)
test   $0x4,%al
jne    1745 <open_simplex_noise3+0x625>
lea    -0x1(%r13),%eax
mov    %eax,0x8(%rsp)
movsd  0x18e2(%rip),%xmm0
addsd  %xmm9,%xmm0
movapd %xmm0,0x20(%rsp)
mov    %r13d,%ebp
movapd %xmm9,0x50(%rsp)
jmp    1766 <open_simplex_noise3+0x646>
lea    0x1(%r13),%ebp
movsd  0x18c7(%rip),%xmm0
addsd  %xmm9,%xmm0
mov    %ebp,0x8(%rsp)
movapd %xmm0,0x20(%rsp)
movapd %xmm0,0x50(%rsp)
movapd %xmm8,%xmm0
mulsd  %xmm8,%xmm0
movsd  0x18b7(%rip),%xmm13
movapd %xmm13,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm11,%xmm0
mulsd  %xmm11,%xmm0
subsd  %xmm0,%xmm1
movapd %xmm9,%xmm0
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm1
xorpd  %xmm12,%xmm12
ucomisd %xmm12,%xmm1
xorpd  %xmm14,%xmm14
movapd %xmm9,0x60(%rsp)
movapd %xmm10,0xc0(%rsp)
movapd %xmm11,0x40(%rsp)
jbe    1828 <open_simplex_noise3+0x708>
mulsd  %xmm1,%xmm1
mulsd  %xmm1,%xmm1
movsd  %xmm1,0x10(%rsp)
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
movapd %xmm8,%xmm0
movapd %xmm11,%xmm1
movapd %xmm9,%xmm2
call   1030 <extrapolate3@plt>
xorpd  %xmm12,%xmm12
movsd  0x182d(%rip),%xmm13
movapd 0x40(%rsp),%xmm11
movapd 0x60(%rsp),%xmm9
movapd 0x70(%rsp),%xmm8
mulsd  0x10(%rsp),%xmm0
xorpd  %xmm14,%xmm14
addsd  %xmm0,%xmm14
movsd  0x17e8(%rip),%xmm0
addsd  %xmm8,%xmm0
movsd  0x17e3(%rip),%xmm7
addsd  %xmm7,%xmm0
movapd %xmm11,%xmm1
addsd  %xmm7,%xmm1
movapd %xmm9,%xmm2
addsd  %xmm7,%xmm2
movapd %xmm0,%xmm6
mulsd  %xmm0,%xmm6
movapd %xmm13,%xmm5
subsd  %xmm6,%xmm5
movapd 0x17e4(%rip),%xmm4
movapd %xmm1,%xmm6
xorpd  %xmm4,%xmm6
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
subsd  %xmm3,%xmm5
xorpd  %xmm2,%xmm4
movapd %xmm2,%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm3,%xmm5
ucomisd %xmm12,%xmm5
movapd %xmm1,0xd0(%rsp)
movapd %xmm6,0x80(%rsp)
jbe    1931 <open_simplex_noise3+0x811>
mulsd  %xmm5,%xmm5
mulsd  %xmm5,%xmm5
movsd  %xmm5,0xe8(%rsp)
mov    %r15d,%esi
add    $0x1,%esi
mov    %r14,%rdi
mov    %r12d,%edx
mov    %r13d,%ecx
movsd  %xmm14,0x10(%rsp)
movapd %xmm2,0xf0(%rsp)
movapd %xmm4,0xa0(%rsp)
call   1030 <extrapolate3@plt>
movsd  0x172d(%rip),%xmm7
movapd 0xa0(%rsp),%xmm4
movapd 0xf0(%rsp),%xmm2
movsd  0x1722(%rip),%xmm13
movapd 0x40(%rsp),%xmm11
movsd  0x10(%rsp),%xmm14
movapd 0x70(%rsp),%xmm8
mulsd  0xe8(%rsp),%xmm0
addsd  %xmm0,%xmm14
addsd  %xmm7,%xmm8
movsd  0x16da(%rip),%xmm1
addsd  %xmm11,%xmm1
addsd  %xmm7,%xmm1
movapd %xmm8,%xmm0
mulsd  %xmm8,%xmm0
subsd  %xmm0,%xmm13
movapd %xmm1,%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm13,%xmm3
subsd  %xmm0,%xmm3
mulsd  %xmm2,%xmm4
addsd  %xmm3,%xmm4
xorpd  %xmm6,%xmm6
ucomisd %xmm6,%xmm4
movapd %xmm8,0x70(%rsp)
jbe    19d8 <open_simplex_noise3+0x8b8>
mulsd  %xmm4,%xmm4
mulsd  %xmm4,%xmm4
movapd %xmm4,0xa0(%rsp)
mov    %r12d,%edx
add    $0x1,%edx
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r13d,%ecx
movapd %xmm8,%xmm0
movsd  %xmm14,0x10(%rsp)
movsd  %xmm13,0x40(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm6,%xmm6
movsd  0x40(%rsp),%xmm13
movsd  0x10(%rsp),%xmm14
mulsd  0xa0(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0x60(%rsp),%xmm0
movapd 0xd0(%rsp),%xmm1
movapd 0x80(%rsp),%xmm3
movsd  0x1620(%rip),%xmm2
addsd  %xmm0,%xmm2
addsd  0x161c(%rip),%xmm2
mulsd  %xmm1,%xmm3
addsd  %xmm13,%xmm3
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm3
ucomisd %xmm6,%xmm3
jbe    1a67 <open_simplex_noise3+0x947>
mulsd  %xmm3,%xmm3
mulsd  %xmm3,%xmm3
movapd %xmm3,0x80(%rsp)
add    $0x1,%r13d
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
movapd 0x70(%rsp),%xmm0
movsd  %xmm14,0x10(%rsp)
call   1030 <extrapolate3@plt>
movsd  0x10(%rsp),%xmm14
mulsd  0x80(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0x90(%rsp),%xmm6
movapd 0x50(%rsp),%xmm9
movapd 0x30(%rsp),%xmm3
jmp    2884 <open_simplex_noise3+0x1764>
lea    0x2(%r15),%ecx
movapd %xmm8,%xmm1
unpcklpd %xmm8,%xmm1
addpd  0x15e8(%rip),%xmm1
lea    0x1(%r15),%edx
mov    %edx,(%rsp)
addpd  0x15e9(%rip),%xmm1
test   $0x2,%al
jne    1dd5 <open_simplex_noise3+0xcb5>
movapd %xmm9,%xmm3
unpckhpd %xmm9,%xmm3
addsd  0x1557(%rip),%xmm3
unpcklpd %xmm3,%xmm3
mov    %r12d,%edx
mov    %r12d,0x4(%rsp)
mov    %r12d,%ebx
jmp    1e05 <open_simplex_noise3+0xce5>
ucomisd %xmm4,%xmm3
seta   %dl
ucomisd %xmm4,%xmm5
seta   %bl
test   %bl,%dl
mov    $0x6,%edx
cmovne %edx,%eax
mov    $0x1,%edx
cmovne %edx,%esi
jmp    1b14 <open_simplex_noise3+0x9f4>
ucomisd %xmm4,%xmm3
seta   %dl
ucomisd %xmm4,%xmm2
seta   %bl
xor    %ebp,%ebp
test   %bl,%dl
mov    $0x1,%edx
cmovne %edx,%eax
cmovne %ebp,%esi
mov    %dil,%cl
mov    $0x4,%edx
sub    %ecx,%edx
xor    %ecx,%ecx
ucomisd 0x14e8(%rip),%xmm1
seta   %cl
cmp    %ecx,%esi
jne    1bda <open_simplex_noise3+0xaba>
mov    $0x4,%esi
ucomisd 0x14d0(%rip),%xmm1
jbe    1c12 <open_simplex_noise3+0xaf2>
and    %eax,%edx
movapd %xmm8,%xmm1
addsd  %xmm0,%xmm1
addsd  %xmm0,%xmm1
movapd 0x1533(%rip),%xmm0
movapd %xmm9,%xmm2
addpd  %xmm0,%xmm2
addpd  %xmm0,%xmm2
movapd %xmm2,0x50(%rsp)
lea    0x1(%r15),%eax
mov    %eax,0xc(%rsp)
lea    0x1(%r12),%ebx
lea    0x1(%r13),%ebp
test   $0x1,%dl
movapd %xmm1,0x90(%rsp)
jne    222c <open_simplex_noise3+0x110c>
movsd  0x148d(%rip),%xmm0
addsd  %xmm8,%xmm0
movapd %xmm0,0xb0(%rsp)
movapd %xmm9,%xmm0
test   $0x2,%dl
jne    22f6 <open_simplex_noise3+0x11d6>
addsd  0x1481(%rip),%xmm0
addpd  0x1509(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
lea    0x2(%r13),%eax
mov    %eax,0x8(%rsp)
jmp    1d43 <open_simplex_noise3+0xc23>
test   %ecx,%ecx
mov    %edx,%ecx
cmove  %eax,%ecx
cmove  %edx,%eax
test   $0x1,%cl
jne    1c68 <open_simplex_noise3+0xb48>
movsd  0x141f(%rip),%xmm1
addsd  %xmm8,%xmm1
movdqa 0x1492(%rip),%xmm2
mov    $0x1,%ebx
mov    $0xffffffff,%ecx
mov    $0x1,%ebp
jmp    1cc1 <open_simplex_noise3+0xba1>
or     %eax,%esi
test   $0x1,%sil
jne    2271 <open_simplex_noise3+0x1151>
movsd  0x13ea(%rip),%xmm0
addsd  %xmm8,%xmm0
addsd  0x13ed(%rip),%xmm0
movapd %xmm0,0xb0(%rsp)
movapd 0x144c(%rip),%xmm0
addpd  %xmm9,%xmm0
addpd  0x145f(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
lea    -0x1(%r15),%eax
mov    %eax,(%rsp)
lea    0x1(%r12),%eax
jmp    22be <open_simplex_noise3+0x119e>
xor    %edx,%edx
and    $0x2,%ecx
sete   %dl
movsd  0x13a0(%rip),%xmm1
addsd  %xmm8,%xmm1
movd   %edx,%xmm0
pshufd $0x44,%xmm0,%xmm0
psllq  $0x3f,%xmm0
psrad  $0x1f,%xmm0
pshufd $0xf5,%xmm0,%xmm2
movdqa %xmm2,%xmm0
pandn  0x13ff(%rip),%xmm0
pand   0x1417(%rip),%xmm2
por    %xmm0,%xmm2
cmp    $0x1,%ecx
sbb    %ebx,%ebx
or     $0x1,%ebx
neg    %ecx
sbb    %ebp,%ebp
or     $0x1,%ebp
mov    $0x1,%ecx
addpd  %xmm9,%xmm2
add    %r15d,%ecx
mov    %ecx,0xc(%rsp)
add    %r12d,%ebx
addpd  0x13d8(%rip),%xmm2
movapd %xmm2,0x50(%rsp)
add    %r13d,%ebp
addsd  0x1337(%rip),%xmm1
movapd %xmm1,0x90(%rsp)
movsd  0x132e(%rip),%xmm0
addsd  %xmm8,%xmm0
movapd 0x13c9(%rip),%xmm1
addpd  %xmm9,%xmm1
movapd %xmm1,0x20(%rsp)
test   $0x1,%al
jne    1d57 <open_simplex_noise3+0xc37>
test   $0x2,%al
movapd %xmm0,0xb0(%rsp)
jne    22cb <open_simplex_noise3+0x11ab>
lea    0x2(%r13),%eax
mov    %eax,0x8(%rsp)
movapd 0x20(%rsp),%xmm0
addsd  0x1303(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
mov    %r15d,%eax
mov    %r15d,(%rsp)
mov    %r12d,%eax
mov    %r12d,0x4(%rsp)
jmp    2386 <open_simplex_noise3+0x1266>
addsd  0x12e1(%rip),%xmm0
movapd %xmm0,0xb0(%rsp)
jmp    225d <open_simplex_noise3+0x113d>
movapd %xmm9,%xmm0
unpcklpd %xmm9,%xmm0
addpd  0x12f1(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
mov    %r13d,%eax
mov    %r13d,0x8(%rsp)
mov    %r13d,%ebp
movapd %xmm2,%xmm1
jmp    1e5d <open_simplex_noise3+0xd3d>
lea    0x1(%r12),%ecx
mov    %ecx,0x4(%rsp)
movapd %xmm9,%xmm3
unpckhpd %xmm9,%xmm3
movsd  0x1264(%rip),%xmm0
addsd  %xmm0,%xmm3
addsd  %xmm0,%xmm3
lea    0x2(%r12),%ebx
addsd  %xmm3,%xmm0
unpcklpd %xmm0,%xmm3
mov    %r15d,%ecx
mov    %r15d,%edx
mov    %r15d,(%rsp)
jmp    1e05 <open_simplex_noise3+0xce5>
lea    0x1(%r12),%ebx
movapd %xmm9,%xmm0
unpckhpd %xmm9,%xmm0
movsd  0x122c(%rip),%xmm3
addsd  %xmm3,%xmm0
addsd  %xmm3,%xmm0
lea    0x2(%r12),%edx
mov    %edx,0x4(%rsp)
addsd  %xmm0,%xmm3
unpcklpd %xmm0,%xmm3
mov    %ecx,0xc(%rsp)
test   $0x4,%al
jne    1e31 <open_simplex_noise3+0xd11>
movsd  0x1203(%rip),%xmm0
addsd  %xmm9,%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm0,0x20(%rsp)
mov    %r13d,%eax
mov    %r13d,0x8(%rsp)
mov    %r13d,%ebp
jmp    1e5d <open_simplex_noise3+0xd3d>
lea    0x1(%r13),%ebp
lea    0x2(%r13),%eax
mov    %eax,0x8(%rsp)
movapd %xmm9,%xmm0
unpcklpd %xmm9,%xmm0
addpd  0x1211(%rip),%xmm0
addpd  0x1239(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
movapd %xmm3,0xc0(%rsp)
movapd %xmm1,0xb0(%rsp)
movsd  0x11a1(%rip),%xmm1
movapd %xmm8,%xmm10
addsd  %xmm1,%xmm10
movsd  0x119f(%rip),%xmm3
movapd %xmm10,0x50(%rsp)
addsd  %xmm3,%xmm10
movapd %xmm9,%xmm12
unpckhpd %xmm9,%xmm12
movapd %xmm12,%xmm11
addsd  %xmm1,%xmm11
movapd %xmm11,0x90(%rsp)
addsd  %xmm3,%xmm11
movapd %xmm9,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm10,%xmm0
mulsd  %xmm10,%xmm0
movsd  0x115d(%rip),%xmm5
movapd %xmm5,%xmm4
subsd  %xmm0,%xmm4
movapd 0x116d(%rip),%xmm6
xorpd  %xmm11,%xmm6
movapd %xmm11,%xmm0
mulsd  %xmm11,%xmm0
movapd %xmm4,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm1
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm1
xorpd  %xmm14,%xmm14
movapd %xmm11,0x80(%rsp)
movapd %xmm6,0x30(%rsp)
jbe    1fd2 <open_simplex_noise3+0xeb2>
mulsd  %xmm1,%xmm1
mulsd  %xmm1,%xmm1
movsd  %xmm1,0xa0(%rsp)
lea    0x1(%r15),%esi
lea    0x1(%r12),%edx
mov    %r14,%rdi
mov    %r13d,%ecx
movapd %xmm10,%xmm0
movapd %xmm11,%xmm1
movapd %xmm9,0x60(%rsp)
movapd %xmm10,0x10(%rsp)
movapd %xmm12,0xd0(%rsp)
movsd  %xmm4,0x40(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm7,%xmm7
movsd  0x40(%rsp),%xmm4
movapd 0xd0(%rsp),%xmm12
movapd 0x10(%rsp),%xmm10
movapd 0x30(%rsp),%xmm6
movapd 0x80(%rsp),%xmm11
movsd  0x107f(%rip),%xmm3
movsd  0x107f(%rip),%xmm5
movapd 0x60(%rsp),%xmm9
movapd 0x70(%rsp),%xmm8
mulsd  0xa0(%rsp),%xmm0
xorpd  %xmm14,%xmm14
addsd  %xmm0,%xmm14
addsd  %xmm3,%xmm12
movsd  0x1039(%rip),%xmm1
addsd  %xmm9,%xmm1
addsd  %xmm1,%xmm3
movapd %xmm12,%xmm0
mulsd  %xmm12,%xmm0
subsd  %xmm0,%xmm4
movapd 0x1052(%rip),%xmm2
xorpd  %xmm3,%xmm2
movapd %xmm3,%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm4
ucomisd %xmm7,%xmm4
movsd  %xmm1,0x60(%rsp)
jbe    20a9 <open_simplex_noise3+0xf89>
mulsd  %xmm4,%xmm4
mulsd  %xmm4,%xmm4
movsd  %xmm4,0x40(%rsp)
lea    0x1(%r15),%esi
lea    0x1(%r13),%ecx
mov    %r14,%rdi
mov    %r12d,%edx
movapd %xmm10,%xmm0
movapd %xmm12,%xmm1
movapd %xmm2,0xd0(%rsp)
movapd %xmm3,%xmm2
movsd  %xmm14,0x10(%rsp)
movapd %xmm3,0xa0(%rsp)
call   1030 <extrapolate3@plt>
movapd 0xd0(%rsp),%xmm2
movapd 0x30(%rsp),%xmm6
movapd 0x80(%rsp),%xmm11
movapd 0xa0(%rsp),%xmm3
movsd  0xfa0(%rip),%xmm5
movsd  0x10(%rsp),%xmm14
movapd 0x70(%rsp),%xmm8
mulsd  0x40(%rsp),%xmm0
addsd  %xmm0,%xmm14
addsd  0xf76(%rip),%xmm8
movapd %xmm8,%xmm0
mulsd  %xmm8,%xmm0
movapd %xmm5,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm11,%xmm6
addsd  %xmm1,%xmm6
mulsd  %xmm3,%xmm2
addsd  %xmm6,%xmm2
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm2
jbe    213a <open_simplex_noise3+0x101a>
mulsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm2
movapd %xmm2,0xd0(%rsp)
lea    0x1(%r12),%edx
lea    0x1(%r13),%ecx
mov    %r14,%rdi
mov    %r15d,%esi
movapd %xmm8,%xmm0
movapd %xmm11,%xmm1
movapd %xmm3,%xmm2
movsd  %xmm14,0x10(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm7,%xmm7
movsd  0xf0b(%rip),%xmm5
movsd  0x10(%rsp),%xmm14
mulsd  0xd0(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0xb0(%rsp),%xmm6
movapd 0x20(%rsp),%xmm9
movapd 0xc0(%rsp),%xmm3
movapd 0x50(%rsp),%xmm0
movapd 0x90(%rsp),%xmm1
movsd  0xeae(%rip),%xmm4
movsd  0x60(%rsp),%xmm2
addsd  %xmm4,%xmm0
addsd  %xmm4,%xmm1
addsd  %xmm4,%xmm2
movapd %xmm0,%xmm4
mulsd  %xmm0,%xmm4
subsd  %xmm4,%xmm5
movapd %xmm1,%xmm4
mulsd  %xmm1,%xmm4
subsd  %xmm4,%xmm5
movapd %xmm2,%xmm4
mulsd  %xmm2,%xmm4
subsd  %xmm4,%xmm5
ucomisd %xmm7,%xmm5
unpckhpd %xmm9,%xmm9
unpckhpd %xmm3,%xmm3
unpckhpd %xmm6,%xmm6
jbe    2884 <open_simplex_noise3+0x1764>
mulsd  %xmm5,%xmm5
mulsd  %xmm5,%xmm5
movsd  %xmm5,0x70(%rsp)
add    $0x1,%r15d
add    $0x1,%r12d
add    $0x1,%r13d
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
movapd %xmm6,0x90(%rsp)
movapd %xmm9,0x50(%rsp)
movsd  %xmm14,0x10(%rsp)
movapd %xmm3,0x30(%rsp)
call   1030 <extrapolate3@plt>
movapd 0x30(%rsp),%xmm3
movsd  0x10(%rsp),%xmm14
movapd 0x50(%rsp),%xmm9
movapd 0x90(%rsp),%xmm6
mulsd  0x70(%rsp),%xmm0
addsd  %xmm0,%xmm14
jmp    2884 <open_simplex_noise3+0x1764>
movsd  0xe0c(%rip),%xmm0
addsd  %xmm8,%xmm0
addsd  0xde7(%rip),%xmm0
movapd %xmm0,0xb0(%rsp)
movapd 0xe7e(%rip),%xmm0
addpd  %xmm9,%xmm0
movapd %xmm0,0x20(%rsp)
lea    0x2(%r15),%eax
mov    %eax,(%rsp)
mov    %r12d,%eax
mov    %r12d,0x4(%rsp)
jmp    232a <open_simplex_noise3+0x120a>
movsd  0xd9f(%rip),%xmm0
addsd  %xmm8,%xmm0
addsd  0xd9a(%rip),%xmm0
movapd %xmm0,0xb0(%rsp)
test   $0x2,%al
jne    2334 <open_simplex_noise3+0x1214>
movapd 0xe21(%rip),%xmm0
addpd  %xmm9,%xmm0
addpd  0xe04(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
lea    0x1(%r15),%eax
mov    %eax,(%rsp)
lea    -0x1(%r12),%eax
mov    %eax,0x4(%rsp)
lea    0x1(%r13),%eax
jmp    2363 <open_simplex_noise3+0x1243>
movapd 0x20(%rsp),%xmm1
movapd %xmm1,%xmm0
unpckhpd %xmm1,%xmm0
addsd  0xd5f(%rip),%xmm0
lea    0x2(%r12),%eax
mov    %eax,0x4(%rsp)
unpcklpd %xmm0,%xmm1
movapd %xmm1,0x20(%rsp)
jmp    2323 <open_simplex_noise3+0x1203>
unpckhpd %xmm9,%xmm0
addsd  0xd3d(%rip),%xmm0
movapd %xmm9,%xmm1
unpcklpd %xmm0,%xmm1
addpd  0xdbc(%rip),%xmm1
movapd %xmm1,0x20(%rsp)
lea    0x2(%r12),%eax
mov    %eax,0x4(%rsp)
mov    %r15d,%eax
mov    %r15d,(%rsp)
mov    %r13d,%eax
mov    %r13d,0x8(%rsp)
jmp    2386 <open_simplex_noise3+0x1266>
movapd 0xd64(%rip),%xmm0
addpd  %xmm9,%xmm0
addpd  0xd67(%rip),%xmm0
movapd %xmm0,0x20(%rsp)
lea    0x1(%r15),%eax
mov    %eax,(%rsp)
lea    0x1(%r12),%eax
mov    %eax,0x4(%rsp)
lea    -0x1(%r13),%eax
mov    %eax,0x8(%rsp)
mov    %r13d,%ebp
mov    %r12d,%ebx
mov    %r15d,%eax
mov    %r15d,0xc(%rsp)
movapd %xmm8,0x90(%rsp)
movapd %xmm9,0x50(%rsp)
movsd  0xc8a(%rip),%xmm0
addsd  %xmm8,%xmm0
movsd  0xc85(%rip),%xmm1
movsd  %xmm0,0xc0(%rsp)
addsd  %xmm1,%xmm0
movapd %xmm9,%xmm11
unpckhpd %xmm9,%xmm11
movapd %xmm11,%xmm10
addsd  %xmm1,%xmm10
movapd %xmm9,%xmm13
addsd  %xmm1,%xmm13
movapd %xmm0,%xmm4
mulsd  %xmm0,%xmm4
movsd  0xc59(%rip),%xmm12
movapd %xmm12,%xmm2
subsd  %xmm4,%xmm2
movapd 0xc68(%rip),%xmm3
movapd %xmm10,%xmm6
xorpd  %xmm3,%xmm6
movapd %xmm10,%xmm4
mulsd  %xmm10,%xmm4
subsd  %xmm4,%xmm2
xorpd  %xmm13,%xmm3
movapd %xmm13,%xmm4
mulsd  %xmm13,%xmm4
subsd  %xmm4,%xmm2
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm2
xorpd  %xmm14,%xmm14
movapd %xmm9,0x60(%rsp)
movapd %xmm11,0xd0(%rsp)
movapd %xmm10,0xa0(%rsp)
movapd %xmm6,0x40(%rsp)
jbe    24dd <open_simplex_noise3+0x13bd>
mulsd  %xmm2,%xmm2
mulsd  %xmm2,%xmm2
movsd  %xmm2,0x80(%rsp)
lea    0x1(%r15),%esi
mov    %r14,%rdi
mov    %r12d,%edx
mov    %r13d,%ecx
movapd %xmm10,%xmm1
movapd %xmm13,%xmm2
movapd %xmm13,0x10(%rsp)
movapd %xmm3,0x30(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm7,%xmm7
movapd 0x30(%rsp),%xmm3
movapd 0x10(%rsp),%xmm13
movsd  0xb87(%rip),%xmm1
movapd 0x40(%rsp),%xmm6
movapd 0xa0(%rsp),%xmm10
movapd 0xd0(%rsp),%xmm11
movsd  0xb74(%rip),%xmm12
movapd 0x60(%rsp),%xmm9
movapd 0x70(%rsp),%xmm8
mulsd  0x80(%rsp),%xmm0
xorpd  %xmm14,%xmm14
addsd  %xmm0,%xmm14
movapd %xmm8,%xmm0
addsd  %xmm1,%xmm0
movsd  0xb2a(%rip),%xmm4
addsd  %xmm11,%xmm4
addsd  %xmm4,%xmm1
movapd %xmm0,%xmm2
mulsd  %xmm0,%xmm2
subsd  %xmm2,%xmm12
movapd %xmm1,%xmm5
mulsd  %xmm1,%xmm5
movapd %xmm12,%xmm2
subsd  %xmm5,%xmm2
mulsd  %xmm13,%xmm3
addsd  %xmm2,%xmm3
ucomisd %xmm7,%xmm3
movapd %xmm4,0x80(%rsp)
movapd %xmm0,0xf0(%rsp)
jbe    25a0 <open_simplex_noise3+0x1480>
mulsd  %xmm3,%xmm3
mulsd  %xmm3,%xmm3
movapd %xmm3,0x30(%rsp)
lea    0x1(%r12),%edx
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r13d,%ecx
movapd %xmm13,%xmm2
movsd  %xmm14,0x10(%rsp)
movsd  %xmm12,0xe8(%rsp)
call   1030 <extrapolate3@plt>
movsd  0xe8(%rsp),%xmm12
movapd 0x40(%rsp),%xmm6
movapd 0xa0(%rsp),%xmm10
movsd  0x10(%rsp),%xmm14
movapd 0x60(%rsp),%xmm9
mulsd  0x30(%rsp),%xmm0
addsd  %xmm0,%xmm14
movsd  0xa70(%rip),%xmm1
addsd  %xmm9,%xmm1
movsd  0xa6b(%rip),%xmm2
addsd  %xmm1,%xmm2
mulsd  %xmm10,%xmm6
addsd  %xmm12,%xmm6
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm6
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm6
movapd %xmm1,0x30(%rsp)
jbe    2631 <open_simplex_noise3+0x1511>
mulsd  %xmm6,%xmm6
mulsd  %xmm6,%xmm6
movapd %xmm6,0x40(%rsp)
lea    0x1(%r13),%ecx
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r12d,%edx
movapd 0xf0(%rsp),%xmm0
movapd %xmm10,%xmm1
movsd  %xmm14,0x10(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm7,%xmm7
movsd  0x10(%rsp),%xmm14
movapd 0x60(%rsp),%xmm9
mulsd  0x40(%rsp),%xmm0
addsd  %xmm0,%xmm14
movsd  0x9f7(%rip),%xmm4
movsd  0xc0(%rsp),%xmm0
movapd 0x80(%rsp),%xmm1
movsd  0x9d5(%rip),%xmm5
addsd  %xmm5,%xmm0
addsd  %xmm5,%xmm1
addsd  %xmm5,%xmm9
movapd %xmm0,%xmm2
mulsd  %xmm0,%xmm2
subsd  %xmm2,%xmm4
movapd 0x9dc(%rip),%xmm3
xorpd  %xmm1,%xmm3
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
movapd %xmm4,%xmm6
subsd  %xmm2,%xmm6
movapd %xmm9,%xmm2
mulsd  %xmm9,%xmm2
subsd  %xmm2,%xmm6
ucomisd %xmm7,%xmm6
movsd  %xmm0,0xc0(%rsp)
movapd %xmm1,0x80(%rsp)
movapd %xmm3,0x60(%rsp)
jbe    270e <open_simplex_noise3+0x15ee>
mulsd  %xmm6,%xmm6
mulsd  %xmm6,%xmm6
movsd  %xmm6,0x40(%rsp)
lea    0x1(%r15),%esi
lea    0x1(%r12),%edx
mov    %r14,%rdi
mov    %r13d,%ecx
movapd %xmm9,%xmm2
movsd  %xmm14,0x10(%rsp)
movsd  %xmm4,0xa0(%rsp)
call   1030 <extrapolate3@plt>
movsd  0x935(%rip),%xmm5
movsd  0xa0(%rsp),%xmm4
movsd  0x10(%rsp),%xmm14
mulsd  0x40(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0xd0(%rsp),%xmm1
movapd 0x30(%rsp),%xmm2
addsd  %xmm5,%xmm1
addsd  %xmm5,%xmm2
movapd %xmm1,%xmm0
mulsd  %xmm1,%xmm0
subsd  %xmm0,%xmm4
movapd 0x917(%rip),%xmm6
xorpd  %xmm2,%xmm6
movapd %xmm2,%xmm0
mulsd  %xmm2,%xmm0
subsd  %xmm0,%xmm4
xorpd  %xmm7,%xmm7
ucomisd %xmm7,%xmm4
jbe    27ba <open_simplex_noise3+0x169a>
mulsd  %xmm4,%xmm4
mulsd  %xmm4,%xmm4
movsd  %xmm4,0xa0(%rsp)
mov    %r15d,%esi
add    $0x1,%esi
lea    0x1(%r13),%ecx
mov    %r14,%rdi
mov    %r12d,%edx
movsd  0xc0(%rsp),%xmm0
movsd  %xmm14,0x10(%rsp)
movapd %xmm2,0x30(%rsp)
movapd %xmm6,0x40(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm7,%xmm7
movapd 0x40(%rsp),%xmm6
movapd 0x30(%rsp),%xmm2
movsd  0x10(%rsp),%xmm14
mulsd  0xa0(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0x70(%rsp),%xmm0
movapd 0x20(%rsp),%xmm8
movapd 0x50(%rsp),%xmm9
movsd  0x85a(%rip),%xmm3
movapd 0x80(%rsp),%xmm1
movapd 0x60(%rsp),%xmm4
addsd  0x83b(%rip),%xmm0
movapd %xmm0,%xmm5
mulsd  %xmm0,%xmm5
subsd  %xmm5,%xmm3
mulsd  %xmm1,%xmm4
addsd  %xmm3,%xmm4
mulsd  %xmm2,%xmm6
addsd  %xmm4,%xmm6
ucomisd %xmm7,%xmm6
movapd %xmm9,%xmm3
unpckhpd %xmm9,%xmm3
unpckhpd %xmm8,%xmm8
movapd %xmm8,0xc0(%rsp)
jbe    287b <open_simplex_noise3+0x175b>
mulsd  %xmm6,%xmm6
mulsd  %xmm6,%xmm6
movapd %xmm6,0x40(%rsp)
add    $0x1,%r12d
add    $0x1,%r13d
mov    %r14,%rdi
mov    %r15d,%esi
mov    %r12d,%edx
mov    %r13d,%ecx
movsd  %xmm14,0x10(%rsp)
movapd %xmm3,0x30(%rsp)
call   1030 <extrapolate3@plt>
movapd 0x30(%rsp),%xmm3
movsd  0x10(%rsp),%xmm14
movapd 0x50(%rsp),%xmm9
mulsd  0x40(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0x90(%rsp),%xmm6
movapd %xmm6,%xmm0
mulsd  %xmm6,%xmm0
movsd  0x79c(%rip),%xmm4
movapd %xmm4,%xmm1
subsd  %xmm0,%xmm1
movapd %xmm3,%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm1
movapd %xmm9,%xmm0
mulsd  %xmm9,%xmm0
subsd  %xmm0,%xmm1
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm1
jbe    2910 <open_simplex_noise3+0x17f0>
mulsd  %xmm1,%xmm1
mulsd  %xmm1,%xmm1
movsd  %xmm1,0x70(%rsp)
mov    %r14,%rdi
mov    0xc(%rsp),%esi
mov    %ebx,%edx
mov    %ebp,%ecx
movapd %xmm6,%xmm0
movapd %xmm3,%xmm1
movapd %xmm9,%xmm2
movsd  %xmm14,0x10(%rsp)
call   1030 <extrapolate3@plt>
xorpd  %xmm5,%xmm5
movsd  0x732(%rip),%xmm4
movsd  0x10(%rsp),%xmm14
mulsd  0x70(%rsp),%xmm0
addsd  %xmm0,%xmm14
movapd 0xb0(%rsp),%xmm0
movapd 0x20(%rsp),%xmm2
movapd 0xc0(%rsp),%xmm1
movapd %xmm0,%xmm3
mulsd  %xmm0,%xmm3
subsd  %xmm3,%xmm4
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
subsd  %xmm3,%xmm4
movapd %xmm2,%xmm3
mulsd  %xmm2,%xmm3
subsd  %xmm3,%xmm4
ucomisd %xmm5,%xmm4
jbe    298c <open_simplex_noise3+0x186c>
mulsd  %xmm4,%xmm4
mulsd  %xmm4,%xmm4
movsd  %xmm4,0x70(%rsp)
mov    %r14,%rdi
mov    (%rsp),%esi
mov    0x4(%rsp),%edx
mov    0x8(%rsp),%ecx
movsd  %xmm14,0x10(%rsp)
call   1030 <extrapolate3@plt>
movsd  0x10(%rsp),%xmm14
mulsd  0x70(%rsp),%xmm0
addsd  %xmm0,%xmm14
divsd  0x6b3(%rip),%xmm14
movapd %xmm14,%xmm0
add    $0x108,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
%struct.osn_context = type { i32 }
define double @open_simplex_noise3(%struct.osn_context* %0, double %1, double %2, double %3) {
%5 = fadd double %1, %2
%6 = fadd double %5, %3
%7 = fmul double %6, 0xBFC5555555555555
%8 = fadd double %7, %1
%9 = fadd double %7, %2
%10 = fadd double %7, %3
%11 = tail call i32 @fastFloor(double %8)
%12 = tail call i32 @fastFloor(double %9)
%13 = tail call i32 @fastFloor(double %10)
%14 = add nsw i32 %12, %11
%15 = add nsw i32 %14, %13
%16 = sitofp i32 %15 to double
%17 = fmul double %16, 0x3FD5555555555555
%18 = sitofp i32 %11 to double
%19 = fadd double %17, %18
%20 = insertelement <2 x i32> poison, i32 %13, i64 0
%21 = insertelement <2 x i32> %20, i32 %12, i64 1
%22 = sitofp <2 x i32> %21 to <2 x double>
%23 = insertelement <2 x double> poison, double %17, i64 0
%24 = shufflevector <2 x double> %23, <2 x double> poison, <2 x i32> zeroinitializer
%25 = fadd <2 x double> %24, %22
%26 = fsub double %8, %18
%27 = extractelement <2 x double> %22, i64 1
%28 = fsub double %9, %27
%29 = extractelement <2 x double> %22, i64 0
%30 = fsub double %10, %29
%31 = fadd double %26, %28
%32 = fadd double %31, %30
%33 = fsub double %1, %19
%34 = insertelement <2 x double> poison, double %3, i64 0
%35 = insertelement <2 x double> %34, double %2, i64 1
%36 = fsub <2 x double> %35, %25
%37 = fcmp ugt double %32, 1.000000e+00
br i1 %37, label %232, label %38
38: ; preds = %4
%39 = fcmp oge double %26, %28
%40 = fcmp ogt double %30, %28
%41 = select i1 %39, i1 %40, i1 false
br i1 %41, label %48, label %42
42: ; preds = %38
%43 = fcmp olt double %26, %28
%44 = fcmp ogt double %30, %26
%45 = select i1 %43, i1 %44, i1 false
%46 = select i1 %45, i32 4, i32 1
%47 = select i1 %45, double %30, double %26
br label %48
48: ; preds = %42, %38
%49 = phi i32 [ 1, %38 ], [ %46, %42 ]
%50 = phi i32 [ 4, %38 ], [ 2, %42 ]
%51 = phi double [ %26, %38 ], [ %47, %42 ]
%52 = phi double [ %30, %38 ], [ %28, %42 ]
%53 = fsub double 1.000000e+00, %32
%54 = fcmp ogt double %53, %51
%55 = fcmp ogt double %53, %52
%56 = select i1 %54, i1 true, i1 %55
br i1 %56, label %57, label %107
57: ; preds = %48
%58 = fcmp ogt double %52, %51
%59 = select i1 %58, i32 %50, i32 %49
%60 = and i32 %59, 1
%61 = icmp eq i32 %60, 0
br i1 %61, label %62, label %67
62: ; preds = %57
%63 = add nsw i32 %11, -1
%64 = fadd double %33, 1.000000e+00
%65 = and i32 %59, 2
%66 = icmp eq i32 %65, 0
br i1 %66, label %72, label %80
67: ; preds = %57
%68 = add nsw i32 %11, 1
%69 = fadd double %33, -1.000000e+00
%70 = and i32 %59, 2
%71 = icmp eq i32 %70, 0
br i1 %71, label %76, label %80
72: ; preds = %62
%73 = add nsw i32 %12, -1
%74 = extractelement <2 x double> %36, i64 1
%75 = fadd double %74, 1.000000e+00
br label %88
76: ; preds = %67
%77 = add nsw i32 %12, -1
%78 = extractelement <2 x double> %36, i64 1
%79 = fadd double %78, 1.000000e+00
br label %88
80: ; preds = %67, %62
%81 = phi double [ %69, %67 ], [ %64, %62 ]
%82 = phi double [ %69, %67 ], [ %33, %62 ]
%83 = phi i32 [ %68, %67 ], [ %63, %62 ]
%84 = phi i32 [ %68, %67 ], [ %11, %62 ]
%85 = add nsw i32 %12, 1
%86 = extractelement <2 x double> %36, i64 1
%87 = fadd double %86, -1.000000e+00
br label %88
88: ; preds = %72, %76, %80
%89 = phi double [ %64, %72 ], [ %69, %76 ], [ %81, %80 ]
%90 = phi double [ %33, %72 ], [ %69, %76 ], [ %82, %80 ]
%91 = phi i32 [ %63, %72 ], [ %68, %76 ], [ %83, %80 ]
%92 = phi i32 [ %11, %72 ], [ %68, %76 ], [ %84, %80 ]
%93 = phi i32 [ %73, %72 ], [ %12, %76 ], [ %85, %80 ]
%94 = phi i32 [ %12, %72 ], [ %77, %76 ], [ %85, %80 ]
%95 = phi double [ %75, %72 ], [ %78, %76 ], [ %87, %80 ]
%96 = phi double [ %74, %72 ], [ %79, %76 ], [ %87, %80 ]
%97 = and i32 %59, 4
%98 = icmp eq i32 %97, 0
br i1 %98, label %99, label %103
99: ; preds = %88
%100 = add nsw i32 %13, -1
%101 = extractelement <2 x double> %36, i64 0
%102 = fadd double %101, 1.000000e+00
br label %155
103: ; preds = %88
%104 = add nsw i32 %13, 1
%105 = extractelement <2 x double> %36, i64 0
%106 = fadd double %105, -1.000000e+00
br label %155
107: ; preds = %48
%108 = or i32 %50, %49
%109 = and i32 %49, 1
%110 = icmp eq i32 %109, 0
br i1 %110, label %111, label %114
111: ; preds = %107
%112 = add nsw i32 %11, -1
%113 = fadd double %33, 1.000000e+00
br label %117
114: ; preds = %107
%115 = add nsw i32 %11, 1
%116 = fadd double %33, -1.000000e+00
br label %117
117: ; preds = %114, %111
%118 = phi i32 [ %112, %111 ], [ %115, %114 ]
%119 = phi i32 [ %11, %111 ], [ %115, %114 ]
%120 = phi double [ %113, %111 ], [ %116, %114 ]
%121 = phi double [ %33, %111 ], [ %116, %114 ]
%122 = fadd double %120, 0xBFD5555555555555
%123 = fadd double %121, 0xBFE5555555555555
%124 = and i32 %50, 2
%125 = icmp eq i32 %124, 0
br i1 %125, label %126, label %130
126: ; preds = %117
%127 = add nsw i32 %12, -1
%128 = extractelement <2 x double> %36, i64 1
%129 = fadd double %128, 1.000000e+00
br label %134
130: ; preds = %117
%131 = add nsw i32 %12, 1
%132 = extractelement <2 x double> %36, i64 1
%133 = fadd double %132, -1.000000e+00
br label %134
134: ; preds = %130, %126
%135 = phi i32 [ %127, %126 ], [ %131, %130 ]
%136 = phi i32 [ %12, %126 ], [ %131, %130 ]
%137 = phi double [ %129, %126 ], [ %133, %130 ]
%138 = phi double [ %128, %126 ], [ %133, %130 ]
%139 = fadd double %137, 0xBFD5555555555555
%140 = fadd double %138, 0xBFE5555555555555
%141 = and i32 %108, 4
%142 = icmp eq i32 %141, 0
br i1 %142, label %143, label %149
143: ; preds = %134
%144 = add nsw i32 %13, -1
%145 = extractelement <2 x double> %36, i64 0
%146 = fadd double %145, 0xBFE5555555555555
%147 = fadd double %145, 1.000000e+00
%148 = fadd double %147, 0xBFD5555555555555
br label %155
149: ; preds = %134
%150 = add nsw i32 %13, 1
%151 = extractelement <2 x double> %36, i64 0
%152 = fadd double %151, -1.000000e+00
%153 = fadd double %152, 0xBFE5555555555555
%154 = fadd double %152, 0xBFD5555555555555
br label %155
155: ; preds = %143, %149, %99, %103
%156 = phi i32 [ %92, %99 ], [ %92, %103 ], [ %118, %143 ], [ %118, %149 ]
%157 = phi i32 [ %93, %99 ], [ %93, %103 ], [ %135, %143 ], [ %135, %149 ]
%158 = phi i32 [ %100, %99 ], [ %104, %103 ], [ %144, %143 ], [ %150, %149 ]
%159 = phi i32 [ %13, %99 ], [ %104, %103 ], [ %13, %143 ], [ %150, %149 ]
%160 = phi i32 [ %94, %99 ], [ %94, %103 ], [ %136, %143 ], [ %136, %149 ]
%161 = phi i32 [ %91, %99 ], [ %91, %103 ], [ %119, %143 ], [ %119, %149 ]
%162 = phi double [ %102, %99 ], [ %106, %103 ], [ %148, %143 ], [ %154, %149 ]
%163 = phi double [ %95, %99 ], [ %95, %103 ], [ %139, %143 ], [ %139, %149 ]
%164 = phi double [ %90, %99 ], [ %90, %103 ], [ %122, %143 ], [ %122, %149 ]
%165 = phi double [ %101, %99 ], [ %106, %103 ], [ %146, %143 ], [ %153, %149 ]
%166 = phi double [ %96, %99 ], [ %96, %103 ], [ %140, %143 ], [ %140, %149 ]
%167 = phi double [ %89, %99 ], [ %89, %103 ], [ %123, %143 ], [ %123, %149 ]
%168 = fneg double %33
%169 = tail call double @llvm.fmuladd.f64(double %168, double %33, double 2.000000e+00)
%170 = extractelement <2 x double> %36, i64 1
%171 = fneg double %170
%172 = tail call double @llvm.fmuladd.f64(double %171, double %170, double %169)
%173 = extractelement <2 x double> %36, i64 0
%174 = fneg double %173
%175 = tail call double @llvm.fmuladd.f64(double %174, double %173, double %172)
%176 = fcmp ogt double %175, 0.000000e+00
br i1 %176, label %177, label %182
177: ; preds = %155
%178 = fmul double %175, %175
%179 = fmul double %178, %178
%180 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %12, i32 %13, double %33, double %170, double %173)
%181 = tail call double @llvm.fmuladd.f64(double %179, double %180, double 0.000000e+00)
br label %182
182: ; preds = %177, %155
%183 = phi double [ %181, %177 ], [ 0.000000e+00, %155 ]
%184 = fadd double %33, -1.000000e+00
%185 = fadd double %184, 0xBFD5555555555555
%186 = fadd double %170, 0xBFD5555555555555
%187 = fadd double %173, 0xBFD5555555555555
%188 = fneg double %185
%189 = tail call double @llvm.fmuladd.f64(double %188, double %185, double 2.000000e+00)
%190 = fneg double %186
%191 = tail call double @llvm.fmuladd.f64(double %190, double %186, double %189)
%192 = fneg double %187
%193 = tail call double @llvm.fmuladd.f64(double %192, double %187, double %191)
%194 = fcmp ogt double %193, 0.000000e+00
br i1 %194, label %195, label %201
195: ; preds = %182
%196 = fmul double %193, %193
%197 = fmul double %196, %196
%198 = add nsw i32 %11, 1
%199 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %198, i32 %12, i32 %13, double %185, double %186, double %187)
%200 = tail call double @llvm.fmuladd.f64(double %197, double %199, double %183)
br label %201
201: ; preds = %195, %182
%202 = phi double [ %200, %195 ], [ %183, %182 ]
%203 = fadd double %33, 0xBFD5555555555555
%204 = fadd double %170, -1.000000e+00
%205 = fadd double %204, 0xBFD5555555555555
%206 = fneg double %203
%207 = tail call double @llvm.fmuladd.f64(double %206, double %203, double 2.000000e+00)
%208 = fneg double %205
%209 = tail call double @llvm.fmuladd.f64(double %208, double %205, double %207)
%210 = tail call double @llvm.fmuladd.f64(double %192, double %187, double %209)
%211 = fcmp ogt double %210, 0.000000e+00
br i1 %211, label %212, label %218
212: ; preds = %201
%213 = fmul double %210, %210
%214 = fmul double %213, %213
%215 = add nsw i32 %12, 1
%216 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %215, i32 %13, double %203, double %205, double %187)
%217 = tail call double @llvm.fmuladd.f64(double %214, double %216, double %202)
br label %218
218: ; preds = %212, %201
%219 = phi double [ %217, %212 ], [ %202, %201 ]
%220 = fadd double %173, -1.000000e+00
%221 = fadd double %220, 0xBFD5555555555555
%222 = tail call double @llvm.fmuladd.f64(double %190, double %186, double %207)
%223 = fneg double %221
%224 = tail call double @llvm.fmuladd.f64(double %223, double %221, double %222)
%225 = fcmp ogt double %224, 0.000000e+00
br i1 %225, label %226, label %719
226: ; preds = %218
%227 = fmul double %224, %224
%228 = fmul double %227, %227
%229 = add nsw i32 %13, 1
%230 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %12, i32 %229, double %203, double %186, double %221)
%231 = tail call double @llvm.fmuladd.f64(double %228, double %230, double %219)
br label %719
232: ; preds = %4
%233 = fcmp ult double %32, 2.000000e+00
br i1 %233, label %442, label %234
234: ; preds = %232
%235 = fcmp ole double %26, %28
%236 = fcmp olt double %30, %28
%237 = select i1 %235, i1 %236, i1 false
br i1 %237, label %244, label %238
238: ; preds = %234
%239 = fcmp ogt double %26, %28
%240 = fcmp olt double %30, %26
%241 = select i1 %239, i1 %240, i1 false
%242 = select i1 %241, i32 3, i32 6
%243 = select i1 %241, double %30, double %26
br label %244
244: ; preds = %238, %234
%245 = phi i32 [ 6, %234 ], [ %242, %238 ]
%246 = phi i32 [ 3, %234 ], [ 5, %238 ]
%247 = phi double [ %26, %234 ], [ %243, %238 ]
%248 = phi double [ %30, %234 ], [ %28, %238 ]
%249 = fsub double 3.000000e+00, %32
%250 = fcmp olt double %249, %247
%251 = fcmp olt double %249, %248
%252 = select i1 %250, i1 true, i1 %251
br i1 %252, label %253, label %319
253: ; preds = %244
%254 = fcmp olt double %248, %247
%255 = select i1 %254, i32 %246, i32 %245
%256 = and i32 %255, 1
%257 = icmp eq i32 %256, 0
br i1 %257, label %258, label %264
258: ; preds = %253
%259 = fadd double %33, -1.000000e+00
%260 = and i32 %255, 2
%261 = icmp eq i32 %260, 0
%262 = insertelement <2 x double> poison, double %259, i64 0
%263 = shufflevector <2 x double> %262, <2 x double> poison, <2 x i32> zeroinitializer
br i1 %261, label %291, label %282
264: ; preds = %253
%265 = add nsw i32 %11, 2
%266 = add nsw i32 %11, 1
%267 = insertelement <2 x double> poison, double %33, i64 0
%268 = shufflevector <2 x double> %267, <2 x double> poison, <2 x i32> zeroinitializer
%269 = fadd <2 x double> %268, <double -1.000000e+00, double -2.000000e+00>
%270 = fadd <2 x double> %269, <double -1.000000e+00, double -1.000000e+00>
%271 = and i32 %255, 2
%272 = icmp eq i32 %271, 0
br i1 %272, label %291, label %273
273: ; preds = %264
%274 = add nsw i32 %12, 1
%275 = extractelement <2 x double> %36, i64 1
%276 = fadd double %275, -1.000000e+00
%277 = fadd double %276, -1.000000e+00
%278 = add nsw i32 %12, 2
%279 = fadd double %277, -1.000000e+00
%280 = insertelement <2 x double> poison, double %279, i64 0
%281 = insertelement <2 x double> %280, double %277, i64 1
br label %299
282: ; preds = %258
%283 = add nsw i32 %12, 1
%284 = extractelement <2 x double> %36, i64 1
%285 = fadd double %284, -1.000000e+00
%286 = fadd double %285, -1.000000e+00
%287 = add nsw i32 %12, 2
%288 = fadd double %286, -1.000000e+00
%289 = insertelement <2 x double> poison, double %286, i64 0
%290 = insertelement <2 x double> %289, double %288, i64 1
br label %299
291: ; preds = %264, %258
%292 = phi i32 [ %265, %264 ], [ %11, %258 ]
%293 = phi i32 [ %266, %264 ], [ %11, %258 ]
%294 = phi <2 x double> [ %270, %264 ], [ %263, %258 ]
%295 = extractelement <2 x double> %36, i64 1
%296 = fadd double %295, -1.000000e+00
%297 = insertelement <2 x double> poison, double %296, i64 0
%298 = shufflevector <2 x double> %297, <2 x double> poison, <2 x i32> zeroinitializer
br label %299
299: ; preds = %273, %282, %291
%300 = phi i32 [ %265, %273 ], [ %11, %282 ], [ %292, %291 ]
%301 = phi i32 [ %266, %273 ], [ %11, %282 ], [ %293, %291 ]
%302 = phi i32 [ %278, %273 ], [ %283, %282 ], [ %12, %291 ]
%303 = phi i32 [ %274, %273 ], [ %287, %282 ], [ %12, %291 ]
%304 = phi <2 x double> [ %281, %273 ], [ %290, %282 ], [ %298, %291 ]
%305 = phi <2 x double> [ %270, %273 ], [ %263, %282 ], [ %294, %291 ]
%306 = and i32 %255, 4
%307 = icmp eq i32 %306, 0
br i1 %307, label %314, label %308
308: ; preds = %299
%309 = add nsw i32 %13, 1
%310 = add nsw i32 %13, 2
%311 = shufflevector <2 x double> %36, <2 x double> undef, <2 x i32> zeroinitializer
%312 = fadd <2 x double> %311, <double -2.000000e+00, double -1.000000e+00>
%313 = fadd <2 x double> %312, <double -1.000000e+00, double -1.000000e+00>
br label %353
314: ; preds = %299
%315 = extractelement <2 x double> %36, i64 0
%316 = fadd double %315, -1.000000e+00
%317 = insertelement <2 x double> poison, double %316, i64 0
%318 = shufflevector <2 x double> %317, <2 x double> poison, <2 x i32> zeroinitializer
br label %353
319: ; preds = %244
%320 = and i32 %245, 1
%321 = icmp eq i32 %320, 0
%322 = insertelement <2 x double> poison, double %33, i64 0
%323 = shufflevector <2 x double> %322, <2 x double> poison, <2 x i32> zeroinitializer
%324 = add nsw i32 %11, 1
%325 = add nsw i32 %11, 2
%326 = fadd <2 x double> %323, <double -2.000000e+00, double -1.000000e+00>
%327 = select i1 %321, i32 %11, i32 %325
%328 = select i1 %321, i32 %11, i32 %324
%329 = select i1 %321, <2 x double> %323, <2 x double> %326
%330 = fadd <2 x double> %329, <double 0xBFE5555555555555, double 0xBFD5555555555555>
%331 = and i32 %246, 2
%332 = icmp eq i32 %331, 0
%333 = shufflevector <2 x double> %36, <2 x double> undef, <2 x i32> <i32 1, i32 1>
%334 = add nsw i32 %12, 1
%335 = add nsw i32 %12, 2
%336 = fadd <2 x double> %333, <double -2.000000e+00, double -1.000000e+00>
%337 = select i1 %332, i32 %12, i32 %335
%338 = select i1 %332, i32 %12, i32 %334
%339 = select i1 %332, <2 x double> %333, <2 x double> %336
%340 = fadd <2 x double> %339, <double 0xBFE5555555555555, double 0xBFD5555555555555>
%341 = and i32 %245, 4
%342 = and i32 %341, %246
%343 = icmp eq i32 %342, 0
br i1 %343, label %350, label %344
344: ; preds = %319
%345 = add nsw i32 %13, 1
%346 = add nsw i32 %13, 2
%347 = shufflevector <2 x double> %36, <2 x double> undef, <2 x i32> zeroinitializer
%348 = fadd <2 x double> %347, <double -2.000000e+00, double -1.000000e+00>
%349 = fadd <2 x double> %348, <double 0xBFE5555555555555, double 0xBFD5555555555555>
br label %353
350: ; preds = %319
%351 = shufflevector <2 x double> %36, <2 x double> undef, <2 x i32> zeroinitializer
%352 = fadd <2 x double> %351, <double 0xBFE5555555555555, double 0xBFD5555555555555>
br label %353
353: ; preds = %344, %350, %308, %314
%354 = phi i32 [ %301, %308 ], [ %301, %314 ], [ %327, %344 ], [ %327, %350 ]
%355 = phi i32 [ %302, %308 ], [ %302, %314 ], [ %337, %344 ], [ %337, %350 ]
%356 = phi i32 [ %310, %308 ], [ %13, %314 ], [ %346, %344 ], [ %13, %350 ]
%357 = phi i32 [ %309, %308 ], [ %13, %314 ], [ %345, %344 ], [ %13, %350 ]
%358 = phi i32 [ %303, %308 ], [ %303, %314 ], [ %338, %344 ], [ %338, %350 ]
%359 = phi i32 [ %300, %308 ], [ %300, %314 ], [ %328, %344 ], [ %328, %350 ]
%360 = phi <2 x double> [ %313, %308 ], [ %318, %314 ], [ %349, %344 ], [ %352, %350 ]
%361 = phi <2 x double> [ %304, %308 ], [ %304, %314 ], [ %340, %344 ], [ %340, %350 ]
%362 = phi <2 x double> [ %305, %308 ], [ %305, %314 ], [ %330, %344 ], [ %330, %350 ]
%363 = fadd double %33, -1.000000e+00
%364 = fadd double %363, 0xBFE5555555555555
%365 = extractelement <2 x double> %36, i64 1
%366 = fadd double %365, -1.000000e+00
%367 = fadd double %366, 0xBFE5555555555555
%368 = extractelement <2 x double> %36, i64 0
%369 = fadd double %368, 0xBFE5555555555555
%370 = fneg double %364
%371 = tail call double @llvm.fmuladd.f64(double %370, double %364, double 2.000000e+00)
%372 = fneg double %367
%373 = tail call double @llvm.fmuladd.f64(double %372, double %367, double %371)
%374 = fneg double %369
%375 = tail call double @llvm.fmuladd.f64(double %374, double %369, double %373)
%376 = fcmp ogt double %375, 0.000000e+00
br i1 %376, label %377, label %384
377: ; preds = %353
%378 = fmul double %375, %375
%379 = fmul double %378, %378
%380 = add nsw i32 %11, 1
%381 = add nsw i32 %12, 1
%382 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %380, i32 %381, i32 %13, double %364, double %367, double %369)
%383 = tail call double @llvm.fmuladd.f64(double %379, double %382, double 0.000000e+00)
br label %384
384: ; preds = %377, %353
%385 = phi double [ %383, %377 ], [ 0.000000e+00, %353 ]
%386 = fadd double %365, 0xBFE5555555555555
%387 = fadd double %368, -1.000000e+00
%388 = fadd double %387, 0xBFE5555555555555
%389 = fneg double %386
%390 = tail call double @llvm.fmuladd.f64(double %389, double %386, double %371)
%391 = fneg double %388
%392 = tail call double @llvm.fmuladd.f64(double %391, double %388, double %390)
%393 = fcmp ogt double %392, 0.000000e+00
br i1 %393, label %394, label %401
394: ; preds = %384
%395 = fmul double %392, %392
%396 = fmul double %395, %395
%397 = add nsw i32 %11, 1
%398 = add nsw i32 %13, 1
%399 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %397, i32 %12, i32 %398, double %364, double %386, double %388)
%400 = tail call double @llvm.fmuladd.f64(double %396, double %399, double %385)
br label %401
401: ; preds = %394, %384
%402 = phi double [ %400, %394 ], [ %385, %384 ]
%403 = fadd double %33, 0xBFE5555555555555
%404 = fneg double %403
%405 = tail call double @llvm.fmuladd.f64(double %404, double %403, double 2.000000e+00)
%406 = tail call double @llvm.fmuladd.f64(double %372, double %367, double %405)
%407 = tail call double @llvm.fmuladd.f64(double %391, double %388, double %406)
%408 = fcmp ogt double %407, 0.000000e+00
br i1 %408, label %409, label %416
409: ; preds = %401
%410 = fmul double %407, %407
%411 = fmul double %410, %410
%412 = add nsw i32 %12, 1
%413 = add nsw i32 %13, 1
%414 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %412, i32 %413, double %403, double %367, double %388)
%415 = tail call double @llvm.fmuladd.f64(double %411, double %414, double %402)
br label %416
416: ; preds = %409, %401
%417 = phi double [ %415, %409 ], [ %402, %401 ]
%418 = fadd double %363, -1.000000e+00
%419 = fadd double %366, -1.000000e+00
%420 = fadd double %387, -1.000000e+00
%421 = fneg double %418
%422 = tail call double @llvm.fmuladd.f64(double %421, double %418, double 2.000000e+00)
%423 = fneg double %419
%424 = tail call double @llvm.fmuladd.f64(double %423, double %419, double %422)
%425 = fneg double %420
%426 = tail call double @llvm.fmuladd.f64(double %425, double %420, double %424)
%427 = fcmp ogt double %426, 0.000000e+00
%428 = extractelement <2 x double> %360, i64 0
%429 = extractelement <2 x double> %360, i64 1
%430 = extractelement <2 x double> %361, i64 0
%431 = extractelement <2 x double> %361, i64 1
%432 = extractelement <2 x double> %362, i64 0
%433 = extractelement <2 x double> %362, i64 1
br i1 %427, label %434, label %719
434: ; preds = %416
%435 = fmul double %426, %426
%436 = fmul double %435, %435
%437 = add nsw i32 %11, 1
%438 = add nsw i32 %12, 1
%439 = add nsw i32 %13, 1
%440 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %437, i32 %438, i32 %439, double %418, double %419, double %420)
%441 = tail call double @llvm.fmuladd.f64(double %436, double %440, double %417)
br label %719
442: ; preds = %232
%443 = fcmp ogt double %31, 1.000000e+00
%444 = fadd double %31, -1.000000e+00
%445 = fsub double 1.000000e+00, %31
%446 = select i1 %443, i32 3, i32 4
%447 = select i1 %443, double %444, double %445
%448 = fadd double %26, %30
%449 = fcmp ogt double %448, 1.000000e+00
%450 = fadd double %448, -1.000000e+00
%451 = fsub double 1.000000e+00, %448
%452 = select i1 %449, i32 5, i32 2
%453 = select i1 %449, double %450, double %451
%454 = zext i1 %449 to i32
%455 = fadd double %28, %30
%456 = fcmp ogt double %455, 1.000000e+00
br i1 %456, label %457, label %468
457: ; preds = %442
%458 = fadd double %455, -1.000000e+00
%459 = fcmp ole double %447, %453
%460 = fcmp olt double %447, %458
%461 = select i1 %459, i1 %460, i1 false
br i1 %461, label %485, label %462
462: ; preds = %457
%463 = fcmp ogt double %447, %453
%464 = fcmp olt double %453, %458
%465 = select i1 %463, i1 %464, i1 false
%466 = select i1 %465, i32 6, i32 %452
%467 = select i1 %465, i32 1, i32 %454
br label %479
468: ; preds = %442
%469 = fsub double 1.000000e+00, %455
%470 = fcmp ole double %447, %453
%471 = fcmp olt double %447, %469
%472 = select i1 %470, i1 %471, i1 false
br i1 %472, label %484, label %473
473: ; preds = %468
%474 = fcmp ogt double %447, %453
%475 = fcmp olt double %453, %469
%476 = select i1 %474, i1 %475, i1 false
%477 = select i1 %476, i32 1, i32 %452
%478 = select i1 %476, i32 0, i32 %454
br label %479
479: ; preds = %473, %462
%480 = phi i32 [ %466, %462 ], [ %477, %473 ]
%481 = phi i32 [ %467, %462 ], [ %478, %473 ]
%482 = zext i1 %443 to i32
%483 = icmp eq i32 %481, %482
br i1 %483, label %486, label %552
484: ; preds = %468
br i1 %449, label %552, label %521
485: ; preds = %457
br i1 %449, label %487, label %552
486: ; preds = %479
br i1 %443, label %487, label %521
487: ; preds = %485, %486
%488 = phi i32 [ %446, %486 ], [ 6, %485 ]
%489 = phi i32 [ %480, %486 ], [ 5, %485 ]
%490 = fadd double %33, -1.000000e+00
%491 = fadd double %490, -1.000000e+00
%492 = fadd <2 x double> %36, <double -1.000000e+00, double -1.000000e+00>
%493 = fadd <2 x double> %492, <double -1.000000e+00, double -1.000000e+00>
%494 = add nsw i32 %11, 1
%495 = add nsw i32 %12, 1
%496 = add nsw i32 %13, 1
%497 = and i32 %489, %488
%498 = and i32 %497, 1
%499 = icmp eq i32 %498, 0
br i1 %499, label %505, label %500
500: ; preds = %487
%501 = fadd double %33, -2.000000e+00
%502 = fadd double %501, 0xBFE5555555555555
%503 = fadd <2 x double> %36, <double 0xBFE5555555555555, double 0xBFE5555555555555>
%504 = add nsw i32 %11, 2
br label %604
505: ; preds = %487
%506 = and i32 %497, 2
%507 = icmp eq i32 %506, 0
%508 = fadd double %33, 0xBFE5555555555555
br i1 %507, label %515, label %509
509: ; preds = %505
%510 = extractelement <2 x double> %36, i64 1
%511 = fadd double %510, -2.000000e+00
%512 = insertelement <2 x double> %36, double %511, i64 1
%513 = fadd <2 x double> %512, <double 0xBFE5555555555555, double 0xBFE5555555555555>
%514 = add nsw i32 %12, 2
br label %604
515: ; preds = %505
%516 = extractelement <2 x double> %36, i64 0
%517 = fadd double %516, -2.000000e+00
%518 = insertelement <2 x double> %36, double %517, i64 0
%519 = fadd <2 x double> %518, <double 0xBFE5555555555555, double 0xBFE5555555555555>
%520 = add nsw i32 %13, 2
br label %604
521: ; preds = %484, %486
%522 = phi i32 [ 4, %486 ], [ 1, %484 ]
%523 = phi i32 [ %480, %486 ], [ %452, %484 ]
%524 = or i32 %523, %522
%525 = and i32 %524, 1
%526 = icmp eq i32 %525, 0
br i1 %526, label %527, label %535
527: ; preds = %521
%528 = fadd double %33, 1.000000e+00
%529 = fadd double %528, 0xBFD5555555555555
%530 = fadd <2 x double> %36, <double -1.000000e+00, double -1.000000e+00>
%531 = fadd <2 x double> %530, <double 0xBFD5555555555555, double 0xBFD5555555555555>
%532 = add nsw i32 %11, -1
%533 = add nsw i32 %12, 1
%534 = add nsw i32 %13, 1
br label %604
535: ; preds = %521
%536 = and i32 %523, 2
%537 = icmp eq i32 %536, 0
%538 = fadd double %33, -1.000000e+00
%539 = fadd double %538, 0xBFD5555555555555
br i1 %537, label %540, label %546
540: ; preds = %535
%541 = fadd <2 x double> %36, <double -1.000000e+00, double 1.000000e+00>
%542 = fadd <2 x double> %541, <double 0xBFD5555555555555, double 0xBFD5555555555555>
%543 = add nsw i32 %11, 1
%544 = add nsw i32 %12, -1
%545 = add nsw i32 %13, 1
br label %604
546: ; preds = %535
%547 = fadd <2 x double> %36, <double 1.000000e+00, double -1.000000e+00>
%548 = fadd <2 x double> %547, <double 0xBFD5555555555555, double 0xBFD5555555555555>
%549 = add nsw i32 %11, 1
%550 = add nsw i32 %12, 1
%551 = add nsw i32 %13, -1
br label %604
552: ; preds = %484, %485, %479
%553 = phi i32 [ 1, %485 ], [ %482, %479 ], [ 0, %484 ]
%554 = phi i32 [ 2, %485 ], [ %480, %479 ], [ %452, %484 ]
%555 = phi i32 [ 6, %485 ], [ %446, %479 ], [ 1, %484 ]
%556 = icmp eq i32 %553, 0
%557 = select i1 %556, i32 %554, i32 %555
%558 = select i1 %556, i32 %555, i32 %554
%559 = and i32 %557, 1
%560 = icmp eq i32 %559, 0
br i1 %560, label %561, label %563
561: ; preds = %552
%562 = fadd double %33, 1.000000e+00
br label %572
563: ; preds = %552
%564 = and i32 %557, 2
%565 = icmp eq i32 %564, 0
%566 = fadd double %33, -1.000000e+00
%567 = insertelement <2 x i1> poison, i1 %565, i64 0
%568 = shufflevector <2 x i1> %567, <2 x i1> poison, <2 x i32> zeroinitializer
%569 = select <2 x i1> %568, <2 x double> <double -1.000000e+00, double 1.000000e+00>, <2 x double> <double 1.000000e+00, double -1.000000e+00>
%570 = select i1 %565, i32 -1, i32 1
%571 = select i1 %565, i32 1, i32 -1
br label %572
572: ; preds = %563, %561
%573 = phi i32 [ -1, %561 ], [ 1, %563 ]
%574 = phi i32 [ 1, %561 ], [ %570, %563 ]
%575 = phi i32 [ 1, %561 ], [ %571, %563 ]
%576 = phi double [ %562, %561 ], [ %566, %563 ]
%577 = phi <2 x double> [ <double -1.000000e+00, double -1.000000e+00>, %561 ], [ %569, %563 ]
%578 = fadd <2 x double> %36, %577
%579 = add nsw i32 %11, %573
%580 = add nsw i32 %12, %574
%581 = add nsw i32 %13, %575
%582 = fadd <2 x double> %578, <double 0xBFD5555555555555, double 0xBFD5555555555555>
%583 = fadd double %576, 0xBFD5555555555555
%584 = fadd double %33, 0xBFE5555555555555
%585 = fadd <2 x double> %36, <double 0xBFE5555555555555, double 0xBFE5555555555555>
%586 = and i32 %558, 1
%587 = icmp eq i32 %586, 0
br i1 %587, label %591, label %588
588: ; preds = %572
%589 = fadd double %584, -2.000000e+00
%590 = add nsw i32 %11, 2
br label %604
591: ; preds = %572
%592 = and i32 %558, 2
%593 = icmp eq i32 %592, 0
br i1 %593, label %599, label %594
594: ; preds = %591
%595 = extractelement <2 x double> %585, i64 1
%596 = fadd double %595, -2.000000e+00
%597 = add nsw i32 %12, 2
%598 = insertelement <2 x double> %585, double %596, i64 1
br label %604
599: ; preds = %591
%600 = extractelement <2 x double> %585, i64 0
%601 = fadd double %600, -2.000000e+00
%602 = add nsw i32 %13, 2
%603 = insertelement <2 x double> %585, double %601, i64 0
br label %604
604: ; preds = %588, %599, %594, %509, %515, %500, %540, %546, %527
%605 = phi i32 [ %504, %500 ], [ %11, %509 ], [ %11, %515 ], [ %532, %527 ], [ %543, %540 ], [ %549, %546 ], [ %590, %588 ], [ %11, %594 ], [ %11, %599 ]
%606 = phi i32 [ %12, %500 ], [ %514, %509 ], [ %12, %515 ], [ %533, %527 ], [ %544, %540 ], [ %550, %546 ], [ %12, %588 ], [ %597, %594 ], [ %12, %599 ]
%607 = phi i32 [ %13, %500 ], [ %13, %509 ], [ %520, %515 ], [ %534, %527 ], [ %545, %540 ], [ %551, %546 ], [ %13, %588 ], [ %13, %594 ], [ %602, %599 ]
%608 = phi i32 [ %496, %500 ], [ %496, %509 ], [ %496, %515 ], [ %13, %527 ], [ %13, %540 ], [ %13, %546 ], [ %581, %588 ], [ %581, %594 ], [ %581, %599 ]
%609 = phi i32 [ %495, %500 ], [ %495, %509 ], [ %495, %515 ], [ %12, %527 ], [ %12, %540 ], [ %12, %546 ], [ %580, %588 ], [ %580, %594 ], [ %580, %599 ]
%610 = phi i32 [ %494, %500 ], [ %494, %509 ], [ %494, %515 ], [ %11, %527 ], [ %11, %540 ], [ %11, %546 ], [ %579, %588 ], [ %579, %594 ], [ %579, %599 ]
%611 = phi double [ %502, %500 ], [ %508, %509 ], [ %508, %515 ], [ %529, %527 ], [ %539, %540 ], [ %539, %546 ], [ %589, %588 ], [ %584, %594 ], [ %584, %599 ]
%612 = phi double [ %491, %500 ], [ %491, %509 ], [ %491, %515 ], [ %33, %527 ], [ %33, %540 ], [ %33, %546 ], [ %583, %588 ], [ %583, %594 ], [ %583, %599 ]
%613 = phi <2 x double> [ %493, %500 ], [ %493, %509 ], [ %493, %515 ], [ %36, %527 ], [ %36, %540 ], [ %36, %546 ], [ %582, %588 ], [ %582, %594 ], [ %582, %599 ]
%614 = phi <2 x double> [ %503, %500 ], [ %513, %509 ], [ %519, %515 ], [ %531, %527 ], [ %542, %540 ], [ %548, %546 ], [ %585, %588 ], [ %598, %594 ], [ %603, %599 ]
%615 = fadd double %33, -1.000000e+00
%616 = fadd double %615, 0xBFD5555555555555
%617 = extractelement <2 x double> %36, i64 1
%618 = fadd double %617, 0xBFD5555555555555
%619 = extractelement <2 x double> %36, i64 0
%620 = fadd double %619, 0xBFD5555555555555
%621 = fneg double %616
%622 = tail call double @llvm.fmuladd.f64(double %621, double %616, double 2.000000e+00)
%623 = fneg double %618
%624 = tail call double @llvm.fmuladd.f64(double %623, double %618, double %622)
%625 = fneg double %620
%626 = tail call double @llvm.fmuladd.f64(double %625, double %620, double %624)
%627 = fcmp ogt double %626, 0.000000e+00
br i1 %627, label %628, label %634
628: ; preds = %604
%629 = fmul double %626, %626
%630 = fmul double %629, %629
%631 = add nsw i32 %11, 1
%632 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %631, i32 %12, i32 %13, double %616, double %618, double %620)
%633 = tail call double @llvm.fmuladd.f64(double %630, double %632, double 0.000000e+00)
br label %634
634: ; preds = %628, %604
%635 = phi double [ %633, %628 ], [ 0.000000e+00, %604 ]
%636 = fadd double %33, 0xBFD5555555555555
%637 = fadd double %617, -1.000000e+00
%638 = fadd double %637, 0xBFD5555555555555
%639 = fneg double %636
%640 = tail call double @llvm.fmuladd.f64(double %639, double %636, double 2.000000e+00)
%641 = fneg double %638
%642 = tail call double @llvm.fmuladd.f64(double %641, double %638, double %640)
%643 = tail call double @llvm.fmuladd.f64(double %625, double %620, double %642)
%644 = fcmp ogt double %643, 0.000000e+00
br i1 %644, label %645, label %651
645: ; preds = %634
%646 = fmul double %643, %643
%647 = fmul double %646, %646
%648 = add nsw i32 %12, 1
%649 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %648, i32 %13, double %636, double %638, double %620)
%650 = tail call double @llvm.fmuladd.f64(double %647, double %649, double %635)
br label %651
651: ; preds = %645, %634
%652 = phi double [ %650, %645 ], [ %635, %634 ]
%653 = fadd double %619, -1.000000e+00
%654 = fadd double %653, 0xBFD5555555555555
%655 = tail call double @llvm.fmuladd.f64(double %623, double %618, double %640)
%656 = fneg double %654
%657 = tail call double @llvm.fmuladd.f64(double %656, double %654, double %655)
%658 = fcmp ogt double %657, 0.000000e+00
br i1 %658, label %659, label %665
659: ; preds = %651
%660 = fmul double %657, %657
%661 = fmul double %660, %660
%662 = add nsw i32 %13, 1
%663 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %12, i32 %662, double %636, double %618, double %654)
%664 = tail call double @llvm.fmuladd.f64(double %661, double %663, double %652)
br label %665
665: ; preds = %659, %651
%666 = phi double [ %664, %659 ], [ %652, %651 ]
%667 = fadd double %615, 0xBFE5555555555555
%668 = fadd double %637, 0xBFE5555555555555
%669 = fadd double %619, 0xBFE5555555555555
%670 = fneg double %667
%671 = tail call double @llvm.fmuladd.f64(double %670, double %667, double 2.000000e+00)
%672 = fneg double %668
%673 = tail call double @llvm.fmuladd.f64(double %672, double %668, double %671)
%674 = fneg double %669
%675 = tail call double @llvm.fmuladd.f64(double %674, double %669, double %673)
%676 = fcmp ogt double %675, 0.000000e+00
br i1 %676, label %677, label %684
677: ; preds = %665
%678 = fmul double %675, %675
%679 = fmul double %678, %678
%680 = add nsw i32 %11, 1
%681 = add nsw i32 %12, 1
%682 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %680, i32 %681, i32 %13, double %667, double %668, double %669)
%683 = tail call double @llvm.fmuladd.f64(double %679, double %682, double %666)
br label %684
684: ; preds = %677, %665
%685 = phi double [ %683, %677 ], [ %666, %665 ]
%686 = fadd double %617, 0xBFE5555555555555
%687 = fadd double %653, 0xBFE5555555555555
%688 = fneg double %686
%689 = tail call double @llvm.fmuladd.f64(double %688, double %686, double %671)
%690 = fneg double %687
%691 = tail call double @llvm.fmuladd.f64(double %690, double %687, double %689)
%692 = fcmp ogt double %691, 0.000000e+00
br i1 %692, label %693, label %700
693: ; preds = %684
%694 = fmul double %691, %691
%695 = fmul double %694, %694
%696 = add nsw i32 %11, 1
%697 = add nsw i32 %13, 1
%698 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %696, i32 %12, i32 %697, double %667, double %686, double %687)
%699 = tail call double @llvm.fmuladd.f64(double %695, double %698, double %685)
br label %700
700: ; preds = %693, %684
%701 = phi double [ %699, %693 ], [ %685, %684 ]
%702 = fadd double %33, 0xBFE5555555555555
%703 = fneg double %702
%704 = tail call double @llvm.fmuladd.f64(double %703, double %702, double 2.000000e+00)
%705 = tail call double @llvm.fmuladd.f64(double %672, double %668, double %704)
%706 = tail call double @llvm.fmuladd.f64(double %690, double %687, double %705)
%707 = fcmp ogt double %706, 0.000000e+00
%708 = extractelement <2 x double> %613, i64 0
%709 = extractelement <2 x double> %613, i64 1
%710 = extractelement <2 x double> %614, i64 0
%711 = extractelement <2 x double> %614, i64 1
br i1 %707, label %712, label %719
712: ; preds = %700
%713 = fmul double %706, %706
%714 = fmul double %713, %713
%715 = add nsw i32 %12, 1
%716 = add nsw i32 %13, 1
%717 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %11, i32 %715, i32 %716, double %702, double %668, double %687)
%718 = tail call double @llvm.fmuladd.f64(double %714, double %717, double %701)
br label %719
719: ; preds = %434, %416, %712, %700, %218, %226
%720 = phi i32 [ %156, %226 ], [ %156, %218 ], [ %354, %434 ], [ %354, %416 ], [ %605, %712 ], [ %605, %700 ]
%721 = phi i32 [ %157, %226 ], [ %157, %218 ], [ %355, %434 ], [ %355, %416 ], [ %606, %712 ], [ %606, %700 ]
%722 = phi i32 [ %158, %226 ], [ %158, %218 ], [ %356, %434 ], [ %356, %416 ], [ %607, %712 ], [ %607, %700 ]
%723 = phi i32 [ %159, %226 ], [ %159, %218 ], [ %357, %434 ], [ %357, %416 ], [ %608, %712 ], [ %608, %700 ]
%724 = phi i32 [ %160, %226 ], [ %160, %218 ], [ %358, %434 ], [ %358, %416 ], [ %609, %712 ], [ %609, %700 ]
%725 = phi i32 [ %161, %226 ], [ %161, %218 ], [ %359, %434 ], [ %359, %416 ], [ %610, %712 ], [ %610, %700 ]
%726 = phi double [ %162, %226 ], [ %162, %218 ], [ %428, %434 ], [ %428, %416 ], [ %710, %712 ], [ %710, %700 ]
%727 = phi double [ %163, %226 ], [ %163, %218 ], [ %430, %434 ], [ %430, %416 ], [ %711, %712 ], [ %711, %700 ]
%728 = phi double [ %164, %226 ], [ %164, %218 ], [ %432, %434 ], [ %432, %416 ], [ %611, %712 ], [ %611, %700 ]
%729 = phi double [ %165, %226 ], [ %165, %218 ], [ %429, %434 ], [ %429, %416 ], [ %708, %712 ], [ %708, %700 ]
%730 = phi double [ %166, %226 ], [ %166, %218 ], [ %431, %434 ], [ %431, %416 ], [ %709, %712 ], [ %709, %700 ]
%731 = phi double [ %167, %226 ], [ %167, %218 ], [ %433, %434 ], [ %433, %416 ], [ %612, %712 ], [ %612, %700 ]
%732 = phi double [ %231, %226 ], [ %219, %218 ], [ %441, %434 ], [ %417, %416 ], [ %718, %712 ], [ %701, %700 ]
%733 = fneg double %731
%734 = tail call double @llvm.fmuladd.f64(double %733, double %731, double 2.000000e+00)
%735 = fneg double %730
%736 = tail call double @llvm.fmuladd.f64(double %735, double %730, double %734)
%737 = fneg double %729
%738 = tail call double @llvm.fmuladd.f64(double %737, double %729, double %736)
%739 = fcmp ogt double %738, 0.000000e+00
br i1 %739, label %740, label %745
740: ; preds = %719
%741 = fmul double %738, %738
%742 = fmul double %741, %741
%743 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %725, i32 %724, i32 %723, double %731, double %730, double %729)
%744 = tail call double @llvm.fmuladd.f64(double %742, double %743, double %732)
br label %745
745: ; preds = %740, %719
%746 = phi double [ %744, %740 ], [ %732, %719 ]
%747 = fneg double %728
%748 = tail call double @llvm.fmuladd.f64(double %747, double %728, double 2.000000e+00)
%749 = fneg double %727
%750 = tail call double @llvm.fmuladd.f64(double %749, double %727, double %748)
%751 = fneg double %726
%752 = tail call double @llvm.fmuladd.f64(double %751, double %726, double %750)
%753 = fcmp ogt double %752, 0.000000e+00
br i1 %753, label %754, label %759
754: ; preds = %745
%755 = fmul double %752, %752
%756 = fmul double %755, %755
%757 = tail call double @extrapolate3(%struct.osn_context* %0, i32 %720, i32 %721, i32 %722, double %728, double %727, double %726)
%758 = tail call double @llvm.fmuladd.f64(double %756, double %757, double %746)
br label %759
759: ; preds = %754, %745
%760 = phi double [ %758, %754 ], [ %746, %745 ]
%761 = fdiv double %760, 1.030000e+02
ret double %761
}