char compare(int frequency, int charnumber) {
  double calcfrequency;
  char tempchar;
  calcfrequency = 100 * (double)frequency / (double)charnumber;
  if (calcfrequency < 0.085) {
    tempchar = 'Z';
  } else if (calcfrequency >= 0.085 && calcfrequency < 0.105) {
    tempchar = 'J';
  } else if (calcfrequency >= 0.105 && calcfrequency < 0.14) {
    tempchar = 'Q';
  } else if (calcfrequency >= 0.14 && calcfrequency < 0.43) {
    tempchar = 'X';
  } else if (calcfrequency >= 0.43 && calcfrequency < 0.9) {
    tempchar = 'K';
  } else if (calcfrequency >= 0.9 && calcfrequency < 1.3) {
    tempchar = 'V';
  } else if (calcfrequency >= 1.3 && calcfrequency < 1.655) {
    tempchar = 'B';
  } else if (calcfrequency >= 1.655 && calcfrequency < 1.925) {
    tempchar = 'P';
  } else if (calcfrequency >= 1.925 && calcfrequency < 2.06) {
    tempchar = 'G';
  } else if (calcfrequency >= 2.06 && calcfrequency < 2.1) {
    tempchar = 'W';
  } else if (calcfrequency >= 2.1 && calcfrequency < 2.205) {
    tempchar = 'Y';
  } else if (calcfrequency >= 2.205 && calcfrequency < 2.455) {
    tempchar = 'F';
  } else if (calcfrequency >= 2.455 && calcfrequency < 2.66) {
    tempchar = 'M';
  } else if (calcfrequency >= 2.66 && calcfrequency < 2.795) {
    tempchar = 'C';
  } else if (calcfrequency >= 2.795 && calcfrequency < 3.43) {
    tempchar = 'U';
  } else if (calcfrequency >= 3.43 && calcfrequency < 4.15) {
    tempchar = 'L';
  } else if (calcfrequency >= 4.15 && calcfrequency < 5.12) {
    tempchar = 'D';
  } else if (calcfrequency >= 5.12 && calcfrequency < 5.97) {
    tempchar = 'H';
  } else if (calcfrequency >= 5.97 && calcfrequency < 6.15) {
    tempchar = 'R';
  } else if (calcfrequency >= 6.15 && calcfrequency < 6.615) {
    tempchar = 'S';
  } else if (calcfrequency >= 6.615 && calcfrequency < 7.13) {
    tempchar = 'N';
  } else if (calcfrequency >= 7.13 && calcfrequency < 7.495) {
    tempchar = 'I';
  } else if (calcfrequency >= 7.495 && calcfrequency < 7.9) {
    tempchar = 'O';
  } else if (calcfrequency >= 7.9 && calcfrequency < 8.61) {
    tempchar = 'A';
  } else if (calcfrequency >= 8.61 && calcfrequency < 10.56) {
    tempchar = 'T';
  } else {
    tempchar = 'E';
  };
  return tempchar;
}


x86 assembly (clang, -O0):
<compare>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
cvtsi2sdl -0x4(%rbp),%xmm1
movsd  0xef1(%rip),%xmm0
mulsd  %xmm1,%xmm0
cvtsi2sdl -0x8(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x10(%rbp)
movsd  0xecf(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1145 <compare+0x45>
movb   $0x5a,-0x11(%rbp)
jmp    1689 <compare+0x589>
movsd  -0x10(%rbp),%xmm0
movsd  0xeae(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1178 <compare+0x78>
movsd  0xeac(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1178 <compare+0x78>
movb   $0x4a,-0x11(%rbp)
jmp    1684 <compare+0x584>
movsd  -0x10(%rbp),%xmm0
movsd  0xe8b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11ab <compare+0xab>
movsd  0xe81(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    11ab <compare+0xab>
movb   $0x51,-0x11(%rbp)
jmp    167f <compare+0x57f>
movsd  -0x10(%rbp),%xmm0
movsd  0xe60(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11de <compare+0xde>
movsd  0xe56(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    11de <compare+0xde>
movb   $0x58,-0x11(%rbp)
jmp    167a <compare+0x57a>
movsd  -0x10(%rbp),%xmm0
movsd  0xe35(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1211 <compare+0x111>
movsd  0xe2b(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1211 <compare+0x111>
movb   $0x4b,-0x11(%rbp)
jmp    1675 <compare+0x575>
movsd  -0x10(%rbp),%xmm0
movsd  0xe0a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1244 <compare+0x144>
movsd  0xe00(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1244 <compare+0x144>
movb   $0x56,-0x11(%rbp)
jmp    1670 <compare+0x570>
movsd  -0x10(%rbp),%xmm0
movsd  0xddf(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1277 <compare+0x177>
movsd  0xdd5(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1277 <compare+0x177>
movb   $0x42,-0x11(%rbp)
jmp    166b <compare+0x56b>
movsd  -0x10(%rbp),%xmm0
movsd  0xdb4(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     12aa <compare+0x1aa>
movsd  0xdaa(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    12aa <compare+0x1aa>
movb   $0x50,-0x11(%rbp)
jmp    1666 <compare+0x566>
movsd  -0x10(%rbp),%xmm0
movsd  0xd89(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     12dd <compare+0x1dd>
movsd  0xd7f(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    12dd <compare+0x1dd>
movb   $0x47,-0x11(%rbp)
jmp    1661 <compare+0x561>
movsd  -0x10(%rbp),%xmm0
movsd  0xd5e(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1310 <compare+0x210>
movsd  0xd54(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1310 <compare+0x210>
movb   $0x57,-0x11(%rbp)
jmp    165c <compare+0x55c>
movsd  -0x10(%rbp),%xmm0
movsd  0xd33(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1343 <compare+0x243>
movsd  0xd29(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1343 <compare+0x243>
movb   $0x59,-0x11(%rbp)
jmp    1657 <compare+0x557>
movsd  -0x10(%rbp),%xmm0
movsd  0xd08(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1376 <compare+0x276>
movsd  0xcfe(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1376 <compare+0x276>
movb   $0x46,-0x11(%rbp)
jmp    1652 <compare+0x552>
movsd  -0x10(%rbp),%xmm0
movsd  0xcdd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     13a9 <compare+0x2a9>
movsd  0xcd3(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    13a9 <compare+0x2a9>
movb   $0x4d,-0x11(%rbp)
jmp    164d <compare+0x54d>
movsd  -0x10(%rbp),%xmm0
movsd  0xcb2(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     13dc <compare+0x2dc>
movsd  0xca8(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    13dc <compare+0x2dc>
movb   $0x43,-0x11(%rbp)
jmp    1648 <compare+0x548>
movsd  -0x10(%rbp),%xmm0
movsd  0xc87(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     140f <compare+0x30f>
movsd  0xc7d(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    140f <compare+0x30f>
movb   $0x55,-0x11(%rbp)
jmp    1643 <compare+0x543>
movsd  -0x10(%rbp),%xmm0
movsd  0xc5c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1442 <compare+0x342>
movsd  0xc52(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1442 <compare+0x342>
movb   $0x4c,-0x11(%rbp)
jmp    163e <compare+0x53e>
movsd  -0x10(%rbp),%xmm0
movsd  0xc31(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1475 <compare+0x375>
movsd  0xc27(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1475 <compare+0x375>
movb   $0x44,-0x11(%rbp)
jmp    1639 <compare+0x539>
movsd  -0x10(%rbp),%xmm0
movsd  0xc06(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     14a8 <compare+0x3a8>
movsd  0xbfc(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    14a8 <compare+0x3a8>
movb   $0x48,-0x11(%rbp)
jmp    1634 <compare+0x534>
movsd  -0x10(%rbp),%xmm0
movsd  0xbdb(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     14db <compare+0x3db>
movsd  0xbd1(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    14db <compare+0x3db>
movb   $0x52,-0x11(%rbp)
jmp    162f <compare+0x52f>
movsd  -0x10(%rbp),%xmm0
movsd  0xbb0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     150e <compare+0x40e>
movsd  0xba6(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    150e <compare+0x40e>
movb   $0x53,-0x11(%rbp)
jmp    162a <compare+0x52a>
movsd  -0x10(%rbp),%xmm0
movsd  0xb85(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1541 <compare+0x441>
movsd  0xb7b(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1541 <compare+0x441>
movb   $0x4e,-0x11(%rbp)
jmp    1625 <compare+0x525>
movsd  -0x10(%rbp),%xmm0
movsd  0xb5a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1574 <compare+0x474>
movsd  0xb50(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    1574 <compare+0x474>
movb   $0x49,-0x11(%rbp)
jmp    1620 <compare+0x520>
movsd  -0x10(%rbp),%xmm0
movsd  0xb2f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     15a7 <compare+0x4a7>
movsd  0xb25(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    15a7 <compare+0x4a7>
movb   $0x4f,-0x11(%rbp)
jmp    161b <compare+0x51b>
movsd  -0x10(%rbp),%xmm0
movsd  0xb04(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     15da <compare+0x4da>
movsd  0xafa(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    15da <compare+0x4da>
movb   $0x41,-0x11(%rbp)
jmp    1616 <compare+0x516>
movsd  -0x10(%rbp),%xmm0
movsd  0xad9(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     160d <compare+0x50d>
movsd  0xacf(%rip),%xmm0
ucomisd -0x10(%rbp),%xmm0
jbe    160d <compare+0x50d>
movb   $0x54,-0x11(%rbp)
jmp    1611 <compare+0x511>
movb   $0x45,-0x11(%rbp)
jmp    1616 <compare+0x516>
jmp    161b <compare+0x51b>
jmp    1620 <compare+0x520>
jmp    1625 <compare+0x525>
jmp    162a <compare+0x52a>
jmp    162f <compare+0x52f>
jmp    1634 <compare+0x534>
jmp    1639 <compare+0x539>
jmp    163e <compare+0x53e>
jmp    1643 <compare+0x543>
jmp    1648 <compare+0x548>
jmp    164d <compare+0x54d>
jmp    1652 <compare+0x552>
jmp    1657 <compare+0x557>
jmp    165c <compare+0x55c>
jmp    1661 <compare+0x561>
jmp    1666 <compare+0x566>
jmp    166b <compare+0x56b>
jmp    1670 <compare+0x570>
jmp    1675 <compare+0x575>
jmp    167a <compare+0x57a>
jmp    167f <compare+0x57f>
jmp    1684 <compare+0x584>
jmp    1689 <compare+0x589>
movsbl -0x11(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<compare>:
cvtsi2sd %edi,%xmm0
mulsd  0xef4(%rip),%xmm0
cvtsi2sd %esi,%xmm1
divsd  %xmm1,%xmm0
mov    $0x5a,%al
movsd  0xeea(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xedc(%rip),%xmm0
jb     113f <compare+0x3f>
mov    $0x4a,%al
movsd  0xed8(%rip),%xmm1
ucomisd %xmm0,%xmm1
jbe    113f <compare+0x3f>
ret
ucomisd 0xec9(%rip),%xmm0
jb     1159 <compare+0x59>
mov    $0x51,%al
movsd  0xec5(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xeb7(%rip),%xmm0
jb     1173 <compare+0x73>
mov    $0x58,%al
movsd  0xeb3(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xea5(%rip),%xmm0
jb     118d <compare+0x8d>
mov    $0x4b,%al
movsd  0xea1(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe93(%rip),%xmm0
jb     11a7 <compare+0xa7>
mov    $0x56,%al
movsd  0xe8f(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe81(%rip),%xmm0
jb     11c5 <compare+0xc5>
mov    $0x42,%al
movsd  0xe7d(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe6b(%rip),%xmm0
jb     11e3 <compare+0xe3>
mov    $0x50,%al
movsd  0xe67(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe55(%rip),%xmm0
jb     1201 <compare+0x101>
mov    $0x47,%al
movsd  0xe51(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe3f(%rip),%xmm0
jb     121f <compare+0x11f>
mov    $0x57,%al
movsd  0xe3b(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe29(%rip),%xmm0
jb     123d <compare+0x13d>
mov    $0x59,%al
movsd  0xe25(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xe13(%rip),%xmm0
jb     125b <compare+0x15b>
mov    $0x46,%al
movsd  0xe0f(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xdfd(%rip),%xmm0
jb     1279 <compare+0x179>
mov    $0x4d,%al
movsd  0xdf9(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xde7(%rip),%xmm0
jb     1297 <compare+0x197>
mov    $0x43,%al
movsd  0xde3(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xdd1(%rip),%xmm0
jb     12b5 <compare+0x1b5>
mov    $0x55,%al
movsd  0xdcd(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xdbb(%rip),%xmm0
jb     12d3 <compare+0x1d3>
mov    $0x4c,%al
movsd  0xdb7(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xda5(%rip),%xmm0
jb     12f1 <compare+0x1f1>
mov    $0x44,%al
movsd  0xda1(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd8f(%rip),%xmm0
jb     130f <compare+0x20f>
mov    $0x48,%al
movsd  0xd8b(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd79(%rip),%xmm0
jb     132d <compare+0x22d>
mov    $0x52,%al
movsd  0xd75(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd63(%rip),%xmm0
jb     134b <compare+0x24b>
mov    $0x53,%al
movsd  0xd5f(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd4d(%rip),%xmm0
jb     1369 <compare+0x269>
mov    $0x4e,%al
movsd  0xd49(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd37(%rip),%xmm0
jb     1387 <compare+0x287>
mov    $0x49,%al
movsd  0xd33(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd21(%rip),%xmm0
jb     13a5 <compare+0x2a5>
mov    $0x4f,%al
movsd  0xd1d(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
ucomisd 0xd0b(%rip),%xmm0
jb     13c3 <compare+0x2c3>
mov    $0x41,%al
movsd  0xd07(%rip),%xmm1
ucomisd %xmm0,%xmm1
ja     113e <compare+0x3e>
movsd  0xcfd(%rip),%xmm1
ucomisd %xmm0,%xmm1
mov    $0x54,%eax
mov    $0x45,%ecx
cmovbe %ecx,%eax
ucomisd 0xcdc(%rip),%xmm0
cmovb  %ecx,%eax
ret

LLVM IR (-O0):
define signext i8 @compare(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca double
%6 = alloca i8
store i32 %0, i32* %3
store i32 %1, i32* %4
%7 = load i32, i32* %3
%8 = sitofp i32 %7 to double
%9 = fmul double 1.000000e+02, %8
%10 = load i32, i32* %4
%11 = sitofp i32 %10 to double
%12 = fdiv double %9, %11
store double %12, double* %5
%13 = load double, double* %5
%14 = fcmp olt double %13, 8.500000e-02
br i1 %14, label %15, label %16
15: ; preds = %2
store i8 90, i8* %6
br label %209
16: ; preds = %2
%17 = load double, double* %5
%18 = fcmp oge double %17, 8.500000e-02
br i1 %18, label %19, label %23
19: ; preds = %16
%20 = load double, double* %5
%21 = fcmp olt double %20, 1.050000e-01
br i1 %21, label %22, label %23
22: ; preds = %19
store i8 74, i8* %6
br label %208
23: ; preds = %19, %16
%24 = load double, double* %5
%25 = fcmp oge double %24, 1.050000e-01
br i1 %25, label %26, label %30
26: ; preds = %23
%27 = load double, double* %5
%28 = fcmp olt double %27, 1.400000e-01
br i1 %28, label %29, label %30
29: ; preds = %26
store i8 81, i8* %6
br label %207
30: ; preds = %26, %23
%31 = load double, double* %5
%32 = fcmp oge double %31, 1.400000e-01
br i1 %32, label %33, label %37
33: ; preds = %30
%34 = load double, double* %5
%35 = fcmp olt double %34, 4.300000e-01
br i1 %35, label %36, label %37
36: ; preds = %33
store i8 88, i8* %6
br label %206
37: ; preds = %33, %30
%38 = load double, double* %5
%39 = fcmp oge double %38, 4.300000e-01
br i1 %39, label %40, label %44
40: ; preds = %37
%41 = load double, double* %5
%42 = fcmp olt double %41, 9.000000e-01
br i1 %42, label %43, label %44
43: ; preds = %40
store i8 75, i8* %6
br label %205
44: ; preds = %40, %37
%45 = load double, double* %5
%46 = fcmp oge double %45, 9.000000e-01
br i1 %46, label %47, label %51
47: ; preds = %44
%48 = load double, double* %5
%49 = fcmp olt double %48, 1.300000e+00
br i1 %49, label %50, label %51
50: ; preds = %47
store i8 86, i8* %6
br label %204
51: ; preds = %47, %44
%52 = load double, double* %5
%53 = fcmp oge double %52, 1.300000e+00
br i1 %53, label %54, label %58
54: ; preds = %51
%55 = load double, double* %5
%56 = fcmp olt double %55, 1.655000e+00
br i1 %56, label %57, label %58
57: ; preds = %54
store i8 66, i8* %6
br label %203
58: ; preds = %54, %51
%59 = load double, double* %5
%60 = fcmp oge double %59, 1.655000e+00
br i1 %60, label %61, label %65
61: ; preds = %58
%62 = load double, double* %5
%63 = fcmp olt double %62, 1.925000e+00
br i1 %63, label %64, label %65
64: ; preds = %61
store i8 80, i8* %6
br label %202
65: ; preds = %61, %58
%66 = load double, double* %5
%67 = fcmp oge double %66, 1.925000e+00
br i1 %67, label %68, label %72
68: ; preds = %65
%69 = load double, double* %5
%70 = fcmp olt double %69, 2.060000e+00
br i1 %70, label %71, label %72
71: ; preds = %68
store i8 71, i8* %6
br label %201
72: ; preds = %68, %65
%73 = load double, double* %5
%74 = fcmp oge double %73, 2.060000e+00
br i1 %74, label %75, label %79
75: ; preds = %72
%76 = load double, double* %5
%77 = fcmp olt double %76, 2.100000e+00
br i1 %77, label %78, label %79
78: ; preds = %75
store i8 87, i8* %6
br label %200
79: ; preds = %75, %72
%80 = load double, double* %5
%81 = fcmp oge double %80, 2.100000e+00
br i1 %81, label %82, label %86
82: ; preds = %79
%83 = load double, double* %5
%84 = fcmp olt double %83, 2.205000e+00
br i1 %84, label %85, label %86
85: ; preds = %82
store i8 89, i8* %6
br label %199
86: ; preds = %82, %79
%87 = load double, double* %5
%88 = fcmp oge double %87, 2.205000e+00
br i1 %88, label %89, label %93
89: ; preds = %86
%90 = load double, double* %5
%91 = fcmp olt double %90, 2.455000e+00
br i1 %91, label %92, label %93
92: ; preds = %89
store i8 70, i8* %6
br label %198
93: ; preds = %89, %86
%94 = load double, double* %5
%95 = fcmp oge double %94, 2.455000e+00
br i1 %95, label %96, label %100
96: ; preds = %93
%97 = load double, double* %5
%98 = fcmp olt double %97, 2.660000e+00
br i1 %98, label %99, label %100
99: ; preds = %96
store i8 77, i8* %6
br label %197
100: ; preds = %96, %93
%101 = load double, double* %5
%102 = fcmp oge double %101, 2.660000e+00
br i1 %102, label %103, label %107
103: ; preds = %100
%104 = load double, double* %5
%105 = fcmp olt double %104, 2.795000e+00
br i1 %105, label %106, label %107
106: ; preds = %103
store i8 67, i8* %6
br label %196
107: ; preds = %103, %100
%108 = load double, double* %5
%109 = fcmp oge double %108, 2.795000e+00
br i1 %109, label %110, label %114
110: ; preds = %107
%111 = load double, double* %5
%112 = fcmp olt double %111, 3.430000e+00
br i1 %112, label %113, label %114
113: ; preds = %110
store i8 85, i8* %6
br label %195
114: ; preds = %110, %107
%115 = load double, double* %5
%116 = fcmp oge double %115, 3.430000e+00
br i1 %116, label %117, label %121
117: ; preds = %114
%118 = load double, double* %5
%119 = fcmp olt double %118, 4.150000e+00
br i1 %119, label %120, label %121
120: ; preds = %117
store i8 76, i8* %6
br label %194
121: ; preds = %117, %114
%122 = load double, double* %5
%123 = fcmp oge double %122, 4.150000e+00
br i1 %123, label %124, label %128
124: ; preds = %121
%125 = load double, double* %5
%126 = fcmp olt double %125, 5.120000e+00
br i1 %126, label %127, label %128
127: ; preds = %124
store i8 68, i8* %6
br label %193
128: ; preds = %124, %121
%129 = load double, double* %5
%130 = fcmp oge double %129, 5.120000e+00
br i1 %130, label %131, label %135
131: ; preds = %128
%132 = load double, double* %5
%133 = fcmp olt double %132, 5.970000e+00
br i1 %133, label %134, label %135
134: ; preds = %131
store i8 72, i8* %6
br label %192
135: ; preds = %131, %128
%136 = load double, double* %5
%137 = fcmp oge double %136, 5.970000e+00
br i1 %137, label %138, label %142
138: ; preds = %135
%139 = load double, double* %5
%140 = fcmp olt double %139, 6.150000e+00
br i1 %140, label %141, label %142
141: ; preds = %138
store i8 82, i8* %6
br label %191
142: ; preds = %138, %135
%143 = load double, double* %5
%144 = fcmp oge double %143, 6.150000e+00
br i1 %144, label %145, label %149
145: ; preds = %142
%146 = load double, double* %5
%147 = fcmp olt double %146, 6.615000e+00
br i1 %147, label %148, label %149
148: ; preds = %145
store i8 83, i8* %6
br label %190
149: ; preds = %145, %142
%150 = load double, double* %5
%151 = fcmp oge double %150, 6.615000e+00
br i1 %151, label %152, label %156
152: ; preds = %149
%153 = load double, double* %5
%154 = fcmp olt double %153, 7.130000e+00
br i1 %154, label %155, label %156
155: ; preds = %152
store i8 78, i8* %6
br label %189
156: ; preds = %152, %149
%157 = load double, double* %5
%158 = fcmp oge double %157, 7.130000e+00
br i1 %158, label %159, label %163
159: ; preds = %156
%160 = load double, double* %5
%161 = fcmp olt double %160, 7.495000e+00
br i1 %161, label %162, label %163
162: ; preds = %159
store i8 73, i8* %6
br label %188
163: ; preds = %159, %156
%164 = load double, double* %5
%165 = fcmp oge double %164, 7.495000e+00
br i1 %165, label %166, label %170
166: ; preds = %163
%167 = load double, double* %5
%168 = fcmp olt double %167, 7.900000e+00
br i1 %168, label %169, label %170
169: ; preds = %166
store i8 79, i8* %6
br label %187
170: ; preds = %166, %163
%171 = load double, double* %5
%172 = fcmp oge double %171, 7.900000e+00
br i1 %172, label %173, label %177
173: ; preds = %170
%174 = load double, double* %5
%175 = fcmp olt double %174, 8.610000e+00
br i1 %175, label %176, label %177
176: ; preds = %173
store i8 65, i8* %6
br label %186
177: ; preds = %173, %170
%178 = load double, double* %5
%179 = fcmp oge double %178, 8.610000e+00
br i1 %179, label %180, label %184
180: ; preds = %177
%181 = load double, double* %5
%182 = fcmp olt double %181, 1.056000e+01
br i1 %182, label %183, label %184
183: ; preds = %180
store i8 84, i8* %6
br label %185
184: ; preds = %180, %177
store i8 69, i8* %6
br label %185
185: ; preds = %184, %183
br label %186
186: ; preds = %185, %176
br label %187
187: ; preds = %186, %169
br label %188
188: ; preds = %187, %162
br label %189
189: ; preds = %188, %155
br label %190
190: ; preds = %189, %148
br label %191
191: ; preds = %190, %141
br label %192
192: ; preds = %191, %134
br label %193
193: ; preds = %192, %127
br label %194
194: ; preds = %193, %120
br label %195
195: ; preds = %194, %113
br label %196
196: ; preds = %195, %106
br label %197
197: ; preds = %196, %99
br label %198
198: ; preds = %197, %92
br label %199
199: ; preds = %198, %85
br label %200
200: ; preds = %199, %78
br label %201
201: ; preds = %200, %71
br label %202
202: ; preds = %201, %64
br label %203
203: ; preds = %202, %57
br label %204
204: ; preds = %203, %50
br label %205
205: ; preds = %204, %43
br label %206
206: ; preds = %205, %36
br label %207
207: ; preds = %206, %29
br label %208
208: ; preds = %207, %22
br label %209
209: ; preds = %208, %15
%210 = load i8, i8* %6
ret i8 %210
}

LLVM IR (-O2):
define signext i8 @compare(i32 %0, i32 %1) {
%3 = sitofp i32 %0 to double
%4 = fmul double %3, 1.000000e+02
%5 = sitofp i32 %1 to double
%6 = fdiv double %4, %5
%7 = fcmp olt double %6, 8.500000e-02
br i1 %7, label %105, label %8
8: ; preds = %2
%9 = fcmp oge double %6, 8.500000e-02
%10 = fcmp olt double %6, 1.050000e-01
%11 = and i1 %9, %10
br i1 %11, label %105, label %12
12: ; preds = %8
%13 = fcmp oge double %6, 1.050000e-01
%14 = fcmp olt double %6, 1.400000e-01
%15 = and i1 %13, %14
br i1 %15, label %105, label %16
16: ; preds = %12
%17 = fcmp oge double %6, 1.400000e-01
%18 = fcmp olt double %6, 4.300000e-01
%19 = and i1 %17, %18
br i1 %19, label %105, label %20
20: ; preds = %16
%21 = fcmp oge double %6, 4.300000e-01
%22 = fcmp olt double %6, 9.000000e-01
%23 = and i1 %21, %22
br i1 %23, label %105, label %24
24: ; preds = %20
%25 = fcmp oge double %6, 9.000000e-01
%26 = fcmp olt double %6, 1.300000e+00
%27 = and i1 %25, %26
br i1 %27, label %105, label %28
28: ; preds = %24
%29 = fcmp oge double %6, 1.300000e+00
%30 = fcmp olt double %6, 1.655000e+00
%31 = and i1 %29, %30
br i1 %31, label %105, label %32
32: ; preds = %28
%33 = fcmp oge double %6, 1.655000e+00
%34 = fcmp olt double %6, 1.925000e+00
%35 = and i1 %33, %34
br i1 %35, label %105, label %36
36: ; preds = %32
%37 = fcmp oge double %6, 1.925000e+00
%38 = fcmp olt double %6, 2.060000e+00
%39 = and i1 %37, %38
br i1 %39, label %105, label %40
40: ; preds = %36
%41 = fcmp oge double %6, 2.060000e+00
%42 = fcmp olt double %6, 2.100000e+00
%43 = and i1 %41, %42
br i1 %43, label %105, label %44
44: ; preds = %40
%45 = fcmp oge double %6, 2.100000e+00
%46 = fcmp olt double %6, 2.205000e+00
%47 = and i1 %45, %46
br i1 %47, label %105, label %48
48: ; preds = %44
%49 = fcmp oge double %6, 2.205000e+00
%50 = fcmp olt double %6, 2.455000e+00
%51 = and i1 %49, %50
br i1 %51, label %105, label %52
52: ; preds = %48
%53 = fcmp oge double %6, 2.455000e+00
%54 = fcmp olt double %6, 2.660000e+00
%55 = and i1 %53, %54
br i1 %55, label %105, label %56
56: ; preds = %52
%57 = fcmp oge double %6, 2.660000e+00
%58 = fcmp olt double %6, 2.795000e+00
%59 = and i1 %57, %58
br i1 %59, label %105, label %60
60: ; preds = %56
%61 = fcmp oge double %6, 2.795000e+00
%62 = fcmp olt double %6, 3.430000e+00
%63 = and i1 %61, %62
br i1 %63, label %105, label %64
64: ; preds = %60
%65 = fcmp oge double %6, 3.430000e+00
%66 = fcmp olt double %6, 4.150000e+00
%67 = and i1 %65, %66
br i1 %67, label %105, label %68
68: ; preds = %64
%69 = fcmp oge double %6, 4.150000e+00
%70 = fcmp olt double %6, 5.120000e+00
%71 = and i1 %69, %70
br i1 %71, label %105, label %72
72: ; preds = %68
%73 = fcmp oge double %6, 5.120000e+00
%74 = fcmp olt double %6, 5.970000e+00
%75 = and i1 %73, %74
br i1 %75, label %105, label %76
76: ; preds = %72
%77 = fcmp oge double %6, 5.970000e+00
%78 = fcmp olt double %6, 6.150000e+00
%79 = and i1 %77, %78
br i1 %79, label %105, label %80
80: ; preds = %76
%81 = fcmp oge double %6, 6.150000e+00
%82 = fcmp olt double %6, 6.615000e+00
%83 = and i1 %81, %82
br i1 %83, label %105, label %84
84: ; preds = %80
%85 = fcmp oge double %6, 6.615000e+00
%86 = fcmp olt double %6, 7.130000e+00
%87 = and i1 %85, %86
br i1 %87, label %105, label %88
88: ; preds = %84
%89 = fcmp oge double %6, 7.130000e+00
%90 = fcmp olt double %6, 7.495000e+00
%91 = and i1 %89, %90
br i1 %91, label %105, label %92
92: ; preds = %88
%93 = fcmp oge double %6, 7.495000e+00
%94 = fcmp olt double %6, 7.900000e+00
%95 = and i1 %93, %94
br i1 %95, label %105, label %96
96: ; preds = %92
%97 = fcmp oge double %6, 7.900000e+00
%98 = fcmp olt double %6, 8.610000e+00
%99 = and i1 %97, %98
br i1 %99, label %105, label %100
100: ; preds = %96
%101 = fcmp oge double %6, 8.610000e+00
%102 = fcmp olt double %6, 1.056000e+01
%103 = and i1 %101, %102
%104 = select i1 %103, i8 84, i8 69
br label %105
105: ; preds = %100, %96, %92, %88, %84, %80, %76, %72, %68, %64, %60, %56, %52, %48, %44, %40, %36, %32, %28, %24, %20, %16, %12, %8, %2
%106 = phi i8 [ 90, %2 ], [ 74, %8 ], [ 81, %12 ], [ 88, %16 ], [ 75, %20 ], [ 86, %24 ], [ 66, %28 ], [ 80, %32 ], [ 71, %36 ], [ 87, %40 ], [ 89, %44 ], [ 70, %48 ], [ 77, %52 ], [ 67, %56 ], [ 85, %60 ], [ 76, %64 ], [ 68, %68 ], [ 72, %72 ], [ 82, %76 ], [ 83, %80 ], [ 78, %84 ], [ 73, %88 ], [ 79, %92 ], [ 65, %96 ], [ %104, %100 ]
ret i8 %106
}