#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 */
int fabs(float);
void par_monitor(int l, int j, float a[], int ia[], float atry[], double da[]) {
  extern int (*pfunc)(const char *, ...);
  extern char device[];
  int hitwall = 0;
  atry[l] = a[l] + da[j];
  if ((l + 2) % 10 == 0) {
    if (atry[l] > 1.) {
      if (ia[l + 1] == 1)
        atry[l + 1] = atry[l + 1] + 90.;
      if (ia[l] == 1)
        atry[l] = 1. / atry[l];
    }
    if (fabs(a[l] / atry[l]) >= 100.) {
      atry[l] = a[l] / 100.;
    };
    if (atry[l] < 0.) {
      atry[l] = fabs(atry[l]);
    };
    return;
  };
  if ((l + 7) % 10 == 0) {
    return;
  };
  if ((l + 6) % 10 == 0) {
    if (atry[l] / a[l] >= 10.) {
      atry[l] = a[l] * 10.;
    } else if (a[l] / atry[l] >= 10.) {
      atry[l] = a[l] / 10.;
    };
    if (a[l] <= 0.00) {
      a[l] = 1e33;
      hitwall = 1;
    };
    if (atry[l] <= 0.00) {
      atry[l] = 1e33;
      hitwall = 1;
    };
    return;
  };
  if ((l + 5) % 10 == 0) {
    if (fabs(atry[l] / a[l]) >= 10.) {
      atry[l] = a[l] * 10.;
    } else if (a[l] / atry[l] >= 10.) {
      atry[l] = a[l] / 10.;
    }
    if (atry[l] > 10.) {
      atry[l] = 10.;
    } else if (atry[l] < 0.0) {
      atry[l] = 0.1;
    };
    return;
  };
  if ((l + 9) % 10 == 0 || (l + 8) % 10 == 0) {
    if (atry[l] - a[l] >= 100000.) {
      atry[l] = a[l] + 100000.;
    } else if (a[l] - atry[l] >= 100000.) {
      atry[l] = a[l] - 100000.;
    };
    return;
  };
  if ((l + 1) % 10 == 0) {
    return;
  };
  if (l % 10 == 0) {
    if (atry[l] <= -2.0) {
      atry[l] = -2.0;
    };
    return;
  };
  if ((l + 3) % 10 == 0 || (l + 4) % 10 == 0) {
    if (atry[l] < 0.)
      atry[l] = 0.0;
    hitwall = 1;
  }
  return;
}


x86 assembly (clang, -O0):
<par_monitor>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
movl   $0x0,-0x2c(%rbp)
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
mov    -0x28(%rbp),%rax
movslq -0x8(%rbp),%rcx
addsd  (%rax,%rcx,8),%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x4(%rbp),%eax
add    $0x2,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    12db <par_monitor+0x1cb>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe84(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1232 <par_monitor+0x122>
mov    -0x18(%rbp),%rax
mov    -0x4(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    11ed <par_monitor+0xdd>
mov    -0x20(%rbp),%rax
mov    -0x4(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xe4d(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
mov    -0x4(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x18(%rbp),%rax
movslq -0x4(%rbp),%rcx
cmpl   $0x1,(%rax,%rcx,4)
jne    122d <par_monitor+0x11d>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xe00(%rip),%xmm0
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    1232 <par_monitor+0x122>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
call   1030 <fabs@plt>
cvtsi2sd %eax,%xmm0
movsd  0xdcb(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1295 <par_monitor+0x185>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xda8(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    12d6 <par_monitor+0x1c6>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
call   1030 <fabs@plt>
cvtsi2ss %eax,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x7,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    12f7 <par_monitor+0x1e7>
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x6,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    144d <par_monitor+0x33d>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcdc(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1371 <par_monitor+0x261>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xcb9(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    13d4 <par_monitor+0x2c4>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc79(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     13cf <par_monitor+0x2bf>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xc56(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    13d4 <par_monitor+0x2c4>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     140e <par_monitor+0x2fe>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  0xc3a(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
movl   $0x1,-0x2c(%rbp)
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jb     1448 <par_monitor+0x338>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  0xc00(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
movl   $0x1,-0x2c(%rbp)
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x5,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    15a9 <par_monitor+0x499>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
call   1030 <fabs@plt>
cvtsi2sd %eax,%xmm0
movsd  0xb81(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     14cc <par_monitor+0x3bc>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb5e(%rip),%xmm1
mulsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    152f <par_monitor+0x41f>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
divss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xb1e(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     152a <par_monitor+0x41a>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xafb(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    152f <par_monitor+0x41f>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xac8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    156c <par_monitor+0x45c>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  0xad6(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
jmp    15a4 <par_monitor+0x494>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    159f <par_monitor+0x48f>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  0xa9a(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
jmp    15a4 <par_monitor+0x494>
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x9,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     15d7 <par_monitor+0x4c7>
mov    -0x4(%rbp),%eax
add    $0x8,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    16a2 <par_monitor+0x592>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xa0b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     163a <par_monitor+0x52a>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9e8(%rip),%xmm1
addsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    169d <par_monitor+0x58d>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
subss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x9a8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1698 <par_monitor+0x588>
mov    -0x10(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0x985(%rip),%xmm1
subsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
jmp    169d <par_monitor+0x58d>
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    16be <par_monitor+0x5ae>
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    170f <par_monitor+0x5ff>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x915(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     170a <par_monitor+0x5fa>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  0x92b(%rip),%xmm0
movss  %xmm0,(%rax,%rcx,4)
jmp    1777 <par_monitor+0x667>
mov    -0x4(%rbp),%eax
add    $0x3,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
je     173d <par_monitor+0x62d>
mov    -0x4(%rbp),%eax
add    $0x4,%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1772 <par_monitor+0x662>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
movss  (%rax,%rcx,4),%xmm0
cvtss2sd %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    176b <par_monitor+0x65b>
mov    -0x20(%rbp),%rax
movslq -0x4(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
movl   $0x1,-0x2c(%rbp)
jmp    1777 <par_monitor+0x667>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<par_monitor>:
push   %r15
push   %r14
push   %rbx
mov    %r8,%r14
mov    %rdx,%r15
movslq %edi,%rbx
movss  (%rdx,%rbx,4),%xmm0
cvtss2sd %xmm0,%xmm0
movslq %esi,%rax
addsd  (%r9,%rax,8),%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,(%r8,%rbx,4)
imul   $0xcccccccd,%ebx,%eax
lea    -0x4cccccce(%rax),%edx
ror    %edx
cmp    $0x19999998,%edx
jbe    121a <par_monitor+0x10a>
lea    -0x4ccccccd(%rax),%ecx
ror    %ecx
cmp    $0x19999999,%ecx
jb     13cf <par_monitor+0x2bf>
lea    -0x1999999a(%rax),%ecx
ror    %ecx
cmp    $0x19999998,%ecx
jbe    12ad <par_monitor+0x19d>
lea    0x19999999(%rax),%ecx
ror    %ecx
cmp    $0x19999998,%ecx
jbe    1314 <par_monitor+0x204>
lea    0x4ccccccd(%rax),%ecx
ror    %ecx
cmp    $0x19999999,%ecx
jb     12dd <par_monitor+0x1cd>
lea    -0x80000000(%rax),%ecx
ror    %ecx
cmp    $0x19999998,%ecx
jbe    12dd <par_monitor+0x1cd>
lea    -0x1999999b(%rax),%ecx
ror    %ecx
cmp    $0x19999999,%ecx
jb     13cf <par_monitor+0x2bf>
lea    0x19999998(%rax),%ecx
ror    %ecx
cmp    $0x19999998,%ecx
jbe    13bc <par_monitor+0x2ac>
lea    0x7fffffff(%rax),%ecx
ror    %ecx
cmp    $0x19999999,%ecx
jb     13d5 <par_monitor+0x2c5>
add    $0x4ccccccc,%eax
ror    %eax
cmp    $0x19999998,%eax
ja     13cf <par_monitor+0x2bf>
xorps  %xmm1,%xmm1
xorps  %xmm2,%xmm2
ucomiss %xmm0,%xmm2
ja     13c9 <par_monitor+0x2b9>
jmp    13cf <par_monitor+0x2bf>
ucomiss 0xdf7(%rip),%xmm0
jbe    125d <par_monitor+0x14d>
cmpl   $0x1,0x4(%rcx,%rbx,4)
jne    1242 <par_monitor+0x132>
lea    0x1(%rbx),%rax
movss  (%r14,%rax,4),%xmm1
addss  0xde0(%rip),%xmm1
movss  %xmm1,(%r14,%rax,4)
cmpl   $0x1,(%rcx,%rbx,4)
jne    125d <par_monitor+0x14d>
movss  0xdc8(%rip),%xmm1
divss  %xmm0,%xmm1
movss  %xmm1,(%r14,%rbx,4)
movaps %xmm1,%xmm0
movss  (%r15,%rbx,4),%xmm1
divss  %xmm0,%xmm1
movaps %xmm1,%xmm0
call   1030 <fabs@plt>
cmp    $0x64,%eax
jl     128a <par_monitor+0x17a>
movss  (%r15,%rbx,4),%xmm0
divss  0xd9e(%rip),%xmm0
movss  %xmm0,(%r14,%rbx,4)
jmp    1290 <par_monitor+0x180>
movss  (%r14,%rbx,4),%xmm0
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
jbe    13cf <par_monitor+0x2bf>
call   1030 <fabs@plt>
xorps  %xmm1,%xmm1
cvtsi2ss %eax,%xmm1
jmp    13c9 <par_monitor+0x2b9>
movss  (%r15,%rbx,4),%xmm1
movaps %xmm0,%xmm2
divss  %xmm1,%xmm2
ucomiss 0xd4b(%rip),%xmm2
jae    1334 <par_monitor+0x224>
movaps %xmm1,%xmm2
divss  %xmm0,%xmm2
ucomiss 0xd3b(%rip),%xmm2
jb     1345 <par_monitor+0x235>
divss  0xd31(%rip),%xmm1
jmp    133c <par_monitor+0x22c>
movss  (%r15,%rbx,4),%xmm1
movaps %xmm0,%xmm2
subss  %xmm1,%xmm2
ucomiss 0xd13(%rip),%xmm2
jae    136c <par_monitor+0x25c>
movaps %xmm1,%xmm2
subss  %xmm0,%xmm2
ucomiss 0xd03(%rip),%xmm2
jb     13cf <par_monitor+0x2bf>
addss  0xcf9(%rip),%xmm1
jmp    13c9 <par_monitor+0x2b9>
divss  (%r15,%rbx,4),%xmm0
call   1030 <fabs@plt>
movss  (%r15,%rbx,4),%xmm1
cmp    $0xa,%eax
jl     1376 <par_monitor+0x266>
mulss  0xcda(%rip),%xmm1
jmp    1394 <par_monitor+0x284>
mulss  0xcd0(%rip),%xmm1
movaps %xmm1,%xmm0
movss  %xmm1,(%r14,%rbx,4)
xorps  %xmm1,%xmm1
ucomiss (%r15,%rbx,4),%xmm1
jb     135d <par_monitor+0x24d>
movl   $0x76453719,(%r15,%rbx,4)
76
movss  (%r14,%rbx,4),%xmm0
ucomiss %xmm0,%xmm1
jb     13cf <par_monitor+0x2bf>
movss  0xcaa(%rip),%xmm1
jmp    13c9 <par_monitor+0x2b9>
addss  0xc90(%rip),%xmm1
jmp    13c9 <par_monitor+0x2b9>
movss  (%r14,%rbx,4),%xmm0
movaps %xmm1,%xmm2
divss  %xmm0,%xmm2
ucomiss 0xc82(%rip),%xmm2
jb     139d <par_monitor+0x28d>
divss  0xc78(%rip),%xmm1
movaps %xmm1,%xmm0
movss  %xmm1,(%r14,%rbx,4)
movss  0xc67(%rip),%xmm1
ucomiss %xmm1,%xmm0
ja     13c9 <par_monitor+0x2b9>
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
jbe    13cf <par_monitor+0x2bf>
movss  0xc56(%rip),%xmm1
jmp    13c9 <par_monitor+0x2b9>
movss  0xc3c(%rip),%xmm1
ucomiss %xmm0,%xmm1
jb     13cf <par_monitor+0x2bf>
movss  %xmm1,(%r14,%rbx,4)
pop    %rbx
pop    %r14
pop    %r15
ret
xorps  %xmm1,%xmm1
ucomiss %xmm0,%xmm1
ja     13c9 <par_monitor+0x2b9>
jmp    13cf <par_monitor+0x2bf>

LLVM IR (-O0):
define void @par_monitor(i32 %0, i32 %1, float* %2, i32* %3, float* %4, double* %5) {
%7 = alloca i32
%8 = alloca i32
%9 = alloca float*
%10 = alloca i32*
%11 = alloca float*
%12 = alloca double*
%13 = alloca i32
store i32 %0, i32* %7
store i32 %1, i32* %8
store float* %2, float** %9
store i32* %3, i32** %10
store float* %4, float** %11
store double* %5, double** %12
store i32 0, i32* %13
%14 = load float*, float** %9
%15 = load i32, i32* %7
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds float, float* %14, i64 %16
%18 = load float, float* %17
%19 = fpext float %18 to double
%20 = load double*, double** %12
%21 = load i32, i32* %8
%22 = sext i32 %21 to i64
%23 = getelementptr inbounds double, double* %20, i64 %22
%24 = load double, double* %23
%25 = fadd double %19, %24
%26 = fptrunc double %25 to float
%27 = load float*, float** %11
%28 = load i32, i32* %7
%29 = sext i32 %28 to i64
%30 = getelementptr inbounds float, float* %27, i64 %29
store float %26, float* %30
%31 = load i32, i32* %7
%32 = add nsw i32 %31, 2
%33 = srem i32 %32, 10
%34 = icmp eq i32 %33, 0
br i1 %34, label %35, label %136
35: ; preds = %6
%36 = load float*, float** %11
%37 = load i32, i32* %7
%38 = sext i32 %37 to i64
%39 = getelementptr inbounds float, float* %36, i64 %38
%40 = load float, float* %39
%41 = fpext float %40 to double
%42 = fcmp ogt double %41, 1.000000e+00
br i1 %42, label %43, label %87
43: ; preds = %35
%44 = load i32*, i32** %10
%45 = load i32, i32* %7
%46 = add nsw i32 %45, 1
%47 = sext i32 %46 to i64
%48 = getelementptr inbounds i32, i32* %44, i64 %47
%49 = load i32, i32* %48
%50 = icmp eq i32 %49, 1
br i1 %50, label %51, label %66
51: ; preds = %43
%52 = load float*, float** %11
%53 = load i32, i32* %7
%54 = add nsw i32 %53, 1
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds float, float* %52, i64 %55
%57 = load float, float* %56
%58 = fpext float %57 to double
%59 = fadd double %58, 9.000000e+01
%60 = fptrunc double %59 to float
%61 = load float*, float** %11
%62 = load i32, i32* %7
%63 = add nsw i32 %62, 1
%64 = sext i32 %63 to i64
%65 = getelementptr inbounds float, float* %61, i64 %64
store float %60, float* %65
br label %66
66: ; preds = %51, %43
%67 = load i32*, i32** %10
%68 = load i32, i32* %7
%69 = sext i32 %68 to i64
%70 = getelementptr inbounds i32, i32* %67, i64 %69
%71 = load i32, i32* %70
%72 = icmp eq i32 %71, 1
br i1 %72, label %73, label %86
73: ; preds = %66
%74 = load float*, float** %11
%75 = load i32, i32* %7
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds float, float* %74, i64 %76
%78 = load float, float* %77
%79 = fpext float %78 to double
%80 = fdiv double 1.000000e+00, %79
%81 = fptrunc double %80 to float
%82 = load float*, float** %11
%83 = load i32, i32* %7
%84 = sext i32 %83 to i64
%85 = getelementptr inbounds float, float* %82, i64 %84
store float %81, float* %85
br label %86
86: ; preds = %73, %66
br label %87
87: ; preds = %86, %35
%88 = load float*, float** %9
%89 = load i32, i32* %7
%90 = sext i32 %89 to i64
%91 = getelementptr inbounds float, float* %88, i64 %90
%92 = load float, float* %91
%93 = load float*, float** %11
%94 = load i32, i32* %7
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds float, float* %93, i64 %95
%97 = load float, float* %96
%98 = fdiv float %92, %97
%99 = call i32 @fabs(float %98)
%100 = sitofp i32 %99 to double
%101 = fcmp oge double %100, 1.000000e+02
br i1 %101, label %102, label %115
102: ; preds = %87
%103 = load float*, float** %9
%104 = load i32, i32* %7
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds float, float* %103, i64 %105
%107 = load float, float* %106
%108 = fpext float %107 to double
%109 = fdiv double %108, 1.000000e+02
%110 = fptrunc double %109 to float
%111 = load float*, float** %11
%112 = load i32, i32* %7
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds float, float* %111, i64 %113
store float %110, float* %114
br label %115
115: ; preds = %102, %87
%116 = load float*, float** %11
%117 = load i32, i32* %7
%118 = sext i32 %117 to i64
%119 = getelementptr inbounds float, float* %116, i64 %118
%120 = load float, float* %119
%121 = fpext float %120 to double
%122 = fcmp olt double %121, 0.000000e+00
br i1 %122, label %123, label %135
123: ; preds = %115
%124 = load float*, float** %11
%125 = load i32, i32* %7
%126 = sext i32 %125 to i64
%127 = getelementptr inbounds float, float* %124, i64 %126
%128 = load float, float* %127
%129 = call i32 @fabs(float %128)
%130 = sitofp i32 %129 to float
%131 = load float*, float** %11
%132 = load i32, i32* %7
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds float, float* %131, i64 %133
store float %130, float* %134
br label %135
135: ; preds = %123, %115
br label %433
136: ; preds = %6
%137 = load i32, i32* %7
%138 = add nsw i32 %137, 7
%139 = srem i32 %138, 10
%140 = icmp eq i32 %139, 0
br i1 %140, label %141, label %142
141: ; preds = %136
br label %433
142: ; preds = %136
%143 = load i32, i32* %7
%144 = add nsw i32 %143, 6
%145 = srem i32 %144, 10
%146 = icmp eq i32 %145, 0
br i1 %146, label %147, label %229
147: ; preds = %142
%148 = load float*, float** %11
%149 = load i32, i32* %7
%150 = sext i32 %149 to i64
%151 = getelementptr inbounds float, float* %148, i64 %150
%152 = load float, float* %151
%153 = load float*, float** %9
%154 = load i32, i32* %7
%155 = sext i32 %154 to i64
%156 = getelementptr inbounds float, float* %153, i64 %155
%157 = load float, float* %156
%158 = fdiv float %152, %157
%159 = fpext float %158 to double
%160 = fcmp oge double %159, 1.000000e+01
br i1 %160, label %161, label %174
161: ; preds = %147
%162 = load float*, float** %9
%163 = load i32, i32* %7
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds float, float* %162, i64 %164
%166 = load float, float* %165
%167 = fpext float %166 to double
%168 = fmul double %167, 1.000000e+01
%169 = fptrunc double %168 to float
%170 = load float*, float** %11
%171 = load i32, i32* %7
%172 = sext i32 %171 to i64
%173 = getelementptr inbounds float, float* %170, i64 %172
store float %169, float* %173
br label %202
174: ; preds = %147
%175 = load float*, float** %9
%176 = load i32, i32* %7
%177 = sext i32 %176 to i64
%178 = getelementptr inbounds float, float* %175, i64 %177
%179 = load float, float* %178
%180 = load float*, float** %11
%181 = load i32, i32* %7
%182 = sext i32 %181 to i64
%183 = getelementptr inbounds float, float* %180, i64 %182
%184 = load float, float* %183
%185 = fdiv float %179, %184
%186 = fpext float %185 to double
%187 = fcmp oge double %186, 1.000000e+01
br i1 %187, label %188, label %201
188: ; preds = %174
%189 = load float*, float** %9
%190 = load i32, i32* %7
%191 = sext i32 %190 to i64
%192 = getelementptr inbounds float, float* %189, i64 %191
%193 = load float, float* %192
%194 = fpext float %193 to double
%195 = fdiv double %194, 1.000000e+01
%196 = fptrunc double %195 to float
%197 = load float*, float** %11
%198 = load i32, i32* %7
%199 = sext i32 %198 to i64
%200 = getelementptr inbounds float, float* %197, i64 %199
store float %196, float* %200
br label %201
201: ; preds = %188, %174
br label %202
202: ; preds = %201, %161
%203 = load float*, float** %9
%204 = load i32, i32* %7
%205 = sext i32 %204 to i64
%206 = getelementptr inbounds float, float* %203, i64 %205
%207 = load float, float* %206
%208 = fpext float %207 to double
%209 = fcmp ole double %208, 0.000000e+00
br i1 %209, label %210, label %215
210: ; preds = %202
%211 = load float*, float** %9
%212 = load i32, i32* %7
%213 = sext i32 %212 to i64
%214 = getelementptr inbounds float, float* %211, i64 %213
store float 0x46C8A6E320000000, float* %214
store i32 1, i32* %13
br label %215
215: ; preds = %210, %202
%216 = load float*, float** %11
%217 = load i32, i32* %7
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds float, float* %216, i64 %218
%220 = load float, float* %219
%221 = fpext float %220 to double
%222 = fcmp ole double %221, 0.000000e+00
br i1 %222, label %223, label %228
223: ; preds = %215
%224 = load float*, float** %11
%225 = load i32, i32* %7
%226 = sext i32 %225 to i64
%227 = getelementptr inbounds float, float* %224, i64 %226
store float 0x46C8A6E320000000, float* %227
store i32 1, i32* %13
br label %228
228: ; preds = %223, %215
br label %433
229: ; preds = %142
%230 = load i32, i32* %7
%231 = add nsw i32 %230, 5
%232 = srem i32 %231, 10
%233 = icmp eq i32 %232, 0
br i1 %233, label %234, label %318
234: ; preds = %229
%235 = load float*, float** %11
%236 = load i32, i32* %7
%237 = sext i32 %236 to i64
%238 = getelementptr inbounds float, float* %235, i64 %237
%239 = load float, float* %238
%240 = load float*, float** %9
%241 = load i32, i32* %7
%242 = sext i32 %241 to i64
%243 = getelementptr inbounds float, float* %240, i64 %242
%244 = load float, float* %243
%245 = fdiv float %239, %244
%246 = call i32 @fabs(float %245)
%247 = sitofp i32 %246 to double
%248 = fcmp oge double %247, 1.000000e+01
br i1 %248, label %249, label %262
249: ; preds = %234
%250 = load float*, float** %9
%251 = load i32, i32* %7
%252 = sext i32 %251 to i64
%253 = getelementptr inbounds float, float* %250, i64 %252
%254 = load float, float* %253
%255 = fpext float %254 to double
%256 = fmul double %255, 1.000000e+01
%257 = fptrunc double %256 to float
%258 = load float*, float** %11
%259 = load i32, i32* %7
%260 = sext i32 %259 to i64
%261 = getelementptr inbounds float, float* %258, i64 %260
store float %257, float* %261
br label %290
262: ; preds = %234
%263 = load float*, float** %9
%264 = load i32, i32* %7
%265 = sext i32 %264 to i64
%266 = getelementptr inbounds float, float* %263, i64 %265
%267 = load float, float* %266
%268 = load float*, float** %11
%269 = load i32, i32* %7
%270 = sext i32 %269 to i64
%271 = getelementptr inbounds float, float* %268, i64 %270
%272 = load float, float* %271
%273 = fdiv float %267, %272
%274 = fpext float %273 to double
%275 = fcmp oge double %274, 1.000000e+01
br i1 %275, label %276, label %289
276: ; preds = %262
%277 = load float*, float** %9
%278 = load i32, i32* %7
%279 = sext i32 %278 to i64
%280 = getelementptr inbounds float, float* %277, i64 %279
%281 = load float, float* %280
%282 = fpext float %281 to double
%283 = fdiv double %282, 1.000000e+01
%284 = fptrunc double %283 to float
%285 = load float*, float** %11
%286 = load i32, i32* %7
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds float, float* %285, i64 %287
store float %284, float* %288
br label %289
289: ; preds = %276, %262
br label %290
290: ; preds = %289, %249
%291 = load float*, float** %11
%292 = load i32, i32* %7
%293 = sext i32 %292 to i64
%294 = getelementptr inbounds float, float* %291, i64 %293
%295 = load float, float* %294
%296 = fpext float %295 to double
%297 = fcmp ogt double %296, 1.000000e+01
br i1 %297, label %298, label %303
298: ; preds = %290
%299 = load float*, float** %11
%300 = load i32, i32* %7
%301 = sext i32 %300 to i64
%302 = getelementptr inbounds float, float* %299, i64 %301
store float 1.000000e+01, float* %302
br label %317
303: ; preds = %290
%304 = load float*, float** %11
%305 = load i32, i32* %7
%306 = sext i32 %305 to i64
%307 = getelementptr inbounds float, float* %304, i64 %306
%308 = load float, float* %307
%309 = fpext float %308 to double
%310 = fcmp olt double %309, 0.000000e+00
br i1 %310, label %311, label %316
311: ; preds = %303
%312 = load float*, float** %11
%313 = load i32, i32* %7
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds float, float* %312, i64 %314
store float 0x3FB99999A0000000, float* %315
br label %316
316: ; preds = %311, %303
br label %317
317: ; preds = %316, %298
br label %433
318: ; preds = %229
%319 = load i32, i32* %7
%320 = add nsw i32 %319, 9
%321 = srem i32 %320, 10
%322 = icmp eq i32 %321, 0
br i1 %322, label %328, label %323
323: ; preds = %318
%324 = load i32, i32* %7
%325 = add nsw i32 %324, 8
%326 = srem i32 %325, 10
%327 = icmp eq i32 %326, 0
br i1 %327, label %328, label %384
328: ; preds = %323, %318
%329 = load float*, float** %11
%330 = load i32, i32* %7
%331 = sext i32 %330 to i64
%332 = getelementptr inbounds float, float* %329, i64 %331
%333 = load float, float* %332
%334 = load float*, float** %9
%335 = load i32, i32* %7
%336 = sext i32 %335 to i64
%337 = getelementptr inbounds float, float* %334, i64 %336
%338 = load float, float* %337
%339 = fsub float %333, %338
%340 = fpext float %339 to double
%341 = fcmp oge double %340, 1.000000e+05
br i1 %341, label %342, label %355
342: ; preds = %328
%343 = load float*, float** %9
%344 = load i32, i32* %7
%345 = sext i32 %344 to i64
%346 = getelementptr inbounds float, float* %343, i64 %345
%347 = load float, float* %346
%348 = fpext float %347 to double
%349 = fadd double %348, 1.000000e+05
%350 = fptrunc double %349 to float
%351 = load float*, float** %11
%352 = load i32, i32* %7
%353 = sext i32 %352 to i64
%354 = getelementptr inbounds float, float* %351, i64 %353
store float %350, float* %354
br label %383
355: ; preds = %328
%356 = load float*, float** %9
%357 = load i32, i32* %7
%358 = sext i32 %357 to i64
%359 = getelementptr inbounds float, float* %356, i64 %358
%360 = load float, float* %359
%361 = load float*, float** %11
%362 = load i32, i32* %7
%363 = sext i32 %362 to i64
%364 = getelementptr inbounds float, float* %361, i64 %363
%365 = load float, float* %364
%366 = fsub float %360, %365
%367 = fpext float %366 to double
%368 = fcmp oge double %367, 1.000000e+05
br i1 %368, label %369, label %382
369: ; preds = %355
%370 = load float*, float** %9
%371 = load i32, i32* %7
%372 = sext i32 %371 to i64
%373 = getelementptr inbounds float, float* %370, i64 %372
%374 = load float, float* %373
%375 = fpext float %374 to double
%376 = fsub double %375, 1.000000e+05
%377 = fptrunc double %376 to float
%378 = load float*, float** %11
%379 = load i32, i32* %7
%380 = sext i32 %379 to i64
%381 = getelementptr inbounds float, float* %378, i64 %380
store float %377, float* %381
br label %382
382: ; preds = %369, %355
br label %383
383: ; preds = %382, %342
br label %433
384: ; preds = %323
%385 = load i32, i32* %7
%386 = add nsw i32 %385, 1
%387 = srem i32 %386, 10
%388 = icmp eq i32 %387, 0
br i1 %388, label %389, label %390
389: ; preds = %384
br label %433
390: ; preds = %384
%391 = load i32, i32* %7
%392 = srem i32 %391, 10
%393 = icmp eq i32 %392, 0
br i1 %393, label %394, label %408
394: ; preds = %390
%395 = load float*, float** %11
%396 = load i32, i32* %7
%397 = sext i32 %396 to i64
%398 = getelementptr inbounds float, float* %395, i64 %397
%399 = load float, float* %398
%400 = fpext float %399 to double
%401 = fcmp ole double %400, -2.000000e+00
br i1 %401, label %402, label %407
402: ; preds = %394
%403 = load float*, float** %11
%404 = load i32, i32* %7
%405 = sext i32 %404 to i64
%406 = getelementptr inbounds float, float* %403, i64 %405
store float -2.000000e+00, float* %406
br label %407
407: ; preds = %402, %394
br label %433
408: ; preds = %390
%409 = load i32, i32* %7
%410 = add nsw i32 %409, 3
%411 = srem i32 %410, 10
%412 = icmp eq i32 %411, 0
br i1 %412, label %418, label %413
413: ; preds = %408
%414 = load i32, i32* %7
%415 = add nsw i32 %414, 4
%416 = srem i32 %415, 10
%417 = icmp eq i32 %416, 0
br i1 %417, label %418, label %432
418: ; preds = %413, %408
%419 = load float*, float** %11
%420 = load i32, i32* %7
%421 = sext i32 %420 to i64
%422 = getelementptr inbounds float, float* %419, i64 %421
%423 = load float, float* %422
%424 = fpext float %423 to double
%425 = fcmp olt double %424, 0.000000e+00
br i1 %425, label %426, label %431
426: ; preds = %418
%427 = load float*, float** %11
%428 = load i32, i32* %7
%429 = sext i32 %428 to i64
%430 = getelementptr inbounds float, float* %427, i64 %429
store float 0.000000e+00, float* %430
br label %431
431: ; preds = %426, %418
store i32 1, i32* %13
br label %432
432: ; preds = %431, %413
br label %433
433: ; preds = %432, %407, %389, %383, %317, %228, %141, %135
ret void
}

LLVM IR (-O2):
define void @par_monitor(i32 %0, i32 %1, float* nocapture %2, i32* nocapture %3, float* %4, double* nocapture %5) {
%7 = sext i32 %0 to i64
%8 = getelementptr inbounds float, float* %2, i64 %7
%9 = load float, float* %8
%10 = fpext float %9 to double
%11 = sext i32 %1 to i64
%12 = getelementptr inbounds double, double* %5, i64 %11
%13 = load double, double* %12
%14 = fadd double %13, %10
%15 = fptrunc double %14 to float
%16 = getelementptr inbounds float, float* %4, i64 %7
store float %15, float* %16
%17 = add nsw i32 %0, 2
%18 = srem i32 %17, 10
%19 = icmp eq i32 %18, 0
br i1 %19, label %20, label %55
20: ; preds = %6
%21 = fcmp ogt float %15, 1.000000e+00
br i1 %21, label %22, label %38
22: ; preds = %20
%23 = add nsw i32 %0, 1
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds i32, i32* %3, i64 %24
%26 = load i32, i32* %25
%27 = icmp eq i32 %26, 1
br i1 %27, label %28, label %32
28: ; preds = %22
%29 = getelementptr inbounds float, float* %4, i64 %24
%30 = load float, float* %29
%31 = fadd float %30, 9.000000e+01
store float %31, float* %29
br label %32
32: ; preds = %28, %22
%33 = getelementptr inbounds i32, i32* %3, i64 %7
%34 = load i32, i32* %33
%35 = icmp eq i32 %34, 1
br i1 %35, label %36, label %38
36: ; preds = %32
%37 = fdiv float 1.000000e+00, %15
store float %37, float* %16
br label %38
38: ; preds = %32, %36, %20
%39 = phi float [ %15, %32 ], [ %37, %36 ], [ %15, %20 ]
%40 = load float, float* %8
%41 = fdiv float %40, %39
%42 = tail call i32 @fabs(float %41)
%43 = icmp sgt i32 %42, 99
br i1 %43, label %44, label %47
44: ; preds = %38
%45 = load float, float* %8
%46 = fdiv float %45, 1.000000e+02
store float %46, float* %16
br label %49
47: ; preds = %38
%48 = load float, float* %16
br label %49
49: ; preds = %47, %44
%50 = phi float [ %48, %47 ], [ %46, %44 ]
%51 = fcmp olt float %50, 0.000000e+00
br i1 %51, label %52, label %152
52: ; preds = %49
%53 = tail call i32 @fabs(float %50)
%54 = sitofp i32 %53 to float
br label %150
55: ; preds = %6
%56 = add nsw i32 %0, 7
%57 = srem i32 %56, 10
%58 = icmp eq i32 %57, 0
br i1 %58, label %152, label %59
59: ; preds = %55
%60 = add nsw i32 %0, 6
%61 = srem i32 %60, 10
%62 = icmp eq i32 %61, 0
br i1 %62, label %63, label %85
63: ; preds = %59
%64 = load float, float* %8
%65 = fdiv float %15, %64
%66 = fcmp ult float %65, 1.000000e+01
br i1 %66, label %69, label %67
67: ; preds = %63
%68 = fmul float %64, 1.000000e+01
br label %74
69: ; preds = %63
%70 = fdiv float %64, %15
%71 = fcmp ult float %70, 1.000000e+01
br i1 %71, label %76, label %72
72: ; preds = %69
%73 = fdiv float %64, 1.000000e+01
br label %74
74: ; preds = %67, %72
%75 = phi float [ %73, %72 ], [ %68, %67 ]
store float %75, float* %16
br label %76
76: ; preds = %74, %69
%77 = phi float [ %15, %69 ], [ %75, %74 ]
%78 = load float, float* %8
%79 = fcmp ugt float %78, 0.000000e+00
br i1 %79, label %82, label %80
80: ; preds = %76
store float 0x46C8A6E320000000, float* %8
%81 = load float, float* %16
br label %82
82: ; preds = %80, %76
%83 = phi float [ %81, %80 ], [ %77, %76 ]
%84 = fcmp ugt float %83, 0.000000e+00
br i1 %84, label %152, label %150
85: ; preds = %59
%86 = add nsw i32 %0, 5
%87 = srem i32 %86, 10
%88 = icmp eq i32 %87, 0
br i1 %88, label %89, label %110
89: ; preds = %85
%90 = load float, float* %8
%91 = fdiv float %15, %90
%92 = tail call i32 @fabs(float %91)
%93 = icmp sgt i32 %92, 9
%94 = load float, float* %8
br i1 %93, label %95, label %97
95: ; preds = %89
%96 = fmul float %94, 1.000000e+01
br label %103
97: ; preds = %89
%98 = load float, float* %16
%99 = fdiv float %94, %98
%100 = fcmp ult float %99, 1.000000e+01
br i1 %100, label %105, label %101
101: ; preds = %97
%102 = fdiv float %94, 1.000000e+01
br label %103
103: ; preds = %95, %101
%104 = phi float [ %102, %101 ], [ %96, %95 ]
store float %104, float* %16
br label %105
105: ; preds = %103, %97
%106 = phi float [ %98, %97 ], [ %104, %103 ]
%107 = fcmp ogt float %106, 1.000000e+01
br i1 %107, label %150, label %108
108: ; preds = %105
%109 = fcmp olt float %106, 0.000000e+00
br i1 %109, label %150, label %152
110: ; preds = %85
%111 = add nsw i32 %0, 9
%112 = srem i32 %111, 10
%113 = icmp eq i32 %112, 0
br i1 %113, label %118, label %114
114: ; preds = %110
%115 = add nsw i32 %0, 8
%116 = srem i32 %115, 10
%117 = icmp eq i32 %116, 0
br i1 %117, label %118, label %129
118: ; preds = %114, %110
%119 = load float, float* %8
%120 = fsub float %15, %119
%121 = fcmp ult float %120, 1.000000e+05
br i1 %121, label %124, label %122
122: ; preds = %118
%123 = fadd float %119, 1.000000e+05
br label %150
124: ; preds = %118
%125 = fsub float %119, %15
%126 = fcmp ult float %125, 1.000000e+05
br i1 %126, label %152, label %127
127: ; preds = %124
%128 = fadd float %119, -1.000000e+05
br label %150
129: ; preds = %114
%130 = add nsw i32 %0, 1
%131 = srem i32 %130, 10
%132 = icmp eq i32 %131, 0
br i1 %132, label %152, label %133
133: ; preds = %129
%134 = srem i32 %0, 10
%135 = icmp eq i32 %134, 0
br i1 %135, label %136, label %138
136: ; preds = %133
%137 = fcmp ugt float %15, -2.000000e+00
br i1 %137, label %152, label %150
138: ; preds = %133
%139 = add nsw i32 %0, 3
%140 = srem i32 %139, 10
%141 = icmp eq i32 %140, 0
br i1 %141, label %148, label %142
142: ; preds = %138
%143 = add nsw i32 %0, 4
%144 = srem i32 %143, 10
%145 = icmp eq i32 %144, 0
%146 = fcmp olt float %15, 0.000000e+00
%147 = select i1 %145, i1 %146, i1 false
br i1 %147, label %150, label %152
148: ; preds = %138
%149 = fcmp olt float %15, 0.000000e+00
br i1 %149, label %150, label %152
150: ; preds = %148, %142, %136, %108, %105, %82, %52, %127, %122
%151 = phi float [ %123, %122 ], [ %128, %127 ], [ %54, %52 ], [ 0x46C8A6E320000000, %82 ], [ 1.000000e+01, %105 ], [ 0x3FB99999A0000000, %108 ], [ -2.000000e+00, %136 ], [ 0.000000e+00, %142 ], [ 0.000000e+00, %148 ]
store float %151, float* %16
br label %152
152: ; preds = %150, %142, %148, %136, %129, %124, %108, %82, %55, %49
ret void
}