double ho_recognize_font_1_pey(const double *array_in) {
  double return_value = 0.0;
  if ((array_in[17]))
    return_value += 0.15;
  if ((array_in[19]))
    return_value += 0.15;
  if ((array_in[22]))
    return_value += 0.15;
  if ((array_in[39]))
    return_value += 0.15;
  if ((array_in[8]) < 0.3)
    return_value += 0.15;
  if ((array_in[52]) || (array_in[53]))
    return_value += 0.2;
  if ((array_in[61]) && (array_in[53]))
    return_value += 0.2;
  if ((array_in[55]))
    return_value += 0.1;
  if ((array_in[67]) && (array_in[74]))
    return_value += 0.1;
  if ((array_in[0]) < 0.45)
    return_value -= 0.3;
  if ((array_in[20]))
    return_value -= 0.1;
  if ((array_in[30]))
    return_value -= 0.3;
  if ((array_in[47]) || (array_in[48]))
    return_value -= 0.3;
  if ((array_in[19]) < 0.5)
    return_value -= 0.2;
  if ((array_in[49]) && !(array_in[58]))
    return_value -= 0.3;
  if ((array_in[2]) < 0.60)
    return_value -= 0.3;
  if (!(array_in[39]))
    return_value -= 0.3;
  if ((array_in[44]))
    return_value -= 0.3;
  if (((array_in[7]) + 0.2) < (array_in[12]))
    return_value -= 0.2;
  if ((array_in[67]) && (array_in[88]) > ((array_in[90]) + 0.1))
    return_value -= 0.2;
  if ((array_in[67]) && (!(array_in[72]) && !(array_in[74])))
    return_value -= 0.2;
  if (!(array_in[52]) && !(array_in[53]) && !(array_in[63]))
    return_value -= 0.2;
  return return_value;
}


x86 assembly (clang, -O0):
<ho_recognize_font_1_pey>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1134 <ho_recognize_font_1_pey+0x34>
jp     1134 <ho_recognize_font_1_pey+0x34>
jmp    1146 <ho_recognize_font_1_pey+0x46>
movsd  0xec4(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    116a <ho_recognize_font_1_pey+0x6a>
jp     116a <ho_recognize_font_1_pey+0x6a>
jmp    117c <ho_recognize_font_1_pey+0x7c>
movsd  0xe8e(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    11a0 <ho_recognize_font_1_pey+0xa0>
jp     11a0 <ho_recognize_font_1_pey+0xa0>
jmp    11b2 <ho_recognize_font_1_pey+0xb2>
movsd  0xe58(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x138(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    11d6 <ho_recognize_font_1_pey+0xd6>
jp     11d6 <ho_recognize_font_1_pey+0xd6>
jmp    11e8 <ho_recognize_font_1_pey+0xe8>
movsd  0xe22(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xe14(%rip),%xmm0
ucomisd 0x40(%rax),%xmm0
jbe    1211 <ho_recognize_font_1_pey+0x111>
movsd  0xdf9(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x1a0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1254 <ho_recognize_font_1_pey+0x154>
jp     1254 <ho_recognize_font_1_pey+0x154>
mov    -0x8(%rbp),%rax
movsd  0x1a8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1254 <ho_recognize_font_1_pey+0x154>
jp     1254 <ho_recognize_font_1_pey+0x154>
jmp    1266 <ho_recognize_font_1_pey+0x166>
movsd  0xdb4(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x1e8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    128a <ho_recognize_font_1_pey+0x18a>
jp     128a <ho_recognize_font_1_pey+0x18a>
jmp    12c0 <ho_recognize_font_1_pey+0x1c0>
mov    -0x8(%rbp),%rax
movsd  0x1a8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    12ae <ho_recognize_font_1_pey+0x1ae>
jp     12ae <ho_recognize_font_1_pey+0x1ae>
jmp    12c0 <ho_recognize_font_1_pey+0x1c0>
movsd  0xd5a(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x1b8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    12e4 <ho_recognize_font_1_pey+0x1e4>
jp     12e4 <ho_recognize_font_1_pey+0x1e4>
jmp    12f6 <ho_recognize_font_1_pey+0x1f6>
movsd  0xd2c(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x218(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    131a <ho_recognize_font_1_pey+0x21a>
jp     131a <ho_recognize_font_1_pey+0x21a>
jmp    1350 <ho_recognize_font_1_pey+0x250>
mov    -0x8(%rbp),%rax
movsd  0x250(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    133e <ho_recognize_font_1_pey+0x23e>
jp     133e <ho_recognize_font_1_pey+0x23e>
jmp    1350 <ho_recognize_font_1_pey+0x250>
movsd  0xcd2(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xcc4(%rip),%xmm0
ucomisd (%rax),%xmm0
jbe    137c <ho_recognize_font_1_pey+0x27c>
movsd  -0x10(%rbp),%xmm0
movsd  0xc95(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    13a0 <ho_recognize_font_1_pey+0x2a0>
jp     13a0 <ho_recognize_font_1_pey+0x2a0>
jmp    13b6 <ho_recognize_font_1_pey+0x2b6>
movsd  -0x10(%rbp),%xmm0
movsd  0xc6b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xf0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    13da <ho_recognize_font_1_pey+0x2da>
jp     13da <ho_recognize_font_1_pey+0x2da>
jmp    13f0 <ho_recognize_font_1_pey+0x2f0>
movsd  -0x10(%rbp),%xmm0
movsd  0xc21(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x178(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1433 <ho_recognize_font_1_pey+0x333>
jp     1433 <ho_recognize_font_1_pey+0x333>
mov    -0x8(%rbp),%rax
movsd  0x180(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1433 <ho_recognize_font_1_pey+0x333>
jp     1433 <ho_recognize_font_1_pey+0x333>
jmp    1449 <ho_recognize_font_1_pey+0x349>
movsd  -0x10(%rbp),%xmm0
movsd  0xbc8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xbd3(%rip),%xmm0
ucomisd 0x98(%rax),%xmm0
jbe    1479 <ho_recognize_font_1_pey+0x379>
movsd  -0x10(%rbp),%xmm0
movsd  0xba0(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x188(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    149d <ho_recognize_font_1_pey+0x39d>
jp     149d <ho_recognize_font_1_pey+0x39d>
jmp    14d2 <ho_recognize_font_1_pey+0x3d2>
mov    -0x8(%rbp),%rax
movsd  0x1d0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    14d2 <ho_recognize_font_1_pey+0x3d2>
jp     14d2 <ho_recognize_font_1_pey+0x3d2>
movsd  -0x10(%rbp),%xmm0
movsd  0xb3f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xb52(%rip),%xmm0
ucomisd 0x10(%rax),%xmm0
jbe    14ff <ho_recognize_font_1_pey+0x3ff>
movsd  -0x10(%rbp),%xmm0
movsd  0xb12(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x138(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1534 <ho_recognize_font_1_pey+0x434>
jp     1534 <ho_recognize_font_1_pey+0x434>
movsd  -0x10(%rbp),%xmm0
movsd  0xadd(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x160(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1558 <ho_recognize_font_1_pey+0x458>
jp     1558 <ho_recognize_font_1_pey+0x458>
jmp    156e <ho_recognize_font_1_pey+0x46e>
movsd  -0x10(%rbp),%xmm0
movsd  0xaa3(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xa96(%rip),%xmm1
addsd  0x38(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    15a8 <ho_recognize_font_1_pey+0x4a8>
movsd  -0x10(%rbp),%xmm0
movsd  0xa71(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x218(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    15cc <ho_recognize_font_1_pey+0x4cc>
jp     15cc <ho_recognize_font_1_pey+0x4cc>
jmp    160c <ho_recognize_font_1_pey+0x50c>
mov    -0x8(%rbp),%rax
movsd  0x2c0(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xa34(%rip),%xmm1
addsd  0x2d0(%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    160c <ho_recognize_font_1_pey+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xa0d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x218(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1630 <ho_recognize_font_1_pey+0x530>
jp     1630 <ho_recognize_font_1_pey+0x530>
jmp    1684 <ho_recognize_font_1_pey+0x584>
mov    -0x8(%rbp),%rax
movsd  0x240(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1684 <ho_recognize_font_1_pey+0x584>
jp     1684 <ho_recognize_font_1_pey+0x584>
mov    -0x8(%rbp),%rax
movsd  0x250(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1684 <ho_recognize_font_1_pey+0x584>
jp     1684 <ho_recognize_font_1_pey+0x584>
movsd  -0x10(%rbp),%xmm0
movsd  0x995(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x1a0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    16f7 <ho_recognize_font_1_pey+0x5f7>
jp     16f7 <ho_recognize_font_1_pey+0x5f7>
mov    -0x8(%rbp),%rax
movsd  0x1a8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    16f7 <ho_recognize_font_1_pey+0x5f7>
jp     16f7 <ho_recognize_font_1_pey+0x5f7>
mov    -0x8(%rbp),%rax
movsd  0x1f8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    16f7 <ho_recognize_font_1_pey+0x5f7>
jp     16f7 <ho_recognize_font_1_pey+0x5f7>
movsd  -0x10(%rbp),%xmm0
movsd  0x922(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x10(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<ho_recognize_font_1_pey>:
xorpd  %xmm4,%xmm4
movsd  0x88(%rdi),%xmm3
cmpneqsd %xmm4,%xmm3
movsd  0xee7(%rip),%xmm1
andpd  %xmm1,%xmm3
movsd  0x40(%rdi),%xmm0
movsd  0x98(%rdi),%xmm2
movapd %xmm2,%xmm5
cmpneqsd %xmm4,%xmm5
movapd %xmm5,%xmm6
andnpd %xmm3,%xmm6
addsd  %xmm1,%xmm3
andpd  %xmm3,%xmm5
orpd   %xmm6,%xmm5
movsd  0xb0(%rdi),%xmm6
cmpneqsd %xmm4,%xmm6
movapd %xmm6,%xmm3
andnpd %xmm5,%xmm3
addsd  %xmm1,%xmm5
andpd  %xmm5,%xmm6
orpd   %xmm3,%xmm6
movsd  0x138(%rdi),%xmm3
movapd %xmm3,%xmm5
cmpneqsd %xmm4,%xmm5
movapd %xmm5,%xmm7
andnpd %xmm6,%xmm7
addsd  %xmm1,%xmm6
andpd  %xmm6,%xmm5
cmpltsd 0xe76(%rip),%xmm0
orpd   %xmm7,%xmm5
movapd %xmm0,%xmm6
andnpd %xmm5,%xmm6
addsd  %xmm1,%xmm5
andpd  %xmm5,%xmm0
orpd   %xmm6,%xmm0
movsd  0x1a0(%rdi),%xmm8
ucomisd %xmm4,%xmm8
jne    11cc <ho_recognize_font_1_pey+0xcc>
jp     11cc <ho_recognize_font_1_pey+0xcc>
movsd  0x1a8(%rdi),%xmm5
ucomisd %xmm4,%xmm5
jne    11cc <ho_recognize_font_1_pey+0xcc>
jnp    11d4 <ho_recognize_font_1_pey+0xd4>
addsd  0xe3c(%rip),%xmm0
movsd  0x1e8(%rdi),%xmm5
xorpd  %xmm4,%xmm4
ucomisd %xmm4,%xmm5
jne    11e8 <ho_recognize_font_1_pey+0xe8>
jnp    1200 <ho_recognize_font_1_pey+0x100>
movsd  0x1a8(%rdi),%xmm5
ucomisd %xmm4,%xmm5
jne    11f8 <ho_recognize_font_1_pey+0xf8>
jnp    1200 <ho_recognize_font_1_pey+0x100>
addsd  0xe10(%rip),%xmm0
movsd  0xe10(%rip),%xmm6
addsd  %xmm0,%xmm6
movsd  0x1b8(%rdi),%xmm5
cmpneqsd %xmm4,%xmm5
andpd  %xmm5,%xmm6
andnpd %xmm0,%xmm5
orpd   %xmm6,%xmm5
movsd  0x218(%rdi),%xmm0
ucomisd %xmm4,%xmm0
jne    1235 <ho_recognize_font_1_pey+0x135>
jnp    1251 <ho_recognize_font_1_pey+0x151>
movsd  0x250(%rdi),%xmm4
xorpd  %xmm6,%xmm6
ucomisd %xmm6,%xmm4
jne    1249 <ho_recognize_font_1_pey+0x149>
jnp    1251 <ho_recognize_font_1_pey+0x151>
addsd  0xdc7(%rip),%xmm5
movsd  0xdc6(%rip),%xmm9
movapd %xmm5,%xmm6
addsd  %xmm9,%xmm6
movsd  (%rdi),%xmm7
cmpltsd 0xdb8(%rip),%xmm7
movsd  0x178(%rdi),%xmm1
andpd  %xmm7,%xmm6
andnpd %xmm5,%xmm7
orpd   %xmm6,%xmm7
xorpd  %xmm6,%xmm6
movsd  0xa0(%rdi),%xmm4
cmpneqsd %xmm6,%xmm4
movapd %xmm4,%xmm5
andnpd %xmm7,%xmm5
addsd  0xd8b(%rip),%xmm7
andpd  %xmm7,%xmm4
orpd   %xmm5,%xmm4
movsd  0xf0(%rdi),%xmm5
cmpneqsd %xmm6,%xmm5
movapd %xmm5,%xmm7
andnpd %xmm4,%xmm7
addsd  %xmm9,%xmm4
andpd  %xmm4,%xmm5
orpd   %xmm7,%xmm5
ucomisd %xmm6,%xmm1
jne    12e7 <ho_recognize_font_1_pey+0x1e7>
jp     12e7 <ho_recognize_font_1_pey+0x1e7>
movsd  0x180(%rdi),%xmm1
ucomisd %xmm6,%xmm1
jne    12e7 <ho_recognize_font_1_pey+0x1e7>
jnp    12ef <ho_recognize_font_1_pey+0x1ef>
addsd  0xd31(%rip),%xmm5
movsd  0xd41(%rip),%xmm1
cmpltsd 0xd40(%rip),%xmm2
addsd  %xmm5,%xmm1
andpd  %xmm2,%xmm1
andnpd %xmm5,%xmm2
orpd   %xmm1,%xmm2
movsd  0x188(%rdi),%xmm1
xorpd  %xmm5,%xmm5
ucomisd %xmm5,%xmm1
jne    1324 <ho_recognize_font_1_pey+0x224>
jnp    133c <ho_recognize_font_1_pey+0x23c>
movsd  0x1d0(%rdi),%xmm1
ucomisd %xmm5,%xmm1
jne    133c <ho_recognize_font_1_pey+0x23c>
jp     133c <ho_recognize_font_1_pey+0x23c>
addsd  0xce4(%rip),%xmm2
ucomisd %xmm5,%xmm0
movapd %xmm2,%xmm1
addsd  %xmm9,%xmm1
movsd  0x10(%rdi),%xmm4
movsd  0x38(%rdi),%xmm0
cmpltsd 0xcec(%rip),%xmm4
andpd  %xmm4,%xmm1
andnpd %xmm2,%xmm4
orpd   %xmm1,%xmm4
cmpneqsd %xmm5,%xmm3
movapd %xmm3,%xmm1
andpd  %xmm4,%xmm1
addsd  %xmm9,%xmm4
andnpd %xmm4,%xmm3
orpd   %xmm1,%xmm3
movapd %xmm3,%xmm1
addsd  %xmm9,%xmm1
cmpneqsd 0x160(%rdi),%xmm5
movapd %xmm5,%xmm2
andnpd %xmm3,%xmm2
andpd  %xmm1,%xmm5
orpd   %xmm2,%xmm5
addsd  0xc64(%rip),%xmm0
movapd %xmm5,%xmm1
addsd  0xc80(%rip),%xmm1
cmpltsd 0x60(%rdi),%xmm0
movapd %xmm0,%xmm2
andnpd %xmm5,%xmm2
andpd  %xmm1,%xmm0
orpd   %xmm2,%xmm0
jne    13d2 <ho_recognize_font_1_pey+0x2d2>
jnp    1433 <ho_recognize_font_1_pey+0x333>
movsd  0x240(%rdi),%xmm1
movsd  0x2d0(%rdi),%xmm2
addsd  0xc2e(%rip),%xmm2
movapd %xmm0,%xmm3
addsd  0xc42(%rip),%xmm3
cmpltsd 0x2c0(%rdi),%xmm2
andpd  %xmm2,%xmm3
andnpd %xmm0,%xmm2
orpd   %xmm3,%xmm2
movapd %xmm2,%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
jne    1433 <ho_recognize_font_1_pey+0x333>
jp     1433 <ho_recognize_font_1_pey+0x333>
movsd  0x250(%rdi),%xmm1
ucomisd %xmm2,%xmm1
jne    1433 <ho_recognize_font_1_pey+0x333>
jp     1433 <ho_recognize_font_1_pey+0x333>
addsd  0xc05(%rip),%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm8
jne    1440 <ho_recognize_font_1_pey+0x340>
jnp    1441 <ho_recognize_font_1_pey+0x341>
ret
movsd  0x1a8(%rdi),%xmm1
ucomisd %xmm2,%xmm1
jne    1440 <ho_recognize_font_1_pey+0x340>
jp     1440 <ho_recognize_font_1_pey+0x340>
movsd  0x1f8(%rdi),%xmm1
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm1
jne    1440 <ho_recognize_font_1_pey+0x340>
jp     1440 <ho_recognize_font_1_pey+0x340>
addsd  0xbcb(%rip),%xmm0
ret

LLVM IR (-O0):
define double @ho_recognize_font_1_pey(double* %0) {
%2 = alloca double*
%3 = alloca double
store double* %0, double** %2
store double 0.000000e+00, double* %3
%4 = load double*, double** %2
%5 = getelementptr inbounds double, double* %4, i64 17
%6 = load double, double* %5
%7 = fcmp une double %6, 0.000000e+00
br i1 %7, label %8, label %11
8: ; preds = %1
%9 = load double, double* %3
%10 = fadd double %9, 1.500000e-01
store double %10, double* %3
br label %11
11: ; preds = %8, %1
%12 = load double*, double** %2
%13 = getelementptr inbounds double, double* %12, i64 19
%14 = load double, double* %13
%15 = fcmp une double %14, 0.000000e+00
br i1 %15, label %16, label %19
16: ; preds = %11
%17 = load double, double* %3
%18 = fadd double %17, 1.500000e-01
store double %18, double* %3
br label %19
19: ; preds = %16, %11
%20 = load double*, double** %2
%21 = getelementptr inbounds double, double* %20, i64 22
%22 = load double, double* %21
%23 = fcmp une double %22, 0.000000e+00
br i1 %23, label %24, label %27
24: ; preds = %19
%25 = load double, double* %3
%26 = fadd double %25, 1.500000e-01
store double %26, double* %3
br label %27
27: ; preds = %24, %19
%28 = load double*, double** %2
%29 = getelementptr inbounds double, double* %28, i64 39
%30 = load double, double* %29
%31 = fcmp une double %30, 0.000000e+00
br i1 %31, label %32, label %35
32: ; preds = %27
%33 = load double, double* %3
%34 = fadd double %33, 1.500000e-01
store double %34, double* %3
br label %35
35: ; preds = %32, %27
%36 = load double*, double** %2
%37 = getelementptr inbounds double, double* %36, i64 8
%38 = load double, double* %37
%39 = fcmp olt double %38, 3.000000e-01
br i1 %39, label %40, label %43
40: ; preds = %35
%41 = load double, double* %3
%42 = fadd double %41, 1.500000e-01
store double %42, double* %3
br label %43
43: ; preds = %40, %35
%44 = load double*, double** %2
%45 = getelementptr inbounds double, double* %44, i64 52
%46 = load double, double* %45
%47 = fcmp une double %46, 0.000000e+00
br i1 %47, label %53, label %48
48: ; preds = %43
%49 = load double*, double** %2
%50 = getelementptr inbounds double, double* %49, i64 53
%51 = load double, double* %50
%52 = fcmp une double %51, 0.000000e+00
br i1 %52, label %53, label %56
53: ; preds = %48, %43
%54 = load double, double* %3
%55 = fadd double %54, 2.000000e-01
store double %55, double* %3
br label %56
56: ; preds = %53, %48
%57 = load double*, double** %2
%58 = getelementptr inbounds double, double* %57, i64 61
%59 = load double, double* %58
%60 = fcmp une double %59, 0.000000e+00
br i1 %60, label %61, label %69
61: ; preds = %56
%62 = load double*, double** %2
%63 = getelementptr inbounds double, double* %62, i64 53
%64 = load double, double* %63
%65 = fcmp une double %64, 0.000000e+00
br i1 %65, label %66, label %69
66: ; preds = %61
%67 = load double, double* %3
%68 = fadd double %67, 2.000000e-01
store double %68, double* %3
br label %69
69: ; preds = %66, %61, %56
%70 = load double*, double** %2
%71 = getelementptr inbounds double, double* %70, i64 55
%72 = load double, double* %71
%73 = fcmp une double %72, 0.000000e+00
br i1 %73, label %74, label %77
74: ; preds = %69
%75 = load double, double* %3
%76 = fadd double %75, 1.000000e-01
store double %76, double* %3
br label %77
77: ; preds = %74, %69
%78 = load double*, double** %2
%79 = getelementptr inbounds double, double* %78, i64 67
%80 = load double, double* %79
%81 = fcmp une double %80, 0.000000e+00
br i1 %81, label %82, label %90
82: ; preds = %77
%83 = load double*, double** %2
%84 = getelementptr inbounds double, double* %83, i64 74
%85 = load double, double* %84
%86 = fcmp une double %85, 0.000000e+00
br i1 %86, label %87, label %90
87: ; preds = %82
%88 = load double, double* %3
%89 = fadd double %88, 1.000000e-01
store double %89, double* %3
br label %90
90: ; preds = %87, %82, %77
%91 = load double*, double** %2
%92 = getelementptr inbounds double, double* %91, i64 0
%93 = load double, double* %92
%94 = fcmp olt double %93, 4.500000e-01
br i1 %94, label %95, label %98
95: ; preds = %90
%96 = load double, double* %3
%97 = fsub double %96, 3.000000e-01
store double %97, double* %3
br label %98
98: ; preds = %95, %90
%99 = load double*, double** %2
%100 = getelementptr inbounds double, double* %99, i64 20
%101 = load double, double* %100
%102 = fcmp une double %101, 0.000000e+00
br i1 %102, label %103, label %106
103: ; preds = %98
%104 = load double, double* %3
%105 = fsub double %104, 1.000000e-01
store double %105, double* %3
br label %106
106: ; preds = %103, %98
%107 = load double*, double** %2
%108 = getelementptr inbounds double, double* %107, i64 30
%109 = load double, double* %108
%110 = fcmp une double %109, 0.000000e+00
br i1 %110, label %111, label %114
111: ; preds = %106
%112 = load double, double* %3
%113 = fsub double %112, 3.000000e-01
store double %113, double* %3
br label %114
114: ; preds = %111, %106
%115 = load double*, double** %2
%116 = getelementptr inbounds double, double* %115, i64 47
%117 = load double, double* %116
%118 = fcmp une double %117, 0.000000e+00
br i1 %118, label %124, label %119
119: ; preds = %114
%120 = load double*, double** %2
%121 = getelementptr inbounds double, double* %120, i64 48
%122 = load double, double* %121
%123 = fcmp une double %122, 0.000000e+00
br i1 %123, label %124, label %127
124: ; preds = %119, %114
%125 = load double, double* %3
%126 = fsub double %125, 3.000000e-01
store double %126, double* %3
br label %127
127: ; preds = %124, %119
%128 = load double*, double** %2
%129 = getelementptr inbounds double, double* %128, i64 19
%130 = load double, double* %129
%131 = fcmp olt double %130, 5.000000e-01
br i1 %131, label %132, label %135
132: ; preds = %127
%133 = load double, double* %3
%134 = fsub double %133, 2.000000e-01
store double %134, double* %3
br label %135
135: ; preds = %132, %127
%136 = load double*, double** %2
%137 = getelementptr inbounds double, double* %136, i64 49
%138 = load double, double* %137
%139 = fcmp une double %138, 0.000000e+00
br i1 %139, label %140, label %148
140: ; preds = %135
%141 = load double*, double** %2
%142 = getelementptr inbounds double, double* %141, i64 58
%143 = load double, double* %142
%144 = fcmp une double %143, 0.000000e+00
br i1 %144, label %148, label %145
145: ; preds = %140
%146 = load double, double* %3
%147 = fsub double %146, 3.000000e-01
store double %147, double* %3
br label %148
148: ; preds = %145, %140, %135
%149 = load double*, double** %2
%150 = getelementptr inbounds double, double* %149, i64 2
%151 = load double, double* %150
%152 = fcmp olt double %151, 6.000000e-01
br i1 %152, label %153, label %156
153: ; preds = %148
%154 = load double, double* %3
%155 = fsub double %154, 3.000000e-01
store double %155, double* %3
br label %156
156: ; preds = %153, %148
%157 = load double*, double** %2
%158 = getelementptr inbounds double, double* %157, i64 39
%159 = load double, double* %158
%160 = fcmp une double %159, 0.000000e+00
br i1 %160, label %164, label %161
161: ; preds = %156
%162 = load double, double* %3
%163 = fsub double %162, 3.000000e-01
store double %163, double* %3
br label %164
164: ; preds = %161, %156
%165 = load double*, double** %2
%166 = getelementptr inbounds double, double* %165, i64 44
%167 = load double, double* %166
%168 = fcmp une double %167, 0.000000e+00
br i1 %168, label %169, label %172
169: ; preds = %164
%170 = load double, double* %3
%171 = fsub double %170, 3.000000e-01
store double %171, double* %3
br label %172
172: ; preds = %169, %164
%173 = load double*, double** %2
%174 = getelementptr inbounds double, double* %173, i64 7
%175 = load double, double* %174
%176 = fadd double %175, 2.000000e-01
%177 = load double*, double** %2
%178 = getelementptr inbounds double, double* %177, i64 12
%179 = load double, double* %178
%180 = fcmp olt double %176, %179
br i1 %180, label %181, label %184
181: ; preds = %172
%182 = load double, double* %3
%183 = fsub double %182, 2.000000e-01
store double %183, double* %3
br label %184
184: ; preds = %181, %172
%185 = load double*, double** %2
%186 = getelementptr inbounds double, double* %185, i64 67
%187 = load double, double* %186
%188 = fcmp une double %187, 0.000000e+00
br i1 %188, label %189, label %201
189: ; preds = %184
%190 = load double*, double** %2
%191 = getelementptr inbounds double, double* %190, i64 88
%192 = load double, double* %191
%193 = load double*, double** %2
%194 = getelementptr inbounds double, double* %193, i64 90
%195 = load double, double* %194
%196 = fadd double %195, 1.000000e-01
%197 = fcmp ogt double %192, %196
br i1 %197, label %198, label %201
198: ; preds = %189
%199 = load double, double* %3
%200 = fsub double %199, 2.000000e-01
store double %200, double* %3
br label %201
201: ; preds = %198, %189, %184
%202 = load double*, double** %2
%203 = getelementptr inbounds double, double* %202, i64 67
%204 = load double, double* %203
%205 = fcmp une double %204, 0.000000e+00
br i1 %205, label %206, label %219
206: ; preds = %201
%207 = load double*, double** %2
%208 = getelementptr inbounds double, double* %207, i64 72
%209 = load double, double* %208
%210 = fcmp une double %209, 0.000000e+00
br i1 %210, label %219, label %211
211: ; preds = %206
%212 = load double*, double** %2
%213 = getelementptr inbounds double, double* %212, i64 74
%214 = load double, double* %213
%215 = fcmp une double %214, 0.000000e+00
br i1 %215, label %219, label %216
216: ; preds = %211
%217 = load double, double* %3
%218 = fsub double %217, 2.000000e-01
store double %218, double* %3
br label %219
219: ; preds = %216, %211, %206, %201
%220 = load double*, double** %2
%221 = getelementptr inbounds double, double* %220, i64 52
%222 = load double, double* %221
%223 = fcmp une double %222, 0.000000e+00
br i1 %223, label %237, label %224
224: ; preds = %219
%225 = load double*, double** %2
%226 = getelementptr inbounds double, double* %225, i64 53
%227 = load double, double* %226
%228 = fcmp une double %227, 0.000000e+00
br i1 %228, label %237, label %229
229: ; preds = %224
%230 = load double*, double** %2
%231 = getelementptr inbounds double, double* %230, i64 63
%232 = load double, double* %231
%233 = fcmp une double %232, 0.000000e+00
br i1 %233, label %237, label %234
234: ; preds = %229
%235 = load double, double* %3
%236 = fsub double %235, 2.000000e-01
store double %236, double* %3
br label %237
237: ; preds = %234, %229, %224, %219
%238 = load double, double* %3
ret double %238
}

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