void m(double t, double k, double *mj) {
  double t2, a, a1, b, b1, c, ms, mm, f, ddjd;
  t2 = t * t;
  a = 29.53 * k;
  c = ((166.56 + (132.87 - 9.173e-3 * t) * t) * 3.141592653589793 / 180.);
  b = 5.8868e-4 * k + (1.178e-4 - 1.55e-7 * t) * t2 + 3.3e-4 * sin(c) +
      7.5933E-1;
  ms = 359.2242 +
       360 * ((k / 1.236886e1) - floor((k / 1.236886e1) / (1)) * (1)) -
       (3.33e-5 + 3.47e-6 * t) * t2;
  mm = 306.0253 +
       360 * ((k / 9.330851e-1) - floor((k / 9.330851e-1) / (1)) * (1)) +
       (1.07306e-2 + 1.236e-5 * t) * t2;
  f = 21.2964 +
      360 * ((k / 9.214926e-1) - floor((k / 9.214926e-1) / (1)) * (1)) -
      (1.6528e-3 + 2.39e-6 * t) * t2;
  ms = ((ms)-floor((ms) / (360)) * (360));
  mm = ((mm)-floor((mm) / (360)) * (360));
  f = ((f)-floor((f) / (360)) * (360));
  ms = ((ms)*3.141592653589793 / 180.);
  mm = ((mm)*3.141592653589793 / 180.);
  f = ((f)*3.141592653589793 / 180.);
  ddjd = (1.734e-1 - 3.93e-4 * t) * sin(ms) + 2.1e-3 * sin(2 * ms) -
         4.068e-1 * sin(mm) + 1.61e-2 * sin(2 * mm) - 4e-4 * sin(3 * mm) +
         1.04e-2 * sin(2 * f) - 5.1e-3 * sin(ms + mm) - 7.4e-3 * sin(ms - mm) +
         4e-4 * sin(2 * f + ms) - 4e-4 * sin(2 * f - ms) -
         6e-4 * sin(2 * f + mm) + 1e-3 * sin(2 * f - mm) +
         5e-4 * sin(ms + 2 * mm);
  a1 = (long)a;
  b = b + ddjd + (a - a1);
  b1 = (long)b;
  a = a1 + b1;
  b = b - b1;
  *mj = a + b;
}


x86 assembly (clang, -O0):
<m>:
push   %rbp
mov    %rsp,%rbp
sub    $0x110,%rsp
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
mov    %rdi,-0x18(%rbp)
movsd  -0x8(%rbp),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  0xfe8(%rip),%xmm0
mulsd  -0x10(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xfc1(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xfbd(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  -0x8(%rbp),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xf98(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  0xeec(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xed8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  -0x8(%rbp),%xmm1
movsd  0xf55(%rip),%xmm2
mulsd  %xmm2,%xmm1
movsd  0xf51(%rip),%xmm2
addsd  %xmm2,%xmm1
mulsd  -0x20(%rbp),%xmm1
movsd  0xf30(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x108(%rbp),%xmm1
ff
movsd  0xefe(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xee6(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xec8(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xeaf(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xe5b(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movaps %xmm0,%xmm1
movsd  -0x100(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm1
movsd  0xe04(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xe58(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  0xe37(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0xe33(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  -0x20(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xde9(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xdd0(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xd9c(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movaps %xmm0,%xmm1
movsd  -0xf8(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm1
movsd  0xd45(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xd79(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  0xd58(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0xd54(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  -0x20(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xd21(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x10(%rbp),%xmm0
movsd  0xd08(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xcf4(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movaps %xmm0,%xmm1
movsd  -0xf0(%rbp),%xmm0
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm1
movsd  0xc9d(%rip),%xmm0
mulsd  %xmm0,%xmm1
movsd  0xca9(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  -0x8(%rbp),%xmm0
movsd  0xc88(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0xc84(%rip),%xmm2
addsd  %xmm2,%xmm0
movsd  -0x20(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  0xc2d(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xbfd(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  0xbd6(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xba6(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  0xb7f(%rip),%xmm1
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  0xb4f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xb32(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  0xb1d(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xb14(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
movsd  0xaff(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0xaf6(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
movsd  0xae1(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x8(%rbp),%xmm0
movsd  0xabb(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0xab7(%rip),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  0xa61(%rip),%xmm0
mulsd  -0x50(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xd0(%rbp),%xmm2
ff
movaps %xmm0,%xmm3
movsd  -0xc8(%rbp),%xmm0
ff
movsd  0xa5c(%rip),%xmm1
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xc0(%rbp),%xmm1
ff
movsd  0xa26(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  0x9f6(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xb8(%rbp),%xmm1
ff
movsd  0x9ec(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0x9cc(%rip),%xmm0
mulsd  -0x58(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xb0(%rbp),%xmm1
ff
movsd  0x982(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0x992(%rip),%xmm0
mulsd  -0x60(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xa8(%rbp),%xmm1
ff
movsd  0x970(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0xa0(%rbp),%xmm1
ff
movsd  0x939(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
subsd  -0x58(%rbp),%xmm0
call   1030 <sin@plt>
movsd  -0x98(%rbp),%xmm1
ff
movsd  0x902(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sin@plt>
movsd  -0x90(%rbp),%xmm1
ff
movsd  0x8c3(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sin@plt>
movsd  -0x88(%rbp),%xmm1
ff
movsd  0x86d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sin@plt>
movsd  -0x80(%rbp),%xmm1
movsd  0x834(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sin@plt>
movsd  -0x78(%rbp),%xmm1
movsd  0x7e4(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x50(%rbp),%xmm1
movsd  -0x58(%rbp),%xmm0
addsd  %xmm0,%xmm0
addsd  %xmm1,%xmm0
call   1030 <sin@plt>
movsd  -0x70(%rbp),%xmm1
movsd  0x7ab(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x68(%rbp)
cvttsd2si -0x28(%rbp),%rax
cvtsi2sd %rax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm0
addsd  -0x68(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
subsd  -0x30(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
cvttsd2si -0x38(%rbp),%rax
cvtsi2sd %rax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x30(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x38(%rbp),%xmm0
subsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x28(%rbp),%xmm0
addsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
add    $0x110,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<m>:
push   %rbx
sub    $0x40,%rsp
mov    %rdi,%rbx
movapd %xmm0,%xmm2
mulsd  %xmm0,%xmm0
movapd %xmm0,%xmm3
movsd  %xmm0,0x8(%rsp)
movsd  0xebe(%rip),%xmm4
movsd  0xebe(%rip),%xmm0
mulsd  %xmm2,%xmm0
addsd  0xeba(%rip),%xmm0
mulsd  %xmm1,%xmm4
movapd %xmm1,%xmm5
movsd  %xmm1,0x10(%rsp)
movsd  %xmm4,0x38(%rsp)
mulsd  %xmm2,%xmm0
movsd  %xmm2,0x28(%rsp)
addsd  0xe9c(%rip),%xmm0
mulsd  0xe9c(%rip),%xmm0
divsd  0xe9c(%rip),%xmm0
movsd  0xe9c(%rip),%xmm1
mulsd  %xmm2,%xmm1
addsd  0xe98(%rip),%xmm1
mulsd  %xmm3,%xmm1
movsd  0xe94(%rip),%xmm2
mulsd  %xmm5,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,0x18(%rsp)
call   1030 <sin@plt>
mulsd  0xe81(%rip),%xmm0
addsd  0x18(%rsp),%xmm0
addsd  0xe7b(%rip),%xmm0
movsd  %xmm0,0x30(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  0xe6f(%rip),%xmm0
movsd  %xmm0,0x18(%rsp)
call   1040 <floor@plt>
movsd  0x18(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xe5a(%rip),%xmm1
addsd  0xe5a(%rip),%xmm1
movsd  0xe5a(%rip),%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0xe54(%rip),%xmm0
mulsd  0x8(%rsp),%xmm0
subsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  0xe3e(%rip),%xmm0
movsd  %xmm0,0x20(%rsp)
call   1040 <floor@plt>
movsd  0x20(%rsp),%xmm1
subsd  %xmm0,%xmm1
mulsd  0xe01(%rip),%xmm1
addsd  0xe21(%rip),%xmm1
movsd  0xe21(%rip),%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0xe1b(%rip),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  0xe05(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
call   1040 <floor@plt>
movsd  0x10(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  0xda8(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  0xde4(%rip),%xmm1
movsd  0xde4(%rip),%xmm0
mulsd  0x28(%rsp),%xmm0
addsd  0xdde(%rip),%xmm0
mulsd  0x8(%rsp),%xmm0
subsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0x18(%rsp),%xmm0
divsd  %xmm2,%xmm0
call   1040 <floor@plt>
movsd  0xd5f(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0x18(%rsp),%xmm1
subsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rsp)
movsd  0x20(%rsp),%xmm0
divsd  %xmm2,%xmm0
call   1040 <floor@plt>
movsd  0xd34(%rip),%xmm1
mulsd  %xmm1,%xmm0
movsd  0x20(%rsp),%xmm2
subsd  %xmm0,%xmm2
movsd  %xmm2,0x20(%rsp)
movsd  0x10(%rsp),%xmm0
divsd  %xmm1,%xmm0
call   1040 <floor@plt>
mulsd  0xd09(%rip),%xmm0
movsd  0x10(%rsp),%xmm4
subsd  %xmm0,%xmm4
movsd  0x18(%rsp),%xmm0
movsd  0xcb1(%rip),%xmm2
mulsd  %xmm2,%xmm0
movsd  0xcad(%rip),%xmm3
divsd  %xmm3,%xmm0
movsd  %xmm0,0x18(%rsp)
movsd  0x20(%rsp),%xmm1
mulsd  %xmm2,%xmm1
divsd  %xmm3,%xmm1
movsd  %xmm1,0x20(%rsp)
movapd %xmm4,%xmm1
mulsd  %xmm2,%xmm1
divsd  %xmm3,%xmm1
movsd  %xmm1,0x10(%rsp)
movsd  0x28(%rsp),%xmm1
mulsd  0xd07(%rip),%xmm1
addsd  0xd07(%rip),%xmm1
movsd  %xmm1,0x28(%rsp)
call   1030 <sin@plt>
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
addsd  %xmm0,%xmm0
call   1030 <sin@plt>
mulsd  0xce7(%rip),%xmm0
movsd  0x8(%rsp),%xmm1
mulsd  0x28(%rsp),%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xcc6(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x20(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x28(%rsp)
call   1030 <sin@plt>
mulsd  0xca5(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0xc99(%rip),%xmm0
mulsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xc8e(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
addsd  %xmm0,%xmm0
movsd  %xmm0,0x10(%rsp)
call   1030 <sin@plt>
mulsd  0xc6d(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xc50(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x18(%rsp),%xmm0
subsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xc33(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
addsd  0x18(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xc16(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
subsd  0x18(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xbd1(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xbd4(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x8(%rsp)
movsd  0x10(%rsp),%xmm0
subsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xbb7(%rip),%xmm0
addsd  0x8(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0x28(%rsp),%xmm0
addsd  0x18(%rsp),%xmm0
call   1030 <sin@plt>
mulsd  0xb9a(%rip),%xmm0
addsd  0x10(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
movsd  0x38(%rsp),%xmm2
cvttsd2si %xmm2,%rax
cvtsi2sd %rax,%xmm1
subsd  %xmm1,%xmm2
addsd  %xmm0,%xmm2
cvttsd2si %xmm2,%rax
xorps  %xmm0,%xmm0
cvtsi2sd %rax,%xmm0
addsd  %xmm0,%xmm1
subsd  %xmm0,%xmm2
addsd  %xmm1,%xmm2
movsd  %xmm2,(%rbx)
add    $0x40,%rsp
pop    %rbx
ret

LLVM IR (-O0):
define void @m(double %0, double %1, double* %2) {
%4 = alloca double
%5 = alloca double
%6 = alloca double*
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
store double %0, double* %4
store double %1, double* %5
store double* %2, double** %6
%17 = load double, double* %4
%18 = load double, double* %4
%19 = fmul double %17, %18
store double %19, double* %7
%20 = load double, double* %5
%21 = fmul double 2.953000e+01, %20
store double %21, double* %8
%22 = load double, double* %4
%23 = call double @llvm.fmuladd.f64(double -9.173000e-03, double %22, double 1.328700e+02)
%24 = load double, double* %4
%25 = call double @llvm.fmuladd.f64(double %23, double %24, double 1.665600e+02)
%26 = fmul double %25, 0x400921FB54442D18
%27 = fdiv double %26, 1.800000e+02
store double %27, double* %12
%28 = load double, double* %5
%29 = load double, double* %4
%30 = call double @llvm.fmuladd.f64(double -1.550000e-07, double %29, double 1.178000e-04)
%31 = load double, double* %7
%32 = fmul double %30, %31
%33 = call double @llvm.fmuladd.f64(double 5.886800e-04, double %28, double %32)
%34 = load double, double* %12
%35 = call double @sin(double %34)
%36 = call double @llvm.fmuladd.f64(double 3.300000e-04, double %35, double %33)
%37 = fadd double %36, 7.593300e-01
store double %37, double* %10
%38 = load double, double* %5
%39 = fdiv double %38, 0x4028BCDB37C99AE9
%40 = load double, double* %5
%41 = fdiv double %40, 0x4028BCDB37C99AE9
%42 = fdiv double %41, 1.000000e+00
%43 = call double @llvm.floor.f64(double %42)
%44 = fneg double %43
%45 = call double @llvm.fmuladd.f64(double %44, double 1.000000e+00, double %39)
%46 = call double @llvm.fmuladd.f64(double 3.600000e+02, double %45, double 0x4076739652BD3C36)
%47 = load double, double* %4
%48 = call double @llvm.fmuladd.f64(double 3.470000e-06, double %47, double 3.330000e-05)
%49 = load double, double* %7
%50 = fneg double %48
%51 = call double @llvm.fmuladd.f64(double %50, double %49, double %46)
store double %51, double* %13
%52 = load double, double* %5
%53 = fdiv double %52, 0x3FEDDBD5489C5104
%54 = load double, double* %5
%55 = fdiv double %54, 0x3FEDDBD5489C5104
%56 = fdiv double %55, 1.000000e+00
%57 = call double @llvm.floor.f64(double %56)
%58 = fneg double %57
%59 = call double @llvm.fmuladd.f64(double %58, double 1.000000e+00, double %53)
%60 = call double @llvm.fmuladd.f64(double 3.600000e+02, double %59, double 0x40732067A0F9096C)
%61 = load double, double* %4
%62 = call double @llvm.fmuladd.f64(double 1.236000e-05, double %61, double 1.073060e-02)
%63 = load double, double* %7
%64 = call double @llvm.fmuladd.f64(double %62, double %63, double %60)
store double %64, double* %14
%65 = load double, double* %5
%66 = fdiv double %65, 0x3FED7CDE0C90313B
%67 = load double, double* %5
%68 = fdiv double %67, 0x3FED7CDE0C90313B
%69 = fdiv double %68, 1.000000e+00
%70 = call double @llvm.floor.f64(double %69)
%71 = fneg double %70
%72 = call double @llvm.fmuladd.f64(double %71, double 1.000000e+00, double %66)
%73 = call double @llvm.fmuladd.f64(double 3.600000e+02, double %72, double 2.129640e+01)
%74 = load double, double* %4
%75 = call double @llvm.fmuladd.f64(double 2.390000e-06, double %74, double 1.652800e-03)
%76 = load double, double* %7
%77 = fneg double %75
%78 = call double @llvm.fmuladd.f64(double %77, double %76, double %73)
store double %78, double* %15
%79 = load double, double* %13
%80 = load double, double* %13
%81 = fdiv double %80, 3.600000e+02
%82 = call double @llvm.floor.f64(double %81)
%83 = fneg double %82
%84 = call double @llvm.fmuladd.f64(double %83, double 3.600000e+02, double %79)
store double %84, double* %13
%85 = load double, double* %14
%86 = load double, double* %14
%87 = fdiv double %86, 3.600000e+02
%88 = call double @llvm.floor.f64(double %87)
%89 = fneg double %88
%90 = call double @llvm.fmuladd.f64(double %89, double 3.600000e+02, double %85)
store double %90, double* %14
%91 = load double, double* %15
%92 = load double, double* %15
%93 = fdiv double %92, 3.600000e+02
%94 = call double @llvm.floor.f64(double %93)
%95 = fneg double %94
%96 = call double @llvm.fmuladd.f64(double %95, double 3.600000e+02, double %91)
store double %96, double* %15
%97 = load double, double* %13
%98 = fmul double %97, 0x400921FB54442D18
%99 = fdiv double %98, 1.800000e+02
store double %99, double* %13
%100 = load double, double* %14
%101 = fmul double %100, 0x400921FB54442D18
%102 = fdiv double %101, 1.800000e+02
store double %102, double* %14
%103 = load double, double* %15
%104 = fmul double %103, 0x400921FB54442D18
%105 = fdiv double %104, 1.800000e+02
store double %105, double* %15
%106 = load double, double* %4
%107 = call double @llvm.fmuladd.f64(double -3.930000e-04, double %106, double 1.734000e-01)
%108 = load double, double* %13
%109 = call double @sin(double %108)
%110 = load double, double* %13
%111 = fmul double 2.000000e+00, %110
%112 = call double @sin(double %111)
%113 = fmul double 2.100000e-03, %112
%114 = call double @llvm.fmuladd.f64(double %107, double %109, double %113)
%115 = load double, double* %14
%116 = call double @sin(double %115)
%117 = call double @llvm.fmuladd.f64(double -4.068000e-01, double %116, double %114)
%118 = load double, double* %14
%119 = fmul double 2.000000e+00, %118
%120 = call double @sin(double %119)
%121 = call double @llvm.fmuladd.f64(double 1.610000e-02, double %120, double %117)
%122 = load double, double* %14
%123 = fmul double 3.000000e+00, %122
%124 = call double @sin(double %123)
%125 = call double @llvm.fmuladd.f64(double -4.000000e-04, double %124, double %121)
%126 = load double, double* %15
%127 = fmul double 2.000000e+00, %126
%128 = call double @sin(double %127)
%129 = call double @llvm.fmuladd.f64(double 1.040000e-02, double %128, double %125)
%130 = load double, double* %13
%131 = load double, double* %14
%132 = fadd double %130, %131
%133 = call double @sin(double %132)
%134 = call double @llvm.fmuladd.f64(double -5.100000e-03, double %133, double %129)
%135 = load double, double* %13
%136 = load double, double* %14
%137 = fsub double %135, %136
%138 = call double @sin(double %137)
%139 = call double @llvm.fmuladd.f64(double -7.400000e-03, double %138, double %134)
%140 = load double, double* %15
%141 = load double, double* %13
%142 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %140, double %141)
%143 = call double @sin(double %142)
%144 = call double @llvm.fmuladd.f64(double 4.000000e-04, double %143, double %139)
%145 = load double, double* %15
%146 = load double, double* %13
%147 = fneg double %146
%148 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %145, double %147)
%149 = call double @sin(double %148)
%150 = call double @llvm.fmuladd.f64(double -4.000000e-04, double %149, double %144)
%151 = load double, double* %15
%152 = load double, double* %14
%153 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %151, double %152)
%154 = call double @sin(double %153)
%155 = call double @llvm.fmuladd.f64(double -6.000000e-04, double %154, double %150)
%156 = load double, double* %15
%157 = load double, double* %14
%158 = fneg double %157
%159 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %156, double %158)
%160 = call double @sin(double %159)
%161 = call double @llvm.fmuladd.f64(double 1.000000e-03, double %160, double %155)
%162 = load double, double* %13
%163 = load double, double* %14
%164 = call double @llvm.fmuladd.f64(double 2.000000e+00, double %163, double %162)
%165 = call double @sin(double %164)
%166 = call double @llvm.fmuladd.f64(double 5.000000e-04, double %165, double %161)
store double %166, double* %16
%167 = load double, double* %8
%168 = fptosi double %167 to i64
%169 = sitofp i64 %168 to double
store double %169, double* %9
%170 = load double, double* %10
%171 = load double, double* %16
%172 = fadd double %170, %171
%173 = load double, double* %8
%174 = load double, double* %9
%175 = fsub double %173, %174
%176 = fadd double %172, %175
store double %176, double* %10
%177 = load double, double* %10
%178 = fptosi double %177 to i64
%179 = sitofp i64 %178 to double
store double %179, double* %11
%180 = load double, double* %9
%181 = load double, double* %11
%182 = fadd double %180, %181
store double %182, double* %8
%183 = load double, double* %10
%184 = load double, double* %11
%185 = fsub double %183, %184
store double %185, double* %10
%186 = load double, double* %8
%187 = load double, double* %10
%188 = fadd double %186, %187
%189 = load double*, double** %6
store double %188, double* %189
ret void
}

LLVM IR (-O2):
define void @m(double %0, double %1, double* nocapture writeonly %2) {
%4 = fmul double %0, %0
%5 = fmul double %1, 2.953000e+01
%6 = tail call double @llvm.fmuladd.f64(double %0, double -9.173000e-03, double 1.328700e+02)
%7 = tail call double @llvm.fmuladd.f64(double %6, double %0, double 1.665600e+02)
%8 = fmul double %7, 0x400921FB54442D18
%9 = fdiv double %8, 1.800000e+02
%10 = tail call double @llvm.fmuladd.f64(double %0, double -1.550000e-07, double 1.178000e-04)
%11 = fmul double %10, %4
%12 = tail call double @llvm.fmuladd.f64(double %1, double 5.886800e-04, double %11)
%13 = tail call double @sin(double %9)
%14 = tail call double @llvm.fmuladd.f64(double %13, double 3.300000e-04, double %12)
%15 = fadd double %14, 7.593300e-01
%16 = fdiv double %1, 0x4028BCDB37C99AE9
%17 = tail call double @llvm.floor.f64(double %16)
%18 = fsub double %16, %17
%19 = tail call double @llvm.fmuladd.f64(double %18, double 3.600000e+02, double 0x4076739652BD3C36)
%20 = tail call double @llvm.fmuladd.f64(double %0, double 3.470000e-06, double 3.330000e-05)
%21 = fneg double %20
%22 = tail call double @llvm.fmuladd.f64(double %21, double %4, double %19)
%23 = fdiv double %1, 0x3FEDDBD5489C5104
%24 = tail call double @llvm.floor.f64(double %23)
%25 = fsub double %23, %24
%26 = tail call double @llvm.fmuladd.f64(double %25, double 3.600000e+02, double 0x40732067A0F9096C)
%27 = tail call double @llvm.fmuladd.f64(double %0, double 1.236000e-05, double 1.073060e-02)
%28 = tail call double @llvm.fmuladd.f64(double %27, double %4, double %26)
%29 = fdiv double %1, 0x3FED7CDE0C90313B
%30 = tail call double @llvm.floor.f64(double %29)
%31 = fsub double %29, %30
%32 = tail call double @llvm.fmuladd.f64(double %31, double 3.600000e+02, double 2.129640e+01)
%33 = tail call double @llvm.fmuladd.f64(double %0, double 2.390000e-06, double 1.652800e-03)
%34 = fneg double %33
%35 = tail call double @llvm.fmuladd.f64(double %34, double %4, double %32)
%36 = fdiv double %22, 3.600000e+02
%37 = tail call double @llvm.floor.f64(double %36)
%38 = fneg double %37
%39 = tail call double @llvm.fmuladd.f64(double %38, double 3.600000e+02, double %22)
%40 = fdiv double %28, 3.600000e+02
%41 = tail call double @llvm.floor.f64(double %40)
%42 = fneg double %41
%43 = tail call double @llvm.fmuladd.f64(double %42, double 3.600000e+02, double %28)
%44 = fdiv double %35, 3.600000e+02
%45 = tail call double @llvm.floor.f64(double %44)
%46 = fneg double %45
%47 = tail call double @llvm.fmuladd.f64(double %46, double 3.600000e+02, double %35)
%48 = fmul double %39, 0x400921FB54442D18
%49 = fdiv double %48, 1.800000e+02
%50 = fmul double %43, 0x400921FB54442D18
%51 = fdiv double %50, 1.800000e+02
%52 = fmul double %47, 0x400921FB54442D18
%53 = fdiv double %52, 1.800000e+02
%54 = tail call double @llvm.fmuladd.f64(double %0, double -3.930000e-04, double 1.734000e-01)
%55 = tail call double @sin(double %49)
%56 = fmul double %49, 2.000000e+00
%57 = tail call double @sin(double %56)
%58 = fmul double %57, 2.100000e-03
%59 = tail call double @llvm.fmuladd.f64(double %54, double %55, double %58)
%60 = tail call double @sin(double %51)
%61 = tail call double @llvm.fmuladd.f64(double %60, double -4.068000e-01, double %59)
%62 = fmul double %51, 2.000000e+00
%63 = tail call double @sin(double %62)
%64 = tail call double @llvm.fmuladd.f64(double %63, double 1.610000e-02, double %61)
%65 = fmul double %51, 3.000000e+00
%66 = tail call double @sin(double %65)
%67 = tail call double @llvm.fmuladd.f64(double %66, double -4.000000e-04, double %64)
%68 = fmul double %53, 2.000000e+00
%69 = tail call double @sin(double %68)
%70 = tail call double @llvm.fmuladd.f64(double %69, double 1.040000e-02, double %67)
%71 = fadd double %49, %51
%72 = tail call double @sin(double %71)
%73 = tail call double @llvm.fmuladd.f64(double %72, double -5.100000e-03, double %70)
%74 = fsub double %49, %51
%75 = tail call double @sin(double %74)
%76 = tail call double @llvm.fmuladd.f64(double %75, double -7.400000e-03, double %73)
%77 = tail call double @llvm.fmuladd.f64(double %53, double 2.000000e+00, double %49)
%78 = tail call double @sin(double %77)
%79 = tail call double @llvm.fmuladd.f64(double %78, double 4.000000e-04, double %76)
%80 = fneg double %49
%81 = tail call double @llvm.fmuladd.f64(double %53, double 2.000000e+00, double %80)
%82 = tail call double @sin(double %81)
%83 = tail call double @llvm.fmuladd.f64(double %82, double -4.000000e-04, double %79)
%84 = tail call double @llvm.fmuladd.f64(double %53, double 2.000000e+00, double %51)
%85 = tail call double @sin(double %84)
%86 = tail call double @llvm.fmuladd.f64(double %85, double -6.000000e-04, double %83)
%87 = fneg double %51
%88 = tail call double @llvm.fmuladd.f64(double %53, double 2.000000e+00, double %87)
%89 = tail call double @sin(double %88)
%90 = tail call double @llvm.fmuladd.f64(double %89, double 1.000000e-03, double %86)
%91 = tail call double @llvm.fmuladd.f64(double %51, double 2.000000e+00, double %49)
%92 = tail call double @sin(double %91)
%93 = tail call double @llvm.fmuladd.f64(double %92, double 5.000000e-04, double %90)
%94 = fptosi double %5 to i64
%95 = sitofp i64 %94 to double
%96 = fadd double %15, %93
%97 = fsub double %5, %95
%98 = fadd double %97, %96
%99 = fptosi double %98 to i64
%100 = sitofp i64 %99 to double
%101 = fadd double %95, %100
%102 = fsub double %98, %100
%103 = fadd double %101, %102
store double %103, double* %2
ret void
}