#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 fabs(double);
int /*<<< orphan*/ printf(char *, ...);
void checkconvnet(int *icutb, int *iin, double *cam1t, double *cam1f,
                  double *cam1p, double *cam2t, double *cam2f, double *cam2p,
                  double *camt, double *camf, double *camp, int *icntrl,
                  double *dtheta, double *ctrl, double *cam1a, double *cam2a,
                  double *cama, double *vamt, double *vamf, double *vamp,
                  double *vama, double *qa, double *qamt, double *qamf,
                  double *ramt, double *ramf, double *ramp, int *iplausi,
                  int *ichannel) {
  int i0, ir, ip, ic, il, ig, ia, idivergence, iin_dyn, dyna_flag_1,
      dyna_flag_2;
  double c2t, c2f, c2p, c2a, c1t, c1f, c1p, a2t, a2f, a2p, a2a, a1t, a1f, a1p,
      qamp = 1., df, dc, db, dd, ran, can, rap, ea, cae, ral;
  i0 = ctrl[0];
  ir = ctrl[1];
  ip = ctrl[2];
  ic = ctrl[3];
  il = ctrl[4];
  ig = ctrl[5];
  ia = ctrl[7];
  df = ctrl[10];
  dc = ctrl[11];
  db = ctrl[12];
  dd = ctrl[16];
  ran = ctrl[18];
  can = ctrl[19];
  rap = ctrl[22];
  ea = ctrl[23];
  cae = ctrl[24];
  ral = ctrl[25];
  c1t = ctrl[32];
  c1f = ctrl[33];
  c1p = ctrl[34];
  c2t = ctrl[35];
  c2f = ctrl[36];
  c2p = ctrl[37];
  c2a = ctrl[38];
  a1t = ctrl[40];
  a1f = ctrl[41];
  a1p = ctrl[42];
  a2t = ctrl[43];
  a2f = ctrl[44], a2p = ctrl[45];
  a2a = ctrl[46];
  iin_dyn = 50;
  if (*iin % iin_dyn == 0) {
    dyna_flag_1 = 0;
    if (*camt * *cam1t >= 0 && *camt * *cam2t >= 0) {
      dyna_flag_1 = dyna_flag_1;
    } else {
      dyna_flag_1 = dyna_flag_1 + 1;
    }
    if (*camf * *cam1f >= 0 && *camf * *cam2f >= 0) {
      dyna_flag_1 = dyna_flag_1;
    } else {
      dyna_flag_1 = dyna_flag_1 + 1;
    }
    if (*camp * *cam1p >= 0 && *camp * *cam2p >= 0) {
      dyna_flag_1 = dyna_flag_1;
    } else {
      dyna_flag_1 = dyna_flag_1 + 1;
    }
    if (*cama * *cam1a >= 0 && *cama * *cam2a >= 0) {
      dyna_flag_1 = dyna_flag_1;
    } else {
      dyna_flag_1 = dyna_flag_1 + 1;
    }
    dyna_flag_2 = 0;
    if (fabs(*camt) <= fabs(*cam1t) && fabs(*cam1t) <= fabs(*cam2t)) {
      dyna_flag_2 = dyna_flag_2;
    } else {
      dyna_flag_2 = dyna_flag_2 + 1;
    }
    if (fabs(*camf) <= fabs(*cam1f) && fabs(*cam1f) <= fabs(*cam2f)) {
      dyna_flag_2 = dyna_flag_2;
    } else {
      dyna_flag_2 = dyna_flag_2 + 1;
    }
    if (fabs(*camp) <= fabs(*cam1p) && fabs(*cam1p) <= fabs(*cam2p)) {
      dyna_flag_2 = dyna_flag_2;
    } else {
      dyna_flag_2 = dyna_flag_2 + 1;
    }
    if (fabs(*cama) <= fabs(*cam1a) && fabs(*cam1a) <= fabs(*cam2a)) {
      dyna_flag_2 = dyna_flag_2;
    } else {
      dyna_flag_2 = dyna_flag_2 + 1;
    }
  }
  if (*ichannel == 1) {
    *ramt = 0.;
    *ramf = 0.;
    *ramp = 0.;
  }
  if ((fabs(*camt) <= c2t * *vamt) && (*ramt < c1t * *qamt) &&
      (fabs(*camt) <= a2t) && (*ramt < a1t) && (fabs(*camf) <= c2f * *vamf) &&
      (*ramf < c1f * *qamf) && (fabs(*camf) <= a2f) && (*ramf < a1f) &&
      (fabs(*camp) <= c2p * *vamp) && (*ramp < c1p * qamp) &&
      (fabs(*camp) < a2p) && (*ramp < a1p) && (fabs(*cama) <= c2a * *vama) &&
      (fabs(*cama) <= a2a) && (*iplausi == 1) && (*iin > 3)) {
    printf("      flow network: convergence in gas iteration %"
           "d"
           " \n\n",
           *iin);
    *icntrl = 1;
    *icutb = 0;
  } else {
    idivergence = 0;
    if ((*iin >= 20 * i0) || (fabs(*camt) > 1.e20)) {
      if ((fabs(*cam1t) >= fabs(*cam2t)) && (fabs(*camt) >= fabs(*cam2t)) &&
          (fabs(*camt) > c2t * *vamt)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*camf) > 1.e20)) {
      if ((fabs(*cam1f) >= fabs(*cam2f)) && (fabs(*camf) >= fabs(*cam2f)) &&
          (fabs(*camf) > c2f * *vamf)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*camp) > 1.e20)) {
      if ((fabs(*cam1p) >= fabs(*cam2p)) && (fabs(*camp) >= fabs(*cam2p)) &&
          (fabs(*camp) > c2p * *vamp)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*cama) > 1.e20)) {
      if ((fabs(*cam1a) >= fabs(*cam2a)) && (fabs(*cama) >= fabs(*cam2a)) &&
          (fabs(*cama) > c2a * *vama)) {
        idivergence = 1;
      }
    }
    if (*iin > 20 * ic)
      idivergence = 1;
    if (*iin == 0)
      idivergence = 1;
    if (idivergence == 1) {
      *dtheta = *dtheta * df;
      printf("\n network divergence; the under-relaxation parameter is "
             "decreased to %e\n",
             *dtheta);
      printf(" the network iteration for the increment is reattempted\n\n");
      *iin = 0;
      (*icutb)++;
      if (*icutb > ia) {
        qa[2] = 0.25;
        *icntrl = 1;
      }
    } else {
      if (*iin % iin_dyn == 0) {
        if (dyna_flag_1 == 0 && dyna_flag_2 == 0 && *iplausi == 1) {
          printf("      good convergence --> *dtheta is increased %"
                 "d"
                 "\n",
                 *iin);
          *dtheta = *dtheta * (1.2);
          if (*dtheta >= 1) {
            *dtheta = 1.;
          }
        } else if (dyna_flag_1 != 0 && dyna_flag_2 != 0 && *iplausi != 1) {
          printf("      bad convergence progression --> *dtheta is decreased %"
                 "d"
                 "\n",
                 *iin);
          *dtheta = *dtheta * (0.8);
        } else {
          printf("      no convergence\n\n");
        }
      } else {
        printf("      no convergence\n\n");
      }
    }
  }
  return;
}


x86 assembly (clang, -O0):
<checkconvnet>:
push   %rbp
mov    %rsp,%rbp
sub    $0x130,%rsp
mov    0xc0(%rbp),%rax
mov    0xb8(%rbp),%rax
mov    0xb0(%rbp),%rax
mov    0xa8(%rbp),%rax
mov    0xa0(%rbp),%rax
mov    0x98(%rbp),%rax
mov    0x90(%rbp),%rax
mov    0x88(%rbp),%rax
mov    0x80(%rbp),%rax
mov    0x78(%rbp),%rax
mov    0x70(%rbp),%rax
mov    0x68(%rbp),%rax
mov    0x60(%rbp),%rax
mov    0x58(%rbp),%rax
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%rax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movsd  0xe4e(%rip),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    0x48(%rbp),%rax
cvttsd2si (%rax),%eax
mov    %eax,-0x34(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x8(%rax),%eax
mov    %eax,-0x38(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x10(%rax),%eax
mov    %eax,-0x3c(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x18(%rax),%eax
mov    %eax,-0x40(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x20(%rax),%eax
mov    %eax,-0x44(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x28(%rax),%eax
mov    %eax,-0x48(%rbp)
mov    0x48(%rbp),%rax
cvttsd2si 0x38(%rax),%eax
mov    %eax,-0x4c(%rbp)
mov    0x48(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x80(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x90(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x98(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xc0(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xc8(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x100(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x108(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x110(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x118(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    0x48(%rbp),%rax
movsd  0x120(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    0x48(%rbp),%rax
movsd  0x128(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    0x48(%rbp),%rax
movsd  0x130(%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    0x48(%rbp),%rax
movsd  0x140(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x148(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x150(%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x158(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x160(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x168(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x170(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movl   $0x32,-0x54(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cltd
idivl  -0x54(%rbp)
cmp    $0x0,%edx
jne    170d <checkconvnet+0x5fd>
movl   $0x0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x18(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     143e <checkconvnet+0x32e>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     143e <checkconvnet+0x32e>
mov    -0x58(%rbp),%eax
mov    %eax,-0x58(%rbp)
jmp    1447 <checkconvnet+0x337>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x20(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     148c <checkconvnet+0x37c>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     148c <checkconvnet+0x37c>
mov    -0x58(%rbp),%eax
mov    %eax,-0x58(%rbp)
jmp    1495 <checkconvnet+0x385>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x28(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14da <checkconvnet+0x3ca>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x18(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14da <checkconvnet+0x3ca>
mov    -0x58(%rbp),%eax
mov    %eax,-0x58(%rbp)
jmp    14e3 <checkconvnet+0x3d3>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x50(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1528 <checkconvnet+0x418>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x58(%rbp),%rax
mulsd  (%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1528 <checkconvnet+0x418>
mov    -0x58(%rbp),%eax
mov    %eax,-0x58(%rbp)
jmp    1531 <checkconvnet+0x421>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
movl   $0x0,-0x5c(%rbp)
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0xae9(%rip),%xmm0
pand   %xmm0,%xmm1
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0xad6(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     15a3 <checkconvnet+0x493>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0xab9(%rip),%xmm0
pand   %xmm0,%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0xaa6(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     15a3 <checkconvnet+0x493>
mov    -0x5c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    15ac <checkconvnet+0x49c>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0xa75(%rip),%xmm0
pand   %xmm0,%xmm1
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0xa62(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     1617 <checkconvnet+0x507>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0xa45(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0xa32(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     1617 <checkconvnet+0x507>
mov    -0x5c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    1620 <checkconvnet+0x510>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0xa01(%rip),%xmm0
pand   %xmm0,%xmm1
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x9ee(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     168b <checkconvnet+0x57b>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x9d1(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x9be(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     168b <checkconvnet+0x57b>
mov    -0x5c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    1694 <checkconvnet+0x584>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x98d(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x97a(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     16ff <checkconvnet+0x5ef>
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x95d(%rip),%xmm0
pand   %xmm0,%xmm1
mov    0x58(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x94a(%rip),%xmm2
pand   %xmm2,%xmm0
ucomisd %xmm1,%xmm0
jb     16ff <checkconvnet+0x5ef>
mov    -0x5c(%rbp),%eax
mov    %eax,-0x5c(%rbp)
jmp    1708 <checkconvnet+0x5f8>
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    170d <checkconvnet+0x5fd>
mov    0xc0(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1747 <checkconvnet+0x637>
mov    0xa0(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0xa8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0xb0(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x8da(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x68(%rbp),%xmm0
mov    0x68(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xa0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x88(%rbp),%xmm0
ff
mov    0x90(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x888(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xa0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x846(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x70(%rbp),%xmm0
mov    0x70(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xa8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x90(%rbp),%xmm0
ff
mov    0x98(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x7f4(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0xa8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xa8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xc8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x7b2(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x78(%rbp),%xmm0
mov    0x78(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xb0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x763(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0xb0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xd0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    199c <checkconvnet+0x88c>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x721(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0x80(%rbp),%xmm0
mov    0x80(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x6f4(%rip),%xmm0
pand   %xmm0,%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     199c <checkconvnet+0x88c>
mov    0xb8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    199c <checkconvnet+0x88c>
mov    -0x10(%rbp),%rax
cmpl   $0x3,(%rax)
jle    199c <checkconvnet+0x88c>
mov    -0x10(%rbp),%rax
mov    (%rax),%esi
lea    0x6c4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    0x38(%rbp),%rax
movl   $0x1,(%rax)
mov    -0x8(%rbp),%rax
movl   $0x0,(%rax)
jmp    1eab <checkconvnet+0xd9b>
movl   $0x0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    19da <checkconvnet+0x8ca>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x66c(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x638(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1a70 <checkconvnet+0x960>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x647(%rip),%xmm1
pand   %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x634(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1a6b <checkconvnet+0x95b>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x617(%rip),%xmm1
pand   %xmm1,%xmm0
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x604(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1a6b <checkconvnet+0x95b>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x5e7(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x68(%rbp),%xmm1
mov    0x68(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1a6b <checkconvnet+0x95b>
movl   $0x1,-0x50(%rbp)
jmp    1a70 <checkconvnet+0x960>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    1aa7 <checkconvnet+0x997>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x59f(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x56b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1b3d <checkconvnet+0xa2d>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x57a(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x567(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1b38 <checkconvnet+0xa28>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x54a(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x537(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1b38 <checkconvnet+0xa28>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x51a(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x70(%rbp),%xmm1
mov    0x70(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1b38 <checkconvnet+0xa28>
movl   $0x1,-0x50(%rbp)
jmp    1b3d <checkconvnet+0xa2d>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    1b74 <checkconvnet+0xa64>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x4d2(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x49e(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1c0a <checkconvnet+0xafa>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x4ad(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x49a(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1c05 <checkconvnet+0xaf5>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x47d(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x46a(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1c05 <checkconvnet+0xaf5>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x44d(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x78(%rbp),%xmm1
mov    0x78(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1c05 <checkconvnet+0xaf5>
movl   $0x1,-0x50(%rbp)
jmp    1c0a <checkconvnet+0xafa>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    1c41 <checkconvnet+0xb31>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x405(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x3d1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1cda <checkconvnet+0xbca>
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x3e0(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x58(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x3cd(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1cd5 <checkconvnet+0xbc5>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x3b0(%rip),%xmm1
pand   %xmm1,%xmm0
mov    0x58(%rbp),%rax
movsd  (%rax),%xmm1
movaps 0x39d(%rip),%xmm2
pand   %xmm2,%xmm1
ucomisd %xmm1,%xmm0
jb     1cd5 <checkconvnet+0xbc5>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x380(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  -0x80(%rbp),%xmm1
mov    0x80(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1cd5 <checkconvnet+0xbc5>
movl   $0x1,-0x50(%rbp)
jmp    1cda <checkconvnet+0xbca>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x40(%rbp),%ecx
cmp    %ecx,%eax
jle    1cf3 <checkconvnet+0xbe3>
movl   $0x1,-0x50(%rbp)
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
jne    1d07 <checkconvnet+0xbf7>
movl   $0x1,-0x50(%rbp)
cmpl   $0x1,-0x50(%rbp)
jne    1d94 <checkconvnet+0xc84>
mov    0x40(%rbp),%rax
movsd  (%rax),%xmm0
mulsd  -0xe0(%rbp),%xmm0
ff
mov    0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x40(%rbp),%rax
movsd  (%rax),%xmm0
lea    0x33f(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
lea    0x37a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x10(%rbp),%rax
movl   $0x0,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    %ecx,(%rax)
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
cmp    -0x4c(%rbp),%eax
jle    1d8f <checkconvnet+0xc7f>
mov    0x88(%rbp),%rax
movsd  0x2a0(%rip),%xmm0
movsd  %xmm0,0x10(%rax)
mov    0x38(%rbp),%rax
movl   $0x1,(%rax)
jmp    1ea6 <checkconvnet+0xd96>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cltd
idivl  -0x54(%rbp)
cmp    $0x0,%edx
jne    1e93 <checkconvnet+0xd83>
cmpl   $0x0,-0x58(%rbp)
jne    1e26 <checkconvnet+0xd16>
cmpl   $0x0,-0x5c(%rbp)
jne    1e26 <checkconvnet+0xd16>
mov    0xb8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1e26 <checkconvnet+0xd16>
mov    -0x10(%rbp),%rax
mov    (%rax),%esi
lea    0x322(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    0x40(%rbp),%rax
movsd  0x22d(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x40(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x1f9(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1e21 <checkconvnet+0xd11>
mov    0x40(%rbp),%rax
movsd  0x1e3(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1e8e <checkconvnet+0xd7e>
cmpl   $0x0,-0x58(%rbp)
je     1e7b <checkconvnet+0xd6b>
cmpl   $0x0,-0x5c(%rbp)
je     1e7b <checkconvnet+0xd6b>
mov    0xb8(%rbp),%rax
cmpl   $0x1,(%rax)
je     1e7b <checkconvnet+0xd6b>
mov    -0x10(%rbp),%rax
mov    (%rax),%esi
lea    0x2d7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    0x40(%rbp),%rax
movsd  0x1a6(%rip),%xmm0
mulsd  (%rax),%xmm0
mov    0x40(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1e89 <checkconvnet+0xd79>
lea    0x2eb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1e8e <checkconvnet+0xd7e>
jmp    1ea1 <checkconvnet+0xd91>
lea    0x2d3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1ea6 <checkconvnet+0xd96>
jmp    1eab <checkconvnet+0xd9b>
add    $0x130,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<checkconvnet>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x108,%rsp
mov    %r9,0x28(%rsp)
mov    %r8,0xc0(%rsp)
mov    %rcx,0xb8(%rsp)
mov    %rdx,0xb0(%rsp)
mov    %rdi,0xa8(%rsp)
mov    0x1f0(%rsp),%rax
mov    0x1e8(%rsp),%rcx
mov    %rcx,0x18(%rsp)
mov    0x178(%rsp),%rdx
cvttsd2si (%rdx),%r8d
mov    0x1e0(%rsp),%rcx
mov    %rcx,0xa0(%rsp)
cvttsd2si 0x18(%rdx),%r12d
mov    %rsi,0x100(%rsp)
movslq (%rsi),%rsi
imul   $0x51eb851f,%rsi,%rbp
mov    %rbp,%rcx
shr    $0x3f,%rcx
sar    $0x24,%rbp
add    %ecx,%ebp
mov    0x1d8(%rsp),%r13
movsd  0x50(%rdx),%xmm15
movsd  0x100(%rdx),%xmm1
movsd  0x108(%rdx),%xmm4
movsd  0x110(%rdx),%xmm11
movsd  0x118(%rdx),%xmm0
movsd  0x120(%rdx),%xmm10
movsd  0x128(%rdx),%xmm9
movsd  0x130(%rdx),%xmm8
movsd  0x140(%rdx),%xmm2
movsd  %xmm2,0xf0(%rsp)
movsd  0x148(%rdx),%xmm13
movsd  0x150(%rdx),%xmm7
movsd  0x158(%rdx),%xmm2
movsd  %xmm2,0xf8(%rsp)
movsd  0x160(%rdx),%xmm14
movsd  0x168(%rdx),%xmm12
movsd  0x170(%rdx),%xmm5
cvttsd2si 0x38(%rdx),%edx
mov    %edx,0x4c(%rsp)
imul   $0x32,%ebp,%r10d
mov    0x1d0(%rsp),%r11
mov    0x1c8(%rsp),%rcx
mov    %rcx,0xe0(%rsp)
mov    0x1c0(%rsp),%r9
mov    0x1b8(%rsp),%rdx
mov    %rdx,0xe8(%rsp)
mov    0x1b0(%rsp),%rcx
mov    %rcx,0x80(%rsp)
mov    0x1a8(%rsp),%rcx
mov    %rcx,0x88(%rsp)
mov    0x1a0(%rsp),%rcx
mov    %rcx,0x98(%rsp)
mov    0x198(%rsp),%rdx
mov    0x190(%rsp),%rcx
mov    %rcx,0x10(%rsp)
mov    0x188(%rsp),%rcx
mov    %rcx,0x40(%rsp)
mov    0x180(%rsp),%rcx
mov    %rcx,0xc8(%rsp)
mov    0x170(%rsp),%rbx
mov    %rbx,0x20(%rsp)
mov    0x168(%rsp),%rbx
mov    %rbx,0x90(%rsp)
mov    0x160(%rsp),%r14
mov    0x158(%rsp),%rbx
mov    0x150(%rsp),%r15
mov    0x148(%rsp),%rcx
mov    %rcx,0x38(%rsp)
mov    0x140(%rsp),%rcx
mov    %rcx,0x30(%rsp)
mov    %esi,%ebp
sub    %r10d,%ebp
je     1732 <checkconvnet+0x612>
cmpl   $0x1,(%rax)
jne    1360 <checkconvnet+0x240>
movq   $0x0,(%r11)
movq   $0x0,0x0(%r13)
mov    0xa0(%rsp),%rax
movq   $0x0,(%rax)
movsd  (%r15),%xmm6
andpd  0xc93(%rip),%xmm6
mulsd  (%rdx),%xmm0
ucomisd %xmm6,%xmm0
jb     14c2 <checkconvnet+0x3a2>
movsd  (%r11),%xmm3
mulsd  (%r9),%xmm1
ucomisd %xmm3,%xmm1
jbe    14c2 <checkconvnet+0x3a2>
movsd  0xf8(%rsp),%xmm1
ucomisd %xmm6,%xmm1
jb     14c2 <checkconvnet+0x3a2>
movsd  0xf0(%rsp),%xmm1
ucomisd %xmm3,%xmm1
jbe    14c2 <checkconvnet+0x3a2>
movsd  (%rbx),%xmm1
andpd  0xc3f(%rip),%xmm1
mov    0x98(%rsp),%rax
movsd  (%rax),%xmm2
mulsd  %xmm10,%xmm2
ucomisd %xmm1,%xmm2
jb     14c2 <checkconvnet+0x3a2>
movsd  0x0(%r13),%xmm2
mov    0xe0(%rsp),%rax
mulsd  (%rax),%xmm4
ucomisd %xmm2,%xmm4
jbe    14c2 <checkconvnet+0x3a2>
ucomisd %xmm1,%xmm14
jb     14c2 <checkconvnet+0x3a2>
ucomisd %xmm2,%xmm13
jbe    14c2 <checkconvnet+0x3a2>
movsd  (%r14),%xmm1
andpd  0xbe5(%rip),%xmm1
mov    0x88(%rsp),%rax
movsd  (%rax),%xmm2
mulsd  %xmm9,%xmm2
ucomisd %xmm1,%xmm2
jb     14c2 <checkconvnet+0x3a2>
mov    0xa0(%rsp),%rax
movsd  (%rax),%xmm2
ucomisd %xmm2,%xmm11
jbe    14c2 <checkconvnet+0x3a2>
ucomisd %xmm1,%xmm12
jbe    14c2 <checkconvnet+0x3a2>
ucomisd %xmm2,%xmm7
jbe    14c2 <checkconvnet+0x3a2>
mov    0x10(%rsp),%rax
movsd  (%rax),%xmm1
andpd  0xb99(%rip),%xmm1
mov    0x80(%rsp),%rax
movsd  (%rax),%xmm2
mulsd  %xmm8,%xmm2
ucomisd %xmm1,%xmm2
jb     14c2 <checkconvnet+0x3a2>
ucomisd %xmm1,%xmm5
jb     14c2 <checkconvnet+0x3a2>
mov    0x18(%rsp),%rax
cmpl   $0x1,(%rax)
jne    14c2 <checkconvnet+0x3a2>
cmp    $0x4,%esi
jl     14c2 <checkconvnet+0x3a2>
lea    0xb96(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x90(%rsp),%rax
movl   $0x1,(%rax)
mov    0xa8(%rsp),%rax
movl   $0x0,(%rax)
jmp    1720 <checkconvnet+0x600>
shl    $0x2,%r8d
lea    (%r8,%r8,4),%ecx
cmp    %ecx,%esi
jge    14da <checkconvnet+0x3ba>
xor    %eax,%eax
ucomisd 0xb38(%rip),%xmm6
jbe    151f <checkconvnet+0x3ff>
mov    0xb0(%rsp),%rax
movsd  (%rax),%xmm1
movapd 0xb12(%rip),%xmm2
andpd  %xmm2,%xmm1
mov    0x28(%rsp),%rax
movsd  (%rax),%xmm3
andpd  %xmm2,%xmm3
ucomisd %xmm3,%xmm1
setae  %al
ucomisd %xmm3,%xmm6
setae  %dl
and    %al,%dl
ucomisd %xmm0,%xmm6
seta   %al
and    %dl,%al
movzbl %al,%eax
cmp    %ecx,%esi
jge    1535 <checkconvnet+0x415>
movsd  (%rbx),%xmm1
andpd  0xad5(%rip),%xmm1
ucomisd 0xadd(%rip),%xmm1
jbe    158f <checkconvnet+0x46f>
mov    0xb8(%rsp),%rdx
movsd  (%rdx),%xmm2
movapd 0xab7(%rip),%xmm3
andpd  %xmm3,%xmm2
mov    0x30(%rsp),%rdx
movsd  (%rdx),%xmm1
andpd  %xmm3,%xmm1
ucomisd %xmm1,%xmm2
jb     158b <checkconvnet+0x46b>
movsd  (%rbx),%xmm2
andpd  0xa94(%rip),%xmm2
ucomisd %xmm1,%xmm2
jb     158b <checkconvnet+0x46b>
mov    0x98(%rsp),%rdx
mulsd  (%rdx),%xmm10
ucomisd %xmm10,%xmm2
jbe    158b <checkconvnet+0x46b>
mov    $0x1,%eax
cmp    %ecx,%esi
jge    15a6 <checkconvnet+0x486>
movsd  (%r14),%xmm1
andpd  0xa64(%rip),%xmm1
ucomisd 0xa6c(%rip),%xmm1
jbe    1601 <checkconvnet+0x4e1>
mov    0xc0(%rsp),%rdx
movsd  (%rdx),%xmm2
movapd 0xa46(%rip),%xmm3
andpd  %xmm3,%xmm2
mov    0x38(%rsp),%rdx
movsd  (%rdx),%xmm1
andpd  %xmm3,%xmm1
ucomisd %xmm1,%xmm2
jb     15fd <checkconvnet+0x4dd>
movsd  (%r14),%xmm2
andpd  0xa22(%rip),%xmm2
ucomisd %xmm1,%xmm2
jb     15fd <checkconvnet+0x4dd>
mov    0x88(%rsp),%rdx
mulsd  (%rdx),%xmm9
ucomisd %xmm9,%xmm2
jbe    15fd <checkconvnet+0x4dd>
mov    $0x1,%eax
cmp    %ecx,%esi
jge    161c <checkconvnet+0x4fc>
mov    0x10(%rsp),%rcx
movsd  (%rcx),%xmm1
andpd  0x9ee(%rip),%xmm1
ucomisd 0x9f6(%rip),%xmm1
jbe    1672 <checkconvnet+0x552>
mov    0xc8(%rsp),%rcx
movsd  (%rcx),%xmm2
movapd 0x9d0(%rip),%xmm3
andpd  %xmm3,%xmm2
mov    0x40(%rsp),%rcx
movsd  (%rcx),%xmm1
andpd  %xmm3,%xmm1
ucomisd %xmm1,%xmm2
jb     1672 <checkconvnet+0x552>
mov    0x10(%rsp),%rcx
movsd  (%rcx),%xmm2
andpd  0x9a8(%rip),%xmm2
ucomisd %xmm1,%xmm2
jb     1672 <checkconvnet+0x552>
mov    0x80(%rsp),%rcx
mulsd  (%rcx),%xmm8
ucomisd %xmm8,%xmm2
ja     16ab <checkconvnet+0x58b>
test   %esi,%esi
je     16ab <checkconvnet+0x58b>
shl    $0x2,%r12d
lea    (%r12,%r12,4),%ecx
cmp    %ecx,%esi
jg     16ab <checkconvnet+0x58b>
test   %eax,%eax
jne    16ab <checkconvnet+0x58b>
test   %ebp,%ebp
je     1977 <checkconvnet+0x857>
lea    0xa8e(%rip),%rdi
add    $0x108,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <puts@plt>
mov    0x20(%rsp),%rax
mulsd  (%rax),%xmm15
movsd  %xmm15,(%rax)
lea    0x9a6(%rip),%rdi
movapd %xmm15,%xmm0
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xa65(%rip),%rdi
call   1030 <puts@plt>
mov    0x100(%rsp),%rax
movl   $0x0,(%rax)
mov    0xa8(%rsp),%rdx
mov    (%rdx),%eax
lea    0x1(%rax),%ecx
mov    %ecx,(%rdx)
cmp    0x4c(%rsp),%eax
jl     1720 <checkconvnet+0x600>
movabs $0x3fd0000000000000,%rax
mov    0xe8(%rsp),%rcx
mov    %rax,0x10(%rcx)
mov    0x90(%rsp),%rax
movl   $0x1,(%rax)
add    $0x108,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
movsd  %xmm14,0xd0(%rsp)
movsd  %xmm13,0x58(%rsp)
movsd  %xmm12,0x60(%rsp)
movsd  %xmm9,0xd8(%rsp)
movsd  (%r15),%xmm14
mov    0xb0(%rsp),%rcx
movsd  (%rcx),%xmm13
movapd %xmm14,%xmm6
mulsd  %xmm13,%xmm6
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm6
jb     1790 <checkconvnet+0x670>
mov    0x28(%rsp),%rcx
movsd  (%rcx),%xmm6
mulsd  %xmm14,%xmm6
xor    %ecx,%ecx
ucomisd %xmm3,%xmm6
jae    1795 <checkconvnet+0x675>
mov    $0x1,%ecx
movsd  (%rbx),%xmm12
mov    0xb8(%rsp),%rdi
movsd  (%rdi),%xmm9
movapd %xmm12,%xmm6
mulsd  %xmm9,%xmm6
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm6
movsd  %xmm10,0x70(%rsp)
jb     17d6 <checkconvnet+0x6b6>
mov    0x30(%rsp),%rdi
movsd  (%rdi),%xmm6
mulsd  %xmm12,%xmm6
ucomisd %xmm3,%xmm6
jae    17d9 <checkconvnet+0x6b9>
add    $0x1,%ecx
movsd  (%r14),%xmm10
mov    0xc0(%rsp),%rdi
movsd  (%rdi),%xmm6
movapd %xmm10,%xmm2
mulsd  %xmm6,%xmm2
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm2
movsd  %xmm8,0x78(%rsp)
movsd  %xmm11,0x68(%rsp)
movsd  %xmm15,0x50(%rsp)
jb     1826 <checkconvnet+0x706>
mov    0x38(%rsp),%rdi
movsd  (%rdi),%xmm2
mulsd  %xmm10,%xmm2
ucomisd %xmm3,%xmm2
jae    1829 <checkconvnet+0x709>
add    $0x1,%ecx
mov    0x10(%rsp),%rdi
movsd  (%rdi),%xmm11
mov    0xc8(%rsp),%rdi
movsd  (%rdi),%xmm8
movapd %xmm11,%xmm2
mulsd  %xmm8,%xmm2
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm2
jb     1868 <checkconvnet+0x748>
mov    0x40(%rsp),%rdi
movsd  (%rdi),%xmm2
mulsd  %xmm11,%xmm2
ucomisd %xmm3,%xmm2
jae    186b <checkconvnet+0x74b>
add    $0x1,%ecx
mov    %ecx,0xc(%rsp)
movapd 0x788(%rip),%xmm15
andpd  %xmm15,%xmm14
andpd  %xmm15,%xmm13
ucomisd %xmm14,%xmm13
jb     18a3 <checkconvnet+0x783>
mov    0x28(%rsp),%rcx
movsd  (%rcx),%xmm2
andpd  0x766(%rip),%xmm2
xor    %edi,%edi
ucomisd %xmm13,%xmm2
jae    18a8 <checkconvnet+0x788>
mov    $0x1,%edi
andpd  %xmm15,%xmm12
andpd  %xmm15,%xmm9
ucomisd %xmm12,%xmm9
movsd  0xd0(%rsp),%xmm14
jb     18db <checkconvnet+0x7bb>
mov    0x30(%rsp),%rcx
movsd  (%rcx),%xmm2
andpd  0x72c(%rip),%xmm2
ucomisd %xmm9,%xmm2
jae    18de <checkconvnet+0x7be>
add    $0x1,%edi
movsd  0x60(%rsp),%xmm12
movsd  0x58(%rsp),%xmm13
andpd  %xmm15,%xmm10
andpd  %xmm15,%xmm6
ucomisd %xmm10,%xmm6
movsd  0xd8(%rsp),%xmm9
jb     191e <checkconvnet+0x7fe>
mov    0x38(%rsp),%rcx
movsd  (%rcx),%xmm2
andpd  0x6e8(%rip),%xmm2
ucomisd %xmm6,%xmm2
jae    1921 <checkconvnet+0x801>
add    $0x1,%edi
movsd  0x70(%rsp),%xmm10
andpd  %xmm15,%xmm11
andpd  %xmm15,%xmm8
ucomisd %xmm11,%xmm8
jb     1951 <checkconvnet+0x831>
mov    0x40(%rsp),%rcx
movsd  (%rcx),%xmm2
andpd  0x6b6(%rip),%xmm2
ucomisd %xmm8,%xmm2
jae    1954 <checkconvnet+0x834>
add    $0x1,%edi
movsd  0x78(%rsp),%xmm8
movsd  0x50(%rsp),%xmm15
movsd  0x68(%rsp),%xmm11
cmpl   $0x1,(%rax)
je     1342 <checkconvnet+0x222>
jmp    1360 <checkconvnet+0x240>
mov    0xc(%rsp),%ecx
mov    %ecx,%eax
or     %edi,%eax
jne    19d2 <checkconvnet+0x8b2>
mov    0x18(%rsp),%rax
cmpl   $0x1,(%rax)
jne    168e <checkconvnet+0x56e>
lea    0x71a(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x20(%rsp),%rcx
movsd  (%rcx),%xmm0
mulsd  0x672(%rip),%xmm0
movsd  %xmm0,(%rcx)
ucomisd 0x66e(%rip),%xmm0
jb     1720 <checkconvnet+0x600>
movabs $0x3ff0000000000000,%rax
mov    %rax,(%rcx)
jmp    1720 <checkconvnet+0x600>
test   %ecx,%ecx
je     168e <checkconvnet+0x56e>
test   %edi,%edi
je     168e <checkconvnet+0x56e>
mov    0x18(%rsp),%rax
cmpl   $0x1,(%rax)
je     168e <checkconvnet+0x56e>
lea    0x6ed(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x20(%rsp),%rax
movsd  (%rax),%xmm0
mulsd  0x609(%rip),%xmm0
movsd  %xmm0,(%rax)
jmp    1720 <checkconvnet+0x600>

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

LLVM IR (-O2):
@.str = [55 x i8] c" flow network: convergence in gas iteration %d \0A\0A\00"
@.str.1 = [73 x i8] c"\0A network divergence; the under-relaxation parameter is decreased to %e\0A\00"
@.str.3 = [52 x i8] c" good convergence --> *dtheta is increased %d\0A\00"
@.str.4 = [63 x i8] c" bad convergence progression --> *dtheta is decreased %d\0A\00"
@str.6 = [22 x i8] c" no convergence\0A\00"
@str.7 = [57 x i8] c" the network iteration for the increment is reattempted\0A\00"
define void @checkconvnet(i32* nocapture %0, i32* nocapture %1, double* nocapture %2, double* nocapture %3, double* nocapture %4, double* nocapture %5, double* nocapture %6, double* nocapture %7, double* nocapture %8, double* nocapture %9, double* nocapture %10, i32* nocapture writeonly %11, double* nocapture %12, double* nocapture %13, double* nocapture %14, double* nocapture %15, double* nocapture %16, double* nocapture %17, double* nocapture %18, double* nocapture %19, double* nocapture %20, double* nocapture writeonly %21, double* nocapture %22, double* nocapture %23, double* nocapture %24, double* nocapture %25, double* nocapture %26, i32* nocapture %27, i32* nocapture %28) {
%30 = load double, double* %13
%31 = fptosi double %30 to i32
%32 = getelementptr inbounds double, double* %13, i64 3
%33 = load double, double* %32
%34 = fptosi double %33 to i32
%35 = getelementptr inbounds double, double* %13, i64 7
%36 = load double, double* %35
%37 = fptosi double %36 to i32
%38 = getelementptr inbounds double, double* %13, i64 10
%39 = load double, double* %38
%40 = getelementptr inbounds double, double* %13, i64 32
%41 = load double, double* %40
%42 = getelementptr inbounds double, double* %13, i64 33
%43 = load double, double* %42
%44 = getelementptr inbounds double, double* %13, i64 34
%45 = load double, double* %44
%46 = getelementptr inbounds double, double* %13, i64 35
%47 = load double, double* %46
%48 = getelementptr inbounds double, double* %13, i64 36
%49 = load double, double* %48
%50 = getelementptr inbounds double, double* %13, i64 37
%51 = load double, double* %50
%52 = getelementptr inbounds double, double* %13, i64 38
%53 = load double, double* %52
%54 = getelementptr inbounds double, double* %13, i64 40
%55 = load double, double* %54
%56 = getelementptr inbounds double, double* %13, i64 41
%57 = load double, double* %56
%58 = getelementptr inbounds double, double* %13, i64 42
%59 = load double, double* %58
%60 = getelementptr inbounds double, double* %13, i64 43
%61 = load double, double* %60
%62 = getelementptr inbounds double, double* %13, i64 44
%63 = load double, double* %62
%64 = getelementptr inbounds double, double* %13, i64 45
%65 = load double, double* %64
%66 = getelementptr inbounds double, double* %13, i64 46
%67 = load double, double* %66
%68 = load i32, i32* %1
%69 = srem i32 %68, 50
%70 = icmp eq i32 %69, 0
br i1 %70, label %71, label %160
71: ; preds = %29
%72 = load double, double* %8
%73 = load double, double* %2
%74 = fmul double %72, %73
%75 = fcmp ult double %74, 0.000000e+00
br i1 %75, label %80, label %76
76: ; preds = %71
%77 = load double, double* %5
%78 = fmul double %72, %77
%79 = fcmp ult double %78, 0.000000e+00
br i1 %79, label %80, label %81
80: ; preds = %76, %71
br label %81
81: ; preds = %76, %80
%82 = phi i32 [ 1, %80 ], [ 0, %76 ]
%83 = load double, double* %9
%84 = load double, double* %3
%85 = fmul double %83, %84
%86 = fcmp ult double %85, 0.000000e+00
br i1 %86, label %91, label %87
87: ; preds = %81
%88 = load double, double* %6
%89 = fmul double %83, %88
%90 = fcmp ult double %89, 0.000000e+00
br i1 %90, label %91, label %93
91: ; preds = %87, %81
%92 = add nuw nsw i32 %82, 1
br label %93
93: ; preds = %87, %91
%94 = phi i32 [ %92, %91 ], [ %82, %87 ]
%95 = load double, double* %10
%96 = load double, double* %4
%97 = fmul double %95, %96
%98 = fcmp ult double %97, 0.000000e+00
br i1 %98, label %103, label %99
99: ; preds = %93
%100 = load double, double* %7
%101 = fmul double %95, %100
%102 = fcmp ult double %101, 0.000000e+00
br i1 %102, label %103, label %105
103: ; preds = %99, %93
%104 = add nuw nsw i32 %94, 1
br label %105
105: ; preds = %99, %103
%106 = phi i32 [ %104, %103 ], [ %94, %99 ]
%107 = load double, double* %16
%108 = load double, double* %14
%109 = fmul double %107, %108
%110 = fcmp ult double %109, 0.000000e+00
br i1 %110, label %115, label %111
111: ; preds = %105
%112 = load double, double* %15
%113 = fmul double %107, %112
%114 = fcmp ult double %113, 0.000000e+00
br i1 %114, label %115, label %117
115: ; preds = %111, %105
%116 = add nuw nsw i32 %106, 1
br label %117
117: ; preds = %111, %115
%118 = phi i32 [ %116, %115 ], [ %106, %111 ]
%119 = tail call double @llvm.fabs.f64(double %72)
%120 = tail call double @llvm.fabs.f64(double %73)
%121 = fcmp ugt double %119, %120
br i1 %121, label %126, label %122
122: ; preds = %117
%123 = load double, double* %5
%124 = tail call double @llvm.fabs.f64(double %123)
%125 = fcmp ugt double %120, %124
br i1 %125, label %126, label %127
126: ; preds = %122, %117
br label %127
127: ; preds = %122, %126
%128 = phi i32 [ 1, %126 ], [ 0, %122 ]
%129 = tail call double @llvm.fabs.f64(double %83)
%130 = tail call double @llvm.fabs.f64(double %84)
%131 = fcmp ugt double %129, %130
br i1 %131, label %136, label %132
132: ; preds = %127
%133 = load double, double* %6
%134 = tail call double @llvm.fabs.f64(double %133)
%135 = fcmp ugt double %130, %134
br i1 %135, label %136, label %138
136: ; preds = %132, %127
%137 = add nuw nsw i32 %128, 1
br label %138
138: ; preds = %132, %136
%139 = phi i32 [ %137, %136 ], [ %128, %132 ]
%140 = tail call double @llvm.fabs.f64(double %95)
%141 = tail call double @llvm.fabs.f64(double %96)
%142 = fcmp ugt double %140, %141
br i1 %142, label %147, label %143
143: ; preds = %138
%144 = load double, double* %7
%145 = tail call double @llvm.fabs.f64(double %144)
%146 = fcmp ugt double %141, %145
br i1 %146, label %147, label %149
147: ; preds = %143, %138
%148 = add nuw nsw i32 %139, 1
br label %149
149: ; preds = %143, %147
%150 = phi i32 [ %148, %147 ], [ %139, %143 ]
%151 = tail call double @llvm.fabs.f64(double %107)
%152 = tail call double @llvm.fabs.f64(double %108)
%153 = fcmp ugt double %151, %152
br i1 %153, label %158, label %154
154: ; preds = %149
%155 = load double, double* %15
%156 = tail call double @llvm.fabs.f64(double %155)
%157 = fcmp ugt double %152, %156
br i1 %157, label %158, label %160
158: ; preds = %154, %149
%159 = add nuw nsw i32 %150, 1
br label %160
160: ; preds = %154, %158, %29
%161 = phi i32 [ %159, %158 ], [ undef, %29 ], [ %150, %154 ]
%162 = phi i32 [ %118, %158 ], [ undef, %29 ], [ %118, %154 ]
%163 = load i32, i32* %28
%164 = icmp eq i32 %163, 1
br i1 %164, label %165, label %166
165: ; preds = %160
store double 0.000000e+00, double* %24
store double 0.000000e+00, double* %25
store double 0.000000e+00, double* %26
br label %166
166: ; preds = %165, %160
%167 = load double, double* %8
%168 = tail call double @llvm.fabs.f64(double %167)
%169 = load double, double* %17
%170 = fmul double %47, %169
%171 = fcmp ugt double %168, %170
br i1 %171, label %224, label %172
172: ; preds = %166
%173 = load double, double* %24
%174 = load double, double* %22
%175 = fmul double %41, %174
%176 = fcmp olt double %173, %175
%177 = fcmp ole double %168, %61
%178 = select i1 %176, i1 %177, i1 false
%179 = fcmp olt double %173, %55
%180 = select i1 %178, i1 %179, i1 false
br i1 %180, label %181, label %224
181: ; preds = %172
%182 = load double, double* %9
%183 = tail call double @llvm.fabs.f64(double %182)
%184 = load double, double* %18
%185 = fmul double %49, %184
%186 = fcmp ugt double %183, %185
br i1 %186, label %224, label %187
187: ; preds = %181
%188 = load double, double* %25
%189 = load double, double* %23
%190 = fmul double %43, %189
%191 = fcmp olt double %188, %190
%192 = fcmp ole double %183, %63
%193 = select i1 %191, i1 %192, i1 false
%194 = fcmp olt double %188, %57
%195 = select i1 %193, i1 %194, i1 false
br i1 %195, label %196, label %224
196: ; preds = %187
%197 = load double, double* %10
%198 = tail call double @llvm.fabs.f64(double %197)
%199 = load double, double* %19
%200 = fmul double %51, %199
%201 = fcmp ugt double %198, %200
br i1 %201, label %224, label %202
202: ; preds = %196
%203 = load double, double* %26
%204 = fcmp olt double %203, %45
%205 = fcmp olt double %198, %65
%206 = select i1 %204, i1 %205, i1 false
%207 = fcmp olt double %203, %59
%208 = select i1 %206, i1 %207, i1 false
br i1 %208, label %209, label %224
209: ; preds = %202
%210 = load double, double* %16
%211 = tail call double @llvm.fabs.f64(double %210)
%212 = load double, double* %20
%213 = fmul double %53, %212
%214 = fcmp ugt double %211, %213
%215 = fcmp ugt double %211, %67
%216 = select i1 %214, i1 true, i1 %215
br i1 %216, label %224, label %217
217: ; preds = %209
%218 = load i32, i32* %27
%219 = icmp eq i32 %218, 1
%220 = icmp sgt i32 %68, 3
%221 = select i1 %219, i1 %220, i1 false
br i1 %221, label %222, label %224
222: ; preds = %217
%223 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str, i64 0, i64 0), i32 %68)
store i32 1, i32* %11
store i32 0, i32* %0
br label %354
224: ; preds = %217, %209, %202, %196, %187, %181, %172, %166
%225 = mul nsw i32 %31, 20
%226 = icmp slt i32 %68, %225
%227 = xor i1 %226, true
%228 = fcmp ogt double %168, 1.000000e+20
%229 = select i1 %227, i1 true, i1 %228
br i1 %229, label %230, label %241
230: ; preds = %224
%231 = load double, double* %2
%232 = tail call double @llvm.fabs.f64(double %231)
%233 = load double, double* %5
%234 = tail call double @llvm.fabs.f64(double %233)
%235 = fcmp oge double %232, %234
%236 = fcmp oge double %168, %234
%237 = select i1 %235, i1 %236, i1 false
%238 = fcmp ogt double %168, %170
%239 = select i1 %237, i1 %238, i1 false
%240 = zext i1 %239 to i32
br i1 %226, label %241, label %246
241: ; preds = %224, %230
%242 = phi i32 [ %240, %230 ], [ 0, %224 ]
%243 = load double, double* %9
%244 = tail call double @llvm.fabs.f64(double %243)
%245 = fcmp ogt double %244, 1.000000e+20
br i1 %245, label %246, label %264
246: ; preds = %241, %230
%247 = phi i32 [ %242, %241 ], [ %240, %230 ]
%248 = load double, double* %3
%249 = tail call double @llvm.fabs.f64(double %248)
%250 = load double, double* %6
%251 = tail call double @llvm.fabs.f64(double %250)
%252 = fcmp ult double %249, %251
br i1 %252, label %262, label %253
253: ; preds = %246
%254 = load double, double* %9
%255 = tail call double @llvm.fabs.f64(double %254)
%256 = fcmp ult double %255, %251
br i1 %256, label %262, label %257
257: ; preds = %253
%258 = load double, double* %18
%259 = fmul double %49, %258
%260 = fcmp ogt double %255, %259
br i1 %260, label %261, label %262
261: ; preds = %257
br label %262
262: ; preds = %246, %253, %257, %261
%263 = phi i32 [ 1, %261 ], [ %247, %257 ], [ %247, %253 ], [ %247, %246 ]
br i1 %226, label %264, label %269
264: ; preds = %241, %262
%265 = phi i32 [ %263, %262 ], [ %242, %241 ]
%266 = load double, double* %10
%267 = tail call double @llvm.fabs.f64(double %266)
%268 = fcmp ogt double %267, 1.000000e+20
br i1 %268, label %269, label %287
269: ; preds = %264, %262
%270 = phi i32 [ %265, %264 ], [ %263, %262 ]
%271 = load double, double* %4
%272 = tail call double @llvm.fabs.f64(double %271)
%273 = load double, double* %7
%274 = tail call double @llvm.fabs.f64(double %273)
%275 = fcmp ult double %272, %274
br i1 %275, label %285, label %276
276: ; preds = %269
%277 = load double, double* %10
%278 = tail call double @llvm.fabs.f64(double %277)
%279 = fcmp ult double %278, %274
br i1 %279, label %285, label %280
280: ; preds = %276
%281 = load double, double* %19
%282 = fmul double %51, %281
%283 = fcmp ogt double %278, %282
br i1 %283, label %284, label %285
284: ; preds = %280
br label %285
285: ; preds = %269, %276, %280, %284
%286 = phi i32 [ 1, %284 ], [ %270, %280 ], [ %270, %276 ], [ %270, %269 ]
br i1 %226, label %287, label %292
287: ; preds = %264, %285
%288 = phi i32 [ %286, %285 ], [ %265, %264 ]
%289 = load double, double* %16
%290 = tail call double @llvm.fabs.f64(double %289)
%291 = fcmp ogt double %290, 1.000000e+20
br i1 %291, label %292, label %307
292: ; preds = %287, %285
%293 = phi i32 [ %288, %287 ], [ %286, %285 ]
%294 = load double, double* %14
%295 = tail call double @llvm.fabs.f64(double %294)
%296 = load double, double* %15
%297 = tail call double @llvm.fabs.f64(double %296)
%298 = fcmp ult double %295, %297
br i1 %298, label %307, label %299
299: ; preds = %292
%300 = load double, double* %16
%301 = tail call double @llvm.fabs.f64(double %300)
%302 = fcmp ult double %301, %297
br i1 %302, label %307, label %303
303: ; preds = %299
%304 = load double, double* %20
%305 = fmul double %53, %304
%306 = fcmp ogt double %301, %305
br i1 %306, label %315, label %307
307: ; preds = %292, %299, %303, %287
%308 = phi i32 [ %293, %303 ], [ %293, %299 ], [ %293, %292 ], [ %288, %287 ]
%309 = mul nsw i32 %34, 20
%310 = icmp sgt i32 %68, %309
%311 = icmp eq i32 %68, 0
%312 = select i1 %311, i1 true, i1 %310
%313 = icmp eq i32 %308, 1
%314 = select i1 %312, i1 true, i1 %313
br i1 %314, label %315, label %325
315: ; preds = %303, %307
%316 = load double, double* %12
%317 = fmul double %39, %316
store double %317, double* %12
%318 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @.str.1, i64 0, i64 0), double %317)
%319 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.7, i64 0, i64 0))
store i32 0, i32* %1
%320 = load i32, i32* %0
%321 = add nsw i32 %320, 1
store i32 %321, i32* %0
%322 = icmp slt i32 %320, %37
br i1 %322, label %354, label %323
323: ; preds = %315
%324 = getelementptr inbounds double, double* %21, i64 2
store double 2.500000e-01, double* %324
store i32 1, i32* %11
br label %354
325: ; preds = %307
br i1 %70, label %326, label %352
326: ; preds = %325
%327 = icmp eq i32 %162, 0
%328 = icmp eq i32 %161, 0
%329 = select i1 %327, i1 %328, i1 false
br i1 %329, label %330, label %339
330: ; preds = %326
%331 = load i32, i32* %27
%332 = icmp eq i32 %331, 1
br i1 %332, label %333, label %350
333: ; preds = %330
%334 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.3, i64 0, i64 0), i32 %68)
%335 = load double, double* %12
%336 = fmul double %335, 1.200000e+00
store double %336, double* %12
%337 = fcmp ult double %336, 1.000000e+00
br i1 %337, label %354, label %338
338: ; preds = %333
store double 1.000000e+00, double* %12
br label %354
339: ; preds = %326
%340 = icmp ne i32 %162, 0
%341 = icmp ne i32 %161, 0
%342 = select i1 %340, i1 %341, i1 false
br i1 %342, label %343, label %350
343: ; preds = %339
%344 = load i32, i32* %27
%345 = icmp eq i32 %344, 1
br i1 %345, label %350, label %346
346: ; preds = %343
%347 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @.str.4, i64 0, i64 0), i32 %68)
%348 = load double, double* %12
%349 = fmul double %348, 8.000000e-01
store double %349, double* %12
br label %354
350: ; preds = %330, %343, %339
%351 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str.6, i64 0, i64 0))
br label %354
352: ; preds = %325
%353 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str.6, i64 0, i64 0))
br label %354
354: ; preds = %323, %315, %338, %333, %350, %346, %352, %222
ret void
}