double xSinTable(const int details) {
  double result;
  if (details == 0) {
    result = 0.000000;
  } else if (details == 1) {
    result = 0.099833;
  } else if (details == 2) {
    result = 0.198669;
  } else if (details == 3) {
    result = 0.295520;
  } else if (details == 4) {
    result = 0.389418;
  } else if (details == 5) {
    result = 0.479426;
  } else if (details == 6) {
    result = 0.564642;
  } else if (details == 7) {
    result = 0.644218;
  } else if (details == 8) {
    result = 0.717356;
  } else if (details == 9) {
    result = 0.783327;
  } else if (details == 10) {
    result = 0.841471;
  } else if (details == 11) {
    result = 0.891207;
  } else if (details == 12) {
    result = 0.932039;
  } else if (details == 13) {
    result = 0.963558;
  } else if (details == 14) {
    result = 0.985450;
  } else if (details == 15) {
    result = 0.997495;
  } else if (details == 16) {
    result = 0.999574;
  } else if (details == 17) {
    result = 0.991665;
  } else if (details == 18) {
    result = 0.973848;
  } else if (details == 19) {
    result = 0.946300;
  } else if (details == 20) {
    result = 0.909297;
  } else if (details == 21) {
    result = 0.863209;
  } else if (details == 22) {
    result = 0.808496;
  } else if (details == 23) {
    result = 0.745705;
  } else if (details == 24) {
    result = 0.675463;
  } else if (details == 25) {
    result = 0.598472;
  } else if (details == 26) {
    result = 0.515501;
  } else if (details == 27) {
    result = 0.427380;
  } else if (details == 28) {
    result = 0.334988;
  } else if (details == 29) {
    result = 0.239249;
  } else if (details == 30) {
    result = 0.141120;
  } else if (details == 31) {
    result = 0.041581;
  } else if (details == 32) {
    result = -0.058374;
  } else if (details == 33) {
    result = -0.157746;
  } else if (details == 34) {
    result = -0.255541;
  } else if (details == 35) {
    result = -0.350783;
  } else if (details == 36) {
    result = -0.442520;
  } else if (details == 37) {
    result = -0.529836;
  } else if (details == 38) {
    result = -0.611858;
  } else if (details == 39) {
    result = -0.687766;
  } else if (details == 40) {
    result = -0.756802;
  } else if (details == 41) {
    result = -0.818277;
  } else if (details == 42) {
    result = -0.871576;
  } else if (details == 43) {
    result = -0.916166;
  } else if (details == 44) {
    result = -0.951602;
  } else if (details == 45) {
    result = -0.977530;
  } else if (details == 46) {
    result = -0.993691;
  } else if (details == 47) {
    result = -0.999923;
  } else if (details == 48) {
    result = -0.996165;
  } else if (details == 49) {
    result = -0.982453;
  } else if (details == 50) {
    result = -0.958924;
  } else if (details == 51) {
    result = -0.925815;
  } else if (details == 52) {
    result = -0.883455;
  } else if (details == 53) {
    result = -0.832267;
  } else if (details == 54) {
    result = -0.772764;
  } else if (details == 55) {
    result = -0.705540;
  } else if (details == 56) {
    result = -0.631267;
  } else if (details == 57) {
    result = -0.550686;
  } else if (details == 58) {
    result = -0.464602;
  } else if (details == 59) {
    result = -0.373877;
  } else if (details == 60) {
    result = -0.279415;
  } else if (details == 61) {
    result = -0.182163;
  } else if (details == 62) {
    result = -0.083089;
  } else {
    result = 0.0;
  }
  return result;
}


x86 assembly (clang, -O0):
<xSinTable>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
jne    111e <xSinTable+0x1e>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1924 <xSinTable+0x824>
cmpl   $0x1,-0x4(%rbp)
jne    113a <xSinTable+0x3a>
movsd  0x10b8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    191f <xSinTable+0x81f>
cmpl   $0x2,-0x4(%rbp)
jne    1156 <xSinTable+0x56>
movsd  0x1094(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    191a <xSinTable+0x81a>
cmpl   $0x3,-0x4(%rbp)
jne    1172 <xSinTable+0x72>
movsd  0x1070(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1915 <xSinTable+0x815>
cmpl   $0x4,-0x4(%rbp)
jne    118e <xSinTable+0x8e>
movsd  0x104c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1910 <xSinTable+0x810>
cmpl   $0x5,-0x4(%rbp)
jne    11aa <xSinTable+0xaa>
movsd  0x1028(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    190b <xSinTable+0x80b>
cmpl   $0x6,-0x4(%rbp)
jne    11c6 <xSinTable+0xc6>
movsd  0x1004(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1906 <xSinTable+0x806>
cmpl   $0x7,-0x4(%rbp)
jne    11e2 <xSinTable+0xe2>
movsd  0xfe0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1901 <xSinTable+0x801>
cmpl   $0x8,-0x4(%rbp)
jne    11fe <xSinTable+0xfe>
movsd  0xfbc(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18fc <xSinTable+0x7fc>
cmpl   $0x9,-0x4(%rbp)
jne    121a <xSinTable+0x11a>
movsd  0xf98(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18f7 <xSinTable+0x7f7>
cmpl   $0xa,-0x4(%rbp)
jne    1236 <xSinTable+0x136>
movsd  0xf74(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18f2 <xSinTable+0x7f2>
cmpl   $0xb,-0x4(%rbp)
jne    1252 <xSinTable+0x152>
movsd  0xf50(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ed <xSinTable+0x7ed>
cmpl   $0xc,-0x4(%rbp)
jne    126e <xSinTable+0x16e>
movsd  0xf2c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18e8 <xSinTable+0x7e8>
cmpl   $0xd,-0x4(%rbp)
jne    128a <xSinTable+0x18a>
movsd  0xf08(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18e3 <xSinTable+0x7e3>
cmpl   $0xe,-0x4(%rbp)
jne    12a6 <xSinTable+0x1a6>
movsd  0xee4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18de <xSinTable+0x7de>
cmpl   $0xf,-0x4(%rbp)
jne    12c2 <xSinTable+0x1c2>
movsd  0xec0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18d9 <xSinTable+0x7d9>
cmpl   $0x10,-0x4(%rbp)
jne    12de <xSinTable+0x1de>
movsd  0xe9c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18d4 <xSinTable+0x7d4>
cmpl   $0x11,-0x4(%rbp)
jne    12fa <xSinTable+0x1fa>
movsd  0xe78(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18cf <xSinTable+0x7cf>
cmpl   $0x12,-0x4(%rbp)
jne    1316 <xSinTable+0x216>
movsd  0xe54(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ca <xSinTable+0x7ca>
cmpl   $0x13,-0x4(%rbp)
jne    1332 <xSinTable+0x232>
movsd  0xe30(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18c5 <xSinTable+0x7c5>
cmpl   $0x14,-0x4(%rbp)
jne    134e <xSinTable+0x24e>
movsd  0xe0c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18c0 <xSinTable+0x7c0>
cmpl   $0x15,-0x4(%rbp)
jne    136a <xSinTable+0x26a>
movsd  0xde8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18bb <xSinTable+0x7bb>
cmpl   $0x16,-0x4(%rbp)
jne    1386 <xSinTable+0x286>
movsd  0xdc4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18b6 <xSinTable+0x7b6>
cmpl   $0x17,-0x4(%rbp)
jne    13a2 <xSinTable+0x2a2>
movsd  0xda0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18b1 <xSinTable+0x7b1>
cmpl   $0x18,-0x4(%rbp)
jne    13be <xSinTable+0x2be>
movsd  0xd7c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ac <xSinTable+0x7ac>
cmpl   $0x19,-0x4(%rbp)
jne    13da <xSinTable+0x2da>
movsd  0xd58(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18a7 <xSinTable+0x7a7>
cmpl   $0x1a,-0x4(%rbp)
jne    13f6 <xSinTable+0x2f6>
movsd  0xd34(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18a2 <xSinTable+0x7a2>
cmpl   $0x1b,-0x4(%rbp)
jne    1412 <xSinTable+0x312>
movsd  0xd10(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    189d <xSinTable+0x79d>
cmpl   $0x1c,-0x4(%rbp)
jne    142e <xSinTable+0x32e>
movsd  0xcec(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1898 <xSinTable+0x798>
cmpl   $0x1d,-0x4(%rbp)
jne    144a <xSinTable+0x34a>
movsd  0xcc8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1893 <xSinTable+0x793>
cmpl   $0x1e,-0x4(%rbp)
jne    1466 <xSinTable+0x366>
movsd  0xca4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    188e <xSinTable+0x78e>
cmpl   $0x1f,-0x4(%rbp)
jne    1482 <xSinTable+0x382>
movsd  0xc80(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1889 <xSinTable+0x789>
cmpl   $0x20,-0x4(%rbp)
jne    149e <xSinTable+0x39e>
movsd  0xc5c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1884 <xSinTable+0x784>
cmpl   $0x21,-0x4(%rbp)
jne    14ba <xSinTable+0x3ba>
movsd  0xc38(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    187f <xSinTable+0x77f>
cmpl   $0x22,-0x4(%rbp)
jne    14d6 <xSinTable+0x3d6>
movsd  0xc14(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    187a <xSinTable+0x77a>
cmpl   $0x23,-0x4(%rbp)
jne    14f2 <xSinTable+0x3f2>
movsd  0xbf0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1875 <xSinTable+0x775>
cmpl   $0x24,-0x4(%rbp)
jne    150e <xSinTable+0x40e>
movsd  0xbcc(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1870 <xSinTable+0x770>
cmpl   $0x25,-0x4(%rbp)
jne    152a <xSinTable+0x42a>
movsd  0xba8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    186b <xSinTable+0x76b>
cmpl   $0x26,-0x4(%rbp)
jne    1546 <xSinTable+0x446>
movsd  0xb84(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1866 <xSinTable+0x766>
cmpl   $0x27,-0x4(%rbp)
jne    1562 <xSinTable+0x462>
movsd  0xb60(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1861 <xSinTable+0x761>
cmpl   $0x28,-0x4(%rbp)
jne    157e <xSinTable+0x47e>
movsd  0xb3c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    185c <xSinTable+0x75c>
cmpl   $0x29,-0x4(%rbp)
jne    159a <xSinTable+0x49a>
movsd  0xb18(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1857 <xSinTable+0x757>
cmpl   $0x2a,-0x4(%rbp)
jne    15b6 <xSinTable+0x4b6>
movsd  0xaf4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1852 <xSinTable+0x752>
cmpl   $0x2b,-0x4(%rbp)
jne    15d2 <xSinTable+0x4d2>
movsd  0xad0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    184d <xSinTable+0x74d>
cmpl   $0x2c,-0x4(%rbp)
jne    15ee <xSinTable+0x4ee>
movsd  0xaac(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1848 <xSinTable+0x748>
cmpl   $0x2d,-0x4(%rbp)
jne    160a <xSinTable+0x50a>
movsd  0xa88(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1843 <xSinTable+0x743>
cmpl   $0x2e,-0x4(%rbp)
jne    1626 <xSinTable+0x526>
movsd  0xa64(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    183e <xSinTable+0x73e>
cmpl   $0x2f,-0x4(%rbp)
jne    1642 <xSinTable+0x542>
movsd  0xa40(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1839 <xSinTable+0x739>
cmpl   $0x30,-0x4(%rbp)
jne    165e <xSinTable+0x55e>
movsd  0xa1c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1834 <xSinTable+0x734>
cmpl   $0x31,-0x4(%rbp)
jne    167a <xSinTable+0x57a>
movsd  0x9f8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    182f <xSinTable+0x72f>
cmpl   $0x32,-0x4(%rbp)
jne    1696 <xSinTable+0x596>
movsd  0x9d4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    182a <xSinTable+0x72a>
cmpl   $0x33,-0x4(%rbp)
jne    16b2 <xSinTable+0x5b2>
movsd  0x9b0(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1825 <xSinTable+0x725>
cmpl   $0x34,-0x4(%rbp)
jne    16ce <xSinTable+0x5ce>
movsd  0x98c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1820 <xSinTable+0x720>
cmpl   $0x35,-0x4(%rbp)
jne    16ea <xSinTable+0x5ea>
movsd  0x968(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    181b <xSinTable+0x71b>
cmpl   $0x36,-0x4(%rbp)
jne    1706 <xSinTable+0x606>
movsd  0x944(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1816 <xSinTable+0x716>
cmpl   $0x37,-0x4(%rbp)
jne    1722 <xSinTable+0x622>
movsd  0x920(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1811 <xSinTable+0x711>
cmpl   $0x38,-0x4(%rbp)
jne    173e <xSinTable+0x63e>
movsd  0x8fc(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    180c <xSinTable+0x70c>
cmpl   $0x39,-0x4(%rbp)
jne    175a <xSinTable+0x65a>
movsd  0x8d8(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1807 <xSinTable+0x707>
cmpl   $0x3a,-0x4(%rbp)
jne    1776 <xSinTable+0x676>
movsd  0x8b4(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1802 <xSinTable+0x702>
cmpl   $0x3b,-0x4(%rbp)
jne    1792 <xSinTable+0x692>
movsd  0x890(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17fd <xSinTable+0x6fd>
cmpl   $0x3c,-0x4(%rbp)
jne    17ae <xSinTable+0x6ae>
movsd  0x86c(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17f8 <xSinTable+0x6f8>
cmpl   $0x3d,-0x4(%rbp)
jne    17ca <xSinTable+0x6ca>
movsd  0x848(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17f3 <xSinTable+0x6f3>
cmpl   $0x3e,-0x4(%rbp)
jne    17e6 <xSinTable+0x6e6>
movsd  0x824(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17ee <xSinTable+0x6ee>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17f3 <xSinTable+0x6f3>
jmp    17f8 <xSinTable+0x6f8>
jmp    17fd <xSinTable+0x6fd>
jmp    1802 <xSinTable+0x702>
jmp    1807 <xSinTable+0x707>
jmp    180c <xSinTable+0x70c>
jmp    1811 <xSinTable+0x711>
jmp    1816 <xSinTable+0x716>
jmp    181b <xSinTable+0x71b>
jmp    1820 <xSinTable+0x720>
jmp    1825 <xSinTable+0x725>
jmp    182a <xSinTable+0x72a>
jmp    182f <xSinTable+0x72f>
jmp    1834 <xSinTable+0x734>
jmp    1839 <xSinTable+0x739>
jmp    183e <xSinTable+0x73e>
jmp    1843 <xSinTable+0x743>
jmp    1848 <xSinTable+0x748>
jmp    184d <xSinTable+0x74d>
jmp    1852 <xSinTable+0x752>
jmp    1857 <xSinTable+0x757>
jmp    185c <xSinTable+0x75c>
jmp    1861 <xSinTable+0x761>
jmp    1866 <xSinTable+0x766>
jmp    186b <xSinTable+0x76b>
jmp    1870 <xSinTable+0x770>
jmp    1875 <xSinTable+0x775>
jmp    187a <xSinTable+0x77a>
jmp    187f <xSinTable+0x77f>
jmp    1884 <xSinTable+0x784>
jmp    1889 <xSinTable+0x789>
jmp    188e <xSinTable+0x78e>
jmp    1893 <xSinTable+0x793>
jmp    1898 <xSinTable+0x798>
jmp    189d <xSinTable+0x79d>
jmp    18a2 <xSinTable+0x7a2>
jmp    18a7 <xSinTable+0x7a7>
jmp    18ac <xSinTable+0x7ac>
jmp    18b1 <xSinTable+0x7b1>
jmp    18b6 <xSinTable+0x7b6>
jmp    18bb <xSinTable+0x7bb>
jmp    18c0 <xSinTable+0x7c0>
jmp    18c5 <xSinTable+0x7c5>
jmp    18ca <xSinTable+0x7ca>
jmp    18cf <xSinTable+0x7cf>
jmp    18d4 <xSinTable+0x7d4>
jmp    18d9 <xSinTable+0x7d9>
jmp    18de <xSinTable+0x7de>
jmp    18e3 <xSinTable+0x7e3>
jmp    18e8 <xSinTable+0x7e8>
jmp    18ed <xSinTable+0x7ed>
jmp    18f2 <xSinTable+0x7f2>
jmp    18f7 <xSinTable+0x7f7>
jmp    18fc <xSinTable+0x7fc>
jmp    1901 <xSinTable+0x801>
jmp    1906 <xSinTable+0x806>
jmp    190b <xSinTable+0x80b>
jmp    1910 <xSinTable+0x810>
jmp    1915 <xSinTable+0x815>
jmp    191a <xSinTable+0x81a>
jmp    191f <xSinTable+0x81f>
jmp    1924 <xSinTable+0x824>
movsd  -0x10(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<xSinTable>:
add    $0xffffffff,%edi
xorps  %xmm0,%xmm0
cmp    $0x3d,%edi
ja     111a <xSinTable+0x1a>
movslq %edi,%rax
lea    0xeeb(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm0
ret

LLVM IR (-O0):
define double @xSinTable(i32 %0) {
%2 = alloca i32
%3 = alloca double
store i32 %0, i32* %2
%4 = load i32, i32* %2
%5 = icmp eq i32 %4, 0
br i1 %5, label %6, label %7
6: ; preds = %1
store double 0.000000e+00, double* %3
br label %318
7: ; preds = %1
%8 = load i32, i32* %2
%9 = icmp eq i32 %8, 1
br i1 %9, label %10, label %11
10: ; preds = %7
store double 9.983300e-02, double* %3
br label %317
11: ; preds = %7
%12 = load i32, i32* %2
%13 = icmp eq i32 %12, 2
br i1 %13, label %14, label %15
14: ; preds = %11
store double 1.986690e-01, double* %3
br label %316
15: ; preds = %11
%16 = load i32, i32* %2
%17 = icmp eq i32 %16, 3
br i1 %17, label %18, label %19
18: ; preds = %15
store double 2.955200e-01, double* %3
br label %315
19: ; preds = %15
%20 = load i32, i32* %2
%21 = icmp eq i32 %20, 4
br i1 %21, label %22, label %23
22: ; preds = %19
store double 3.894180e-01, double* %3
br label %314
23: ; preds = %19
%24 = load i32, i32* %2
%25 = icmp eq i32 %24, 5
br i1 %25, label %26, label %27
26: ; preds = %23
store double 4.794260e-01, double* %3
br label %313
27: ; preds = %23
%28 = load i32, i32* %2
%29 = icmp eq i32 %28, 6
br i1 %29, label %30, label %31
30: ; preds = %27
store double 5.646420e-01, double* %3
br label %312
31: ; preds = %27
%32 = load i32, i32* %2
%33 = icmp eq i32 %32, 7
br i1 %33, label %34, label %35
34: ; preds = %31
store double 6.442180e-01, double* %3
br label %311
35: ; preds = %31
%36 = load i32, i32* %2
%37 = icmp eq i32 %36, 8
br i1 %37, label %38, label %39
38: ; preds = %35
store double 7.173560e-01, double* %3
br label %310
39: ; preds = %35
%40 = load i32, i32* %2
%41 = icmp eq i32 %40, 9
br i1 %41, label %42, label %43
42: ; preds = %39
store double 7.833270e-01, double* %3
br label %309
43: ; preds = %39
%44 = load i32, i32* %2
%45 = icmp eq i32 %44, 10
br i1 %45, label %46, label %47
46: ; preds = %43
store double 8.414710e-01, double* %3
br label %308
47: ; preds = %43
%48 = load i32, i32* %2
%49 = icmp eq i32 %48, 11
br i1 %49, label %50, label %51
50: ; preds = %47
store double 8.912070e-01, double* %3
br label %307
51: ; preds = %47
%52 = load i32, i32* %2
%53 = icmp eq i32 %52, 12
br i1 %53, label %54, label %55
54: ; preds = %51
store double 9.320390e-01, double* %3
br label %306
55: ; preds = %51
%56 = load i32, i32* %2
%57 = icmp eq i32 %56, 13
br i1 %57, label %58, label %59
58: ; preds = %55
store double 9.635580e-01, double* %3
br label %305
59: ; preds = %55
%60 = load i32, i32* %2
%61 = icmp eq i32 %60, 14
br i1 %61, label %62, label %63
62: ; preds = %59
store double 9.854500e-01, double* %3
br label %304
63: ; preds = %59
%64 = load i32, i32* %2
%65 = icmp eq i32 %64, 15
br i1 %65, label %66, label %67
66: ; preds = %63
store double 9.974950e-01, double* %3
br label %303
67: ; preds = %63
%68 = load i32, i32* %2
%69 = icmp eq i32 %68, 16
br i1 %69, label %70, label %71
70: ; preds = %67
store double 0x3FEFFC829CFDD228, double* %3
br label %302
71: ; preds = %67
%72 = load i32, i32* %2
%73 = icmp eq i32 %72, 17
br i1 %73, label %74, label %75
74: ; preds = %71
store double 9.916650e-01, double* %3
br label %301
75: ; preds = %71
%76 = load i32, i32* %2
%77 = icmp eq i32 %76, 18
br i1 %77, label %78, label %79
78: ; preds = %75
store double 9.738480e-01, double* %3
br label %300
79: ; preds = %75
%80 = load i32, i32* %2
%81 = icmp eq i32 %80, 19
br i1 %81, label %82, label %83
82: ; preds = %79
store double 9.463000e-01, double* %3
br label %299
83: ; preds = %79
%84 = load i32, i32* %2
%85 = icmp eq i32 %84, 20
br i1 %85, label %86, label %87
86: ; preds = %83
store double 9.092970e-01, double* %3
br label %298
87: ; preds = %83
%88 = load i32, i32* %2
%89 = icmp eq i32 %88, 21
br i1 %89, label %90, label %91
90: ; preds = %87
store double 8.632090e-01, double* %3
br label %297
91: ; preds = %87
%92 = load i32, i32* %2
%93 = icmp eq i32 %92, 22
br i1 %93, label %94, label %95
94: ; preds = %91
store double 8.084960e-01, double* %3
br label %296
95: ; preds = %91
%96 = load i32, i32* %2
%97 = icmp eq i32 %96, 23
br i1 %97, label %98, label %99
98: ; preds = %95
store double 7.457050e-01, double* %3
br label %295
99: ; preds = %95
%100 = load i32, i32* %2
%101 = icmp eq i32 %100, 24
br i1 %101, label %102, label %103
102: ; preds = %99
store double 6.754630e-01, double* %3
br label %294
103: ; preds = %99
%104 = load i32, i32* %2
%105 = icmp eq i32 %104, 25
br i1 %105, label %106, label %107
106: ; preds = %103
store double 5.984720e-01, double* %3
br label %293
107: ; preds = %103
%108 = load i32, i32* %2
%109 = icmp eq i32 %108, 26
br i1 %109, label %110, label %111
110: ; preds = %107
store double 5.155010e-01, double* %3
br label %292
111: ; preds = %107
%112 = load i32, i32* %2
%113 = icmp eq i32 %112, 27
br i1 %113, label %114, label %115
114: ; preds = %111
store double 4.273800e-01, double* %3
br label %291
115: ; preds = %111
%116 = load i32, i32* %2
%117 = icmp eq i32 %116, 28
br i1 %117, label %118, label %119
118: ; preds = %115
store double 3.349880e-01, double* %3
br label %290
119: ; preds = %115
%120 = load i32, i32* %2
%121 = icmp eq i32 %120, 29
br i1 %121, label %122, label %123
122: ; preds = %119
store double 2.392490e-01, double* %3
br label %289
123: ; preds = %119
%124 = load i32, i32* %2
%125 = icmp eq i32 %124, 30
br i1 %125, label %126, label %127
126: ; preds = %123
store double 1.411200e-01, double* %3
br label %288
127: ; preds = %123
%128 = load i32, i32* %2
%129 = icmp eq i32 %128, 31
br i1 %129, label %130, label %131
130: ; preds = %127
store double 4.158100e-02, double* %3
br label %287
131: ; preds = %127
%132 = load i32, i32* %2
%133 = icmp eq i32 %132, 32
br i1 %133, label %134, label %135
134: ; preds = %131
store double -5.837400e-02, double* %3
br label %286
135: ; preds = %131
%136 = load i32, i32* %2
%137 = icmp eq i32 %136, 33
br i1 %137, label %138, label %139
138: ; preds = %135
store double -1.577460e-01, double* %3
br label %285
139: ; preds = %135
%140 = load i32, i32* %2
%141 = icmp eq i32 %140, 34
br i1 %141, label %142, label %143
142: ; preds = %139
store double -2.555410e-01, double* %3
br label %284
143: ; preds = %139
%144 = load i32, i32* %2
%145 = icmp eq i32 %144, 35
br i1 %145, label %146, label %147
146: ; preds = %143
store double -3.507830e-01, double* %3
br label %283
147: ; preds = %143
%148 = load i32, i32* %2
%149 = icmp eq i32 %148, 36
br i1 %149, label %150, label %151
150: ; preds = %147
store double -4.425200e-01, double* %3
br label %282
151: ; preds = %147
%152 = load i32, i32* %2
%153 = icmp eq i32 %152, 37
br i1 %153, label %154, label %155
154: ; preds = %151
store double -5.298360e-01, double* %3
br label %281
155: ; preds = %151
%156 = load i32, i32* %2
%157 = icmp eq i32 %156, 38
br i1 %157, label %158, label %159
158: ; preds = %155
store double -6.118580e-01, double* %3
br label %280
159: ; preds = %155
%160 = load i32, i32* %2
%161 = icmp eq i32 %160, 39
br i1 %161, label %162, label %163
162: ; preds = %159
store double -6.877660e-01, double* %3
br label %279
163: ; preds = %159
%164 = load i32, i32* %2
%165 = icmp eq i32 %164, 40
br i1 %165, label %166, label %167
166: ; preds = %163
store double 0xBFE837B8D3F1843C, double* %3
br label %278
167: ; preds = %163
%168 = load i32, i32* %2
%169 = icmp eq i32 %168, 41
br i1 %169, label %170, label %171
170: ; preds = %167
store double -8.182770e-01, double* %3
br label %277
171: ; preds = %167
%172 = load i32, i32* %2
%173 = icmp eq i32 %172, 42
br i1 %173, label %174, label %175
174: ; preds = %171
store double -8.715760e-01, double* %3
br label %276
175: ; preds = %171
%176 = load i32, i32* %2
%177 = icmp eq i32 %176, 43
br i1 %177, label %178, label %179
178: ; preds = %175
store double -9.161660e-01, double* %3
br label %275
179: ; preds = %175
%180 = load i32, i32* %2
%181 = icmp eq i32 %180, 44
br i1 %181, label %182, label %183
182: ; preds = %179
store double -9.516020e-01, double* %3
br label %274
183: ; preds = %179
%184 = load i32, i32* %2
%185 = icmp eq i32 %184, 45
br i1 %185, label %186, label %187
186: ; preds = %183
store double -9.775300e-01, double* %3
br label %273
187: ; preds = %183
%188 = load i32, i32* %2
%189 = icmp eq i32 %188, 46
br i1 %189, label %190, label %191
190: ; preds = %187
store double 0xBFEFCC51116A8B8F, double* %3
br label %272
191: ; preds = %187
%192 = load i32, i32* %2
%193 = icmp eq i32 %192, 47
br i1 %193, label %194, label %195
194: ; preds = %191
store double -9.999230e-01, double* %3
br label %271
195: ; preds = %191
%196 = load i32, i32* %2
%197 = icmp eq i32 %196, 48
br i1 %197, label %198, label %199
198: ; preds = %195
store double 0xBFEFE0956C0D6F54, double* %3
br label %270
199: ; preds = %195
%200 = load i32, i32* %2
%201 = icmp eq i32 %200, 49
br i1 %201, label %202, label %203
202: ; preds = %199
store double -9.824530e-01, double* %3
br label %269
203: ; preds = %199
%204 = load i32, i32* %2
%205 = icmp eq i32 %204, 50
br i1 %205, label %206, label %207
206: ; preds = %203
store double 0xBFEEAF81626B2F23, double* %3
br label %268
207: ; preds = %203
%208 = load i32, i32* %2
%209 = icmp eq i32 %208, 51
br i1 %209, label %210, label %211
210: ; preds = %207
store double -9.258150e-01, double* %3
br label %267
211: ; preds = %207
%212 = load i32, i32* %2
%213 = icmp eq i32 %212, 52
br i1 %213, label %214, label %215
214: ; preds = %211
store double -8.834550e-01, double* %3
br label %266
215: ; preds = %211
%216 = load i32, i32* %2
%217 = icmp eq i32 %216, 53
br i1 %217, label %218, label %219
218: ; preds = %215
store double -8.322670e-01, double* %3
br label %265
219: ; preds = %215
%220 = load i32, i32* %2
%221 = icmp eq i32 %220, 54
br i1 %221, label %222, label %223
222: ; preds = %219
store double -7.727640e-01, double* %3
br label %264
223: ; preds = %219
%224 = load i32, i32* %2
%225 = icmp eq i32 %224, 55
br i1 %225, label %226, label %227
226: ; preds = %223
store double -7.055400e-01, double* %3
br label %263
227: ; preds = %223
%228 = load i32, i32* %2
%229 = icmp eq i32 %228, 56
br i1 %229, label %230, label %231
230: ; preds = %227
store double -6.312670e-01, double* %3
br label %262
231: ; preds = %227
%232 = load i32, i32* %2
%233 = icmp eq i32 %232, 57
br i1 %233, label %234, label %235
234: ; preds = %231
store double -5.506860e-01, double* %3
br label %261
235: ; preds = %231
%236 = load i32, i32* %2
%237 = icmp eq i32 %236, 58
br i1 %237, label %238, label %239
238: ; preds = %235
store double -4.646020e-01, double* %3
br label %260
239: ; preds = %235
%240 = load i32, i32* %2
%241 = icmp eq i32 %240, 59
br i1 %241, label %242, label %243
242: ; preds = %239
store double -3.738770e-01, double* %3
br label %259
243: ; preds = %239
%244 = load i32, i32* %2
%245 = icmp eq i32 %244, 60
br i1 %245, label %246, label %247
246: ; preds = %243
store double -2.794150e-01, double* %3
br label %258
247: ; preds = %243
%248 = load i32, i32* %2
%249 = icmp eq i32 %248, 61
br i1 %249, label %250, label %251
250: ; preds = %247
store double -1.821630e-01, double* %3
br label %257
251: ; preds = %247
%252 = load i32, i32* %2
%253 = icmp eq i32 %252, 62
br i1 %253, label %254, label %255
254: ; preds = %251
store double 0xBFB5455219A847B2, double* %3
br label %256
255: ; preds = %251
store double 0.000000e+00, double* %3
br label %256
256: ; preds = %255, %254
br label %257
257: ; preds = %256, %250
br label %258
258: ; preds = %257, %246
br label %259
259: ; preds = %258, %242
br label %260
260: ; preds = %259, %238
br label %261
261: ; preds = %260, %234
br label %262
262: ; preds = %261, %230
br label %263
263: ; preds = %262, %226
br label %264
264: ; preds = %263, %222
br label %265
265: ; preds = %264, %218
br label %266
266: ; preds = %265, %214
br label %267
267: ; preds = %266, %210
br label %268
268: ; preds = %267, %206
br label %269
269: ; preds = %268, %202
br label %270
270: ; preds = %269, %198
br label %271
271: ; preds = %270, %194
br label %272
272: ; preds = %271, %190
br label %273
273: ; preds = %272, %186
br label %274
274: ; preds = %273, %182
br label %275
275: ; preds = %274, %178
br label %276
276: ; preds = %275, %174
br label %277
277: ; preds = %276, %170
br label %278
278: ; preds = %277, %166
br label %279
279: ; preds = %278, %162
br label %280
280: ; preds = %279, %158
br label %281
281: ; preds = %280, %154
br label %282
282: ; preds = %281, %150
br label %283
283: ; preds = %282, %146
br label %284
284: ; preds = %283, %142
br label %285
285: ; preds = %284, %138
br label %286
286: ; preds = %285, %134
br label %287
287: ; preds = %286, %130
br label %288
288: ; preds = %287, %126
br label %289
289: ; preds = %288, %122
br label %290
290: ; preds = %289, %118
br label %291
291: ; preds = %290, %114
br label %292
292: ; preds = %291, %110
br label %293
293: ; preds = %292, %106
br label %294
294: ; preds = %293, %102
br label %295
295: ; preds = %294, %98
br label %296
296: ; preds = %295, %94
br label %297
297: ; preds = %296, %90
br label %298
298: ; preds = %297, %86
br label %299
299: ; preds = %298, %82
br label %300
300: ; preds = %299, %78
br label %301
301: ; preds = %300, %74
br label %302
302: ; preds = %301, %70
br label %303
303: ; preds = %302, %66
br label %304
304: ; preds = %303, %62
br label %305
305: ; preds = %304, %58
br label %306
306: ; preds = %305, %54
br label %307
307: ; preds = %306, %50
br label %308
308: ; preds = %307, %46
br label %309
309: ; preds = %308, %42
br label %310
310: ; preds = %309, %38
br label %311
311: ; preds = %310, %34
br label %312
312: ; preds = %311, %30
br label %313
313: ; preds = %312, %26
br label %314
314: ; preds = %313, %22
br label %315
315: ; preds = %314, %18
br label %316
316: ; preds = %315, %14
br label %317
317: ; preds = %316, %10
br label %318
318: ; preds = %317, %6
%319 = load double, double* %3
ret double %319
}

LLVM IR (-O2):
@switch.table.xSinTable = [62 x double] [double 9.983300e-02, double 1.986690e-01, double 2.955200e-01, double 3.894180e-01, double 4.794260e-01, double 5.646420e-01, double 6.442180e-01, double 7.173560e-01, double 7.833270e-01, double 8.414710e-01, double 8.912070e-01, double 9.320390e-01, double 9.635580e-01, double 9.854500e-01, double 9.974950e-01, double 0x3FEFFC829CFDD228, double 9.916650e-01, double 9.738480e-01, double 9.463000e-01, double 9.092970e-01, double 8.632090e-01, double 8.084960e-01, double 7.457050e-01, double 6.754630e-01, double 5.984720e-01, double 5.155010e-01, double 4.273800e-01, double 3.349880e-01, double 2.392490e-01, double 1.411200e-01, double 4.158100e-02, double -5.837400e-02, double -1.577460e-01, double -2.555410e-01, double -3.507830e-01, double -4.425200e-01, double -5.298360e-01, double -6.118580e-01, double -6.877660e-01, double 0xBFE837B8D3F1843C, double -8.182770e-01, double -8.715760e-01, double -9.161660e-01, double -9.516020e-01, double -9.775300e-01, double 0xBFEFCC51116A8B8F, double -9.999230e-01, double 0xBFEFE0956C0D6F54, double -9.824530e-01, double 0xBFEEAF81626B2F23, double -9.258150e-01, double -8.834550e-01, double -8.322670e-01, double -7.727640e-01, double -7.055400e-01, double -6.312670e-01, double -5.506860e-01, double -4.646020e-01, double -3.738770e-01, double -2.794150e-01, double -1.821630e-01, double 0xBFB5455219A847B2]
define double @xSinTable(i32 %0) {
%2 = add i32 %0, -1
%3 = icmp ult i32 %2, 62
br i1 %3, label %4, label %8
4: ; preds = %1
%5 = sext i32 %2 to i64
%6 = getelementptr inbounds [62 x double], [62 x double]* @switch.table.xSinTable, i64 0, i64 %5
%7 = load double, double* %6
br label %8
8: ; preds = %4, %1
%9 = phi double [ 0.000000e+00, %1 ], [ %7, %4 ]
ret double %9
}