void TaskJacobian(J, q) double J[36];
double q[6];
{
  double t1;
  double t10;
  double t108;
  double t111;
  double t112;
  double t115;
  double t12;
  double t138;
  double t139;
  double t14;
  double t141;
  double t145;
  double t16;
  double t165;
  double t18;
  double t19;
  double t2;
  double t20;
  double t21;
  double t22;
  double t24;
  double t25;
  double t26;
  double t28;
  double t3;
  double t30;
  double t31;
  double t33;
  double t34;
  double t36;
  double t37;
  double t38;
  double t4;
  double t42;
  double t43;
  double t44;
  double t46;
  double t48;
  double t5;
  double t50;
  double t52;
  double t55;
  double t57;
  double t6;
  double t62;
  double t65;
  double t70;
  double t73;
  double t74;
  double t76;
  double t79;
  double t8;
  double t80;
  double t81;
  double t84;
  double t9;
  double t90;
  double t92;
  double t98;
  double t99;
  {
    t1 = q[0];
    t2 = sin(t1);
    t3 = q[1];
    t4 = cos(t3);
    t5 = q[2];
    t6 = sin(t5);
    t8 = 0.45 * t4 * t6;
    t9 = sin(t3);
    t10 = cos(t5);
    t12 = 0.45 + 0.45 * t10;
    t14 = t8 + t9 * t12;
    J[0] = -t2 * t14;
    J[1] = 0.0;
    t16 = cos(t1);
    J[2] = -t16 * t14;
    t18 = q[3];
    t19 = cos(t18);
    t20 = t10 * t19;
    t21 = q[4];
    t22 = sin(t21);
    t24 = cos(t21);
    t25 = t6 * t24;
    t26 = t20 * t22 + t25;
    t28 = t6 * t19;
    t30 = t10 * t24;
    t31 = -t28 * t22 + t30;
    t33 = t4 * t26 + t9 * t31;
    t34 = t2 * t33;
    t36 = sin(t18);
    t37 = t16 * t36;
    t38 = t37 * t22;
    J[3] = -0.1 * t34 - 0.1 * t38;
    t42 = t19 * t24;
    t43 = q[5];
    t44 = sin(t43);
    t46 = cos(t43);
    t48 = t42 * t44 + t36 * t46;
    t50 = t6 * t22;
    t52 = t10 * t48 - t50 * t44;
    t55 = t10 * t22;
    t57 = -t6 * t48 - t55 * t44;
    t62 = t36 * t24;
    t65 = -t62 * t44 + t19 * t46;
    J[4] = -0.15 * t34 - 0.15 * t38 - 0.5E-1 * t2 * (t4 * t52 + t9 * t57) +
           0.5E-1 * t16 * t65;
    t70 = t2 * t36;
    J[5] = -0.1 * t16 * t33 + 0.1 * t70 * t22;
    t73 = t9 * t6;
    t74 = 0.45 * t73;
    t76 = -t74 + t4 * t12;
    J[6] = t16 * t76;
    J[7] = -t14;
    J[8] = -t2 * t76;
    t79 = t4 * t31;
    t80 = -t9 * t26 + t79;
    t81 = t16 * t80;
    J[9] = 0.1 * t81;
    t84 = t4 * t57;
    J[10] = 0.15 * t81 + 0.5E-1 * t16 * (-t9 * t52 + t84);
    J[11] = -0.1 * t2 * t80;
    t90 = t4 * t10;
    t92 = 0.45 * t90 - t74;
    J[12] = t16 * t92;
    J[13] = -0.45 * t9 * t10 - t8;
    J[14] = -t2 * t92;
    t98 = -t9 * t26 + t79;
    t99 = t16 * t98;
    J[15] = 0.1 * t99;
    J[16] = 0.15 * t99 + 0.5E-1 * t16 * (-t9 * t52 + t84);
    J[17] = -0.1 * t2 * t98;
    J[18] = 0.0;
    J[19] = 0.0;
    J[20] = 0.0;
    t108 = t36 * t22;
    t111 = -t90 * t108 + t73 * t108;
    t112 = t16 * t111;
    t115 = t2 * t19 * t22;
    J[21] = 0.1 * t112 - 0.1 * t115;
    J[22] = 0.15 * t112 - 0.15 * t115 + 0.5E-1 * t16 * (t90 * t65 - t73 * t65) -
            0.5E-1 * t2 * t48;
    J[23] = -0.1 * t2 * t111 - 0.1 * t16 * t19 * t22;
    J[24] = 0.0;
    J[25] = 0.0;
    J[26] = 0.0;
    t138 = t4 * (t20 * t24 - t50) + t9 * (-t28 * t24 - t55);
    t139 = t16 * t138;
    t141 = t70 * t24;
    J[27] = 0.1 * t139 - 0.1 * t141;
    t145 = t22 * t44;
    J[28] =
        0.15 * t139 - 0.15 * t141 +
        0.5E-1 * t16 *
            (t4 * (-t20 * t145 - t25 * t44) + t9 * (t28 * t145 - t30 * t44)) +
        0.5E-1 * t70 * t145;
    J[29] = -0.1 * t2 * t138 - 0.1 * t37 * t24;
    J[30] = 0.0;
    J[31] = 0.0;
    J[32] = 0.0;
    J[33] = 0.0;
    t165 = t42 * t46 - t36 * t44;
    J[34] =
        0.5E-1 * t16 *
            (t4 * (t10 * t165 - t50 * t46) + t9 * (-t6 * t165 - t55 * t46)) +
        0.5E-1 * t2 * (-t62 * t46 - t19 * t44);
    J[35] = 0.0;
    return;
  }
}


x86 assembly (clang, -O0):
<TaskJacobian>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1f0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x18(%rbp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1040 <cos@plt>
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
call   1030 <sin@plt>
movsd  %xmm0,-0x170(%rbp)
ff
movsd  0x1e82(%rip),%xmm0
mulsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
call   1030 <sin@plt>
movsd  %xmm0,-0x1d0(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
call   1040 <cos@plt>
movsd  %xmm0,-0x20(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  0x1e36(%rip),%xmm1
mulsd  %xmm1,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x1b0(%rbp),%xmm1
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x60(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x8(%rax)
movsd  -0x18(%rbp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x60(%rbp),%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
call   1040 <cos@plt>
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
call   1030 <sin@plt>
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
call   1040 <cos@plt>
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x1d0(%rbp),%xmm1
ff
mulsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
call   1030 <sin@plt>
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x108(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  0x1bba(%rip),%xmm1
mulsd  -0x110(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x1b9b(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
call   1030 <sin@plt>
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
call   1040 <cos@plt>
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x100(%rbp),%xmm1
ff
mulsd  -0x138(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0x150(%rbp),%xmm1
ff
mulsd  -0x130(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x170(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0x160(%rbp),%xmm1
ff
mulsd  -0x130(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x178(%rbp)
ff
movsd  -0x178(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x138(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x180(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  0x19d1(%rip),%xmm1
mulsd  -0x110(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x19c2(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x1982(%rip),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x158(%rbp),%xmm4
ff
movsd  -0x1d0(%rbp),%xmm3
ff
mulsd  -0x168(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x192b(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x180(%rbp),%xmm2
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x188(%rbp)
ff
movsd  0x18fd(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0xf0(%rbp),%xmm2
ff
movsd  0x18e0(%rip),%xmm1
mulsd  -0x188(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x1d0(%rbp),%xmm0
ff
mulsd  -0x170(%rbp),%xmm0
ff
movsd  %xmm0,-0x190(%rbp)
ff
movsd  0x18bf(%rip),%xmm0
mulsd  -0x190(%rbp),%xmm0
ff
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0x198(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x60(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x1a0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0x1d0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x1a8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x1b8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  0x1774(%rip),%xmm0
mulsd  -0x1c0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x168(%rbp),%xmm0
ff
movsd  %xmm0,-0x1c8(%rbp)
ff
movsd  -0x1c0(%rbp),%xmm0
ff
movsd  0x1733(%rip),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x1d0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x158(%rbp),%xmm4
ff
movsd  -0x1c8(%rbp),%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  0x1703(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  0x16e2(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x1b8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x58(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mulsd  -0x20(%rbp),%xmm0
movsd  %xmm0,-0x1d8(%rbp)
ff
movsd  -0x1d8(%rbp),%xmm0
ff
movsd  -0x198(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x169d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x1e0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  0x1667(%rip),%xmm0
mulsd  -0x1d0(%rbp),%xmm0
ff
movsd  -0x20(%rbp),%xmm2
movsd  -0x1b0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0x98(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  -0x1e0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x1d0(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0xc8(%rbp),%xmm2
ff
movsd  -0x1a8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x1e8(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mulsd  -0x1e8(%rbp),%xmm0
ff
movsd  %xmm0,-0x1f0(%rbp)
ff
movsd  0x1586(%rip),%xmm0
mulsd  -0x1f0(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x78(%rax)
movsd  -0x1f0(%rbp),%xmm0
ff
movsd  0x155d(%rip),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x1d0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
movsd  -0x158(%rbp),%xmm4
ff
movsd  -0x1c8(%rbp),%xmm3
ff
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
movsd  0x152d(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x80(%rax)
movsd  0x1509(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x1e8(%rbp),%xmm0
ff
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x88(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x90(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x98(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xa0(%rax)
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x28(%rbp)
movsd  -0x1d8(%rbp),%xmm0
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  -0x28(%rbp),%xmm2
movsd  -0x190(%rbp),%xmm1
ff
mulsd  -0x28(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x78(%rbp),%xmm0
mulsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x98(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0x40(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  0x142c(%rip),%xmm1
mulsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x1408(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xa8(%rax)
movsd  -0x38(%rbp),%xmm0
movsd  0x13f7(%rip),%xmm1
mulsd  -0x40(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x13d3(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x13ab(%rip),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x1d8(%rbp),%xmm2
ff
movsd  -0x180(%rbp),%xmm4
ff
movsd  -0x190(%rbp),%xmm3
ff
mulsd  -0x180(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x1357(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xb0(%rax)
movsd  0x1324(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x30(%rbp),%xmm2
movsd  0x1307(%rip),%xmm1
mulsd  -0x78(%rbp),%xmm1
mulsd  -0x90(%rbp),%xmm1
ff
mulsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xb8(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xc0(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xc8(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xd0(%rax)
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm3
ff
movsd  -0x150(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  -0x1d0(%rbp),%xmm1
ff
movsd  -0xd0(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
movsd  -0xb8(%rbp),%xmm5
ff
movsd  -0x160(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x78(%rbp),%xmm0
mulsd  -0x50(%rbp),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x188(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0x68(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  0x11c3(%rip),%xmm1
mulsd  -0x68(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x119f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xd8(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mulsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x70(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  0x1179(%rip),%xmm1
mulsd  -0x68(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
movsd  0x1155(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0x112d(%rip),%xmm1
mulsd  -0x78(%rbp),%xmm1
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xa0(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
movsd  -0x70(%rbp),%xmm5
movsd  -0xc0(%rbp),%xmm3
ff
mulsd  -0x130(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
mulsd  %xmm5,%xmm4
addsd  %xmm3,%xmm4
movsd  -0x1d0(%rbp),%xmm3
ff
movsd  -0xd0(%rbp),%xmm5
ff
movsd  -0x70(%rbp),%xmm7
movsd  -0xe0(%rbp),%xmm6
ff
mulsd  -0x130(%rbp),%xmm6
ff
movq   %xmm6,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm6
mulsd  %xmm7,%xmm5
addsd  %xmm6,%xmm5
mulsd  %xmm5,%xmm3
mulsd  %xmm4,%xmm2
addsd  %xmm3,%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0x106d(%rip),%xmm0
mulsd  -0x188(%rbp),%xmm0
ff
movsd  -0x70(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xe0(%rax)
movsd  0x1054(%rip),%xmm0
mulsd  -0x98(%rbp),%xmm0
ff
movsd  -0x50(%rbp),%xmm2
movsd  0x1037(%rip),%xmm1
mulsd  -0x108(%rbp),%xmm1
ff
mulsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0xe8(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xf0(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0xf8(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x100(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x108(%rax)
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0x138(%rbp),%xmm2
ff
movsd  -0x100(%rbp),%xmm1
ff
mulsd  -0x130(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  0xf6c(%rip),%xmm0
mulsd  -0x78(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x20(%rbp),%xmm3
movsd  -0x80(%rbp),%xmm4
movsd  -0x150(%rbp),%xmm1
ff
mulsd  -0x138(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm4,%xmm3
addsd  %xmm1,%xmm3
movsd  -0x1d0(%rbp),%xmm1
ff
movsd  -0x170(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
movsd  -0x80(%rbp),%xmm6
movsd  -0x160(%rbp),%xmm5
ff
mulsd  -0x138(%rbp),%xmm5
ff
movq   %xmm5,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm5
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm4,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
movsd  0xeb7(%rip),%xmm1
mulsd  -0x98(%rbp),%xmm1
ff
movsd  -0x178(%rbp),%xmm3
ff
movq   %xmm3,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm3
movsd  -0x138(%rbp),%xmm5
ff
movsd  -0x90(%rbp),%xmm4
ff
mulsd  -0x130(%rbp),%xmm4
ff
movq   %xmm4,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm4
mulsd  %xmm5,%xmm3
addsd  %xmm4,%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  %xmm0,0x110(%rax)
mov    -0x8(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x118(%rax)
add    $0x1f0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<TaskJacobian>:
push   %r14
push   %rbx
sub    $0x1e8,%rsp
mov    %rsi,%r14
mov    %rdi,%rbx
movsd  (%rsi),%xmm0
movsd  %xmm0,0x8(%rsp)
call   1030 <sin@plt>
movaps %xmm0,0xb0(%rsp)
movsd  0x8(%r14),%xmm0
movsd  %xmm0,0x20(%rsp)
call   1040 <cos@plt>
movsd  %xmm0,0x18(%rsp)
movsd  0x10(%r14),%xmm0
movsd  %xmm0,0x70(%rsp)
call   1030 <sin@plt>
movapd %xmm0,0x100(%rsp)
movsd  0xe80(%rip),%xmm2
movsd  0x18(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x98(%rsp)
movsd  0x20(%rsp),%xmm0
call   1030 <sin@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x70(%rsp),%xmm0
call   1040 <cos@plt>
movapd %xmm0,0x20(%rsp)
movapd %xmm0,%xmm1
movsd  0xe3b(%rip),%xmm0
mulsd  %xmm0,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,0xf0(%rsp)
movsd  0x10(%rsp),%xmm2
mulsd  %xmm1,%xmm2
addsd  0x98(%rsp),%xmm2
movapd %xmm2,0x140(%rsp)
movapd 0xb0(%rsp),%xmm1
xorpd  0xe3d(%rip),%xmm1
movapd %xmm1,0x1a0(%rsp)
movapd %xmm2,%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,(%rbx)
movq   $0x0,0x8(%rbx)
movsd  0x8(%rsp),%xmm0
call   1040 <cos@plt>
movapd %xmm0,0x70(%rsp)
movapd %xmm0,%xmm1
xorpd  0xe03(%rip),%xmm1
mulsd  0x140(%rsp),%xmm1
movsd  %xmm1,0x10(%rbx)
movsd  0x18(%r14),%xmm0
movsd  %xmm0,0x60(%rsp)
call   1040 <cos@plt>
movsd  %xmm0,0x8(%rsp)
movapd 0x20(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x110(%rsp)
movsd  0x20(%r14),%xmm0
movsd  %xmm0,0x30(%rsp)
call   1030 <sin@plt>
movaps %xmm0,0xa0(%rsp)
movsd  0x30(%rsp),%xmm0
call   1040 <cos@plt>
movsd  %xmm0,0x48(%rsp)
movapd 0x100(%rsp),%xmm1
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
movapd %xmm2,0x1c0(%rsp)
movapd 0x110(%rsp),%xmm4
movapd 0xa0(%rsp),%xmm3
mulsd  %xmm3,%xmm4
addsd  %xmm2,%xmm4
movapd %xmm4,0xc0(%rsp)
movapd %xmm1,%xmm2
mulsd  0x8(%rsp),%xmm2
movapd %xmm2,0x160(%rsp)
movapd 0x20(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x1b0(%rsp)
movapd %xmm2,%xmm0
mulsd  %xmm3,%xmm0
subsd  %xmm0,%xmm1
movapd %xmm1,0xe0(%rsp)
movsd  0x10(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movsd  0x18(%rsp),%xmm1
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,0x180(%rsp)
movapd 0xb0(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movapd %xmm0,0x50(%rsp)
movsd  0x60(%rsp),%xmm0
call   1030 <sin@plt>
movapd %xmm0,0x60(%rsp)
movapd 0x70(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm1,0x1d0(%rsp)
movapd 0xa0(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,0xd0(%rsp)
movsd  0xc7b(%rip),%xmm2
mulsd  %xmm2,%xmm0
movapd 0x50(%rsp),%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x18(%rbx)
movsd  0x8(%rsp),%xmm0
mulsd  0x48(%rsp),%xmm0
movsd  %xmm0,0x90(%rsp)
movsd  0x28(%r14),%xmm0
movsd  %xmm0,0x30(%rsp)
call   1030 <sin@plt>
movsd  %xmm0,0x88(%rsp)
movsd  0x30(%rsp),%xmm0
call   1040 <cos@plt>
movapd 0x60(%rsp),%xmm13
movapd %xmm13,%xmm1
mulsd  %xmm0,%xmm1
movapd %xmm0,%xmm6
movsd  %xmm0,0x128(%rsp)
movsd  0x90(%rsp),%xmm0
movsd  0x88(%rsp),%xmm14
mulsd  %xmm14,%xmm0
addsd  %xmm1,%xmm0
movapd %xmm0,%xmm7
movapd %xmm0,0x190(%rsp)
movapd 0x100(%rsp),%xmm3
movapd %xmm3,%xmm0
movapd 0xc07(%rip),%xmm2
xorpd  %xmm2,%xmm0
movapd 0xa0(%rsp),%xmm5
mulsd  %xmm5,%xmm0
movapd %xmm0,0x150(%rsp)
mulsd  %xmm14,%xmm0
movapd 0x20(%rsp),%xmm1
movapd %xmm1,%xmm15
mulsd  %xmm7,%xmm15
addsd  %xmm0,%xmm15
movapd %xmm1,%xmm0
xorpd  %xmm2,%xmm0
mulsd  %xmm5,%xmm0
movapd %xmm0,0x130(%rsp)
movapd %xmm5,%xmm12
movapd %xmm0,%xmm5
mulsd  %xmm14,%xmm5
movapd %xmm3,%xmm0
movapd %xmm3,%xmm10
mulsd  %xmm7,%xmm0
subsd  %xmm0,%xmm5
movapd %xmm13,%xmm8
xorpd  %xmm2,%xmm8
movsd  0x48(%rsp),%xmm9
mulsd  %xmm9,%xmm8
movapd %xmm8,0x30(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  %xmm6,%xmm0
mulsd  %xmm14,%xmm8
addsd  %xmm0,%xmm8
movsd  0xb36(%rip),%xmm0
movsd  0xd0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movapd 0x50(%rsp),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm1,%xmm6
movsd  0x10(%rsp),%xmm7
movapd %xmm7,%xmm0
mulsd  %xmm5,%xmm0
movsd  0x18(%rsp),%xmm3
movapd %xmm3,%xmm1
mulsd  %xmm15,%xmm1
addsd  %xmm0,%xmm1
movsd  0xafa(%rip),%xmm0
movapd 0xb0(%rsp),%xmm2
mulsd  %xmm2,%xmm0
movapd %xmm0,0xd0(%rsp)
mulsd  %xmm0,%xmm1
subsd  %xmm1,%xmm6
movapd %xmm3,%xmm0
movapd 0xe0(%rsp),%xmm3
mulsd  %xmm0,%xmm3
movapd %xmm7,%xmm1
movapd 0xc0(%rsp),%xmm7
mulsd  %xmm1,%xmm7
subsd  %xmm7,%xmm3
movapd %xmm2,%xmm7
mulsd  %xmm13,%xmm7
mulsd  %xmm1,%xmm10
movapd %xmm10,0x50(%rsp)
movapd %xmm10,%xmm2
mulsd  0xaa4(%rip),%xmm2
movapd %xmm2,0xc0(%rsp)
movapd 0xf0(%rsp),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
movapd %xmm1,0xf0(%rsp)
movapd 0x70(%rsp),%xmm0
mulsd  %xmm0,%xmm1
movapd %xmm1,0x170(%rsp)
movapd %xmm0,%xmm11
mulsd  %xmm3,%xmm11
unpcklpd %xmm0,%xmm3
movapd %xmm3,0xe0(%rsp)
movapd %xmm9,%xmm10
movapd %xmm9,%xmm1
mulsd  %xmm7,%xmm1
movsd  %xmm1,0x120(%rsp)
movapd %xmm0,%xmm3
movapd %xmm0,%xmm4
unpcklpd %xmm7,%xmm0
movapd %xmm0,0x70(%rsp)
movapd %xmm7,%xmm0
movsd  0xa1a(%rip),%xmm7
mulsd  %xmm7,%xmm0
mulsd  %xmm12,%xmm0
unpcklpd %xmm0,%xmm6
movsd  0x18(%rsp),%xmm2
movapd %xmm2,%xmm1
mulsd  0x20(%rsp),%xmm1
movsd  0x9d4(%rip),%xmm9
mulsd  %xmm1,%xmm9
movapd %xmm12,%xmm0
mulsd  %xmm13,%xmm0
movapd 0x50(%rsp),%xmm12
movapd %xmm12,%xmm13
mulsd  %xmm0,%xmm13
mulsd  %xmm1,%xmm0
mulsd  %xmm8,%xmm12
movapd %xmm12,0x50(%rsp)
mulsd  %xmm8,%xmm1
unpcklpd 0x180(%rsp),%xmm8
unpcklpd %xmm3,%xmm3
mulpd  0x9d9(%rip),%xmm3
mulpd  %xmm3,%xmm8
addpd  %xmm6,%xmm8
movupd %xmm8,0x20(%rbx)
movaps 0x170(%rsp),%xmm6
movsd  %xmm6,0x30(%rbx)
movaps 0x140(%rsp),%xmm6
xorps  0x99d(%rip),%xmm6
movlps %xmm6,0x38(%rbx)
movapd 0x1a0(%rsp),%xmm14
movapd 0xf0(%rsp),%xmm6
mulsd  %xmm14,%xmm6
movsd  %xmm6,0x40(%rbx)
mulsd  %xmm2,%xmm5
movsd  0x10(%rsp),%xmm6
mulsd  %xmm6,%xmm15
subsd  %xmm15,%xmm5
mulsd  %xmm3,%xmm5
movapd %xmm11,%xmm15
movsd  0x946(%rip),%xmm8
mulsd  %xmm8,%xmm11
addsd  %xmm5,%xmm11
addsd  0xc0(%rsp),%xmm9
movapd %xmm9,%xmm12
subsd  %xmm0,%xmm13
movapd 0x160(%rsp),%xmm0
mulsd  %xmm10,%xmm0
movapd 0x130(%rsp),%xmm5
subsd  %xmm0,%xmm5
movapd 0x110(%rsp),%xmm0
mulsd  %xmm10,%xmm0
addsd  0x150(%rsp),%xmm0
mulsd  %xmm6,%xmm5
movapd %xmm6,%xmm9
mulsd  %xmm2,%xmm0
addsd  %xmm5,%xmm0
movapd 0xb0(%rsp),%xmm2
movapd %xmm2,%xmm5
movsd  0x8a8(%rip),%xmm6
mulsd  %xmm6,%xmm5
mulsd  %xmm13,%xmm4
mulsd  %xmm5,%xmm13
movapd 0x8e9(%rip),%xmm10
movsd  %xmm0,%xmm10
mulsd  %xmm5,%xmm0
unpcklpd %xmm12,%xmm5
movapd 0xe0(%rsp),%xmm6
mulpd  %xmm5,%xmm6
movsd  0x88e(%rip),%xmm5
mulsd  %xmm9,%xmm5
mulsd  0x20(%rsp),%xmm5
subsd  0x98(%rsp),%xmm5
mulsd  %xmm7,%xmm15
movsd  %xmm15,0x48(%rbx)
movsd  %xmm11,0x50(%rbx)
movupd %xmm6,0x58(%rbx)
movsd  %xmm5,0x68(%rbx)
mulsd  %xmm14,%xmm12
movsd  %xmm12,0x70(%rbx)
movsd  %xmm15,0x78(%rbx)
movsd  %xmm11,0x80(%rbx)
movlpd %xmm6,0x88(%rbx)
movapd %xmm2,%xmm5
movsd  0x8(%rsp),%xmm11
mulsd  %xmm11,%xmm5
movapd 0xa0(%rsp),%xmm15
mulsd  %xmm15,%xmm5
movapd %xmm5,%xmm9
mulsd  0x7f9(%rip),%xmm5
movapd %xmm4,%xmm6
mulsd  %xmm8,%xmm6
addsd  %xmm5,%xmm6
subsd  0x50(%rsp),%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm6,%xmm1
movsd  0x7ce(%rip),%xmm2
mulsd  %xmm2,%xmm9
unpcklpd %xmm1,%xmm9
movapd %xmm3,%xmm1
unpckhpd %xmm3,%xmm1
mulsd  %xmm11,%xmm1
mulsd  %xmm15,%xmm1
movsd  0x88(%rsp),%xmm6
mulsd  %xmm6,%xmm15
movapd 0x1c0(%rsp),%xmm5
mulsd  %xmm6,%xmm5
movapd 0x1b0(%rsp),%xmm12
mulsd  %xmm6,%xmm12
movapd 0x60(%rsp),%xmm2
mulsd  %xmm6,%xmm2
movapd %xmm2,0x60(%rsp)
mulsd  %xmm11,%xmm6
movsd  0x128(%rsp),%xmm11
movapd 0x30(%rsp),%xmm2
mulsd  %xmm11,%xmm2
subsd  %xmm6,%xmm2
movapd 0xd0(%rsp),%xmm6
mulsd  %xmm6,%xmm2
movapd %xmm2,0x30(%rsp)
movapd 0x776(%rip),%xmm14
xorpd  %xmm14,%xmm6
unpcklpd %xmm6,%xmm4
movapd %xmm7,%xmm6
unpcklpd 0x190(%rsp),%xmm6
mulpd  %xmm4,%xmm6
addpd  %xmm9,%xmm6
xorpd  %xmm9,%xmm9
movupd %xmm9,0x90(%rbx)
movq   $0x0,0xa0(%rbx)
movupd %xmm6,0xa8(%rbx)
addsd  %xmm1,%xmm13
movsd  %xmm13,0xb8(%rbx)
movsd  0x120(%rsp),%xmm4
movapd %xmm4,%xmm1
mulsd  0x6e3(%rip),%xmm4
mulpd  0x70(%rsp),%xmm10
mulsd  %xmm10,%xmm8
addsd  %xmm4,%xmm8
movapd 0x110(%rsp),%xmm4
xorpd  %xmm14,%xmm4
mulsd  %xmm15,%xmm4
subsd  %xmm5,%xmm4
movapd 0x160(%rsp),%xmm5
mulsd  %xmm15,%xmm5
subsd  %xmm12,%xmm5
movsd  0x10(%rsp),%xmm2
mulsd  %xmm2,%xmm5
movsd  0x18(%rsp),%xmm6
mulsd  %xmm6,%xmm4
addsd  %xmm5,%xmm4
mulsd  %xmm3,%xmm4
addsd  %xmm8,%xmm4
movsd  0x677(%rip),%xmm5
mulsd  %xmm5,%xmm1
unpcklpd %xmm4,%xmm1
unpcklpd %xmm15,%xmm7
mulpd  %xmm10,%xmm7
addpd  %xmm1,%xmm7
movupd %xmm9,0xc0(%rbx)
movq   $0x0,0xd0(%rbx)
movupd %xmm7,0xd8(%rbx)
movapd 0x1d0(%rsp),%xmm1
mulsd  %xmm5,%xmm1
mulsd  0x48(%rsp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,0xe8(%rbx)
movsd  0x90(%rsp),%xmm1
mulsd  %xmm11,%xmm1
subsd  0x60(%rsp),%xmm1
movapd 0x150(%rsp),%xmm5
mulsd  %xmm11,%xmm5
movapd 0x20(%rsp),%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm5,%xmm0
movapd 0x130(%rsp),%xmm5
mulsd  %xmm11,%xmm5
mulsd  0x100(%rsp),%xmm1
subsd  %xmm1,%xmm5
mulsd  %xmm2,%xmm5
mulsd  %xmm6,%xmm0
addsd  %xmm5,%xmm0
mulsd  %xmm3,%xmm0
addsd  0x30(%rsp),%xmm0
movupd %xmm9,0xf0(%rbx)
movupd %xmm9,0x100(%rbx)
movsd  %xmm0,0x110(%rbx)
movq   $0x0,0x118(%rbx)
add    $0x1e8,%rsp
pop    %rbx
pop    %r14
ret

LLVM IR (-O0):
define void @TaskJacobian(double* %0, double* %1) {
%3 = alloca double*
%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
%17 = alloca double
%18 = alloca double
%19 = alloca double
%20 = alloca double
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca double
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
%43 = alloca double
%44 = alloca double
%45 = alloca double
%46 = alloca double
%47 = alloca double
%48 = alloca double
%49 = alloca double
%50 = alloca double
%51 = alloca double
%52 = alloca double
%53 = alloca double
%54 = alloca double
%55 = alloca double
%56 = alloca double
%57 = alloca double
%58 = alloca double
%59 = alloca double
%60 = alloca double
%61 = alloca double
%62 = alloca double
%63 = alloca double
%64 = alloca double
store double* %0, double** %3
store double* %1, double** %4
%65 = load double*, double** %4
%66 = getelementptr inbounds double, double* %65, i64 0
%67 = load double, double* %66
store double %67, double* %5
%68 = load double, double* %5
%69 = call double @sin(double %68)
store double %69, double* %21
%70 = load double*, double** %4
%71 = getelementptr inbounds double, double* %70, i64 1
%72 = load double, double* %71
store double %72, double* %29
%73 = load double, double* %29
%74 = call double @cos(double %73)
store double %74, double* %37
%75 = load double*, double** %4
%76 = getelementptr inbounds double, double* %75, i64 2
%77 = load double, double* %76
store double %77, double* %43
%78 = load double, double* %43
%79 = call double @sin(double %78)
store double %79, double* %48
%80 = load double, double* %37
%81 = fmul double 4.500000e-01, %80
%82 = load double, double* %48
%83 = fmul double %81, %82
store double %83, double* %56
%84 = load double, double* %29
%85 = call double @sin(double %84)
store double %85, double* %60
%86 = load double, double* %43
%87 = call double @cos(double %86)
store double %87, double* %6
%88 = load double, double* %6
%89 = call double @llvm.fmuladd.f64(double 4.500000e-01, double %88, double 4.500000e-01)
store double %89, double* %11
%90 = load double, double* %56
%91 = load double, double* %60
%92 = load double, double* %11
%93 = call double @llvm.fmuladd.f64(double %91, double %92, double %90)
store double %93, double* %14
%94 = load double, double* %21
%95 = fneg double %94
%96 = load double, double* %14
%97 = fmul double %95, %96
%98 = load double*, double** %3
%99 = getelementptr inbounds double, double* %98, i64 0
store double %97, double* %99
%100 = load double*, double** %3
%101 = getelementptr inbounds double, double* %100, i64 1
store double 0.000000e+00, double* %101
%102 = load double, double* %5
%103 = call double @cos(double %102)
store double %103, double* %17
%104 = load double, double* %17
%105 = fneg double %104
%106 = load double, double* %14
%107 = fmul double %105, %106
%108 = load double*, double** %3
%109 = getelementptr inbounds double, double* %108, i64 2
store double %107, double* %109
%110 = load double*, double** %4
%111 = getelementptr inbounds double, double* %110, i64 3
%112 = load double, double* %111
store double %112, double* %19
%113 = load double, double* %19
%114 = call double @cos(double %113)
store double %114, double* %20
%115 = load double, double* %6
%116 = load double, double* %20
%117 = fmul double %115, %116
store double %117, double* %22
%118 = load double*, double** %4
%119 = getelementptr inbounds double, double* %118, i64 4
%120 = load double, double* %119
store double %120, double* %23
%121 = load double, double* %23
%122 = call double @sin(double %121)
store double %122, double* %24
%123 = load double, double* %23
%124 = call double @cos(double %123)
store double %124, double* %25
%125 = load double, double* %48
%126 = load double, double* %25
%127 = fmul double %125, %126
store double %127, double* %26
%128 = load double, double* %22
%129 = load double, double* %24
%130 = load double, double* %26
%131 = call double @llvm.fmuladd.f64(double %128, double %129, double %130)
store double %131, double* %27
%132 = load double, double* %48
%133 = load double, double* %20
%134 = fmul double %132, %133
store double %134, double* %28
%135 = load double, double* %6
%136 = load double, double* %25
%137 = fmul double %135, %136
store double %137, double* %30
%138 = load double, double* %28
%139 = fneg double %138
%140 = load double, double* %24
%141 = load double, double* %30
%142 = call double @llvm.fmuladd.f64(double %139, double %140, double %141)
store double %142, double* %31
%143 = load double, double* %37
%144 = load double, double* %27
%145 = load double, double* %60
%146 = load double, double* %31
%147 = fmul double %145, %146
%148 = call double @llvm.fmuladd.f64(double %143, double %144, double %147)
store double %148, double* %32
%149 = load double, double* %21
%150 = load double, double* %32
%151 = fmul double %149, %150
store double %151, double* %33
%152 = load double, double* %19
%153 = call double @sin(double %152)
store double %153, double* %34
%154 = load double, double* %17
%155 = load double, double* %34
%156 = fmul double %154, %155
store double %156, double* %35
%157 = load double, double* %35
%158 = load double, double* %24
%159 = fmul double %157, %158
store double %159, double* %36
%160 = load double, double* %33
%161 = load double, double* %36
%162 = fmul double 1.000000e-01, %161
%163 = fneg double %162
%164 = call double @llvm.fmuladd.f64(double -1.000000e-01, double %160, double %163)
%165 = load double*, double** %3
%166 = getelementptr inbounds double, double* %165, i64 3
store double %164, double* %166
%167 = load double, double* %20
%168 = load double, double* %25
%169 = fmul double %167, %168
store double %169, double* %38
%170 = load double*, double** %4
%171 = getelementptr inbounds double, double* %170, i64 5
%172 = load double, double* %171
store double %172, double* %39
%173 = load double, double* %39
%174 = call double @sin(double %173)
store double %174, double* %40
%175 = load double, double* %39
%176 = call double @cos(double %175)
store double %176, double* %41
%177 = load double, double* %38
%178 = load double, double* %40
%179 = load double, double* %34
%180 = load double, double* %41
%181 = fmul double %179, %180
%182 = call double @llvm.fmuladd.f64(double %177, double %178, double %181)
store double %182, double* %42
%183 = load double, double* %48
%184 = load double, double* %24
%185 = fmul double %183, %184
store double %185, double* %44
%186 = load double, double* %6
%187 = load double, double* %42
%188 = load double, double* %44
%189 = load double, double* %40
%190 = fmul double %188, %189
%191 = fneg double %190
%192 = call double @llvm.fmuladd.f64(double %186, double %187, double %191)
store double %192, double* %45
%193 = load double, double* %6
%194 = load double, double* %24
%195 = fmul double %193, %194
store double %195, double* %46
%196 = load double, double* %48
%197 = fneg double %196
%198 = load double, double* %42
%199 = load double, double* %46
%200 = load double, double* %40
%201 = fmul double %199, %200
%202 = fneg double %201
%203 = call double @llvm.fmuladd.f64(double %197, double %198, double %202)
store double %203, double* %47
%204 = load double, double* %34
%205 = load double, double* %25
%206 = fmul double %204, %205
store double %206, double* %49
%207 = load double, double* %49
%208 = fneg double %207
%209 = load double, double* %40
%210 = load double, double* %20
%211 = load double, double* %41
%212 = fmul double %210, %211
%213 = call double @llvm.fmuladd.f64(double %208, double %209, double %212)
store double %213, double* %50
%214 = load double, double* %33
%215 = load double, double* %36
%216 = fmul double 1.500000e-01, %215
%217 = fneg double %216
%218 = call double @llvm.fmuladd.f64(double -1.500000e-01, double %214, double %217)
%219 = load double, double* %21
%220 = fmul double 5.000000e-02, %219
%221 = load double, double* %37
%222 = load double, double* %45
%223 = load double, double* %60
%224 = load double, double* %47
%225 = fmul double %223, %224
%226 = call double @llvm.fmuladd.f64(double %221, double %222, double %225)
%227 = fneg double %220
%228 = call double @llvm.fmuladd.f64(double %227, double %226, double %218)
%229 = load double, double* %17
%230 = fmul double 5.000000e-02, %229
%231 = load double, double* %50
%232 = call double @llvm.fmuladd.f64(double %230, double %231, double %228)
%233 = load double*, double** %3
%234 = getelementptr inbounds double, double* %233, i64 4
store double %232, double* %234
%235 = load double, double* %21
%236 = load double, double* %34
%237 = fmul double %235, %236
store double %237, double* %51
%238 = load double, double* %17
%239 = fmul double -1.000000e-01, %238
%240 = load double, double* %32
%241 = load double, double* %51
%242 = fmul double 1.000000e-01, %241
%243 = load double, double* %24
%244 = fmul double %242, %243
%245 = call double @llvm.fmuladd.f64(double %239, double %240, double %244)
%246 = load double*, double** %3
%247 = getelementptr inbounds double, double* %246, i64 5
store double %245, double* %247
%248 = load double, double* %60
%249 = load double, double* %48
%250 = fmul double %248, %249
store double %250, double* %52
%251 = load double, double* %52
%252 = fmul double 4.500000e-01, %251
store double %252, double* %53
%253 = load double, double* %53
%254 = fneg double %253
%255 = load double, double* %37
%256 = load double, double* %11
%257 = call double @llvm.fmuladd.f64(double %255, double %256, double %254)
store double %257, double* %54
%258 = load double, double* %17
%259 = load double, double* %54
%260 = fmul double %258, %259
%261 = load double*, double** %3
%262 = getelementptr inbounds double, double* %261, i64 6
store double %260, double* %262
%263 = load double, double* %14
%264 = fneg double %263
%265 = load double*, double** %3
%266 = getelementptr inbounds double, double* %265, i64 7
store double %264, double* %266
%267 = load double, double* %21
%268 = fneg double %267
%269 = load double, double* %54
%270 = fmul double %268, %269
%271 = load double*, double** %3
%272 = getelementptr inbounds double, double* %271, i64 8
store double %270, double* %272
%273 = load double, double* %37
%274 = load double, double* %31
%275 = fmul double %273, %274
store double %275, double* %55
%276 = load double, double* %60
%277 = fneg double %276
%278 = load double, double* %27
%279 = load double, double* %55
%280 = call double @llvm.fmuladd.f64(double %277, double %278, double %279)
store double %280, double* %57
%281 = load double, double* %17
%282 = load double, double* %57
%283 = fmul double %281, %282
store double %283, double* %58
%284 = load double, double* %58
%285 = fmul double 1.000000e-01, %284
%286 = load double*, double** %3
%287 = getelementptr inbounds double, double* %286, i64 9
store double %285, double* %287
%288 = load double, double* %37
%289 = load double, double* %47
%290 = fmul double %288, %289
store double %290, double* %59
%291 = load double, double* %58
%292 = load double, double* %17
%293 = fmul double 5.000000e-02, %292
%294 = load double, double* %60
%295 = fneg double %294
%296 = load double, double* %45
%297 = load double, double* %59
%298 = call double @llvm.fmuladd.f64(double %295, double %296, double %297)
%299 = fmul double %293, %298
%300 = call double @llvm.fmuladd.f64(double 1.500000e-01, double %291, double %299)
%301 = load double*, double** %3
%302 = getelementptr inbounds double, double* %301, i64 10
store double %300, double* %302
%303 = load double, double* %21
%304 = fmul double -1.000000e-01, %303
%305 = load double, double* %57
%306 = fmul double %304, %305
%307 = load double*, double** %3
%308 = getelementptr inbounds double, double* %307, i64 11
store double %306, double* %308
%309 = load double, double* %37
%310 = load double, double* %6
%311 = fmul double %309, %310
store double %311, double* %61
%312 = load double, double* %61
%313 = load double, double* %53
%314 = fneg double %313
%315 = call double @llvm.fmuladd.f64(double 4.500000e-01, double %312, double %314)
store double %315, double* %62
%316 = load double, double* %17
%317 = load double, double* %62
%318 = fmul double %316, %317
%319 = load double*, double** %3
%320 = getelementptr inbounds double, double* %319, i64 12
store double %318, double* %320
%321 = load double, double* %60
%322 = fmul double -4.500000e-01, %321
%323 = load double, double* %6
%324 = load double, double* %56
%325 = fneg double %324
%326 = call double @llvm.fmuladd.f64(double %322, double %323, double %325)
%327 = load double*, double** %3
%328 = getelementptr inbounds double, double* %327, i64 13
store double %326, double* %328
%329 = load double, double* %21
%330 = fneg double %329
%331 = load double, double* %62
%332 = fmul double %330, %331
%333 = load double*, double** %3
%334 = getelementptr inbounds double, double* %333, i64 14
store double %332, double* %334
%335 = load double, double* %60
%336 = fneg double %335
%337 = load double, double* %27
%338 = load double, double* %55
%339 = call double @llvm.fmuladd.f64(double %336, double %337, double %338)
store double %339, double* %63
%340 = load double, double* %17
%341 = load double, double* %63
%342 = fmul double %340, %341
store double %342, double* %64
%343 = load double, double* %64
%344 = fmul double 1.000000e-01, %343
%345 = load double*, double** %3
%346 = getelementptr inbounds double, double* %345, i64 15
store double %344, double* %346
%347 = load double, double* %64
%348 = load double, double* %17
%349 = fmul double 5.000000e-02, %348
%350 = load double, double* %60
%351 = fneg double %350
%352 = load double, double* %45
%353 = load double, double* %59
%354 = call double @llvm.fmuladd.f64(double %351, double %352, double %353)
%355 = fmul double %349, %354
%356 = call double @llvm.fmuladd.f64(double 1.500000e-01, double %347, double %355)
%357 = load double*, double** %3
%358 = getelementptr inbounds double, double* %357, i64 16
store double %356, double* %358
%359 = load double, double* %21
%360 = fmul double -1.000000e-01, %359
%361 = load double, double* %63
%362 = fmul double %360, %361
%363 = load double*, double** %3
%364 = getelementptr inbounds double, double* %363, i64 17
store double %362, double* %364
%365 = load double*, double** %3
%366 = getelementptr inbounds double, double* %365, i64 18
store double 0.000000e+00, double* %366
%367 = load double*, double** %3
%368 = getelementptr inbounds double, double* %367, i64 19
store double 0.000000e+00, double* %368
%369 = load double*, double** %3
%370 = getelementptr inbounds double, double* %369, i64 20
store double 0.000000e+00, double* %370
%371 = load double, double* %34
%372 = load double, double* %24
%373 = fmul double %371, %372
store double %373, double* %7
%374 = load double, double* %61
%375 = fneg double %374
%376 = load double, double* %7
%377 = load double, double* %52
%378 = load double, double* %7
%379 = fmul double %377, %378
%380 = call double @llvm.fmuladd.f64(double %375, double %376, double %379)
store double %380, double* %8
%381 = load double, double* %17
%382 = load double, double* %8
%383 = fmul double %381, %382
store double %383, double* %9
%384 = load double, double* %21
%385 = load double, double* %20
%386 = fmul double %384, %385
%387 = load double, double* %24
%388 = fmul double %386, %387
store double %388, double* %10
%389 = load double, double* %9
%390 = load double, double* %10
%391 = fmul double 1.000000e-01, %390
%392 = fneg double %391
%393 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %389, double %392)
%394 = load double*, double** %3
%395 = getelementptr inbounds double, double* %394, i64 21
store double %393, double* %395
%396 = load double, double* %9
%397 = load double, double* %10
%398 = fmul double 1.500000e-01, %397
%399 = fneg double %398
%400 = call double @llvm.fmuladd.f64(double 1.500000e-01, double %396, double %399)
%401 = load double, double* %17
%402 = fmul double 5.000000e-02, %401
%403 = load double, double* %61
%404 = load double, double* %50
%405 = load double, double* %52
%406 = load double, double* %50
%407 = fmul double %405, %406
%408 = fneg double %407
%409 = call double @llvm.fmuladd.f64(double %403, double %404, double %408)
%410 = call double @llvm.fmuladd.f64(double %402, double %409, double %400)
%411 = load double, double* %21
%412 = fmul double 5.000000e-02, %411
%413 = load double, double* %42
%414 = fneg double %412
%415 = call double @llvm.fmuladd.f64(double %414, double %413, double %410)
%416 = load double*, double** %3
%417 = getelementptr inbounds double, double* %416, i64 22
store double %415, double* %417
%418 = load double, double* %21
%419 = fmul double -1.000000e-01, %418
%420 = load double, double* %8
%421 = load double, double* %17
%422 = fmul double 1.000000e-01, %421
%423 = load double, double* %20
%424 = fmul double %422, %423
%425 = load double, double* %24
%426 = fmul double %424, %425
%427 = fneg double %426
%428 = call double @llvm.fmuladd.f64(double %419, double %420, double %427)
%429 = load double*, double** %3
%430 = getelementptr inbounds double, double* %429, i64 23
store double %428, double* %430
%431 = load double*, double** %3
%432 = getelementptr inbounds double, double* %431, i64 24
store double 0.000000e+00, double* %432
%433 = load double*, double** %3
%434 = getelementptr inbounds double, double* %433, i64 25
store double 0.000000e+00, double* %434
%435 = load double*, double** %3
%436 = getelementptr inbounds double, double* %435, i64 26
store double 0.000000e+00, double* %436
%437 = load double, double* %37
%438 = load double, double* %22
%439 = load double, double* %25
%440 = load double, double* %44
%441 = fneg double %440
%442 = call double @llvm.fmuladd.f64(double %438, double %439, double %441)
%443 = load double, double* %60
%444 = load double, double* %28
%445 = fneg double %444
%446 = load double, double* %25
%447 = load double, double* %46
%448 = fneg double %447
%449 = call double @llvm.fmuladd.f64(double %445, double %446, double %448)
%450 = fmul double %443, %449
%451 = call double @llvm.fmuladd.f64(double %437, double %442, double %450)
store double %451, double* %12
%452 = load double, double* %17
%453 = load double, double* %12
%454 = fmul double %452, %453
store double %454, double* %13
%455 = load double, double* %51
%456 = load double, double* %25
%457 = fmul double %455, %456
store double %457, double* %15
%458 = load double, double* %13
%459 = load double, double* %15
%460 = fmul double 1.000000e-01, %459
%461 = fneg double %460
%462 = call double @llvm.fmuladd.f64(double 1.000000e-01, double %458, double %461)
%463 = load double*, double** %3
%464 = getelementptr inbounds double, double* %463, i64 27
store double %462, double* %464
%465 = load double, double* %24
%466 = load double, double* %40
%467 = fmul double %465, %466
store double %467, double* %16
%468 = load double, double* %13
%469 = load double, double* %15
%470 = fmul double 1.500000e-01, %469
%471 = fneg double %470
%472 = call double @llvm.fmuladd.f64(double 1.500000e-01, double %468, double %471)
%473 = load double, double* %17
%474 = fmul double 5.000000e-02, %473
%475 = load double, double* %37
%476 = load double, double* %22
%477 = fneg double %476
%478 = load double, double* %16
%479 = load double, double* %26
%480 = load double, double* %40
%481 = fmul double %479, %480
%482 = fneg double %481
%483 = call double @llvm.fmuladd.f64(double %477, double %478, double %482)
%484 = load double, double* %60
%485 = load double, double* %28
%486 = load double, double* %16
%487 = load double, double* %30
%488 = load double, double* %40
%489 = fmul double %487, %488
%490 = fneg double %489
%491 = call double @llvm.fmuladd.f64(double %485, double %486, double %490)
%492 = fmul double %484, %491
%493 = call double @llvm.fmuladd.f64(double %475, double %483, double %492)
%494 = call double @llvm.fmuladd.f64(double %474, double %493, double %472)
%495 = load double, double* %51
%496 = fmul double 5.000000e-02, %495
%497 = load double, double* %16
%498 = call double @llvm.fmuladd.f64(double %496, double %497, double %494)
%499 = load double*, double** %3
%500 = getelementptr inbounds double, double* %499, i64 28
store double %498, double* %500
%501 = load double, double* %21
%502 = fmul double -1.000000e-01, %501
%503 = load double, double* %12
%504 = load double, double* %35
%505 = fmul double 1.000000e-01, %504
%506 = load double, double* %25
%507 = fmul double %505, %506
%508 = fneg double %507
%509 = call double @llvm.fmuladd.f64(double %502, double %503, double %508)
%510 = load double*, double** %3
%511 = getelementptr inbounds double, double* %510, i64 29
store double %509, double* %511
%512 = load double*, double** %3
%513 = getelementptr inbounds double, double* %512, i64 30
store double 0.000000e+00, double* %513
%514 = load double*, double** %3
%515 = getelementptr inbounds double, double* %514, i64 31
store double 0.000000e+00, double* %515
%516 = load double*, double** %3
%517 = getelementptr inbounds double, double* %516, i64 32
store double 0.000000e+00, double* %517
%518 = load double*, double** %3
%519 = getelementptr inbounds double, double* %518, i64 33
store double 0.000000e+00, double* %519
%520 = load double, double* %38
%521 = load double, double* %41
%522 = load double, double* %34
%523 = load double, double* %40
%524 = fmul double %522, %523
%525 = fneg double %524
%526 = call double @llvm.fmuladd.f64(double %520, double %521, double %525)
store double %526, double* %18
%527 = load double, double* %17
%528 = fmul double 5.000000e-02, %527
%529 = load double, double* %37
%530 = load double, double* %6
%531 = load double, double* %18
%532 = load double, double* %44
%533 = load double, double* %41
%534 = fmul double %532, %533
%535 = fneg double %534
%536 = call double @llvm.fmuladd.f64(double %530, double %531, double %535)
%537 = load double, double* %60
%538 = load double, double* %48
%539 = fneg double %538
%540 = load double, double* %18
%541 = load double, double* %46
%542 = load double, double* %41
%543 = fmul double %541, %542
%544 = fneg double %543
%545 = call double @llvm.fmuladd.f64(double %539, double %540, double %544)
%546 = fmul double %537, %545
%547 = call double @llvm.fmuladd.f64(double %529, double %536, double %546)
%548 = load double, double* %21
%549 = fmul double 5.000000e-02, %548
%550 = load double, double* %49
%551 = fneg double %550
%552 = load double, double* %41
%553 = load double, double* %20
%554 = load double, double* %40
%555 = fmul double %553, %554
%556 = fneg double %555
%557 = call double @llvm.fmuladd.f64(double %551, double %552, double %556)
%558 = fmul double %549, %557
%559 = call double @llvm.fmuladd.f64(double %528, double %547, double %558)
%560 = load double*, double** %3
%561 = getelementptr inbounds double, double* %560, i64 34
store double %559, double* %561
%562 = load double*, double** %3
%563 = getelementptr inbounds double, double* %562, i64 35
store double 0.000000e+00, double* %563
ret void
}

LLVM IR (-O2):
define void @TaskJacobian(double* writeonly %0, double* nocapture %1) {
%3 = load double, double* %1
%4 = tail call double @sin(double %3)
%5 = getelementptr inbounds double, double* %1, i64 1
%6 = load double, double* %5
%7 = tail call double @cos(double %6)
%8 = getelementptr inbounds double, double* %1, i64 2
%9 = load double, double* %8
%10 = tail call double @sin(double %9)
%11 = fmul double %7, 4.500000e-01
%12 = fmul double %11, %10
%13 = tail call double @sin(double %6)
%14 = tail call double @cos(double %9)
%15 = tail call double @llvm.fmuladd.f64(double %14, double 4.500000e-01, double 4.500000e-01)
%16 = tail call double @llvm.fmuladd.f64(double %13, double %15, double %12)
%17 = fneg double %4
%18 = fmul double %16, %17
store double %18, double* %0
%19 = getelementptr inbounds double, double* %0, i64 1
store double 0.000000e+00, double* %19
%20 = tail call double @cos(double %3)
%21 = fneg double %20
%22 = fmul double %16, %21
%23 = getelementptr inbounds double, double* %0, i64 2
store double %22, double* %23
%24 = getelementptr inbounds double, double* %1, i64 3
%25 = load double, double* %24
%26 = tail call double @cos(double %25)
%27 = fmul double %14, %26
%28 = getelementptr inbounds double, double* %1, i64 4
%29 = load double, double* %28
%30 = tail call double @sin(double %29)
%31 = tail call double @cos(double %29)
%32 = fmul double %10, %31
%33 = tail call double @llvm.fmuladd.f64(double %27, double %30, double %32)
%34 = fmul double %10, %26
%35 = fmul double %14, %31
%36 = fneg double %34
%37 = tail call double @llvm.fmuladd.f64(double %36, double %30, double %35)
%38 = fmul double %13, %37
%39 = tail call double @llvm.fmuladd.f64(double %7, double %33, double %38)
%40 = fmul double %4, %39
%41 = tail call double @sin(double %25)
%42 = fmul double %20, %41
%43 = fmul double %30, %42
%44 = fmul double %43, -1.000000e-01
%45 = tail call double @llvm.fmuladd.f64(double %40, double -1.000000e-01, double %44)
%46 = getelementptr inbounds double, double* %0, i64 3
store double %45, double* %46
%47 = fmul double %26, %31
%48 = getelementptr inbounds double, double* %1, i64 5
%49 = load double, double* %48
%50 = tail call double @sin(double %49)
%51 = tail call double @cos(double %49)
%52 = fmul double %41, %51
%53 = tail call double @llvm.fmuladd.f64(double %47, double %50, double %52)
%54 = fneg double %10
%55 = fmul double %30, %54
%56 = fmul double %55, %50
%57 = tail call double @llvm.fmuladd.f64(double %14, double %53, double %56)
%58 = fneg double %14
%59 = fmul double %30, %58
%60 = fmul double %59, %50
%61 = tail call double @llvm.fmuladd.f64(double %54, double %53, double %60)
%62 = fneg double %41
%63 = fmul double %31, %62
%64 = fmul double %26, %51
%65 = tail call double @llvm.fmuladd.f64(double %63, double %50, double %64)
%66 = fmul double %43, -1.500000e-01
%67 = tail call double @llvm.fmuladd.f64(double %40, double -1.500000e-01, double %66)
%68 = fmul double %4, 5.000000e-02
%69 = fmul double %13, %61
%70 = tail call double @llvm.fmuladd.f64(double %7, double %57, double %69)
%71 = fneg double %68
%72 = tail call double @llvm.fmuladd.f64(double %71, double %70, double %67)
%73 = getelementptr inbounds double, double* %0, i64 4
%74 = fmul double %4, %41
%75 = insertelement <2 x double> poison, double %20, i64 0
%76 = shufflevector <2 x double> %75, <2 x double> poison, <2 x i32> zeroinitializer
%77 = fmul <2 x double> %76, <double 5.000000e-02, double -1.000000e-01>
%78 = fmul double %74, 1.000000e-01
%79 = fmul double %30, %78
%80 = insertelement <2 x double> poison, double %65, i64 0
%81 = insertelement <2 x double> %80, double %39, i64 1
%82 = insertelement <2 x double> poison, double %72, i64 0
%83 = insertelement <2 x double> %82, double %79, i64 1
%84 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %77, <2 x double> %81, <2 x double> %83)
%85 = bitcast double* %73 to <2 x double>*
store <2 x double> %84, <2 x double>* %85
%86 = fmul double %10, %13
%87 = fmul double %86, -4.500000e-01
%88 = tail call double @llvm.fmuladd.f64(double %7, double %15, double %87)
%89 = fmul double %88, %20
%90 = getelementptr inbounds double, double* %0, i64 6
store double %89, double* %90
%91 = fneg double %16
%92 = getelementptr inbounds double, double* %0, i64 7
store double %91, double* %92
%93 = fmul double %88, %17
%94 = getelementptr inbounds double, double* %0, i64 8
store double %93, double* %94
%95 = fmul double %7, %37
%96 = fneg double %13
%97 = tail call double @llvm.fmuladd.f64(double %96, double %33, double %95)
%98 = fmul double %20, %97
%99 = fmul double %98, 1.000000e-01
%100 = getelementptr inbounds double, double* %0, i64 9
store double %99, double* %100
%101 = fmul double %7, %61
%102 = tail call double @llvm.fmuladd.f64(double %96, double %57, double %101)
%103 = extractelement <2 x double> %77, i64 0
%104 = fmul double %103, %102
%105 = tail call double @llvm.fmuladd.f64(double %98, double 1.500000e-01, double %104)
%106 = getelementptr inbounds double, double* %0, i64 10
store double %105, double* %106
%107 = fmul double %4, -1.000000e-01
%108 = getelementptr inbounds double, double* %0, i64 11
%109 = fmul double %7, %14
%110 = tail call double @llvm.fmuladd.f64(double %109, double 4.500000e-01, double %87)
%111 = insertelement <2 x double> poison, double %107, i64 0
%112 = insertelement <2 x double> %111, double %110, i64 1
%113 = insertelement <2 x double> poison, double %97, i64 0
%114 = insertelement <2 x double> %113, double %20, i64 1
%115 = fmul <2 x double> %112, %114
%116 = bitcast double* %108 to <2 x double>*
store <2 x double> %115, <2 x double>* %116
%117 = fmul double %13, -4.500000e-01
%118 = fneg double %12
%119 = tail call double @llvm.fmuladd.f64(double %117, double %14, double %118)
%120 = getelementptr inbounds double, double* %0, i64 13
store double %119, double* %120
%121 = fmul double %110, %17
%122 = getelementptr inbounds double, double* %0, i64 14
store double %121, double* %122
%123 = getelementptr inbounds double, double* %0, i64 15
store double %99, double* %123
%124 = getelementptr inbounds double, double* %0, i64 16
store double %105, double* %124
%125 = getelementptr inbounds double, double* %0, i64 17
%126 = extractelement <2 x double> %115, i64 0
store double %126, double* %125
%127 = getelementptr inbounds double, double* %0, i64 18
%128 = fmul double %30, %41
%129 = fneg double %109
%130 = fmul double %86, %128
%131 = tail call double @llvm.fmuladd.f64(double %129, double %128, double %130)
%132 = fmul double %20, %131
%133 = fmul double %4, %26
%134 = fmul double %133, %30
%135 = fmul double %134, -1.000000e-01
%136 = getelementptr inbounds double, double* %0, i64 21
%137 = bitcast double* %127 to i8*
%138 = fmul double %134, -1.500000e-01
%139 = tail call double @llvm.fmuladd.f64(double %132, double 1.500000e-01, double %138)
%140 = fneg double %86
%141 = fmul double %65, %140
%142 = tail call double @llvm.fmuladd.f64(double %109, double %65, double %141)
%143 = tail call double @llvm.fmuladd.f64(double %103, double %142, double %139)
%144 = insertelement <2 x double> poison, double %132, i64 0
%145 = insertelement <2 x double> %144, double %71, i64 1
%146 = insertelement <2 x double> <double 1.000000e-01, double poison>, double %53, i64 1
%147 = insertelement <2 x double> poison, double %135, i64 0
%148 = insertelement <2 x double> %147, double %143, i64 1
%149 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %145, <2 x double> %146, <2 x double> %148)
%150 = bitcast double* %136 to <2 x double>*
store <2 x double> %149, <2 x double>* %150
%151 = extractelement <2 x double> %77, i64 1
%152 = fmul double %151, %26
%153 = fmul double %152, %30
%154 = tail call double @llvm.fmuladd.f64(double %107, double %131, double %153)
%155 = getelementptr inbounds double, double* %0, i64 23
store double %154, double* %155
%156 = getelementptr inbounds double, double* %0, i64 24
%157 = tail call double @llvm.fmuladd.f64(double %27, double %31, double %55)
%158 = tail call double @llvm.fmuladd.f64(double %36, double %31, double %59)
%159 = fmul double %13, %158
%160 = tail call double @llvm.fmuladd.f64(double %7, double %157, double %159)
%161 = fmul double %31, %74
%162 = fmul double %161, -1.000000e-01
%163 = getelementptr inbounds double, double* %0, i64 27
%164 = bitcast double* %156 to i8*
%165 = fmul double %30, %50
%166 = fmul double %161, -1.500000e-01
%167 = insertelement <2 x double> %75, double %74, i64 1
%168 = insertelement <2 x double> <double poison, double 5.000000e-02>, double %160, i64 0
%169 = fmul <2 x double> %167, %168
%170 = extractelement <2 x double> %169, i64 0
%171 = tail call double @llvm.fmuladd.f64(double %170, double 1.500000e-01, double %166)
%172 = fneg double %27
%173 = fneg double %32
%174 = fmul double %50, %173
%175 = tail call double @llvm.fmuladd.f64(double %172, double %165, double %174)
%176 = fneg double %35
%177 = fmul double %50, %176
%178 = tail call double @llvm.fmuladd.f64(double %34, double %165, double %177)
%179 = fmul double %13, %178
%180 = tail call double @llvm.fmuladd.f64(double %7, double %175, double %179)
%181 = tail call double @llvm.fmuladd.f64(double %103, double %180, double %171)
%182 = insertelement <2 x double> <double 1.000000e-01, double poison>, double %165, i64 1
%183 = insertelement <2 x double> poison, double %162, i64 0
%184 = insertelement <2 x double> %183, double %181, i64 1
%185 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %169, <2 x double> %182, <2 x double> %184)
%186 = bitcast double* %163 to <2 x double>*
store <2 x double> %185, <2 x double>* %186
%187 = fmul double %42, -1.000000e-01
%188 = fmul double %31, %187
%189 = tail call double @llvm.fmuladd.f64(double %107, double %160, double %188)
%190 = getelementptr inbounds double, double* %0, i64 29
store double %189, double* %190
%191 = getelementptr inbounds double, double* %0, i64 30
%192 = fmul double %50, %62
%193 = tail call double @llvm.fmuladd.f64(double %47, double %51, double %192)
%194 = fmul double %55, %51
%195 = tail call double @llvm.fmuladd.f64(double %14, double %193, double %194)
%196 = fmul double %59, %51
%197 = tail call double @llvm.fmuladd.f64(double %54, double %193, double %196)
%198 = fmul double %13, %197
%199 = tail call double @llvm.fmuladd.f64(double %7, double %195, double %198)
%200 = fneg double %26
%201 = fmul double %50, %200
%202 = tail call double @llvm.fmuladd.f64(double %63, double %51, double %201)
%203 = fmul double %68, %202
%204 = tail call double @llvm.fmuladd.f64(double %103, double %199, double %203)
%205 = getelementptr inbounds double, double* %0, i64 34
%206 = bitcast double* %191 to i8*
store double %204, double* %205
%207 = getelementptr inbounds double, double* %0, i64 35
store double 0.000000e+00, double* %207
ret void
}