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

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
double sqrt(double);
void safeEucldNorm(double *a, double *b, double *d) {
  if (a[0] > 0.0) {
    if (b[0] > 0.0) {
      if (a[0] > b[0]) {
        if (350.0 * b[0] < a[0]) {
          d[0] = b[0] / a[0];
          d[0] = a[0] + 0.5 * b[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (110.0 * b[0] < a[0]) {
          d[0] = b[0] / a[0];
          d[0] =
              a[0] + 0.5 * b[0] * d[0] *
                         (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = b[0] / a[0];
          d[0] = a[0] * sqrt(1.0 + d[0] * d[0]);
        }
      } else {
        if (350.0 * a[0] < b[0]) {
          d[0] = a[0] / b[0];
          d[0] = b[0] + 0.5 * a[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (110.0 * a[0] < b[0]) {
          d[0] = a[0] / b[0];
          d[0] =
              b[0] + 0.5 * a[0] * d[0] *
                         (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = a[0] / b[0];
          d[0] = b[0] * sqrt(1.0 + d[0] * d[0]);
        }
      }
    } else {
      if (a[0] > -b[0]) {
        if (a[0] > -350.0 * b[0]) {
          d[0] = b[0] / a[0];
          d[0] = a[0] + 0.5 * b[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (a[0] > -110.0 * b[0]) {
          d[0] = b[0] / a[0];
          d[0] =
              a[0] + 0.5 * b[0] * d[0] *
                         (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = b[0] / a[0];
          d[0] = a[0] * sqrt(1.0 + d[0] * d[0]);
        }
      } else {
        if (b[0] < -350.0 * a[0]) {
          d[0] = a[0] / b[0];
          d[0] = -b[0] - 0.5 * a[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (b[0] < -110.0 * a[0]) {
          d[0] = a[0] / b[0];
          d[0] = -b[0] -
                 0.5 * a[0] * d[0] *
                     (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = a[0] / b[0];
          d[0] = -b[0] * sqrt(1.0 + d[0] * d[0]);
        }
      }
    }
  } else {
    if (b[0] > 0.0) {
      if (a[0] < -b[0]) {
        if (a[0] < -350.0 * b[0]) {
          d[0] = b[0] / a[0];
          d[0] = -a[0] - 0.5 * b[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (a[0] < -110.0 * b[0]) {
          d[0] = b[0] / a[0];
          d[0] = -a[0] -
                 0.5 * b[0] * d[0] *
                     (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = b[0] / a[0];
          d[0] = -a[0] * sqrt(1.0 + d[0] * d[0]);
        }
      } else {
        if (b[0] > -350.0 * a[0]) {
          d[0] = a[0] / b[0];
          d[0] = b[0] + 0.5 * a[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (b[0] > -110.0 * a[0]) {
          d[0] = a[0] / b[0];
          d[0] =
              b[0] + 0.5 * a[0] * d[0] *
                         (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = a[0] / b[0];
          d[0] = b[0] * sqrt(1.0 + d[0] * d[0]);
        }
      }
    } else {
      if (a[0] < b[0]) {
        if (350.0 * b[0] > a[0]) {
          d[0] = b[0] / a[0];
          d[0] = -a[0] - 0.5 * b[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (110.0 * b[0] > a[0]) {
          d[0] = b[0] / a[0];
          d[0] = -a[0] -
                 0.5 * b[0] * d[0] *
                     (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = b[0] / a[0];
          d[0] = -a[0] * sqrt(1.0 + d[0] * d[0]);
        }
      } else {
        if (b[0] > -1.0e-300) {
          d[0] = 1.0e-300;
        } else if (350.0 * a[0] > b[0]) {
          d[0] = a[0] / b[0];
          d[0] = -b[0] - 0.5 * a[0] * d[0] * (1.0 - 0.25 * d[0] * d[0]);
        } else if (110.0 * a[0] > b[0]) {
          d[0] = a[0] / b[0];
          d[0] = -b[0] -
                 0.5 * a[0] * d[0] *
                     (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
        } else {
          d[0] = a[0] / b[0];
          d[0] = -b[0] * sqrt(1.0 + d[0] * d[0]);
        }
      }
    }
  }
  return;
}


x86 assembly (clang, -O0):
<safeEucldNorm>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    197b <safeEucldNorm+0x86b>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    151b <safeEucldNorm+0x40b>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    133d <safeEucldNorm+0x22d>
mov    -0x10(%rbp),%rax
movsd  0x1e98(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1212 <safeEucldNorm+0x102>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x1e7e(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1e56(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x1e1f(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1338 <safeEucldNorm+0x228>
mov    -0x10(%rbp),%rax
movsd  0x1df2(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    12d5 <safeEucldNorm+0x1c5>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x1dd0(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1db8(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1d98(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x1d84(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1d5c(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1333 <safeEucldNorm+0x223>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1d02(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1338 <safeEucldNorm+0x228>
jmp    1516 <safeEucldNorm+0x406>
mov    -0x8(%rbp),%rax
movsd  0x1cbf(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    13eb <safeEucldNorm+0x2db>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x1ca5(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1c7d(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x1c46(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1511 <safeEucldNorm+0x401>
mov    -0x8(%rbp),%rax
movsd  0x1c19(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    14ae <safeEucldNorm+0x39e>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x1bf7(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1bdf(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1bbf(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x1bab(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1b83(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    150c <safeEucldNorm+0x3fc>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1b29(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x28(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1511 <safeEucldNorm+0x401>
jmp    1516 <safeEucldNorm+0x406>
jmp    1976 <safeEucldNorm+0x866>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
ucomisd %xmm1,%xmm0
jbe    1725 <safeEucldNorm+0x615>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x1ae0(%rip),%xmm1
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    15fa <safeEucldNorm+0x4ea>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x1a96(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1a6e(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x1a37(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1720 <safeEucldNorm+0x610>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x1a3a(%rip),%xmm1
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    16bd <safeEucldNorm+0x5ad>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x19e8(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x19d0(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x19b0(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x199c(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1974(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    171b <safeEucldNorm+0x60b>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x191a(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1720 <safeEucldNorm+0x610>
jmp    1971 <safeEucldNorm+0x861>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x1907(%rip),%xmm0
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1801 <safeEucldNorm+0x6f1>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18a6(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x187e(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x1847(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    196c <safeEucldNorm+0x85c>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x1833(%rip),%xmm0
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    18f2 <safeEucldNorm+0x7e2>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x17ca(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x17b2(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1792(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x177e(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x1756(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1967 <safeEucldNorm+0x857>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x16ce(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    196c <safeEucldNorm+0x85c>
jmp    1971 <safeEucldNorm+0x861>
jmp    1976 <safeEucldNorm+0x866>
jmp    22cb <safeEucldNorm+0x11bb>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    1deb <safeEucldNorm+0xcdb>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
ucomisd %xmm1,%xmm0
jbe    1c0d <safeEucldNorm+0xafd>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x166b(%rip),%xmm0
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1a9d <safeEucldNorm+0x98d>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x160a(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x15e2(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x15ab(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1c08 <safeEucldNorm+0xaf8>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x1597(%rip),%xmm0
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1b8e <safeEucldNorm+0xa7e>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x152e(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x1516(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x14f6(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x14e2(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x14ba(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1c03 <safeEucldNorm+0xaf3>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1432(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x40(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1c08 <safeEucldNorm+0xaf8>
jmp    1de6 <safeEucldNorm+0xcd6>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x141f(%rip),%xmm1
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1cbb <safeEucldNorm+0xbab>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x13d5(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x13ad(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x1376(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1de1 <safeEucldNorm+0xcd1>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0x1379(%rip),%xmm1
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1d7e <safeEucldNorm+0xc6e>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x1327(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x130f(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x12ef(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x12db(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x12b3(%rip),%xmm3
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1ddc <safeEucldNorm+0xccc>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1259(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x48(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1de1 <safeEucldNorm+0xcd1>
jmp    1de6 <safeEucldNorm+0xcd6>
jmp    22c6 <safeEucldNorm+0x11b6>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    2049 <safeEucldNorm+0xf39>
mov    -0x10(%rbp),%rax
movsd  0x11f7(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    1edd <safeEucldNorm+0xdcd>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x11ca(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x11a2(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0x116b(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    2044 <safeEucldNorm+0xf34>
mov    -0x10(%rbp),%rax
movsd  0x1127(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    1fca <safeEucldNorm+0xeba>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x10(%rbp),%rax
movsd  0x10f2(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0x10da(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x10ba(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0x10a6(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0x107e(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    203f <safeEucldNorm+0xf2f>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x8(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xff6(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x50(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    2044 <safeEucldNorm+0xf34>
jmp    22c1 <safeEucldNorm+0x11b1>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0xfa7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    2078 <safeEucldNorm+0xf68>
mov    -0x18(%rbp),%rax
movsd  0xfc9(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    22bc <safeEucldNorm+0x11ac>
mov    -0x8(%rbp),%rax
movsd  0xf84(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    2150 <safeEucldNorm+0x1040>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xf57(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0xf2f(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm2
movsd  0xef8(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    22b7 <safeEucldNorm+0x11a7>
mov    -0x8(%rbp),%rax
movsd  0xeb4(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
ucomisd (%rax),%xmm0
jbe    223d <safeEucldNorm+0x112d>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xe7f(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  0xe67(%rip),%xmm2
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0xe47(%rip),%xmm3
addsd  %xmm3,%xmm2
movsd  0xe33(%rip),%xmm3
mulsd  %xmm3,%xmm2
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm2
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm3,%xmm2
movsd  0xe0b(%rip),%xmm3
addsd  %xmm3,%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    22b2 <safeEucldNorm+0x11a2>
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
divsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd83(%rip),%xmm1
addsd  %xmm1,%xmm0
call   1030 <sqrt@plt>
movaps %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    22b7 <safeEucldNorm+0x11a7>
jmp    22bc <safeEucldNorm+0x11ac>
jmp    22c1 <safeEucldNorm+0x11b1>
jmp    22c6 <safeEucldNorm+0x11b6>
jmp    22cb <safeEucldNorm+0x11bb>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<safeEucldNorm>:
push   %rbx
sub    $0x10,%rsp
mov    %rdx,%rbx
movsd  (%rdi),%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm0
movsd  (%rsi),%xmm1
jbe    1159 <safeEucldNorm+0x49>
ucomisd %xmm2,%xmm1
jbe    119c <safeEucldNorm+0x8c>
movsd  0xed8(%rip),%xmm2
ucomisd %xmm1,%xmm0
jbe    1262 <safeEucldNorm+0x152>
mulsd  %xmm1,%xmm2
ucomisd %xmm2,%xmm0
ja     11c8 <safeEucldNorm+0xb8>
movsd  0xec4(%rip),%xmm2
jmp    1312 <safeEucldNorm+0x202>
ucomisd %xmm2,%xmm1
jbe    1205 <safeEucldNorm+0xf5>
movapd 0xef5(%rip),%xmm2
xorpd  %xmm1,%xmm2
ucomisd %xmm0,%xmm2
jbe    1279 <safeEucldNorm+0x169>
movsd  0xecf(%rip),%xmm2
mulsd  %xmm1,%xmm2
ucomisd %xmm0,%xmm2
ja     1225 <safeEucldNorm+0x115>
movsd  0xec1(%rip),%xmm2
jmp    137d <safeEucldNorm+0x26d>
movapd 0xebc(%rip),%xmm2
xorpd  %xmm1,%xmm2
ucomisd %xmm2,%xmm0
jbe    12cc <safeEucldNorm+0x1bc>
movsd  0xe96(%rip),%xmm2
mulsd  %xmm1,%xmm2
ucomisd %xmm2,%xmm0
jbe    130a <safeEucldNorm+0x1fa>
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  (%rsi),%xmm0
mulsd  0xe4c(%rip),%xmm0
movsd  0xe64(%rip),%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm1,%xmm3
addsd  0xe2c(%rip),%xmm3
mulsd  %xmm1,%xmm0
mulsd  %xmm0,%xmm3
addsd  (%rdi),%xmm3
jmp    15de <safeEucldNorm+0x4ce>
ucomisd %xmm0,%xmm1
jbe    12ef <safeEucldNorm+0x1df>
movsd  0xdf9(%rip),%xmm2
mulsd  %xmm1,%xmm2
ucomisd %xmm0,%xmm2
jbe    1375 <safeEucldNorm+0x265>
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  (%rsi),%xmm3
movsd  0xe0f(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
addsd  0xdd7(%rip),%xmm0
mulsd  0xdef(%rip),%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm3
subsd  (%rdi),%xmm3
jmp    15de <safeEucldNorm+0x4ce>
mulsd  %xmm0,%xmm2
ucomisd %xmm2,%xmm1
ja     128f <safeEucldNorm+0x17f>
movsd  0xda4(%rip),%xmm2
jmp    13f4 <safeEucldNorm+0x2e4>
movsd  0xdcf(%rip),%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm2,%xmm1
jbe    13ec <safeEucldNorm+0x2dc>
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx)
movsd  (%rdi),%xmm1
mulsd  0xd85(%rip),%xmm1
movsd  0xd9d(%rip),%xmm3
mulsd  %xmm0,%xmm3
mulsd  %xmm0,%xmm3
addsd  0xd65(%rip),%xmm3
mulsd  %xmm0,%xmm1
mulsd  %xmm1,%xmm3
addsd  (%rsi),%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xd7c(%rip),%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm1,%xmm2
ja     146d <safeEucldNorm+0x35d>
movsd  0xd6e(%rip),%xmm2
jmp    1526 <safeEucldNorm+0x416>
ucomisd 0xd11(%rip),%xmm1
jbe    1457 <safeEucldNorm+0x347>
movsd  0xcfb(%rip),%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xd46(%rip),%xmm2
mulsd  %xmm1,%xmm2
ucomisd %xmm2,%xmm0
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  (%rdi),%xmm3
jbe    14aa <safeEucldNorm+0x39a>
movsd  0xcf4(%rip),%xmm0
movsd  (%rsi),%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
addsd  0xce0(%rip),%xmm0
mulsd  0xce0(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
addsd  0xcb8(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm0,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xc9b(%rip),%xmm2
mulsd  %xmm1,%xmm2
ucomisd %xmm0,%xmm2
divsd  %xmm0,%xmm1
movsd  %xmm1,(%rbx)
movsd  (%rdi),%xmm2
xorpd  0xcc7(%rip),%xmm2
jbe    14d4 <safeEucldNorm+0x3c4>
movsd  (%rsi),%xmm3
movsd  0xc7d(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
addsd  0xc75(%rip),%xmm0
mulsd  0xc75(%rip),%xmm0
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
addsd  0xc4d(%rip),%xmm0
mulsd  0xc65(%rip),%xmm3
mulsd  %xmm1,%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm2,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xc64(%rip),%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx)
movsd  (%rsi),%xmm3
jbe    14f7 <safeEucldNorm+0x3e7>
movsd  0xc12(%rip),%xmm1
movsd  (%rdi),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0xbfe(%rip),%xmm1
mulsd  0xbfe(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0xbd6(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm1,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xbb1(%rip),%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm1,%xmm2
jbe    151e <safeEucldNorm+0x40e>
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx)
movsd  (%rdi),%xmm3
movsd  0xbc7(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0xb8f(%rip),%xmm1
mulsd  0xba7(%rip),%xmm3
mulsd  %xmm0,%xmm3
mulsd  %xmm1,%xmm3
subsd  (%rsi),%xmm3
jmp    15de <safeEucldNorm+0x4ce>
mulsd  %xmm1,%xmm1
addsd  0xb6a(%rip),%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jb     15aa <safeEucldNorm+0x49a>
xorps  %xmm0,%xmm0
sqrtsd %xmm1,%xmm0
mulsd  %xmm0,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
mulsd  %xmm1,%xmm1
addsd  0xb40(%rip),%xmm1
xorpd  %xmm0,%xmm0
ucomisd %xmm0,%xmm1
jb     15c3 <safeEucldNorm+0x4b3>
sqrtsd %xmm1,%xmm3
jmp    15da <safeEucldNorm+0x4ca>
mulsd  %xmm0,%xmm0
addsd  0xb1d(%rip),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     15ae <safeEucldNorm+0x49e>
sqrtsd %xmm0,%xmm0
mulsd  %xmm0,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movsd  0xaf2(%rip),%xmm2
mulsd  %xmm0,%xmm2
ucomisd %xmm1,%xmm2
divsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx)
movsd  (%rsi),%xmm2
xorpd  0xb1e(%rip),%xmm2
jbe    158e <safeEucldNorm+0x47e>
movsd  (%rdi),%xmm3
movsd  0xad8(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0xad0(%rip),%xmm1
mulsd  0xad0(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
addsd  0xaa8(%rip),%xmm1
mulsd  0xac0(%rip),%xmm3
mulsd  %xmm0,%xmm3
mulsd  %xmm1,%xmm3
addsd  %xmm2,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
mulsd  %xmm0,%xmm0
addsd  0xa86(%rip),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     15c7 <safeEucldNorm+0x4b7>
sqrtsd %xmm0,%xmm3
jmp    15da <safeEucldNorm+0x4ca>
movapd %xmm1,%xmm0
movsd  %xmm3,(%rsp)
call   1030 <sqrt@plt>
movsd  (%rsp),%xmm3
mulsd  %xmm0,%xmm3
jmp    15de <safeEucldNorm+0x4ce>
movapd %xmm1,%xmm0
movapd %xmm2,(%rsp)
call   1030 <sqrt@plt>
movapd (%rsp),%xmm2
movapd %xmm0,%xmm3
mulsd  %xmm2,%xmm3
movsd  %xmm3,(%rbx)
add    $0x10,%rsp
pop    %rbx
ret

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

LLVM IR (-O2):
define void @safeEucldNorm(double* %0, double* %1, double* writeonly %2) {
%4 = load double, double* %0
%5 = fcmp ogt double %4, 0.000000e+00
%6 = load double, double* %1
%7 = fcmp ogt double %6, 0.000000e+00
br i1 %5, label %8, label %140
8: ; preds = %3
br i1 %7, label %9, label %73
9: ; preds = %8
%10 = fcmp ogt double %4, %6
br i1 %10, label %11, label %42
11: ; preds = %9
%12 = fmul double %6, 3.500000e+02
%13 = fcmp olt double %12, %4
br i1 %13, label %14, label %23
14: ; preds = %11
%15 = fdiv double %6, %4
store double %15, double* %2
%16 = load double, double* %0
%17 = load double, double* %1
%18 = fmul double %17, 5.000000e-01
%19 = fmul double %15, %18
%20 = fmul double %15, -2.500000e-01
%21 = tail call double @llvm.fmuladd.f64(double %20, double %15, double 1.000000e+00)
%22 = tail call double @llvm.fmuladd.f64(double %19, double %21, double %16)
br label %278
23: ; preds = %11
%24 = fmul double %6, 1.100000e+02
%25 = fcmp olt double %24, %4
%26 = fdiv double %6, %4
store double %26, double* %2
%27 = load double, double* %0
br i1 %25, label %28, label %38
28: ; preds = %23
%29 = load double, double* %1
%30 = fmul double %29, 5.000000e-01
%31 = fmul double %26, %30
%32 = fmul double %26, 5.000000e-01
%33 = tail call double @llvm.fmuladd.f64(double %32, double %26, double -1.000000e+00)
%34 = fmul double %33, 2.500000e-01
%35 = fmul double %26, %34
%36 = tail call double @llvm.fmuladd.f64(double %35, double %26, double 1.000000e+00)
%37 = tail call double @llvm.fmuladd.f64(double %31, double %36, double %27)
br label %278
38: ; preds = %23
%39 = tail call double @llvm.fmuladd.f64(double %26, double %26, double 1.000000e+00)
%40 = tail call double @sqrt(double %39)
%41 = fmul double %27, %40
br label %278
42: ; preds = %9
%43 = fmul double %4, 3.500000e+02
%44 = fcmp olt double %43, %6
br i1 %44, label %45, label %54
45: ; preds = %42
%46 = fdiv double %4, %6
store double %46, double* %2
%47 = load double, double* %1
%48 = load double, double* %0
%49 = fmul double %48, 5.000000e-01
%50 = fmul double %46, %49
%51 = fmul double %46, -2.500000e-01
%52 = tail call double @llvm.fmuladd.f64(double %51, double %46, double 1.000000e+00)
%53 = tail call double @llvm.fmuladd.f64(double %50, double %52, double %47)
br label %278
54: ; preds = %42
%55 = fmul double %4, 1.100000e+02
%56 = fcmp olt double %55, %6
%57 = fdiv double %4, %6
store double %57, double* %2
%58 = load double, double* %1
br i1 %56, label %59, label %69
59: ; preds = %54
%60 = load double, double* %0
%61 = fmul double %60, 5.000000e-01
%62 = fmul double %57, %61
%63 = fmul double %57, 5.000000e-01
%64 = tail call double @llvm.fmuladd.f64(double %63, double %57, double -1.000000e+00)
%65 = fmul double %64, 2.500000e-01
%66 = fmul double %57, %65
%67 = tail call double @llvm.fmuladd.f64(double %66, double %57, double 1.000000e+00)
%68 = tail call double @llvm.fmuladd.f64(double %62, double %67, double %58)
br label %278
69: ; preds = %54
%70 = tail call double @llvm.fmuladd.f64(double %57, double %57, double 1.000000e+00)
%71 = tail call double @sqrt(double %70)
%72 = fmul double %58, %71
br label %278
73: ; preds = %8
%74 = fneg double %6
%75 = fcmp ogt double %4, %74
br i1 %75, label %76, label %107
76: ; preds = %73
%77 = fmul double %6, -3.500000e+02
%78 = fcmp ogt double %4, %77
br i1 %78, label %79, label %88
79: ; preds = %76
%80 = fdiv double %6, %4
store double %80, double* %2
%81 = load double, double* %0
%82 = load double, double* %1
%83 = fmul double %82, 5.000000e-01
%84 = fmul double %80, %83
%85 = fmul double %80, -2.500000e-01
%86 = tail call double @llvm.fmuladd.f64(double %85, double %80, double 1.000000e+00)
%87 = tail call double @llvm.fmuladd.f64(double %84, double %86, double %81)
br label %278
88: ; preds = %76
%89 = fmul double %6, -1.100000e+02
%90 = fcmp ogt double %4, %89
%91 = fdiv double %6, %4
store double %91, double* %2
%92 = load double, double* %0
br i1 %90, label %93, label %103
93: ; preds = %88
%94 = load double, double* %1
%95 = fmul double %94, 5.000000e-01
%96 = fmul double %91, %95
%97 = fmul double %91, 5.000000e-01
%98 = tail call double @llvm.fmuladd.f64(double %97, double %91, double -1.000000e+00)
%99 = fmul double %98, 2.500000e-01
%100 = fmul double %91, %99
%101 = tail call double @llvm.fmuladd.f64(double %100, double %91, double 1.000000e+00)
%102 = tail call double @llvm.fmuladd.f64(double %96, double %101, double %92)
br label %278
103: ; preds = %88
%104 = tail call double @llvm.fmuladd.f64(double %91, double %91, double 1.000000e+00)
%105 = tail call double @sqrt(double %104)
%106 = fmul double %92, %105
br label %278
107: ; preds = %73
%108 = fmul double %4, -3.500000e+02
%109 = fcmp olt double %6, %108
br i1 %109, label %110, label %120
110: ; preds = %107
%111 = fdiv double %4, %6
store double %111, double* %2
%112 = load double, double* %1
%113 = fneg double %112
%114 = load double, double* %0
%115 = fmul double %111, -2.500000e-01
%116 = tail call double @llvm.fmuladd.f64(double %115, double %111, double 1.000000e+00)
%117 = fmul double %114, -5.000000e-01
%118 = fmul double %111, %117
%119 = tail call double @llvm.fmuladd.f64(double %118, double %116, double %113)
br label %278
120: ; preds = %107
%121 = fmul double %4, -1.100000e+02
%122 = fcmp olt double %6, %121
%123 = fdiv double %4, %6
store double %123, double* %2
%124 = load double, double* %1
%125 = fneg double %124
br i1 %122, label %126, label %136
126: ; preds = %120
%127 = load double, double* %0
%128 = fmul double %123, 5.000000e-01
%129 = tail call double @llvm.fmuladd.f64(double %128, double %123, double -1.000000e+00)
%130 = fmul double %129, 2.500000e-01
%131 = fmul double %123, %130
%132 = tail call double @llvm.fmuladd.f64(double %131, double %123, double 1.000000e+00)
%133 = fmul double %127, -5.000000e-01
%134 = fmul double %123, %133
%135 = tail call double @llvm.fmuladd.f64(double %134, double %132, double %125)
br label %278
136: ; preds = %120
%137 = tail call double @llvm.fmuladd.f64(double %123, double %123, double 1.000000e+00)
%138 = tail call double @sqrt(double %137)
%139 = fmul double %138, %125
br label %278
140: ; preds = %3
br i1 %7, label %141, label %208
141: ; preds = %140
%142 = fneg double %6
%143 = fcmp olt double %4, %142
br i1 %143, label %144, label %177
144: ; preds = %141
%145 = fmul double %6, -3.500000e+02
%146 = fcmp olt double %4, %145
br i1 %146, label %147, label %157
147: ; preds = %144
%148 = fdiv double %6, %4
store double %148, double* %2
%149 = load double, double* %0
%150 = fneg double %149
%151 = load double, double* %1
%152 = fmul double %148, -2.500000e-01
%153 = tail call double @llvm.fmuladd.f64(double %152, double %148, double 1.000000e+00)
%154 = fmul double %151, -5.000000e-01
%155 = fmul double %148, %154
%156 = tail call double @llvm.fmuladd.f64(double %155, double %153, double %150)
br label %278
157: ; preds = %144
%158 = fmul double %6, -1.100000e+02
%159 = fcmp olt double %4, %158
%160 = fdiv double %6, %4
store double %160, double* %2
%161 = load double, double* %0
%162 = fneg double %161
br i1 %159, label %163, label %173
163: ; preds = %157
%164 = load double, double* %1
%165 = fmul double %160, 5.000000e-01
%166 = tail call double @llvm.fmuladd.f64(double %165, double %160, double -1.000000e+00)
%167 = fmul double %166, 2.500000e-01
%168 = fmul double %160, %167
%169 = tail call double @llvm.fmuladd.f64(double %168, double %160, double 1.000000e+00)
%170 = fmul double %164, -5.000000e-01
%171 = fmul double %160, %170
%172 = tail call double @llvm.fmuladd.f64(double %171, double %169, double %162)
br label %278
173: ; preds = %157
%174 = tail call double @llvm.fmuladd.f64(double %160, double %160, double 1.000000e+00)
%175 = tail call double @sqrt(double %174)
%176 = fmul double %175, %162
br label %278
177: ; preds = %141
%178 = fmul double %4, -3.500000e+02
%179 = fcmp ogt double %6, %178
br i1 %179, label %180, label %189
180: ; preds = %177
%181 = fdiv double %4, %6
store double %181, double* %2
%182 = load double, double* %1
%183 = load double, double* %0
%184 = fmul double %183, 5.000000e-01
%185 = fmul double %181, %184
%186 = fmul double %181, -2.500000e-01
%187 = tail call double @llvm.fmuladd.f64(double %186, double %181, double 1.000000e+00)
%188 = tail call double @llvm.fmuladd.f64(double %185, double %187, double %182)
br label %278
189: ; preds = %177
%190 = fmul double %4, -1.100000e+02
%191 = fcmp ogt double %6, %190
%192 = fdiv double %4, %6
store double %192, double* %2
%193 = load double, double* %1
br i1 %191, label %194, label %204
194: ; preds = %189
%195 = load double, double* %0
%196 = fmul double %195, 5.000000e-01
%197 = fmul double %192, %196
%198 = fmul double %192, 5.000000e-01
%199 = tail call double @llvm.fmuladd.f64(double %198, double %192, double -1.000000e+00)
%200 = fmul double %199, 2.500000e-01
%201 = fmul double %192, %200
%202 = tail call double @llvm.fmuladd.f64(double %201, double %192, double 1.000000e+00)
%203 = tail call double @llvm.fmuladd.f64(double %197, double %202, double %193)
br label %278
204: ; preds = %189
%205 = tail call double @llvm.fmuladd.f64(double %192, double %192, double 1.000000e+00)
%206 = tail call double @sqrt(double %205)
%207 = fmul double %193, %206
br label %278
208: ; preds = %140
%209 = fcmp olt double %4, %6
br i1 %209, label %210, label %243
210: ; preds = %208
%211 = fmul double %6, 3.500000e+02
%212 = fcmp ogt double %211, %4
br i1 %212, label %213, label %223
213: ; preds = %210
%214 = fdiv double %6, %4
store double %214, double* %2
%215 = load double, double* %0
%216 = fneg double %215
%217 = load double, double* %1
%218 = fmul double %214, -2.500000e-01
%219 = tail call double @llvm.fmuladd.f64(double %218, double %214, double 1.000000e+00)
%220 = fmul double %217, -5.000000e-01
%221 = fmul double %214, %220
%222 = tail call double @llvm.fmuladd.f64(double %221, double %219, double %216)
br label %278
223: ; preds = %210
%224 = fmul double %6, 1.100000e+02
%225 = fcmp ogt double %224, %4
%226 = fdiv double %6, %4
store double %226, double* %2
%227 = load double, double* %0
%228 = fneg double %227
br i1 %225, label %229, label %239
229: ; preds = %223
%230 = load double, double* %1
%231 = fmul double %226, 5.000000e-01
%232 = tail call double @llvm.fmuladd.f64(double %231, double %226, double -1.000000e+00)
%233 = fmul double %232, 2.500000e-01
%234 = fmul double %226, %233
%235 = tail call double @llvm.fmuladd.f64(double %234, double %226, double 1.000000e+00)
%236 = fmul double %230, -5.000000e-01
%237 = fmul double %226, %236
%238 = tail call double @llvm.fmuladd.f64(double %237, double %235, double %228)
br label %278
239: ; preds = %223
%240 = tail call double @llvm.fmuladd.f64(double %226, double %226, double 1.000000e+00)
%241 = tail call double @sqrt(double %240)
%242 = fmul double %241, %228
br label %278
243: ; preds = %208
%244 = fcmp ogt double %6, -1.000000e-300
br i1 %244, label %278, label %245
245: ; preds = %243
%246 = fmul double %4, 3.500000e+02
%247 = fcmp ogt double %246, %6
br i1 %247, label %248, label %258
248: ; preds = %245
%249 = fdiv double %4, %6
store double %249, double* %2
%250 = load double, double* %1
%251 = fneg double %250
%252 = load double, double* %0
%253 = fmul double %249, -2.500000e-01
%254 = tail call double @llvm.fmuladd.f64(double %253, double %249, double 1.000000e+00)
%255 = fmul double %252, -5.000000e-01
%256 = fmul double %249, %255
%257 = tail call double @llvm.fmuladd.f64(double %256, double %254, double %251)
br label %278
258: ; preds = %245
%259 = fmul double %4, 1.100000e+02
%260 = fcmp ogt double %259, %6
%261 = fdiv double %4, %6
store double %261, double* %2
%262 = load double, double* %1
%263 = fneg double %262
br i1 %260, label %264, label %274
264: ; preds = %258
%265 = load double, double* %0
%266 = fmul double %261, 5.000000e-01
%267 = tail call double @llvm.fmuladd.f64(double %266, double %261, double -1.000000e+00)
%268 = fmul double %267, 2.500000e-01
%269 = fmul double %261, %268
%270 = tail call double @llvm.fmuladd.f64(double %269, double %261, double 1.000000e+00)
%271 = fmul double %265, -5.000000e-01
%272 = fmul double %261, %271
%273 = tail call double @llvm.fmuladd.f64(double %272, double %270, double %263)
br label %278
274: ; preds = %258
%275 = tail call double @llvm.fmuladd.f64(double %261, double %261, double 1.000000e+00)
%276 = tail call double @sqrt(double %275)
%277 = fmul double %276, %263
br label %278
278: ; preds = %243, %180, %204, %194, %147, %173, %163, %264, %274, %248, %213, %239, %229, %45, %69, %59, %14, %38, %28, %110, %136, %126, %79, %103, %93
%279 = phi double [ %188, %180 ], [ %207, %204 ], [ %203, %194 ], [ %156, %147 ], [ %176, %173 ], [ %172, %163 ], [ %273, %264 ], [ %277, %274 ], [ %257, %248 ], [ %222, %213 ], [ %242, %239 ], [ %238, %229 ], [ %53, %45 ], [ %72, %69 ], [ %68, %59 ], [ %22, %14 ], [ %41, %38 ], [ %37, %28 ], [ %119, %110 ], [ %139, %136 ], [ %135, %126 ], [ %87, %79 ], [ %106, %103 ], [ %102, %93 ], [ 1.000000e-300, %243 ]
store double %279, double* %2
ret void
}