double ho_recognize_font_1_nun(const double *array_in) {
  double return_value = 0.0;
  if ((array_in[17]))
    return_value += 0.1;
  if ((array_in[19]))
    return_value += 0.1;
  if ((array_in[22]))
    return_value += 0.1;
  if ((array_in[38]))
    return_value += 0.1;
  if ((array_in[8]) == 1 && (array_in[1]) < 0.3)
    return_value += 0.1;
  if (!(array_in[30]))
    return_value += 0.1;
  if ((array_in[5]) > ((array_in[10]) + 0.25))
    return_value += 0.2;
  if ((array_in[1]) < 0.3)
    return_value += 0.2;
  if ((array_in[1]) < 0.3 && (array_in[19]) && (array_in[65]) < 0.1 &&
      (array_in[66]) < 0.1)
    return_value += 0.2;
  if ((array_in[11]) > 0.25)
    return_value -= 0.2;
  if ((array_in[47]) || (array_in[48]))
    return_value -= 0.3;
  if ((array_in[19]) < 0.5)
    return_value -= 0.2;
  if ((array_in[20]))
    return_value -= 0.2;
  if ((array_in[26]))
    return_value -= 0.2;
  if ((array_in[95]))
    return_value -= 0.2;
  if ((array_in[103]))
    return_value -= 0.2;
  if ((array_in[1]) > 0.33 && ((array_in[5]) < ((array_in[10]) + 0.2)))
    return_value -= 0.35;
  if ((array_in[5]) < ((array_in[10])))
    return_value -= 0.2;
  if ((array_in[5]) < ((array_in[10]) + 0.2))
    return_value -= 0.2;
  if ((array_in[8]) < 0.6)
    return_value -= 0.3;
  if ((array_in[4]) > 0.60)
    return_value -= 0.2;
  if ((array_in[4]) < 0.43)
    return_value -= 0.2;
  if ((array_in[52]) || (array_in[53]))
    return_value -= 0.3;
  if ((array_in[0]) > 0.55)
    return_value -= 0.2;
  if ((array_in[0]) < 0.3)
    return_value -= 0.2;
  if ((array_in[2]) < 0.25)
    return_value -= 0.3;
  if ((array_in[1]) < 0.15)
    return_value -= 0.3;
  if ((array_in[9]) > 0.9)
    return_value -= 0.3;
  return return_value;
}


x86 assembly (clang, -O0):
<ho_recognize_font_1_nun>:
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_nun+0x34>
jp     1134 <ho_recognize_font_1_nun+0x34>
jmp    1146 <ho_recognize_font_1_nun+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_nun+0x6a>
jp     116a <ho_recognize_font_1_nun+0x6a>
jmp    117c <ho_recognize_font_1_nun+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_nun+0xa0>
jp     11a0 <ho_recognize_font_1_nun+0xa0>
jmp    11b2 <ho_recognize_font_1_nun+0xb2>
movsd  0xe58(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x130(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    11d6 <ho_recognize_font_1_nun+0xd6>
jp     11d6 <ho_recognize_font_1_nun+0xd6>
jmp    11e8 <ho_recognize_font_1_nun+0xe8>
movsd  0xe22(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  0xe0f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jne    1232 <ho_recognize_font_1_nun+0x132>
jp     1232 <ho_recognize_font_1_nun+0x132>
mov    -0x8(%rbp),%rax
movsd  0xdfb(%rip),%xmm0
ucomisd 0x8(%rax),%xmm0
jbe    1232 <ho_recognize_font_1_nun+0x132>
movsd  0xdd8(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xf0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1263 <ho_recognize_font_1_nun+0x163>
jp     1263 <ho_recognize_font_1_nun+0x163>
movsd  0xda7(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm0
mov    -0x8(%rbp),%rax
movsd  0xda0(%rip),%xmm1
addsd  0x50(%rax),%xmm1
ucomisd %xmm1,%xmm0
jbe    1299 <ho_recognize_font_1_nun+0x199>
movsd  0xd91(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd6b(%rip),%xmm0
ucomisd 0x8(%rax),%xmm0
jbe    12c2 <ho_recognize_font_1_nun+0x1c2>
movsd  0xd68(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd42(%rip),%xmm0
ucomisd 0x8(%rax),%xmm0
jbe    1343 <ho_recognize_font_1_nun+0x243>
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    12fd <ho_recognize_font_1_nun+0x1fd>
jp     12fd <ho_recognize_font_1_nun+0x1fd>
jmp    1343 <ho_recognize_font_1_nun+0x243>
mov    -0x8(%rbp),%rax
movsd  0xcf7(%rip),%xmm0
ucomisd 0x208(%rax),%xmm0
jbe    1343 <ho_recognize_font_1_nun+0x243>
mov    -0x8(%rbp),%rax
movsd  0xcdd(%rip),%xmm0
ucomisd 0x210(%rax),%xmm0
jbe    1343 <ho_recognize_font_1_nun+0x243>
movsd  0xce7(%rip),%xmm0
addsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  0xcc4(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1374 <ho_recognize_font_1_nun+0x274>
movsd  -0x10(%rbp),%xmm0
movsd  0xcb5(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x178(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    13b7 <ho_recognize_font_1_nun+0x2b7>
jp     13b7 <ho_recognize_font_1_nun+0x2b7>
mov    -0x8(%rbp),%rax
movsd  0x180(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    13b7 <ho_recognize_font_1_nun+0x2b7>
jp     13b7 <ho_recognize_font_1_nun+0x2b7>
jmp    13cd <ho_recognize_font_1_nun+0x2cd>
movsd  -0x10(%rbp),%xmm0
movsd  0xc4c(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xc4f(%rip),%xmm0
ucomisd 0x98(%rax),%xmm0
jbe    13fd <ho_recognize_font_1_nun+0x2fd>
movsd  -0x10(%rbp),%xmm0
movsd  0xc2c(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1421 <ho_recognize_font_1_nun+0x321>
jp     1421 <ho_recognize_font_1_nun+0x321>
jmp    1437 <ho_recognize_font_1_nun+0x337>
movsd  -0x10(%rbp),%xmm0
movsd  0xbf2(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xd0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    145b <ho_recognize_font_1_nun+0x35b>
jp     145b <ho_recognize_font_1_nun+0x35b>
jmp    1471 <ho_recognize_font_1_nun+0x371>
movsd  -0x10(%rbp),%xmm0
movsd  0xbb8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x2f8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1495 <ho_recognize_font_1_nun+0x395>
jp     1495 <ho_recognize_font_1_nun+0x395>
jmp    14ab <ho_recognize_font_1_nun+0x3ab>
movsd  -0x10(%rbp),%xmm0
movsd  0xb7e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x338(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    14cf <ho_recognize_font_1_nun+0x3cf>
jp     14cf <ho_recognize_font_1_nun+0x3cf>
jmp    14e5 <ho_recognize_font_1_nun+0x3e5>
movsd  -0x10(%rbp),%xmm0
movsd  0xb44(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  0xb3a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    153a <ho_recognize_font_1_nun+0x43a>
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0b(%rip),%xmm0
addsd  0x50(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    153a <ho_recognize_font_1_nun+0x43a>
movsd  -0x10(%rbp),%xmm0
movsd  0xb07(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    156c <ho_recognize_font_1_nun+0x46c>
movsd  -0x10(%rbp),%xmm0
movsd  0xabd(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa9f(%rip),%xmm0
addsd  0x50(%rax),%xmm0
ucomisd %xmm1,%xmm0
jbe    15a6 <ho_recognize_font_1_nun+0x4a6>
movsd  -0x10(%rbp),%xmm0
movsd  0xa83(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xa8e(%rip),%xmm0
ucomisd 0x40(%rax),%xmm0
jbe    15d3 <ho_recognize_font_1_nun+0x4d3>
movsd  -0x10(%rbp),%xmm0
movsd  0xa46(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  0xa5c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1604 <ho_recognize_font_1_nun+0x504>
movsd  -0x10(%rbp),%xmm0
movsd  0xa25(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0xa38(%rip),%xmm0
ucomisd 0x20(%rax),%xmm0
jbe    1631 <ho_recognize_font_1_nun+0x531>
movsd  -0x10(%rbp),%xmm0
movsd  0x9f8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x1a0(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1674 <ho_recognize_font_1_nun+0x574>
jp     1674 <ho_recognize_font_1_nun+0x574>
mov    -0x8(%rbp),%rax
movsd  0x1a8(%rax),%xmm0
xorps  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1674 <ho_recognize_font_1_nun+0x574>
jp     1674 <ho_recognize_font_1_nun+0x574>
jmp    168a <ho_recognize_font_1_nun+0x58a>
movsd  -0x10(%rbp),%xmm0
movsd  0x98f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
movsd  0x9b6(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    16ba <ho_recognize_font_1_nun+0x5ba>
movsd  -0x10(%rbp),%xmm0
movsd  0x96f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x94a(%rip),%xmm0
ucomisd (%rax),%xmm0
jbe    16e6 <ho_recognize_font_1_nun+0x5e6>
movsd  -0x10(%rbp),%xmm0
movsd  0x943(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x926(%rip),%xmm0
ucomisd 0x10(%rax),%xmm0
jbe    1713 <ho_recognize_font_1_nun+0x613>
movsd  -0x10(%rbp),%xmm0
movsd  0x906(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x939(%rip),%xmm0
ucomisd 0x8(%rax),%xmm0
jbe    1740 <ho_recognize_font_1_nun+0x640>
movsd  -0x10(%rbp),%xmm0
movsd  0x8d9(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  0x90f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1771 <ho_recognize_font_1_nun+0x671>
movsd  -0x10(%rbp),%xmm0
movsd  0x8a8(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  -0x10(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<ho_recognize_font_1_nun>:
xorpd  %xmm5,%xmm5
movsd  0x88(%rdi),%xmm0
cmpneqsd %xmm5,%xmm0
movsd  0xee6(%rip),%xmm9
andpd  %xmm9,%xmm0
movsd  0x98(%rdi),%xmm4
movapd %xmm4,%xmm1
cmpneqsd %xmm5,%xmm1
movapd %xmm1,%xmm2
andnpd %xmm0,%xmm2
addsd  %xmm9,%xmm0
andpd  %xmm0,%xmm1
orpd   %xmm2,%xmm1
movsd  0xb0(%rdi),%xmm0
cmpneqsd %xmm5,%xmm0
movapd %xmm0,%xmm2
andnpd %xmm1,%xmm2
addsd  %xmm9,%xmm1
andpd  %xmm1,%xmm0
orpd   %xmm2,%xmm0
movsd  0x130(%rdi),%xmm6
cmpneqsd %xmm5,%xmm6
movapd %xmm6,%xmm1
andnpd %xmm0,%xmm1
addsd  %xmm9,%xmm0
andpd  %xmm0,%xmm6
orpd   %xmm1,%xmm6
movsd  0x40(%rdi),%xmm0
movsd  0x8(%rdi),%xmm10
movsd  0x28(%rdi),%xmm2
movsd  0xe67(%rip),%xmm7
ucomisd %xmm10,%xmm7
movapd %xmm6,%xmm3
addsd  %xmm9,%xmm3
movapd %xmm10,%xmm1
cmpltsd %xmm7,%xmm1
movapd %xmm1,%xmm7
andnpd %xmm6,%xmm7
andpd  %xmm3,%xmm1
orpd   %xmm7,%xmm1
movsd  0xe3f(%rip),%xmm3
cmpeqsd %xmm0,%xmm3
andpd  %xmm3,%xmm1
andnpd %xmm6,%xmm3
orpd   %xmm1,%xmm3
cmpneqsd 0xf0(%rdi),%xmm5
movapd %xmm5,%xmm1
andpd  %xmm3,%xmm1
addsd  %xmm9,%xmm3
andnpd %xmm3,%xmm5
orpd   %xmm1,%xmm5
movsd  0x50(%rdi),%xmm8
movsd  0xe0a(%rip),%xmm6
addsd  %xmm8,%xmm6
movsd  0xe05(%rip),%xmm7
cmpltsd %xmm2,%xmm6
movapd %xmm6,%xmm1
andnpd %xmm5,%xmm1
addsd  %xmm7,%xmm5
andpd  %xmm5,%xmm6
orpd   %xmm1,%xmm6
addsd  %xmm6,%xmm7
movapd %xmm7,%xmm5
ja     1242 <ho_recognize_font_1_nun+0x142>
movapd %xmm6,%xmm5
jbe    126e <ho_recognize_font_1_nun+0x16e>
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm4
jne    1250 <ho_recognize_font_1_nun+0x150>
jnp    126e <ho_recognize_font_1_nun+0x16e>
ucomisd 0x208(%rdi),%xmm9
jbe    1272 <ho_recognize_font_1_nun+0x172>
ucomisd 0x210(%rdi),%xmm9
jbe    1272 <ho_recognize_font_1_nun+0x172>
addsd  0xdb2(%rip),%xmm5
movapd %xmm5,%xmm7
movsd  0xdae(%rip),%xmm1
movsd  0xd96(%rip),%xmm6
cmpltsd 0x58(%rdi),%xmm6
addsd  %xmm7,%xmm1
andpd  %xmm6,%xmm1
andnpd %xmm7,%xmm6
orpd   %xmm1,%xmm6
movsd  0x178(%rdi),%xmm1
xorpd  %xmm3,%xmm3
ucomisd %xmm3,%xmm1
jne    12bc <ho_recognize_font_1_nun+0x1bc>
jp     12bc <ho_recognize_font_1_nun+0x1bc>
movsd  0x180(%rdi),%xmm1
ucomisd %xmm3,%xmm1
jne    12bc <ho_recognize_font_1_nun+0x1bc>
jnp    12c4 <ho_recognize_font_1_nun+0x1c4>
addsd  0xd6c(%rip),%xmm6
movsd  0xd5c(%rip),%xmm3
movapd %xmm6,%xmm1
addsd  %xmm3,%xmm1
cmpltsd 0xd5b(%rip),%xmm4
andpd  %xmm4,%xmm1
andnpd %xmm6,%xmm4
orpd   %xmm1,%xmm4
movapd %xmm4,%xmm1
addsd  %xmm3,%xmm1
xorpd  %xmm6,%xmm6
movsd  0xa0(%rdi),%xmm5
cmpneqsd %xmm6,%xmm5
movapd %xmm5,%xmm7
andnpd %xmm4,%xmm7
andpd  %xmm1,%xmm5
orpd   %xmm7,%xmm5
movsd  0xd0(%rdi),%xmm1
cmpneqsd %xmm6,%xmm1
movapd %xmm1,%xmm4
andnpd %xmm5,%xmm4
addsd  %xmm3,%xmm5
andpd  %xmm5,%xmm1
orpd   %xmm4,%xmm1
movsd  0x2f8(%rdi),%xmm4
cmpneqsd %xmm6,%xmm4
movapd %xmm4,%xmm5
andnpd %xmm1,%xmm5
addsd  %xmm3,%xmm1
andpd  %xmm1,%xmm4
orpd   %xmm5,%xmm4
movsd  0x338(%rdi),%xmm1
cmpneqsd %xmm6,%xmm1
movapd %xmm1,%xmm5
andnpd %xmm4,%xmm5
addsd  %xmm3,%xmm4
andpd  %xmm4,%xmm1
orpd   %xmm5,%xmm1
movsd  0xca3(%rip),%xmm4
addsd  %xmm8,%xmm4
ucomisd %xmm2,%xmm4
movapd %xmm1,%xmm5
addsd  0xcae(%rip),%xmm5
movapd %xmm2,%xmm7
cmpltsd %xmm4,%xmm7
movapd %xmm7,%xmm4
andnpd %xmm1,%xmm4
andpd  %xmm5,%xmm7
orpd   %xmm4,%xmm7
movsd  0xc95(%rip),%xmm4
cmpltsd %xmm10,%xmm4
andpd  %xmm4,%xmm7
andnpd %xmm1,%xmm4
orpd   %xmm7,%xmm4
cmpltsd %xmm8,%xmm2
movapd %xmm2,%xmm1
andnpd %xmm4,%xmm1
addsd  %xmm3,%xmm4
andpd  %xmm4,%xmm2
orpd   %xmm1,%xmm2
jbe    13e5 <ho_recognize_font_1_nun+0x2e5>
addsd  %xmm3,%xmm2
movsd  0xc43(%rip),%xmm1
addsd  %xmm2,%xmm1
movsd  0xc57(%rip),%xmm4
cmpltsd %xmm4,%xmm0
movapd %xmm0,%xmm5
andnpd %xmm2,%xmm5
andpd  %xmm1,%xmm0
orpd   %xmm5,%xmm0
movapd %xmm0,%xmm1
addsd  %xmm3,%xmm1
movsd  0x20(%rdi),%xmm2
movsd  0x1a0(%rdi),%xmm5
cmpltsd %xmm2,%xmm4
movapd %xmm4,%xmm7
andnpd %xmm0,%xmm7
andpd  %xmm1,%xmm4
orpd   %xmm7,%xmm4
cmpltsd 0xc17(%rip),%xmm2
movapd %xmm2,%xmm0
andnpd %xmm4,%xmm0
addsd  %xmm3,%xmm4
andpd  %xmm4,%xmm2
orpd   %xmm0,%xmm2
ucomisd %xmm6,%xmm5
jne    1471 <ho_recognize_font_1_nun+0x371>
jp     1471 <ho_recognize_font_1_nun+0x371>
movsd  0x1a8(%rdi),%xmm0
xorpd  %xmm1,%xmm1
ucomisd %xmm1,%xmm0
jne    1471 <ho_recognize_font_1_nun+0x371>
jnp    1479 <ho_recognize_font_1_nun+0x379>
addsd  0xbb7(%rip),%xmm2
movapd %xmm2,%xmm1
addsd  %xmm3,%xmm1
movsd  (%rdi),%xmm4
movsd  0x10(%rdi),%xmm0
movsd  0xbce(%rip),%xmm5
cmpltsd %xmm4,%xmm5
andpd  %xmm5,%xmm1
andnpd %xmm2,%xmm5
orpd   %xmm1,%xmm5
cmpltsd 0xb5c(%rip),%xmm4
movapd %xmm4,%xmm1
andnpd %xmm5,%xmm1
addsd  %xmm3,%xmm5
andpd  %xmm5,%xmm4
orpd   %xmm1,%xmm4
movsd  0xb68(%rip),%xmm1
cmpltsd 0xb47(%rip),%xmm0
movapd %xmm0,%xmm2
andnpd %xmm4,%xmm2
addsd  %xmm1,%xmm4
andpd  %xmm4,%xmm0
cmpltsd 0xb7d(%rip),%xmm10
orpd   %xmm2,%xmm0
movapd %xmm10,%xmm2
andnpd %xmm0,%xmm2
addsd  %xmm1,%xmm0
andpd  %xmm0,%xmm10
orpd   %xmm2,%xmm10
movapd %xmm10,%xmm2
movsd  0xb5d(%rip),%xmm0
cmpltsd 0x48(%rdi),%xmm0
addsd  %xmm1,%xmm2
movapd %xmm0,%xmm1
andnpd %xmm10,%xmm1
andpd  %xmm2,%xmm0
orpd   %xmm1,%xmm0
ret

LLVM IR (-O0):
define double @ho_recognize_font_1_nun(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.000000e-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.000000e-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.000000e-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 38
%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.000000e-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 oeq double %38, 1.000000e+00
br i1 %39, label %40, label %48
40: ; preds = %35
%41 = load double*, double** %2
%42 = getelementptr inbounds double, double* %41, i64 1
%43 = load double, double* %42
%44 = fcmp olt double %43, 3.000000e-01
br i1 %44, label %45, label %48
45: ; preds = %40
%46 = load double, double* %3
%47 = fadd double %46, 1.000000e-01
store double %47, double* %3
br label %48
48: ; preds = %45, %40, %35
%49 = load double*, double** %2
%50 = getelementptr inbounds double, double* %49, i64 30
%51 = load double, double* %50
%52 = fcmp une double %51, 0.000000e+00
br i1 %52, label %56, label %53
53: ; preds = %48
%54 = load double, double* %3
%55 = fadd double %54, 1.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 5
%59 = load double, double* %58
%60 = load double*, double** %2
%61 = getelementptr inbounds double, double* %60, i64 10
%62 = load double, double* %61
%63 = fadd double %62, 2.500000e-01
%64 = fcmp ogt double %59, %63
br i1 %64, label %65, label %68
65: ; preds = %56
%66 = load double, double* %3
%67 = fadd double %66, 2.000000e-01
store double %67, double* %3
br label %68
68: ; preds = %65, %56
%69 = load double*, double** %2
%70 = getelementptr inbounds double, double* %69, i64 1
%71 = load double, double* %70
%72 = fcmp olt double %71, 3.000000e-01
br i1 %72, label %73, label %76
73: ; preds = %68
%74 = load double, double* %3
%75 = fadd double %74, 2.000000e-01
store double %75, double* %3
br label %76
76: ; preds = %73, %68
%77 = load double*, double** %2
%78 = getelementptr inbounds double, double* %77, i64 1
%79 = load double, double* %78
%80 = fcmp olt double %79, 3.000000e-01
br i1 %80, label %81, label %99
81: ; preds = %76
%82 = load double*, double** %2
%83 = getelementptr inbounds double, double* %82, i64 19
%84 = load double, double* %83
%85 = fcmp une double %84, 0.000000e+00
br i1 %85, label %86, label %99
86: ; preds = %81
%87 = load double*, double** %2
%88 = getelementptr inbounds double, double* %87, i64 65
%89 = load double, double* %88
%90 = fcmp olt double %89, 1.000000e-01
br i1 %90, label %91, label %99
91: ; preds = %86
%92 = load double*, double** %2
%93 = getelementptr inbounds double, double* %92, i64 66
%94 = load double, double* %93
%95 = fcmp olt double %94, 1.000000e-01
br i1 %95, label %96, label %99
96: ; preds = %91
%97 = load double, double* %3
%98 = fadd double %97, 2.000000e-01
store double %98, double* %3
br label %99
99: ; preds = %96, %91, %86, %81, %76
%100 = load double*, double** %2
%101 = getelementptr inbounds double, double* %100, i64 11
%102 = load double, double* %101
%103 = fcmp ogt double %102, 2.500000e-01
br i1 %103, label %104, label %107
104: ; preds = %99
%105 = load double, double* %3
%106 = fsub double %105, 2.000000e-01
store double %106, double* %3
br label %107
107: ; preds = %104, %99
%108 = load double*, double** %2
%109 = getelementptr inbounds double, double* %108, i64 47
%110 = load double, double* %109
%111 = fcmp une double %110, 0.000000e+00
br i1 %111, label %117, label %112
112: ; preds = %107
%113 = load double*, double** %2
%114 = getelementptr inbounds double, double* %113, i64 48
%115 = load double, double* %114
%116 = fcmp une double %115, 0.000000e+00
br i1 %116, label %117, label %120
117: ; preds = %112, %107
%118 = load double, double* %3
%119 = fsub double %118, 3.000000e-01
store double %119, double* %3
br label %120
120: ; preds = %117, %112
%121 = load double*, double** %2
%122 = getelementptr inbounds double, double* %121, i64 19
%123 = load double, double* %122
%124 = fcmp olt double %123, 5.000000e-01
br i1 %124, label %125, label %128
125: ; preds = %120
%126 = load double, double* %3
%127 = fsub double %126, 2.000000e-01
store double %127, double* %3
br label %128
128: ; preds = %125, %120
%129 = load double*, double** %2
%130 = getelementptr inbounds double, double* %129, i64 20
%131 = load double, double* %130
%132 = fcmp une double %131, 0.000000e+00
br i1 %132, label %133, label %136
133: ; preds = %128
%134 = load double, double* %3
%135 = fsub double %134, 2.000000e-01
store double %135, double* %3
br label %136
136: ; preds = %133, %128
%137 = load double*, double** %2
%138 = getelementptr inbounds double, double* %137, i64 26
%139 = load double, double* %138
%140 = fcmp une double %139, 0.000000e+00
br i1 %140, label %141, label %144
141: ; preds = %136
%142 = load double, double* %3
%143 = fsub double %142, 2.000000e-01
store double %143, double* %3
br label %144
144: ; preds = %141, %136
%145 = load double*, double** %2
%146 = getelementptr inbounds double, double* %145, i64 95
%147 = load double, double* %146
%148 = fcmp une double %147, 0.000000e+00
br i1 %148, label %149, label %152
149: ; preds = %144
%150 = load double, double* %3
%151 = fsub double %150, 2.000000e-01
store double %151, double* %3
br label %152
152: ; preds = %149, %144
%153 = load double*, double** %2
%154 = getelementptr inbounds double, double* %153, i64 103
%155 = load double, double* %154
%156 = fcmp une double %155, 0.000000e+00
br i1 %156, label %157, label %160
157: ; preds = %152
%158 = load double, double* %3
%159 = fsub double %158, 2.000000e-01
store double %159, double* %3
br label %160
160: ; preds = %157, %152
%161 = load double*, double** %2
%162 = getelementptr inbounds double, double* %161, i64 1
%163 = load double, double* %162
%164 = fcmp ogt double %163, 3.300000e-01
br i1 %164, label %165, label %177
165: ; preds = %160
%166 = load double*, double** %2
%167 = getelementptr inbounds double, double* %166, i64 5
%168 = load double, double* %167
%169 = load double*, double** %2
%170 = getelementptr inbounds double, double* %169, i64 10
%171 = load double, double* %170
%172 = fadd double %171, 2.000000e-01
%173 = fcmp olt double %168, %172
br i1 %173, label %174, label %177
174: ; preds = %165
%175 = load double, double* %3
%176 = fsub double %175, 3.500000e-01
store double %176, double* %3
br label %177
177: ; preds = %174, %165, %160
%178 = load double*, double** %2
%179 = getelementptr inbounds double, double* %178, i64 5
%180 = load double, double* %179
%181 = load double*, double** %2
%182 = getelementptr inbounds double, double* %181, i64 10
%183 = load double, double* %182
%184 = fcmp olt double %180, %183
br i1 %184, label %185, label %188
185: ; preds = %177
%186 = load double, double* %3
%187 = fsub double %186, 2.000000e-01
store double %187, double* %3
br label %188
188: ; preds = %185, %177
%189 = load double*, double** %2
%190 = getelementptr inbounds double, double* %189, i64 5
%191 = load double, double* %190
%192 = load double*, double** %2
%193 = getelementptr inbounds double, double* %192, i64 10
%194 = load double, double* %193
%195 = fadd double %194, 2.000000e-01
%196 = fcmp olt double %191, %195
br i1 %196, label %197, label %200
197: ; preds = %188
%198 = load double, double* %3
%199 = fsub double %198, 2.000000e-01
store double %199, double* %3
br label %200
200: ; preds = %197, %188
%201 = load double*, double** %2
%202 = getelementptr inbounds double, double* %201, i64 8
%203 = load double, double* %202
%204 = fcmp olt double %203, 6.000000e-01
br i1 %204, label %205, label %208
205: ; preds = %200
%206 = load double, double* %3
%207 = fsub double %206, 3.000000e-01
store double %207, double* %3
br label %208
208: ; preds = %205, %200
%209 = load double*, double** %2
%210 = getelementptr inbounds double, double* %209, i64 4
%211 = load double, double* %210
%212 = fcmp ogt double %211, 6.000000e-01
br i1 %212, label %213, label %216
213: ; preds = %208
%214 = load double, double* %3
%215 = fsub double %214, 2.000000e-01
store double %215, double* %3
br label %216
216: ; preds = %213, %208
%217 = load double*, double** %2
%218 = getelementptr inbounds double, double* %217, i64 4
%219 = load double, double* %218
%220 = fcmp olt double %219, 4.300000e-01
br i1 %220, label %221, label %224
221: ; preds = %216
%222 = load double, double* %3
%223 = fsub double %222, 2.000000e-01
store double %223, double* %3
br label %224
224: ; preds = %221, %216
%225 = load double*, double** %2
%226 = getelementptr inbounds double, double* %225, i64 52
%227 = load double, double* %226
%228 = fcmp une double %227, 0.000000e+00
br i1 %228, label %234, label %229
229: ; preds = %224
%230 = load double*, double** %2
%231 = getelementptr inbounds double, double* %230, i64 53
%232 = load double, double* %231
%233 = fcmp une double %232, 0.000000e+00
br i1 %233, label %234, label %237
234: ; preds = %229, %224
%235 = load double, double* %3
%236 = fsub double %235, 3.000000e-01
store double %236, double* %3
br label %237
237: ; preds = %234, %229
%238 = load double*, double** %2
%239 = getelementptr inbounds double, double* %238, i64 0
%240 = load double, double* %239
%241 = fcmp ogt double %240, 5.500000e-01
br i1 %241, label %242, label %245
242: ; preds = %237
%243 = load double, double* %3
%244 = fsub double %243, 2.000000e-01
store double %244, double* %3
br label %245
245: ; preds = %242, %237
%246 = load double*, double** %2
%247 = getelementptr inbounds double, double* %246, i64 0
%248 = load double, double* %247
%249 = fcmp olt double %248, 3.000000e-01
br i1 %249, label %250, label %253
250: ; preds = %245
%251 = load double, double* %3
%252 = fsub double %251, 2.000000e-01
store double %252, double* %3
br label %253
253: ; preds = %250, %245
%254 = load double*, double** %2
%255 = getelementptr inbounds double, double* %254, i64 2
%256 = load double, double* %255
%257 = fcmp olt double %256, 2.500000e-01
br i1 %257, label %258, label %261
258: ; preds = %253
%259 = load double, double* %3
%260 = fsub double %259, 3.000000e-01
store double %260, double* %3
br label %261
261: ; preds = %258, %253
%262 = load double*, double** %2
%263 = getelementptr inbounds double, double* %262, i64 1
%264 = load double, double* %263
%265 = fcmp olt double %264, 1.500000e-01
br i1 %265, label %266, label %269
266: ; preds = %261
%267 = load double, double* %3
%268 = fsub double %267, 3.000000e-01
store double %268, double* %3
br label %269
269: ; preds = %266, %261
%270 = load double*, double** %2
%271 = getelementptr inbounds double, double* %270, i64 9
%272 = load double, double* %271
%273 = fcmp ogt double %272, 9.000000e-01
br i1 %273, label %274, label %277
274: ; preds = %269
%275 = load double, double* %3
%276 = fsub double %275, 3.000000e-01
store double %276, double* %3
br label %277
277: ; preds = %274, %269
%278 = load double, double* %3
ret double %278
}

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