#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 exp(double);
double fabs(double);
double fifdint(double);
double spmpar(int *);
void cumnor(double *arg, double *result, double *ccum) {
  static double a[5] = {2.2352520354606839287e00, 1.6102823106855587881e02,
                        1.0676894854603709582e03, 1.8154981253343561249e04,
                        6.5682337918207449113e-2};
  static double b[4] = {4.7202581904688241870e01, 9.7609855173777669322e02,
                        1.0260932208618978205e04, 4.5507789335026729956e04};
  static double c[9] = {3.9894151208813466764e-1, 8.8831497943883759412e00,
                        9.3506656132177855979e01, 5.9727027639480026226e02,
                        2.4945375852903726711e03, 6.8481904505362823326e03,
                        1.1602651437647350124e04, 9.8427148383839780218e03,
                        1.0765576773720192317e-8};
  static double d[8] = {2.2266688044328115691e01, 2.3538790178262499861e02,
                        1.5193775994075548050e03, 6.4855582982667607550e03,
                        1.8615571640885098091e04, 3.4900952721145977266e04,
                        3.8912003286093271411e04, 1.9685429676859990727e04};
  static double half = 0.5e0;
  static double p[6] = {2.1589853405795699e-1, 1.274011611602473639e-1,
                        2.2235277870649807e-2, 1.421619193227893466e-3,
                        2.9112874951168792e-5, 2.307344176494017303e-2};
  static double one = 1.0e0;
  static double q[5] = {1.28426009614491121e00, 4.68238212480865118e-1,
                        6.59881378689285515e-2, 3.78239633202758244e-3,
                        7.29751555083966205e-5};
  static double sixten = 1.60e0;
  static double sqrpi = 3.9894228040143267794e-1;
  static double thrsh = 0.66291e0;
  static double root32 = 5.656854248e0;
  static double zero = 0.0e0;
  static int K1 = 1;
  static int K2 = 2;
  static int i;
  static double del, eps, temp, x, xden, xnum, y, xsq, min;
  eps = spmpar(&K1) * 0.5e0;
  min = spmpar(&K2);
  x = *arg;
  y = fabs(x);
  if (y <= thrsh) {
    xsq = zero;
    if (y > eps)
      xsq = x * x;
    xnum = a[4] * xsq;
    xden = xsq;
    for (i = 0; i < 3; i++) {
      xnum = (xnum + a[i]) * xsq;
      xden = (xden + b[i]) * xsq;
    }
    *result = x * (xnum + a[3]) / (xden + b[3]);
    temp = *result;
    *result = half + temp;
    *ccum = half - temp;
  } else if (y <= root32) {
    xnum = c[8] * y;
    xden = y;
    for (i = 0; i < 7; i++) {
      xnum = (xnum + c[i]) * y;
      xden = (xden + d[i]) * y;
    }
    *result = (xnum + c[7]) / (xden + d[7]);
    xsq = fifdint(y * sixten) / sixten;
    del = (y - xsq) * (y + xsq);
    *result = exp(-(xsq * xsq * half)) * exp(-(del * half)) * *result;
    *ccum = one - *result;
    if (x > zero) {
      temp = *result;
      *result = *ccum;
      *ccum = temp;
    }
  } else {
    *result = zero;
    xsq = one / (x * x);
    xnum = p[5] * xsq;
    xden = xsq;
    for (i = 0; i < 4; i++) {
      xnum = (xnum + p[i]) * xsq;
      xden = (xden + q[i]) * xsq;
    }
    *result = xsq * (xnum + p[4]) / (xden + q[4]);
    *result = (sqrpi - *result) / y;
    xsq = fifdint(x * sixten) / sixten;
    del = (x - xsq) * (x + xsq);
    *result = exp(-(xsq * xsq * half)) * exp(-(del * half)) * *result;
    *ccum = one - *result;
    if (x > zero) {
      temp = *result;
      *result = *ccum;
      *ccum = temp;
    }
  }
  if (*result < min)
    *result = 0.0e0;
  if (*ccum < min)
    *ccum = 0.0e0;
}


x86 assembly (clang, -O0):
<cumnor>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
lea    0x306d(%rip),%rdi
call   1050 <spmpar@plt>
movsd  0xeb8(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x307c(%rip)
lea    0x3051(%rip),%rdi
call   1050 <spmpar@plt>
movsd  %xmm0,0x30a0(%rip)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x3068(%rip)
movsd  0x3060(%rip),%xmm0
movaps 0xe69(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  %xmm0,0x3065(%rip)
movsd  0x305d(%rip),%xmm1
movsd  0x2ff5(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     1321 <cumnor+0x1f1>
movsd  0x3003(%rip),%xmm0
movsd  %xmm0,0x3043(%rip)
movsd  0x3033(%rip),%xmm0
ucomisd 0x3003(%rip),%xmm0
jbe    11fb <cumnor+0xcb>
movsd  0x3005(%rip),%xmm0
mulsd  0x2ffd(%rip),%xmm0
movsd  %xmm0,0x3015(%rip)
movsd  0x2e5d(%rip),%xmm0
mulsd  0x3005(%rip),%xmm0
movsd  %xmm0,0x2fed(%rip)
movsd  0x2ff5(%rip),%xmm0
movsd  %xmm0,0x2fd5(%rip)
movl   $0x0,0x2fa3(%rip)
cmpl   $0x3,0x2f9c(%rip)
jge    12a4 <cumnor+0x174>
movsd  0x2fbe(%rip),%xmm0
movslq 0x2f87(%rip),%rcx
lea    0x2df0(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2fb3(%rip),%xmm0
movsd  %xmm0,0x2f9b(%rip)
movsd  0x2f8b(%rip),%xmm0
movslq 0x2f5c(%rip),%rcx
lea    0x2df5(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2f88(%rip),%xmm0
movsd  %xmm0,0x2f68(%rip)
mov    0x2f3a(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2f31(%rip)
jmp    122d <cumnor+0xfd>
movsd  0x2f44(%rip),%xmm0
movsd  0x2f4c(%rip),%xmm1
addsd  0x2d9c(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x2f30(%rip),%xmm1
addsd  0x2db8(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x2efc(%rip)
movsd  0x2e2c(%rip),%xmm0
addsd  0x2eec(%rip),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2e14(%rip),%xmm0
subsd  0x2ed4(%rip),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    17b4 <cumnor+0x684>
movsd  0x2edf(%rip),%xmm1
movsd  0x2e7f(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     1545 <cumnor+0x415>
movsd  0x2d8d(%rip),%xmm0
mulsd  0x2ebd(%rip),%xmm0
movsd  %xmm0,0x2ead(%rip)
movsd  0x2ead(%rip),%xmm0
movsd  %xmm0,0x2e95(%rip)
movl   $0x0,0x2e63(%rip)
cmpl   $0x7,0x2e5c(%rip)
jge    13e4 <cumnor+0x2b4>
movsd  0x2e7e(%rip),%xmm0
movslq 0x2e47(%rip),%rcx
lea    0x2d00(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2e6b(%rip),%xmm0
movsd  %xmm0,0x2e5b(%rip)
movsd  0x2e4b(%rip),%xmm0
movslq 0x2e1c(%rip),%rcx
lea    0x2d25(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2e40(%rip),%xmm0
movsd  %xmm0,0x2e28(%rip)
mov    0x2dfa(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2df1(%rip)
jmp    136d <cumnor+0x23d>
movsd  0x2e14(%rip),%xmm0
addsd  0x2cd4(%rip),%xmm0
movsd  0x2dfc(%rip),%xmm1
addsd  0x2d14(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2df0(%rip),%xmm0
mulsd  0x2d78(%rip),%xmm0
call   1030 <fifdint@plt>
divsd  0x2d6b(%rip),%xmm0
movsd  %xmm0,0x2ddb(%rip)
movsd  0x2dcb(%rip),%xmm0
subsd  0x2dcb(%rip),%xmm0
movsd  0x2dbb(%rip),%xmm1
addsd  0x2dbb(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x2d77(%rip)
movsd  0x2da7(%rip),%xmm0
mulsd  0x2d9f(%rip),%xmm0
mulsd  0x2ca7(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,-0x20(%rbp)
movsd  0x2d36(%rip),%xmm0
mulsd  0x2c76(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x20(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2c76(%rip),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2cee(%rip),%xmm0
ucomisd 0x2cbe(%rip),%xmm0
jbe    1540 <cumnor+0x410>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x2cc8(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2cb0(%rip),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    17af <cumnor+0x67f>
movsd  0x2c7b(%rip),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2c03(%rip),%xmm0
movsd  0x2c8b(%rip),%xmm1
mulsd  0x2c83(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,0x2c97(%rip)
movsd  0x2bd7(%rip),%xmm0
mulsd  0x2c87(%rip),%xmm0
movsd  %xmm0,0x2c6f(%rip)
movsd  0x2c77(%rip),%xmm0
movsd  %xmm0,0x2c57(%rip)
movl   $0x0,0x2c25(%rip)
cmpl   $0x4,0x2c1e(%rip)
jge    1622 <cumnor+0x4f2>
movsd  0x2c40(%rip),%xmm0
movslq 0x2c09(%rip),%rcx
lea    0x2b62(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2c35(%rip),%xmm0
movsd  %xmm0,0x2c1d(%rip)
movsd  0x2c0d(%rip),%xmm0
movslq 0x2bde(%rip),%rcx
lea    0x2b77(%rip),%rax
addsd  (%rax,%rcx,8),%xmm0
mulsd  0x2c0a(%rip),%xmm0
movsd  %xmm0,0x2bea(%rip)
mov    0x2bbc(%rip),%eax
add    $0x1,%eax
mov    %eax,0x2bb3(%rip)
jmp    15ab <cumnor+0x47b>
movsd  0x2be6(%rip),%xmm0
movsd  0x2bce(%rip),%xmm1
addsd  0x2b16(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x2bb2(%rip),%xmm1
addsd  0x2b42(%rip),%xmm1
divsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2b3e(%rip),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
divsd  0x2b96(%rip),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2b6e(%rip),%xmm0
mulsd  0x2b0e(%rip),%xmm0
call   1030 <fifdint@plt>
divsd  0x2b01(%rip),%xmm0
movsd  %xmm0,0x2b71(%rip)
movsd  0x2b49(%rip),%xmm0
subsd  0x2b61(%rip),%xmm0
movsd  0x2b39(%rip),%xmm1
addsd  0x2b51(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x2b0d(%rip)
movsd  0x2b3d(%rip),%xmm0
mulsd  0x2b35(%rip),%xmm0
mulsd  0x2a3d(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,-0x28(%rbp)
movsd  0x2acc(%rip),%xmm0
mulsd  0x2a0c(%rip),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
call   1040 <exp@plt>
movaps %xmm0,%xmm1
movsd  -0x28(%rbp),%xmm0
mulsd  %xmm1,%xmm0
mov    -0x10(%rbp),%rax
mulsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2a0c(%rip),%xmm0
mov    -0x10(%rbp),%rax
subsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2a84(%rip),%xmm0
ucomisd 0x2a54(%rip),%xmm0
jbe    17aa <cumnor+0x67a>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,0x2a5e(%rip)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  0x2a46(%rip),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    17af <cumnor+0x67f>
jmp    17b4 <cumnor+0x684>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm1
movsd  0x2a54(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    17d9 <cumnor+0x6a9>
mov    -0x10(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
movsd  0x2a2f(%rip),%xmm0
ucomisd %xmm1,%xmm0
jbe    17fe <cumnor+0x6ce>
mov    -0x18(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<cumnor>:
push   %r15
push   %r14
push   %rbx
sub    $0x10,%rsp
mov    %rdx,%r14
mov    %rsi,%r15
mov    %rdi,%rbx
lea    0x2eef(%rip),%rdi
call   1050 <spmpar@plt>
mulsd  0xeaa(%rip),%xmm0
movsd  %xmm0,0x2ef2(%rip)
lea    0x2ed7(%rip),%rdi
call   1050 <spmpar@plt>
movsd  %xmm0,0x2ef6(%rip)
movsd  (%rbx),%xmm1
movsd  %xmm1,0x2eda(%rip)
movapd 0xfaa(%rip),%xmm0
andpd  %xmm1,%xmm0
movlpd %xmm0,0x2ece(%rip)
movsd  0xe6e(%rip),%xmm2
ucomisd %xmm0,%xmm2
jae    12e9 <cumnor+0x1b9>
movsd  0xe7c(%rip),%xmm2
ucomisd %xmm0,%xmm2
jae    137c <cumnor+0x24c>
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
movsd  0xf02(%rip),%xmm3
divsd  %xmm2,%xmm3
movsd  0xefe(%rip),%xmm2
mulsd  %xmm3,%xmm2
addsd  0xefa(%rip),%xmm2
mulsd  %xmm3,%xmm2
movsd  0xef6(%rip),%xmm4
addsd  %xmm3,%xmm4
mulsd  %xmm3,%xmm4
addsd  0xeee(%rip),%xmm2
mulsd  %xmm3,%xmm2
addsd  0xeea(%rip),%xmm4
mulsd  %xmm3,%xmm4
addsd  0xee6(%rip),%xmm2
addsd  0xee6(%rip),%xmm4
mulsd  %xmm3,%xmm2
mulsd  %xmm3,%xmm4
addsd  0xede(%rip),%xmm2
mulsd  %xmm3,%xmm2
addsd  0xeda(%rip),%xmm4
mulsd  %xmm3,%xmm4
addsd  0xed6(%rip),%xmm2
addsd  0xed6(%rip),%xmm4
mulsd  %xmm3,%xmm2
divsd  %xmm4,%xmm2
movsd  0xece(%rip),%xmm3
subsd  %xmm2,%xmm3
divsd  %xmm0,%xmm3
movsd  %xmm3,(%r15)
mulsd  0xe49(%rip),%xmm1
movapd %xmm1,%xmm0
call   1030 <fifdint@plt>
divsd  0xe38(%rip),%xmm0
movsd  0x2dd0(%rip),%xmm1
movapd %xmm0,%xmm2
addsd  %xmm1,%xmm2
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm1
movsd  %xmm1,0x2da8(%rip)
mulsd  %xmm0,%xmm0
mulsd  0xe14(%rip),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0xe01(%rip),%xmm0
mulsd  0x2d81(%rip),%xmm0
call   1040 <exp@plt>
movsd  0xdf4(%rip),%xmm2
mulsd  0x8(%rsp),%xmm0
mulsd  (%r15),%xmm0
movsd  %xmm0,(%r15)
jmp    14c6 <cumnor+0x396>
movsd  0x2d5f(%rip),%xmm2
movapd %xmm1,%xmm3
mulsd  %xmm1,%xmm3
cmpltsd %xmm0,%xmm2
andpd  %xmm3,%xmm2
movsd  0xd06(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  0xd02(%rip),%xmm0
mulsd  %xmm2,%xmm0
unpcklpd %xmm2,%xmm0
addpd  0xe1a(%rip),%xmm0
unpcklpd %xmm2,%xmm1
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm0
addpd  0xe16(%rip),%xmm0
mulpd  %xmm2,%xmm0
addpd  0xe1a(%rip),%xmm0
mulpd  %xmm1,%xmm0
movapd %xmm0,%xmm1
unpckhpd %xmm0,%xmm1
addsd  0xcc6(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xc9a(%rip),%xmm2
movapd %xmm0,%xmm1
addsd  %xmm2,%xmm1
movsd  %xmm1,(%r15)
subsd  %xmm0,%xmm2
jmp    14ef <cumnor+0x3bf>
movsd  0xcac(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xca8(%rip),%xmm1
mulsd  %xmm0,%xmm1
movsd  0xca4(%rip),%xmm2
addsd  %xmm0,%xmm2
mulsd  %xmm0,%xmm2
addsd  0xc9c(%rip),%xmm1
addsd  0xc9c(%rip),%xmm2
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm2
addsd  0xc94(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xc90(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  0xc8c(%rip),%xmm1
addsd  0xc8c(%rip),%xmm2
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm2
addsd  0xc84(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xc80(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  0xc7c(%rip),%xmm1
addsd  0xc7c(%rip),%xmm2
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm2
addsd  0xc74(%rip),%xmm1
mulsd  %xmm0,%xmm1
addsd  0xc70(%rip),%xmm2
mulsd  %xmm0,%xmm2
addsd  0xc6c(%rip),%xmm1
addsd  0xc6c(%rip),%xmm2
divsd  %xmm2,%xmm1
movsd  %xmm1,(%r15)
mulsd  0xc63(%rip),%xmm0
call   1030 <fifdint@plt>
divsd  0xc56(%rip),%xmm0
movsd  0x2bf6(%rip),%xmm1
movapd %xmm0,%xmm2
addsd  %xmm1,%xmm2
subsd  %xmm0,%xmm1
mulsd  %xmm2,%xmm1
movsd  %xmm1,0x2bc6(%rip)
mulsd  %xmm0,%xmm0
mulsd  0xc32(%rip),%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0xc1f(%rip),%xmm0
mulsd  0x2b9f(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0x8(%rsp),%xmm0
mulsd  (%r15),%xmm0
movsd  %xmm0,(%r15)
movsd  0xc02(%rip),%xmm2
subsd  %xmm0,%xmm2
movsd  %xmm2,(%r14)
movsd  0x2b81(%rip),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jbe    14f4 <cumnor+0x3c4>
movsd  (%r15),%xmm0
movsd  %xmm2,(%r15)
movapd %xmm0,%xmm2
movsd  %xmm2,(%r14)
movsd  0x2b6c(%rip),%xmm0
ucomisd (%r15),%xmm0
jbe    150f <cumnor+0x3df>
movq   $0x0,(%r15)
movsd  (%r14),%xmm2
ucomisd %xmm2,%xmm0
jbe    151c <cumnor+0x3ec>
movq   $0x0,(%r14)
add    $0x10,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@cumnor.a = internal global [5 x double] [double 0x4001E1CBD1B4F7F3, double 0x406420E744D785B7, double 0x4090AEC20879FD71, double 0x40D1BABECCDAD2EC, double 0x3FB0D08EC54894E1]
@cumnor.b = internal global [4 x double] [double 0x404799EE342FB2DE, double 0x408E80C9D57E55B8, double 0x40C40A77529CADC8, double 0x40E63879423B87AD]
@cumnor.c = internal global [9 x double] [double 0x3FD98841FADBDC66, double 0x4021C42C35B8BC02, double 0x4057606D0DD78164, double 0x4082AA2986ABA462, double 0x40A37D133E6111EC, double 0x40BAC030C15DC8D7, double 0x40C6A953624F0F60, double 0x40C3395B7FD2FC8E, double 0x3E471E703C5F5815]
@cumnor.d = internal global [8 x double] [double 0x40364445AAEC9F9B, double 0x406D6C69B0FFCDE7, double 0x4097BD82A96B49BF, double 0x40B9558EECA29D27, double 0x40D22DE495C3A6A3, double 0x40E10A9E7CB10E86, double 0x40E300001AEB6FE4, double 0x40D3395B7FD35F61]
@cumnor.half = internal global double 5.000000e-01
@cumnor.p = internal global [6 x double] [double 0x3FCBA2902B84421C, double 0x3FC04EAE6653ED94, double 0x3F96C4D83D16707A, double 0x3F574AB3FC4E4F8B, double 0x3EFE86ED886DC483, double 0x3F97A090772574DA]
@cumnor.one = internal global double 1.000000e+00
@cumnor.q = internal global [5 x double] [double 0x3FF48C54508800DB, double 0x3FDDF79D6855F0AD, double 0x3FB0E4993E122C39, double 0x3F6EFC42917D7DE7, double 0x3F132147A014BAD1]
@cumnor.sixten = internal global double 1.600000e+00
@cumnor.sqrpi = internal global double 0x3FD9884533D43651
@cumnor.thrsh = internal global double 6.629100e-01
@cumnor.root32 = internal global double 0x4016A09E6665983E
@cumnor.zero = internal global double 0.000000e+00
@cumnor.K1 = internal global i32 1
@cumnor.K2 = internal global i32 2
@cumnor.i = internal global i32 0
@cumnor.del = internal global double 0.000000e+00
@cumnor.eps = internal global double 0.000000e+00
@cumnor.temp = internal global double 0.000000e+00
@cumnor.x = internal global double 0.000000e+00
@cumnor.xden = internal global double 0.000000e+00
@cumnor.xnum = internal global double 0.000000e+00
@cumnor.y = internal global double 0.000000e+00
@cumnor.xsq = internal global double 0.000000e+00
@cumnor.min = internal global double 0.000000e+00
define void @cumnor(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 = call double @spmpar(i32* @cumnor.K1)
%8 = fmul double %7, 5.000000e-01
store double %8, double* @cumnor.eps
%9 = call double @spmpar(i32* @cumnor.K2)
store double %9, double* @cumnor.min
%10 = load double*, double** %4
%11 = load double, double* %10
store double %11, double* @cumnor.x
%12 = load double, double* @cumnor.x
%13 = call double @llvm.fabs.f64(double %12)
store double %13, double* @cumnor.y
%14 = load double, double* @cumnor.y
%15 = load double, double* @cumnor.thrsh
%16 = fcmp ole double %14, %15
br i1 %16, label %17, label %75
17: ; preds = %3
%18 = load double, double* @cumnor.zero
store double %18, double* @cumnor.xsq
%19 = load double, double* @cumnor.y
%20 = load double, double* @cumnor.eps
%21 = fcmp ogt double %19, %20
br i1 %21, label %22, label %26
22: ; preds = %17
%23 = load double, double* @cumnor.x
%24 = load double, double* @cumnor.x
%25 = fmul double %23, %24
store double %25, double* @cumnor.xsq
br label %26
26: ; preds = %22, %17
%27 = load double, double* getelementptr inbounds ([5 x double], [5 x double]* @cumnor.a, i64 0, i64 4)
%28 = load double, double* @cumnor.xsq
%29 = fmul double %27, %28
store double %29, double* @cumnor.xnum
%30 = load double, double* @cumnor.xsq
store double %30, double* @cumnor.xden
store i32 0, i32* @cumnor.i
br label %31
31: ; preds = %51, %26
%32 = load i32, i32* @cumnor.i
%33 = icmp slt i32 %32, 3
br i1 %33, label %34, label %54
34: ; preds = %31
%35 = load double, double* @cumnor.xnum
%36 = load i32, i32* @cumnor.i
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [5 x double], [5 x double]* @cumnor.a, i64 0, i64 %37
%39 = load double, double* %38
%40 = fadd double %35, %39
%41 = load double, double* @cumnor.xsq
%42 = fmul double %40, %41
store double %42, double* @cumnor.xnum
%43 = load double, double* @cumnor.xden
%44 = load i32, i32* @cumnor.i
%45 = sext i32 %44 to i64
%46 = getelementptr inbounds [4 x double], [4 x double]* @cumnor.b, i64 0, i64 %45
%47 = load double, double* %46
%48 = fadd double %43, %47
%49 = load double, double* @cumnor.xsq
%50 = fmul double %48, %49
store double %50, double* @cumnor.xden
br label %51
51: ; preds = %34
%52 = load i32, i32* @cumnor.i
%53 = add nsw i32 %52, 1
store i32 %53, i32* @cumnor.i
br label %31
54: ; preds = %31
%55 = load double, double* @cumnor.x
%56 = load double, double* @cumnor.xnum
%57 = load double, double* getelementptr inbounds ([5 x double], [5 x double]* @cumnor.a, i64 0, i64 3)
%58 = fadd double %56, %57
%59 = fmul double %55, %58
%60 = load double, double* @cumnor.xden
%61 = load double, double* getelementptr inbounds ([4 x double], [4 x double]* @cumnor.b, i64 0, i64 3)
%62 = fadd double %60, %61
%63 = fdiv double %59, %62
%64 = load double*, double** %5
store double %63, double* %64
%65 = load double*, double** %5
%66 = load double, double* %65
store double %66, double* @cumnor.temp
%67 = load double, double* @cumnor.half
%68 = load double, double* @cumnor.temp
%69 = fadd double %67, %68
%70 = load double*, double** %5
store double %69, double* %70
%71 = load double, double* @cumnor.half
%72 = load double, double* @cumnor.temp
%73 = fsub double %71, %72
%74 = load double*, double** %6
store double %73, double* %74
br label %264
75: ; preds = %3
%76 = load double, double* @cumnor.y
%77 = load double, double* @cumnor.root32
%78 = fcmp ole double %76, %77
br i1 %78, label %79, label %163
79: ; preds = %75
%80 = load double, double* getelementptr inbounds ([9 x double], [9 x double]* @cumnor.c, i64 0, i64 8)
%81 = load double, double* @cumnor.y
%82 = fmul double %80, %81
store double %82, double* @cumnor.xnum
%83 = load double, double* @cumnor.y
store double %83, double* @cumnor.xden
store i32 0, i32* @cumnor.i
br label %84
84: ; preds = %104, %79
%85 = load i32, i32* @cumnor.i
%86 = icmp slt i32 %85, 7
br i1 %86, label %87, label %107
87: ; preds = %84
%88 = load double, double* @cumnor.xnum
%89 = load i32, i32* @cumnor.i
%90 = sext i32 %89 to i64
%91 = getelementptr inbounds [9 x double], [9 x double]* @cumnor.c, i64 0, i64 %90
%92 = load double, double* %91
%93 = fadd double %88, %92
%94 = load double, double* @cumnor.y
%95 = fmul double %93, %94
store double %95, double* @cumnor.xnum
%96 = load double, double* @cumnor.xden
%97 = load i32, i32* @cumnor.i
%98 = sext i32 %97 to i64
%99 = getelementptr inbounds [8 x double], [8 x double]* @cumnor.d, i64 0, i64 %98
%100 = load double, double* %99
%101 = fadd double %96, %100
%102 = load double, double* @cumnor.y
%103 = fmul double %101, %102
store double %103, double* @cumnor.xden
br label %104
104: ; preds = %87
%105 = load i32, i32* @cumnor.i
%106 = add nsw i32 %105, 1
store i32 %106, i32* @cumnor.i
br label %84
107: ; preds = %84
%108 = load double, double* @cumnor.xnum
%109 = load double, double* getelementptr inbounds ([9 x double], [9 x double]* @cumnor.c, i64 0, i64 7)
%110 = fadd double %108, %109
%111 = load double, double* @cumnor.xden
%112 = load double, double* getelementptr inbounds ([8 x double], [8 x double]* @cumnor.d, i64 0, i64 7)
%113 = fadd double %111, %112
%114 = fdiv double %110, %113
%115 = load double*, double** %5
store double %114, double* %115
%116 = load double, double* @cumnor.y
%117 = load double, double* @cumnor.sixten
%118 = fmul double %116, %117
%119 = call double @fifdint(double %118)
%120 = load double, double* @cumnor.sixten
%121 = fdiv double %119, %120
store double %121, double* @cumnor.xsq
%122 = load double, double* @cumnor.y
%123 = load double, double* @cumnor.xsq
%124 = fsub double %122, %123
%125 = load double, double* @cumnor.y
%126 = load double, double* @cumnor.xsq
%127 = fadd double %125, %126
%128 = fmul double %124, %127
store double %128, double* @cumnor.del
%129 = load double, double* @cumnor.xsq
%130 = load double, double* @cumnor.xsq
%131 = fmul double %129, %130
%132 = load double, double* @cumnor.half
%133 = fmul double %131, %132
%134 = fneg double %133
%135 = call double @exp(double %134)
%136 = load double, double* @cumnor.del
%137 = load double, double* @cumnor.half
%138 = fmul double %136, %137
%139 = fneg double %138
%140 = call double @exp(double %139)
%141 = fmul double %135, %140
%142 = load double*, double** %5
%143 = load double, double* %142
%144 = fmul double %141, %143
%145 = load double*, double** %5
store double %144, double* %145
%146 = load double, double* @cumnor.one
%147 = load double*, double** %5
%148 = load double, double* %147
%149 = fsub double %146, %148
%150 = load double*, double** %6
store double %149, double* %150
%151 = load double, double* @cumnor.x
%152 = load double, double* @cumnor.zero
%153 = fcmp ogt double %151, %152
br i1 %153, label %154, label %162
154: ; preds = %107
%155 = load double*, double** %5
%156 = load double, double* %155
store double %156, double* @cumnor.temp
%157 = load double*, double** %6
%158 = load double, double* %157
%159 = load double*, double** %5
store double %158, double* %159
%160 = load double, double* @cumnor.temp
%161 = load double*, double** %6
store double %160, double* %161
br label %162
162: ; preds = %154, %107
br label %263
163: ; preds = %75
%164 = load double, double* @cumnor.zero
%165 = load double*, double** %5
store double %164, double* %165
%166 = load double, double* @cumnor.one
%167 = load double, double* @cumnor.x
%168 = load double, double* @cumnor.x
%169 = fmul double %167, %168
%170 = fdiv double %166, %169
store double %170, double* @cumnor.xsq
%171 = load double, double* getelementptr inbounds ([6 x double], [6 x double]* @cumnor.p, i64 0, i64 5)
%172 = load double, double* @cumnor.xsq
%173 = fmul double %171, %172
store double %173, double* @cumnor.xnum
%174 = load double, double* @cumnor.xsq
store double %174, double* @cumnor.xden
store i32 0, i32* @cumnor.i
br label %175
175: ; preds = %195, %163
%176 = load i32, i32* @cumnor.i
%177 = icmp slt i32 %176, 4
br i1 %177, label %178, label %198
178: ; preds = %175
%179 = load double, double* @cumnor.xnum
%180 = load i32, i32* @cumnor.i
%181 = sext i32 %180 to i64
%182 = getelementptr inbounds [6 x double], [6 x double]* @cumnor.p, i64 0, i64 %181
%183 = load double, double* %182
%184 = fadd double %179, %183
%185 = load double, double* @cumnor.xsq
%186 = fmul double %184, %185
store double %186, double* @cumnor.xnum
%187 = load double, double* @cumnor.xden
%188 = load i32, i32* @cumnor.i
%189 = sext i32 %188 to i64
%190 = getelementptr inbounds [5 x double], [5 x double]* @cumnor.q, i64 0, i64 %189
%191 = load double, double* %190
%192 = fadd double %187, %191
%193 = load double, double* @cumnor.xsq
%194 = fmul double %192, %193
store double %194, double* @cumnor.xden
br label %195
195: ; preds = %178
%196 = load i32, i32* @cumnor.i
%197 = add nsw i32 %196, 1
store i32 %197, i32* @cumnor.i
br label %175
198: ; preds = %175
%199 = load double, double* @cumnor.xsq
%200 = load double, double* @cumnor.xnum
%201 = load double, double* getelementptr inbounds ([6 x double], [6 x double]* @cumnor.p, i64 0, i64 4)
%202 = fadd double %200, %201
%203 = fmul double %199, %202
%204 = load double, double* @cumnor.xden
%205 = load double, double* getelementptr inbounds ([5 x double], [5 x double]* @cumnor.q, i64 0, i64 4)
%206 = fadd double %204, %205
%207 = fdiv double %203, %206
%208 = load double*, double** %5
store double %207, double* %208
%209 = load double, double* @cumnor.sqrpi
%210 = load double*, double** %5
%211 = load double, double* %210
%212 = fsub double %209, %211
%213 = load double, double* @cumnor.y
%214 = fdiv double %212, %213
%215 = load double*, double** %5
store double %214, double* %215
%216 = load double, double* @cumnor.x
%217 = load double, double* @cumnor.sixten
%218 = fmul double %216, %217
%219 = call double @fifdint(double %218)
%220 = load double, double* @cumnor.sixten
%221 = fdiv double %219, %220
store double %221, double* @cumnor.xsq
%222 = load double, double* @cumnor.x
%223 = load double, double* @cumnor.xsq
%224 = fsub double %222, %223
%225 = load double, double* @cumnor.x
%226 = load double, double* @cumnor.xsq
%227 = fadd double %225, %226
%228 = fmul double %224, %227
store double %228, double* @cumnor.del
%229 = load double, double* @cumnor.xsq
%230 = load double, double* @cumnor.xsq
%231 = fmul double %229, %230
%232 = load double, double* @cumnor.half
%233 = fmul double %231, %232
%234 = fneg double %233
%235 = call double @exp(double %234)
%236 = load double, double* @cumnor.del
%237 = load double, double* @cumnor.half
%238 = fmul double %236, %237
%239 = fneg double %238
%240 = call double @exp(double %239)
%241 = fmul double %235, %240
%242 = load double*, double** %5
%243 = load double, double* %242
%244 = fmul double %241, %243
%245 = load double*, double** %5
store double %244, double* %245
%246 = load double, double* @cumnor.one
%247 = load double*, double** %5
%248 = load double, double* %247
%249 = fsub double %246, %248
%250 = load double*, double** %6
store double %249, double* %250
%251 = load double, double* @cumnor.x
%252 = load double, double* @cumnor.zero
%253 = fcmp ogt double %251, %252
br i1 %253, label %254, label %262
254: ; preds = %198
%255 = load double*, double** %5
%256 = load double, double* %255
store double %256, double* @cumnor.temp
%257 = load double*, double** %6
%258 = load double, double* %257
%259 = load double*, double** %5
store double %258, double* %259
%260 = load double, double* @cumnor.temp
%261 = load double*, double** %6
store double %260, double* %261
br label %262
262: ; preds = %254, %198
br label %263
263: ; preds = %262, %162
br label %264
264: ; preds = %263, %54
%265 = load double*, double** %5
%266 = load double, double* %265
%267 = load double, double* @cumnor.min
%268 = fcmp olt double %266, %267
br i1 %268, label %269, label %271
269: ; preds = %264
%270 = load double*, double** %5
store double 0.000000e+00, double* %270
br label %271
271: ; preds = %269, %264
%272 = load double*, double** %6
%273 = load double, double* %272
%274 = load double, double* @cumnor.min
%275 = fcmp olt double %273, %274
br i1 %275, label %276, label %278
276: ; preds = %271
%277 = load double*, double** %6
store double 0.000000e+00, double* %277
br label %278
278: ; preds = %276, %271
ret void
}

LLVM IR (-O2):
@cumnor.K1 = internal global i32 1
@cumnor.K2 = internal global i32 2
@cumnor.del = internal unnamed_addr global double 0.000000e+00
@cumnor.eps = internal unnamed_addr global double 0.000000e+00
@cumnor.x = internal unnamed_addr global double 0.000000e+00
@cumnor.y = internal unnamed_addr global double 0.000000e+00
@cumnor.min = internal unnamed_addr global double 0.000000e+00
define void @cumnor(double* nocapture %0, double* nocapture %1, double* nocapture %2) {
%4 = tail call double @spmpar(i32* @cumnor.K1)
%5 = fmul double %4, 5.000000e-01
store double %5, double* @cumnor.eps
%6 = tail call double @spmpar(i32* @cumnor.K2)
store double %6, double* @cumnor.min
%7 = load double, double* %0
store double %7, double* @cumnor.x
%8 = tail call double @llvm.fabs.f64(double %7)
store double %8, double* @cumnor.y
%9 = fcmp ugt double %8, 6.629100e-01
br i1 %9, label %36, label %10
10: ; preds = %3
%11 = load double, double* @cumnor.eps
%12 = fcmp ogt double %8, %11
%13 = fmul double %7, %7
%14 = select i1 %12, double %13, double 0.000000e+00
%15 = fmul double %14, 0x3FB0D08EC54894E1
%16 = fadd double %15, 0x4001E1CBD1B4F7F3
%17 = fmul double %14, %16
%18 = insertelement <2 x double> poison, double %17, i64 0
%19 = insertelement <2 x double> %18, double %14, i64 1
%20 = fadd <2 x double> %19, <double 0x406420E744D785B7, double 0x404799EE342FB2DE>
%21 = insertelement <2 x double> poison, double %14, i64 0
%22 = shufflevector <2 x double> %21, <2 x double> poison, <2 x i32> zeroinitializer
%23 = fmul <2 x double> %22, %20
%24 = fadd <2 x double> %23, <double 0x4090AEC20879FD71, double 0x408E80C9D57E55B8>
%25 = fmul <2 x double> %22, %24
%26 = fadd <2 x double> %25, <double 0x40D1BABECCDAD2EC, double 0x40C40A77529CADC8>
%27 = insertelement <2 x double> poison, double %7, i64 0
%28 = insertelement <2 x double> %27, double %14, i64 1
%29 = fmul <2 x double> %28, %26
%30 = extractelement <2 x double> %29, i64 1
%31 = fadd double %30, 0x40E63879423B87AD
%32 = extractelement <2 x double> %29, i64 0
%33 = fdiv double %32, %31
%34 = fadd double %33, 5.000000e-01
store double %34, double* %1
%35 = fsub double 5.000000e-01, %33
br label %139
36: ; preds = %3
%37 = fcmp ugt double %8, 0x4016A09E6665983E
br i1 %37, label %92, label %38
38: ; preds = %36
%39 = fmul double %8, 0x3E471E703C5F5815
%40 = fadd double %39, 0x3FD98841FADBDC66
%41 = fmul double %8, %40
%42 = fadd double %8, 0x40364445AAEC9F9B
%43 = fmul double %8, %42
%44 = fadd double %41, 0x4021C42C35B8BC02
%45 = fmul double %8, %44
%46 = fadd double %43, 0x406D6C69B0FFCDE7
%47 = fmul double %8, %46
%48 = fadd double %45, 0x4057606D0DD78164
%49 = fmul double %8, %48
%50 = fadd double %47, 0x4097BD82A96B49BF
%51 = fmul double %8, %50
%52 = fadd double %49, 0x4082AA2986ABA462
%53 = fmul double %8, %52
%54 = fadd double %51, 0x40B9558EECA29D27
%55 = fmul double %8, %54
%56 = fadd double %53, 0x40A37D133E6111EC
%57 = fmul double %8, %56
%58 = fadd double %55, 0x40D22DE495C3A6A3
%59 = fmul double %8, %58
%60 = fadd double %57, 0x40BAC030C15DC8D7
%61 = fmul double %8, %60
%62 = fadd double %59, 0x40E10A9E7CB10E86
%63 = fmul double %8, %62
%64 = fadd double %61, 0x40C6A953624F0F60
%65 = fmul double %8, %64
%66 = fadd double %63, 0x40E300001AEB6FE4
%67 = fmul double %8, %66
%68 = fadd double %65, 0x40C3395B7FD2FC8E
%69 = fadd double %67, 0x40D3395B7FD35F61
%70 = fdiv double %68, %69
store double %70, double* %1
%71 = fmul double %8, 1.600000e+00
%72 = tail call double @fifdint(double %71)
%73 = fdiv double %72, 1.600000e+00
%74 = load double, double* @cumnor.y
%75 = fsub double %74, %73
%76 = fadd double %73, %74
%77 = fmul double %75, %76
store double %77, double* @cumnor.del
%78 = fmul double %73, %73
%79 = fmul double %78, -5.000000e-01
%80 = tail call double @exp(double %79)
%81 = load double, double* @cumnor.del
%82 = fmul double %81, -5.000000e-01
%83 = tail call double @exp(double %82)
%84 = fmul double %80, %83
%85 = load double, double* %1
%86 = fmul double %84, %85
store double %86, double* %1
%87 = fsub double 1.000000e+00, %86
store double %87, double* %2
%88 = load double, double* @cumnor.x
%89 = fcmp ogt double %88, 0.000000e+00
br i1 %89, label %90, label %141
90: ; preds = %38
%91 = load double, double* %1
store double %87, double* %1
br label %139
92: ; preds = %36
%93 = fmul double %7, %7
%94 = fdiv double 1.000000e+00, %93
%95 = fmul double %94, 0x3F97A090772574DA
%96 = fadd double %95, 0x3FCBA2902B84421C
%97 = fmul double %94, %96
%98 = fadd double %94, 0x3FF48C54508800DB
%99 = fmul double %94, %98
%100 = fadd double %97, 0x3FC04EAE6653ED94
%101 = fmul double %94, %100
%102 = fadd double %99, 0x3FDDF79D6855F0AD
%103 = fmul double %94, %102
%104 = fadd double %101, 0x3F96C4D83D16707A
%105 = fmul double %94, %104
%106 = fadd double %103, 0x3FB0E4993E122C39
%107 = fmul double %94, %106
%108 = fadd double %105, 0x3F574AB3FC4E4F8B
%109 = fmul double %94, %108
%110 = fadd double %107, 0x3F6EFC42917D7DE7
%111 = fmul double %94, %110
%112 = fadd double %109, 0x3EFE86ED886DC483
%113 = fmul double %94, %112
%114 = fadd double %111, 0x3F132147A014BAD1
%115 = fdiv double %113, %114
%116 = fsub double 0x3FD9884533D43651, %115
%117 = fdiv double %116, %8
store double %117, double* %1
%118 = fmul double %7, 1.600000e+00
%119 = tail call double @fifdint(double %118)
%120 = fdiv double %119, 1.600000e+00
%121 = load double, double* @cumnor.x
%122 = fsub double %121, %120
%123 = fadd double %120, %121
%124 = fmul double %122, %123
store double %124, double* @cumnor.del
%125 = fmul double %120, %120
%126 = fmul double %125, -5.000000e-01
%127 = tail call double @exp(double %126)
%128 = load double, double* @cumnor.del
%129 = fmul double %128, -5.000000e-01
%130 = tail call double @exp(double %129)
%131 = fmul double %127, %130
%132 = load double, double* %1
%133 = fmul double %131, %132
store double %133, double* %1
%134 = fsub double 1.000000e+00, %133
store double %134, double* %2
%135 = load double, double* @cumnor.x
%136 = fcmp ogt double %135, 0.000000e+00
br i1 %136, label %137, label %141
137: ; preds = %92
%138 = load double, double* %1
store double %134, double* %1
br label %139
139: ; preds = %10, %137, %90
%140 = phi double [ %91, %90 ], [ %138, %137 ], [ %35, %10 ]
store double %140, double* %2
br label %141
141: ; preds = %139, %38, %92
%142 = phi double [ %87, %38 ], [ %134, %92 ], [ %140, %139 ]
%143 = load double, double* %1
%144 = load double, double* @cumnor.min
%145 = fcmp olt double %143, %144
br i1 %145, label %146, label %148
146: ; preds = %141
store double 0.000000e+00, double* %1
%147 = load double, double* %2
br label %148
148: ; preds = %146, %141
%149 = phi double [ %147, %146 ], [ %142, %141 ]
%150 = fcmp olt double %149, %144
br i1 %150, label %151, label %152
151: ; preds = %148
store double 0.000000e+00, double* %2
br label %152
152: ; preds = %151, %148
ret void
}