#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 */
typedef int /*<<< orphan*/ lf4;
typedef int /*<<< orphan*/ lf3;
typedef int /*<<< orphan*/ lf2;
typedef int /*<<< orphan*/ lf1;

/* Variables and functions */
int /*<<< orphan*/ dispF(float *, int, int, int, int, int, float, char *,
                         double);
int /*<<< orphan*/ draw_rectangle(float *, int, int, int, int, int, int,
                                  double);
int /*<<< orphan*/ draw_sweep_1(float *, int, int, int, int, int, int, float,
                                float, float, int /*<<< orphan*/, int);
int /*<<< orphan*/ draw_sweep_2(float *, int, int, int, int, int, int, float,
                                float, float, int /*<<< orphan*/, int);
void sweep_v(float *sl, int w, int h, int a, float amp, int lps, float ar,
             float sf, float ef) {
  float xl, nf;
  float lf1[] = {0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7};
  float lf2[] = {0.05, 0.07, 0.1, 0.15, 0.3, 0.7};
  float lf3[] = {100.0, 200.0, 300.0, 400.0, 500.0, 600.0, 700.0, 800.0, 900.0};
  float lf4[] = {10.0, 25.0, 50.0, 100.0, 200.0, 400.0, 800.0};
  int i, x, y;
  for (x = 0; x < w * h; x++)
    sl[x] = 0.0;
  if (a == 0)
    draw_sweep_1(sl, w, h, w / 8, h / 16, 6 * w / 8, 14 * h / 16, sf, ef, amp,
                 0, lps);
  else
    draw_sweep_2(sl, w, h, w / 8, h / 16, 6 * w / 8, 14 * h / 16, sf, ef, amp,
                 0, lps);
  if (lps == 0) {
    for (i = 0; i < sizeof(lf1) / sizeof(float); i++) {
      xl = (lf1[i] - sf) / (ef - sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = w / 8 - 60;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, w / 8 - 15, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf1[i], "%5.2f", 0.9);
      }
    }
    for (i = 0; i < sizeof(lf3) / sizeof(float); i++) {
      nf = lf3[i] / (float)h;
      if (a == 0)
        nf = nf * ar;
      xl = (nf - sf) / (ef - sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = 7 * w / 8 + 10;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, 7 * w / 8 + 5, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf3[i], "%4.0f", 0.9);
      }
    }
  } else {
    for (i = 0; i < sizeof(lf2) / sizeof(float); i++) {
      xl = (1.0 / lf2[i] - 1.0 / sf) / (1.0 / ef - 1.0 / sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = w / 8 - 60;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, w / 8 - 15, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf2[i], "%5.2f", 0.9);
      }
    }
    for (i = 0; i < sizeof(lf4) / sizeof(float); i++) {
      nf = lf4[i] / (float)h;
      if (a == 0)
        nf = nf * ar;
      xl = (1.0 / nf - 1.0 / sf) / (1.0 / ef - 1.0 / sf);
      if ((xl >= 0.0) && (xl <= 1.0)) {
        x = 7 * w / 8 + 10;
        y = h / 16 + xl * (14 * h / 16);
        draw_rectangle(sl, w, h, 7 * w / 8 + 5, y, 10, 3, 0.9);
        dispF(sl, w, h, x, y + 6, 6, lf4[i], "%4.0f", 0.9);
      }
    }
  }
}


x86 assembly (clang, -O0):
<sweep_v>:
push   %rbp
mov    %rsp,%rbp
sub    $0x100,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
movss  %xmm0,-0x18(%rbp)
mov    %r8d,-0x1c(%rbp)
movss  %xmm1,-0x20(%rbp)
movss  %xmm2,-0x24(%rbp)
movss  %xmm3,-0x28(%rbp)
mov    0xe89(%rip),%rax
mov    %rax,-0x50(%rbp)
mov    0xe86(%rip),%rax
mov    %rax,-0x48(%rbp)
mov    0xe83(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0xe80(%rip),%rax
mov    %rax,-0x38(%rbp)
mov    0xe7d(%rip),%rax
mov    %rax,-0x70(%rbp)
mov    0xe7a(%rip),%rax
mov    %rax,-0x68(%rbp)
mov    0xe77(%rip),%rax
mov    %rax,-0x60(%rbp)
lea    -0xa0(%rbp),%rdi
lea    0xe75(%rip),%rsi
mov    $0x24,%edx
call   1060 <memcpy@plt>
mov    0xe94(%rip),%rax
mov    %rax,-0xc0(%rbp)
mov    0xe8e(%rip),%rax
mov    %rax,-0xb8(%rbp)
mov    0xe88(%rip),%rax
mov    %rax,-0xb0(%rbp)
mov    0xe83(%rip),%eax
mov    %eax,-0xa8(%rbp)
movl   $0x0,-0xc8(%rbp)
mov    -0xc8(%rbp),%eax
mov    -0xc(%rbp),%ecx
imul   -0x10(%rbp),%ecx
cmp    %ecx,%eax
jge    1261 <sweep_v+0x111>
mov    -0x8(%rbp),%rax
movslq -0xc8(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0xc8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc8(%rbp)
jmp    1225 <sweep_v+0xd5>
cmpl   $0x0,-0x14(%rbp)
jne    12ef <sweep_v+0x19f>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xd0(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    %eax,%r8d
imul   $0x6,-0xc(%rbp),%eax
mov    $0x8,%r9d
cltd
idiv   %r9d
mov    %eax,%r9d
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%r10d
cltd
idiv   %r10d
mov    -0xd0(%rbp),%edx
mov    %eax,%r10d
movss  -0x24(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
movss  -0x18(%rbp),%xmm2
mov    -0x1c(%rbp),%eax
xor    %r11d,%r11d
mov    %r10d,(%rsp)
movl   $0x0,0x8(%rsp)
mov    %eax,0x10(%rsp)
call   1050 <draw_sweep_1@plt>
jmp    136e <sweep_v+0x21e>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xd4(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    %eax,%ecx
mov    -0x10(%rbp),%eax
mov    $0x10,%r8d
cltd
idiv   %r8d
mov    %eax,%r8d
imul   $0x6,-0xc(%rbp),%eax
mov    $0x8,%r9d
cltd
idiv   %r9d
mov    %eax,%r9d
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%r10d
cltd
idiv   %r10d
mov    -0xd4(%rbp),%edx
mov    %eax,%r10d
movss  -0x24(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
movss  -0x18(%rbp),%xmm2
mov    -0x1c(%rbp),%eax
xor    %r11d,%r11d
mov    %r10d,(%rsp)
movl   $0x0,0x8(%rsp)
mov    %eax,0x10(%rsp)
call   1070 <draw_sweep_2@plt>
cmpl   $0x0,-0x1c(%rbp)
jne    1673 <sweep_v+0x523>
movl   $0x0,-0xc4(%rbp)
movslq -0xc4(%rbp),%rax
cmp    $0x8,%rax
jae    14d9 <sweep_v+0x389>
movslq -0xc4(%rbp),%rax
movss  -0x50(%rbp,%rax,4),%xmm0
subss  -0x24(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
subss  -0x24(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     14c0 <sweep_v+0x370>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xc21(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     14c0 <sweep_v+0x370>
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
sub    $0x3c,%eax
mov    %eax,-0xc8(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm1
movss  -0x2c(%rbp),%xmm0
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xd8(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    -0xd8(%rbp),%edx
mov    %eax,%ecx
sub    $0xf,%ecx
mov    -0xcc(%rbp),%r8d
mov    $0xa,%r9d
movsd  0xb9a(%rip),%xmm0
movl   $0x3,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0xc8(%rbp),%ecx
mov    -0xcc(%rbp),%r8d
add    $0x6,%r8d
movslq -0xc4(%rbp),%rax
movss  -0x50(%rbp,%rax,4),%xmm0
mov    $0x6,%r9d
lea    0xbed(%rip),%rax
movsd  0xb51(%rip),%xmm1
mov    %rax,(%rsp)
call   1040 <dispF@plt>
jmp    14c5 <sweep_v+0x375>
mov    -0xc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc4(%rbp)
jmp    1382 <sweep_v+0x232>
movl   $0x0,-0xc4(%rbp)
movslq -0xc4(%rbp),%rax
cmp    $0x9,%rax
jae    166e <sweep_v+0x51e>
movslq -0xc4(%rbp),%rax
movss  -0xa0(%rbp,%rax,4),%xmm0
ff ff
cvtsi2ssl -0x10(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
cmpl   $0x0,-0x14(%rbp)
jne    152b <sweep_v+0x3db>
movss  -0x30(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
subss  -0x24(%rbp),%xmm0
movss  -0x28(%rbp),%xmm1
subss  -0x24(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1655 <sweep_v+0x505>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0xa91(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     1655 <sweep_v+0x505>
imul   $0x7,-0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
add    $0xa,%eax
mov    %eax,-0xc8(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm1
movss  -0x2c(%rbp),%xmm0
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xdc(%rbp)
imul   $0x7,-0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    -0xdc(%rbp),%edx
mov    %eax,%ecx
add    $0x5,%ecx
mov    -0xcc(%rbp),%r8d
mov    $0xa,%r9d
movsd  0xa08(%rip),%xmm0
movl   $0x3,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0xc8(%rbp),%ecx
mov    -0xcc(%rbp),%r8d
add    $0x6,%r8d
movslq -0xc4(%rbp),%rax
movss  -0xa0(%rbp,%rax,4),%xmm0
ff ff
mov    $0x6,%r9d
lea    0xa5e(%rip),%rax
movsd  0x9bc(%rip),%xmm1
mov    %rax,(%rsp)
call   1040 <dispF@plt>
jmp    165a <sweep_v+0x50a>
mov    -0xc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc4(%rbp)
jmp    14e3 <sweep_v+0x393>
jmp    1a06 <sweep_v+0x8b6>
movl   $0x0,-0xc4(%rbp)
movslq -0xc4(%rbp),%rax
cmp    $0x6,%rax
jae    1820 <sweep_v+0x6d0>
movslq -0xc4(%rbp),%rax
movss  -0x70(%rbp,%rax,4),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x959(%rip),%xmm0
divsd  %xmm1,%xmm0
movss  -0x24(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movsd  0x944(%rip),%xmm1
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movss  -0x28(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movsd  0x92b(%rip),%xmm1
divsd  %xmm2,%xmm1
movss  -0x24(%rbp),%xmm2
cvtss2sd %xmm2,%xmm3
movsd  0x916(%rip),%xmm2
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     1807 <sweep_v+0x6b7>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x8da(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     1807 <sweep_v+0x6b7>
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
sub    $0x3c,%eax
mov    %eax,-0xc8(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm1
movss  -0x2c(%rbp),%xmm0
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xe0(%rbp)
mov    -0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    -0xe0(%rbp),%edx
mov    %eax,%ecx
sub    $0xf,%ecx
mov    -0xcc(%rbp),%r8d
mov    $0xa,%r9d
movsd  0x853(%rip),%xmm0
movl   $0x3,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0xc8(%rbp),%ecx
mov    -0xcc(%rbp),%r8d
add    $0x6,%r8d
movslq -0xc4(%rbp),%rax
movss  -0x70(%rbp,%rax,4),%xmm0
mov    $0x6,%r9d
lea    0x8a6(%rip),%rax
movsd  0x80a(%rip),%xmm1
mov    %rax,(%rsp)
call   1040 <dispF@plt>
jmp    180c <sweep_v+0x6bc>
mov    -0xc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc4(%rbp)
jmp    167d <sweep_v+0x52d>
movl   $0x0,-0xc4(%rbp)
movslq -0xc4(%rbp),%rax
cmp    $0x7,%rax
jae    1a01 <sweep_v+0x8b1>
movslq -0xc4(%rbp),%rax
movss  -0xc0(%rbp,%rax,4),%xmm0
ff ff
cvtsi2ssl -0x10(%rbp),%xmm1
divss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
cmpl   $0x0,-0x14(%rbp)
jne    1872 <sweep_v+0x722>
movss  -0x30(%rbp),%xmm0
mulss  -0x20(%rbp),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  -0x30(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x77d(%rip),%xmm0
divsd  %xmm1,%xmm0
movss  -0x24(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movsd  0x768(%rip),%xmm1
divsd  %xmm2,%xmm1
subsd  %xmm1,%xmm0
movss  -0x28(%rbp),%xmm1
cvtss2sd %xmm1,%xmm2
movsd  0x74f(%rip),%xmm1
divsd  %xmm2,%xmm1
movss  -0x24(%rbp),%xmm2
cvtss2sd %xmm2,%xmm3
movsd  0x73a(%rip),%xmm2
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
cvtsd2ss %xmm0,%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jb     19e8 <sweep_v+0x898>
movss  -0x2c(%rbp),%xmm0
cvtss2sd %xmm0,%xmm1
movsd  0x6fe(%rip),%xmm0
ucomisd %xmm1,%xmm0
jb     19e8 <sweep_v+0x898>
imul   $0x7,-0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
add    $0xa,%eax
mov    %eax,-0xc8(%rbp)
mov    -0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm1
movss  -0x2c(%rbp),%xmm0
imul   $0xe,-0x10(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
cvtsi2ss %eax,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
cvttss2si %xmm0,%eax
mov    %eax,-0xcc(%rbp)
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%eax
mov    %eax,-0xe4(%rbp)
imul   $0x7,-0xc(%rbp),%eax
mov    $0x8,%ecx
cltd
idiv   %ecx
mov    -0xe4(%rbp),%edx
mov    %eax,%ecx
add    $0x5,%ecx
mov    -0xcc(%rbp),%r8d
mov    $0xa,%r9d
movsd  0x675(%rip),%xmm0
movl   $0x3,(%rsp)
call   1030 <draw_rectangle@plt>
mov    -0x8(%rbp),%rdi
mov    -0xc(%rbp),%esi
mov    -0x10(%rbp),%edx
mov    -0xc8(%rbp),%ecx
mov    -0xcc(%rbp),%r8d
add    $0x6,%r8d
movslq -0xc4(%rbp),%rax
movss  -0xc0(%rbp,%rax,4),%xmm0
ff ff
mov    $0x6,%r9d
lea    0x6cb(%rip),%rax
movsd  0x629(%rip),%xmm1
mov    %rax,(%rsp)
call   1040 <dispF@plt>
jmp    19ed <sweep_v+0x89d>
mov    -0xc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc4(%rbp)
jmp    182a <sweep_v+0x6da>
jmp    1a06 <sweep_v+0x8b6>
add    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<sweep_v>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x58,%rsp
movss  %xmm2,0x40(%rsp)
movss  %xmm1,0x4c(%rsp)
mov    %r8d,%r10d
movaps %xmm0,%xmm2
mov    %ecx,%r12d
mov    %edx,%r13d
mov    %esi,%r14d
mov    %rdi,%r15
mov    %edx,%eax
imul   %esi,%eax
test   %eax,%eax
movss  %xmm3,0x38(%rsp)
mov    %r8d,0x24(%rsp)
jle    11b7 <sweep_v+0x67>
mov    %eax,%edx
shl    $0x2,%rdx
mov    %r15,%rdi
xor    %esi,%esi
movss  %xmm2,0x20(%rsp)
call   1060 <memset@plt>
movss  0x20(%rsp),%xmm2
mov    0x24(%rsp),%r10d
movss  0x38(%rsp),%xmm3
lea    0x7(%r14),%eax
test   %r14d,%r14d
mov    %r14d,%ecx
mov    %rax,0x30(%rsp)
cmovs  %eax,%ecx
sar    $0x3,%ecx
lea    0xf(%r13),%esi
test   %r13d,%r13d
mov    %r13d,%r8d
cmovs  %esi,%r8d
sar    $0x4,%r8d
lea    (%r14,%r14,1),%eax
lea    (%rax,%rax,2),%edx
lea    (%rax,%rax,2),%r9d
add    $0x7,%r9d
test   %edx,%edx
cmovns %edx,%r9d
sar    $0x3,%r9d
mov    %r13d,%ebx
shl    $0x4,%ebx
sub    %r13d,%ebx
sub    %r13d,%ebx
lea    0xf(%rbx),%ebp
test   %ebx,%ebx
mov    %ebx,%eax
cmovs  %ebp,%eax
sar    $0x4,%eax
test   %r12d,%r12d
mov    %r12d,0x50(%rsp)
je     1508 <sweep_v+0x3b8>
mov    %r10d,0x10(%rsp)
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
mov    %r15,%rdi
mov    %esi,%r12d
mov    %r14d,%esi
mov    %r13d,%edx
movss  0x40(%rsp),%xmm0
movaps %xmm3,%xmm1
call   1070 <draw_sweep_2@plt>
mov    0x24(%rsp),%eax
mov    %r12d,%ecx
test   %eax,%eax
je     1543 <sweep_v+0x3f3>
movss  0x40(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
movsd  0xd97(%rip),%xmm2
movapd %xmm2,%xmm3
divsd  %xmm0,%xmm3
movss  0x38(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
movapd %xmm2,%xmm4
divsd  %xmm0,%xmm4
test   %r14d,%r14d
mov    0x30(%rsp),%rax
cmovns %r14d,%eax
sar    $0x3,%eax
test   %r13d,%r13d
cmovns %r13d,%ecx
sar    $0x4,%ecx
xorps  %xmm0,%xmm0
cvtsi2ss %ecx,%xmm0
movss  %xmm0,0x24(%rsp)
subsd  %xmm3,%xmm4
test   %ebx,%ebx
cmovns %ebx,%ebp
sar    $0x4,%ebp
xorps  %xmm0,%xmm0
cvtsi2ss %ebp,%xmm0
movss  %xmm0,0x20(%rsp)
lea    -0x3c(%rax),%ecx
mov    %ecx,0x28(%rsp)
add    $0xfffffff1,%eax
mov    %rax,0x30(%rsp)
xor    %r12d,%r12d
lea    0xd65(%rip),%rbx
xorps  %xmm5,%xmm5
movsd  %xmm3,0x40(%rsp)
movsd  %xmm4,0x38(%rsp)
jmp    12fe <sweep_v+0x1ae>
nopl   0x0(%rax)
add    $0x4,%r12
cmp    $0x18,%r12
je     13c8 <sweep_v+0x278>
movss  (%r12,%rbx,1),%xmm6
xorps  %xmm0,%xmm0
cvtss2sd %xmm6,%xmm0
movapd %xmm2,%xmm1
divsd  %xmm0,%xmm1
subsd  %xmm3,%xmm1
divsd  %xmm4,%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
ucomiss %xmm5,%xmm0
jb     12f0 <sweep_v+0x1a0>
movss  0xce1(%rip),%xmm1
ucomiss %xmm0,%xmm1
jb     12f0 <sweep_v+0x1a0>
mulss  0x20(%rsp),%xmm0
addss  0x24(%rsp),%xmm0
cvttss2si %xmm0,%ebp
movl   $0x3,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x30(%rsp),%rcx
mov    %ebp,%r8d
mov    $0xa,%r9d
movsd  0xc9e(%rip),%xmm0
movss  %xmm6,0x2c(%rsp)
call   1030 <draw_rectangle@plt>
add    $0x6,%ebp
lea    0xd2d(%rip),%rax
mov    %rax,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x28(%rsp),%ecx
mov    %ebp,%r8d
mov    $0x6,%r9d
movss  0x2c(%rsp),%xmm0
movsd  0xc61(%rip),%xmm1
call   1040 <dispF@plt>
xorps  %xmm5,%xmm5
movsd  0x38(%rsp),%xmm4
movsd  0x40(%rsp),%xmm3
movsd  0xc3d(%rip),%xmm2
jmp    12f0 <sweep_v+0x1a0>
cmpl   $0x0,0x50(%rsp)
je     13dd <sweep_v+0x28d>
movss  0xc39(%rip),%xmm0
movss  %xmm0,0x4c(%rsp)
xorps  %xmm5,%xmm5
cvtsi2ss %r13d,%xmm5
lea    0x0(,%r14,8),%eax
sub    %r14d,%eax
lea    0x7(%rax),%ecx
test   %eax,%eax
cmovns %eax,%ecx
sar    $0x3,%ecx
lea    0xa(%rcx),%eax
mov    %eax,0x28(%rsp)
add    $0x5,%ecx
mov    %rcx,0x50(%rsp)
xor    %r12d,%r12d
lea    0xc7c(%rip),%rbx
xorps  %xmm6,%xmm6
movss  %xmm5,0x30(%rsp)
jmp    142e <sweep_v+0x2de>
nop
add    $0x4,%r12
cmp    $0x1c,%r12
je     1789 <sweep_v+0x639>
movss  (%r12,%rbx,1),%xmm7
movaps %xmm7,%xmm0
divss  %xmm5,%xmm0
mulss  0x4c(%rsp),%xmm0
cvtss2sd %xmm0,%xmm0
movapd %xmm2,%xmm1
divsd  %xmm0,%xmm1
subsd  %xmm3,%xmm1
divsd  %xmm4,%xmm1
xorps  %xmm0,%xmm0
cvtsd2ss %xmm1,%xmm0
ucomiss %xmm6,%xmm0
jb     1420 <sweep_v+0x2d0>
movss  0xba7(%rip),%xmm1
ucomiss %xmm0,%xmm1
jb     1420 <sweep_v+0x2d0>
mulss  0x20(%rsp),%xmm0
addss  0x24(%rsp),%xmm0
cvttss2si %xmm0,%ebp
movl   $0x3,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x50(%rsp),%rcx
mov    %ebp,%r8d
mov    $0xa,%r9d
movsd  0xb64(%rip),%xmm0
movss  %xmm7,0x2c(%rsp)
call   1030 <draw_rectangle@plt>
add    $0x6,%ebp
lea    0xbf9(%rip),%rax
mov    %rax,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x28(%rsp),%ecx
mov    %ebp,%r8d
mov    $0x6,%r9d
movss  0x2c(%rsp),%xmm0
movsd  0xb27(%rip),%xmm1
call   1040 <dispF@plt>
xorps  %xmm6,%xmm6
movss  0x30(%rsp),%xmm5
movsd  0x38(%rsp),%xmm4
movsd  0x40(%rsp),%xmm3
movsd  0xafd(%rip),%xmm2
jmp    1420 <sweep_v+0x2d0>
mov    %r10d,0x10(%rsp)
mov    %eax,(%rsp)
movl   $0x0,0x8(%rsp)
mov    %r15,%rdi
mov    %esi,0x20(%rsp)
mov    %r14d,%esi
mov    %r13d,%edx
movss  0x40(%rsp),%xmm0
movaps %xmm3,%xmm1
call   1050 <draw_sweep_1@plt>
mov    0x24(%rsp),%eax
mov    0x20(%rsp),%ecx
test   %eax,%eax
jne    1257 <sweep_v+0x107>
test   %r14d,%r14d
mov    0x30(%rsp),%rdx
cmovns %r14d,%edx
sar    $0x3,%edx
test   %r13d,%r13d
cmovns %r13d,%ecx
sar    $0x4,%ecx
xorps  %xmm0,%xmm0
cvtsi2ss %ecx,%xmm0
movss  %xmm0,0x24(%rsp)
movss  0x38(%rsp),%xmm1
subss  0x40(%rsp),%xmm1
test   %ebx,%ebx
cmovns %ebx,%ebp
sar    $0x4,%ebp
xorps  %xmm0,%xmm0
cvtsi2ss %ebp,%xmm0
movss  %xmm0,0x20(%rsp)
lea    -0x3c(%rdx),%eax
mov    %eax,0x28(%rsp)
add    $0xfffffff1,%edx
mov    %rdx,0x30(%rsp)
xor    %ebx,%ebx
lea    0xa7e(%rip),%r12
xorps  %xmm3,%xmm3
movss  %xmm1,0x38(%rsp)
jmp    15be <sweep_v+0x46e>
nopl   (%rax)
add    $0x4,%rbx
cmp    $0x20,%rbx
je     1669 <sweep_v+0x519>
movss  (%rbx,%r12,1),%xmm4
movaps %xmm4,%xmm0
subss  0x40(%rsp),%xmm0
divss  %xmm1,%xmm0
ucomiss %xmm3,%xmm0
jb     15b0 <sweep_v+0x460>
movss  0xa32(%rip),%xmm2
ucomiss %xmm0,%xmm2
jb     15b0 <sweep_v+0x460>
mulss  0x20(%rsp),%xmm0
addss  0x24(%rsp),%xmm0
cvttss2si %xmm0,%ebp
movl   $0x3,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x30(%rsp),%rcx
mov    %ebp,%r8d
mov    $0xa,%r9d
movsd  0x9ef(%rip),%xmm0
movss  %xmm4,0x2c(%rsp)
call   1030 <draw_rectangle@plt>
add    $0x6,%ebp
lea    0xa7e(%rip),%rax
mov    %rax,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x28(%rsp),%ecx
mov    %ebp,%r8d
mov    $0x6,%r9d
movss  0x2c(%rsp),%xmm0
movsd  0x9b2(%rip),%xmm1
call   1040 <dispF@plt>
xorps  %xmm3,%xmm3
movss  0x38(%rsp),%xmm1
jmp    15b0 <sweep_v+0x460>
cmpl   $0x0,0x50(%rsp)
je     167e <sweep_v+0x52e>
movss  0x998(%rip),%xmm0
movss  %xmm0,0x4c(%rsp)
xorps  %xmm3,%xmm3
cvtsi2ss %r13d,%xmm3
lea    0x0(,%r14,8),%eax
sub    %r14d,%eax
lea    0x7(%rax),%ecx
test   %eax,%eax
cmovns %eax,%ecx
sar    $0x3,%ecx
lea    0xa(%rcx),%eax
mov    %eax,0x28(%rsp)
add    $0x5,%ecx
mov    %rcx,0x50(%rsp)
xor    %r12d,%r12d
lea    0x9ab(%rip),%rbx
xorps  %xmm4,%xmm4
movss  %xmm3,0x30(%rsp)
jmp    16ce <sweep_v+0x57e>
add    $0x4,%r12
cmp    $0x24,%r12
je     1789 <sweep_v+0x639>
movss  (%r12,%rbx,1),%xmm5
movaps %xmm5,%xmm0
divss  %xmm3,%xmm0
mulss  0x4c(%rsp),%xmm0
subss  0x40(%rsp),%xmm0
divss  %xmm1,%xmm0
ucomiss %xmm4,%xmm0
jb     16c0 <sweep_v+0x570>
movss  0x918(%rip),%xmm2
ucomiss %xmm0,%xmm2
jb     16c0 <sweep_v+0x570>
mulss  0x20(%rsp),%xmm0
addss  0x24(%rsp),%xmm0
cvttss2si %xmm0,%ebp
movl   $0x3,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x50(%rsp),%rcx
mov    %ebp,%r8d
mov    $0xa,%r9d
movsd  0x8d5(%rip),%xmm0
movss  %xmm5,0x2c(%rsp)
call   1030 <draw_rectangle@plt>
add    $0x6,%ebp
lea    0x96a(%rip),%rax
mov    %rax,(%rsp)
mov    %r15,%rdi
mov    %r14d,%esi
mov    %r13d,%edx
mov    0x28(%rsp),%ecx
mov    %ebp,%r8d
mov    $0x6,%r9d
movss  0x2c(%rsp),%xmm0
movsd  0x898(%rip),%xmm1
call   1040 <dispF@plt>
xorps  %xmm4,%xmm4
movss  0x30(%rsp),%xmm3
movss  0x38(%rsp),%xmm1
jmp    16c0 <sweep_v+0x570>
add    $0x58,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.sweep_v.lf1 = [8 x float] [float 0x3FA99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FD3333340000000, float 0x3FD99999A0000000, float 5.000000e-01, float 0x3FE3333340000000, float 0x3FE6666660000000]
@__const.sweep_v.lf2 = [6 x float] [float 0x3FA99999A0000000, float 0x3FB1EB8520000000, float 0x3FB99999A0000000, float 0x3FC3333340000000, float 0x3FD3333340000000, float 0x3FE6666660000000]
@__const.sweep_v.lf3 = [9 x float] [float 1.000000e+02, float 2.000000e+02, float 3.000000e+02, float 4.000000e+02, float 5.000000e+02, float 6.000000e+02, float 7.000000e+02, float 8.000000e+02, float 9.000000e+02]
@__const.sweep_v.lf4 = [7 x float] [float 1.000000e+01, float 2.500000e+01, float 5.000000e+01, float 1.000000e+02, float 2.000000e+02, float 4.000000e+02, float 8.000000e+02]
@.str = [6 x i8] c"%5.2f\00"
@.str.1 = [6 x i8] c"%4.0f\00"
define void @sweep_v(float* %0, i32 %1, i32 %2, i32 %3, float %4, i32 %5, float %6, float %7, float %8) {
%10 = alloca float*
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca float
%15 = alloca i32
%16 = alloca float
%17 = alloca float
%18 = alloca float
%19 = alloca float
%20 = alloca float
%21 = alloca [8 x float]
%22 = alloca [6 x float]
%23 = alloca [9 x float]
%24 = alloca [7 x float]
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
store float* %0, float** %10
store i32 %1, i32* %11
store i32 %2, i32* %12
store i32 %3, i32* %13
store float %4, float* %14
store i32 %5, i32* %15
store float %6, float* %16
store float %7, float* %17
store float %8, float* %18
%28 = bitcast [8 x float]* %21 to i8*
%29 = bitcast [6 x float]* %22 to i8*
%30 = bitcast [9 x float]* %23 to i8*
%31 = bitcast [7 x float]* %24 to i8*
store i32 0, i32* %26
br label %32
32: ; preds = %43, %9
%33 = load i32, i32* %26
%34 = load i32, i32* %11
%35 = load i32, i32* %12
%36 = mul nsw i32 %34, %35
%37 = icmp slt i32 %33, %36
br i1 %37, label %38, label %46
38: ; preds = %32
%39 = load float*, float** %10
%40 = load i32, i32* %26
%41 = sext i32 %40 to i64
%42 = getelementptr inbounds float, float* %39, i64 %41
store float 0.000000e+00, float* %42
br label %43
43: ; preds = %38
%44 = load i32, i32* %26
%45 = add nsw i32 %44, 1
store i32 %45, i32* %26
br label %32
46: ; preds = %32
%47 = load i32, i32* %13
%48 = icmp eq i32 %47, 0
br i1 %48, label %49, label %68
49: ; preds = %46
%50 = load float*, float** %10
%51 = load i32, i32* %11
%52 = load i32, i32* %12
%53 = load i32, i32* %11
%54 = sdiv i32 %53, 8
%55 = load i32, i32* %12
%56 = sdiv i32 %55, 16
%57 = load i32, i32* %11
%58 = mul nsw i32 6, %57
%59 = sdiv i32 %58, 8
%60 = load i32, i32* %12
%61 = mul nsw i32 14, %60
%62 = sdiv i32 %61, 16
%63 = load float, float* %17
%64 = load float, float* %18
%65 = load float, float* %14
%66 = load i32, i32* %15
%67 = call i32 @draw_sweep_1(float* %50, i32 %51, i32 %52, i32 %54, i32 %56, i32 %59, i32 %62, float %63, float %64, float %65, i32 0, i32 %66)
br label %87
68: ; preds = %46
%69 = load float*, float** %10
%70 = load i32, i32* %11
%71 = load i32, i32* %12
%72 = load i32, i32* %11
%73 = sdiv i32 %72, 8
%74 = load i32, i32* %12
%75 = sdiv i32 %74, 16
%76 = load i32, i32* %11
%77 = mul nsw i32 6, %76
%78 = sdiv i32 %77, 8
%79 = load i32, i32* %12
%80 = mul nsw i32 14, %79
%81 = sdiv i32 %80, 16
%82 = load float, float* %17
%83 = load float, float* %18
%84 = load float, float* %14
%85 = load i32, i32* %15
%86 = call i32 @draw_sweep_2(float* %69, i32 %70, i32 %71, i32 %73, i32 %75, i32 %78, i32 %81, float %82, float %83, float %84, i32 0, i32 %85)
br label %87
87: ; preds = %68, %49
%88 = load i32, i32* %15
%89 = icmp eq i32 %88, 0
br i1 %89, label %90, label %224
90: ; preds = %87
store i32 0, i32* %25
br label %91
91: ; preds = %147, %90
%92 = load i32, i32* %25
%93 = sext i32 %92 to i64
%94 = icmp ult i64 %93, 8
br i1 %94, label %95, label %150
95: ; preds = %91
%96 = load i32, i32* %25
%97 = sext i32 %96 to i64
%98 = getelementptr inbounds [8 x float], [8 x float]* %21, i64 0, i64 %97
%99 = load float, float* %98
%100 = load float, float* %17
%101 = fsub float %99, %100
%102 = load float, float* %18
%103 = load float, float* %17
%104 = fsub float %102, %103
%105 = fdiv float %101, %104
store float %105, float* %19
%106 = load float, float* %19
%107 = fpext float %106 to double
%108 = fcmp oge double %107, 0.000000e+00
br i1 %108, label %109, label %146
109: ; preds = %95
%110 = load float, float* %19
%111 = fpext float %110 to double
%112 = fcmp ole double %111, 1.000000e+00
br i1 %112, label %113, label %146
113: ; preds = %109
%114 = load i32, i32* %11
%115 = sdiv i32 %114, 8
%116 = sub nsw i32 %115, 60
store i32 %116, i32* %26
%117 = load i32, i32* %12
%118 = sdiv i32 %117, 16
%119 = sitofp i32 %118 to float
%120 = load float, float* %19
%121 = load i32, i32* %12
%122 = mul nsw i32 14, %121
%123 = sdiv i32 %122, 16
%124 = sitofp i32 %123 to float
%125 = call float @llvm.fmuladd.f32(float %120, float %124, float %119)
%126 = fptosi float %125 to i32
store i32 %126, i32* %27
%127 = load float*, float** %10
%128 = load i32, i32* %11
%129 = load i32, i32* %12
%130 = load i32, i32* %11
%131 = sdiv i32 %130, 8
%132 = sub nsw i32 %131, 15
%133 = load i32, i32* %27
%134 = call i32 @draw_rectangle(float* %127, i32 %128, i32 %129, i32 %132, i32 %133, i32 10, i32 3, double 9.000000e-01)
%135 = load float*, float** %10
%136 = load i32, i32* %11
%137 = load i32, i32* %12
%138 = load i32, i32* %26
%139 = load i32, i32* %27
%140 = add nsw i32 %139, 6
%141 = load i32, i32* %25
%142 = sext i32 %141 to i64
%143 = getelementptr inbounds [8 x float], [8 x float]* %21, i64 0, i64 %142
%144 = load float, float* %143
%145 = call i32 @dispF(float* %135, i32 %136, i32 %137, i32 %138, i32 %140, i32 6, float %144, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), double 9.000000e-01)
br label %146
146: ; preds = %113, %109, %95
br label %147
147: ; preds = %146
%148 = load i32, i32* %25
%149 = add nsw i32 %148, 1
store i32 %149, i32* %25
br label %91
150: ; preds = %91
store i32 0, i32* %25
br label %151
151: ; preds = %220, %150
%152 = load i32, i32* %25
%153 = sext i32 %152 to i64
%154 = icmp ult i64 %153, 9
br i1 %154, label %155, label %223
155: ; preds = %151
%156 = load i32, i32* %25
%157 = sext i32 %156 to i64
%158 = getelementptr inbounds [9 x float], [9 x float]* %23, i64 0, i64 %157
%159 = load float, float* %158
%160 = load i32, i32* %12
%161 = sitofp i32 %160 to float
%162 = fdiv float %159, %161
store float %162, float* %20
%163 = load i32, i32* %13
%164 = icmp eq i32 %163, 0
br i1 %164, label %165, label %169
165: ; preds = %155
%166 = load float, float* %20
%167 = load float, float* %16
%168 = fmul float %166, %167
store float %168, float* %20
br label %169
169: ; preds = %165, %155
%170 = load float, float* %20
%171 = load float, float* %17
%172 = fsub float %170, %171
%173 = load float, float* %18
%174 = load float, float* %17
%175 = fsub float %173, %174
%176 = fdiv float %172, %175
store float %176, float* %19
%177 = load float, float* %19
%178 = fpext float %177 to double
%179 = fcmp oge double %178, 0.000000e+00
br i1 %179, label %180, label %219
180: ; preds = %169
%181 = load float, float* %19
%182 = fpext float %181 to double
%183 = fcmp ole double %182, 1.000000e+00
br i1 %183, label %184, label %219
184: ; preds = %180
%185 = load i32, i32* %11
%186 = mul nsw i32 7, %185
%187 = sdiv i32 %186, 8
%188 = add nsw i32 %187, 10
store i32 %188, i32* %26
%189 = load i32, i32* %12
%190 = sdiv i32 %189, 16
%191 = sitofp i32 %190 to float
%192 = load float, float* %19
%193 = load i32, i32* %12
%194 = mul nsw i32 14, %193
%195 = sdiv i32 %194, 16
%196 = sitofp i32 %195 to float
%197 = call float @llvm.fmuladd.f32(float %192, float %196, float %191)
%198 = fptosi float %197 to i32
store i32 %198, i32* %27
%199 = load float*, float** %10
%200 = load i32, i32* %11
%201 = load i32, i32* %12
%202 = load i32, i32* %11
%203 = mul nsw i32 7, %202
%204 = sdiv i32 %203, 8
%205 = add nsw i32 %204, 5
%206 = load i32, i32* %27
%207 = call i32 @draw_rectangle(float* %199, i32 %200, i32 %201, i32 %205, i32 %206, i32 10, i32 3, double 9.000000e-01)
%208 = load float*, float** %10
%209 = load i32, i32* %11
%210 = load i32, i32* %12
%211 = load i32, i32* %26
%212 = load i32, i32* %27
%213 = add nsw i32 %212, 6
%214 = load i32, i32* %25
%215 = sext i32 %214 to i64
%216 = getelementptr inbounds [9 x float], [9 x float]* %23, i64 0, i64 %215
%217 = load float, float* %216
%218 = call i32 @dispF(float* %208, i32 %209, i32 %210, i32 %211, i32 %213, i32 6, float %217, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double 9.000000e-01)
br label %219
219: ; preds = %184, %180, %169
br label %220
220: ; preds = %219
%221 = load i32, i32* %25
%222 = add nsw i32 %221, 1
store i32 %222, i32* %25
br label %151
223: ; preds = %151
br label %376
224: ; preds = %87
store i32 0, i32* %25
br label %225
225: ; preds = %290, %224
%226 = load i32, i32* %25
%227 = sext i32 %226 to i64
%228 = icmp ult i64 %227, 6
br i1 %228, label %229, label %293
229: ; preds = %225
%230 = load i32, i32* %25
%231 = sext i32 %230 to i64
%232 = getelementptr inbounds [6 x float], [6 x float]* %22, i64 0, i64 %231
%233 = load float, float* %232
%234 = fpext float %233 to double
%235 = fdiv double 1.000000e+00, %234
%236 = load float, float* %17
%237 = fpext float %236 to double
%238 = fdiv double 1.000000e+00, %237
%239 = fsub double %235, %238
%240 = load float, float* %18
%241 = fpext float %240 to double
%242 = fdiv double 1.000000e+00, %241
%243 = load float, float* %17
%244 = fpext float %243 to double
%245 = fdiv double 1.000000e+00, %244
%246 = fsub double %242, %245
%247 = fdiv double %239, %246
%248 = fptrunc double %247 to float
store float %248, float* %19
%249 = load float, float* %19
%250 = fpext float %249 to double
%251 = fcmp oge double %250, 0.000000e+00
br i1 %251, label %252, label %289
252: ; preds = %229
%253 = load float, float* %19
%254 = fpext float %253 to double
%255 = fcmp ole double %254, 1.000000e+00
br i1 %255, label %256, label %289
256: ; preds = %252
%257 = load i32, i32* %11
%258 = sdiv i32 %257, 8
%259 = sub nsw i32 %258, 60
store i32 %259, i32* %26
%260 = load i32, i32* %12
%261 = sdiv i32 %260, 16
%262 = sitofp i32 %261 to float
%263 = load float, float* %19
%264 = load i32, i32* %12
%265 = mul nsw i32 14, %264
%266 = sdiv i32 %265, 16
%267 = sitofp i32 %266 to float
%268 = call float @llvm.fmuladd.f32(float %263, float %267, float %262)
%269 = fptosi float %268 to i32
store i32 %269, i32* %27
%270 = load float*, float** %10
%271 = load i32, i32* %11
%272 = load i32, i32* %12
%273 = load i32, i32* %11
%274 = sdiv i32 %273, 8
%275 = sub nsw i32 %274, 15
%276 = load i32, i32* %27
%277 = call i32 @draw_rectangle(float* %270, i32 %271, i32 %272, i32 %275, i32 %276, i32 10, i32 3, double 9.000000e-01)
%278 = load float*, float** %10
%279 = load i32, i32* %11
%280 = load i32, i32* %12
%281 = load i32, i32* %26
%282 = load i32, i32* %27
%283 = add nsw i32 %282, 6
%284 = load i32, i32* %25
%285 = sext i32 %284 to i64
%286 = getelementptr inbounds [6 x float], [6 x float]* %22, i64 0, i64 %285
%287 = load float, float* %286
%288 = call i32 @dispF(float* %278, i32 %279, i32 %280, i32 %281, i32 %283, i32 6, float %287, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), double 9.000000e-01)
br label %289
289: ; preds = %256, %252, %229
br label %290
290: ; preds = %289
%291 = load i32, i32* %25
%292 = add nsw i32 %291, 1
store i32 %292, i32* %25
br label %225
293: ; preds = %225
store i32 0, i32* %25
br label %294
294: ; preds = %372, %293
%295 = load i32, i32* %25
%296 = sext i32 %295 to i64
%297 = icmp ult i64 %296, 7
br i1 %297, label %298, label %375
298: ; preds = %294
%299 = load i32, i32* %25
%300 = sext i32 %299 to i64
%301 = getelementptr inbounds [7 x float], [7 x float]* %24, i64 0, i64 %300
%302 = load float, float* %301
%303 = load i32, i32* %12
%304 = sitofp i32 %303 to float
%305 = fdiv float %302, %304
store float %305, float* %20
%306 = load i32, i32* %13
%307 = icmp eq i32 %306, 0
br i1 %307, label %308, label %312
308: ; preds = %298
%309 = load float, float* %20
%310 = load float, float* %16
%311 = fmul float %309, %310
store float %311, float* %20
br label %312
312: ; preds = %308, %298
%313 = load float, float* %20
%314 = fpext float %313 to double
%315 = fdiv double 1.000000e+00, %314
%316 = load float, float* %17
%317 = fpext float %316 to double
%318 = fdiv double 1.000000e+00, %317
%319 = fsub double %315, %318
%320 = load float, float* %18
%321 = fpext float %320 to double
%322 = fdiv double 1.000000e+00, %321
%323 = load float, float* %17
%324 = fpext float %323 to double
%325 = fdiv double 1.000000e+00, %324
%326 = fsub double %322, %325
%327 = fdiv double %319, %326
%328 = fptrunc double %327 to float
store float %328, float* %19
%329 = load float, float* %19
%330 = fpext float %329 to double
%331 = fcmp oge double %330, 0.000000e+00
br i1 %331, label %332, label %371
332: ; preds = %312
%333 = load float, float* %19
%334 = fpext float %333 to double
%335 = fcmp ole double %334, 1.000000e+00
br i1 %335, label %336, label %371
336: ; preds = %332
%337 = load i32, i32* %11
%338 = mul nsw i32 7, %337
%339 = sdiv i32 %338, 8
%340 = add nsw i32 %339, 10
store i32 %340, i32* %26
%341 = load i32, i32* %12
%342 = sdiv i32 %341, 16
%343 = sitofp i32 %342 to float
%344 = load float, float* %19
%345 = load i32, i32* %12
%346 = mul nsw i32 14, %345
%347 = sdiv i32 %346, 16
%348 = sitofp i32 %347 to float
%349 = call float @llvm.fmuladd.f32(float %344, float %348, float %343)
%350 = fptosi float %349 to i32
store i32 %350, i32* %27
%351 = load float*, float** %10
%352 = load i32, i32* %11
%353 = load i32, i32* %12
%354 = load i32, i32* %11
%355 = mul nsw i32 7, %354
%356 = sdiv i32 %355, 8
%357 = add nsw i32 %356, 5
%358 = load i32, i32* %27
%359 = call i32 @draw_rectangle(float* %351, i32 %352, i32 %353, i32 %357, i32 %358, i32 10, i32 3, double 9.000000e-01)
%360 = load float*, float** %10
%361 = load i32, i32* %11
%362 = load i32, i32* %12
%363 = load i32, i32* %26
%364 = load i32, i32* %27
%365 = add nsw i32 %364, 6
%366 = load i32, i32* %25
%367 = sext i32 %366 to i64
%368 = getelementptr inbounds [7 x float], [7 x float]* %24, i64 0, i64 %367
%369 = load float, float* %368
%370 = call i32 @dispF(float* %360, i32 %361, i32 %362, i32 %363, i32 %365, i32 6, float %369, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double 9.000000e-01)
br label %371
371: ; preds = %336, %332, %312
br label %372
372: ; preds = %371
%373 = load i32, i32* %25
%374 = add nsw i32 %373, 1
store i32 %374, i32* %25
br label %294
375: ; preds = %294
br label %376
376: ; preds = %375, %223
ret void
}

LLVM IR (-O2):
@__const.sweep_v.lf1 = [8 x float] [float 0x3FA99999A0000000, float 0x3FB99999A0000000, float 0x3FC99999A0000000, float 0x3FD3333340000000, float 0x3FD99999A0000000, float 5.000000e-01, float 0x3FE3333340000000, float 0x3FE6666660000000]
@__const.sweep_v.lf2 = [6 x float] [float 0x3FA99999A0000000, float 0x3FB1EB8520000000, float 0x3FB99999A0000000, float 0x3FC3333340000000, float 0x3FD3333340000000, float 0x3FE6666660000000]
@__const.sweep_v.lf3 = [9 x float] [float 1.000000e+02, float 2.000000e+02, float 3.000000e+02, float 4.000000e+02, float 5.000000e+02, float 6.000000e+02, float 7.000000e+02, float 8.000000e+02, float 9.000000e+02]
@__const.sweep_v.lf4 = [7 x float] [float 1.000000e+01, float 2.500000e+01, float 5.000000e+01, float 1.000000e+02, float 2.000000e+02, float 4.000000e+02, float 8.000000e+02]
@.str = [6 x i8] c"%5.2f\00"
@.str.1 = [6 x i8] c"%4.0f\00"
define void @sweep_v(float* %0, i32 %1, i32 %2, i32 %3, float %4, i32 %5, float %6, float %7, float %8) {
%10 = mul i32 %2, %1
%11 = icmp sgt i32 %10, 0
br i1 %11, label %12, label %16
12: ; preds = %9
%13 = bitcast float* %0 to i8*
%14 = zext i32 %10 to i64
%15 = shl nuw nsw i64 %14, 2
br label %16
16: ; preds = %12, %9
%17 = icmp eq i32 %3, 0
%18 = sdiv i32 %1, 8
%19 = sdiv i32 %2, 16
%20 = mul nsw i32 %1, 6
%21 = sdiv i32 %20, 8
%22 = mul nsw i32 %2, 14
%23 = sdiv i32 %22, 16
br i1 %17, label %24, label %26
24: ; preds = %16
%25 = tail call i32 @draw_sweep_1(float* %0, i32 %1, i32 %2, i32 %18, i32 %19, i32 %21, i32 %23, float %7, float %8, float %4, i32 0, i32 %5)
br label %28
26: ; preds = %16
%27 = tail call i32 @draw_sweep_2(float* %0, i32 %1, i32 %2, i32 %18, i32 %19, i32 %21, i32 %23, float %7, float %8, float %4, i32 0, i32 %5)
br label %28
28: ; preds = %26, %24
%29 = icmp eq i32 %5, 0
br i1 %29, label %44, label %30
30: ; preds = %28
%31 = fpext float %7 to double
%32 = fdiv double 1.000000e+00, %31
%33 = fpext float %8 to double
%34 = fdiv double 1.000000e+00, %33
%35 = fsub double %34, %32
%36 = sdiv i32 %1, 8
%37 = add nsw i32 %36, -60
%38 = sdiv i32 %2, 16
%39 = sitofp i32 %38 to float
%40 = mul nsw i32 %2, 14
%41 = sdiv i32 %40, 16
%42 = sitofp i32 %41 to float
%43 = add nsw i32 %36, -15
br label %106
44: ; preds = %28
%45 = fsub float %8, %7
%46 = sdiv i32 %1, 8
%47 = add nsw i32 %46, -60
%48 = sdiv i32 %2, 16
%49 = sitofp i32 %48 to float
%50 = mul nsw i32 %2, 14
%51 = sdiv i32 %50, 16
%52 = sitofp i32 %51 to float
%53 = add nsw i32 %46, -15
br label %61
54: ; preds = %76
%55 = sitofp i32 %2 to float
%56 = select i1 %17, float %6, float 1.000000e+00
%57 = mul nsw i32 %1, 7
%58 = sdiv i32 %57, 8
%59 = add nsw i32 %58, 10
%60 = add nsw i32 %58, 5
br label %79
61: ; preds = %44, %76
%62 = phi i64 [ 0, %44 ], [ %77, %76 ]
%63 = getelementptr inbounds [8 x float], [8 x float]* @__const.sweep_v.lf1, i64 0, i64 %62
%64 = load float, float* %63
%65 = fsub float %64, %7
%66 = fdiv float %65, %45
%67 = fcmp ult float %66, 0.000000e+00
%68 = fcmp ugt float %66, 1.000000e+00
%69 = or i1 %67, %68
br i1 %69, label %76, label %70
70: ; preds = %61
%71 = tail call float @llvm.fmuladd.f32(float %66, float %52, float %49)
%72 = fptosi float %71 to i32
%73 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %53, i32 %72, i32 10, i32 3, double 9.000000e-01)
%74 = add nsw i32 %72, 6
%75 = tail call i32 @dispF(float* %0, i32 %1, i32 %2, i32 %47, i32 %74, i32 6, float %64, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), double 9.000000e-01)
br label %76
76: ; preds = %61, %70
%77 = add nuw nsw i64 %62, 1
%78 = icmp eq i64 %77, 8
br i1 %78, label %54, label %61
79: ; preds = %54, %96
%80 = phi i64 [ 0, %54 ], [ %97, %96 ]
%81 = getelementptr inbounds [9 x float], [9 x float]* @__const.sweep_v.lf3, i64 0, i64 %80
%82 = load float, float* %81
%83 = fdiv float %82, %55
%84 = fmul float %56, %83
%85 = fsub float %84, %7
%86 = fdiv float %85, %45
%87 = fcmp ult float %86, 0.000000e+00
%88 = fcmp ugt float %86, 1.000000e+00
%89 = or i1 %87, %88
br i1 %89, label %96, label %90
90: ; preds = %79
%91 = tail call float @llvm.fmuladd.f32(float %86, float %52, float %49)
%92 = fptosi float %91 to i32
%93 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %60, i32 %92, i32 10, i32 3, double 9.000000e-01)
%94 = add nsw i32 %92, 6
%95 = tail call i32 @dispF(float* %0, i32 %1, i32 %2, i32 %59, i32 %94, i32 6, float %82, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double 9.000000e-01)
br label %96
96: ; preds = %79, %90
%97 = add nuw nsw i64 %80, 1
%98 = icmp eq i64 %97, 9
br i1 %98, label %150, label %79
99: ; preds = %124
%100 = sitofp i32 %2 to float
%101 = select i1 %17, float %6, float 1.000000e+00
%102 = mul nsw i32 %1, 7
%103 = sdiv i32 %102, 8
%104 = add nsw i32 %103, 10
%105 = add nsw i32 %103, 5
br label %127
106: ; preds = %30, %124
%107 = phi i64 [ 0, %30 ], [ %125, %124 ]
%108 = getelementptr inbounds [6 x float], [6 x float]* @__const.sweep_v.lf2, i64 0, i64 %107
%109 = load float, float* %108
%110 = fpext float %109 to double
%111 = fdiv double 1.000000e+00, %110
%112 = fsub double %111, %32
%113 = fdiv double %112, %35
%114 = fptrunc double %113 to float
%115 = fcmp ult float %114, 0.000000e+00
%116 = fcmp ugt float %114, 1.000000e+00
%117 = or i1 %115, %116
br i1 %117, label %124, label %118
118: ; preds = %106
%119 = tail call float @llvm.fmuladd.f32(float %114, float %42, float %39)
%120 = fptosi float %119 to i32
%121 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %43, i32 %120, i32 10, i32 3, double 9.000000e-01)
%122 = add nsw i32 %120, 6
%123 = tail call i32 @dispF(float* %0, i32 %1, i32 %2, i32 %37, i32 %122, i32 6, float %109, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), double 9.000000e-01)
br label %124
124: ; preds = %106, %118
%125 = add nuw nsw i64 %107, 1
%126 = icmp eq i64 %125, 6
br i1 %126, label %99, label %106
127: ; preds = %99, %147
%128 = phi i64 [ 0, %99 ], [ %148, %147 ]
%129 = getelementptr inbounds [7 x float], [7 x float]* @__const.sweep_v.lf4, i64 0, i64 %128
%130 = load float, float* %129
%131 = fdiv float %130, %100
%132 = fmul float %101, %131
%133 = fpext float %132 to double
%134 = fdiv double 1.000000e+00, %133
%135 = fsub double %134, %32
%136 = fdiv double %135, %35
%137 = fptrunc double %136 to float
%138 = fcmp ult float %137, 0.000000e+00
%139 = fcmp ugt float %137, 1.000000e+00
%140 = or i1 %138, %139
br i1 %140, label %147, label %141
141: ; preds = %127
%142 = tail call float @llvm.fmuladd.f32(float %137, float %42, float %39)
%143 = fptosi float %142 to i32
%144 = tail call i32 @draw_rectangle(float* %0, i32 %1, i32 %2, i32 %105, i32 %143, i32 10, i32 3, double 9.000000e-01)
%145 = add nsw i32 %143, 6
%146 = tail call i32 @dispF(float* %0, i32 %1, i32 %2, i32 %104, i32 %145, i32 6, float %130, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), double 9.000000e-01)
br label %147
147: ; preds = %127, %141
%148 = add nuw nsw i64 %128, 1
%149 = icmp eq i64 %148, 7
br i1 %149, label %150, label %127
150: ; preds = %147, %96
ret void
}