#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;
  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];
  if (*iin <= ip) {
    c2t = 0.0001 * ran;
  } else {
    c2t = 0.0001 * rap;
  }
  if (*iin <= ip) {
    c1t = 0.0001 * ran;
  } else {
    c1t = 0.0001 * rap;
  }
  if (*iin <= ip) {
    c2f = 0.0001 * ran;
  } else {
    c2f = 0.0001 * rap;
  }
  if (*iin <= ip) {
    c1f = 0.0001 * ran;
  } else {
    c1f = 0.0001 * rap;
  }
  if (*iin <= ip) {
    c2p = 0.0001 * ran;
  } else {
    c2p = 0.0001 * rap;
  }
  if (*iin <= ip) {
    c1p = 0.0001 * ran;
  } else {
    c1p = 0.5 * rap;
  }
  if (*iin <= ip) {
    c2a = 0.0001 * ran;
  } else {
    c2a = 0.0001 * rap;
  }
  if (*cam1t < *cam2t) {
    *cam2t = *cam1t;
  }
  if (*cam1f < *cam2f) {
    *cam2f = *cam1f;
  }
  if (*cam1p < *cam2p) {
    *cam2p = *cam1p;
  }
  if (*cam1a < *cam2a) {
    *cam2a = *cam1a;
  }
  if (*ichannel == 1) {
    *ramt = 0.;
    *ramf = 0.;
    *ramp = 0.;
  }
  if ((*camt <= c2t * *vamt) && (*ramt < c1t * *qamt) && (*camt <= a2t) &&
      (*ramt < a1t) && (*camf <= c2f * *vamf) && (*ramf < c1f * *qamf) &&
      (*camf <= a2f) && (*ramf < a1f) && (*camp <= c2p * *vamp) &&
      (*ramp < c1p * qamp) && (*camp < a2p) && (*ramp < a1p) &&
      (*cama <= c2a * *vama) && (*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 ((*cam1t >= *cam2t) && (*camt >= *cam2t) && (*camt > c2t * *vamt)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*camf) > 1.e20)) {
      if ((*cam1f >= *cam2f) && (*camf >= *cam2f) && (*camf > c2f * *vamf)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*camp) > 1.e20)) {
      if ((*cam1p >= *cam2p) && (*camp >= *cam2p) && (*camp > c2p * *vamp)) {
        idivergence = 1;
      }
    }
    if ((*iin >= 20 * i0) || (fabs(*cama) > 1.e20)) {
      if ((*cam1a >= *cam2a) && (*cama >= *cam2a) && (*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 {
      printf("      no convergence\n\n");
    }
  }
  return;
}


x86 assembly (clang, -O0):
<checkconvnet>:
push   %rbp
mov    %rsp,%rbp
sub    $0x120,%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,-0xc8(%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,-0xd0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x80(%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x90(%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x98(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xb0(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xb8(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xc0(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0xc8(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x100(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    0x48(%rbp),%rax
movsd  0x108(%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    0x48(%rbp),%rax
movsd  0x110(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x118(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x48(%rbp),%rax
movsd  0x120(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x48(%rbp),%rax
movsd  0x128(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    0x48(%rbp),%rax
movsd  0x130(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    0x48(%rbp),%rax
movsd  0x140(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x148(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x150(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x158(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x160(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x168(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x48(%rbp),%rax
movsd  0x170(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     13fb <checkconvnet+0x2eb>
movsd  0xc1f(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x58(%rbp)
jmp    1410 <checkconvnet+0x300>
movsd  0xc05(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x58(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     1439 <checkconvnet+0x329>
movsd  0xbe1(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x78(%rbp)
jmp    144e <checkconvnet+0x33e>
movsd  0xbc7(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     1477 <checkconvnet+0x367>
movsd  0xba3(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x60(%rbp)
jmp    148c <checkconvnet+0x37c>
movsd  0xb89(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x60(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     14b5 <checkconvnet+0x3a5>
movsd  0xb65(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
jmp    14ca <checkconvnet+0x3ba>
movsd  0xb4b(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     14f3 <checkconvnet+0x3e3>
movsd  0xb27(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x68(%rbp)
jmp    1508 <checkconvnet+0x3f8>
movsd  0xb0d(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x68(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     1534 <checkconvnet+0x424>
movsd  0xae9(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
jmp    154c <checkconvnet+0x43c>
movsd  0xad4(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
cmp    -0x3c(%rbp),%eax
jg     1575 <checkconvnet+0x465>
movsd  0xaa5(%rip),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0x70(%rbp)
jmp    158a <checkconvnet+0x47a>
movsd  0xa8b(%rip),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    15b4 <checkconvnet+0x4a4>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm1
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    15de <checkconvnet+0x4ce>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm1
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1608 <checkconvnet+0x4f8>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm1
mov    0x58(%rbp),%rax
movsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1632 <checkconvnet+0x522>
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x58(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0xc0(%rbp),%rax
cmpl   $0x1,(%rax)
jne    166c <checkconvnet+0x55c>
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
movsd  -0x58(%rbp),%xmm0
mov    0x68(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xa0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x78(%rbp),%xmm0
mov    0x90(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x90(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xa0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xb0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x60(%rbp),%xmm0
mov    0x70(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xa8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x80(%rbp),%xmm0
mov    0x98(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x98(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xa8(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xb8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x68(%rbp),%xmm0
mov    0x78(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xb0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x88(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xa0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0xb0(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xc0(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jbe    1863 <checkconvnet+0x753>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0x70(%rbp),%xmm0
mov    0x80(%rbp),%rax
mulsd  (%rax),%xmm0
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm1
movsd  -0xa8(%rbp),%xmm0
ff
ucomisd %xmm1,%xmm0
jb     1863 <checkconvnet+0x753>
mov    0xb8(%rbp),%rax
cmpl   $0x1,(%rax)
jne    1863 <checkconvnet+0x753>
mov    -0x10(%rbp),%rax
cmpl   $0x3,(%rax)
jle    1863 <checkconvnet+0x753>
mov    -0x10(%rbp),%rax
mov    (%rax),%esi
lea    0x7fd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    0x38(%rbp),%rax
movl   $0x1,(%rax)
mov    -0x8(%rbp),%rax
movl   $0x0,(%rax)
jmp    1b72 <checkconvnet+0xa62>
movl   $0x0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    18a1 <checkconvnet+0x791>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x7a5(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x781(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    18f8 <checkconvnet+0x7e8>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd (%rax),%xmm0
jb     18f3 <checkconvnet+0x7e3>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x30(%rbp),%rax
ucomisd (%rax),%xmm0
jb     18f3 <checkconvnet+0x7e3>
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x58(%rbp),%xmm1
mov    0x68(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    18f3 <checkconvnet+0x7e3>
movl   $0x1,-0x50(%rbp)
jmp    18f8 <checkconvnet+0x7e8>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    192f <checkconvnet+0x81f>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x717(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x6f3(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1986 <checkconvnet+0x876>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1981 <checkconvnet+0x871>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x10(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1981 <checkconvnet+0x871>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x60(%rbp),%xmm1
mov    0x70(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1981 <checkconvnet+0x871>
movl   $0x1,-0x50(%rbp)
jmp    1986 <checkconvnet+0x876>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    19bd <checkconvnet+0x8ad>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x689(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x665(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1a14 <checkconvnet+0x904>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x18(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1a0f <checkconvnet+0x8ff>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x18(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1a0f <checkconvnet+0x8ff>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x68(%rbp),%xmm1
mov    0x78(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1a0f <checkconvnet+0x8ff>
movl   $0x1,-0x50(%rbp)
jmp    1a14 <checkconvnet+0x904>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x34(%rbp),%ecx
cmp    %ecx,%eax
jge    1a4b <checkconvnet+0x93b>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
movaps 0x5fb(%rip),%xmm1
pand   %xmm1,%xmm0
movsd  0x5d7(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1aa5 <checkconvnet+0x995>
mov    0x50(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x58(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1aa0 <checkconvnet+0x990>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
mov    0x58(%rbp),%rax
ucomisd (%rax),%xmm0
jb     1aa0 <checkconvnet+0x990>
mov    0x60(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x70(%rbp),%xmm1
mov    0x80(%rbp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1aa0 <checkconvnet+0x990>
movl   $0x1,-0x50(%rbp)
jmp    1aa5 <checkconvnet+0x995>
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
imul   $0x14,-0x40(%rbp),%ecx
cmp    %ecx,%eax
jle    1abe <checkconvnet+0x9ae>
movl   $0x1,-0x50(%rbp)
mov    -0x10(%rbp),%rax
cmpl   $0x0,(%rax)
jne    1ad2 <checkconvnet+0x9c2>
movl   $0x1,-0x50(%rbp)
cmpl   $0x1,-0x50(%rbp)
jne    1b5f <checkconvnet+0xa4f>
mov    0x40(%rbp),%rax
movsd  (%rax),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
mov    0x40(%rbp),%rax
movsd  %xmm0,(%rax)
mov    0x40(%rbp),%rax
movsd  (%rax),%xmm0
lea    0x574(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
lea    0x5af(%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    1b5a <checkconvnet+0xa4a>
mov    0x88(%rbp),%rax
movsd  0x4d5(%rip),%xmm0
movsd  %xmm0,0x10(%rax)
mov    0x38(%rbp),%rax
movl   $0x1,(%rax)
jmp    1b6d <checkconvnet+0xa5d>
lea    0x594(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1b72 <checkconvnet+0xa62>
add    $0x120,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<checkconvnet>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x98,%rsp
mov    %r8,0x48(%rsp)
mov    %rdi,0x38(%rsp)
mov    0x108(%rsp),%rbx
cvttsd2si 0x10(%rbx),%eax
movsd  0x90(%rbx),%xmm0
movsd  0xb0(%rbx),%xmm2
mov    %rsi,0x80(%rsp)
mov    (%rsi),%esi
movapd %xmm2,%xmm1
cmp    %eax,%esi
jg     116e <checkconvnet+0x4e>
movapd %xmm0,%xmm1
movsd  0xe8a(%rip),%xmm4
jg     1182 <checkconvnet+0x62>
mulsd  %xmm4,%xmm0
movapd %xmm0,%xmm2
jmp    118a <checkconvnet+0x6a>
mulsd  0xe7e(%rip),%xmm2
mov    0x180(%rsp),%r12
mov    0x178(%rsp),%rax
mov    %rax,0x58(%rsp)
mov    0x170(%rsp),%rax
mov    %rax,0x30(%rsp)
mov    0x168(%rsp),%rax
mov    %rax,0x40(%rsp)
mov    0x160(%rsp),%r10
mov    0x158(%rsp),%rax
mov    %rax,0x60(%rsp)
mov    0x150(%rsp),%r8
mov    0x148(%rsp),%rax
mov    %rax,0x68(%rsp)
cvttsd2si (%rbx),%r11d
mov    0x140(%rsp),%rax
mov    %rax,0x10(%rsp)
cvttsd2si 0x18(%rbx),%eax
mov    %rax,0x90(%rsp)
mov    0x138(%rsp),%rax
mov    %rax,0x18(%rsp)
cvttsd2si 0x38(%rbx),%eax
mov    %eax,0xc(%rsp)
mov    0x130(%rsp),%rax
mov    %rax,0x28(%rsp)
movsd  0x50(%rbx),%xmm0
movsd  0x140(%rbx),%xmm13
movsd  0x148(%rbx),%xmm11
movsd  0x150(%rbx),%xmm9
movsd  0x158(%rbx),%xmm3
movsd  0x160(%rbx),%xmm12
movsd  0x168(%rbx),%xmm10
movsd  0x170(%rbx),%xmm8
mov    0x128(%rsp),%rbp
mov    %rdx,0x70(%rsp)
movsd  (%rdx),%xmm5
movsd  (%r9),%xmm6
ucomisd %xmm5,%xmm6
mov    0x120(%rsp),%rbx
mov    0x118(%rsp),%rax
mov    %rax,(%rsp)
mov    0x110(%rsp),%rax
mov    %rax,0x50(%rsp)
mov    0x100(%rsp),%rax
mov    %rax,0x78(%rsp)
mov    0xf8(%rsp),%rax
mov    %rax,0x20(%rsp)
mov    0xf0(%rsp),%r14
mov    0xe8(%rsp),%rdi
mov    0xe0(%rsp),%rax
mov    0xd8(%rsp),%r13
mov    0xd0(%rsp),%r15
jbe    12ec <checkconvnet+0x1cc>
movsd  %xmm5,(%r9)
mov    %rcx,0x88(%rsp)
movsd  (%rcx),%xmm5
movsd  (%r15),%xmm6
ucomisd %xmm5,%xmm6
jbe    1308 <checkconvnet+0x1e8>
movsd  %xmm5,(%r15)
mov    0x48(%rsp),%rcx
movsd  (%rcx),%xmm5
movsd  0x0(%r13),%xmm6
ucomisd %xmm5,%xmm6
jbe    1323 <checkconvnet+0x203>
movsd  %xmm5,0x0(%r13)
mov    0x50(%rsp),%rcx
movsd  (%rcx),%xmm5
mov    (%rsp),%rcx
movsd  (%rcx),%xmm6
ucomisd %xmm5,%xmm6
jbe    1342 <checkconvnet+0x222>
mov    (%rsp),%rcx
movsd  %xmm5,(%rcx)
mulsd  %xmm4,%xmm1
cmpl   $0x1,(%r12)
mov    %rbx,%r12
jne    136f <checkconvnet+0x24f>
movq   $0x0,(%r10)
mov    0x40(%rsp),%rcx
movq   $0x0,(%rcx)
mov    0x30(%rsp),%rcx
movq   $0x0,(%rcx)
movsd  (%rax),%xmm4
movsd  0x0(%rbp),%xmm5
mulsd  %xmm1,%xmm5
ucomisd %xmm4,%xmm5
mov    %rdi,%rcx
jb     1494 <checkconvnet+0x374>
movsd  (%r10),%xmm6
movsd  (%r8),%xmm7
mulsd  %xmm1,%xmm7
ucomisd %xmm6,%xmm7
jbe    1494 <checkconvnet+0x374>
ucomisd %xmm4,%xmm3
jb     1494 <checkconvnet+0x374>
ucomisd %xmm6,%xmm13
jbe    1494 <checkconvnet+0x374>
movsd  (%rcx),%xmm3
mov    0x28(%rsp),%rax
movsd  (%rax),%xmm6
mulsd  %xmm1,%xmm6
ucomisd %xmm3,%xmm6
jb     1494 <checkconvnet+0x374>
mov    0x40(%rsp),%rax
movsd  (%rax),%xmm6
mov    0x60(%rsp),%rax
movsd  (%rax),%xmm7
mulsd  %xmm1,%xmm7
ucomisd %xmm6,%xmm7
jbe    1494 <checkconvnet+0x374>
ucomisd %xmm3,%xmm12
jb     1494 <checkconvnet+0x374>
ucomisd %xmm6,%xmm11
jbe    1494 <checkconvnet+0x374>
movsd  (%r14),%xmm3
mov    0x18(%rsp),%rax
movsd  (%rax),%xmm6
mulsd  %xmm1,%xmm6
ucomisd %xmm3,%xmm6
jb     1494 <checkconvnet+0x374>
mov    0x30(%rsp),%rax
movsd  (%rax),%xmm6
ucomisd %xmm6,%xmm2
jbe    1494 <checkconvnet+0x374>
ucomisd %xmm3,%xmm10
jbe    1494 <checkconvnet+0x374>
ucomisd %xmm6,%xmm9
jbe    1494 <checkconvnet+0x374>
movsd  (%r12),%xmm2
mov    0x10(%rsp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm1,%xmm3
ucomisd %xmm2,%xmm3
jb     1494 <checkconvnet+0x374>
ucomisd %xmm2,%xmm8
jb     1494 <checkconvnet+0x374>
mov    0x58(%rsp),%rax
cmpl   $0x1,(%rax)
jne    1494 <checkconvnet+0x374>
cmp    $0x4,%esi
jl     1494 <checkconvnet+0x374>
lea    0xbbe(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
mov    0x20(%rsp),%rax
movl   $0x1,(%rax)
mov    0x38(%rsp),%rax
movl   $0x0,(%rax)
jmp    1672 <checkconvnet+0x552>
shl    $0x2,%r11d
lea    (%r11,%r11,4),%edi
cmp    %edi,%esi
jge    14b8 <checkconvnet+0x398>
movapd 0xb78(%rip),%xmm2
andpd  %xmm4,%xmm2
xor    %ebp,%ebp
ucomisd 0xb5a(%rip),%xmm2
jbe    14e6 <checkconvnet+0x3c6>
mov    0x70(%rsp),%rax
movsd  (%rax),%xmm2
movsd  (%r9),%xmm3
ucomisd %xmm3,%xmm2
setae  %al
ucomisd %xmm3,%xmm4
setae  %dl
and    %al,%dl
ucomisd %xmm5,%xmm4
seta   %al
and    %dl,%al
movzbl %al,%ebp
cmp    %edi,%esi
jge    14fc <checkconvnet+0x3dc>
movsd  (%rcx),%xmm2
andpd  0xb2e(%rip),%xmm2
ucomisd 0xb16(%rip),%xmm2
jbe    1539 <checkconvnet+0x419>
mov    0x88(%rsp),%rax
movsd  (%rax),%xmm2
movsd  (%r15),%xmm3
ucomisd %xmm3,%xmm2
jb     1535 <checkconvnet+0x415>
movsd  (%rcx),%xmm2
ucomisd %xmm3,%xmm2
jb     1535 <checkconvnet+0x415>
mov    0x28(%rsp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm1,%xmm3
ucomisd %xmm3,%xmm2
jbe    1535 <checkconvnet+0x415>
mov    $0x1,%ebp
cmp    %edi,%esi
jge    1550 <checkconvnet+0x430>
movsd  (%r14),%xmm2
andpd  0xada(%rip),%xmm2
ucomisd 0xac2(%rip),%xmm2
jbe    158c <checkconvnet+0x46c>
mov    0x48(%rsp),%rax
movsd  (%rax),%xmm2
movsd  0x0(%r13),%xmm3
ucomisd %xmm3,%xmm2
jb     1588 <checkconvnet+0x468>
movsd  (%r14),%xmm2
ucomisd %xmm3,%xmm2
jb     1588 <checkconvnet+0x468>
mov    0x18(%rsp),%rax
movsd  (%rax),%xmm3
mulsd  %xmm1,%xmm3
ucomisd %xmm3,%xmm2
jbe    1588 <checkconvnet+0x468>
mov    $0x1,%ebp
cmp    %edi,%esi
jge    15a4 <checkconvnet+0x484>
movsd  (%r12),%xmm2
andpd  0xa86(%rip),%xmm2
ucomisd 0xa6e(%rip),%xmm2
jbe    15d6 <checkconvnet+0x4b6>
mov    0x50(%rsp),%rax
movsd  (%rax),%xmm2
mov    (%rsp),%rax
movsd  (%rax),%xmm3
ucomisd %xmm3,%xmm2
jb     15d6 <checkconvnet+0x4b6>
movsd  (%r12),%xmm2
ucomisd %xmm3,%xmm2
jb     15d6 <checkconvnet+0x4b6>
mov    0x10(%rsp),%rax
mulsd  (%rax),%xmm1
ucomisd %xmm1,%xmm2
ja     160d <checkconvnet+0x4ed>
test   %esi,%esi
je     160d <checkconvnet+0x4ed>
mov    0x90(%rsp),%rax
shl    $0x2,%eax
lea    (%rax,%rax,4),%eax
cmp    %eax,%esi
jg     160d <checkconvnet+0x4ed>
test   %ebp,%ebp
jne    160d <checkconvnet+0x4ed>
lea    0xab9(%rip),%rdi
add    $0x98,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <puts@plt>
mov    0x78(%rsp),%rax
mulsd  (%rax),%xmm0
movsd  %xmm0,(%rax)
lea    0xa46(%rip),%rdi
mov    $0x1,%al
call   1040 <printf@plt>
lea    0xa97(%rip),%rdi
call   1030 <puts@plt>
mov    0x80(%rsp),%rax
movl   $0x0,(%rax)
mov    0x38(%rsp),%rdx
mov    (%rdx),%eax
lea    0x1(%rax),%ecx
mov    %ecx,(%rdx)
cmp    0xc(%rsp),%eax
jl     1672 <checkconvnet+0x552>
movabs $0x3fd0000000000000,%rax
mov    0x68(%rsp),%rcx
mov    %rax,0x10(%rcx)
mov    0x20(%rsp),%rax
movl   $0x1,(%rax)
add    $0x98,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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 = [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 double
%68 = alloca double
%69 = alloca double
%70 = alloca double
%71 = alloca double
%72 = alloca double
%73 = alloca double
%74 = alloca double
%75 = alloca double
%76 = alloca double
%77 = alloca double
%78 = alloca double
%79 = alloca double
%80 = alloca double
%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
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* %81
%92 = load double*, double** %43
%93 = getelementptr inbounds double, double* %92, i64 0
%94 = load double, double* %93
%95 = fptosi double %94 to i32
store i32 %95, i32* %59
%96 = load double*, double** %43
%97 = getelementptr inbounds double, double* %96, i64 1
%98 = load double, double* %97
%99 = fptosi double %98 to i32
store i32 %99, i32* %60
%100 = load double*, double** %43
%101 = getelementptr inbounds double, double* %100, i64 2
%102 = load double, double* %101
%103 = fptosi double %102 to i32
store i32 %103, i32* %61
%104 = load double*, double** %43
%105 = getelementptr inbounds double, double* %104, i64 3
%106 = load double, double* %105
%107 = fptosi double %106 to i32
store i32 %107, i32* %62
%108 = load double*, double** %43
%109 = getelementptr inbounds double, double* %108, i64 4
%110 = load double, double* %109
%111 = fptosi double %110 to i32
store i32 %111, i32* %63
%112 = load double*, double** %43
%113 = getelementptr inbounds double, double* %112, i64 5
%114 = load double, double* %113
%115 = fptosi double %114 to i32
store i32 %115, i32* %64
%116 = load double*, double** %43
%117 = getelementptr inbounds double, double* %116, i64 7
%118 = load double, double* %117
%119 = fptosi double %118 to i32
store i32 %119, i32* %65
%120 = load double*, double** %43
%121 = getelementptr inbounds double, double* %120, i64 10
%122 = load double, double* %121
store double %122, double* %82
%123 = load double*, double** %43
%124 = getelementptr inbounds double, double* %123, i64 11
%125 = load double, double* %124
store double %125, double* %83
%126 = load double*, double** %43
%127 = getelementptr inbounds double, double* %126, i64 12
%128 = load double, double* %127
store double %128, double* %84
%129 = load double*, double** %43
%130 = getelementptr inbounds double, double* %129, i64 16
%131 = load double, double* %130
store double %131, double* %85
%132 = load double*, double** %43
%133 = getelementptr inbounds double, double* %132, i64 18
%134 = load double, double* %133
store double %134, double* %86
%135 = load double*, double** %43
%136 = getelementptr inbounds double, double* %135, i64 19
%137 = load double, double* %136
store double %137, double* %87
%138 = load double*, double** %43
%139 = getelementptr inbounds double, double* %138, i64 22
%140 = load double, double* %139
store double %140, double* %88
%141 = load double*, double** %43
%142 = getelementptr inbounds double, double* %141, i64 23
%143 = load double, double* %142
store double %143, double* %89
%144 = load double*, double** %43
%145 = getelementptr inbounds double, double* %144, i64 24
%146 = load double, double* %145
store double %146, double* %90
%147 = load double*, double** %43
%148 = getelementptr inbounds double, double* %147, i64 25
%149 = load double, double* %148
store double %149, double* %91
%150 = load double*, double** %43
%151 = getelementptr inbounds double, double* %150, i64 32
%152 = load double, double* %151
store double %152, double* %71
%153 = load double*, double** %43
%154 = getelementptr inbounds double, double* %153, i64 33
%155 = load double, double* %154
store double %155, double* %72
%156 = load double*, double** %43
%157 = getelementptr inbounds double, double* %156, i64 34
%158 = load double, double* %157
store double %158, double* %73
%159 = load double*, double** %43
%160 = getelementptr inbounds double, double* %159, i64 35
%161 = load double, double* %160
store double %161, double* %67
%162 = load double*, double** %43
%163 = getelementptr inbounds double, double* %162, i64 36
%164 = load double, double* %163
store double %164, double* %68
%165 = load double*, double** %43
%166 = getelementptr inbounds double, double* %165, i64 37
%167 = load double, double* %166
store double %167, double* %69
%168 = load double*, double** %43
%169 = getelementptr inbounds double, double* %168, i64 38
%170 = load double, double* %169
store double %170, double* %70
%171 = load double*, double** %43
%172 = getelementptr inbounds double, double* %171, i64 40
%173 = load double, double* %172
store double %173, double* %78
%174 = load double*, double** %43
%175 = getelementptr inbounds double, double* %174, i64 41
%176 = load double, double* %175
store double %176, double* %79
%177 = load double*, double** %43
%178 = getelementptr inbounds double, double* %177, i64 42
%179 = load double, double* %178
store double %179, double* %80
%180 = load double*, double** %43
%181 = getelementptr inbounds double, double* %180, i64 43
%182 = load double, double* %181
store double %182, double* %74
%183 = load double*, double** %43
%184 = getelementptr inbounds double, double* %183, i64 44
%185 = load double, double* %184
store double %185, double* %75
%186 = load double*, double** %43
%187 = getelementptr inbounds double, double* %186, i64 45
%188 = load double, double* %187
store double %188, double* %76
%189 = load double*, double** %43
%190 = getelementptr inbounds double, double* %189, i64 46
%191 = load double, double* %190
store double %191, double* %77
%192 = load i32*, i32** %31
%193 = load i32, i32* %192
%194 = load i32, i32* %61
%195 = icmp sle i32 %193, %194
br i1 %195, label %196, label %199
196: ; preds = %29
%197 = load double, double* %86
%198 = fmul double 1.000000e-04, %197
store double %198, double* %67
br label %202
199: ; preds = %29
%200 = load double, double* %88
%201 = fmul double 1.000000e-04, %200
store double %201, double* %67
br label %202
202: ; preds = %199, %196
%203 = load i32*, i32** %31
%204 = load i32, i32* %203
%205 = load i32, i32* %61
%206 = icmp sle i32 %204, %205
br i1 %206, label %207, label %210
207: ; preds = %202
%208 = load double, double* %86
%209 = fmul double 1.000000e-04, %208
store double %209, double* %71
br label %213
210: ; preds = %202
%211 = load double, double* %88
%212 = fmul double 1.000000e-04, %211
store double %212, double* %71
br label %213
213: ; preds = %210, %207
%214 = load i32*, i32** %31
%215 = load i32, i32* %214
%216 = load i32, i32* %61
%217 = icmp sle i32 %215, %216
br i1 %217, label %218, label %221
218: ; preds = %213
%219 = load double, double* %86
%220 = fmul double 1.000000e-04, %219
store double %220, double* %68
br label %224
221: ; preds = %213
%222 = load double, double* %88
%223 = fmul double 1.000000e-04, %222
store double %223, double* %68
br label %224
224: ; preds = %221, %218
%225 = load i32*, i32** %31
%226 = load i32, i32* %225
%227 = load i32, i32* %61
%228 = icmp sle i32 %226, %227
br i1 %228, label %229, label %232
229: ; preds = %224
%230 = load double, double* %86
%231 = fmul double 1.000000e-04, %230
store double %231, double* %72
br label %235
232: ; preds = %224
%233 = load double, double* %88
%234 = fmul double 1.000000e-04, %233
store double %234, double* %72
br label %235
235: ; preds = %232, %229
%236 = load i32*, i32** %31
%237 = load i32, i32* %236
%238 = load i32, i32* %61
%239 = icmp sle i32 %237, %238
br i1 %239, label %240, label %243
240: ; preds = %235
%241 = load double, double* %86
%242 = fmul double 1.000000e-04, %241
store double %242, double* %69
br label %246
243: ; preds = %235
%244 = load double, double* %88
%245 = fmul double 1.000000e-04, %244
store double %245, double* %69
br label %246
246: ; preds = %243, %240
%247 = load i32*, i32** %31
%248 = load i32, i32* %247
%249 = load i32, i32* %61
%250 = icmp sle i32 %248, %249
br i1 %250, label %251, label %254
251: ; preds = %246
%252 = load double, double* %86
%253 = fmul double 1.000000e-04, %252
store double %253, double* %73
br label %257
254: ; preds = %246
%255 = load double, double* %88
%256 = fmul double 5.000000e-01, %255
store double %256, double* %73
br label %257
257: ; preds = %254, %251
%258 = load i32*, i32** %31
%259 = load i32, i32* %258
%260 = load i32, i32* %61
%261 = icmp sle i32 %259, %260
br i1 %261, label %262, label %265
262: ; preds = %257
%263 = load double, double* %86
%264 = fmul double 1.000000e-04, %263
store double %264, double* %70
br label %268
265: ; preds = %257
%266 = load double, double* %88
%267 = fmul double 1.000000e-04, %266
store double %267, double* %70
br label %268
268: ; preds = %265, %262
%269 = load double*, double** %32
%270 = load double, double* %269
%271 = load double*, double** %35
%272 = load double, double* %271
%273 = fcmp olt double %270, %272
br i1 %273, label %274, label %278
274: ; preds = %268
%275 = load double*, double** %32
%276 = load double, double* %275
%277 = load double*, double** %35
store double %276, double* %277
br label %278
278: ; preds = %274, %268
%279 = load double*, double** %33
%280 = load double, double* %279
%281 = load double*, double** %36
%282 = load double, double* %281
%283 = fcmp olt double %280, %282
br i1 %283, label %284, label %288
284: ; preds = %278
%285 = load double*, double** %33
%286 = load double, double* %285
%287 = load double*, double** %36
store double %286, double* %287
br label %288
288: ; preds = %284, %278
%289 = load double*, double** %34
%290 = load double, double* %289
%291 = load double*, double** %37
%292 = load double, double* %291
%293 = fcmp olt double %290, %292
br i1 %293, label %294, label %298
294: ; preds = %288
%295 = load double*, double** %34
%296 = load double, double* %295
%297 = load double*, double** %37
store double %296, double* %297
br label %298
298: ; preds = %294, %288
%299 = load double*, double** %44
%300 = load double, double* %299
%301 = load double*, double** %45
%302 = load double, double* %301
%303 = fcmp olt double %300, %302
br i1 %303, label %304, label %308
304: ; preds = %298
%305 = load double*, double** %44
%306 = load double, double* %305
%307 = load double*, double** %45
store double %306, double* %307
br label %308
308: ; preds = %304, %298
%309 = load i32*, i32** %58
%310 = load i32, i32* %309
%311 = icmp eq i32 %310, 1
br i1 %311, label %312, label %316
312: ; preds = %308
%313 = load double*, double** %54
store double 0.000000e+00, double* %313
%314 = load double*, double** %55
store double 0.000000e+00, double* %314
%315 = load double*, double** %56
store double 0.000000e+00, double* %315
br label %316
316: ; preds = %312, %308
%317 = load double*, double** %38
%318 = load double, double* %317
%319 = load double, double* %67
%320 = load double*, double** %47
%321 = load double, double* %320
%322 = fmul double %319, %321
%323 = fcmp ole double %318, %322
br i1 %323, label %324, label %420
324: ; preds = %316
%325 = load double*, double** %54
%326 = load double, double* %325
%327 = load double, double* %71
%328 = load double*, double** %52
%329 = load double, double* %328
%330 = fmul double %327, %329
%331 = fcmp olt double %326, %330
br i1 %331, label %332, label %420
332: ; preds = %324
%333 = load double*, double** %38
%334 = load double, double* %333
%335 = load double, double* %74
%336 = fcmp ole double %334, %335
br i1 %336, label %337, label %420
337: ; preds = %332
%338 = load double*, double** %54
%339 = load double, double* %338
%340 = load double, double* %78
%341 = fcmp olt double %339, %340
br i1 %341, label %342, label %420
342: ; preds = %337
%343 = load double*, double** %39
%344 = load double, double* %343
%345 = load double, double* %68
%346 = load double*, double** %48
%347 = load double, double* %346
%348 = fmul double %345, %347
%349 = fcmp ole double %344, %348
br i1 %349, label %350, label %420
350: ; preds = %342
%351 = load double*, double** %55
%352 = load double, double* %351
%353 = load double, double* %72
%354 = load double*, double** %53
%355 = load double, double* %354
%356 = fmul double %353, %355
%357 = fcmp olt double %352, %356
br i1 %357, label %358, label %420
358: ; preds = %350
%359 = load double*, double** %39
%360 = load double, double* %359
%361 = load double, double* %75
%362 = fcmp ole double %360, %361
br i1 %362, label %363, label %420
363: ; preds = %358
%364 = load double*, double** %55
%365 = load double, double* %364
%366 = load double, double* %79
%367 = fcmp olt double %365, %366
br i1 %367, label %368, label %420
368: ; preds = %363
%369 = load double*, double** %40
%370 = load double, double* %369
%371 = load double, double* %69
%372 = load double*, double** %49
%373 = load double, double* %372
%374 = fmul double %371, %373
%375 = fcmp ole double %370, %374
br i1 %375, label %376, label %420
376: ; preds = %368
%377 = load double*, double** %56
%378 = load double, double* %377
%379 = load double, double* %73
%380 = load double, double* %81
%381 = fmul double %379, %380
%382 = fcmp olt double %378, %381
br i1 %382, label %383, label %420
383: ; preds = %376
%384 = load double*, double** %40
%385 = load double, double* %384
%386 = load double, double* %76
%387 = fcmp olt double %385, %386
br i1 %387, label %388, label %420
388: ; preds = %383
%389 = load double*, double** %56
%390 = load double, double* %389
%391 = load double, double* %80
%392 = fcmp olt double %390, %391
br i1 %392, label %393, label %420
393: ; preds = %388
%394 = load double*, double** %46
%395 = load double, double* %394
%396 = load double, double* %70
%397 = load double*, double** %50
%398 = load double, double* %397
%399 = fmul double %396, %398
%400 = fcmp ole double %395, %399
br i1 %400, label %401, label %420
401: ; preds = %393
%402 = load double*, double** %46
%403 = load double, double* %402
%404 = load double, double* %77
%405 = fcmp ole double %403, %404
br i1 %405, label %406, label %420
406: ; preds = %401
%407 = load i32*, i32** %57
%408 = load i32, i32* %407
%409 = icmp eq i32 %408, 1
br i1 %409, label %410, label %420
410: ; preds = %406
%411 = load i32*, i32** %31
%412 = load i32, i32* %411
%413 = icmp sgt i32 %412, 3
br i1 %413, label %414, label %420
414: ; preds = %410
%415 = load i32*, i32** %31
%416 = load i32, i32* %415
%417 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str, i64 0, i64 0), i32 %416)
%418 = load i32*, i32** %41
store i32 1, i32* %418
%419 = load i32*, i32** %30
store i32 0, i32* %419
br label %593
420: ; preds = %410, %406, %401, %393, %388, %383, %376, %368, %363, %358, %350, %342, %337, %332, %324, %316
store i32 0, i32* %66
%421 = load i32*, i32** %31
%422 = load i32, i32* %421
%423 = load i32, i32* %59
%424 = mul nsw i32 20, %423
%425 = icmp sge i32 %422, %424
br i1 %425, label %431, label %426
426: ; preds = %420
%427 = load double*, double** %38
%428 = load double, double* %427
%429 = call double @llvm.fabs.f64(double %428)
%430 = fcmp ogt double %429, 1.000000e+20
br i1 %430, label %431, label %453
431: ; preds = %426, %420
%432 = load double*, double** %32
%433 = load double, double* %432
%434 = load double*, double** %35
%435 = load double, double* %434
%436 = fcmp oge double %433, %435
br i1 %436, label %437, label %452
437: ; preds = %431
%438 = load double*, double** %38
%439 = load double, double* %438
%440 = load double*, double** %35
%441 = load double, double* %440
%442 = fcmp oge double %439, %441
br i1 %442, label %443, label %452
443: ; preds = %437
%444 = load double*, double** %38
%445 = load double, double* %444
%446 = load double, double* %67
%447 = load double*, double** %47
%448 = load double, double* %447
%449 = fmul double %446, %448
%450 = fcmp ogt double %445, %449
br i1 %450, label %451, label %452
451: ; preds = %443
store i32 1, i32* %66
br label %452
452: ; preds = %451, %443, %437, %431
br label %453
453: ; preds = %452, %426
%454 = load i32*, i32** %31
%455 = load i32, i32* %454
%456 = load i32, i32* %59
%457 = mul nsw i32 20, %456
%458 = icmp sge i32 %455, %457
br i1 %458, label %464, label %459
459: ; preds = %453
%460 = load double*, double** %39
%461 = load double, double* %460
%462 = call double @llvm.fabs.f64(double %461)
%463 = fcmp ogt double %462, 1.000000e+20
br i1 %463, label %464, label %486
464: ; preds = %459, %453
%465 = load double*, double** %33
%466 = load double, double* %465
%467 = load double*, double** %36
%468 = load double, double* %467
%469 = fcmp oge double %466, %468
br i1 %469, label %470, label %485
470: ; preds = %464
%471 = load double*, double** %39
%472 = load double, double* %471
%473 = load double*, double** %36
%474 = load double, double* %473
%475 = fcmp oge double %472, %474
br i1 %475, label %476, label %485
476: ; preds = %470
%477 = load double*, double** %39
%478 = load double, double* %477
%479 = load double, double* %68
%480 = load double*, double** %48
%481 = load double, double* %480
%482 = fmul double %479, %481
%483 = fcmp ogt double %478, %482
br i1 %483, label %484, label %485
484: ; preds = %476
store i32 1, i32* %66
br label %485
485: ; preds = %484, %476, %470, %464
br label %486
486: ; preds = %485, %459
%487 = load i32*, i32** %31
%488 = load i32, i32* %487
%489 = load i32, i32* %59
%490 = mul nsw i32 20, %489
%491 = icmp sge i32 %488, %490
br i1 %491, label %497, label %492
492: ; preds = %486
%493 = load double*, double** %40
%494 = load double, double* %493
%495 = call double @llvm.fabs.f64(double %494)
%496 = fcmp ogt double %495, 1.000000e+20
br i1 %496, label %497, label %519
497: ; preds = %492, %486
%498 = load double*, double** %34
%499 = load double, double* %498
%500 = load double*, double** %37
%501 = load double, double* %500
%502 = fcmp oge double %499, %501
br i1 %502, label %503, label %518
503: ; preds = %497
%504 = load double*, double** %40
%505 = load double, double* %504
%506 = load double*, double** %37
%507 = load double, double* %506
%508 = fcmp oge double %505, %507
br i1 %508, label %509, label %518
509: ; preds = %503
%510 = load double*, double** %40
%511 = load double, double* %510
%512 = load double, double* %69
%513 = load double*, double** %49
%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 = %509
store i32 1, i32* %66
br label %518
518: ; preds = %517, %509, %503, %497
br label %519
519: ; preds = %518, %492
%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** %46
%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 %552
530: ; preds = %525, %519
%531 = load double*, double** %44
%532 = load double, double* %531
%533 = load double*, double** %45
%534 = load double, double* %533
%535 = fcmp oge double %532, %534
br i1 %535, label %536, label %551
536: ; preds = %530
%537 = load double*, double** %46
%538 = load double, double* %537
%539 = load double*, double** %45
%540 = load double, double* %539
%541 = fcmp oge double %538, %540
br i1 %541, label %542, label %551
542: ; preds = %536
%543 = load double*, double** %46
%544 = load double, double* %543
%545 = load double, double* %70
%546 = load double*, double** %50
%547 = load double, double* %546
%548 = fmul double %545, %547
%549 = fcmp ogt double %544, %548
br i1 %549, label %550, label %551
550: ; preds = %542
store i32 1, i32* %66
br label %551
551: ; preds = %550, %542, %536, %530
br label %552
552: ; preds = %551, %525
%553 = load i32*, i32** %31
%554 = load i32, i32* %553
%555 = load i32, i32* %62
%556 = mul nsw i32 20, %555
%557 = icmp sgt i32 %554, %556
br i1 %557, label %558, label %559
558: ; preds = %552
store i32 1, i32* %66
br label %559
559: ; preds = %558, %552
%560 = load i32*, i32** %31
%561 = load i32, i32* %560
%562 = icmp eq i32 %561, 0
br i1 %562, label %563, label %564
563: ; preds = %559
store i32 1, i32* %66
br label %564
564: ; preds = %563, %559
%565 = load i32, i32* %66
%566 = icmp eq i32 %565, 1
br i1 %566, label %567, label %590
567: ; preds = %564
%568 = load double*, double** %42
%569 = load double, double* %568
%570 = load double, double* %82
%571 = fmul double %569, %570
%572 = load double*, double** %42
store double %571, double* %572
%573 = load double*, double** %42
%574 = load double, double* %573
%575 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([73 x i8], [73 x i8]* @.str.1, i64 0, i64 0), double %574)
%576 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.2, i64 0, i64 0))
%577 = load i32*, i32** %31
store i32 0, i32* %577
%578 = load i32*, i32** %30
%579 = load i32, i32* %578
%580 = add nsw i32 %579, 1
store i32 %580, i32* %578
%581 = load i32*, i32** %30
%582 = load i32, i32* %581
%583 = load i32, i32* %65
%584 = icmp sgt i32 %582, %583
br i1 %584, label %585, label %589
585: ; preds = %567
%586 = load double*, double** %51
%587 = getelementptr inbounds double, double* %586, i64 2
store double 2.500000e-01, double* %587
%588 = load i32*, i32** %41
store i32 1, i32* %588
br label %589
589: ; preds = %585, %567
br label %592
590: ; preds = %564
%591 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.3, i64 0, i64 0))
br label %592
592: ; preds = %590, %589
br label %593
593: ; preds = %592, %414
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 = [22 x i8] c" no convergence\0A\00"
@str.4 = [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 2
%33 = load double, double* %32
%34 = fptosi double %33 to i32
%35 = getelementptr inbounds double, double* %13, i64 3
%36 = load double, double* %35
%37 = fptosi double %36 to i32
%38 = getelementptr inbounds double, double* %13, i64 7
%39 = load double, double* %38
%40 = fptosi double %39 to i32
%41 = getelementptr inbounds double, double* %13, i64 10
%42 = load double, double* %41
%43 = getelementptr inbounds double, double* %13, i64 18
%44 = load double, double* %43
%45 = getelementptr inbounds double, double* %13, i64 22
%46 = load double, double* %45
%47 = getelementptr inbounds double, double* %13, i64 40
%48 = load double, double* %47
%49 = getelementptr inbounds double, double* %13, i64 41
%50 = load double, double* %49
%51 = getelementptr inbounds double, double* %13, i64 42
%52 = load double, double* %51
%53 = getelementptr inbounds double, double* %13, i64 43
%54 = load double, double* %53
%55 = getelementptr inbounds double, double* %13, i64 44
%56 = load double, double* %55
%57 = getelementptr inbounds double, double* %13, i64 45
%58 = load double, double* %57
%59 = getelementptr inbounds double, double* %13, i64 46
%60 = load double, double* %59
%61 = load i32, i32* %1
%62 = icmp sgt i32 %61, %34
%63 = select i1 %62, double %46, double %44
%64 = fmul double %63, 1.000000e-04
%65 = fmul double %44, 1.000000e-04
%66 = fmul double %46, 5.000000e-01
%67 = select i1 %62, double %66, double %65
%68 = load double, double* %2
%69 = load double, double* %5
%70 = fcmp olt double %68, %69
br i1 %70, label %71, label %72
71: ; preds = %29
store double %68, double* %5
br label %72
72: ; preds = %71, %29
%73 = load double, double* %3
%74 = load double, double* %6
%75 = fcmp olt double %73, %74
br i1 %75, label %76, label %77
76: ; preds = %72
store double %73, double* %6
br label %77
77: ; preds = %76, %72
%78 = load double, double* %4
%79 = load double, double* %7
%80 = fcmp olt double %78, %79
br i1 %80, label %81, label %82
81: ; preds = %77
store double %78, double* %7
br label %82
82: ; preds = %81, %77
%83 = load double, double* %14
%84 = load double, double* %15
%85 = fcmp olt double %83, %84
br i1 %85, label %86, label %87
86: ; preds = %82
store double %83, double* %15
br label %87
87: ; preds = %86, %82
%88 = load i32, i32* %28
%89 = icmp eq i32 %88, 1
br i1 %89, label %90, label %91
90: ; preds = %87
store double 0.000000e+00, double* %24
store double 0.000000e+00, double* %25
store double 0.000000e+00, double* %26
br label %91
91: ; preds = %90, %87
%92 = load double, double* %8
%93 = load double, double* %17
%94 = fmul double %64, %93
%95 = fcmp ugt double %92, %94
br i1 %95, label %145, label %96
96: ; preds = %91
%97 = load double, double* %24
%98 = load double, double* %22
%99 = fmul double %64, %98
%100 = fcmp olt double %97, %99
%101 = fcmp ole double %92, %54
%102 = select i1 %100, i1 %101, i1 false
%103 = fcmp olt double %97, %48
%104 = select i1 %102, i1 %103, i1 false
br i1 %104, label %105, label %145
105: ; preds = %96
%106 = load double, double* %9
%107 = load double, double* %18
%108 = fmul double %64, %107
%109 = fcmp ugt double %106, %108
br i1 %109, label %145, label %110
110: ; preds = %105
%111 = load double, double* %25
%112 = load double, double* %23
%113 = fmul double %64, %112
%114 = fcmp olt double %111, %113
%115 = fcmp ole double %106, %56
%116 = select i1 %114, i1 %115, i1 false
%117 = fcmp olt double %111, %50
%118 = select i1 %116, i1 %117, i1 false
br i1 %118, label %119, label %145
119: ; preds = %110
%120 = load double, double* %10
%121 = load double, double* %19
%122 = fmul double %64, %121
%123 = fcmp ugt double %120, %122
br i1 %123, label %145, label %124
124: ; preds = %119
%125 = load double, double* %26
%126 = fcmp olt double %125, %67
%127 = fcmp olt double %120, %58
%128 = select i1 %126, i1 %127, i1 false
%129 = fcmp olt double %125, %52
%130 = select i1 %128, i1 %129, i1 false
br i1 %130, label %131, label %145
131: ; preds = %124
%132 = load double, double* %16
%133 = load double, double* %20
%134 = fmul double %64, %133
%135 = fcmp ugt double %132, %134
%136 = fcmp ugt double %132, %60
%137 = select i1 %135, i1 true, i1 %136
br i1 %137, label %145, label %138
138: ; preds = %131
%139 = load i32, i32* %27
%140 = icmp eq i32 %139, 1
%141 = icmp sgt i32 %61, 3
%142 = select i1 %140, i1 %141, i1 false
br i1 %142, label %143, label %145
143: ; preds = %138
%144 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str, i64 0, i64 0), i32 %61)
store i32 1, i32* %11
store i32 0, i32* %0
br label %238
145: ; preds = %138, %131, %124, %119, %110, %105, %96, %91
%146 = mul nsw i32 %31, 20
%147 = icmp slt i32 %61, %146
%148 = xor i1 %147, true
%149 = tail call double @llvm.fabs.f64(double %92)
%150 = fcmp ogt double %149, 1.000000e+20
%151 = select i1 %148, i1 true, i1 %150
br i1 %151, label %152, label %161
152: ; preds = %145
%153 = load double, double* %2
%154 = load double, double* %5
%155 = fcmp oge double %153, %154
%156 = fcmp oge double %92, %154
%157 = select i1 %155, i1 %156, i1 false
%158 = fcmp ogt double %92, %94
%159 = select i1 %157, i1 %158, i1 false
%160 = zext i1 %159 to i32
br i1 %147, label %161, label %166
161: ; preds = %145, %152
%162 = phi i32 [ %160, %152 ], [ 0, %145 ]
%163 = load double, double* %9
%164 = tail call double @llvm.fabs.f64(double %163)
%165 = fcmp ogt double %164, 1.000000e+20
br i1 %165, label %166, label %181
166: ; preds = %161, %152
%167 = phi i32 [ %162, %161 ], [ %160, %152 ]
%168 = load double, double* %3
%169 = load double, double* %6
%170 = fcmp ult double %168, %169
br i1 %170, label %179, label %171
171: ; preds = %166
%172 = load double, double* %9
%173 = fcmp ult double %172, %169
br i1 %173, label %179, label %174
174: ; preds = %171
%175 = load double, double* %18
%176 = fmul double %64, %175
%177 = fcmp ogt double %172, %176
br i1 %177, label %178, label %179
178: ; preds = %174
br label %179
179: ; preds = %166, %171, %174, %178
%180 = phi i32 [ 1, %178 ], [ %167, %174 ], [ %167, %171 ], [ %167, %166 ]
br i1 %147, label %181, label %186
181: ; preds = %161, %179
%182 = phi i32 [ %180, %179 ], [ %162, %161 ]
%183 = load double, double* %10
%184 = tail call double @llvm.fabs.f64(double %183)
%185 = fcmp ogt double %184, 1.000000e+20
br i1 %185, label %186, label %201
186: ; preds = %181, %179
%187 = phi i32 [ %182, %181 ], [ %180, %179 ]
%188 = load double, double* %4
%189 = load double, double* %7
%190 = fcmp ult double %188, %189
br i1 %190, label %199, label %191
191: ; preds = %186
%192 = load double, double* %10
%193 = fcmp ult double %192, %189
br i1 %193, label %199, label %194
194: ; preds = %191
%195 = load double, double* %19
%196 = fmul double %64, %195
%197 = fcmp ogt double %192, %196
br i1 %197, label %198, label %199
198: ; preds = %194
br label %199
199: ; preds = %186, %191, %194, %198
%200 = phi i32 [ 1, %198 ], [ %187, %194 ], [ %187, %191 ], [ %187, %186 ]
br i1 %147, label %201, label %206
201: ; preds = %181, %199
%202 = phi i32 [ %200, %199 ], [ %182, %181 ]
%203 = load double, double* %16
%204 = tail call double @llvm.fabs.f64(double %203)
%205 = fcmp ogt double %204, 1.000000e+20
br i1 %205, label %206, label %218
206: ; preds = %201, %199
%207 = phi i32 [ %202, %201 ], [ %200, %199 ]
%208 = load double, double* %14
%209 = load double, double* %15
%210 = fcmp ult double %208, %209
br i1 %210, label %218, label %211
211: ; preds = %206
%212 = load double, double* %16
%213 = fcmp ult double %212, %209
br i1 %213, label %218, label %214
214: ; preds = %211
%215 = load double, double* %20
%216 = fmul double %64, %215
%217 = fcmp ogt double %212, %216
br i1 %217, label %226, label %218
218: ; preds = %206, %211, %214, %201
%219 = phi i32 [ %207, %214 ], [ %207, %211 ], [ %207, %206 ], [ %202, %201 ]
%220 = mul nsw i32 %37, 20
%221 = icmp sgt i32 %61, %220
%222 = icmp eq i32 %61, 0
%223 = select i1 %222, i1 true, i1 %221
%224 = icmp eq i32 %219, 1
%225 = select i1 %223, i1 true, i1 %224
br i1 %225, label %226, label %236
226: ; preds = %214, %218
%227 = load double, double* %12
%228 = fmul double %42, %227
store double %228, double* %12
%229 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([73 x i8], [73 x i8]* @.str.1, i64 0, i64 0), double %228)
%230 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.4, i64 0, i64 0))
store i32 0, i32* %1
%231 = load i32, i32* %0
%232 = add nsw i32 %231, 1
store i32 %232, i32* %0
%233 = icmp slt i32 %231, %40
br i1 %233, label %238, label %234
234: ; preds = %226
%235 = getelementptr inbounds double, double* %21, i64 2
store double 2.500000e-01, double* %235
store i32 1, i32* %11
br label %238
236: ; preds = %218
%237 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str, i64 0, i64 0))
br label %238
238: ; preds = %236, %234, %226, %143
ret void
}