void update_cov_gyro(
    float g11, float g12, float g21, float g22, float g31, float g32, float g41,
    float g42, float g51, float g52, float g61, float g62, float g71, float g72,
    float p11, float p12, float p13, float p14, float p15, float p16, float p17,
    float p21, float p22, float p23, float p24, float p25, float p26, float p27,
    float p31, float p32, float p33, float p34, float p35, float p36, float p37,
    float p41, float p42, float p43, float p44, float p45, float p46, float p47,
    float p51, float p52, float p53, float p54, float p55, float p56, float p57,
    float p61, float p62, float p63, float p64, float p65, float p66, float p67,
    float p71, float p72, float p73, float p74, float p75, float p76, float p77,
    float *out_2632967519352958486) {
  out_2632967519352958486[0] = -g11 * p31 - g12 * p41 + p11;
  out_2632967519352958486[1] = -g11 * p32 - g12 * p42 + p12;
  out_2632967519352958486[2] = -g11 * p33 - g12 * p43 + p13;
  out_2632967519352958486[3] = -g11 * p34 - g12 * p44 + p14;
  out_2632967519352958486[4] = -g11 * p35 - g12 * p45 + p15;
  out_2632967519352958486[5] = -g11 * p36 - g12 * p46 + p16;
  out_2632967519352958486[6] = -g11 * p37 - g12 * p47 + p17;
  out_2632967519352958486[7] = -g21 * p31 - g22 * p41 + p21;
  out_2632967519352958486[8] = -g21 * p32 - g22 * p42 + p22;
  out_2632967519352958486[9] = -g21 * p33 - g22 * p43 + p23;
  out_2632967519352958486[10] = -g21 * p34 - g22 * p44 + p24;
  out_2632967519352958486[11] = -g21 * p35 - g22 * p45 + p25;
  out_2632967519352958486[12] = -g21 * p36 - g22 * p46 + p26;
  out_2632967519352958486[13] = -g21 * p37 - g22 * p47 + p27;
  out_2632967519352958486[14] = -g32 * p41 + p31 * (-g31 + 1);
  out_2632967519352958486[15] = -g32 * p42 + p32 * (-g31 + 1);
  out_2632967519352958486[16] = -g32 * p43 + p33 * (-g31 + 1);
  out_2632967519352958486[17] = -g32 * p44 + p34 * (-g31 + 1);
  out_2632967519352958486[18] = -g32 * p45 + p35 * (-g31 + 1);
  out_2632967519352958486[19] = -g32 * p46 + p36 * (-g31 + 1);
  out_2632967519352958486[20] = -g32 * p47 + p37 * (-g31 + 1);
  out_2632967519352958486[21] = -g41 * p31 + p41 * (-g42 + 1);
  out_2632967519352958486[22] = -g41 * p32 + p42 * (-g42 + 1);
  out_2632967519352958486[23] = -g41 * p33 + p43 * (-g42 + 1);
  out_2632967519352958486[24] = -g41 * p34 + p44 * (-g42 + 1);
  out_2632967519352958486[25] = -g41 * p35 + p45 * (-g42 + 1);
  out_2632967519352958486[26] = -g41 * p36 + p46 * (-g42 + 1);
  out_2632967519352958486[27] = -g41 * p37 + p47 * (-g42 + 1);
  out_2632967519352958486[28] = -g51 * p31 - g52 * p41 + p51;
  out_2632967519352958486[29] = -g51 * p32 - g52 * p42 + p52;
  out_2632967519352958486[30] = -g51 * p33 - g52 * p43 + p53;
  out_2632967519352958486[31] = -g51 * p34 - g52 * p44 + p54;
  out_2632967519352958486[32] = -g51 * p35 - g52 * p45 + p55;
  out_2632967519352958486[33] = -g51 * p36 - g52 * p46 + p56;
  out_2632967519352958486[34] = -g51 * p37 - g52 * p47 + p57;
  out_2632967519352958486[35] = -g61 * p31 - g62 * p41 + p61;
  out_2632967519352958486[36] = -g61 * p32 - g62 * p42 + p62;
  out_2632967519352958486[37] = -g61 * p33 - g62 * p43 + p63;
  out_2632967519352958486[38] = -g61 * p34 - g62 * p44 + p64;
  out_2632967519352958486[39] = -g61 * p35 - g62 * p45 + p65;
  out_2632967519352958486[40] = -g61 * p36 - g62 * p46 + p66;
  out_2632967519352958486[41] = -g61 * p37 - g62 * p47 + p67;
  out_2632967519352958486[42] = -g71 * p31 - g72 * p41 + p71;
  out_2632967519352958486[43] = -g71 * p32 - g72 * p42 + p72;
  out_2632967519352958486[44] = -g71 * p33 - g72 * p43 + p73;
  out_2632967519352958486[45] = -g71 * p34 - g72 * p44 + p74;
  out_2632967519352958486[46] = -g71 * p35 - g72 * p45 + p75;
  out_2632967519352958486[47] = -g71 * p36 - g72 * p46 + p76;
  out_2632967519352958486[48] = -g71 * p37 - g72 * p47 + p77;
}


x86 assembly (clang, -O0):
<update_cov_gyro>:
push   %rbp
mov    %rsp,%rbp
movss  0x1c0(%rbp),%xmm8
movss  0x1b8(%rbp),%xmm8
movss  0x1b0(%rbp),%xmm8
movss  0x1a8(%rbp),%xmm8
movss  0x1a0(%rbp),%xmm8
movss  0x198(%rbp),%xmm8
movss  0x190(%rbp),%xmm8
movss  0x188(%rbp),%xmm8
movss  0x180(%rbp),%xmm8
movss  0x178(%rbp),%xmm8
movss  0x170(%rbp),%xmm8
movss  0x168(%rbp),%xmm8
movss  0x160(%rbp),%xmm8
movss  0x158(%rbp),%xmm8
movss  0x150(%rbp),%xmm8
movss  0x148(%rbp),%xmm8
movss  0x140(%rbp),%xmm8
movss  0x138(%rbp),%xmm8
movss  0x130(%rbp),%xmm8
movss  0x128(%rbp),%xmm8
movss  0x120(%rbp),%xmm8
movss  0x118(%rbp),%xmm8
movss  0x110(%rbp),%xmm8
movss  0x108(%rbp),%xmm8
movss  0x100(%rbp),%xmm8
movss  0xf8(%rbp),%xmm8
movss  0xf0(%rbp),%xmm8
movss  0xe8(%rbp),%xmm8
movss  0xe0(%rbp),%xmm8
movss  0xd8(%rbp),%xmm8
movss  0xd0(%rbp),%xmm8
movss  0xc8(%rbp),%xmm8
movss  0xc0(%rbp),%xmm8
movss  0xb8(%rbp),%xmm8
movss  0xb0(%rbp),%xmm8
movss  0xa8(%rbp),%xmm8
movss  0xa0(%rbp),%xmm8
movss  0x98(%rbp),%xmm8
movss  0x90(%rbp),%xmm8
movss  0x88(%rbp),%xmm8
movss  0x80(%rbp),%xmm8
movss  0x78(%rbp),%xmm8
movss  0x70(%rbp),%xmm8
movss  0x68(%rbp),%xmm8
movss  0x60(%rbp),%xmm8
movss  0x58(%rbp),%xmm8
movss  0x50(%rbp),%xmm8
movss  0x48(%rbp),%xmm8
movss  0x40(%rbp),%xmm8
movss  0x38(%rbp),%xmm8
movss  0x30(%rbp),%xmm8
movss  0x28(%rbp),%xmm8
movss  0x20(%rbp),%xmm8
movss  0x18(%rbp),%xmm8
movss  0x10(%rbp),%xmm8
movss  %xmm0,-0x4(%rbp)
movss  %xmm1,-0x8(%rbp)
movss  %xmm2,-0xc(%rbp)
movss  %xmm3,-0x10(%rbp)
movss  %xmm4,-0x14(%rbp)
movss  %xmm5,-0x18(%rbp)
movss  %xmm6,-0x1c(%rbp)
movss  %xmm7,-0x20(%rbp)
mov    %rdi,-0x28(%rbp)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0xe8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x40(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0xf0(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x48(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0xf8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x50(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0x100(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x58(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0x108(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x60(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0x110(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x68(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  -0x8(%rbp),%xmm1
mulss  0x118(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x70(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x18(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0xe8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x78(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x1c(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0xf0(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x80(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x20(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0xf8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x88(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x24(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0x100(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x90(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x28(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0x108(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x98(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x2c(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0x110(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xa0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x30(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  -0x10(%rbp),%xmm1
mulss  0x118(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xa8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x34(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0xb0(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x18b2(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x38(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0xb8(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x185d(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x3c(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0xc0(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x1808(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x40(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0xc8(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x17b3(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x44(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0xd0(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x175e(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x48(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0xd8(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x1709(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x4c(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0xe0(%rbp),%xmm1
movss  -0x14(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x16b4(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x50(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  0xe8(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x165f(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x54(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  0xf0(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x160a(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x58(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  0xf8(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x15b5(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x5c(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  0x100(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x1560(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x60(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  0x108(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x150b(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x64(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  0x110(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x14b6(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x68(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  0x118(%rbp),%xmm1
movss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
movss  0x1461(%rip),%xmm4
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x6c(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0xe8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x120(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x70(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0xf0(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x128(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x74(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0xf8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x130(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x78(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0x100(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x138(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x7c(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0x108(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x140(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x80(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0x110(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x148(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x84(%rax)
movss  0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  0x118(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x150(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x88(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0xe8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x158(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x8c(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0xf0(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x160(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x90(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0xf8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x168(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x94(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0x100(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x170(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x98(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0x108(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x178(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x9c(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0x110(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x180(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa0(%rax)
movss  0x20(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  0x118(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x188(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa4(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb0(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0xe8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x190(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa8(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xb8(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0xf0(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x198(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xac(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc0(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0xf8(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x1a0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb0(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xc8(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0x100(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x1a8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb4(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd0(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0x108(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x1b0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb8(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xd8(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0x110(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x1b8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xbc(%rax)
movss  0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe0(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  0x118(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x1c0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xc0(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<update_cov_gyro>:
sub    $0xa8,%rsp
movaps %xmm6,%xmm12
movaps %xmm6,-0x30(%rsp)
movaps %xmm5,%xmm13
movaps %xmm5,-0x60(%rsp)
movaps %xmm3,%xmm5
movaps %xmm3,0x90(%rsp)
movaps %xmm1,%xmm15
movss  0x1b0(%rsp),%xmm3
movaps %xmm1,%xmm6
unpcklps %xmm5,%xmm6
movaps %xmm6,0x80(%rsp)
movaps 0xeba(%rip),%xmm1
movaps %xmm6,%xmm5
xorps  %xmm1,%xmm5
movaps %xmm1,%xmm8
shufps $0x0,%xmm15,%xmm15
movss  0x188(%rsp),%xmm10
movss  0x190(%rsp),%xmm6
unpcklps %xmm6,%xmm10
movss  0x1a0(%rsp),%xmm9
unpcklps %xmm2,%xmm0
movss  0x198(%rsp),%xmm1
unpcklps %xmm1,%xmm6
movaps %xmm6,0x70(%rsp)
unpcklps %xmm9,%xmm1
movaps %xmm1,%xmm2
movaps %xmm1,-0x20(%rsp)
unpcklps %xmm7,%xmm4
movaps 0xe70(%rip),%xmm6
subps  %xmm4,%xmm6
movss  0x1a8(%rsp),%xmm1
unpcklps %xmm1,%xmm9
movaps %xmm9,0x20(%rsp)
unpcklps %xmm3,%xmm1
movaps %xmm1,-0x80(%rsp)
pshufd $0x55,%xmm5,%xmm1
movdqa %xmm1,0x40(%rsp)
mulss  %xmm3,%xmm1
movaps %xmm1,0x30(%rsp)
movaps %xmm6,0x60(%rsp)
movaps %xmm6,0x50(%rsp)
shufps $0x55,%xmm6,%xmm6
movaps %xmm6,0x10(%rsp)
mulss  %xmm3,%xmm6
movaps %xmm6,(%rsp)
movss  0x1b8(%rsp),%xmm1
unpcklps %xmm1,%xmm3
movlhps %xmm10,%xmm3
movaps %xmm3,-0x10(%rsp)
movlhps %xmm2,%xmm10
movaps %xmm10,-0x50(%rsp)
mulps  %xmm10,%xmm15
movaps %xmm8,%xmm1
movaps %xmm0,%xmm2
xorps  %xmm8,%xmm2
movss  0x150(%rsp),%xmm8
movss  0x158(%rsp),%xmm14
unpcklps %xmm14,%xmm8
movss  0x160(%rsp),%xmm10
unpcklps %xmm10,%xmm14
movss  0x168(%rsp),%xmm5
unpcklps %xmm5,%xmm10
movss  0x170(%rsp),%xmm11
unpcklps %xmm11,%xmm5
movss  0x178(%rsp),%xmm4
unpcklps %xmm4,%xmm11
pshufd $0x55,%xmm2,%xmm0
movdqa %xmm0,%xmm3
mulss  %xmm4,%xmm3
movaps %xmm13,%xmm9
unpcklps %xmm12,%xmm9
movaps %xmm9,%xmm7
xorps  %xmm1,%xmm7
pshufd $0x55,%xmm7,%xmm12
movdqa %xmm12,%xmm1
mulss  %xmm4,%xmm1
movaps %xmm1,-0x70(%rsp)
movss  0x180(%rsp),%xmm1
unpcklps %xmm1,%xmm4
movlhps %xmm8,%xmm4
movlhps %xmm10,%xmm8
pshufd $0x0,%xmm2,%xmm13
mulps  %xmm8,%xmm13
subps  %xmm15,%xmm13
movss  0xf8(%rsp),%xmm6
movss  0xf0(%rsp),%xmm1
unpcklps %xmm6,%xmm1
movss  0xe8(%rsp),%xmm6
movss  0xe0(%rsp),%xmm15
unpcklps %xmm6,%xmm15
movlhps %xmm1,%xmm15
addps  %xmm13,%xmm15
movups %xmm15,(%rdi)
movss  0x188(%rsp),%xmm1
movss  0x1b8(%rsp),%xmm7
movlhps %xmm7,%xmm1
movaps -0x80(%rsp),%xmm7
shufps $0x24,%xmm1,%xmm7
movaps %xmm7,-0x40(%rsp)
movss  0x150(%rsp),%xmm1
movss  0x180(%rsp),%xmm6
movlhps %xmm6,%xmm1
movaps %xmm11,%xmm13
shufps $0x24,%xmm1,%xmm13
movaps 0x80(%rsp),%xmm15
shufps $0x40,%xmm15,%xmm15
pshufd $0x40,%xmm2,%xmm1
mulps  %xmm7,%xmm15
mulps  %xmm13,%xmm1
subps  %xmm15,%xmm1
movss  0x118(%rsp),%xmm6
movss  0x110(%rsp),%xmm2
unpcklps %xmm6,%xmm2
movss  0x108(%rsp),%xmm6
movss  0x100(%rsp),%xmm15
unpcklps %xmm6,%xmm15
movlhps %xmm2,%xmm15
addps  %xmm1,%xmm15
movups %xmm15,0x10(%rdi)
movaps 0x70(%rsp),%xmm7
unpcklpd 0x20(%rsp),%xmm7
movlhps %xmm5,%xmm14
movaps 0x90(%rsp),%xmm2
shufps $0x0,%xmm2,%xmm2
mulps  %xmm7,%xmm2
movdqa %xmm0,%xmm1
mulps  %xmm14,%xmm1
subps  %xmm2,%xmm1
movss  0x138(%rsp),%xmm2
movss  0x130(%rsp),%xmm5
unpcklps %xmm2,%xmm5
movss  0x128(%rsp),%xmm15
movss  0x120(%rsp),%xmm2
unpcklps %xmm15,%xmm2
movlhps %xmm5,%xmm2
addps  %xmm1,%xmm2
movups %xmm2,0x20(%rdi)
addss  0x30(%rsp),%xmm3
addss  0x140(%rsp),%xmm3
movss  %xmm3,0x30(%rdi)
movss  0x1b8(%rsp),%xmm3
movaps 0x40(%rsp),%xmm1
mulss  %xmm3,%xmm1
movss  0x180(%rsp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0x148(%rsp),%xmm0
movss  %xmm0,0x34(%rdi)
movaps 0x50(%rsp),%xmm1
shufps $0x0,%xmm1,%xmm1
mulps  %xmm8,%xmm1
movaps -0x60(%rsp),%xmm0
shufps $0x0,%xmm0,%xmm0
movaps -0x50(%rsp),%xmm5
mulps  %xmm5,%xmm0
subps  %xmm0,%xmm1
movups %xmm1,0x38(%rdi)
movlhps %xmm11,%xmm10
movss  0x188(%rsp),%xmm0
movlhps %xmm2,%xmm0
shufps $0x24,%xmm0,%xmm11
movaps 0x60(%rsp),%xmm0
shufps $0x40,%xmm0,%xmm0
mulps  %xmm0,%xmm11
movaps -0x20(%rsp),%xmm15
movaps -0x80(%rsp),%xmm0
movlhps %xmm0,%xmm15
movss  0x150(%rsp),%xmm1
movlhps %xmm3,%xmm1
shufps $0x24,%xmm1,%xmm0
shufps $0x40,%xmm9,%xmm9
mulps  %xmm9,%xmm0
subps  %xmm0,%xmm11
movups %xmm11,0x48(%rdi)
movaps 0x10(%rsp),%xmm2
movaps %xmm2,%xmm0
movaps %xmm7,%xmm11
mulps  %xmm7,%xmm0
movaps -0x30(%rsp),%xmm1
shufps $0x0,%xmm1,%xmm1
mulps  %xmm14,%xmm1
subps  %xmm1,%xmm0
movups %xmm0,0x58(%rdi)
movaps -0x70(%rsp),%xmm0
addss  (%rsp),%xmm0
movss  %xmm0,0x68(%rdi)
mulss  %xmm3,%xmm2
movaps %xmm3,%xmm9
movss  0x180(%rsp),%xmm0
mulss  %xmm0,%xmm12
addss  %xmm2,%xmm12
movss  %xmm12,0x6c(%rdi)
movss  0xb8(%rsp),%xmm0
movaps %xmm0,%xmm1
shufps $0x0,%xmm0,%xmm0
mulps  %xmm5,%xmm0
movd   0xc0(%rsp),%xmm2
movd   0xb0(%rsp),%xmm3
punpckldq %xmm2,%xmm3
movdqa 0xad3(%rip),%xmm12
pxor   %xmm12,%xmm3
pshufd $0x0,%xmm3,%xmm2
mulps  %xmm8,%xmm2
subps  %xmm0,%xmm2
movss  0x1d8(%rsp),%xmm0
movss  0x1d0(%rsp),%xmm5
unpcklps %xmm0,%xmm5
movss  0x1c8(%rsp),%xmm0
movss  0x1c0(%rsp),%xmm6
unpcklps %xmm0,%xmm6
movlhps %xmm5,%xmm6
movss  0xc8(%rsp),%xmm0
unpcklps %xmm0,%xmm1
addps  %xmm2,%xmm6
movaps %xmm1,%xmm2
shufps $0x40,%xmm1,%xmm1
movups %xmm6,0x70(%rdi)
pshufd $0x40,%xmm3,%xmm5
mulps  -0x40(%rsp),%xmm1
mulps  %xmm13,%xmm5
subps  %xmm1,%xmm5
movss  0x1f8(%rsp),%xmm1
movss  0x1f0(%rsp),%xmm6
unpcklps %xmm1,%xmm6
movss  0x1e8(%rsp),%xmm1
movss  0x1e0(%rsp),%xmm7
unpcklps %xmm1,%xmm7
movlhps %xmm6,%xmm7
addps  %xmm5,%xmm7
movups %xmm7,0x80(%rdi)
shufps $0x0,%xmm0,%xmm0
mulps  %xmm11,%xmm0
pshufd $0x55,%xmm3,%xmm1
mulps  %xmm14,%xmm1
subps  %xmm0,%xmm1
movss  0x218(%rsp),%xmm0
movss  0x210(%rsp),%xmm5
unpcklps %xmm0,%xmm5
movss  0x208(%rsp),%xmm0
movss  0x200(%rsp),%xmm6
unpcklps %xmm0,%xmm6
movlhps %xmm5,%xmm6
addps  %xmm1,%xmm6
movd   0xd8(%rsp),%xmm0
movdqa %xmm12,%xmm5
xorps  %xmm12,%xmm2
movups %xmm6,0x90(%rdi)
movss  0xd0(%rsp),%xmm1
xorps  %xmm12,%xmm1
pxor   %xmm0,%xmm5
shufps $0x5,%xmm5,%xmm2
movaps -0x10(%rsp),%xmm5
mulps  %xmm2,%xmm5
shufps $0x5,%xmm1,%xmm3
mulps  %xmm3,%xmm4
addps  %xmm5,%xmm4
movss  0x238(%rsp),%xmm2
movss  0x230(%rsp),%xmm3
unpcklps %xmm2,%xmm3
movss  0x228(%rsp),%xmm2
movss  0x220(%rsp),%xmm5
unpcklps %xmm2,%xmm5
movlhps %xmm3,%xmm5
addps  %xmm4,%xmm5
movups %xmm5,0xa0(%rdi)
movdqa %xmm0,%xmm2
shufps $0x0,%xmm0,%xmm2
movaps %xmm15,%xmm3
mulps  %xmm2,%xmm3
pshufd $0x0,%xmm1,%xmm2
mulps  %xmm2,%xmm10
subps  %xmm3,%xmm10
movss  0x258(%rsp),%xmm2
movss  0x250(%rsp),%xmm3
unpcklps %xmm2,%xmm3
movss  0x248(%rsp),%xmm2
movss  0x240(%rsp),%xmm4
unpcklps %xmm2,%xmm4
movlhps %xmm3,%xmm4
addps  %xmm10,%xmm4
movups %xmm4,0xb0(%rdi)
mulss  %xmm9,%xmm0
movss  0x180(%rsp),%xmm2
mulss  %xmm2,%xmm1
subss  %xmm0,%xmm1
addss  0x260(%rsp),%xmm1
movss  %xmm1,0xc0(%rdi)
add    $0xa8,%rsp
ret

LLVM IR (-O0):
define void @update_cov_gyro(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16, float %17, float %18, float %19, float %20, float %21, float %22, float %23, float %24, float %25, float %26, float %27, float %28, float %29, float %30, float %31, float %32, float %33, float %34, float %35, float %36, float %37, float %38, float %39, float %40, float %41, float %42, float %43, float %44, float %45, float %46, float %47, float %48, float %49, float %50, float %51, float %52, float %53, float %54, float %55, float %56, float %57, float %58, float %59, float %60, float %61, float %62, float* %63) {
%65 = alloca float
%66 = alloca float
%67 = alloca float
%68 = alloca float
%69 = alloca float
%70 = alloca float
%71 = alloca float
%72 = alloca float
%73 = alloca float
%74 = alloca float
%75 = alloca float
%76 = alloca float
%77 = alloca float
%78 = alloca float
%79 = alloca float
%80 = alloca float
%81 = alloca float
%82 = alloca float
%83 = alloca float
%84 = alloca float
%85 = alloca float
%86 = alloca float
%87 = alloca float
%88 = alloca float
%89 = alloca float
%90 = alloca float
%91 = alloca float
%92 = alloca float
%93 = alloca float
%94 = alloca float
%95 = alloca float
%96 = alloca float
%97 = alloca float
%98 = alloca float
%99 = alloca float
%100 = alloca float
%101 = alloca float
%102 = alloca float
%103 = alloca float
%104 = alloca float
%105 = alloca float
%106 = alloca float
%107 = alloca float
%108 = alloca float
%109 = alloca float
%110 = alloca float
%111 = alloca float
%112 = alloca float
%113 = alloca float
%114 = alloca float
%115 = alloca float
%116 = alloca float
%117 = alloca float
%118 = alloca float
%119 = alloca float
%120 = alloca float
%121 = alloca float
%122 = alloca float
%123 = alloca float
%124 = alloca float
%125 = alloca float
%126 = alloca float
%127 = alloca float
%128 = alloca float*
store float %0, float* %65
store float %1, float* %66
store float %2, float* %67
store float %3, float* %68
store float %4, float* %69
store float %5, float* %70
store float %6, float* %71
store float %7, float* %72
store float %8, float* %73
store float %9, float* %74
store float %10, float* %75
store float %11, float* %76
store float %12, float* %77
store float %13, float* %78
store float %14, float* %79
store float %15, float* %80
store float %16, float* %81
store float %17, float* %82
store float %18, float* %83
store float %19, float* %84
store float %20, float* %85
store float %21, float* %86
store float %22, float* %87
store float %23, float* %88
store float %24, float* %89
store float %25, float* %90
store float %26, float* %91
store float %27, float* %92
store float %28, float* %93
store float %29, float* %94
store float %30, float* %95
store float %31, float* %96
store float %32, float* %97
store float %33, float* %98
store float %34, float* %99
store float %35, float* %100
store float %36, float* %101
store float %37, float* %102
store float %38, float* %103
store float %39, float* %104
store float %40, float* %105
store float %41, float* %106
store float %42, float* %107
store float %43, float* %108
store float %44, float* %109
store float %45, float* %110
store float %46, float* %111
store float %47, float* %112
store float %48, float* %113
store float %49, float* %114
store float %50, float* %115
store float %51, float* %116
store float %52, float* %117
store float %53, float* %118
store float %54, float* %119
store float %55, float* %120
store float %56, float* %121
store float %57, float* %122
store float %58, float* %123
store float %59, float* %124
store float %60, float* %125
store float %61, float* %126
store float %62, float* %127
store float* %63, float** %128
%129 = load float, float* %65
%130 = fneg float %129
%131 = load float, float* %93
%132 = load float, float* %66
%133 = load float, float* %100
%134 = fmul float %132, %133
%135 = fneg float %134
%136 = call float @llvm.fmuladd.f32(float %130, float %131, float %135)
%137 = load float, float* %79
%138 = fadd float %136, %137
%139 = load float*, float** %128
%140 = getelementptr inbounds float, float* %139, i64 0
store float %138, float* %140
%141 = load float, float* %65
%142 = fneg float %141
%143 = load float, float* %94
%144 = load float, float* %66
%145 = load float, float* %101
%146 = fmul float %144, %145
%147 = fneg float %146
%148 = call float @llvm.fmuladd.f32(float %142, float %143, float %147)
%149 = load float, float* %80
%150 = fadd float %148, %149
%151 = load float*, float** %128
%152 = getelementptr inbounds float, float* %151, i64 1
store float %150, float* %152
%153 = load float, float* %65
%154 = fneg float %153
%155 = load float, float* %95
%156 = load float, float* %66
%157 = load float, float* %102
%158 = fmul float %156, %157
%159 = fneg float %158
%160 = call float @llvm.fmuladd.f32(float %154, float %155, float %159)
%161 = load float, float* %81
%162 = fadd float %160, %161
%163 = load float*, float** %128
%164 = getelementptr inbounds float, float* %163, i64 2
store float %162, float* %164
%165 = load float, float* %65
%166 = fneg float %165
%167 = load float, float* %96
%168 = load float, float* %66
%169 = load float, float* %103
%170 = fmul float %168, %169
%171 = fneg float %170
%172 = call float @llvm.fmuladd.f32(float %166, float %167, float %171)
%173 = load float, float* %82
%174 = fadd float %172, %173
%175 = load float*, float** %128
%176 = getelementptr inbounds float, float* %175, i64 3
store float %174, float* %176
%177 = load float, float* %65
%178 = fneg float %177
%179 = load float, float* %97
%180 = load float, float* %66
%181 = load float, float* %104
%182 = fmul float %180, %181
%183 = fneg float %182
%184 = call float @llvm.fmuladd.f32(float %178, float %179, float %183)
%185 = load float, float* %83
%186 = fadd float %184, %185
%187 = load float*, float** %128
%188 = getelementptr inbounds float, float* %187, i64 4
store float %186, float* %188
%189 = load float, float* %65
%190 = fneg float %189
%191 = load float, float* %98
%192 = load float, float* %66
%193 = load float, float* %105
%194 = fmul float %192, %193
%195 = fneg float %194
%196 = call float @llvm.fmuladd.f32(float %190, float %191, float %195)
%197 = load float, float* %84
%198 = fadd float %196, %197
%199 = load float*, float** %128
%200 = getelementptr inbounds float, float* %199, i64 5
store float %198, float* %200
%201 = load float, float* %65
%202 = fneg float %201
%203 = load float, float* %99
%204 = load float, float* %66
%205 = load float, float* %106
%206 = fmul float %204, %205
%207 = fneg float %206
%208 = call float @llvm.fmuladd.f32(float %202, float %203, float %207)
%209 = load float, float* %85
%210 = fadd float %208, %209
%211 = load float*, float** %128
%212 = getelementptr inbounds float, float* %211, i64 6
store float %210, float* %212
%213 = load float, float* %67
%214 = fneg float %213
%215 = load float, float* %93
%216 = load float, float* %68
%217 = load float, float* %100
%218 = fmul float %216, %217
%219 = fneg float %218
%220 = call float @llvm.fmuladd.f32(float %214, float %215, float %219)
%221 = load float, float* %86
%222 = fadd float %220, %221
%223 = load float*, float** %128
%224 = getelementptr inbounds float, float* %223, i64 7
store float %222, float* %224
%225 = load float, float* %67
%226 = fneg float %225
%227 = load float, float* %94
%228 = load float, float* %68
%229 = load float, float* %101
%230 = fmul float %228, %229
%231 = fneg float %230
%232 = call float @llvm.fmuladd.f32(float %226, float %227, float %231)
%233 = load float, float* %87
%234 = fadd float %232, %233
%235 = load float*, float** %128
%236 = getelementptr inbounds float, float* %235, i64 8
store float %234, float* %236
%237 = load float, float* %67
%238 = fneg float %237
%239 = load float, float* %95
%240 = load float, float* %68
%241 = load float, float* %102
%242 = fmul float %240, %241
%243 = fneg float %242
%244 = call float @llvm.fmuladd.f32(float %238, float %239, float %243)
%245 = load float, float* %88
%246 = fadd float %244, %245
%247 = load float*, float** %128
%248 = getelementptr inbounds float, float* %247, i64 9
store float %246, float* %248
%249 = load float, float* %67
%250 = fneg float %249
%251 = load float, float* %96
%252 = load float, float* %68
%253 = load float, float* %103
%254 = fmul float %252, %253
%255 = fneg float %254
%256 = call float @llvm.fmuladd.f32(float %250, float %251, float %255)
%257 = load float, float* %89
%258 = fadd float %256, %257
%259 = load float*, float** %128
%260 = getelementptr inbounds float, float* %259, i64 10
store float %258, float* %260
%261 = load float, float* %67
%262 = fneg float %261
%263 = load float, float* %97
%264 = load float, float* %68
%265 = load float, float* %104
%266 = fmul float %264, %265
%267 = fneg float %266
%268 = call float @llvm.fmuladd.f32(float %262, float %263, float %267)
%269 = load float, float* %90
%270 = fadd float %268, %269
%271 = load float*, float** %128
%272 = getelementptr inbounds float, float* %271, i64 11
store float %270, float* %272
%273 = load float, float* %67
%274 = fneg float %273
%275 = load float, float* %98
%276 = load float, float* %68
%277 = load float, float* %105
%278 = fmul float %276, %277
%279 = fneg float %278
%280 = call float @llvm.fmuladd.f32(float %274, float %275, float %279)
%281 = load float, float* %91
%282 = fadd float %280, %281
%283 = load float*, float** %128
%284 = getelementptr inbounds float, float* %283, i64 12
store float %282, float* %284
%285 = load float, float* %67
%286 = fneg float %285
%287 = load float, float* %99
%288 = load float, float* %68
%289 = load float, float* %106
%290 = fmul float %288, %289
%291 = fneg float %290
%292 = call float @llvm.fmuladd.f32(float %286, float %287, float %291)
%293 = load float, float* %92
%294 = fadd float %292, %293
%295 = load float*, float** %128
%296 = getelementptr inbounds float, float* %295, i64 13
store float %294, float* %296
%297 = load float, float* %70
%298 = fneg float %297
%299 = load float, float* %100
%300 = load float, float* %93
%301 = load float, float* %69
%302 = fneg float %301
%303 = fadd float %302, 1.000000e+00
%304 = fmul float %300, %303
%305 = call float @llvm.fmuladd.f32(float %298, float %299, float %304)
%306 = load float*, float** %128
%307 = getelementptr inbounds float, float* %306, i64 14
store float %305, float* %307
%308 = load float, float* %70
%309 = fneg float %308
%310 = load float, float* %101
%311 = load float, float* %94
%312 = load float, float* %69
%313 = fneg float %312
%314 = fadd float %313, 1.000000e+00
%315 = fmul float %311, %314
%316 = call float @llvm.fmuladd.f32(float %309, float %310, float %315)
%317 = load float*, float** %128
%318 = getelementptr inbounds float, float* %317, i64 15
store float %316, float* %318
%319 = load float, float* %70
%320 = fneg float %319
%321 = load float, float* %102
%322 = load float, float* %95
%323 = load float, float* %69
%324 = fneg float %323
%325 = fadd float %324, 1.000000e+00
%326 = fmul float %322, %325
%327 = call float @llvm.fmuladd.f32(float %320, float %321, float %326)
%328 = load float*, float** %128
%329 = getelementptr inbounds float, float* %328, i64 16
store float %327, float* %329
%330 = load float, float* %70
%331 = fneg float %330
%332 = load float, float* %103
%333 = load float, float* %96
%334 = load float, float* %69
%335 = fneg float %334
%336 = fadd float %335, 1.000000e+00
%337 = fmul float %333, %336
%338 = call float @llvm.fmuladd.f32(float %331, float %332, float %337)
%339 = load float*, float** %128
%340 = getelementptr inbounds float, float* %339, i64 17
store float %338, float* %340
%341 = load float, float* %70
%342 = fneg float %341
%343 = load float, float* %104
%344 = load float, float* %97
%345 = load float, float* %69
%346 = fneg float %345
%347 = fadd float %346, 1.000000e+00
%348 = fmul float %344, %347
%349 = call float @llvm.fmuladd.f32(float %342, float %343, float %348)
%350 = load float*, float** %128
%351 = getelementptr inbounds float, float* %350, i64 18
store float %349, float* %351
%352 = load float, float* %70
%353 = fneg float %352
%354 = load float, float* %105
%355 = load float, float* %98
%356 = load float, float* %69
%357 = fneg float %356
%358 = fadd float %357, 1.000000e+00
%359 = fmul float %355, %358
%360 = call float @llvm.fmuladd.f32(float %353, float %354, float %359)
%361 = load float*, float** %128
%362 = getelementptr inbounds float, float* %361, i64 19
store float %360, float* %362
%363 = load float, float* %70
%364 = fneg float %363
%365 = load float, float* %106
%366 = load float, float* %99
%367 = load float, float* %69
%368 = fneg float %367
%369 = fadd float %368, 1.000000e+00
%370 = fmul float %366, %369
%371 = call float @llvm.fmuladd.f32(float %364, float %365, float %370)
%372 = load float*, float** %128
%373 = getelementptr inbounds float, float* %372, i64 20
store float %371, float* %373
%374 = load float, float* %71
%375 = fneg float %374
%376 = load float, float* %93
%377 = load float, float* %100
%378 = load float, float* %72
%379 = fneg float %378
%380 = fadd float %379, 1.000000e+00
%381 = fmul float %377, %380
%382 = call float @llvm.fmuladd.f32(float %375, float %376, float %381)
%383 = load float*, float** %128
%384 = getelementptr inbounds float, float* %383, i64 21
store float %382, float* %384
%385 = load float, float* %71
%386 = fneg float %385
%387 = load float, float* %94
%388 = load float, float* %101
%389 = load float, float* %72
%390 = fneg float %389
%391 = fadd float %390, 1.000000e+00
%392 = fmul float %388, %391
%393 = call float @llvm.fmuladd.f32(float %386, float %387, float %392)
%394 = load float*, float** %128
%395 = getelementptr inbounds float, float* %394, i64 22
store float %393, float* %395
%396 = load float, float* %71
%397 = fneg float %396
%398 = load float, float* %95
%399 = load float, float* %102
%400 = load float, float* %72
%401 = fneg float %400
%402 = fadd float %401, 1.000000e+00
%403 = fmul float %399, %402
%404 = call float @llvm.fmuladd.f32(float %397, float %398, float %403)
%405 = load float*, float** %128
%406 = getelementptr inbounds float, float* %405, i64 23
store float %404, float* %406
%407 = load float, float* %71
%408 = fneg float %407
%409 = load float, float* %96
%410 = load float, float* %103
%411 = load float, float* %72
%412 = fneg float %411
%413 = fadd float %412, 1.000000e+00
%414 = fmul float %410, %413
%415 = call float @llvm.fmuladd.f32(float %408, float %409, float %414)
%416 = load float*, float** %128
%417 = getelementptr inbounds float, float* %416, i64 24
store float %415, float* %417
%418 = load float, float* %71
%419 = fneg float %418
%420 = load float, float* %97
%421 = load float, float* %104
%422 = load float, float* %72
%423 = fneg float %422
%424 = fadd float %423, 1.000000e+00
%425 = fmul float %421, %424
%426 = call float @llvm.fmuladd.f32(float %419, float %420, float %425)
%427 = load float*, float** %128
%428 = getelementptr inbounds float, float* %427, i64 25
store float %426, float* %428
%429 = load float, float* %71
%430 = fneg float %429
%431 = load float, float* %98
%432 = load float, float* %105
%433 = load float, float* %72
%434 = fneg float %433
%435 = fadd float %434, 1.000000e+00
%436 = fmul float %432, %435
%437 = call float @llvm.fmuladd.f32(float %430, float %431, float %436)
%438 = load float*, float** %128
%439 = getelementptr inbounds float, float* %438, i64 26
store float %437, float* %439
%440 = load float, float* %71
%441 = fneg float %440
%442 = load float, float* %99
%443 = load float, float* %106
%444 = load float, float* %72
%445 = fneg float %444
%446 = fadd float %445, 1.000000e+00
%447 = fmul float %443, %446
%448 = call float @llvm.fmuladd.f32(float %441, float %442, float %447)
%449 = load float*, float** %128
%450 = getelementptr inbounds float, float* %449, i64 27
store float %448, float* %450
%451 = load float, float* %73
%452 = fneg float %451
%453 = load float, float* %93
%454 = load float, float* %74
%455 = load float, float* %100
%456 = fmul float %454, %455
%457 = fneg float %456
%458 = call float @llvm.fmuladd.f32(float %452, float %453, float %457)
%459 = load float, float* %107
%460 = fadd float %458, %459
%461 = load float*, float** %128
%462 = getelementptr inbounds float, float* %461, i64 28
store float %460, float* %462
%463 = load float, float* %73
%464 = fneg float %463
%465 = load float, float* %94
%466 = load float, float* %74
%467 = load float, float* %101
%468 = fmul float %466, %467
%469 = fneg float %468
%470 = call float @llvm.fmuladd.f32(float %464, float %465, float %469)
%471 = load float, float* %108
%472 = fadd float %470, %471
%473 = load float*, float** %128
%474 = getelementptr inbounds float, float* %473, i64 29
store float %472, float* %474
%475 = load float, float* %73
%476 = fneg float %475
%477 = load float, float* %95
%478 = load float, float* %74
%479 = load float, float* %102
%480 = fmul float %478, %479
%481 = fneg float %480
%482 = call float @llvm.fmuladd.f32(float %476, float %477, float %481)
%483 = load float, float* %109
%484 = fadd float %482, %483
%485 = load float*, float** %128
%486 = getelementptr inbounds float, float* %485, i64 30
store float %484, float* %486
%487 = load float, float* %73
%488 = fneg float %487
%489 = load float, float* %96
%490 = load float, float* %74
%491 = load float, float* %103
%492 = fmul float %490, %491
%493 = fneg float %492
%494 = call float @llvm.fmuladd.f32(float %488, float %489, float %493)
%495 = load float, float* %110
%496 = fadd float %494, %495
%497 = load float*, float** %128
%498 = getelementptr inbounds float, float* %497, i64 31
store float %496, float* %498
%499 = load float, float* %73
%500 = fneg float %499
%501 = load float, float* %97
%502 = load float, float* %74
%503 = load float, float* %104
%504 = fmul float %502, %503
%505 = fneg float %504
%506 = call float @llvm.fmuladd.f32(float %500, float %501, float %505)
%507 = load float, float* %111
%508 = fadd float %506, %507
%509 = load float*, float** %128
%510 = getelementptr inbounds float, float* %509, i64 32
store float %508, float* %510
%511 = load float, float* %73
%512 = fneg float %511
%513 = load float, float* %98
%514 = load float, float* %74
%515 = load float, float* %105
%516 = fmul float %514, %515
%517 = fneg float %516
%518 = call float @llvm.fmuladd.f32(float %512, float %513, float %517)
%519 = load float, float* %112
%520 = fadd float %518, %519
%521 = load float*, float** %128
%522 = getelementptr inbounds float, float* %521, i64 33
store float %520, float* %522
%523 = load float, float* %73
%524 = fneg float %523
%525 = load float, float* %99
%526 = load float, float* %74
%527 = load float, float* %106
%528 = fmul float %526, %527
%529 = fneg float %528
%530 = call float @llvm.fmuladd.f32(float %524, float %525, float %529)
%531 = load float, float* %113
%532 = fadd float %530, %531
%533 = load float*, float** %128
%534 = getelementptr inbounds float, float* %533, i64 34
store float %532, float* %534
%535 = load float, float* %75
%536 = fneg float %535
%537 = load float, float* %93
%538 = load float, float* %76
%539 = load float, float* %100
%540 = fmul float %538, %539
%541 = fneg float %540
%542 = call float @llvm.fmuladd.f32(float %536, float %537, float %541)
%543 = load float, float* %114
%544 = fadd float %542, %543
%545 = load float*, float** %128
%546 = getelementptr inbounds float, float* %545, i64 35
store float %544, float* %546
%547 = load float, float* %75
%548 = fneg float %547
%549 = load float, float* %94
%550 = load float, float* %76
%551 = load float, float* %101
%552 = fmul float %550, %551
%553 = fneg float %552
%554 = call float @llvm.fmuladd.f32(float %548, float %549, float %553)
%555 = load float, float* %115
%556 = fadd float %554, %555
%557 = load float*, float** %128
%558 = getelementptr inbounds float, float* %557, i64 36
store float %556, float* %558
%559 = load float, float* %75
%560 = fneg float %559
%561 = load float, float* %95
%562 = load float, float* %76
%563 = load float, float* %102
%564 = fmul float %562, %563
%565 = fneg float %564
%566 = call float @llvm.fmuladd.f32(float %560, float %561, float %565)
%567 = load float, float* %116
%568 = fadd float %566, %567
%569 = load float*, float** %128
%570 = getelementptr inbounds float, float* %569, i64 37
store float %568, float* %570
%571 = load float, float* %75
%572 = fneg float %571
%573 = load float, float* %96
%574 = load float, float* %76
%575 = load float, float* %103
%576 = fmul float %574, %575
%577 = fneg float %576
%578 = call float @llvm.fmuladd.f32(float %572, float %573, float %577)
%579 = load float, float* %117
%580 = fadd float %578, %579
%581 = load float*, float** %128
%582 = getelementptr inbounds float, float* %581, i64 38
store float %580, float* %582
%583 = load float, float* %75
%584 = fneg float %583
%585 = load float, float* %97
%586 = load float, float* %76
%587 = load float, float* %104
%588 = fmul float %586, %587
%589 = fneg float %588
%590 = call float @llvm.fmuladd.f32(float %584, float %585, float %589)
%591 = load float, float* %118
%592 = fadd float %590, %591
%593 = load float*, float** %128
%594 = getelementptr inbounds float, float* %593, i64 39
store float %592, float* %594
%595 = load float, float* %75
%596 = fneg float %595
%597 = load float, float* %98
%598 = load float, float* %76
%599 = load float, float* %105
%600 = fmul float %598, %599
%601 = fneg float %600
%602 = call float @llvm.fmuladd.f32(float %596, float %597, float %601)
%603 = load float, float* %119
%604 = fadd float %602, %603
%605 = load float*, float** %128
%606 = getelementptr inbounds float, float* %605, i64 40
store float %604, float* %606
%607 = load float, float* %75
%608 = fneg float %607
%609 = load float, float* %99
%610 = load float, float* %76
%611 = load float, float* %106
%612 = fmul float %610, %611
%613 = fneg float %612
%614 = call float @llvm.fmuladd.f32(float %608, float %609, float %613)
%615 = load float, float* %120
%616 = fadd float %614, %615
%617 = load float*, float** %128
%618 = getelementptr inbounds float, float* %617, i64 41
store float %616, float* %618
%619 = load float, float* %77
%620 = fneg float %619
%621 = load float, float* %93
%622 = load float, float* %78
%623 = load float, float* %100
%624 = fmul float %622, %623
%625 = fneg float %624
%626 = call float @llvm.fmuladd.f32(float %620, float %621, float %625)
%627 = load float, float* %121
%628 = fadd float %626, %627
%629 = load float*, float** %128
%630 = getelementptr inbounds float, float* %629, i64 42
store float %628, float* %630
%631 = load float, float* %77
%632 = fneg float %631
%633 = load float, float* %94
%634 = load float, float* %78
%635 = load float, float* %101
%636 = fmul float %634, %635
%637 = fneg float %636
%638 = call float @llvm.fmuladd.f32(float %632, float %633, float %637)
%639 = load float, float* %122
%640 = fadd float %638, %639
%641 = load float*, float** %128
%642 = getelementptr inbounds float, float* %641, i64 43
store float %640, float* %642
%643 = load float, float* %77
%644 = fneg float %643
%645 = load float, float* %95
%646 = load float, float* %78
%647 = load float, float* %102
%648 = fmul float %646, %647
%649 = fneg float %648
%650 = call float @llvm.fmuladd.f32(float %644, float %645, float %649)
%651 = load float, float* %123
%652 = fadd float %650, %651
%653 = load float*, float** %128
%654 = getelementptr inbounds float, float* %653, i64 44
store float %652, float* %654
%655 = load float, float* %77
%656 = fneg float %655
%657 = load float, float* %96
%658 = load float, float* %78
%659 = load float, float* %103
%660 = fmul float %658, %659
%661 = fneg float %660
%662 = call float @llvm.fmuladd.f32(float %656, float %657, float %661)
%663 = load float, float* %124
%664 = fadd float %662, %663
%665 = load float*, float** %128
%666 = getelementptr inbounds float, float* %665, i64 45
store float %664, float* %666
%667 = load float, float* %77
%668 = fneg float %667
%669 = load float, float* %97
%670 = load float, float* %78
%671 = load float, float* %104
%672 = fmul float %670, %671
%673 = fneg float %672
%674 = call float @llvm.fmuladd.f32(float %668, float %669, float %673)
%675 = load float, float* %125
%676 = fadd float %674, %675
%677 = load float*, float** %128
%678 = getelementptr inbounds float, float* %677, i64 46
store float %676, float* %678
%679 = load float, float* %77
%680 = fneg float %679
%681 = load float, float* %98
%682 = load float, float* %78
%683 = load float, float* %105
%684 = fmul float %682, %683
%685 = fneg float %684
%686 = call float @llvm.fmuladd.f32(float %680, float %681, float %685)
%687 = load float, float* %126
%688 = fadd float %686, %687
%689 = load float*, float** %128
%690 = getelementptr inbounds float, float* %689, i64 47
store float %688, float* %690
%691 = load float, float* %77
%692 = fneg float %691
%693 = load float, float* %99
%694 = load float, float* %78
%695 = load float, float* %106
%696 = fmul float %694, %695
%697 = fneg float %696
%698 = call float @llvm.fmuladd.f32(float %692, float %693, float %697)
%699 = load float, float* %127
%700 = fadd float %698, %699
%701 = load float*, float** %128
%702 = getelementptr inbounds float, float* %701, i64 48
store float %700, float* %702
ret void
}

LLVM IR (-O2):
define void @update_cov_gyro(float %0, float %1, float %2, float %3, float %4, float %5, float %6, float %7, float %8, float %9, float %10, float %11, float %12, float %13, float %14, float %15, float %16, float %17, float %18, float %19, float %20, float %21, float %22, float %23, float %24, float %25, float %26, float %27, float %28, float %29, float %30, float %31, float %32, float %33, float %34, float %35, float %36, float %37, float %38, float %39, float %40, float %41, float %42, float %43, float %44, float %45, float %46, float %47, float %48, float %49, float %50, float %51, float %52, float %53, float %54, float %55, float %56, float %57, float %58, float %59, float %60, float %61, float %62, float* writeonly %63) {
%65 = insertelement <2 x float> poison, float %1, i64 0
%66 = insertelement <2 x float> %65, float %3, i64 1
%67 = fneg <2 x float> %66
%68 = shufflevector <2 x float> %67, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%69 = shufflevector <2 x float> %67, <2 x float> undef, <4 x i32> zeroinitializer
%70 = insertelement <4 x float> poison, float %35, i64 0
%71 = insertelement <4 x float> %70, float %36, i64 1
%72 = insertelement <4 x float> %71, float %37, i64 2
%73 = insertelement <4 x float> %72, float %38, i64 3
%74 = fmul <4 x float> %69, %73
%75 = insertelement <2 x float> poison, float %0, i64 0
%76 = insertelement <2 x float> %75, float %2, i64 1
%77 = fneg <2 x float> %76
%78 = shufflevector <2 x float> %77, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%79 = shufflevector <2 x float> %77, <2 x float> undef, <4 x i32> zeroinitializer
%80 = insertelement <4 x float> poison, float %28, i64 0
%81 = insertelement <4 x float> %80, float %29, i64 1
%82 = insertelement <4 x float> %81, float %30, i64 2
%83 = insertelement <4 x float> %82, float %31, i64 3
%84 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %79, <4 x float> %83, <4 x float> %74)
%85 = insertelement <4 x float> poison, float %14, i64 0
%86 = insertelement <4 x float> %85, float %15, i64 1
%87 = insertelement <4 x float> %86, float %16, i64 2
%88 = insertelement <4 x float> %87, float %17, i64 3
%89 = fadd <4 x float> %84, %88
%90 = bitcast float* %63 to <4 x float>*
store <4 x float> %89, <4 x float>* %90
%91 = getelementptr inbounds float, float* %63, i64 4
%92 = insertelement <4 x float> poison, float %39, i64 0
%93 = insertelement <4 x float> %92, float %40, i64 1
%94 = insertelement <4 x float> %93, float %41, i64 2
%95 = insertelement <4 x float> %94, float %35, i64 3
%96 = fmul <4 x float> %68, %95
%97 = insertelement <4 x float> poison, float %32, i64 0
%98 = insertelement <4 x float> %97, float %33, i64 1
%99 = insertelement <4 x float> %98, float %34, i64 2
%100 = insertelement <4 x float> %99, float %28, i64 3
%101 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %78, <4 x float> %100, <4 x float> %96)
%102 = insertelement <4 x float> poison, float %18, i64 0
%103 = insertelement <4 x float> %102, float %19, i64 1
%104 = insertelement <4 x float> %103, float %20, i64 2
%105 = insertelement <4 x float> %104, float %21, i64 3
%106 = fadd <4 x float> %101, %105
%107 = bitcast float* %91 to <4 x float>*
store <4 x float> %106, <4 x float>* %107
%108 = extractelement <2 x float> %67, i64 1
%109 = extractelement <2 x float> %77, i64 1
%110 = getelementptr inbounds float, float* %63, i64 8
%111 = shufflevector <2 x float> %67, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%112 = insertelement <4 x float> poison, float %36, i64 0
%113 = insertelement <4 x float> %112, float %37, i64 1
%114 = insertelement <4 x float> %113, float %38, i64 2
%115 = insertelement <4 x float> %114, float %39, i64 3
%116 = fmul <4 x float> %111, %115
%117 = shufflevector <2 x float> %77, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%118 = insertelement <4 x float> poison, float %29, i64 0
%119 = insertelement <4 x float> %118, float %30, i64 1
%120 = insertelement <4 x float> %119, float %31, i64 2
%121 = insertelement <4 x float> %120, float %32, i64 3
%122 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %117, <4 x float> %121, <4 x float> %116)
%123 = insertelement <4 x float> poison, float %22, i64 0
%124 = insertelement <4 x float> %123, float %23, i64 1
%125 = insertelement <4 x float> %124, float %24, i64 2
%126 = insertelement <4 x float> %125, float %25, i64 3
%127 = fadd <4 x float> %122, %126
%128 = bitcast float* %110 to <4 x float>*
store <4 x float> %127, <4 x float>* %128
%129 = fmul float %108, %40
%130 = tail call float @llvm.fmuladd.f32(float %109, float %33, float %129)
%131 = fadd float %130, %26
%132 = getelementptr inbounds float, float* %63, i64 12
store float %131, float* %132
%133 = fmul float %108, %41
%134 = tail call float @llvm.fmuladd.f32(float %109, float %34, float %133)
%135 = fadd float %134, %27
%136 = getelementptr inbounds float, float* %63, i64 13
store float %135, float* %136
%137 = getelementptr inbounds float, float* %63, i64 14
%138 = insertelement <2 x float> poison, float %4, i64 0
%139 = insertelement <2 x float> %138, float %7, i64 1
%140 = fsub <2 x float> <float 1.000000e+00, float 1.000000e+00>, %139
%141 = shufflevector <2 x float> %140, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%142 = shufflevector <2 x float> %140, <2 x float> undef, <4 x i32> zeroinitializer
%143 = fmul <4 x float> %142, %83
%144 = insertelement <2 x float> poison, float %5, i64 0
%145 = insertelement <2 x float> %144, float %6, i64 1
%146 = fneg <2 x float> %145
%147 = shufflevector <2 x float> %146, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%148 = shufflevector <2 x float> %146, <2 x float> undef, <4 x i32> zeroinitializer
%149 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %148, <4 x float> %73, <4 x float> %143)
%150 = bitcast float* %137 to <4 x float>*
store <4 x float> %149, <4 x float>* %150
%151 = getelementptr inbounds float, float* %63, i64 18
%152 = insertelement <4 x float> %99, float %35, i64 3
%153 = fmul <4 x float> %141, %152
%154 = insertelement <4 x float> %94, float %28, i64 3
%155 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %147, <4 x float> %154, <4 x float> %153)
%156 = bitcast float* %151 to <4 x float>*
store <4 x float> %155, <4 x float>* %156
%157 = extractelement <2 x float> %140, i64 1
%158 = extractelement <2 x float> %146, i64 1
%159 = getelementptr inbounds float, float* %63, i64 22
%160 = shufflevector <2 x float> %140, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%161 = fmul <4 x float> %160, %115
%162 = shufflevector <2 x float> %146, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%163 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %162, <4 x float> %121, <4 x float> %161)
%164 = bitcast float* %159 to <4 x float>*
store <4 x float> %163, <4 x float>* %164
%165 = fmul float %157, %40
%166 = tail call float @llvm.fmuladd.f32(float %158, float %33, float %165)
%167 = getelementptr inbounds float, float* %63, i64 26
store float %166, float* %167
%168 = fmul float %157, %41
%169 = tail call float @llvm.fmuladd.f32(float %158, float %34, float %168)
%170 = getelementptr inbounds float, float* %63, i64 27
store float %169, float* %170
%171 = getelementptr inbounds float, float* %63, i64 28
%172 = insertelement <2 x float> poison, float %9, i64 0
%173 = insertelement <2 x float> %172, float %11, i64 1
%174 = fneg <2 x float> %173
%175 = shufflevector <2 x float> %174, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%176 = shufflevector <2 x float> %174, <2 x float> undef, <4 x i32> zeroinitializer
%177 = fmul <4 x float> %176, %73
%178 = insertelement <2 x float> poison, float %8, i64 0
%179 = insertelement <2 x float> %178, float %10, i64 1
%180 = fneg <2 x float> %179
%181 = shufflevector <2 x float> %180, <2 x float> poison, <4 x i32> <i32 0, i32 0, i32 0, i32 1>
%182 = shufflevector <2 x float> %180, <2 x float> undef, <4 x i32> zeroinitializer
%183 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %182, <4 x float> %83, <4 x float> %177)
%184 = insertelement <4 x float> poison, float %42, i64 0
%185 = insertelement <4 x float> %184, float %43, i64 1
%186 = insertelement <4 x float> %185, float %44, i64 2
%187 = insertelement <4 x float> %186, float %45, i64 3
%188 = fadd <4 x float> %183, %187
%189 = bitcast float* %171 to <4 x float>*
store <4 x float> %188, <4 x float>* %189
%190 = getelementptr inbounds float, float* %63, i64 32
%191 = fmul <4 x float> %175, %95
%192 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %181, <4 x float> %100, <4 x float> %191)
%193 = insertelement <4 x float> poison, float %46, i64 0
%194 = insertelement <4 x float> %193, float %47, i64 1
%195 = insertelement <4 x float> %194, float %48, i64 2
%196 = insertelement <4 x float> %195, float %49, i64 3
%197 = fadd <4 x float> %192, %196
%198 = bitcast float* %190 to <4 x float>*
store <4 x float> %197, <4 x float>* %198
%199 = getelementptr inbounds float, float* %63, i64 36
%200 = shufflevector <2 x float> %174, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 undef, i32 undef>
%201 = shufflevector <2 x float> %174, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%202 = fmul <4 x float> %201, %115
%203 = shufflevector <2 x float> %180, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 undef, i32 undef>
%204 = shufflevector <2 x float> %180, <2 x float> undef, <4 x i32> <i32 1, i32 1, i32 1, i32 1>
%205 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %204, <4 x float> %121, <4 x float> %202)
%206 = insertelement <4 x float> poison, float %50, i64 0
%207 = insertelement <4 x float> %206, float %51, i64 1
%208 = insertelement <4 x float> %207, float %52, i64 2
%209 = insertelement <4 x float> %208, float %53, i64 3
%210 = fadd <4 x float> %205, %209
%211 = bitcast float* %199 to <4 x float>*
store <4 x float> %210, <4 x float>* %211
%212 = getelementptr inbounds float, float* %63, i64 40
%213 = fneg float %12
%214 = fneg float %13
%215 = insertelement <4 x float> %200, float %214, i64 2
%216 = insertelement <4 x float> %215, float %214, i64 3
%217 = insertelement <4 x float> poison, float %40, i64 0
%218 = insertelement <4 x float> %217, float %41, i64 1
%219 = insertelement <4 x float> %218, float %35, i64 2
%220 = insertelement <4 x float> %219, float %36, i64 3
%221 = fmul <4 x float> %216, %220
%222 = insertelement <4 x float> %203, float %213, i64 2
%223 = insertelement <4 x float> %222, float %213, i64 3
%224 = insertelement <4 x float> poison, float %33, i64 0
%225 = insertelement <4 x float> %224, float %34, i64 1
%226 = insertelement <4 x float> %225, float %28, i64 2
%227 = insertelement <4 x float> %226, float %29, i64 3
%228 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %223, <4 x float> %227, <4 x float> %221)
%229 = insertelement <4 x float> poison, float %54, i64 0
%230 = insertelement <4 x float> %229, float %55, i64 1
%231 = insertelement <4 x float> %230, float %56, i64 2
%232 = insertelement <4 x float> %231, float %57, i64 3
%233 = fadd <4 x float> %228, %232
%234 = bitcast float* %212 to <4 x float>*
store <4 x float> %233, <4 x float>* %234
%235 = getelementptr inbounds float, float* %63, i64 44
%236 = insertelement <4 x float> poison, float %214, i64 0
%237 = shufflevector <4 x float> %236, <4 x float> poison, <4 x i32> zeroinitializer
%238 = insertelement <4 x float> poison, float %37, i64 0
%239 = insertelement <4 x float> %238, float %38, i64 1
%240 = insertelement <4 x float> %239, float %39, i64 2
%241 = insertelement <4 x float> %240, float %40, i64 3
%242 = fmul <4 x float> %237, %241
%243 = insertelement <4 x float> poison, float %213, i64 0
%244 = shufflevector <4 x float> %243, <4 x float> poison, <4 x i32> zeroinitializer
%245 = insertelement <4 x float> poison, float %30, i64 0
%246 = insertelement <4 x float> %245, float %31, i64 1
%247 = insertelement <4 x float> %246, float %32, i64 2
%248 = insertelement <4 x float> %247, float %33, i64 3
%249 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %244, <4 x float> %248, <4 x float> %242)
%250 = insertelement <4 x float> poison, float %58, i64 0
%251 = insertelement <4 x float> %250, float %59, i64 1
%252 = insertelement <4 x float> %251, float %60, i64 2
%253 = insertelement <4 x float> %252, float %61, i64 3
%254 = fadd <4 x float> %249, %253
%255 = bitcast float* %235 to <4 x float>*
store <4 x float> %254, <4 x float>* %255
%256 = fmul float %214, %41
%257 = tail call float @llvm.fmuladd.f32(float %213, float %34, float %256)
%258 = fadd float %257, %62
%259 = getelementptr inbounds float, float* %63, i64 48
store float %258, float* %259
ret void
}