double ySinTable(const int details) {
  double result;
  if (details == 0) {
    result = 1.000000;
  } else if (details == 1) {
    result = 0.995004;
  } else if (details == 2) {
    result = 0.980067;
  } else if (details == 3) {
    result = 0.955336;
  } else if (details == 4) {
    result = 0.921061;
  } else if (details == 5) {
    result = 0.877583;
  } else if (details == 6) {
    result = 0.825336;
  } else if (details == 7) {
    result = 0.764842;
  } else if (details == 8) {
    result = 0.696707;
  } else if (details == 9) {
    result = 0.621610;
  } else if (details == 10) {
    result = 0.540302;
  } else if (details == 11) {
    result = 0.453596;
  } else if (details == 12) {
    result = 0.362358;
  } else if (details == 13) {
    result = 0.267499;
  } else if (details == 14) {
    result = 0.169967;
  } else if (details == 15) {
    result = 0.070737;
  } else if (details == 16) {
    result = -0.029200;
  } else if (details == 17) {
    result = -0.128844;
  } else if (details == 18) {
    result = -0.227202;
  } else if (details == 19) {
    result = -0.323290;
  } else if (details == 20) {
    result = -0.416147;
  } else if (details == 21) {
    result = -0.504846;
  } else if (details == 22) {
    result = -0.588501;
  } else if (details == 23) {
    result = -0.666276;
  } else if (details == 24) {
    result = -0.737394;
  } else if (details == 25) {
    result = -0.801144;
  } else if (details == 26) {
    result = -0.856889;
  } else if (details == 27) {
    result = -0.904072;
  } else if (details == 28) {
    result = -0.942222;
  } else if (details == 29) {
    result = -0.970958;
  } else if (details == 30) {
    result = -0.989992;
  } else if (details == 31) {
    result = -0.999135;
  } else if (details == 32) {
    result = -0.998295;
  } else if (details == 33) {
    result = -0.987480;
  } else if (details == 34) {
    result = -0.966798;
  } else if (details == 35) {
    result = -0.936457;
  } else if (details == 36) {
    result = -0.896758;
  } else if (details == 37) {
    result = -0.848100;
  } else if (details == 38) {
    result = -0.790968;
  } else if (details == 39) {
    result = -0.725932;
  } else if (details == 40) {
    result = -0.653644;
  } else if (details == 41) {
    result = -0.574824;
  } else if (details == 42) {
    result = -0.490261;
  } else if (details == 43) {
    result = -0.400799;
  } else if (details == 44) {
    result = -0.307333;
  } else if (details == 45) {
    result = -0.210796;
  } else if (details == 46) {
    result = -0.112153;
  } else if (details == 47) {
    result = -0.012389;
  } else if (details == 48) {
    result = 0.087499;
  } else if (details == 49) {
    result = 0.186512;
  } else if (details == 50) {
    result = 0.283662;
  } else if (details == 51) {
    result = 0.377978;
  } else if (details == 52) {
    result = 0.468517;
  } else if (details == 53) {
    result = 0.554374;
  } else if (details == 54) {
    result = 0.634693;
  } else if (details == 55) {
    result = 0.708670;
  } else if (details == 56) {
    result = 0.775566;
  } else if (details == 57) {
    result = 0.834713;
  } else if (details == 58) {
    result = 0.885520;
  } else if (details == 59) {
    result = 0.927478;
  } else if (details == 60) {
    result = 0.960170;
  } else if (details == 61) {
    result = 0.983268;
  } else if (details == 62) {
    result = 0.996542;
  } else {
    result = 1.0;
  }
  return result;
}


x86 assembly (clang, -O0):
<ySinTable>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
jne    1123 <ySinTable+0x23>
movsd  0xee7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    192e <ySinTable+0x82e>
cmpl   $0x1,-0x4(%rbp)
jne    113f <ySinTable+0x3f>
movsd  0x10bb(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1929 <ySinTable+0x829>
cmpl   $0x2,-0x4(%rbp)
jne    115b <ySinTable+0x5b>
movsd  0x1097(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1924 <ySinTable+0x824>
cmpl   $0x3,-0x4(%rbp)
jne    1177 <ySinTable+0x77>
movsd  0x1073(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    191f <ySinTable+0x81f>
cmpl   $0x4,-0x4(%rbp)
jne    1193 <ySinTable+0x93>
movsd  0x104f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    191a <ySinTable+0x81a>
cmpl   $0x5,-0x4(%rbp)
jne    11af <ySinTable+0xaf>
movsd  0x102b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1915 <ySinTable+0x815>
cmpl   $0x6,-0x4(%rbp)
jne    11cb <ySinTable+0xcb>
movsd  0x1007(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1910 <ySinTable+0x810>
cmpl   $0x7,-0x4(%rbp)
jne    11e7 <ySinTable+0xe7>
movsd  0xfe3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    190b <ySinTable+0x80b>
cmpl   $0x8,-0x4(%rbp)
jne    1203 <ySinTable+0x103>
movsd  0xfbf(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1906 <ySinTable+0x806>
cmpl   $0x9,-0x4(%rbp)
jne    121f <ySinTable+0x11f>
movsd  0xf9b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1901 <ySinTable+0x801>
cmpl   $0xa,-0x4(%rbp)
jne    123b <ySinTable+0x13b>
movsd  0xf77(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18fc <ySinTable+0x7fc>
cmpl   $0xb,-0x4(%rbp)
jne    1257 <ySinTable+0x157>
movsd  0xf53(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18f7 <ySinTable+0x7f7>
cmpl   $0xc,-0x4(%rbp)
jne    1273 <ySinTable+0x173>
movsd  0xf2f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18f2 <ySinTable+0x7f2>
cmpl   $0xd,-0x4(%rbp)
jne    128f <ySinTable+0x18f>
movsd  0xf0b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ed <ySinTable+0x7ed>
cmpl   $0xe,-0x4(%rbp)
jne    12ab <ySinTable+0x1ab>
movsd  0xee7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18e8 <ySinTable+0x7e8>
cmpl   $0xf,-0x4(%rbp)
jne    12c7 <ySinTable+0x1c7>
movsd  0xec3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18e3 <ySinTable+0x7e3>
cmpl   $0x10,-0x4(%rbp)
jne    12e3 <ySinTable+0x1e3>
movsd  0xe9f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18de <ySinTable+0x7de>
cmpl   $0x11,-0x4(%rbp)
jne    12ff <ySinTable+0x1ff>
movsd  0xe7b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18d9 <ySinTable+0x7d9>
cmpl   $0x12,-0x4(%rbp)
jne    131b <ySinTable+0x21b>
movsd  0xe57(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18d4 <ySinTable+0x7d4>
cmpl   $0x13,-0x4(%rbp)
jne    1337 <ySinTable+0x237>
movsd  0xe33(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18cf <ySinTable+0x7cf>
cmpl   $0x14,-0x4(%rbp)
jne    1353 <ySinTable+0x253>
movsd  0xe0f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ca <ySinTable+0x7ca>
cmpl   $0x15,-0x4(%rbp)
jne    136f <ySinTable+0x26f>
movsd  0xdeb(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18c5 <ySinTable+0x7c5>
cmpl   $0x16,-0x4(%rbp)
jne    138b <ySinTable+0x28b>
movsd  0xdc7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18c0 <ySinTable+0x7c0>
cmpl   $0x17,-0x4(%rbp)
jne    13a7 <ySinTable+0x2a7>
movsd  0xda3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18bb <ySinTable+0x7bb>
cmpl   $0x18,-0x4(%rbp)
jne    13c3 <ySinTable+0x2c3>
movsd  0xd7f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18b6 <ySinTable+0x7b6>
cmpl   $0x19,-0x4(%rbp)
jne    13df <ySinTable+0x2df>
movsd  0xd5b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18b1 <ySinTable+0x7b1>
cmpl   $0x1a,-0x4(%rbp)
jne    13fb <ySinTable+0x2fb>
movsd  0xd37(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18ac <ySinTable+0x7ac>
cmpl   $0x1b,-0x4(%rbp)
jne    1417 <ySinTable+0x317>
movsd  0xd13(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18a7 <ySinTable+0x7a7>
cmpl   $0x1c,-0x4(%rbp)
jne    1433 <ySinTable+0x333>
movsd  0xcef(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    18a2 <ySinTable+0x7a2>
cmpl   $0x1d,-0x4(%rbp)
jne    144f <ySinTable+0x34f>
movsd  0xccb(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    189d <ySinTable+0x79d>
cmpl   $0x1e,-0x4(%rbp)
jne    146b <ySinTable+0x36b>
movsd  0xca7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1898 <ySinTable+0x798>
cmpl   $0x1f,-0x4(%rbp)
jne    1487 <ySinTable+0x387>
movsd  0xc83(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1893 <ySinTable+0x793>
cmpl   $0x20,-0x4(%rbp)
jne    14a3 <ySinTable+0x3a3>
movsd  0xc5f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    188e <ySinTable+0x78e>
cmpl   $0x21,-0x4(%rbp)
jne    14bf <ySinTable+0x3bf>
movsd  0xc3b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1889 <ySinTable+0x789>
cmpl   $0x22,-0x4(%rbp)
jne    14db <ySinTable+0x3db>
movsd  0xc17(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1884 <ySinTable+0x784>
cmpl   $0x23,-0x4(%rbp)
jne    14f7 <ySinTable+0x3f7>
movsd  0xbf3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    187f <ySinTable+0x77f>
cmpl   $0x24,-0x4(%rbp)
jne    1513 <ySinTable+0x413>
movsd  0xbcf(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    187a <ySinTable+0x77a>
cmpl   $0x25,-0x4(%rbp)
jne    152f <ySinTable+0x42f>
movsd  0xbab(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1875 <ySinTable+0x775>
cmpl   $0x26,-0x4(%rbp)
jne    154b <ySinTable+0x44b>
movsd  0xb87(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1870 <ySinTable+0x770>
cmpl   $0x27,-0x4(%rbp)
jne    1567 <ySinTable+0x467>
movsd  0xb63(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    186b <ySinTable+0x76b>
cmpl   $0x28,-0x4(%rbp)
jne    1583 <ySinTable+0x483>
movsd  0xb3f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1866 <ySinTable+0x766>
cmpl   $0x29,-0x4(%rbp)
jne    159f <ySinTable+0x49f>
movsd  0xb1b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1861 <ySinTable+0x761>
cmpl   $0x2a,-0x4(%rbp)
jne    15bb <ySinTable+0x4bb>
movsd  0xaf7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    185c <ySinTable+0x75c>
cmpl   $0x2b,-0x4(%rbp)
jne    15d7 <ySinTable+0x4d7>
movsd  0xad3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1857 <ySinTable+0x757>
cmpl   $0x2c,-0x4(%rbp)
jne    15f3 <ySinTable+0x4f3>
movsd  0xaaf(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1852 <ySinTable+0x752>
cmpl   $0x2d,-0x4(%rbp)
jne    160f <ySinTable+0x50f>
movsd  0xa8b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    184d <ySinTable+0x74d>
cmpl   $0x2e,-0x4(%rbp)
jne    162b <ySinTable+0x52b>
movsd  0xa67(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1848 <ySinTable+0x748>
cmpl   $0x2f,-0x4(%rbp)
jne    1647 <ySinTable+0x547>
movsd  0xa43(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1843 <ySinTable+0x743>
cmpl   $0x30,-0x4(%rbp)
jne    1663 <ySinTable+0x563>
movsd  0xa1f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    183e <ySinTable+0x73e>
cmpl   $0x31,-0x4(%rbp)
jne    167f <ySinTable+0x57f>
movsd  0x9fb(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1839 <ySinTable+0x739>
cmpl   $0x32,-0x4(%rbp)
jne    169b <ySinTable+0x59b>
movsd  0x9d7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1834 <ySinTable+0x734>
cmpl   $0x33,-0x4(%rbp)
jne    16b7 <ySinTable+0x5b7>
movsd  0x9b3(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    182f <ySinTable+0x72f>
cmpl   $0x34,-0x4(%rbp)
jne    16d3 <ySinTable+0x5d3>
movsd  0x98f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    182a <ySinTable+0x72a>
cmpl   $0x35,-0x4(%rbp)
jne    16ef <ySinTable+0x5ef>
movsd  0x96b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1825 <ySinTable+0x725>
cmpl   $0x36,-0x4(%rbp)
jne    170b <ySinTable+0x60b>
movsd  0x947(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1820 <ySinTable+0x720>
cmpl   $0x37,-0x4(%rbp)
jne    1727 <ySinTable+0x627>
movsd  0x923(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    181b <ySinTable+0x71b>
cmpl   $0x38,-0x4(%rbp)
jne    1743 <ySinTable+0x643>
movsd  0x8ff(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1816 <ySinTable+0x716>
cmpl   $0x39,-0x4(%rbp)
jne    175f <ySinTable+0x65f>
movsd  0x8db(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1811 <ySinTable+0x711>
cmpl   $0x3a,-0x4(%rbp)
jne    177b <ySinTable+0x67b>
movsd  0x8b7(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    180c <ySinTable+0x70c>
cmpl   $0x3b,-0x4(%rbp)
jne    1797 <ySinTable+0x697>
movsd  0x893(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1807 <ySinTable+0x707>
cmpl   $0x3c,-0x4(%rbp)
jne    17b3 <ySinTable+0x6b3>
movsd  0x86f(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    1802 <ySinTable+0x702>
cmpl   $0x3d,-0x4(%rbp)
jne    17cf <ySinTable+0x6cf>
movsd  0x84b(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17fd <ySinTable+0x6fd>
cmpl   $0x3e,-0x4(%rbp)
jne    17eb <ySinTable+0x6eb>
movsd  0x827(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17f8 <ySinTable+0x6f8>
movsd  0x80d(%rip),%xmm0
movsd  %xmm0,-0x10(%rbp)
jmp    17fd <ySinTable+0x6fd>
jmp    1802 <ySinTable+0x702>
jmp    1807 <ySinTable+0x707>
jmp    180c <ySinTable+0x70c>
jmp    1811 <ySinTable+0x711>
jmp    1816 <ySinTable+0x716>
jmp    181b <ySinTable+0x71b>
jmp    1820 <ySinTable+0x720>
jmp    1825 <ySinTable+0x725>
jmp    182a <ySinTable+0x72a>
jmp    182f <ySinTable+0x72f>
jmp    1834 <ySinTable+0x734>
jmp    1839 <ySinTable+0x739>
jmp    183e <ySinTable+0x73e>
jmp    1843 <ySinTable+0x743>
jmp    1848 <ySinTable+0x748>
jmp    184d <ySinTable+0x74d>
jmp    1852 <ySinTable+0x752>
jmp    1857 <ySinTable+0x757>
jmp    185c <ySinTable+0x75c>
jmp    1861 <ySinTable+0x761>
jmp    1866 <ySinTable+0x766>
jmp    186b <ySinTable+0x76b>
jmp    1870 <ySinTable+0x770>
jmp    1875 <ySinTable+0x775>
jmp    187a <ySinTable+0x77a>
jmp    187f <ySinTable+0x77f>
jmp    1884 <ySinTable+0x784>
jmp    1889 <ySinTable+0x789>
jmp    188e <ySinTable+0x78e>
jmp    1893 <ySinTable+0x793>
jmp    1898 <ySinTable+0x798>
jmp    189d <ySinTable+0x79d>
jmp    18a2 <ySinTable+0x7a2>
jmp    18a7 <ySinTable+0x7a7>
jmp    18ac <ySinTable+0x7ac>
jmp    18b1 <ySinTable+0x7b1>
jmp    18b6 <ySinTable+0x7b6>
jmp    18bb <ySinTable+0x7bb>
jmp    18c0 <ySinTable+0x7c0>
jmp    18c5 <ySinTable+0x7c5>
jmp    18ca <ySinTable+0x7ca>
jmp    18cf <ySinTable+0x7cf>
jmp    18d4 <ySinTable+0x7d4>
jmp    18d9 <ySinTable+0x7d9>
jmp    18de <ySinTable+0x7de>
jmp    18e3 <ySinTable+0x7e3>
jmp    18e8 <ySinTable+0x7e8>
jmp    18ed <ySinTable+0x7ed>
jmp    18f2 <ySinTable+0x7f2>
jmp    18f7 <ySinTable+0x7f7>
jmp    18fc <ySinTable+0x7fc>
jmp    1901 <ySinTable+0x801>
jmp    1906 <ySinTable+0x806>
jmp    190b <ySinTable+0x80b>
jmp    1910 <ySinTable+0x810>
jmp    1915 <ySinTable+0x815>
jmp    191a <ySinTable+0x81a>
jmp    191f <ySinTable+0x81f>
jmp    1924 <ySinTable+0x824>
jmp    1929 <ySinTable+0x829>
jmp    192e <ySinTable+0x82e>
movsd  -0x10(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<ySinTable>:
add    $0xffffffff,%edi
cmp    $0x3d,%edi
ja     1118 <ySinTable+0x18>
movslq %edi,%rax
lea    0xef6(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm0
ret
movsd  0xee0(%rip),%xmm0
ret

LLVM IR (-O0):
define double @ySinTable(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 1.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 0x3FEFD712A0EC7432, 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 9.800670e-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 0x3FEE921CCD962068, 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 9.210610e-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 8.775830e-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 8.253360e-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 7.648420e-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 6.967070e-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 6.216100e-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 5.403020e-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 4.535960e-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 3.623580e-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 2.674990e-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 1.699670e-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 7.073700e-02, 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 -2.920000e-02, 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 -1.288440e-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 -2.272020e-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 -3.232900e-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 -4.161470e-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 -5.048460e-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 -5.885010e-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 -6.662760e-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 -7.373940e-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 -8.011440e-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 -8.568890e-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 0xBFECEE2867275686, 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 -9.422220e-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 0xBFEF121682F94424, 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 0xBFEFAE03B3E9A6F8, 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 0xBFEFF8E9F6A93F29, 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 -9.982950e-01, 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 -9.874800e-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 -9.667980e-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 -9.364570e-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 -8.967580e-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 -8.481000e-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 -7.909680e-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 -7.259320e-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 -6.536440e-01, 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 -5.748240e-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 -4.902610e-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 -4.007990e-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 -3.073330e-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 -2.107960e-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 -1.121530e-01, 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 -1.238900e-02, 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 0x3FB666559F6EC5B0, 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 1.865120e-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 2.836620e-01, 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 3.779780e-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 4.685170e-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 5.543740e-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 6.346930e-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.086700e-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 0x3FE8D16FC9BC7714, 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 8.347130e-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 8.855200e-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 9.274780e-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 0x3FEEB9B66F9335D2, 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 9.832680e-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 9.965420e-01, double* %3
br label %256
255: ; preds = %251
store double 1.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.ySinTable = [62 x double] [double 0x3FEFD712A0EC7432, double 9.800670e-01, double 0x3FEE921CCD962068, double 9.210610e-01, double 8.775830e-01, double 8.253360e-01, double 7.648420e-01, double 6.967070e-01, double 6.216100e-01, double 5.403020e-01, double 4.535960e-01, double 3.623580e-01, double 2.674990e-01, double 1.699670e-01, double 7.073700e-02, double -2.920000e-02, double -1.288440e-01, double -2.272020e-01, double -3.232900e-01, double -4.161470e-01, double -5.048460e-01, double -5.885010e-01, double -6.662760e-01, double -7.373940e-01, double -8.011440e-01, double -8.568890e-01, double 0xBFECEE2867275686, double -9.422220e-01, double 0xBFEF121682F94424, double 0xBFEFAE03B3E9A6F8, double 0xBFEFF8E9F6A93F29, double -9.982950e-01, double -9.874800e-01, double -9.667980e-01, double -9.364570e-01, double -8.967580e-01, double -8.481000e-01, double -7.909680e-01, double -7.259320e-01, double -6.536440e-01, double -5.748240e-01, double -4.902610e-01, double -4.007990e-01, double -3.073330e-01, double -2.107960e-01, double -1.121530e-01, double -1.238900e-02, double 0x3FB666559F6EC5B0, double 1.865120e-01, double 2.836620e-01, double 3.779780e-01, double 4.685170e-01, double 5.543740e-01, double 6.346930e-01, double 7.086700e-01, double 0x3FE8D16FC9BC7714, double 8.347130e-01, double 8.855200e-01, double 9.274780e-01, double 0x3FEEB9B66F9335D2, double 9.832680e-01, double 9.965420e-01]
define double @ySinTable(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.ySinTable, i64 0, i64 %5
%7 = load double, double* %6
br label %8
8: ; preds = %4, %1
%9 = phi double [ 1.000000e+00, %1 ], [ %7, %4 ]
ret double %9
}