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


x86 assembly (clang, -O0):
<update_cov_rangefinder>:
push   %rbp
mov    %rsp,%rbp
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  0xe8(%rbp),%xmm2
movss  -0x20(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0x10(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0x18(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0x20(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0x28(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0x30(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0x4(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0x38(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x18(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0x40(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x1c(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0x48(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x20(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0x50(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x24(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0x58(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x28(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0x60(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x2c(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0x68(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x30(%rax)
movss  -0x8(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0x70(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x34(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0x78(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x38(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0x80(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x3c(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0x88(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x40(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0x90(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x44(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0x98(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x48(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0xa0(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x4c(%rax)
movss  -0xc(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0xa8(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x50(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0xb0(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x54(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0xb8(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x58(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0xc0(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x5c(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0xc8(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x60(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0xd0(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x64(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0xd8(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x68(%rax)
movss  -0x10(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0xe0(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x6c(%rax)
movss  0xe8(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x7c2(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x70(%rax)
movss  0xf0(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x78f(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x74(%rax)
movss  0xf8(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x75c(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x78(%rax)
movss  0x100(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x729(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x7c(%rax)
movss  0x108(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x6f6(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x80(%rax)
movss  0x110(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x6c0(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x84(%rax)
movss  0x118(%rbp),%xmm0
movss  -0x14(%rbp),%xmm1
movd   %xmm1,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm1
movss  0x68a(%rip),%xmm2
addss  %xmm2,%xmm1
mulss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x88(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0x120(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x8c(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0x128(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x90(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0x130(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x94(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0x138(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x98(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0x140(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x9c(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0x148(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa0(%rax)
movss  -0x18(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0x150(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa4(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xe8(%rbp),%xmm2
movss  0x158(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xa8(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf0(%rbp),%xmm2
movss  0x160(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xac(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0xf8(%rbp),%xmm2
movss  0x168(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb0(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x100(%rbp),%xmm2
movss  0x170(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb4(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x108(%rbp),%xmm2
movss  0x178(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xb8(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x110(%rbp),%xmm2
movss  0x180(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xbc(%rax)
movss  -0x1c(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
movss  0x118(%rbp),%xmm2
movss  0x188(%rbp),%xmm1
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xc0(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<update_cov_rangefinder>:
movaps %xmm6,-0x18(%rsp)
movaps %xmm5,-0x28(%rsp)
movss  %xmm4,-0x3c(%rsp)
movaps %xmm3,-0x38(%rsp)
movaps %xmm2,%xmm6
movaps %xmm1,%xmm4
movaps %xmm0,%xmm13
movss  0x110(%rsp),%xmm0
movss  0x108(%rsp),%xmm8
movaps %xmm13,%xmm2
shufps $0x0,%xmm13,%xmm13
movss  0xe8(%rsp),%xmm11
movss  0xe0(%rsp),%xmm14
movaps %xmm0,%xmm12
unpcklps %xmm14,%xmm12
unpcklps %xmm11,%xmm14
movss  0x18(%rsp),%xmm1
movss  0x10(%rsp),%xmm3
unpcklps %xmm1,%xmm3
movss  0x8(%rsp),%xmm1
unpcklps %xmm1,%xmm7
movss  0xf0(%rsp),%xmm15
movlhps %xmm3,%xmm7
movss  0xf8(%rsp),%xmm10
unpcklps %xmm15,%xmm11
unpcklps %xmm10,%xmm15
movaps %xmm8,%xmm3
unpcklps %xmm0,%xmm3
movaps %xmm3,%xmm9
movlhps %xmm14,%xmm9
movlhps %xmm15,%xmm14
mulps  %xmm14,%xmm13
subps  %xmm13,%xmm7
movups %xmm7,(%rdi)
movss  0x38(%rsp),%xmm1
movss  0x30(%rsp),%xmm7
unpcklps %xmm1,%xmm7
movss  0x28(%rsp),%xmm1
movss  0x20(%rsp),%xmm0
unpcklps %xmm1,%xmm0
movlhps %xmm7,%xmm0
unpcklps %xmm4,%xmm2
movaps %xmm2,%xmm13
shufps $0x40,%xmm2,%xmm2
movss  0x100(%rsp),%xmm1
movaps %xmm1,%xmm7
unpcklps %xmm8,%xmm7
movlhps %xmm7,%xmm15
movlhps %xmm12,%xmm7
mulps  %xmm7,%xmm2
subps  %xmm2,%xmm0
movups %xmm0,0x10(%rdi)
movss  0x58(%rsp),%xmm0
movss  0x50(%rsp),%xmm2
unpcklps %xmm0,%xmm2
movss  0x48(%rsp),%xmm5
movss  0x40(%rsp),%xmm0
unpcklps %xmm5,%xmm0
movlhps %xmm2,%xmm0
shufps $0x0,%xmm4,%xmm4
unpcklps %xmm1,%xmm10
movlhps %xmm11,%xmm12
movlhps %xmm10,%xmm11
mulps  %xmm11,%xmm4
subps  %xmm4,%xmm0
movups %xmm0,0x20(%rdi)
movaps 0xdbf(%rip),%xmm0
xorps  %xmm0,%xmm13
movaps %xmm6,%xmm2
xorps  %xmm0,%xmm2
shufps $0x5,%xmm2,%xmm13
mulps  %xmm13,%xmm9
movss  0x78(%rsp),%xmm2
movss  0x70(%rsp),%xmm4
unpcklps %xmm2,%xmm4
movss  0x68(%rsp),%xmm2
movss  0x60(%rsp),%xmm5
unpcklps %xmm2,%xmm5
movlhps %xmm4,%xmm5
addps  %xmm9,%xmm5
movups %xmm5,0x30(%rdi)
movaps %xmm6,%xmm2
shufps $0x0,%xmm6,%xmm6
mulps  %xmm6,%xmm15
movss  0x98(%rsp),%xmm4
movss  0x90(%rsp),%xmm5
unpcklps %xmm4,%xmm5
movss  0x88(%rsp),%xmm4
movss  0x80(%rsp),%xmm6
unpcklps %xmm4,%xmm6
movlhps %xmm5,%xmm6
subps  %xmm15,%xmm6
movaps -0x38(%rsp),%xmm4
unpcklps %xmm4,%xmm2
shufps $0x54,%xmm2,%xmm2
movups %xmm6,0x40(%rdi)
mulps  %xmm2,%xmm12
movss  0xb8(%rsp),%xmm2
movss  0xb0(%rsp),%xmm6
unpcklps %xmm2,%xmm6
movss  0xa8(%rsp),%xmm2
movss  0xa0(%rsp),%xmm5
unpcklps %xmm2,%xmm5
movlhps %xmm6,%xmm5
subps  %xmm12,%xmm5
movups %xmm5,0x50(%rdi)
shufps $0x0,%xmm4,%xmm4
movlhps %xmm3,%xmm10
mulps  %xmm4,%xmm10
movss  0xd8(%rsp),%xmm2
movss  0xd0(%rsp),%xmm3
unpcklps %xmm2,%xmm3
movss  0xc8(%rsp),%xmm2
movss  0xc0(%rsp),%xmm4
unpcklps %xmm2,%xmm4
movlhps %xmm3,%xmm4
subps  %xmm10,%xmm4
movups %xmm4,0x60(%rdi)
movss  0xcc5(%rip),%xmm2
subss  -0x3c(%rsp),%xmm2
movaps %xmm2,%xmm3
shufps $0x0,%xmm2,%xmm3
mulps  %xmm14,%xmm3
movups %xmm3,0x70(%rdi)
mulss  %xmm2,%xmm1
movss  %xmm1,0x80(%rdi)
movaps %xmm2,%xmm1
mulss  %xmm8,%xmm1
movss  %xmm1,0x84(%rdi)
movss  0x110(%rsp),%xmm6
mulss  %xmm6,%xmm2
movss  %xmm2,0x88(%rdi)
movss  0x130(%rsp),%xmm1
movss  0x128(%rsp),%xmm2
unpcklps %xmm1,%xmm2
movss  0x120(%rsp),%xmm1
movss  0x118(%rsp),%xmm3
unpcklps %xmm1,%xmm3
movlhps %xmm2,%xmm3
movaps -0x28(%rsp),%xmm2
movaps %xmm2,%xmm1
shufps $0x0,%xmm2,%xmm2
mulps  %xmm14,%xmm2
subps  %xmm2,%xmm3
movups %xmm3,0x8c(%rdi)
movss  0x150(%rsp),%xmm2
movss  0x148(%rsp),%xmm3
unpcklps %xmm2,%xmm3
movss  0x140(%rsp),%xmm2
movss  0x138(%rsp),%xmm4
unpcklps %xmm2,%xmm4
movlhps %xmm3,%xmm4
movaps -0x18(%rsp),%xmm5
unpcklps %xmm5,%xmm1
xorps  %xmm1,%xmm0
shufps $0x40,%xmm1,%xmm1
mulps  %xmm7,%xmm1
subps  %xmm1,%xmm4
movups %xmm4,0x9c(%rdi)
movss  0x170(%rsp),%xmm1
movss  0x168(%rsp),%xmm2
unpcklps %xmm1,%xmm2
movss  0x160(%rsp),%xmm1
movss  0x158(%rsp),%xmm3
unpcklps %xmm1,%xmm3
movlhps %xmm2,%xmm3
movaps %xmm5,%xmm1
shufps $0x0,%xmm5,%xmm1
mulps  %xmm11,%xmm1
subps  %xmm1,%xmm3
movups %xmm3,0xac(%rdi)
pshufd $0x55,%xmm0,%xmm0
mulss  %xmm0,%xmm8
addss  0x178(%rsp),%xmm8
movss  %xmm8,0xbc(%rdi)
mulss  %xmm6,%xmm0
addss  0x180(%rsp),%xmm0
movss  %xmm0,0xc0(%rdi)
ret

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

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