void helper_double_30_recursive(double *buf, int depth) {
  if (depth == 3) {
    for (int j = 0; j < 8; j += 8) {
      for (int k = 0; k < 2; k += 2) {
        __asm__ volatile(
            "movupd (%0), %%xmm0\n"
            "movupd (%1), %%xmm1\n"
            "movupd (%2), %%xmm2\n"
            "movupd (%3), %%xmm3\n"
            "movapd %%xmm0, %%xmm8\n"
            "haddpd %%xmm8, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "hsubpd %%xmm9, %%xmm9\n"
            "blendpd $1, %%xmm8, %%xmm9\n"
            "movapd %%xmm9, %%xmm0\n"
            "movapd %%xmm1, %%xmm8\n"
            "haddpd %%xmm8, %%xmm8\n"
            "movapd %%xmm1, %%xmm9\n"
            "hsubpd %%xmm9, %%xmm9\n"
            "blendpd $1, %%xmm8, %%xmm9\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm2, %%xmm8\n"
            "haddpd %%xmm8, %%xmm8\n"
            "movapd %%xmm2, %%xmm9\n"
            "hsubpd %%xmm9, %%xmm9\n"
            "blendpd $1, %%xmm8, %%xmm9\n"
            "movapd %%xmm9, %%xmm2\n"
            "movapd %%xmm3, %%xmm8\n"
            "haddpd %%xmm8, %%xmm8\n"
            "movapd %%xmm3, %%xmm9\n"
            "hsubpd %%xmm9, %%xmm9\n"
            "blendpd $1, %%xmm8, %%xmm9\n"
            "movapd %%xmm9, %%xmm3\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "addpd %%xmm1, %%xmm8\n"
            "subpd %%xmm1, %%xmm9\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm11\n"
            "addpd %%xmm3, %%xmm10\n"
            "subpd %%xmm3, %%xmm11\n"
            "movapd %%xmm8, %%xmm0\n"
            "movapd %%xmm8, %%xmm2\n"
            "addpd %%xmm10, %%xmm0\n"
            "subpd %%xmm10, %%xmm2\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm9, %%xmm3\n"
            "addpd %%xmm11, %%xmm1\n"
            "subpd %%xmm11, %%xmm3\n"
            "movupd %%xmm0, (%0)\n"
            "movupd %%xmm1, (%1)\n"
            "movupd %%xmm2, (%2)\n"
            "movupd %%xmm3, (%3)\n" ::"r"(buf + j + k + 0),
            "r"(buf + j + k + 2), "r"(buf + j + k + 4), "r"(buf + j + k + 6)
            : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6",
              "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13",
              "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 6) {
    helper_double_30_recursive(buf + 0, 3);
    helper_double_30_recursive(buf + 8, 3);
    helper_double_30_recursive(buf + 16, 3);
    helper_double_30_recursive(buf + 24, 3);
    helper_double_30_recursive(buf + 32, 3);
    helper_double_30_recursive(buf + 40, 3);
    helper_double_30_recursive(buf + 48, 3);
    helper_double_30_recursive(buf + 56, 3);
    for (int j = 0; j < 64; j += 64) {
      for (int k = 0; k < 8; k += 2) {
        __asm__ volatile(
            "movupd (%0), %%xmm0\n"
            "movupd (%1), %%xmm1\n"
            "movupd (%2), %%xmm2\n"
            "movupd (%3), %%xmm3\n"
            "movupd (%4), %%xmm4\n"
            "movupd (%5), %%xmm5\n"
            "movupd (%6), %%xmm6\n"
            "movupd (%7), %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "addpd %%xmm1, %%xmm8\n"
            "subpd %%xmm1, %%xmm9\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm11\n"
            "addpd %%xmm3, %%xmm10\n"
            "subpd %%xmm3, %%xmm11\n"
            "movapd %%xmm4, %%xmm12\n"
            "movapd %%xmm4, %%xmm13\n"
            "addpd %%xmm5, %%xmm12\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm6, %%xmm14\n"
            "movapd %%xmm6, %%xmm15\n"
            "addpd %%xmm7, %%xmm14\n"
            "subpd %%xmm7, %%xmm15\n"
            "movapd %%xmm8, %%xmm0\n"
            "movapd %%xmm8, %%xmm2\n"
            "addpd %%xmm10, %%xmm0\n"
            "subpd %%xmm10, %%xmm2\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm9, %%xmm3\n"
            "addpd %%xmm11, %%xmm1\n"
            "subpd %%xmm11, %%xmm3\n"
            "movapd %%xmm12, %%xmm4\n"
            "movapd %%xmm12, %%xmm6\n"
            "addpd %%xmm14, %%xmm4\n"
            "subpd %%xmm14, %%xmm6\n"
            "movapd %%xmm13, %%xmm5\n"
            "movapd %%xmm13, %%xmm7\n"
            "addpd %%xmm15, %%xmm5\n"
            "subpd %%xmm15, %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm12\n"
            "addpd %%xmm4, %%xmm8\n"
            "subpd %%xmm4, %%xmm12\n"
            "movapd %%xmm1, %%xmm9\n"
            "movapd %%xmm1, %%xmm13\n"
            "addpd %%xmm5, %%xmm9\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm14\n"
            "addpd %%xmm6, %%xmm10\n"
            "subpd %%xmm6, %%xmm14\n"
            "movapd %%xmm3, %%xmm11\n"
            "movapd %%xmm3, %%xmm15\n"
            "addpd %%xmm7, %%xmm11\n"
            "subpd %%xmm7, %%xmm15\n"
            "movupd %%xmm8, (%0)\n"
            "movupd %%xmm9, (%1)\n"
            "movupd %%xmm10, (%2)\n"
            "movupd %%xmm11, (%3)\n"
            "movupd %%xmm12, (%4)\n"
            "movupd %%xmm13, (%5)\n"
            "movupd %%xmm14, (%6)\n"
            "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
            "r"(buf + j + k + 8), "r"(buf + j + k + 16), "r"(buf + j + k + 24),
            "r"(buf + j + k + 32), "r"(buf + j + k + 40), "r"(buf + j + k + 48),
            "r"(buf + j + k + 56)
            : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6",
              "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13",
              "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 9) {
    helper_double_30_recursive(buf + 0, 6);
    helper_double_30_recursive(buf + 64, 6);
    helper_double_30_recursive(buf + 128, 6);
    helper_double_30_recursive(buf + 192, 6);
    helper_double_30_recursive(buf + 256, 6);
    helper_double_30_recursive(buf + 320, 6);
    helper_double_30_recursive(buf + 384, 6);
    helper_double_30_recursive(buf + 448, 6);
    for (int j = 0; j < 512; j += 512) {
      for (int k = 0; k < 64; k += 2) {
        __asm__ volatile("movupd (%0), %%xmm0\n"
                         "movupd (%1), %%xmm1\n"
                         "movupd (%2), %%xmm2\n"
                         "movupd (%3), %%xmm3\n"
                         "movupd (%4), %%xmm4\n"
                         "movupd (%5), %%xmm5\n"
                         "movupd (%6), %%xmm6\n"
                         "movupd (%7), %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm9\n"
                         "addpd %%xmm1, %%xmm8\n"
                         "subpd %%xmm1, %%xmm9\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm11\n"
                         "addpd %%xmm3, %%xmm10\n"
                         "subpd %%xmm3, %%xmm11\n"
                         "movapd %%xmm4, %%xmm12\n"
                         "movapd %%xmm4, %%xmm13\n"
                         "addpd %%xmm5, %%xmm12\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm6, %%xmm14\n"
                         "movapd %%xmm6, %%xmm15\n"
                         "addpd %%xmm7, %%xmm14\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movapd %%xmm8, %%xmm0\n"
                         "movapd %%xmm8, %%xmm2\n"
                         "addpd %%xmm10, %%xmm0\n"
                         "subpd %%xmm10, %%xmm2\n"
                         "movapd %%xmm9, %%xmm1\n"
                         "movapd %%xmm9, %%xmm3\n"
                         "addpd %%xmm11, %%xmm1\n"
                         "subpd %%xmm11, %%xmm3\n"
                         "movapd %%xmm12, %%xmm4\n"
                         "movapd %%xmm12, %%xmm6\n"
                         "addpd %%xmm14, %%xmm4\n"
                         "subpd %%xmm14, %%xmm6\n"
                         "movapd %%xmm13, %%xmm5\n"
                         "movapd %%xmm13, %%xmm7\n"
                         "addpd %%xmm15, %%xmm5\n"
                         "subpd %%xmm15, %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm12\n"
                         "addpd %%xmm4, %%xmm8\n"
                         "subpd %%xmm4, %%xmm12\n"
                         "movapd %%xmm1, %%xmm9\n"
                         "movapd %%xmm1, %%xmm13\n"
                         "addpd %%xmm5, %%xmm9\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm14\n"
                         "addpd %%xmm6, %%xmm10\n"
                         "subpd %%xmm6, %%xmm14\n"
                         "movapd %%xmm3, %%xmm11\n"
                         "movapd %%xmm3, %%xmm15\n"
                         "addpd %%xmm7, %%xmm11\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movupd %%xmm8, (%0)\n"
                         "movupd %%xmm9, (%1)\n"
                         "movupd %%xmm10, (%2)\n"
                         "movupd %%xmm11, (%3)\n"
                         "movupd %%xmm12, (%4)\n"
                         "movupd %%xmm13, (%5)\n"
                         "movupd %%xmm14, (%6)\n"
                         "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 64), "r"(buf + j + k + 128),
                         "r"(buf + j + k + 192), "r"(buf + j + k + 256),
                         "r"(buf + j + k + 320), "r"(buf + j + k + 384),
                         "r"(buf + j + k + 448)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5",
                           "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10",
                           "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15",
                           "memory");
      }
    }
    return;
  }
  if (depth == 12) {
    helper_double_30_recursive(buf + 0, 9);
    helper_double_30_recursive(buf + 512, 9);
    helper_double_30_recursive(buf + 1024, 9);
    helper_double_30_recursive(buf + 1536, 9);
    helper_double_30_recursive(buf + 2048, 9);
    helper_double_30_recursive(buf + 2560, 9);
    helper_double_30_recursive(buf + 3072, 9);
    helper_double_30_recursive(buf + 3584, 9);
    for (int j = 0; j < 4096; j += 4096) {
      for (int k = 0; k < 512; k += 2) {
        __asm__ volatile("movupd (%0), %%xmm0\n"
                         "movupd (%1), %%xmm1\n"
                         "movupd (%2), %%xmm2\n"
                         "movupd (%3), %%xmm3\n"
                         "movupd (%4), %%xmm4\n"
                         "movupd (%5), %%xmm5\n"
                         "movupd (%6), %%xmm6\n"
                         "movupd (%7), %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm9\n"
                         "addpd %%xmm1, %%xmm8\n"
                         "subpd %%xmm1, %%xmm9\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm11\n"
                         "addpd %%xmm3, %%xmm10\n"
                         "subpd %%xmm3, %%xmm11\n"
                         "movapd %%xmm4, %%xmm12\n"
                         "movapd %%xmm4, %%xmm13\n"
                         "addpd %%xmm5, %%xmm12\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm6, %%xmm14\n"
                         "movapd %%xmm6, %%xmm15\n"
                         "addpd %%xmm7, %%xmm14\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movapd %%xmm8, %%xmm0\n"
                         "movapd %%xmm8, %%xmm2\n"
                         "addpd %%xmm10, %%xmm0\n"
                         "subpd %%xmm10, %%xmm2\n"
                         "movapd %%xmm9, %%xmm1\n"
                         "movapd %%xmm9, %%xmm3\n"
                         "addpd %%xmm11, %%xmm1\n"
                         "subpd %%xmm11, %%xmm3\n"
                         "movapd %%xmm12, %%xmm4\n"
                         "movapd %%xmm12, %%xmm6\n"
                         "addpd %%xmm14, %%xmm4\n"
                         "subpd %%xmm14, %%xmm6\n"
                         "movapd %%xmm13, %%xmm5\n"
                         "movapd %%xmm13, %%xmm7\n"
                         "addpd %%xmm15, %%xmm5\n"
                         "subpd %%xmm15, %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm12\n"
                         "addpd %%xmm4, %%xmm8\n"
                         "subpd %%xmm4, %%xmm12\n"
                         "movapd %%xmm1, %%xmm9\n"
                         "movapd %%xmm1, %%xmm13\n"
                         "addpd %%xmm5, %%xmm9\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm14\n"
                         "addpd %%xmm6, %%xmm10\n"
                         "subpd %%xmm6, %%xmm14\n"
                         "movapd %%xmm3, %%xmm11\n"
                         "movapd %%xmm3, %%xmm15\n"
                         "addpd %%xmm7, %%xmm11\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movupd %%xmm8, (%0)\n"
                         "movupd %%xmm9, (%1)\n"
                         "movupd %%xmm10, (%2)\n"
                         "movupd %%xmm11, (%3)\n"
                         "movupd %%xmm12, (%4)\n"
                         "movupd %%xmm13, (%5)\n"
                         "movupd %%xmm14, (%6)\n"
                         "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 512), "r"(buf + j + k + 1024),
                         "r"(buf + j + k + 1536), "r"(buf + j + k + 2048),
                         "r"(buf + j + k + 2560), "r"(buf + j + k + 3072),
                         "r"(buf + j + k + 3584)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5",
                           "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10",
                           "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15",
                           "memory");
      }
    }
    return;
  }
  if (depth == 15) {
    helper_double_30_recursive(buf + 0, 12);
    helper_double_30_recursive(buf + 4096, 12);
    helper_double_30_recursive(buf + 8192, 12);
    helper_double_30_recursive(buf + 12288, 12);
    helper_double_30_recursive(buf + 16384, 12);
    helper_double_30_recursive(buf + 20480, 12);
    helper_double_30_recursive(buf + 24576, 12);
    helper_double_30_recursive(buf + 28672, 12);
    for (int j = 0; j < 32768; j += 32768) {
      for (int k = 0; k < 4096; k += 2) {
        __asm__ volatile("movupd (%0), %%xmm0\n"
                         "movupd (%1), %%xmm1\n"
                         "movupd (%2), %%xmm2\n"
                         "movupd (%3), %%xmm3\n"
                         "movupd (%4), %%xmm4\n"
                         "movupd (%5), %%xmm5\n"
                         "movupd (%6), %%xmm6\n"
                         "movupd (%7), %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm9\n"
                         "addpd %%xmm1, %%xmm8\n"
                         "subpd %%xmm1, %%xmm9\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm11\n"
                         "addpd %%xmm3, %%xmm10\n"
                         "subpd %%xmm3, %%xmm11\n"
                         "movapd %%xmm4, %%xmm12\n"
                         "movapd %%xmm4, %%xmm13\n"
                         "addpd %%xmm5, %%xmm12\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm6, %%xmm14\n"
                         "movapd %%xmm6, %%xmm15\n"
                         "addpd %%xmm7, %%xmm14\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movapd %%xmm8, %%xmm0\n"
                         "movapd %%xmm8, %%xmm2\n"
                         "addpd %%xmm10, %%xmm0\n"
                         "subpd %%xmm10, %%xmm2\n"
                         "movapd %%xmm9, %%xmm1\n"
                         "movapd %%xmm9, %%xmm3\n"
                         "addpd %%xmm11, %%xmm1\n"
                         "subpd %%xmm11, %%xmm3\n"
                         "movapd %%xmm12, %%xmm4\n"
                         "movapd %%xmm12, %%xmm6\n"
                         "addpd %%xmm14, %%xmm4\n"
                         "subpd %%xmm14, %%xmm6\n"
                         "movapd %%xmm13, %%xmm5\n"
                         "movapd %%xmm13, %%xmm7\n"
                         "addpd %%xmm15, %%xmm5\n"
                         "subpd %%xmm15, %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm12\n"
                         "addpd %%xmm4, %%xmm8\n"
                         "subpd %%xmm4, %%xmm12\n"
                         "movapd %%xmm1, %%xmm9\n"
                         "movapd %%xmm1, %%xmm13\n"
                         "addpd %%xmm5, %%xmm9\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm14\n"
                         "addpd %%xmm6, %%xmm10\n"
                         "subpd %%xmm6, %%xmm14\n"
                         "movapd %%xmm3, %%xmm11\n"
                         "movapd %%xmm3, %%xmm15\n"
                         "addpd %%xmm7, %%xmm11\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movupd %%xmm8, (%0)\n"
                         "movupd %%xmm9, (%1)\n"
                         "movupd %%xmm10, (%2)\n"
                         "movupd %%xmm11, (%3)\n"
                         "movupd %%xmm12, (%4)\n"
                         "movupd %%xmm13, (%5)\n"
                         "movupd %%xmm14, (%6)\n"
                         "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 4096), "r"(buf + j + k + 8192),
                         "r"(buf + j + k + 12288), "r"(buf + j + k + 16384),
                         "r"(buf + j + k + 20480), "r"(buf + j + k + 24576),
                         "r"(buf + j + k + 28672)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5",
                           "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10",
                           "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15",
                           "memory");
      }
    }
    return;
  }
  if (depth == 18) {
    helper_double_30_recursive(buf + 0, 15);
    helper_double_30_recursive(buf + 32768, 15);
    helper_double_30_recursive(buf + 65536, 15);
    helper_double_30_recursive(buf + 98304, 15);
    helper_double_30_recursive(buf + 131072, 15);
    helper_double_30_recursive(buf + 163840, 15);
    helper_double_30_recursive(buf + 196608, 15);
    helper_double_30_recursive(buf + 229376, 15);
    for (int j = 0; j < 262144; j += 262144) {
      for (int k = 0; k < 32768; k += 2) {
        __asm__ volatile("movupd (%0), %%xmm0\n"
                         "movupd (%1), %%xmm1\n"
                         "movupd (%2), %%xmm2\n"
                         "movupd (%3), %%xmm3\n"
                         "movupd (%4), %%xmm4\n"
                         "movupd (%5), %%xmm5\n"
                         "movupd (%6), %%xmm6\n"
                         "movupd (%7), %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm9\n"
                         "addpd %%xmm1, %%xmm8\n"
                         "subpd %%xmm1, %%xmm9\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm11\n"
                         "addpd %%xmm3, %%xmm10\n"
                         "subpd %%xmm3, %%xmm11\n"
                         "movapd %%xmm4, %%xmm12\n"
                         "movapd %%xmm4, %%xmm13\n"
                         "addpd %%xmm5, %%xmm12\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm6, %%xmm14\n"
                         "movapd %%xmm6, %%xmm15\n"
                         "addpd %%xmm7, %%xmm14\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movapd %%xmm8, %%xmm0\n"
                         "movapd %%xmm8, %%xmm2\n"
                         "addpd %%xmm10, %%xmm0\n"
                         "subpd %%xmm10, %%xmm2\n"
                         "movapd %%xmm9, %%xmm1\n"
                         "movapd %%xmm9, %%xmm3\n"
                         "addpd %%xmm11, %%xmm1\n"
                         "subpd %%xmm11, %%xmm3\n"
                         "movapd %%xmm12, %%xmm4\n"
                         "movapd %%xmm12, %%xmm6\n"
                         "addpd %%xmm14, %%xmm4\n"
                         "subpd %%xmm14, %%xmm6\n"
                         "movapd %%xmm13, %%xmm5\n"
                         "movapd %%xmm13, %%xmm7\n"
                         "addpd %%xmm15, %%xmm5\n"
                         "subpd %%xmm15, %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm12\n"
                         "addpd %%xmm4, %%xmm8\n"
                         "subpd %%xmm4, %%xmm12\n"
                         "movapd %%xmm1, %%xmm9\n"
                         "movapd %%xmm1, %%xmm13\n"
                         "addpd %%xmm5, %%xmm9\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm14\n"
                         "addpd %%xmm6, %%xmm10\n"
                         "subpd %%xmm6, %%xmm14\n"
                         "movapd %%xmm3, %%xmm11\n"
                         "movapd %%xmm3, %%xmm15\n"
                         "addpd %%xmm7, %%xmm11\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movupd %%xmm8, (%0)\n"
                         "movupd %%xmm9, (%1)\n"
                         "movupd %%xmm10, (%2)\n"
                         "movupd %%xmm11, (%3)\n"
                         "movupd %%xmm12, (%4)\n"
                         "movupd %%xmm13, (%5)\n"
                         "movupd %%xmm14, (%6)\n"
                         "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 32768), "r"(buf + j + k + 65536),
                         "r"(buf + j + k + 98304), "r"(buf + j + k + 131072),
                         "r"(buf + j + k + 163840), "r"(buf + j + k + 196608),
                         "r"(buf + j + k + 229376)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5",
                           "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10",
                           "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15",
                           "memory");
      }
    }
    return;
  }
  if (depth == 21) {
    helper_double_30_recursive(buf + 0, 18);
    helper_double_30_recursive(buf + 262144, 18);
    helper_double_30_recursive(buf + 524288, 18);
    helper_double_30_recursive(buf + 786432, 18);
    helper_double_30_recursive(buf + 1048576, 18);
    helper_double_30_recursive(buf + 1310720, 18);
    helper_double_30_recursive(buf + 1572864, 18);
    helper_double_30_recursive(buf + 1835008, 18);
    for (int j = 0; j < 2097152; j += 2097152) {
      for (int k = 0; k < 262144; k += 2) {
        __asm__ volatile("movupd (%0), %%xmm0\n"
                         "movupd (%1), %%xmm1\n"
                         "movupd (%2), %%xmm2\n"
                         "movupd (%3), %%xmm3\n"
                         "movupd (%4), %%xmm4\n"
                         "movupd (%5), %%xmm5\n"
                         "movupd (%6), %%xmm6\n"
                         "movupd (%7), %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm9\n"
                         "addpd %%xmm1, %%xmm8\n"
                         "subpd %%xmm1, %%xmm9\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm11\n"
                         "addpd %%xmm3, %%xmm10\n"
                         "subpd %%xmm3, %%xmm11\n"
                         "movapd %%xmm4, %%xmm12\n"
                         "movapd %%xmm4, %%xmm13\n"
                         "addpd %%xmm5, %%xmm12\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm6, %%xmm14\n"
                         "movapd %%xmm6, %%xmm15\n"
                         "addpd %%xmm7, %%xmm14\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movapd %%xmm8, %%xmm0\n"
                         "movapd %%xmm8, %%xmm2\n"
                         "addpd %%xmm10, %%xmm0\n"
                         "subpd %%xmm10, %%xmm2\n"
                         "movapd %%xmm9, %%xmm1\n"
                         "movapd %%xmm9, %%xmm3\n"
                         "addpd %%xmm11, %%xmm1\n"
                         "subpd %%xmm11, %%xmm3\n"
                         "movapd %%xmm12, %%xmm4\n"
                         "movapd %%xmm12, %%xmm6\n"
                         "addpd %%xmm14, %%xmm4\n"
                         "subpd %%xmm14, %%xmm6\n"
                         "movapd %%xmm13, %%xmm5\n"
                         "movapd %%xmm13, %%xmm7\n"
                         "addpd %%xmm15, %%xmm5\n"
                         "subpd %%xmm15, %%xmm7\n"
                         "movapd %%xmm0, %%xmm8\n"
                         "movapd %%xmm0, %%xmm12\n"
                         "addpd %%xmm4, %%xmm8\n"
                         "subpd %%xmm4, %%xmm12\n"
                         "movapd %%xmm1, %%xmm9\n"
                         "movapd %%xmm1, %%xmm13\n"
                         "addpd %%xmm5, %%xmm9\n"
                         "subpd %%xmm5, %%xmm13\n"
                         "movapd %%xmm2, %%xmm10\n"
                         "movapd %%xmm2, %%xmm14\n"
                         "addpd %%xmm6, %%xmm10\n"
                         "subpd %%xmm6, %%xmm14\n"
                         "movapd %%xmm3, %%xmm11\n"
                         "movapd %%xmm3, %%xmm15\n"
                         "addpd %%xmm7, %%xmm11\n"
                         "subpd %%xmm7, %%xmm15\n"
                         "movupd %%xmm8, (%0)\n"
                         "movupd %%xmm9, (%1)\n"
                         "movupd %%xmm10, (%2)\n"
                         "movupd %%xmm11, (%3)\n"
                         "movupd %%xmm12, (%4)\n"
                         "movupd %%xmm13, (%5)\n"
                         "movupd %%xmm14, (%6)\n"
                         "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
                         "r"(buf + j + k + 262144), "r"(buf + j + k + 524288),
                         "r"(buf + j + k + 786432), "r"(buf + j + k + 1048576),
                         "r"(buf + j + k + 1310720), "r"(buf + j + k + 1572864),
                         "r"(buf + j + k + 1835008)
                         : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5",
                           "%xmm6", "%xmm7", "%xmm8", "%xmm9", "%xmm10",
                           "%xmm11", "%xmm12", "%xmm13", "%xmm14", "%xmm15",
                           "memory");
      }
    }
    return;
  }
  if (depth == 24) {
    helper_double_30_recursive(buf + 0, 21);
    helper_double_30_recursive(buf + 2097152, 21);
    helper_double_30_recursive(buf + 4194304, 21);
    helper_double_30_recursive(buf + 6291456, 21);
    helper_double_30_recursive(buf + 8388608, 21);
    helper_double_30_recursive(buf + 10485760, 21);
    helper_double_30_recursive(buf + 12582912, 21);
    helper_double_30_recursive(buf + 14680064, 21);
    for (int j = 0; j < 16777216; j += 16777216) {
      for (int k = 0; k < 2097152; k += 2) {
        __asm__ volatile(
            "movupd (%0), %%xmm0\n"
            "movupd (%1), %%xmm1\n"
            "movupd (%2), %%xmm2\n"
            "movupd (%3), %%xmm3\n"
            "movupd (%4), %%xmm4\n"
            "movupd (%5), %%xmm5\n"
            "movupd (%6), %%xmm6\n"
            "movupd (%7), %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "addpd %%xmm1, %%xmm8\n"
            "subpd %%xmm1, %%xmm9\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm11\n"
            "addpd %%xmm3, %%xmm10\n"
            "subpd %%xmm3, %%xmm11\n"
            "movapd %%xmm4, %%xmm12\n"
            "movapd %%xmm4, %%xmm13\n"
            "addpd %%xmm5, %%xmm12\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm6, %%xmm14\n"
            "movapd %%xmm6, %%xmm15\n"
            "addpd %%xmm7, %%xmm14\n"
            "subpd %%xmm7, %%xmm15\n"
            "movapd %%xmm8, %%xmm0\n"
            "movapd %%xmm8, %%xmm2\n"
            "addpd %%xmm10, %%xmm0\n"
            "subpd %%xmm10, %%xmm2\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm9, %%xmm3\n"
            "addpd %%xmm11, %%xmm1\n"
            "subpd %%xmm11, %%xmm3\n"
            "movapd %%xmm12, %%xmm4\n"
            "movapd %%xmm12, %%xmm6\n"
            "addpd %%xmm14, %%xmm4\n"
            "subpd %%xmm14, %%xmm6\n"
            "movapd %%xmm13, %%xmm5\n"
            "movapd %%xmm13, %%xmm7\n"
            "addpd %%xmm15, %%xmm5\n"
            "subpd %%xmm15, %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm12\n"
            "addpd %%xmm4, %%xmm8\n"
            "subpd %%xmm4, %%xmm12\n"
            "movapd %%xmm1, %%xmm9\n"
            "movapd %%xmm1, %%xmm13\n"
            "addpd %%xmm5, %%xmm9\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm14\n"
            "addpd %%xmm6, %%xmm10\n"
            "subpd %%xmm6, %%xmm14\n"
            "movapd %%xmm3, %%xmm11\n"
            "movapd %%xmm3, %%xmm15\n"
            "addpd %%xmm7, %%xmm11\n"
            "subpd %%xmm7, %%xmm15\n"
            "movupd %%xmm8, (%0)\n"
            "movupd %%xmm9, (%1)\n"
            "movupd %%xmm10, (%2)\n"
            "movupd %%xmm11, (%3)\n"
            "movupd %%xmm12, (%4)\n"
            "movupd %%xmm13, (%5)\n"
            "movupd %%xmm14, (%6)\n"
            "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
            "r"(buf + j + k + 2097152), "r"(buf + j + k + 4194304),
            "r"(buf + j + k + 6291456), "r"(buf + j + k + 8388608),
            "r"(buf + j + k + 10485760), "r"(buf + j + k + 12582912),
            "r"(buf + j + k + 14680064)
            : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6",
              "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13",
              "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 27) {
    helper_double_30_recursive(buf + 0, 24);
    helper_double_30_recursive(buf + 16777216, 24);
    helper_double_30_recursive(buf + 33554432, 24);
    helper_double_30_recursive(buf + 50331648, 24);
    helper_double_30_recursive(buf + 67108864, 24);
    helper_double_30_recursive(buf + 83886080, 24);
    helper_double_30_recursive(buf + 100663296, 24);
    helper_double_30_recursive(buf + 117440512, 24);
    for (int j = 0; j < 134217728; j += 134217728) {
      for (int k = 0; k < 16777216; k += 2) {
        __asm__ volatile(
            "movupd (%0), %%xmm0\n"
            "movupd (%1), %%xmm1\n"
            "movupd (%2), %%xmm2\n"
            "movupd (%3), %%xmm3\n"
            "movupd (%4), %%xmm4\n"
            "movupd (%5), %%xmm5\n"
            "movupd (%6), %%xmm6\n"
            "movupd (%7), %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "addpd %%xmm1, %%xmm8\n"
            "subpd %%xmm1, %%xmm9\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm11\n"
            "addpd %%xmm3, %%xmm10\n"
            "subpd %%xmm3, %%xmm11\n"
            "movapd %%xmm4, %%xmm12\n"
            "movapd %%xmm4, %%xmm13\n"
            "addpd %%xmm5, %%xmm12\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm6, %%xmm14\n"
            "movapd %%xmm6, %%xmm15\n"
            "addpd %%xmm7, %%xmm14\n"
            "subpd %%xmm7, %%xmm15\n"
            "movapd %%xmm8, %%xmm0\n"
            "movapd %%xmm8, %%xmm2\n"
            "addpd %%xmm10, %%xmm0\n"
            "subpd %%xmm10, %%xmm2\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm9, %%xmm3\n"
            "addpd %%xmm11, %%xmm1\n"
            "subpd %%xmm11, %%xmm3\n"
            "movapd %%xmm12, %%xmm4\n"
            "movapd %%xmm12, %%xmm6\n"
            "addpd %%xmm14, %%xmm4\n"
            "subpd %%xmm14, %%xmm6\n"
            "movapd %%xmm13, %%xmm5\n"
            "movapd %%xmm13, %%xmm7\n"
            "addpd %%xmm15, %%xmm5\n"
            "subpd %%xmm15, %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm12\n"
            "addpd %%xmm4, %%xmm8\n"
            "subpd %%xmm4, %%xmm12\n"
            "movapd %%xmm1, %%xmm9\n"
            "movapd %%xmm1, %%xmm13\n"
            "addpd %%xmm5, %%xmm9\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm14\n"
            "addpd %%xmm6, %%xmm10\n"
            "subpd %%xmm6, %%xmm14\n"
            "movapd %%xmm3, %%xmm11\n"
            "movapd %%xmm3, %%xmm15\n"
            "addpd %%xmm7, %%xmm11\n"
            "subpd %%xmm7, %%xmm15\n"
            "movupd %%xmm8, (%0)\n"
            "movupd %%xmm9, (%1)\n"
            "movupd %%xmm10, (%2)\n"
            "movupd %%xmm11, (%3)\n"
            "movupd %%xmm12, (%4)\n"
            "movupd %%xmm13, (%5)\n"
            "movupd %%xmm14, (%6)\n"
            "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
            "r"(buf + j + k + 16777216), "r"(buf + j + k + 33554432),
            "r"(buf + j + k + 50331648), "r"(buf + j + k + 67108864),
            "r"(buf + j + k + 83886080), "r"(buf + j + k + 100663296),
            "r"(buf + j + k + 117440512)
            : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6",
              "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13",
              "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
  if (depth == 30) {
    helper_double_30_recursive(buf + 0, 27);
    helper_double_30_recursive(buf + 134217728, 27);
    helper_double_30_recursive(buf + 268435456, 27);
    helper_double_30_recursive(buf + 402653184, 27);
    helper_double_30_recursive(buf + 536870912, 27);
    helper_double_30_recursive(buf + 671088640, 27);
    helper_double_30_recursive(buf + 805306368, 27);
    helper_double_30_recursive(buf + 939524096, 27);
    for (int j = 0; j < 1073741824; j += 1073741824) {
      for (int k = 0; k < 134217728; k += 2) {
        __asm__ volatile(
            "movupd (%0), %%xmm0\n"
            "movupd (%1), %%xmm1\n"
            "movupd (%2), %%xmm2\n"
            "movupd (%3), %%xmm3\n"
            "movupd (%4), %%xmm4\n"
            "movupd (%5), %%xmm5\n"
            "movupd (%6), %%xmm6\n"
            "movupd (%7), %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm9\n"
            "addpd %%xmm1, %%xmm8\n"
            "subpd %%xmm1, %%xmm9\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm11\n"
            "addpd %%xmm3, %%xmm10\n"
            "subpd %%xmm3, %%xmm11\n"
            "movapd %%xmm4, %%xmm12\n"
            "movapd %%xmm4, %%xmm13\n"
            "addpd %%xmm5, %%xmm12\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm6, %%xmm14\n"
            "movapd %%xmm6, %%xmm15\n"
            "addpd %%xmm7, %%xmm14\n"
            "subpd %%xmm7, %%xmm15\n"
            "movapd %%xmm8, %%xmm0\n"
            "movapd %%xmm8, %%xmm2\n"
            "addpd %%xmm10, %%xmm0\n"
            "subpd %%xmm10, %%xmm2\n"
            "movapd %%xmm9, %%xmm1\n"
            "movapd %%xmm9, %%xmm3\n"
            "addpd %%xmm11, %%xmm1\n"
            "subpd %%xmm11, %%xmm3\n"
            "movapd %%xmm12, %%xmm4\n"
            "movapd %%xmm12, %%xmm6\n"
            "addpd %%xmm14, %%xmm4\n"
            "subpd %%xmm14, %%xmm6\n"
            "movapd %%xmm13, %%xmm5\n"
            "movapd %%xmm13, %%xmm7\n"
            "addpd %%xmm15, %%xmm5\n"
            "subpd %%xmm15, %%xmm7\n"
            "movapd %%xmm0, %%xmm8\n"
            "movapd %%xmm0, %%xmm12\n"
            "addpd %%xmm4, %%xmm8\n"
            "subpd %%xmm4, %%xmm12\n"
            "movapd %%xmm1, %%xmm9\n"
            "movapd %%xmm1, %%xmm13\n"
            "addpd %%xmm5, %%xmm9\n"
            "subpd %%xmm5, %%xmm13\n"
            "movapd %%xmm2, %%xmm10\n"
            "movapd %%xmm2, %%xmm14\n"
            "addpd %%xmm6, %%xmm10\n"
            "subpd %%xmm6, %%xmm14\n"
            "movapd %%xmm3, %%xmm11\n"
            "movapd %%xmm3, %%xmm15\n"
            "addpd %%xmm7, %%xmm11\n"
            "subpd %%xmm7, %%xmm15\n"
            "movupd %%xmm8, (%0)\n"
            "movupd %%xmm9, (%1)\n"
            "movupd %%xmm10, (%2)\n"
            "movupd %%xmm11, (%3)\n"
            "movupd %%xmm12, (%4)\n"
            "movupd %%xmm13, (%5)\n"
            "movupd %%xmm14, (%6)\n"
            "movupd %%xmm15, (%7)\n" ::"r"(buf + j + k + 0),
            "r"(buf + j + k + 134217728), "r"(buf + j + k + 268435456),
            "r"(buf + j + k + 402653184), "r"(buf + j + k + 536870912),
            "r"(buf + j + k + 671088640), "r"(buf + j + k + 805306368),
            "r"(buf + j + k + 939524096)
            : "%xmm0", "%xmm1", "%xmm2", "%xmm3", "%xmm4", "%xmm5", "%xmm6",
              "%xmm7", "%xmm8", "%xmm9", "%xmm10", "%xmm11", "%xmm12", "%xmm13",
              "%xmm14", "%xmm15", "memory");
      }
    }
    return;
  }
}


x86 assembly (clang, -O0):
<helper_double_30_recursive>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
cmpl   $0x3,-0xc(%rbp)
jne    12d5 <helper_double_30_recursive+0x1c5>
movl   $0x0,-0x10(%rbp)
cmpl   $0x8,-0x10(%rbp)
jge    12d0 <helper_double_30_recursive+0x1c0>
movl   $0x0,-0x14(%rbp)
cmpl   $0x2,-0x14(%rbp)
jge    12bd <helper_double_30_recursive+0x1ad>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x14(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x10(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x14(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x10,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x10(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x14(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x20,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x10(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x14(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x30,%rsi
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rax)
movupd %xmm1,(%rcx)
movupd %xmm2,(%rdx)
movupd %xmm3,(%rsi)
mov    -0x14(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x14(%rbp)
jmp    1141 <helper_double_30_recursive+0x31>
jmp    12c2 <helper_double_30_recursive+0x1b2>
mov    -0x10(%rbp),%eax
add    $0x8,%eax
mov    %eax,-0x10(%rbp)
jmp    1130 <helper_double_30_recursive+0x20>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x6,-0xc(%rbp)
jne    15fe <helper_double_30_recursive+0x4ee>
mov    -0x8(%rbp),%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x40,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x80,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xc0,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x100,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x140,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x180,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x1c0,%rdi
mov    $0x3,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x40,-0x18(%rbp)
jge    15f9 <helper_double_30_recursive+0x4e9>
movl   $0x0,-0x1c(%rbp)
cmpl   $0x8,-0x1c(%rbp)
jge    15e6 <helper_double_30_recursive+0x4d6>
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x1c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x18(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x1c(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x40,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x18(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x1c(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x80,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x18(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x1c(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0xc0,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x18(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x1c(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x100,%rdi
mov    -0x8(%rbp),%r8
movslq -0x18(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x1c(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x140,%r8
mov    -0x8(%rbp),%r9
movslq -0x18(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x1c(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x180,%r9
mov    -0x8(%rbp),%r10
movslq -0x18(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x1c(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x1c0,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x1c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x1c(%rbp)
jmp    1395 <helper_double_30_recursive+0x285>
jmp    15eb <helper_double_30_recursive+0x4db>
mov    -0x18(%rbp),%eax
add    $0x40,%eax
mov    %eax,-0x18(%rbp)
jmp    1384 <helper_double_30_recursive+0x274>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x9,-0xc(%rbp)
jne    1932 <helper_double_30_recursive+0x822>
mov    -0x8(%rbp),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x200,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x400,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x600,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x800,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xa00,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xc00,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xe00,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x20(%rbp)
cmpl   $0x200,-0x20(%rbp)
jge    192d <helper_double_30_recursive+0x81d>
movl   $0x0,-0x24(%rbp)
cmpl   $0x40,-0x24(%rbp)
jge    1918 <helper_double_30_recursive+0x808>
mov    -0x8(%rbp),%rax
movslq -0x20(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x24(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x20(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x24(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x200,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x20(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x24(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x400,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x20(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x24(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x600,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x20(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x24(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x800,%rdi
mov    -0x8(%rbp),%r8
movslq -0x20(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x24(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0xa00,%r8
mov    -0x8(%rbp),%r9
movslq -0x20(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x24(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0xc00,%r9
mov    -0x8(%rbp),%r10
movslq -0x20(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x24(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0xe00,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x24(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x24(%rbp)
jmp    16c4 <helper_double_30_recursive+0x5b4>
jmp    191d <helper_double_30_recursive+0x80d>
mov    -0x20(%rbp),%eax
add    $0x200,%eax
mov    %eax,-0x20(%rbp)
jmp    16b0 <helper_double_30_recursive+0x5a0>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0xc,-0xc(%rbp)
jne    1c69 <helper_double_30_recursive+0xb59>
mov    -0x8(%rbp),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x1000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x2000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x3000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x4000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x5000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x6000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x7000,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x28(%rbp)
cmpl   $0x1000,-0x28(%rbp)
jge    1c64 <helper_double_30_recursive+0xb54>
movl   $0x0,-0x2c(%rbp)
cmpl   $0x200,-0x2c(%rbp)
jge    1c4f <helper_double_30_recursive+0xb3f>
mov    -0x8(%rbp),%rax
movslq -0x28(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x2c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x28(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x2c(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x1000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x28(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x2c(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x2000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x28(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x2c(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x3000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x28(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x2c(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x4000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x28(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x2c(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x5000,%r8
mov    -0x8(%rbp),%r9
movslq -0x28(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x2c(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x6000,%r9
mov    -0x8(%rbp),%r10
movslq -0x28(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x2c(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x7000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x2c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x2c(%rbp)
jmp    19f8 <helper_double_30_recursive+0x8e8>
jmp    1c54 <helper_double_30_recursive+0xb44>
mov    -0x28(%rbp),%eax
add    $0x1000,%eax
mov    %eax,-0x28(%rbp)
jmp    19e4 <helper_double_30_recursive+0x8d4>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0xf,-0xc(%rbp)
jne    1fa0 <helper_double_30_recursive+0xe90>
mov    -0x8(%rbp),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x8000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x10000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x18000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x20000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x28000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x30000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x38000,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x30(%rbp)
cmpl   $0x8000,-0x30(%rbp)
jge    1f9b <helper_double_30_recursive+0xe8b>
movl   $0x0,-0x34(%rbp)
cmpl   $0x1000,-0x34(%rbp)
jge    1f86 <helper_double_30_recursive+0xe76>
mov    -0x8(%rbp),%rax
movslq -0x30(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x34(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x30(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x34(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x8000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x30(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x34(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x10000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x30(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x34(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x18000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x30(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x34(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x20000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x30(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x34(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x28000,%r8
mov    -0x8(%rbp),%r9
movslq -0x30(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x34(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x30000,%r9
mov    -0x8(%rbp),%r10
movslq -0x30(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x34(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x38000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x34(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x34(%rbp)
jmp    1d2f <helper_double_30_recursive+0xc1f>
jmp    1f8b <helper_double_30_recursive+0xe7b>
mov    -0x30(%rbp),%eax
add    $0x8000,%eax
mov    %eax,-0x30(%rbp)
jmp    1d1b <helper_double_30_recursive+0xc0b>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x12,-0xc(%rbp)
jne    22d7 <helper_double_30_recursive+0x11c7>
mov    -0x8(%rbp),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x40000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x80000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xc0000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x100000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x140000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x180000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x1c0000,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x38(%rbp)
cmpl   $0x40000,-0x38(%rbp)
jge    22d2 <helper_double_30_recursive+0x11c2>
movl   $0x0,-0x3c(%rbp)
cmpl   $0x8000,-0x3c(%rbp)
jge    22bd <helper_double_30_recursive+0x11ad>
mov    -0x8(%rbp),%rax
movslq -0x38(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x3c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x38(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x3c(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x40000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x38(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x3c(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x80000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x38(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x3c(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0xc0000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x38(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x3c(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x100000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x38(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x3c(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x140000,%r8
mov    -0x8(%rbp),%r9
movslq -0x38(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x3c(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x180000,%r9
mov    -0x8(%rbp),%r10
movslq -0x38(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x3c(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x1c0000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x3c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x3c(%rbp)
jmp    2066 <helper_double_30_recursive+0xf56>
jmp    22c2 <helper_double_30_recursive+0x11b2>
mov    -0x38(%rbp),%eax
add    $0x40000,%eax
mov    %eax,-0x38(%rbp)
jmp    2052 <helper_double_30_recursive+0xf42>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x15,-0xc(%rbp)
jne    260e <helper_double_30_recursive+0x14fe>
mov    -0x8(%rbp),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x200000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x400000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x600000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x800000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xa00000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xc00000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0xe00000,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x40(%rbp)
cmpl   $0x200000,-0x40(%rbp)
jge    2609 <helper_double_30_recursive+0x14f9>
movl   $0x0,-0x44(%rbp)
cmpl   $0x40000,-0x44(%rbp)
jge    25f4 <helper_double_30_recursive+0x14e4>
mov    -0x8(%rbp),%rax
movslq -0x40(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x44(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x40(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x44(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x200000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x40(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x44(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x400000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x40(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x44(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x600000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x40(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x44(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x800000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x40(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x44(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0xa00000,%r8
mov    -0x8(%rbp),%r9
movslq -0x40(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x44(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0xc00000,%r9
mov    -0x8(%rbp),%r10
movslq -0x40(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x44(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0xe00000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x44(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x44(%rbp)
jmp    239d <helper_double_30_recursive+0x128d>
jmp    25f9 <helper_double_30_recursive+0x14e9>
mov    -0x40(%rbp),%eax
add    $0x200000,%eax
mov    %eax,-0x40(%rbp)
jmp    2389 <helper_double_30_recursive+0x1279>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x18,-0xc(%rbp)
jne    2945 <helper_double_30_recursive+0x1835>
mov    -0x8(%rbp),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x1000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x2000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x3000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x4000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x5000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x6000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x7000000,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x48(%rbp)
cmpl   $0x1000000,-0x48(%rbp)
jge    2940 <helper_double_30_recursive+0x1830>
movl   $0x0,-0x4c(%rbp)
cmpl   $0x200000,-0x4c(%rbp)
jge    292b <helper_double_30_recursive+0x181b>
mov    -0x8(%rbp),%rax
movslq -0x48(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x4c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x48(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x4c(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x1000000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x48(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x4c(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x2000000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x48(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x4c(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x3000000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x48(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x4c(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x4000000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x48(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x4c(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x5000000,%r8
mov    -0x8(%rbp),%r9
movslq -0x48(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x4c(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x6000000,%r9
mov    -0x8(%rbp),%r10
movslq -0x48(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x4c(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x7000000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x4c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x4c(%rbp)
jmp    26d4 <helper_double_30_recursive+0x15c4>
jmp    2930 <helper_double_30_recursive+0x1820>
mov    -0x48(%rbp),%eax
add    $0x1000000,%eax
mov    %eax,-0x48(%rbp)
jmp    26c0 <helper_double_30_recursive+0x15b0>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x1b,-0xc(%rbp)
jne    2c7c <helper_double_30_recursive+0x1b6c>
mov    -0x8(%rbp),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x8000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x10000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x18000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x20000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x28000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x30000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x38000000,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x50(%rbp)
cmpl   $0x8000000,-0x50(%rbp)
jge    2c77 <helper_double_30_recursive+0x1b67>
movl   $0x0,-0x54(%rbp)
cmpl   $0x1000000,-0x54(%rbp)
jge    2c62 <helper_double_30_recursive+0x1b52>
mov    -0x8(%rbp),%rax
movslq -0x50(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x54(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x50(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x54(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x8000000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x50(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x54(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
add    $0x10000000,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x50(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x54(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
add    $0x18000000,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x50(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x54(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
add    $0x20000000,%rdi
mov    -0x8(%rbp),%r8
movslq -0x50(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x54(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
add    $0x28000000,%r8
mov    -0x8(%rbp),%r9
movslq -0x50(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x54(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
add    $0x30000000,%r9
mov    -0x8(%rbp),%r10
movslq -0x50(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x54(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
add    $0x38000000,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x54(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x54(%rbp)
jmp    2a0b <helper_double_30_recursive+0x18fb>
jmp    2c67 <helper_double_30_recursive+0x1b57>
mov    -0x50(%rbp),%eax
add    $0x8000000,%eax
mov    %eax,-0x50(%rbp)
jmp    29f7 <helper_double_30_recursive+0x18e7>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
cmpl   $0x1e,-0xc(%rbp)
jne    2fe9 <helper_double_30_recursive+0x1ed9>
mov    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
mov    -0x8(%rbp),%rdi
add    $0x40000000,%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x80000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0xc0000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x100000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x140000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x180000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x1c0000000,%rdi
add    -0x8(%rbp),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movl   $0x0,-0x58(%rbp)
cmpl   $0x40000000,-0x58(%rbp)
jge    2fe4 <helper_double_30_recursive+0x1ed4>
movl   $0x0,-0x5c(%rbp)
cmpl   $0x8000000,-0x5c(%rbp)
jge    2fcf <helper_double_30_recursive+0x1ebf>
mov    -0x8(%rbp),%rax
movslq -0x58(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x5c(%rbp),%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x8(%rbp),%rcx
movslq -0x58(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
movslq -0x5c(%rbp),%rdx
shl    $0x3,%rdx
add    %rdx,%rcx
add    $0x40000000,%rcx
mov    -0x8(%rbp),%rdx
movslq -0x58(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movslq -0x5c(%rbp),%rsi
shl    $0x3,%rsi
add    %rsi,%rdx
movabs $0x80000000,%rsi
add    %rsi,%rdx
mov    -0x8(%rbp),%rsi
movslq -0x58(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movslq -0x5c(%rbp),%rdi
shl    $0x3,%rdi
add    %rdi,%rsi
movabs $0xc0000000,%rdi
add    %rdi,%rsi
mov    -0x8(%rbp),%rdi
movslq -0x58(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movslq -0x5c(%rbp),%r8
shl    $0x3,%r8
add    %r8,%rdi
movabs $0x100000000,%r8
add    %r8,%rdi
mov    -0x8(%rbp),%r8
movslq -0x58(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movslq -0x5c(%rbp),%r9
shl    $0x3,%r9
add    %r9,%r8
movabs $0x140000000,%r9
add    %r9,%r8
mov    -0x8(%rbp),%r9
movslq -0x58(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movslq -0x5c(%rbp),%r10
shl    $0x3,%r10
add    %r10,%r9
movabs $0x180000000,%r10
add    %r10,%r9
mov    -0x8(%rbp),%r10
movslq -0x58(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movslq -0x5c(%rbp),%r11
shl    $0x3,%r11
add    %r11,%r10
movabs $0x1c0000000,%r11
add    %r11,%r10
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movupd (%rdi),%xmm4
movupd (%r8),%xmm5
movupd (%r9),%xmm6
movupd (%r10),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rax)
movupd %xmm9,(%rcx)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rsi)
movupd %xmm12,(%rdi)
movupd %xmm13,(%r8)
movupd %xmm14,(%r9)
movupd %xmm15,(%r10)
mov    -0x5c(%rbp),%eax
add    $0x2,%eax
mov    %eax,-0x5c(%rbp)
jmp    2d54 <helper_double_30_recursive+0x1c44>
jmp    2fd4 <helper_double_30_recursive+0x1ec4>
mov    -0x58(%rbp),%eax
add    $0x40000000,%eax
mov    %eax,-0x58(%rbp)
jmp    2d40 <helper_double_30_recursive+0x1c30>
jmp    2fe9 <helper_double_30_recursive+0x1ed9>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<helper_double_30_recursive>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xa8,%rsp
add    $0xfffffffd,%esi
cmp    $0x1b,%esi
ja     3185 <helper_double_30_recursive+0x2075>
mov    %rdi,%rbx
lea    0x2ec9(%rip),%rax
movslq (%rax,%rsi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
lea    0x10(%rbx),%rax
lea    0x20(%rbx),%rcx
lea    0x30(%rbx),%rdx
movupd (%rbx),%xmm0
movupd (%rax),%xmm1
movupd (%rcx),%xmm2
movupd (%rdx),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rbx)
movupd %xmm1,(%rax)
movupd %xmm2,(%rcx)
movupd %xmm3,(%rdx)
jmp    3185 <helper_double_30_recursive+0x2075>
lea    0x10(%rbx),%rax
mov    %rax,0x90(%rsp)
lea    0x20(%rbx),%rcx
mov    %rcx,0x98(%rsp)
lea    0x30(%rbx),%rdx
mov    %rdx,0xa0(%rsp)
movupd (%rbx),%xmm0
movupd (%rax),%xmm1
movupd (%rcx),%xmm2
movupd (%rdx),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rbx)
movupd %xmm1,(%rax)
movupd %xmm2,(%rcx)
movupd %xmm3,(%rdx)
lea    0x40(%rbx),%rax
mov    %rax,0x70(%rsp)
lea    0x50(%rbx),%rcx
mov    %rcx,0x78(%rsp)
lea    0x60(%rbx),%rdx
mov    %rdx,0x80(%rsp)
lea    0x70(%rbx),%rsi
mov    %rsi,0x88(%rsp)
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rax)
movupd %xmm1,(%rcx)
movupd %xmm2,(%rdx)
movupd %xmm3,(%rsi)
lea    0x80(%rbx),%rax
mov    %rax,0x50(%rsp)
lea    0x90(%rbx),%rcx
mov    %rcx,0x58(%rsp)
lea    0xa0(%rbx),%rdx
mov    %rdx,0x60(%rsp)
lea    0xb0(%rbx),%rsi
mov    %rsi,0x68(%rsp)
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rax)
movupd %xmm1,(%rcx)
movupd %xmm2,(%rdx)
movupd %xmm3,(%rsi)
lea    0xc0(%rbx),%rax
mov    %rax,0x30(%rsp)
lea    0xd0(%rbx),%rcx
mov    %rcx,0x38(%rsp)
lea    0xe0(%rbx),%rdx
mov    %rdx,0x40(%rsp)
lea    0xf0(%rbx),%rsi
mov    %rsi,0x48(%rsp)
movupd (%rax),%xmm0
movupd (%rcx),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rax)
movupd %xmm1,(%rcx)
movupd %xmm2,(%rdx)
movupd %xmm3,(%rsi)
lea    0x100(%rbx),%rcx
mov    %rcx,0x10(%rsp)
lea    0x110(%rbx),%rax
mov    %rax,0x18(%rsp)
lea    0x120(%rbx),%rdx
mov    %rdx,0x20(%rsp)
lea    0x130(%rbx),%rsi
mov    %rsi,0x28(%rsp)
movupd (%rcx),%xmm0
movupd (%rax),%xmm1
movupd (%rdx),%xmm2
movupd (%rsi),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rcx)
movupd %xmm1,(%rax)
movupd %xmm2,(%rdx)
movupd %xmm3,(%rsi)
lea    0x140(%rbx),%rcx
lea    0x150(%rbx),%rax
mov    %rax,0x8(%rsp)
lea    0x160(%rbx),%rdx
mov    %rdx,(%rsp)
lea    0x170(%rbx),%r12
movupd (%rcx),%xmm0
movupd (%rax),%xmm1
movupd (%rdx),%xmm2
movupd (%r12),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rcx)
movupd %xmm1,(%rax)
movupd %xmm2,(%rdx)
movupd %xmm3,(%r12)
mov    %rcx,%rdx
lea    0x180(%rbx),%rdi
lea    0x190(%rbx),%r14
lea    0x1a0(%rbx),%r15
lea    0x1b0(%rbx),%r10
movupd (%rdi),%xmm0
movupd (%r14),%xmm1
movupd (%r15),%xmm2
movupd (%r10),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rdi)
movupd %xmm1,(%r14)
movupd %xmm2,(%r15)
movupd %xmm3,(%r10)
mov    %rbx,%rax
add    $0x1f0,%rax
lea    0x1c0(%rbx),%rcx
lea    0x1d0(%rbx),%r8
lea    0x1e0(%rbx),%r9
movupd (%rcx),%xmm0
movupd (%r8),%xmm1
movupd (%r9),%xmm2
movupd (%rax),%xmm3
movapd %xmm0,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm0,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm0
movapd %xmm1,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm1,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm1
movapd %xmm2,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm2,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm2
movapd %xmm3,%xmm8
haddpd %xmm8,%xmm8
movapd %xmm3,%xmm9
hsubpd %xmm9,%xmm9
blendpd $0x1,%xmm8,%xmm9
movapd %xmm9,%xmm3
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movupd %xmm0,(%rcx)
movupd %xmm1,(%r8)
movupd %xmm2,(%r9)
movupd %xmm3,(%rax)
mov    0x70(%rsp),%r13
mov    0x50(%rsp),%rbp
mov    0x30(%rsp),%r11
mov    0x10(%rsp),%rsi
movupd (%rbx),%xmm0
movupd 0x0(%r13),%xmm1
movupd 0x0(%rbp),%xmm2
movupd (%r11),%xmm3
movupd (%rsi),%xmm4
movupd (%rdx),%xmm5
movupd (%rdi),%xmm6
movupd (%rcx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rbx)
movupd %xmm9,0x0(%r13)
movupd %xmm10,0x0(%rbp)
movupd %xmm11,(%r11)
movupd %xmm12,(%rsi)
movupd %xmm13,(%rdx)
movupd %xmm14,(%rdi)
movupd %xmm15,(%rcx)
mov    0x90(%rsp),%rcx
mov    0x78(%rsp),%rdi
mov    0x58(%rsp),%rbx
mov    0x38(%rsp),%rbp
mov    0x18(%rsp),%rsi
mov    0x8(%rsp),%rdx
movupd (%rcx),%xmm0
movupd (%rdi),%xmm1
movupd (%rbx),%xmm2
movupd 0x0(%rbp),%xmm3
movupd (%rsi),%xmm4
movupd (%rdx),%xmm5
movupd (%r14),%xmm6
movupd (%r8),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rcx)
movupd %xmm9,(%rdi)
movupd %xmm10,(%rbx)
movupd %xmm11,0x0(%rbp)
movupd %xmm12,(%rsi)
movupd %xmm13,(%rdx)
movupd %xmm14,(%r14)
movupd %xmm15,(%r8)
mov    0x98(%rsp),%rcx
mov    0x80(%rsp),%rdx
mov    0x60(%rsp),%rdi
mov    0x40(%rsp),%rbp
mov    0x20(%rsp),%rbx
mov    (%rsp),%rsi
movupd (%rcx),%xmm0
movupd (%rdx),%xmm1
movupd (%rdi),%xmm2
movupd 0x0(%rbp),%xmm3
movupd (%rbx),%xmm4
movupd (%rsi),%xmm5
movupd (%r15),%xmm6
movupd (%r9),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rcx)
movupd %xmm9,(%rdx)
movupd %xmm10,(%rdi)
movupd %xmm11,0x0(%rbp)
movupd %xmm12,(%rbx)
movupd %xmm13,(%rsi)
movupd %xmm14,(%r15)
movupd %xmm15,(%r9)
mov    0xa0(%rsp),%rcx
mov    0x88(%rsp),%rdx
mov    0x68(%rsp),%rsi
mov    0x48(%rsp),%rdi
mov    0x28(%rsp),%rbp
movupd (%rcx),%xmm0
movupd (%rdx),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%r12),%xmm5
movupd (%r10),%xmm6
movupd (%rax),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rcx)
movupd %xmm9,(%rdx)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%r12)
movupd %xmm14,(%r10)
movupd %xmm15,(%rax)
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x200(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x400(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x600(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x800(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0xa00(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0xc00(%rbx),%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0xe00,%rbx
mov    %rbx,%rdi
mov    $0x6,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
nopl   (%rax)
lea    -0xe00(%rbx),%r8
lea    -0xc00(%rbx),%r9
lea    -0xa00(%rbx),%rsi
lea    -0x800(%rbx),%rdi
lea    -0x600(%rbx),%rbp
lea    -0x400(%rbx),%rcx
lea    -0x200(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x3e,%rax
jb     2110 <helper_double_30_recursive+0x1000>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x1000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x2000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x3000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x4000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x5000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x6000(%rbx),%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0x7000,%rbx
mov    %rbx,%rdi
mov    $0x9,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
lea    -0x7000(%rbx),%r8
lea    -0x6000(%rbx),%r9
lea    -0x5000(%rbx),%rsi
lea    -0x4000(%rbx),%rdi
lea    -0x3000(%rbx),%rbp
lea    -0x2000(%rbx),%rcx
lea    -0x1000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x1fe,%rax
jb     2330 <helper_double_30_recursive+0x1220>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x8000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x10000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x18000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x20000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x28000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x30000(%rbx),%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0x38000,%rbx
mov    %rbx,%rdi
mov    $0xc,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x38000(%rbx),%r8
lea    -0x30000(%rbx),%r9
lea    -0x28000(%rbx),%rsi
lea    -0x20000(%rbx),%rdi
lea    -0x18000(%rbx),%rbp
lea    -0x10000(%rbx),%rcx
lea    -0x8000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0xffe,%rax
jb     2550 <helper_double_30_recursive+0x1440>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x40000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x80000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0xc0000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x100000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x140000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x180000(%rbx),%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0x1c0000,%rbx
mov    %rbx,%rdi
mov    $0xf,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x1c0000(%rbx),%r8
lea    -0x180000(%rbx),%r9
lea    -0x140000(%rbx),%rsi
lea    -0x100000(%rbx),%rdi
lea    -0xc0000(%rbx),%rbp
lea    -0x80000(%rbx),%rcx
lea    -0x40000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x7ffe,%rax
jb     2770 <helper_double_30_recursive+0x1660>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x200000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x400000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x600000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x800000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0xa00000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0xc00000(%rbx),%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0xe00000,%rbx
mov    %rbx,%rdi
mov    $0x12,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0xe00000(%rbx),%r8
lea    -0xc00000(%rbx),%r9
lea    -0xa00000(%rbx),%rsi
lea    -0x800000(%rbx),%rdi
lea    -0x600000(%rbx),%rbp
lea    -0x400000(%rbx),%rcx
lea    -0x200000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x3fffe,%rax
jb     2990 <helper_double_30_recursive+0x1880>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x1000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x2000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x3000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x4000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x5000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x6000000(%rbx),%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0x7000000,%rbx
mov    %rbx,%rdi
mov    $0x15,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x7000000(%rbx),%r8
lea    -0x6000000(%rbx),%r9
lea    -0x5000000(%rbx),%rsi
lea    -0x4000000(%rbx),%rdi
lea    -0x3000000(%rbx),%rbp
lea    -0x2000000(%rbx),%rcx
lea    -0x1000000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x1ffffe,%rax
jb     2bb0 <helper_double_30_recursive+0x1aa0>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x8000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x10000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x18000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x20000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x28000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x30000000(%rbx),%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
add    $0x38000000,%rbx
mov    %rbx,%rdi
mov    $0x18,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xfffffffffffffffe,%rax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
lea    -0x38000000(%rbx),%r8
lea    -0x30000000(%rbx),%r9
lea    -0x28000000(%rbx),%rsi
lea    -0x20000000(%rbx),%rdi
lea    -0x18000000(%rbx),%rbp
lea    -0x10000000(%rbx),%rcx
lea    -0x8000000(%rbx),%rdx
movupd (%r8),%xmm0
movupd (%r9),%xmm1
movupd (%rsi),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%rcx),%xmm5
movupd (%rdx),%xmm6
movupd (%rbx),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%r8)
movupd %xmm9,(%r9)
movupd %xmm10,(%rsi)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%rcx)
movupd %xmm14,(%rdx)
movupd %xmm15,(%rbx)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0xfffffe,%rax
jb     2dd0 <helper_double_30_recursive+0x1cc0>
jmp    3185 <helper_double_30_recursive+0x2075>
mov    %rbx,%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
lea    0x40000000(%rbx),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
mov    %rbx,%rdi
sub    $0xffffffff80000000,%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xc0000000,%eax
lea    (%rbx,%rax,1),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x100000000,%r15
lea    (%rbx,%r15,1),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x140000000,%r12
lea    (%rbx,%r12,1),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x180000000,%r13
lea    (%rbx,%r13,1),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
movabs $0x1c0000000,%r14
lea    (%rbx,%r14,1),%rdi
mov    $0x1b,%esi
call   1030 <helper_double_30_recursive@plt>
mov    $0xc0000000,%r10d
mov    $0xfffffffffffffffe,%rax
nopl   0x0(%rax,%rax,1)
lea    0x40000000(%rbx),%r8
mov    %rbx,%rdx
sub    $0xffffffff80000000,%rdx
lea    (%rbx,%r12,1),%r9
lea    (%rbx,%r10,1),%rdi
lea    (%rbx,%r15,1),%rbp
lea    (%rbx,%r13,1),%rcx
lea    (%rbx,%r14,1),%rsi
movupd (%rbx),%xmm0
movupd (%r8),%xmm1
movupd (%rdx),%xmm2
movupd (%rdi),%xmm3
movupd 0x0(%rbp),%xmm4
movupd (%r9),%xmm5
movupd (%rcx),%xmm6
movupd (%rsi),%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm9
addpd  %xmm1,%xmm8
subpd  %xmm1,%xmm9
movapd %xmm2,%xmm10
movapd %xmm2,%xmm11
addpd  %xmm3,%xmm10
subpd  %xmm3,%xmm11
movapd %xmm4,%xmm12
movapd %xmm4,%xmm13
addpd  %xmm5,%xmm12
subpd  %xmm5,%xmm13
movapd %xmm6,%xmm14
movapd %xmm6,%xmm15
addpd  %xmm7,%xmm14
subpd  %xmm7,%xmm15
movapd %xmm8,%xmm0
movapd %xmm8,%xmm2
addpd  %xmm10,%xmm0
subpd  %xmm10,%xmm2
movapd %xmm9,%xmm1
movapd %xmm9,%xmm3
addpd  %xmm11,%xmm1
subpd  %xmm11,%xmm3
movapd %xmm12,%xmm4
movapd %xmm12,%xmm6
addpd  %xmm14,%xmm4
subpd  %xmm14,%xmm6
movapd %xmm13,%xmm5
movapd %xmm13,%xmm7
addpd  %xmm15,%xmm5
subpd  %xmm15,%xmm7
movapd %xmm0,%xmm8
movapd %xmm0,%xmm12
addpd  %xmm4,%xmm8
subpd  %xmm4,%xmm12
movapd %xmm1,%xmm9
movapd %xmm1,%xmm13
addpd  %xmm5,%xmm9
subpd  %xmm5,%xmm13
movapd %xmm2,%xmm10
movapd %xmm2,%xmm14
addpd  %xmm6,%xmm10
subpd  %xmm6,%xmm14
movapd %xmm3,%xmm11
movapd %xmm3,%xmm15
addpd  %xmm7,%xmm11
subpd  %xmm7,%xmm15
movupd %xmm8,(%rbx)
movupd %xmm9,(%r8)
movupd %xmm10,(%rdx)
movupd %xmm11,(%rdi)
movupd %xmm12,0x0(%rbp)
movupd %xmm13,(%r9)
movupd %xmm14,(%rcx)
movupd %xmm15,(%rsi)
add    $0x2,%rax
add    $0x10,%rbx
cmp    $0x7fffffe,%rax
jb     3010 <helper_double_30_recursive+0x1f00>
add    $0xa8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
define void @helper_double_30_recursive(double* %0, i32 %1) {
switch i32 %1, label %220 [
i32 3, label %56
i32 6, label %3
i32 9, label %60
i32 12, label %80
i32 15, label %100
i32 18, label %120
i32 21, label %140
i32 24, label %160
i32 27, label %180
i32 30, label %200
]
3: ; preds = %2
%4 = getelementptr inbounds double, double* %0, i64 2
%5 = getelementptr inbounds double, double* %0, i64 4
%6 = getelementptr inbounds double, double* %0, i64 6
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %0, double* %4, double* %5, double* %6)
%7 = getelementptr inbounds double, double* %0, i64 8
%8 = getelementptr inbounds double, double* %0, i64 10
%9 = getelementptr inbounds double, double* %0, i64 12
%10 = getelementptr inbounds double, double* %0, i64 14
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %7, double* %8, double* %9, double* %10)
%11 = getelementptr inbounds double, double* %0, i64 16
%12 = getelementptr inbounds double, double* %0, i64 18
%13 = getelementptr inbounds double, double* %0, i64 20
%14 = getelementptr inbounds double, double* %0, i64 22
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %11, double* %12, double* %13, double* %14)
%15 = getelementptr inbounds double, double* %0, i64 24
%16 = getelementptr inbounds double, double* %0, i64 26
%17 = getelementptr inbounds double, double* %0, i64 28
%18 = getelementptr inbounds double, double* %0, i64 30
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %15, double* %16, double* %17, double* %18)
%19 = getelementptr inbounds double, double* %0, i64 32
%20 = getelementptr inbounds double, double* %0, i64 34
%21 = getelementptr inbounds double, double* %0, i64 36
%22 = getelementptr inbounds double, double* %0, i64 38
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %19, double* %20, double* %21, double* %22)
%23 = getelementptr inbounds double, double* %0, i64 40
%24 = getelementptr inbounds double, double* %0, i64 42
%25 = getelementptr inbounds double, double* %0, i64 44
%26 = getelementptr inbounds double, double* %0, i64 46
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %23, double* %24, double* %25, double* %26)
%27 = getelementptr inbounds double, double* %0, i64 48
%28 = getelementptr inbounds double, double* %0, i64 50
%29 = getelementptr inbounds double, double* %0, i64 52
%30 = getelementptr inbounds double, double* %0, i64 54
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %27, double* %28, double* %29, double* %30)
%31 = getelementptr inbounds double, double* %0, i64 56
%32 = getelementptr inbounds double, double* %0, i64 58
%33 = getelementptr inbounds double, double* %0, i64 60
%34 = getelementptr inbounds double, double* %0, i64 62
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %31, double* %32, double* %33, double* %34)
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %0, double* %7, double* %11, double* %15, double* %19, double* %23, double* %27, double* %31)
%35 = getelementptr inbounds double, double* %0, i64 10
%36 = getelementptr inbounds double, double* %0, i64 18
%37 = getelementptr inbounds double, double* %0, i64 26
%38 = getelementptr inbounds double, double* %0, i64 34
%39 = getelementptr inbounds double, double* %0, i64 42
%40 = getelementptr inbounds double, double* %0, i64 50
%41 = getelementptr inbounds double, double* %0, i64 58
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %4, double* %35, double* %36, double* %37, double* %38, double* %39, double* %40, double* %41)
%42 = getelementptr inbounds double, double* %0, i64 12
%43 = getelementptr inbounds double, double* %0, i64 20
%44 = getelementptr inbounds double, double* %0, i64 28
%45 = getelementptr inbounds double, double* %0, i64 36
%46 = getelementptr inbounds double, double* %0, i64 44
%47 = getelementptr inbounds double, double* %0, i64 52
%48 = getelementptr inbounds double, double* %0, i64 60
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %5, double* %42, double* %43, double* %44, double* %45, double* %46, double* %47, double* %48)
%49 = getelementptr inbounds double, double* %0, i64 14
%50 = getelementptr inbounds double, double* %0, i64 22
%51 = getelementptr inbounds double, double* %0, i64 30
%52 = getelementptr inbounds double, double* %0, i64 38
%53 = getelementptr inbounds double, double* %0, i64 46
%54 = getelementptr inbounds double, double* %0, i64 54
%55 = getelementptr inbounds double, double* %0, i64 62
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %6, double* %49, double* %50, double* %51, double* %52, double* %53, double* %54, double* %55)
br label %220
56: ; preds = %2
%57 = getelementptr inbounds double, double* %0, i64 2
%58 = getelementptr inbounds double, double* %0, i64 4
%59 = getelementptr inbounds double, double* %0, i64 6
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovapd %xmm0, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm0, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm0\0Amovapd %xmm1, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm1, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm1\0Amovapd %xmm2, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm2, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm2\0Amovapd %xmm3, %xmm8\0Ahaddpd %xmm8, %xmm8\0Amovapd %xmm3, %xmm9\0Ahsubpd %xmm9, %xmm9\0Ablendpd $$1, %xmm8, %xmm9\0Amovapd %xmm9, %xmm3\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovupd %xmm0, ($0)\0Amovupd %xmm1, ($1)\0Amovupd %xmm2, ($2)\0Amovupd %xmm3, ($3)\0A", "r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %0, double* %57, double* %58, double* %59)
br label %220
60: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 6)
%61 = getelementptr inbounds double, double* %0, i64 64
tail call void @helper_double_30_recursive(double* %61, i32 6)
%62 = getelementptr inbounds double, double* %0, i64 128
tail call void @helper_double_30_recursive(double* %62, i32 6)
%63 = getelementptr inbounds double, double* %0, i64 192
tail call void @helper_double_30_recursive(double* %63, i32 6)
%64 = getelementptr inbounds double, double* %0, i64 256
tail call void @helper_double_30_recursive(double* %64, i32 6)
%65 = getelementptr inbounds double, double* %0, i64 320
tail call void @helper_double_30_recursive(double* %65, i32 6)
%66 = getelementptr inbounds double, double* %0, i64 384
tail call void @helper_double_30_recursive(double* %66, i32 6)
%67 = getelementptr inbounds double, double* %0, i64 448
tail call void @helper_double_30_recursive(double* %67, i32 6)
br label %68
68: ; preds = %60, %68
%69 = phi i64 [ 0, %60 ], [ %78, %68 ]
%70 = getelementptr inbounds double, double* %0, i64 %69
%71 = getelementptr inbounds double, double* %70, i64 64
%72 = getelementptr inbounds double, double* %70, i64 128
%73 = getelementptr inbounds double, double* %70, i64 192
%74 = getelementptr inbounds double, double* %70, i64 256
%75 = getelementptr inbounds double, double* %70, i64 320
%76 = getelementptr inbounds double, double* %70, i64 384
%77 = getelementptr inbounds double, double* %70, i64 448
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %70, double* %71, double* %72, double* %73, double* %74, double* %75, double* %76, double* %77)
%78 = add nuw nsw i64 %69, 2
%79 = icmp ult i64 %69, 62
br i1 %79, label %68, label %220
80: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 9)
%81 = getelementptr inbounds double, double* %0, i64 512
tail call void @helper_double_30_recursive(double* %81, i32 9)
%82 = getelementptr inbounds double, double* %0, i64 1024
tail call void @helper_double_30_recursive(double* %82, i32 9)
%83 = getelementptr inbounds double, double* %0, i64 1536
tail call void @helper_double_30_recursive(double* %83, i32 9)
%84 = getelementptr inbounds double, double* %0, i64 2048
tail call void @helper_double_30_recursive(double* %84, i32 9)
%85 = getelementptr inbounds double, double* %0, i64 2560
tail call void @helper_double_30_recursive(double* %85, i32 9)
%86 = getelementptr inbounds double, double* %0, i64 3072
tail call void @helper_double_30_recursive(double* %86, i32 9)
%87 = getelementptr inbounds double, double* %0, i64 3584
tail call void @helper_double_30_recursive(double* %87, i32 9)
br label %88
88: ; preds = %80, %88
%89 = phi i64 [ 0, %80 ], [ %98, %88 ]
%90 = getelementptr inbounds double, double* %0, i64 %89
%91 = getelementptr inbounds double, double* %90, i64 512
%92 = getelementptr inbounds double, double* %90, i64 1024
%93 = getelementptr inbounds double, double* %90, i64 1536
%94 = getelementptr inbounds double, double* %90, i64 2048
%95 = getelementptr inbounds double, double* %90, i64 2560
%96 = getelementptr inbounds double, double* %90, i64 3072
%97 = getelementptr inbounds double, double* %90, i64 3584
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %90, double* %91, double* %92, double* %93, double* %94, double* %95, double* %96, double* %97)
%98 = add nuw nsw i64 %89, 2
%99 = icmp ult i64 %89, 510
br i1 %99, label %88, label %220
100: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 12)
%101 = getelementptr inbounds double, double* %0, i64 4096
tail call void @helper_double_30_recursive(double* %101, i32 12)
%102 = getelementptr inbounds double, double* %0, i64 8192
tail call void @helper_double_30_recursive(double* %102, i32 12)
%103 = getelementptr inbounds double, double* %0, i64 12288
tail call void @helper_double_30_recursive(double* %103, i32 12)
%104 = getelementptr inbounds double, double* %0, i64 16384
tail call void @helper_double_30_recursive(double* %104, i32 12)
%105 = getelementptr inbounds double, double* %0, i64 20480
tail call void @helper_double_30_recursive(double* %105, i32 12)
%106 = getelementptr inbounds double, double* %0, i64 24576
tail call void @helper_double_30_recursive(double* %106, i32 12)
%107 = getelementptr inbounds double, double* %0, i64 28672
tail call void @helper_double_30_recursive(double* %107, i32 12)
br label %108
108: ; preds = %100, %108
%109 = phi i64 [ 0, %100 ], [ %118, %108 ]
%110 = getelementptr inbounds double, double* %0, i64 %109
%111 = getelementptr inbounds double, double* %110, i64 4096
%112 = getelementptr inbounds double, double* %110, i64 8192
%113 = getelementptr inbounds double, double* %110, i64 12288
%114 = getelementptr inbounds double, double* %110, i64 16384
%115 = getelementptr inbounds double, double* %110, i64 20480
%116 = getelementptr inbounds double, double* %110, i64 24576
%117 = getelementptr inbounds double, double* %110, i64 28672
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %110, double* %111, double* %112, double* %113, double* %114, double* %115, double* %116, double* %117)
%118 = add nuw nsw i64 %109, 2
%119 = icmp ult i64 %109, 4094
br i1 %119, label %108, label %220
120: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 15)
%121 = getelementptr inbounds double, double* %0, i64 32768
tail call void @helper_double_30_recursive(double* %121, i32 15)
%122 = getelementptr inbounds double, double* %0, i64 65536
tail call void @helper_double_30_recursive(double* %122, i32 15)
%123 = getelementptr inbounds double, double* %0, i64 98304
tail call void @helper_double_30_recursive(double* %123, i32 15)
%124 = getelementptr inbounds double, double* %0, i64 131072
tail call void @helper_double_30_recursive(double* %124, i32 15)
%125 = getelementptr inbounds double, double* %0, i64 163840
tail call void @helper_double_30_recursive(double* %125, i32 15)
%126 = getelementptr inbounds double, double* %0, i64 196608
tail call void @helper_double_30_recursive(double* %126, i32 15)
%127 = getelementptr inbounds double, double* %0, i64 229376
tail call void @helper_double_30_recursive(double* %127, i32 15)
br label %128
128: ; preds = %120, %128
%129 = phi i64 [ 0, %120 ], [ %138, %128 ]
%130 = getelementptr inbounds double, double* %0, i64 %129
%131 = getelementptr inbounds double, double* %130, i64 32768
%132 = getelementptr inbounds double, double* %130, i64 65536
%133 = getelementptr inbounds double, double* %130, i64 98304
%134 = getelementptr inbounds double, double* %130, i64 131072
%135 = getelementptr inbounds double, double* %130, i64 163840
%136 = getelementptr inbounds double, double* %130, i64 196608
%137 = getelementptr inbounds double, double* %130, i64 229376
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %130, double* %131, double* %132, double* %133, double* %134, double* %135, double* %136, double* %137)
%138 = add nuw nsw i64 %129, 2
%139 = icmp ult i64 %129, 32766
br i1 %139, label %128, label %220
140: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 18)
%141 = getelementptr inbounds double, double* %0, i64 262144
tail call void @helper_double_30_recursive(double* %141, i32 18)
%142 = getelementptr inbounds double, double* %0, i64 524288
tail call void @helper_double_30_recursive(double* %142, i32 18)
%143 = getelementptr inbounds double, double* %0, i64 786432
tail call void @helper_double_30_recursive(double* %143, i32 18)
%144 = getelementptr inbounds double, double* %0, i64 1048576
tail call void @helper_double_30_recursive(double* %144, i32 18)
%145 = getelementptr inbounds double, double* %0, i64 1310720
tail call void @helper_double_30_recursive(double* %145, i32 18)
%146 = getelementptr inbounds double, double* %0, i64 1572864
tail call void @helper_double_30_recursive(double* %146, i32 18)
%147 = getelementptr inbounds double, double* %0, i64 1835008
tail call void @helper_double_30_recursive(double* %147, i32 18)
br label %148
148: ; preds = %140, %148
%149 = phi i64 [ 0, %140 ], [ %158, %148 ]
%150 = getelementptr inbounds double, double* %0, i64 %149
%151 = getelementptr inbounds double, double* %150, i64 262144
%152 = getelementptr inbounds double, double* %150, i64 524288
%153 = getelementptr inbounds double, double* %150, i64 786432
%154 = getelementptr inbounds double, double* %150, i64 1048576
%155 = getelementptr inbounds double, double* %150, i64 1310720
%156 = getelementptr inbounds double, double* %150, i64 1572864
%157 = getelementptr inbounds double, double* %150, i64 1835008
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %150, double* %151, double* %152, double* %153, double* %154, double* %155, double* %156, double* %157)
%158 = add nuw nsw i64 %149, 2
%159 = icmp ult i64 %149, 262142
br i1 %159, label %148, label %220
160: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 21)
%161 = getelementptr inbounds double, double* %0, i64 2097152
tail call void @helper_double_30_recursive(double* %161, i32 21)
%162 = getelementptr inbounds double, double* %0, i64 4194304
tail call void @helper_double_30_recursive(double* %162, i32 21)
%163 = getelementptr inbounds double, double* %0, i64 6291456
tail call void @helper_double_30_recursive(double* %163, i32 21)
%164 = getelementptr inbounds double, double* %0, i64 8388608
tail call void @helper_double_30_recursive(double* %164, i32 21)
%165 = getelementptr inbounds double, double* %0, i64 10485760
tail call void @helper_double_30_recursive(double* %165, i32 21)
%166 = getelementptr inbounds double, double* %0, i64 12582912
tail call void @helper_double_30_recursive(double* %166, i32 21)
%167 = getelementptr inbounds double, double* %0, i64 14680064
tail call void @helper_double_30_recursive(double* %167, i32 21)
br label %168
168: ; preds = %160, %168
%169 = phi i64 [ 0, %160 ], [ %178, %168 ]
%170 = getelementptr inbounds double, double* %0, i64 %169
%171 = getelementptr inbounds double, double* %170, i64 2097152
%172 = getelementptr inbounds double, double* %170, i64 4194304
%173 = getelementptr inbounds double, double* %170, i64 6291456
%174 = getelementptr inbounds double, double* %170, i64 8388608
%175 = getelementptr inbounds double, double* %170, i64 10485760
%176 = getelementptr inbounds double, double* %170, i64 12582912
%177 = getelementptr inbounds double, double* %170, i64 14680064
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %170, double* %171, double* %172, double* %173, double* %174, double* %175, double* %176, double* %177)
%178 = add nuw nsw i64 %169, 2
%179 = icmp ult i64 %169, 2097150
br i1 %179, label %168, label %220
180: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 24)
%181 = getelementptr inbounds double, double* %0, i64 16777216
tail call void @helper_double_30_recursive(double* %181, i32 24)
%182 = getelementptr inbounds double, double* %0, i64 33554432
tail call void @helper_double_30_recursive(double* %182, i32 24)
%183 = getelementptr inbounds double, double* %0, i64 50331648
tail call void @helper_double_30_recursive(double* %183, i32 24)
%184 = getelementptr inbounds double, double* %0, i64 67108864
tail call void @helper_double_30_recursive(double* %184, i32 24)
%185 = getelementptr inbounds double, double* %0, i64 83886080
tail call void @helper_double_30_recursive(double* %185, i32 24)
%186 = getelementptr inbounds double, double* %0, i64 100663296
tail call void @helper_double_30_recursive(double* %186, i32 24)
%187 = getelementptr inbounds double, double* %0, i64 117440512
tail call void @helper_double_30_recursive(double* %187, i32 24)
br label %188
188: ; preds = %180, %188
%189 = phi i64 [ 0, %180 ], [ %198, %188 ]
%190 = getelementptr inbounds double, double* %0, i64 %189
%191 = getelementptr inbounds double, double* %190, i64 16777216
%192 = getelementptr inbounds double, double* %190, i64 33554432
%193 = getelementptr inbounds double, double* %190, i64 50331648
%194 = getelementptr inbounds double, double* %190, i64 67108864
%195 = getelementptr inbounds double, double* %190, i64 83886080
%196 = getelementptr inbounds double, double* %190, i64 100663296
%197 = getelementptr inbounds double, double* %190, i64 117440512
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %190, double* %191, double* %192, double* %193, double* %194, double* %195, double* %196, double* %197)
%198 = add nuw nsw i64 %189, 2
%199 = icmp ult i64 %189, 16777214
br i1 %199, label %188, label %220
200: ; preds = %2
tail call void @helper_double_30_recursive(double* %0, i32 27)
%201 = getelementptr inbounds double, double* %0, i64 134217728
tail call void @helper_double_30_recursive(double* %201, i32 27)
%202 = getelementptr inbounds double, double* %0, i64 268435456
tail call void @helper_double_30_recursive(double* %202, i32 27)
%203 = getelementptr inbounds double, double* %0, i64 402653184
tail call void @helper_double_30_recursive(double* %203, i32 27)
%204 = getelementptr inbounds double, double* %0, i64 536870912
tail call void @helper_double_30_recursive(double* %204, i32 27)
%205 = getelementptr inbounds double, double* %0, i64 671088640
tail call void @helper_double_30_recursive(double* %205, i32 27)
%206 = getelementptr inbounds double, double* %0, i64 805306368
tail call void @helper_double_30_recursive(double* %206, i32 27)
%207 = getelementptr inbounds double, double* %0, i64 939524096
tail call void @helper_double_30_recursive(double* %207, i32 27)
br label %208
208: ; preds = %200, %208
%209 = phi i64 [ 0, %200 ], [ %218, %208 ]
%210 = getelementptr inbounds double, double* %0, i64 %209
%211 = getelementptr inbounds double, double* %210, i64 134217728
%212 = getelementptr inbounds double, double* %210, i64 268435456
%213 = getelementptr inbounds double, double* %210, i64 402653184
%214 = getelementptr inbounds double, double* %210, i64 536870912
%215 = getelementptr inbounds double, double* %210, i64 671088640
%216 = getelementptr inbounds double, double* %210, i64 805306368
%217 = getelementptr inbounds double, double* %210, i64 939524096
tail call void asm sideeffect "movupd ($0), %xmm0\0Amovupd ($1), %xmm1\0Amovupd ($2), %xmm2\0Amovupd ($3), %xmm3\0Amovupd ($4), %xmm4\0Amovupd ($5), %xmm5\0Amovupd ($6), %xmm6\0Amovupd ($7), %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm9\0Aaddpd %xmm1, %xmm8\0Asubpd %xmm1, %xmm9\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm11\0Aaddpd %xmm3, %xmm10\0Asubpd %xmm3, %xmm11\0Amovapd %xmm4, %xmm12\0Amovapd %xmm4, %xmm13\0Aaddpd %xmm5, %xmm12\0Asubpd %xmm5, %xmm13\0Amovapd %xmm6, %xmm14\0Amovapd %xmm6, %xmm15\0Aaddpd %xmm7, %xmm14\0Asubpd %xmm7, %xmm15\0Amovapd %xmm8, %xmm0\0Amovapd %xmm8, %xmm2\0Aaddpd %xmm10, %xmm0\0Asubpd %xmm10, %xmm2\0Amovapd %xmm9, %xmm1\0Amovapd %xmm9, %xmm3\0Aaddpd %xmm11, %xmm1\0Asubpd %xmm11, %xmm3\0Amovapd %xmm12, %xmm4\0Amovapd %xmm12, %xmm6\0Aaddpd %xmm14, %xmm4\0Asubpd %xmm14, %xmm6\0Amovapd %xmm13, %xmm5\0Amovapd %xmm13, %xmm7\0Aaddpd %xmm15, %xmm5\0Asubpd %xmm15, %xmm7\0Amovapd %xmm0, %xmm8\0Amovapd %xmm0, %xmm12\0Aaddpd %xmm4, %xmm8\0Asubpd %xmm4, %xmm12\0Amovapd %xmm1, %xmm9\0Amovapd %xmm1, %xmm13\0Aaddpd %xmm5, %xmm9\0Asubpd %xmm5, %xmm13\0Amovapd %xmm2, %xmm10\0Amovapd %xmm2, %xmm14\0Aaddpd %xmm6, %xmm10\0Asubpd %xmm6, %xmm14\0Amovapd %xmm3, %xmm11\0Amovapd %xmm3, %xmm15\0Aaddpd %xmm7, %xmm11\0Asubpd %xmm7, %xmm15\0Amovupd %xmm8, ($0)\0Amovupd %xmm9, ($1)\0Amovupd %xmm10, ($2)\0Amovupd %xmm11, ($3)\0Amovupd %xmm12, ($4)\0Amovupd %xmm13, ($5)\0Amovupd %xmm14, ($6)\0Amovupd %xmm15, ($7)\0A", "r,r,r,r,r,r,r,r,~{xmm0},~{xmm1},~{xmm2},~{xmm3},~{xmm4},~{xmm5},~{xmm6},~{xmm7},~{xmm8},~{xmm9},~{xmm10},~{xmm11},~{xmm12},~{xmm13},~{xmm14},~{xmm15},~{memory},~{dirflag},~{fpsr},~{flags}"(double* %210, double* %211, double* %212, double* %213, double* %214, double* %215, double* %216, double* %217)
%218 = add nuw nsw i64 %209, 2
%219 = icmp ult i64 %209, 134217726
br i1 %219, label %208, label %220
220: ; preds = %208, %188, %168, %148, %128, %108, %88, %68, %3, %56, %2
ret void
}