int delta_t(int year, int month, double *delta_t, double *correction) {
  double u, y;
  if (year < -1999 || year > 3000 || month < 1 || month > 12)
    return -2;
  y = year + (month - 0.5) / 12;
  if (year < -500) {
    u = (year - 1820) / 100;
    *delta_t = -20 + 32 * u * u;
  } else if (year >= -500 && year < 500) {
    u = y / 100;
    *delta_t =
        10583.6 +
        (-1014.41 +
         (33.78311 + (-5.952053 +
                      (-0.1798452 + (0.022174192 + 0.0090316521 * u) * u) * u) *
                         u) *
             u) *
            u;
  } else if (year >= 500 && year < 1600) {
    u = (y - 1000) / 100;
    *delta_t =
        1574.2 +
        (-556.01 + (71.23472 +
                    (0.319781 +
                     (-0.8503463 + (-0.005050998 + 0.0083572073 * u) * u) * u) *
                        u) *
                       u) *
            u;
  } else if (year >= 1600 && year < 1700) {
    u = y - 1600;
    *delta_t = 120 + (-0.9808 + (-0.01532 + u / 7129.0) * u) * u;
  } else if (year >= 1700 && year < 1800) {
    u = y - 1700;
    *delta_t =
        8.83 +
        (0.1603 + (-0.0059285 + (0.00013336 - u / 1174000.0) * u) * u) * u;
  } else if (year >= 1800 && year < 1860) {
    u = y - 1800;
    *delta_t =
        13.72 +
        (-0.332447 +
         (0.0068612 +
          (0.0041116 +
           (-0.00037436 +
            (0.0000121272 + (-0.0000001699 + 0.000000000875 * u) * u) * u) *
               u) *
              u) *
             u) *
            u;
  } else if (year >= 1860 && year < 1900) {
    u = y - 1860;
    *delta_t =
        7.62 +
        (0.5737 +
         (-0.251754 + (0.01680668 + (-0.0004473624 + u / 233174.0) * u) * u) *
             u) *
            u;
  } else if (year >= 1900 && year < 1920) {
    u = y - 1900;
    *delta_t =
        -2.79 +
        (1.494119 + (-0.0598939 + (0.0061966 - 0.000197 * u) * u) * u) * u;
  } else if (year >= 1920 && year < 1941) {
    u = y - 1920;
    *delta_t = 21.20 + (0.84493 + (-0.076100 + 0.0020936 * u) * u) * u;
  } else if (year >= 1941 && year < 1961) {
    u = y - 1950;
    *delta_t = 29.07 + (0.407 + (-1.0 / 233.0 + u / 2547.0) * u) * u;
  } else if (year >= 1961 && year < 1986) {
    u = y - 1975;
    *delta_t = 45.45 + (1.067 + (-1.0 / 260.0 - u / 718.0) * u) * u;
  } else if (year >= 1986 && year < 2005) {
    u = y - 2000;
    *delta_t =
        63.86 +
        (0.3345 +
         (-0.060374 + (0.0017275 + (0.000651814 + 0.00002373599 * u) * u) * u) *
             u) *
            u;
  } else if (year >= 2005 && year < 2050) {
    u = y - 2000;
    *delta_t = 62.92 + (0.32217 + 0.005589 * u) * u;
  } else if (year >= 2050 && year < 2150) {
    u = (y - 1820) / 100;
    *delta_t = -20 + 32 * u * u - 0.5628 * (2150 - y);
  } else {
    u = (year - 1820) / 100;
    *delta_t = -20 + 32 * u * u;
  }
  if (year < 1955 || year > 2005)
    *correction = -0.000012932 * (y - 1955) * (y - 1955);
  else
    *correction = 0;
  return 0;
}


x86 assembly (clang, -O0):
<delta_t>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
cmpl   $0xfffff831,-0x8(%rbp)
jl     1140 <delta_t+0x40>
cmpl   $0xbb8,-0x8(%rbp)
jg     1140 <delta_t+0x40>
cmpl   $0x1,-0xc(%rbp)
jl     1140 <delta_t+0x40>
cmpl   $0xc,-0xc(%rbp)
jle    114c <delta_t+0x4c>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1aba <delta_t+0x9ba>
cvtsi2sdl -0x8(%rbp),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
movsd  0xeaa(%rip),%xmm2
subsd  %xmm2,%xmm1
movsd  0xe96(%rip),%xmm2
divsd  %xmm2,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
cmpl   $0xfffffe0c,-0x8(%rbp)
jge    11cc <delta_t+0xcc>
mov    -0x8(%rbp),%eax
sub    $0x71c,%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0xe73(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe55(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a4f <delta_t+0x94f>
cmpl   $0xfffffe0c,-0x8(%rbp)
jl     128f <delta_t+0x18f>
cmpl   $0x1f4,-0x8(%rbp)
jge    128f <delta_t+0x18f>
movsd  -0x30(%rbp),%xmm0
movsd  0xe3d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x106f(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x106b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1046(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x1029(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x100c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xfef(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xfd2(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a4a <delta_t+0x94a>
cmpl   $0x1f4,-0x8(%rbp)
jl     135e <delta_t+0x25e>
cmpl   $0x640,-0x8(%rbp)
jge    135e <delta_t+0x25e>
movsd  -0x30(%rbp),%xmm0
movsd  0xf92(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0xd6e(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xf60(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf5c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf37(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf1a(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xefd(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xee0(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xec3(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a45 <delta_t+0x945>
cmpl   $0x640,-0x8(%rbp)
jl     13e2 <delta_t+0x2e2>
cmpl   $0x6a4,-0x8(%rbp)
jge    13e2 <delta_t+0x2e2>
movsd  -0x30(%rbp),%xmm0
movsd  0xe83(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  0xe65(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xe51(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe34(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xe17(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a40 <delta_t+0x940>
cmpl   $0x6a4,-0x8(%rbp)
jl     147b <delta_t+0x37b>
cmpl   $0x708,-0x8(%rbp)
jge    147b <delta_t+0x37b>
movsd  -0x30(%rbp),%xmm0
movsd  0xdd7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  0xdb9(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xda5(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd88(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd6b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xd4e(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a3b <delta_t+0x93b>
cmpl   $0x708,-0x8(%rbp)
jl     1553 <delta_t+0x453>
cmpl   $0x744,-0x8(%rbp)
jge    1553 <delta_t+0x453>
movsd  -0x30(%rbp),%xmm0
movsd  0xd0e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xce8(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xce4(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xcbf(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xca2(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc85(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc68(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc4b(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xc2e(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a36 <delta_t+0x936>
cmpl   $0x744,-0x8(%rbp)
jl     1601 <delta_t+0x501>
cmpl   $0x76c,-0x8(%rbp)
jge    1601 <delta_t+0x501>
movsd  -0x30(%rbp),%xmm0
movsd  0xbee(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  0xbd0(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0xbbc(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb9f(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb82(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb65(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xb48(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a31 <delta_t+0x931>
cmpl   $0x76c,-0x8(%rbp)
jl     169a <delta_t+0x59a>
cmpl   $0x780,-0x8(%rbp)
jge    169a <delta_t+0x59a>
movsd  -0x30(%rbp),%xmm0
movsd  0xb08(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xae2(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xade(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xab9(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa9c(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa7f(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a2c <delta_t+0x92c>
cmpl   $0x780,-0x8(%rbp)
jl     171e <delta_t+0x61e>
cmpl   $0x795,-0x8(%rbp)
jge    171e <delta_t+0x61e>
movsd  -0x30(%rbp),%xmm0
movsd  0xa3f(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0xa19(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xa15(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9f0(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x9d3(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a27 <delta_t+0x927>
cmpl   $0x795,-0x8(%rbp)
jl     17a2 <delta_t+0x6a2>
cmpl   $0x7a9,-0x8(%rbp)
jge    17a2 <delta_t+0x6a2>
movsd  -0x30(%rbp),%xmm0
movsd  0x993(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  0x975(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0x961(%rip),%xmm0
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x944(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x927(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a22 <delta_t+0x922>
cmpl   $0x7a9,-0x8(%rbp)
jl     1826 <delta_t+0x726>
cmpl   $0x7c2,-0x8(%rbp)
jge    1826 <delta_t+0x726>
movsd  -0x30(%rbp),%xmm0
movsd  0x8e7(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm1
movsd  0x8c9(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0x8b5(%rip),%xmm0
subsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x898(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x87b(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a1d <delta_t+0x91d>
cmpl   $0x7c2,-0x8(%rbp)
jl     18d4 <delta_t+0x7d4>
cmpl   $0x7d5,-0x8(%rbp)
jge    18d4 <delta_t+0x7d4>
movsd  -0x30(%rbp),%xmm0
movsd  0x80b(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x81d(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x819(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x7f4(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x7d7(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x7ba(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x79d(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a18 <delta_t+0x918>
cmpl   $0x7d5,-0x8(%rbp)
jl     1943 <delta_t+0x843>
cmpl   $0x802,-0x8(%rbp)
jge    1943 <delta_t+0x843>
movsd  -0x30(%rbp),%xmm0
movsd  0x75d(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  0x737(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x733(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x70e(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a13 <delta_t+0x913>
cmpl   $0x802,-0x8(%rbp)
jl     19cb <delta_t+0x8cb>
cmpl   $0x866,-0x8(%rbp)
jge    19cb <delta_t+0x8cb>
movsd  -0x30(%rbp),%xmm0
movsd  0x6ce(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  0x6ba(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0x691(%rip),%xmm1
mulsd  -0x28(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
mulsd  %xmm0,%xmm1
movsd  0x673(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0x67f(%rip),%xmm0
subsd  -0x30(%rbp),%xmm0
movsd  0x66a(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a0e <delta_t+0x90e>
mov    -0x8(%rbp),%eax
sub    $0x71c,%eax
mov    $0x64,%ecx
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  0x62c(%rip),%xmm0
mulsd  -0x28(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x60e(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1a13 <delta_t+0x913>
jmp    1a18 <delta_t+0x918>
jmp    1a1d <delta_t+0x91d>
jmp    1a22 <delta_t+0x922>
jmp    1a27 <delta_t+0x927>
jmp    1a2c <delta_t+0x92c>
jmp    1a31 <delta_t+0x931>
jmp    1a36 <delta_t+0x936>
jmp    1a3b <delta_t+0x93b>
jmp    1a40 <delta_t+0x940>
jmp    1a45 <delta_t+0x945>
jmp    1a4a <delta_t+0x94a>
jmp    1a4f <delta_t+0x94f>
cmpl   $0x7a3,-0x8(%rbp)
jl     1a69 <delta_t+0x969>
cmpl   $0x7d5,-0x8(%rbp)
jle    1aa8 <delta_t+0x9a8>
movsd  -0x30(%rbp),%xmm1
movsd  0x812(%rip),%xmm0
subsd  %xmm0,%xmm1
movsd  0x80e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
movsd  0x7f5(%rip),%xmm2
subsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
jmp    1ab3 <delta_t+0x9b3>
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<delta_t>:
lea    -0xbb9(%rdi),%r8d
mov    $0xfffffffe,%eax
cmp    $0xffffec78,%r8d
jb     15f8 <delta_t+0x4f8>
lea    -0xd(%rsi),%r8d
cmp    $0xfffffff4,%r8d
jb     15f8 <delta_t+0x4f8>
cvtsi2sd %edi,%xmm1
cvtsi2sd %esi,%xmm0
addsd  0xec9(%rip),%xmm0
divsd  0xec9(%rip),%xmm0
addsd  %xmm1,%xmm0
cmp    $0xfffffe0b,%edi
jg     1184 <delta_t+0x84>
mov    $0x71c,%eax
sub    %edi,%eax
movzwl %ax,%eax
shr    $0x2,%eax
imul   $0x147b,%eax,%eax
shr    $0x11,%eax
neg    %eax
cvtsi2sd %eax,%xmm2
movsd  0xea1(%rip),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe99(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x1f3,%edi
jg     11ed <delta_t+0xed>
movapd %xmm0,%xmm2
divsd  0xe90(%rip),%xmm2
movsd  0x10b0(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x10ac(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x10a8(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x10a4(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x10a0(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x109c(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x1098(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x63f,%edi
ja     125e <delta_t+0x15e>
movsd  0x1013(%rip),%xmm2
addsd  %xmm0,%xmm2
divsd  0xe1f(%rip),%xmm2
movsd  0x1007(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0x1003(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xfff(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xffb(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xff7(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xff3(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xfef(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x6a3,%edi
ja     12a3 <delta_t+0x1a3>
movsd  0xf7a(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
divsd  0xf72(%rip),%xmm1
addsd  0xf72(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xf6e(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xf6a(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x707,%edi
ja     12f4 <delta_t+0x1f4>
movsd  0xf05(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
divsd  0xefd(%rip),%xmm1
addsd  0xefd(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xef9(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xef5(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xef1(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x743,%edi
ja     1369 <delta_t+0x269>
movsd  0xe6c(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0xe68(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe64(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe60(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe5c(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe58(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe54(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe50(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe4c(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x76b,%edi
ja     13c6 <delta_t+0x2c6>
movsd  0xdbf(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
divsd  0xdb7(%rip),%xmm1
addsd  0xdb7(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xdb3(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xdaf(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xdab(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xda7(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x77f,%edi
ja     1417 <delta_t+0x317>
movsd  0xd32(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0xd2e(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xd2a(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xd26(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xd22(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xd1e(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x794,%edi
ja     145c <delta_t+0x35c>
movsd  0xcb9(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0xcb5(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xcb1(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xcad(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xca9(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x7a8,%edi
ja     14a1 <delta_t+0x3a1>
movsd  0xc4c(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
divsd  0xc44(%rip),%xmm1
addsd  0xc44(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xc40(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xc3c(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x7c1,%edi
ja     14e6 <delta_t+0x3e6>
movsd  0xbdf(%rip),%xmm2
addsd  %xmm0,%xmm2
movapd %xmm2,%xmm1
divsd  0xbd7(%rip),%xmm1
addsd  0xbd7(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xbd3(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xbcf(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x7d4,%edi
ja     1543 <delta_t+0x443>
movsd  0xb4a(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0xb5e(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xb5a(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xb56(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xb52(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xb4e(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xb4a(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x801,%edi
ja     1579 <delta_t+0x479>
movsd  0xaed(%rip),%xmm2
addsd  %xmm0,%xmm2
movsd  0xae9(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xae5(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xae1(%rip),%xmm1
jmp    15c5 <delta_t+0x4c5>
cmp    $0x865,%edi
ja     15f9 <delta_t+0x4f9>
movsd  0xa97(%rip),%xmm1
addsd  %xmm0,%xmm1
divsd  0xa93(%rip),%xmm1
movsd  0xa73(%rip),%xmm2
mulsd  %xmm1,%xmm2
mulsd  %xmm1,%xmm2
addsd  0xa6b(%rip),%xmm2
movsd  0xa7b(%rip),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xa77(%rip),%xmm1
addsd  %xmm2,%xmm1
movsd  %xmm1,(%rdx)
add    $0xfffff82a,%edi
cmp    $0xffffffcd,%edi
jb     15da <delta_t+0x4da>
xorpd  %xmm1,%xmm1
jmp    15f2 <delta_t+0x4f2>
addsd  0xca6(%rip),%xmm0
movsd  0xca6(%rip),%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,(%rcx)
xor    %eax,%eax
ret
lea    -0x71c(%rdi),%eax
movzwl %ax,%eax
shr    $0x2,%eax
imul   $0x147b,%eax,%eax
shr    $0x11,%eax
jmp    1163 <delta_t+0x63>

LLVM IR (-O0):
define i32 @delta_t(i32 %0, i32 %1, double* %2, double* %3) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca double*
%9 = alloca double*
%10 = alloca double
%11 = alloca double
store i32 %0, i32* %6
store i32 %1, i32* %7
store double* %2, double** %8
store double* %3, double** %9
%12 = load i32, i32* %6
%13 = icmp slt i32 %12, -1999
br i1 %13, label %23, label %14
14: ; preds = %4
%15 = load i32, i32* %6
%16 = icmp sgt i32 %15, 3000
br i1 %16, label %23, label %17
17: ; preds = %14
%18 = load i32, i32* %7
%19 = icmp slt i32 %18, 1
br i1 %19, label %23, label %20
20: ; preds = %17
%21 = load i32, i32* %7
%22 = icmp sgt i32 %21, 12
br i1 %22, label %23, label %24
23: ; preds = %20, %17, %14, %4
store i32 -2, i32* %5
br label %330
24: ; preds = %20
%25 = load i32, i32* %6
%26 = sitofp i32 %25 to double
%27 = load i32, i32* %7
%28 = sitofp i32 %27 to double
%29 = fsub double %28, 5.000000e-01
%30 = fdiv double %29, 1.200000e+01
%31 = fadd double %26, %30
store double %31, double* %11
%32 = load i32, i32* %6
%33 = icmp slt i32 %32, -500
br i1 %33, label %34, label %44
34: ; preds = %24
%35 = load i32, i32* %6
%36 = sub nsw i32 %35, 1820
%37 = sdiv i32 %36, 100
%38 = sitofp i32 %37 to double
store double %38, double* %10
%39 = load double, double* %10
%40 = fmul double 3.200000e+01, %39
%41 = load double, double* %10
%42 = call double @llvm.fmuladd.f64(double %40, double %41, double -2.000000e+01)
%43 = load double*, double** %8
store double %42, double* %43
br label %313
44: ; preds = %24
%45 = load i32, i32* %6
%46 = icmp sge i32 %45, -500
br i1 %46, label %47, label %66
47: ; preds = %44
%48 = load i32, i32* %6
%49 = icmp slt i32 %48, 500
br i1 %49, label %50, label %66
50: ; preds = %47
%51 = load double, double* %11
%52 = fdiv double %51, 1.000000e+02
store double %52, double* %10
%53 = load double, double* %10
%54 = call double @llvm.fmuladd.f64(double 0x3F827F2FD32FD1FB, double %53, double 0x3F96B4D4D5D22675)
%55 = load double, double* %10
%56 = call double @llvm.fmuladd.f64(double %54, double %55, double 0xBFC7052AE22BD9A3)
%57 = load double, double* %10
%58 = call double @llvm.fmuladd.f64(double %56, double %57, double 0xC017CEE6FB4C3C19)
%59 = load double, double* %10
%60 = call double @llvm.fmuladd.f64(double %58, double %59, double 0x4040E43CF2CF95D5)
%61 = load double, double* %10
%62 = call double @llvm.fmuladd.f64(double %60, double %61, double -1.014410e+03)
%63 = load double, double* %10
%64 = call double @llvm.fmuladd.f64(double %62, double %63, double 1.058360e+04)
%65 = load double*, double** %8
store double %64, double* %65
br label %312
66: ; preds = %47, %44
%67 = load i32, i32* %6
%68 = icmp sge i32 %67, 500
br i1 %68, label %69, label %89
69: ; preds = %66
%70 = load i32, i32* %6
%71 = icmp slt i32 %70, 1600
br i1 %71, label %72, label %89
72: ; preds = %69
%73 = load double, double* %11
%74 = fsub double %73, 1.000000e+03
%75 = fdiv double %74, 1.000000e+02
store double %75, double* %10
%76 = load double, double* %10
%77 = call double @llvm.fmuladd.f64(double 0x3F811D956050ACFF, double %76, double 0xBF74B05AF38DF91F)
%78 = load double, double* %10
%79 = call double @llvm.fmuladd.f64(double %77, double %78, double 0xBFEB36097198C990)
%80 = load double, double* %10
%81 = call double @llvm.fmuladd.f64(double %79, double %80, double 3.197810e-01)
%82 = load double, double* %10
%83 = call double @llvm.fmuladd.f64(double %81, double %82, double 0x4051CF05A708EDE5)
%84 = load double, double* %10
%85 = call double @llvm.fmuladd.f64(double %83, double %84, double -5.560100e+02)
%86 = load double, double* %10
%87 = call double @llvm.fmuladd.f64(double %85, double %86, double 1.574200e+03)
%88 = load double*, double** %8
store double %87, double* %88
br label %311
89: ; preds = %69, %66
%90 = load i32, i32* %6
%91 = icmp sge i32 %90, 1600
br i1 %91, label %92, label %106
92: ; preds = %89
%93 = load i32, i32* %6
%94 = icmp slt i32 %93, 1700
br i1 %94, label %95, label %106
95: ; preds = %92
%96 = load double, double* %11
%97 = fsub double %96, 1.600000e+03
store double %97, double* %10
%98 = load double, double* %10
%99 = fdiv double %98, 7.129000e+03
%100 = fadd double -1.532000e-02, %99
%101 = load double, double* %10
%102 = call double @llvm.fmuladd.f64(double %100, double %101, double -9.808000e-01)
%103 = load double, double* %10
%104 = call double @llvm.fmuladd.f64(double %102, double %103, double 1.200000e+02)
%105 = load double*, double** %8
store double %104, double* %105
br label %310
106: ; preds = %92, %89
%107 = load i32, i32* %6
%108 = icmp sge i32 %107, 1700
br i1 %108, label %109, label %125
109: ; preds = %106
%110 = load i32, i32* %6
%111 = icmp slt i32 %110, 1800
br i1 %111, label %112, label %125
112: ; preds = %109
%113 = load double, double* %11
%114 = fsub double %113, 1.700000e+03
store double %114, double* %10
%115 = load double, double* %10
%116 = fdiv double %115, 1.174000e+06
%117 = fsub double 1.333600e-04, %116
%118 = load double, double* %10
%119 = call double @llvm.fmuladd.f64(double %117, double %118, double -5.928500e-03)
%120 = load double, double* %10
%121 = call double @llvm.fmuladd.f64(double %119, double %120, double 1.603000e-01)
%122 = load double, double* %10
%123 = call double @llvm.fmuladd.f64(double %121, double %122, double 8.830000e+00)
%124 = load double*, double** %8
store double %123, double* %124
br label %309
125: ; preds = %109, %106
%126 = load i32, i32* %6
%127 = icmp sge i32 %126, 1800
br i1 %127, label %128, label %149
128: ; preds = %125
%129 = load i32, i32* %6
%130 = icmp slt i32 %129, 1860
br i1 %130, label %131, label %149
131: ; preds = %128
%132 = load double, double* %11
%133 = fsub double %132, 1.800000e+03
store double %133, double* %10
%134 = load double, double* %10
%135 = call double @llvm.fmuladd.f64(double 8.750000e-10, double %134, double -1.699000e-07)
%136 = load double, double* %10
%137 = call double @llvm.fmuladd.f64(double %135, double %136, double 1.212720e-05)
%138 = load double, double* %10
%139 = call double @llvm.fmuladd.f64(double %137, double %138, double -3.743600e-04)
%140 = load double, double* %10
%141 = call double @llvm.fmuladd.f64(double %139, double %140, double 4.111600e-03)
%142 = load double, double* %10
%143 = call double @llvm.fmuladd.f64(double %141, double %142, double 6.861200e-03)
%144 = load double, double* %10
%145 = call double @llvm.fmuladd.f64(double %143, double %144, double -3.324470e-01)
%146 = load double, double* %10
%147 = call double @llvm.fmuladd.f64(double %145, double %146, double 1.372000e+01)
%148 = load double*, double** %8
store double %147, double* %148
br label %308
149: ; preds = %128, %125
%150 = load i32, i32* %6
%151 = icmp sge i32 %150, 1860
br i1 %151, label %152, label %170
152: ; preds = %149
%153 = load i32, i32* %6
%154 = icmp slt i32 %153, 1900
br i1 %154, label %155, label %170
155: ; preds = %152
%156 = load double, double* %11
%157 = fsub double %156, 1.860000e+03
store double %157, double* %10
%158 = load double, double* %10
%159 = fdiv double %158, 2.331740e+05
%160 = fadd double 0xBF3D517EE0A13922, %159
%161 = load double, double* %10
%162 = call double @llvm.fmuladd.f64(double %160, double %161, double 0x3F9135C533D13DCB)
%163 = load double, double* %10
%164 = call double @llvm.fmuladd.f64(double %162, double %163, double -2.517540e-01)
%165 = load double, double* %10
%166 = call double @llvm.fmuladd.f64(double %164, double %165, double 5.737000e-01)
%167 = load double, double* %10
%168 = call double @llvm.fmuladd.f64(double %166, double %167, double 7.620000e+00)
%169 = load double*, double** %8
store double %168, double* %169
br label %307
170: ; preds = %152, %149
%171 = load i32, i32* %6
%172 = icmp sge i32 %171, 1900
br i1 %172, label %173, label %188
173: ; preds = %170
%174 = load i32, i32* %6
%175 = icmp slt i32 %174, 1920
br i1 %175, label %176, label %188
176: ; preds = %173
%177 = load double, double* %11
%178 = fsub double %177, 1.900000e+03
store double %178, double* %10
%179 = load double, double* %10
%180 = call double @llvm.fmuladd.f64(double -1.970000e-04, double %179, double 6.196600e-03)
%181 = load double, double* %10
%182 = call double @llvm.fmuladd.f64(double %180, double %181, double -5.989390e-02)
%183 = load double, double* %10
%184 = call double @llvm.fmuladd.f64(double %182, double %183, double 0x3FF7E7E9531550CA)
%185 = load double, double* %10
%186 = call double @llvm.fmuladd.f64(double %184, double %185, double -2.790000e+00)
%187 = load double*, double** %8
store double %186, double* %187
br label %306
188: ; preds = %173, %170
%189 = load i32, i32* %6
%190 = icmp sge i32 %189, 1920
br i1 %190, label %191, label %204
191: ; preds = %188
%192 = load i32, i32* %6
%193 = icmp slt i32 %192, 1941
br i1 %193, label %194, label %204
194: ; preds = %191
%195 = load double, double* %11
%196 = fsub double %195, 1.920000e+03
store double %196, double* %10
%197 = load double, double* %10
%198 = call double @llvm.fmuladd.f64(double 2.093600e-03, double %197, double -7.610000e-02)
%199 = load double, double* %10
%200 = call double @llvm.fmuladd.f64(double %198, double %199, double 0x3FEB09AAA3AD18D2)
%201 = load double, double* %10
%202 = call double @llvm.fmuladd.f64(double %200, double %201, double 2.120000e+01)
%203 = load double*, double** %8
store double %202, double* %203
br label %305
204: ; preds = %191, %188
%205 = load i32, i32* %6
%206 = icmp sge i32 %205, 1941
br i1 %206, label %207, label %221
207: ; preds = %204
%208 = load i32, i32* %6
%209 = icmp slt i32 %208, 1961
br i1 %209, label %210, label %221
210: ; preds = %207
%211 = load double, double* %11
%212 = fsub double %211, 1.950000e+03
store double %212, double* %10
%213 = load double, double* %10
%214 = fdiv double %213, 2.547000e+03
%215 = fadd double 0xBF719453808CA29C, %214
%216 = load double, double* %10
%217 = call double @llvm.fmuladd.f64(double %215, double %216, double 4.070000e-01)
%218 = load double, double* %10
%219 = call double @llvm.fmuladd.f64(double %217, double %218, double 2.907000e+01)
%220 = load double*, double** %8
store double %219, double* %220
br label %304
221: ; preds = %207, %204
%222 = load i32, i32* %6
%223 = icmp sge i32 %222, 1961
br i1 %223, label %224, label %238
224: ; preds = %221
%225 = load i32, i32* %6
%226 = icmp slt i32 %225, 1986
br i1 %226, label %227, label %238
227: ; preds = %224
%228 = load double, double* %11
%229 = fsub double %228, 1.975000e+03
store double %229, double* %10
%230 = load double, double* %10
%231 = fdiv double %230, 7.180000e+02
%232 = fsub double 0xBF6F81F81F81F820, %231
%233 = load double, double* %10
%234 = call double @llvm.fmuladd.f64(double %232, double %233, double 1.067000e+00)
%235 = load double, double* %10
%236 = call double @llvm.fmuladd.f64(double %234, double %235, double 4.545000e+01)
%237 = load double*, double** %8
store double %236, double* %237
br label %303
238: ; preds = %224, %221
%239 = load i32, i32* %6
%240 = icmp sge i32 %239, 1986
br i1 %240, label %241, label %258
241: ; preds = %238
%242 = load i32, i32* %6
%243 = icmp slt i32 %242, 2005
br i1 %243, label %244, label %258
244: ; preds = %241
%245 = load double, double* %11
%246 = fsub double %245, 2.000000e+03
store double %246, double* %10
%247 = load double, double* %10
%248 = call double @llvm.fmuladd.f64(double 0x3EF8E394D0074513, double %247, double 6.518140e-04)
%249 = load double, double* %10
%250 = call double @llvm.fmuladd.f64(double %248, double %249, double 1.727500e-03)
%251 = load double, double* %10
%252 = call double @llvm.fmuladd.f64(double %250, double %251, double -6.037400e-02)
%253 = load double, double* %10
%254 = call double @llvm.fmuladd.f64(double %252, double %253, double 3.345000e-01)
%255 = load double, double* %10
%256 = call double @llvm.fmuladd.f64(double %254, double %255, double 6.386000e+01)
%257 = load double*, double** %8
store double %256, double* %257
br label %302
258: ; preds = %241, %238
%259 = load i32, i32* %6
%260 = icmp sge i32 %259, 2005
br i1 %260, label %261, label %272
261: ; preds = %258
%262 = load i32, i32* %6
%263 = icmp slt i32 %262, 2050
br i1 %263, label %264, label %272
264: ; preds = %261
%265 = load double, double* %11
%266 = fsub double %265, 2.000000e+03
store double %266, double* %10
%267 = load double, double* %10
%268 = call double @llvm.fmuladd.f64(double 5.589000e-03, double %267, double 3.221700e-01)
%269 = load double, double* %10
%270 = call double @llvm.fmuladd.f64(double %268, double %269, double 6.292000e+01)
%271 = load double*, double** %8
store double %270, double* %271
br label %301
272: ; preds = %261, %258
%273 = load i32, i32* %6
%274 = icmp sge i32 %273, 2050
br i1 %274, label %275, label %290
275: ; preds = %272
%276 = load i32, i32* %6
%277 = icmp slt i32 %276, 2150
br i1 %277, label %278, label %290
278: ; preds = %275
%279 = load double, double* %11
%280 = fsub double %279, 1.820000e+03
%281 = fdiv double %280, 1.000000e+02
store double %281, double* %10
%282 = load double, double* %10
%283 = fmul double 3.200000e+01, %282
%284 = load double, double* %10
%285 = call double @llvm.fmuladd.f64(double %283, double %284, double -2.000000e+01)
%286 = load double, double* %11
%287 = fsub double 2.150000e+03, %286
%288 = call double @llvm.fmuladd.f64(double -5.628000e-01, double %287, double %285)
%289 = load double*, double** %8
store double %288, double* %289
br label %300
290: ; preds = %275, %272
%291 = load i32, i32* %6
%292 = sub nsw i32 %291, 1820
%293 = sdiv i32 %292, 100
%294 = sitofp i32 %293 to double
store double %294, double* %10
%295 = load double, double* %10
%296 = fmul double 3.200000e+01, %295
%297 = load double, double* %10
%298 = call double @llvm.fmuladd.f64(double %296, double %297, double -2.000000e+01)
%299 = load double*, double** %8
store double %298, double* %299
br label %300
300: ; preds = %290, %278
br label %301
301: ; preds = %300, %264
br label %302
302: ; preds = %301, %244
br label %303
303: ; preds = %302, %227
br label %304
304: ; preds = %303, %210
br label %305
305: ; preds = %304, %194
br label %306
306: ; preds = %305, %176
br label %307
307: ; preds = %306, %155
br label %308
308: ; preds = %307, %131
br label %309
309: ; preds = %308, %112
br label %310
310: ; preds = %309, %95
br label %311
311: ; preds = %310, %72
br label %312
312: ; preds = %311, %50
br label %313
313: ; preds = %312, %34
%314 = load i32, i32* %6
%315 = icmp slt i32 %314, 1955
br i1 %315, label %319, label %316
316: ; preds = %313
%317 = load i32, i32* %6
%318 = icmp sgt i32 %317, 2005
br i1 %318, label %319, label %327
319: ; preds = %316, %313
%320 = load double, double* %11
%321 = fsub double %320, 1.955000e+03
%322 = fmul double -1.293200e-05, %321
%323 = load double, double* %11
%324 = fsub double %323, 1.955000e+03
%325 = fmul double %322, %324
%326 = load double*, double** %9
store double %325, double* %326
br label %329
327: ; preds = %316
%328 = load double*, double** %9
store double 0.000000e+00, double* %328
br label %329
329: ; preds = %327, %319
store i32 0, i32* %5
br label %330
330: ; preds = %329, %23
%331 = load i32, i32* %5
ret i32 %331
}

LLVM IR (-O2):
define i32 @delta_t(i32 %0, i32 %1, double* nocapture writeonly %2, double* nocapture writeonly %3) {
%5 = add i32 %0, -3001
%6 = icmp ult i32 %5, -5000
%7 = add i32 %1, -13
%8 = icmp ult i32 %7, -12
%9 = or i1 %6, %8
br i1 %9, label %155, label %10
10: ; preds = %4
%11 = sitofp i32 %0 to double
%12 = sitofp i32 %1 to double
%13 = fadd double %12, -5.000000e-01
%14 = fdiv double %13, 1.200000e+01
%15 = fadd double %14, %11
%16 = icmp slt i32 %0, -500
br i1 %16, label %17, label %26
17: ; preds = %10
%18 = trunc i32 %0 to i16
%19 = sub nsw i16 1820, %18
%20 = udiv i16 %19, 100
%21 = zext i16 %20 to i32
%22 = sub nsw i32 0, %21
%23 = sitofp i32 %22 to double
%24 = fmul double %23, 3.200000e+01
%25 = tail call double @llvm.fmuladd.f64(double %24, double %23, double -2.000000e+01)
br label %147
26: ; preds = %10
%27 = icmp slt i32 %0, 500
br i1 %27, label %28, label %36
28: ; preds = %26
%29 = fdiv double %15, 1.000000e+02
%30 = tail call double @llvm.fmuladd.f64(double %29, double 0x3F827F2FD32FD1FB, double 0x3F96B4D4D5D22675)
%31 = tail call double @llvm.fmuladd.f64(double %30, double %29, double 0xBFC7052AE22BD9A3)
%32 = tail call double @llvm.fmuladd.f64(double %31, double %29, double 0xC017CEE6FB4C3C19)
%33 = tail call double @llvm.fmuladd.f64(double %32, double %29, double 0x4040E43CF2CF95D5)
%34 = tail call double @llvm.fmuladd.f64(double %33, double %29, double -1.014410e+03)
%35 = tail call double @llvm.fmuladd.f64(double %34, double %29, double 1.058360e+04)
br label %147
36: ; preds = %26
%37 = icmp ult i32 %0, 1600
br i1 %37, label %38, label %47
38: ; preds = %36
%39 = fadd double %15, -1.000000e+03
%40 = fdiv double %39, 1.000000e+02
%41 = tail call double @llvm.fmuladd.f64(double %40, double 0x3F811D956050ACFF, double 0xBF74B05AF38DF91F)
%42 = tail call double @llvm.fmuladd.f64(double %41, double %40, double 0xBFEB36097198C990)
%43 = tail call double @llvm.fmuladd.f64(double %42, double %40, double 3.197810e-01)
%44 = tail call double @llvm.fmuladd.f64(double %43, double %40, double 0x4051CF05A708EDE5)
%45 = tail call double @llvm.fmuladd.f64(double %44, double %40, double -5.560100e+02)
%46 = tail call double @llvm.fmuladd.f64(double %45, double %40, double 1.574200e+03)
br label %147
47: ; preds = %36
%48 = icmp ult i32 %0, 1700
br i1 %48, label %49, label %55
49: ; preds = %47
%50 = fadd double %15, -1.600000e+03
%51 = fdiv double %50, 7.129000e+03
%52 = fadd double %51, -1.532000e-02
%53 = tail call double @llvm.fmuladd.f64(double %52, double %50, double -9.808000e-01)
%54 = tail call double @llvm.fmuladd.f64(double %53, double %50, double 1.200000e+02)
br label %147
55: ; preds = %47
%56 = icmp ult i32 %0, 1800
br i1 %56, label %57, label %64
57: ; preds = %55
%58 = fadd double %15, -1.700000e+03
%59 = fdiv double %58, 1.174000e+06
%60 = fsub double 1.333600e-04, %59
%61 = tail call double @llvm.fmuladd.f64(double %60, double %58, double -5.928500e-03)
%62 = tail call double @llvm.fmuladd.f64(double %61, double %58, double 1.603000e-01)
%63 = tail call double @llvm.fmuladd.f64(double %62, double %58, double 8.830000e+00)
br label %147
64: ; preds = %55
%65 = icmp ult i32 %0, 1860
br i1 %65, label %66, label %75
66: ; preds = %64
%67 = fadd double %15, -1.800000e+03
%68 = tail call double @llvm.fmuladd.f64(double %67, double 8.750000e-10, double -1.699000e-07)
%69 = tail call double @llvm.fmuladd.f64(double %68, double %67, double 1.212720e-05)
%70 = tail call double @llvm.fmuladd.f64(double %69, double %67, double -3.743600e-04)
%71 = tail call double @llvm.fmuladd.f64(double %70, double %67, double 4.111600e-03)
%72 = tail call double @llvm.fmuladd.f64(double %71, double %67, double 6.861200e-03)
%73 = tail call double @llvm.fmuladd.f64(double %72, double %67, double -3.324470e-01)
%74 = tail call double @llvm.fmuladd.f64(double %73, double %67, double 1.372000e+01)
br label %147
75: ; preds = %64
%76 = icmp ult i32 %0, 1900
br i1 %76, label %77, label %85
77: ; preds = %75
%78 = fadd double %15, -1.860000e+03
%79 = fdiv double %78, 2.331740e+05
%80 = fadd double %79, 0xBF3D517EE0A13922
%81 = tail call double @llvm.fmuladd.f64(double %80, double %78, double 0x3F9135C533D13DCB)
%82 = tail call double @llvm.fmuladd.f64(double %81, double %78, double -2.517540e-01)
%83 = tail call double @llvm.fmuladd.f64(double %82, double %78, double 5.737000e-01)
%84 = tail call double @llvm.fmuladd.f64(double %83, double %78, double 7.620000e+00)
br label %147
85: ; preds = %75
%86 = icmp ult i32 %0, 1920
br i1 %86, label %87, label %93
87: ; preds = %85
%88 = fadd double %15, -1.900000e+03
%89 = tail call double @llvm.fmuladd.f64(double %88, double -1.970000e-04, double 6.196600e-03)
%90 = tail call double @llvm.fmuladd.f64(double %89, double %88, double -5.989390e-02)
%91 = tail call double @llvm.fmuladd.f64(double %90, double %88, double 0x3FF7E7E9531550CA)
%92 = tail call double @llvm.fmuladd.f64(double %91, double %88, double -2.790000e+00)
br label %147
93: ; preds = %85
%94 = icmp ult i32 %0, 1941
br i1 %94, label %95, label %100
95: ; preds = %93
%96 = fadd double %15, -1.920000e+03
%97 = tail call double @llvm.fmuladd.f64(double %96, double 2.093600e-03, double -7.610000e-02)
%98 = tail call double @llvm.fmuladd.f64(double %97, double %96, double 0x3FEB09AAA3AD18D2)
%99 = tail call double @llvm.fmuladd.f64(double %98, double %96, double 2.120000e+01)
br label %147
100: ; preds = %93
%101 = icmp ult i32 %0, 1961
br i1 %101, label %102, label %108
102: ; preds = %100
%103 = fadd double %15, -1.950000e+03
%104 = fdiv double %103, 2.547000e+03
%105 = fadd double %104, 0xBF719453808CA29C
%106 = tail call double @llvm.fmuladd.f64(double %105, double %103, double 4.070000e-01)
%107 = tail call double @llvm.fmuladd.f64(double %106, double %103, double 2.907000e+01)
br label %147
108: ; preds = %100
%109 = icmp ult i32 %0, 1986
br i1 %109, label %110, label %116
110: ; preds = %108
%111 = fadd double %15, -1.975000e+03
%112 = fdiv double %111, 7.180000e+02
%113 = fsub double 0xBF6F81F81F81F820, %112
%114 = tail call double @llvm.fmuladd.f64(double %113, double %111, double 1.067000e+00)
%115 = tail call double @llvm.fmuladd.f64(double %114, double %111, double 4.545000e+01)
br label %147
116: ; preds = %108
%117 = icmp ult i32 %0, 2005
br i1 %117, label %118, label %125
118: ; preds = %116
%119 = fadd double %15, -2.000000e+03
%120 = tail call double @llvm.fmuladd.f64(double %119, double 0x3EF8E394D0074513, double 6.518140e-04)
%121 = tail call double @llvm.fmuladd.f64(double %120, double %119, double 1.727500e-03)
%122 = tail call double @llvm.fmuladd.f64(double %121, double %119, double -6.037400e-02)
%123 = tail call double @llvm.fmuladd.f64(double %122, double %119, double 3.345000e-01)
%124 = tail call double @llvm.fmuladd.f64(double %123, double %119, double 6.386000e+01)
br label %147
125: ; preds = %116
%126 = icmp ult i32 %0, 2050
br i1 %126, label %127, label %131
127: ; preds = %125
%128 = fadd double %15, -2.000000e+03
%129 = tail call double @llvm.fmuladd.f64(double %128, double 5.589000e-03, double 3.221700e-01)
%130 = tail call double @llvm.fmuladd.f64(double %129, double %128, double 6.292000e+01)
br label %147
131: ; preds = %125
%132 = icmp ult i32 %0, 2150
br i1 %132, label %133, label %140
133: ; preds = %131
%134 = fadd double %15, -1.820000e+03
%135 = fdiv double %134, 1.000000e+02
%136 = fmul double %135, 3.200000e+01
%137 = tail call double @llvm.fmuladd.f64(double %136, double %135, double -2.000000e+01)
%138 = fsub double 2.150000e+03, %15
%139 = tail call double @llvm.fmuladd.f64(double %138, double -5.628000e-01, double %137)
br label %147
140: ; preds = %131
%141 = trunc i32 %0 to i16
%142 = add nsw i16 %141, -1820
%143 = udiv i16 %142, 100
%144 = uitofp i16 %143 to double
%145 = fmul double %144, 3.200000e+01
%146 = tail call double @llvm.fmuladd.f64(double %145, double %144, double -2.000000e+01)
br label %147
147: ; preds = %28, %49, %66, %87, %102, %118, %133, %140, %127, %110, %95, %77, %57, %38, %17
%148 = phi double [ %35, %28 ], [ %54, %49 ], [ %74, %66 ], [ %92, %87 ], [ %107, %102 ], [ %124, %118 ], [ %139, %133 ], [ %146, %140 ], [ %130, %127 ], [ %115, %110 ], [ %99, %95 ], [ %84, %77 ], [ %63, %57 ], [ %46, %38 ], [ %25, %17 ]
store double %148, double* %2
%149 = add nsw i32 %0, -2006
%150 = icmp ult i32 %149, -51
%151 = fadd double %15, -1.955000e+03
%152 = fmul double %151, -1.293200e-05
%153 = fmul double %151, %152
%154 = select i1 %150, double %153, double 0.000000e+00
store double %154, double* %3
br label %155
155: ; preds = %4, %147
%156 = phi i32 [ 0, %147 ], [ -2, %4 ]
ret i32 %156
}