void mat4_adjoint(float *dst) {
  float a00 = dst[0], a01 = dst[1], a02 = dst[2], a03 = dst[3];
  float a10 = dst[4], a11 = dst[5], a12 = dst[6], a13 = dst[7];
  float a20 = dst[8], a21 = dst[9], a22 = dst[10], a23 = dst[11];
  float a30 = dst[12], a31 = dst[13], a32 = dst[14], a33 = dst[15];
  dst[0] = (a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) +
            a31 * (a12 * a23 - a13 * a22));
  dst[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) +
             a31 * (a02 * a23 - a03 * a22));
  dst[2] = (a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) +
            a31 * (a02 * a13 - a03 * a12));
  dst[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) +
             a21 * (a02 * a13 - a03 * a12));
  dst[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) +
             a30 * (a12 * a23 - a13 * a22));
  dst[5] = (a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) +
            a30 * (a02 * a23 - a03 * a22));
  dst[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) +
             a30 * (a02 * a13 - a03 * a12));
  dst[7] = (a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) +
            a20 * (a02 * a13 - a03 * a12));
  dst[8] = (a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) +
            a30 * (a11 * a23 - a13 * a21));
  dst[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) +
             a30 * (a01 * a23 - a03 * a21));
  dst[10] = (a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) +
             a30 * (a01 * a13 - a03 * a11));
  dst[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) +
              a20 * (a01 * a13 - a03 * a11));
  dst[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) +
              a30 * (a11 * a22 - a12 * a21));
  dst[13] = (a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) +
             a30 * (a01 * a22 - a02 * a21));
  dst[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) +
              a30 * (a01 * a12 - a02 * a11));
  dst[15] = (a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) +
             a20 * (a01 * a12 - a02 * a11));
}


x86 assembly (clang, -O0):
<mat4_adjoint>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
movss  (%rax),%xmm0
movss  %xmm0,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movss  0x4(%rax),%xmm0
movss  %xmm0,-0x10(%rbp)
mov    -0x8(%rbp),%rax
movss  0x8(%rax),%xmm0
movss  %xmm0,-0x14(%rbp)
mov    -0x8(%rbp),%rax
movss  0xc(%rax),%xmm0
movss  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movss  0x10(%rax),%xmm0
movss  %xmm0,-0x1c(%rbp)
mov    -0x8(%rbp),%rax
movss  0x14(%rax),%xmm0
movss  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movss  0x18(%rax),%xmm0
movss  %xmm0,-0x24(%rbp)
mov    -0x8(%rbp),%rax
movss  0x1c(%rax),%xmm0
movss  %xmm0,-0x28(%rbp)
mov    -0x8(%rbp),%rax
movss  0x20(%rax),%xmm0
movss  %xmm0,-0x2c(%rbp)
mov    -0x8(%rbp),%rax
movss  0x24(%rax),%xmm0
movss  %xmm0,-0x30(%rbp)
mov    -0x8(%rbp),%rax
movss  0x28(%rax),%xmm0
movss  %xmm0,-0x34(%rbp)
mov    -0x8(%rbp),%rax
movss  0x2c(%rax),%xmm0
movss  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movss  0x30(%rax),%xmm0
movss  %xmm0,-0x3c(%rbp)
mov    -0x8(%rbp),%rax
movss  0x34(%rax),%xmm0
movss  %xmm0,-0x40(%rbp)
mov    -0x8(%rbp),%rax
movss  0x38(%rax),%xmm0
movss  %xmm0,-0x44(%rbp)
mov    -0x8(%rbp),%rax
movss  0x3c(%rax),%xmm0
movss  %xmm0,-0x48(%rbp)
movss  -0x20(%rbp),%xmm1
movss  -0x34(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x30(%rbp),%xmm0
movss  -0x24(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x28(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x40(%rbp),%xmm0
movss  -0x24(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x28(%rbp),%xmm3
mulss  -0x34(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,(%rax)
movss  -0x10(%rbp),%xmm1
movss  -0x34(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x30(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x40(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x34(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  -0x10(%rbp),%xmm1
movss  -0x24(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x20(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x40(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x24(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  -0x10(%rbp),%xmm1
movss  -0x24(%rbp),%xmm2
movss  -0x38(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x20(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x38(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x34(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x30(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x24(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  -0x1c(%rbp),%xmm1
movss  -0x34(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x24(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x28(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x24(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x28(%rbp),%xmm3
mulss  -0x34(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x34(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x34(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x24(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x44(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x44(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x24(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x18(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x24(%rbp),%xmm2
movss  -0x38(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x34(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm3
movss  -0x38(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x34(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x2c(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x24(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x1c(%rax)
movss  -0x1c(%rbp),%xmm1
movss  -0x30(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x28(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x28(%rbp),%xmm3
mulss  -0x30(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x20(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x30(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x38(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x38(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x30(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x24(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x20(%rbp),%xmm2
movss  -0x48(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x48(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x28(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x20(%rbp),%xmm2
movss  -0x38(%rbp),%xmm3
movss  -0x28(%rbp),%xmm0
mulss  -0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x38(%rbp),%xmm5
movss  -0x18(%rbp),%xmm4
mulss  -0x30(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x2c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x28(%rbp),%xmm4
movss  -0x18(%rbp),%xmm3
mulss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x2c(%rax)
movss  -0x1c(%rbp),%xmm1
movss  -0x30(%rbp),%xmm2
movss  -0x44(%rbp),%xmm3
movss  -0x34(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm3
movss  -0x44(%rbp),%xmm5
movss  -0x24(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x20(%rbp),%xmm2
movss  -0x34(%rbp),%xmm4
movss  -0x24(%rbp),%xmm3
mulss  -0x30(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x30(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x30(%rbp),%xmm2
movss  -0x44(%rbp),%xmm3
movss  -0x34(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x2c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x44(%rbp),%xmm5
movss  -0x14(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x34(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
mulss  -0x30(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x34(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x20(%rbp),%xmm2
movss  -0x44(%rbp),%xmm3
movss  -0x24(%rbp),%xmm0
mulss  -0x40(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x44(%rbp),%xmm5
movss  -0x14(%rbp),%xmm4
mulss  -0x40(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x3c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x24(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
mulss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x38(%rax)
movss  -0xc(%rbp),%xmm1
movss  -0x20(%rbp),%xmm2
movss  -0x34(%rbp),%xmm3
movss  -0x24(%rbp),%xmm0
mulss  -0x30(%rbp),%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm3
movss  -0x34(%rbp),%xmm5
movss  -0x14(%rbp),%xmm4
mulss  -0x30(%rbp),%xmm4
movd   %xmm4,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm4
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
movd   %xmm0,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x2c(%rbp),%xmm0
movss  -0x10(%rbp),%xmm2
movss  -0x24(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
mulss  -0x20(%rbp),%xmm3
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movss  %xmm0,0x3c(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<mat4_adjoint>:
sub    $0x18,%rsp
movss  (%rdi),%xmm0
movss  %xmm0,-0x14(%rsp)
movss  0x4(%rdi),%xmm0
movss  %xmm0,-0x80(%rsp)
movss  0x14(%rdi),%xmm14
movss  0x18(%rdi),%xmm5
movss  0x1c(%rdi),%xmm6
movss  0x24(%rdi),%xmm8
movss  0x28(%rdi),%xmm1
movss  0x2c(%rdi),%xmm7
movss  0x34(%rdi),%xmm13
movss  0x38(%rdi),%xmm9
movss  0x3c(%rdi),%xmm12
movaps %xmm9,%xmm0
mulss  %xmm7,%xmm0
movaps %xmm1,%xmm3
movaps %xmm1,%xmm10
mulss  %xmm12,%xmm3
subss  %xmm0,%xmm3
movaps %xmm9,%xmm0
movss  %xmm9,-0x78(%rsp)
mulss  %xmm6,%xmm0
movaps %xmm6,-0x10(%rsp)
movss  %xmm5,-0x34(%rsp)
movaps %xmm5,%xmm15
mulss  %xmm12,%xmm15
subss  %xmm0,%xmm15
movaps %xmm15,%xmm0
movss  %xmm15,-0x54(%rsp)
mulss  %xmm8,%xmm0
movaps %xmm8,%xmm4
movss  %xmm8,-0x70(%rsp)
movaps %xmm14,%xmm1
mulss  %xmm3,%xmm1
movaps %xmm3,%xmm8
movss  %xmm3,-0x28(%rsp)
subss  %xmm0,%xmm1
movaps %xmm10,%xmm0
movaps %xmm10,%xmm11
movss  %xmm10,-0x7c(%rsp)
mulss  %xmm6,%xmm0
movaps %xmm5,%xmm2
mulss  %xmm7,%xmm2
movaps %xmm7,%xmm10
subss  %xmm0,%xmm2
movss  %xmm2,-0x24(%rsp)
movaps %xmm13,%xmm0
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x8(%rdi),%xmm1
movss  0xc(%rdi),%xmm3
movss  0x10(%rdi),%xmm2
movss  %xmm2,-0x1c(%rsp)
movss  0x20(%rdi),%xmm2
movss  %xmm2,-0x20(%rsp)
movss  0x30(%rdi),%xmm2
movaps %xmm2,(%rsp)
movss  %xmm0,(%rdi)
mulss  %xmm3,%xmm9
movaps %xmm3,%xmm6
movss  %xmm3,-0x6c(%rsp)
movaps %xmm1,%xmm7
movaps %xmm1,%xmm3
mulss  %xmm12,%xmm7
subss  %xmm9,%xmm7
movaps %xmm7,%xmm5
movss  %xmm7,-0x2c(%rsp)
mulss  %xmm4,%xmm5
movss  -0x80(%rsp),%xmm2
movaps %xmm2,%xmm1
mulss  %xmm8,%xmm1
subss  %xmm5,%xmm1
movaps %xmm11,%xmm0
mulss  %xmm6,%xmm0
movaps %xmm3,%xmm4
movaps %xmm3,%xmm11
movss  %xmm3,-0x18(%rsp)
mulss  %xmm10,%xmm4
subss  %xmm0,%xmm4
movss  %xmm4,-0x30(%rsp)
movaps %xmm13,%xmm0
mulss  %xmm4,%xmm0
addss  %xmm1,%xmm0
xorps  0xd6f(%rip),%xmm0
movss  %xmm0,0x4(%rdi)
mulss  %xmm14,%xmm7
movaps %xmm2,%xmm6
movaps %xmm2,%xmm8
mulss  %xmm15,%xmm6
subss  %xmm7,%xmm6
movaps -0x10(%rsp),%xmm9
mulss  %xmm9,%xmm11
movaps %xmm13,%xmm0
mulss  %xmm10,%xmm0
movss  %xmm0,-0x40(%rsp)
movss  -0x70(%rsp),%xmm15
movaps %xmm15,%xmm2
mulss  %xmm12,%xmm2
movss  %xmm2,-0x38(%rsp)
movaps %xmm13,%xmm2
mulss  %xmm9,%xmm2
movss  %xmm2,-0x44(%rsp)
movaps %xmm14,%xmm3
mulss  %xmm12,%xmm3
movss  %xmm3,-0x3c(%rsp)
movaps %xmm15,%xmm0
movaps %xmm15,%xmm1
mulss  %xmm9,%xmm0
movss  %xmm0,-0x48(%rsp)
movaps %xmm14,%xmm0
mulss  %xmm10,%xmm0
movss  %xmm0,-0x64(%rsp)
mulss  %xmm8,%xmm12
movss  %xmm12,-0x4c(%rsp)
mulss  %xmm8,%xmm10
movss  %xmm10,-0x50(%rsp)
mulss  %xmm8,%xmm9
movaps %xmm9,-0x10(%rsp)
movaps %xmm13,%xmm4
movaps %xmm13,%xmm3
movss  -0x7c(%rsp),%xmm7
mulss  %xmm7,%xmm3
movss  %xmm3,-0x58(%rsp)
movaps %xmm15,%xmm13
movss  -0x78(%rsp),%xmm5
mulss  %xmm5,%xmm13
movaps %xmm4,%xmm3
movss  %xmm4,-0x68(%rsp)
movss  -0x34(%rsp),%xmm15
mulss  %xmm15,%xmm3
movss  %xmm3,-0x60(%rsp)
movaps %xmm14,%xmm12
mulss  %xmm5,%xmm12
movaps %xmm1,%xmm3
mulss  %xmm15,%xmm3
movss  %xmm3,-0x5c(%rsp)
movaps %xmm14,%xmm10
movss  %xmm14,-0x74(%rsp)
movaps %xmm7,%xmm2
mulss  %xmm7,%xmm10
mulss  %xmm8,%xmm5
movss  %xmm5,-0x78(%rsp)
mulss  %xmm8,%xmm2
movss  %xmm2,-0x7c(%rsp)
movaps %xmm8,%xmm7
mulss  %xmm15,%xmm8
movss  %xmm8,-0x80(%rsp)
mulss  -0x6c(%rsp),%xmm15
subss  %xmm15,%xmm11
movaps %xmm4,%xmm5
mulss  %xmm11,%xmm5
addss  %xmm6,%xmm5
movss  %xmm5,0x8(%rdi)
movss  -0x30(%rsp),%xmm6
movaps %xmm6,%xmm5
mulss  %xmm14,%xmm5
movss  -0x24(%rsp),%xmm8
mulss  %xmm8,%xmm7
subss  %xmm5,%xmm7
movaps %xmm1,%xmm5
mulss  %xmm11,%xmm5
addss  %xmm7,%xmm5
movaps 0xbe1(%rip),%xmm14
xorps  %xmm14,%xmm5
movss  %xmm5,0xc(%rdi)
movss  -0x54(%rsp),%xmm4
movaps %xmm4,%xmm5
movss  -0x20(%rsp),%xmm15
mulss  %xmm15,%xmm5
movss  -0x1c(%rsp),%xmm1
movaps %xmm1,%xmm7
movss  -0x28(%rsp),%xmm0
mulss  %xmm0,%xmm7
subss  %xmm5,%xmm7
movaps (%rsp),%xmm9
movaps %xmm9,%xmm5
mulss  %xmm8,%xmm5
addss  %xmm7,%xmm5
xorps  %xmm14,%xmm5
movss  %xmm5,0x10(%rdi)
movss  -0x2c(%rsp),%xmm3
movaps %xmm3,%xmm5
movaps %xmm15,%xmm7
mulss  %xmm15,%xmm5
movss  -0x14(%rsp),%xmm15
mulss  %xmm15,%xmm0
subss  %xmm5,%xmm0
movaps %xmm9,%xmm5
mulss  %xmm6,%xmm5
addss  %xmm0,%xmm5
movss  %xmm5,0x14(%rdi)
mulss  %xmm1,%xmm3
mulss  %xmm15,%xmm4
subss  %xmm3,%xmm4
movaps %xmm9,%xmm5
mulss  %xmm11,%xmm5
addss  %xmm4,%xmm5
xorps  %xmm14,%xmm5
movss  %xmm5,0x18(%rdi)
mulss  %xmm1,%xmm6
mulss  %xmm15,%xmm8
subss  %xmm6,%xmm8
mulss  %xmm7,%xmm11
addss  %xmm8,%xmm11
movss  %xmm11,0x1c(%rdi)
movss  -0x38(%rsp),%xmm2
subss  -0x40(%rsp),%xmm2
movss  -0x3c(%rsp),%xmm0
subss  -0x44(%rsp),%xmm0
movaps %xmm0,%xmm5
movaps %xmm0,%xmm3
mulss  %xmm7,%xmm5
movaps %xmm7,%xmm11
movaps %xmm1,%xmm7
movaps %xmm1,%xmm0
mulss  %xmm2,%xmm7
subss  %xmm5,%xmm7
movss  -0x64(%rsp),%xmm14
subss  -0x48(%rsp),%xmm14
movaps %xmm9,%xmm5
mulss  %xmm14,%xmm5
movaps %xmm14,%xmm6
addss  %xmm7,%xmm5
movss  %xmm5,0x20(%rdi)
movss  -0x68(%rsp),%xmm4
movaps %xmm4,%xmm5
movss  -0x6c(%rsp),%xmm1
mulss  %xmm1,%xmm5
movss  -0x4c(%rsp),%xmm7
subss  %xmm5,%xmm7
movaps %xmm7,%xmm5
mulss  %xmm11,%xmm5
mulss  %xmm15,%xmm2
subss  %xmm5,%xmm2
movss  -0x70(%rsp),%xmm14
movaps %xmm14,%xmm5
mulss  %xmm1,%xmm5
movss  -0x50(%rsp),%xmm8
subss  %xmm5,%xmm8
movaps %xmm9,%xmm5
mulss  %xmm8,%xmm5
addss  %xmm2,%xmm5
movaps 0xa68(%rip),%xmm2
xorps  %xmm2,%xmm5
movss  %xmm5,0x24(%rdi)
mulss  %xmm0,%xmm7
mulss  %xmm15,%xmm3
subss  %xmm7,%xmm3
movaps %xmm1,%xmm5
mulss  -0x74(%rsp),%xmm5
movaps -0x10(%rsp),%xmm1
subss  %xmm5,%xmm1
movaps %xmm9,%xmm5
mulss  %xmm1,%xmm5
addss  %xmm3,%xmm5
movss  %xmm5,0x28(%rdi)
movaps %xmm0,%xmm7
mulss  %xmm0,%xmm8
mulss  %xmm15,%xmm6
subss  %xmm8,%xmm6
mulss  %xmm11,%xmm1
addss  %xmm6,%xmm1
xorps  %xmm2,%xmm1
movss  %xmm1,0x2c(%rdi)
subss  -0x58(%rsp),%xmm13
subss  -0x60(%rsp),%xmm12
movss  -0x18(%rsp),%xmm5
movaps %xmm4,%xmm0
mulss  %xmm5,%xmm0
movss  -0x78(%rsp),%xmm4
subss  %xmm0,%xmm4
movaps %xmm4,%xmm3
mulss  %xmm7,%xmm4
movaps %xmm7,%xmm6
movaps %xmm4,%xmm8
mulss  %xmm5,%xmm14
movaps %xmm5,%xmm0
movss  -0x7c(%rsp),%xmm5
subss  %xmm14,%xmm5
movaps %xmm9,%xmm4
mulss  %xmm5,%xmm4
mulss  %xmm7,%xmm5
movaps %xmm5,%xmm7
movaps %xmm6,%xmm5
movaps %xmm12,%xmm6
mulss  %xmm11,%xmm6
mulss  %xmm13,%xmm5
subss  %xmm6,%xmm5
subss  -0x5c(%rsp),%xmm10
movaps %xmm9,%xmm6
mulss  %xmm10,%xmm6
addss  %xmm5,%xmm6
movaps %xmm2,%xmm5
xorps  %xmm2,%xmm6
movss  %xmm6,0x30(%rdi)
mulss  %xmm11,%xmm3
mulss  %xmm15,%xmm13
subss  %xmm3,%xmm13
addss  %xmm13,%xmm4
movss  %xmm4,0x34(%rdi)
mulss  %xmm15,%xmm12
subss  %xmm8,%xmm12
movss  -0x74(%rsp),%xmm2
mulss  %xmm0,%xmm2
movss  -0x80(%rsp),%xmm1
subss  %xmm2,%xmm1
mulss  %xmm1,%xmm9
addss  %xmm12,%xmm9
xorps  %xmm5,%xmm9
movss  %xmm9,0x38(%rdi)
mulss  %xmm15,%xmm10
subss  %xmm7,%xmm10
mulss  %xmm11,%xmm1
addss  %xmm10,%xmm1
movss  %xmm1,0x3c(%rdi)
add    $0x18,%rsp
ret

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

LLVM IR (-O2):
define void @mat4_adjoint(float* nocapture %0) {
%2 = load float, float* %0
%3 = getelementptr inbounds float, float* %0, i64 1
%4 = load float, float* %3
%5 = getelementptr inbounds float, float* %0, i64 2
%6 = load float, float* %5
%7 = getelementptr inbounds float, float* %0, i64 3
%8 = load float, float* %7
%9 = getelementptr inbounds float, float* %0, i64 4
%10 = load float, float* %9
%11 = getelementptr inbounds float, float* %0, i64 5
%12 = load float, float* %11
%13 = getelementptr inbounds float, float* %0, i64 6
%14 = load float, float* %13
%15 = getelementptr inbounds float, float* %0, i64 7
%16 = load float, float* %15
%17 = getelementptr inbounds float, float* %0, i64 8
%18 = load float, float* %17
%19 = getelementptr inbounds float, float* %0, i64 9
%20 = load float, float* %19
%21 = getelementptr inbounds float, float* %0, i64 10
%22 = load float, float* %21
%23 = getelementptr inbounds float, float* %0, i64 11
%24 = load float, float* %23
%25 = getelementptr inbounds float, float* %0, i64 12
%26 = load float, float* %25
%27 = getelementptr inbounds float, float* %0, i64 13
%28 = load float, float* %27
%29 = getelementptr inbounds float, float* %0, i64 14
%30 = load float, float* %29
%31 = getelementptr inbounds float, float* %0, i64 15
%32 = load float, float* %31
%33 = fneg float %24
%34 = fmul float %30, %33
%35 = tail call float @llvm.fmuladd.f32(float %22, float %32, float %34)
%36 = fneg float %16
%37 = fmul float %30, %36
%38 = tail call float @llvm.fmuladd.f32(float %14, float %32, float %37)
%39 = fneg float %20
%40 = fmul float %38, %39
%41 = tail call float @llvm.fmuladd.f32(float %12, float %35, float %40)
%42 = fmul float %22, %36
%43 = tail call float @llvm.fmuladd.f32(float %14, float %24, float %42)
%44 = tail call float @llvm.fmuladd.f32(float %28, float %43, float %41)
store float %44, float* %0
%45 = fneg float %8
%46 = fmul float %30, %45
%47 = tail call float @llvm.fmuladd.f32(float %6, float %32, float %46)
%48 = fmul float %47, %39
%49 = tail call float @llvm.fmuladd.f32(float %4, float %35, float %48)
%50 = fmul float %22, %45
%51 = tail call float @llvm.fmuladd.f32(float %6, float %24, float %50)
%52 = tail call float @llvm.fmuladd.f32(float %28, float %51, float %49)
%53 = fneg float %52
store float %53, float* %3
%54 = fneg float %12
%55 = fmul float %47, %54
%56 = tail call float @llvm.fmuladd.f32(float %4, float %38, float %55)
%57 = fmul float %14, %45
%58 = tail call float @llvm.fmuladd.f32(float %6, float %16, float %57)
%59 = tail call float @llvm.fmuladd.f32(float %28, float %58, float %56)
store float %59, float* %5
%60 = fmul float %51, %54
%61 = tail call float @llvm.fmuladd.f32(float %4, float %43, float %60)
%62 = tail call float @llvm.fmuladd.f32(float %20, float %58, float %61)
%63 = fneg float %62
store float %63, float* %7
%64 = fneg float %18
%65 = fmul float %38, %64
%66 = tail call float @llvm.fmuladd.f32(float %10, float %35, float %65)
%67 = tail call float @llvm.fmuladd.f32(float %26, float %43, float %66)
%68 = fneg float %67
store float %68, float* %9
%69 = fmul float %47, %64
%70 = tail call float @llvm.fmuladd.f32(float %2, float %35, float %69)
%71 = tail call float @llvm.fmuladd.f32(float %26, float %51, float %70)
store float %71, float* %11
%72 = fneg float %10
%73 = fmul float %47, %72
%74 = tail call float @llvm.fmuladd.f32(float %2, float %38, float %73)
%75 = tail call float @llvm.fmuladd.f32(float %26, float %58, float %74)
%76 = fneg float %75
store float %76, float* %13
%77 = fmul float %51, %72
%78 = tail call float @llvm.fmuladd.f32(float %2, float %43, float %77)
%79 = tail call float @llvm.fmuladd.f32(float %18, float %58, float %78)
store float %79, float* %15
%80 = fmul float %28, %33
%81 = tail call float @llvm.fmuladd.f32(float %20, float %32, float %80)
%82 = fmul float %28, %36
%83 = tail call float @llvm.fmuladd.f32(float %12, float %32, float %82)
%84 = fmul float %83, %64
%85 = tail call float @llvm.fmuladd.f32(float %10, float %81, float %84)
%86 = fmul float %20, %36
%87 = tail call float @llvm.fmuladd.f32(float %12, float %24, float %86)
%88 = tail call float @llvm.fmuladd.f32(float %26, float %87, float %85)
store float %88, float* %17
%89 = fmul float %28, %45
%90 = tail call float @llvm.fmuladd.f32(float %4, float %32, float %89)
%91 = fmul float %90, %64
%92 = tail call float @llvm.fmuladd.f32(float %2, float %81, float %91)
%93 = fmul float %20, %45
%94 = tail call float @llvm.fmuladd.f32(float %4, float %24, float %93)
%95 = tail call float @llvm.fmuladd.f32(float %26, float %94, float %92)
%96 = fneg float %95
store float %96, float* %19
%97 = fmul float %90, %72
%98 = tail call float @llvm.fmuladd.f32(float %2, float %83, float %97)
%99 = fmul float %12, %45
%100 = tail call float @llvm.fmuladd.f32(float %4, float %16, float %99)
%101 = tail call float @llvm.fmuladd.f32(float %26, float %100, float %98)
store float %101, float* %21
%102 = fmul float %94, %72
%103 = tail call float @llvm.fmuladd.f32(float %2, float %87, float %102)
%104 = tail call float @llvm.fmuladd.f32(float %18, float %100, float %103)
%105 = fneg float %104
store float %105, float* %23
%106 = fneg float %22
%107 = fmul float %28, %106
%108 = tail call float @llvm.fmuladd.f32(float %20, float %30, float %107)
%109 = fneg float %14
%110 = fmul float %28, %109
%111 = tail call float @llvm.fmuladd.f32(float %12, float %30, float %110)
%112 = fmul float %111, %64
%113 = tail call float @llvm.fmuladd.f32(float %10, float %108, float %112)
%114 = fmul float %20, %109
%115 = tail call float @llvm.fmuladd.f32(float %12, float %22, float %114)
%116 = tail call float @llvm.fmuladd.f32(float %26, float %115, float %113)
%117 = fneg float %116
store float %117, float* %25
%118 = fneg float %6
%119 = fmul float %28, %118
%120 = tail call float @llvm.fmuladd.f32(float %4, float %30, float %119)
%121 = fmul float %120, %64
%122 = tail call float @llvm.fmuladd.f32(float %2, float %108, float %121)
%123 = fmul float %20, %118
%124 = tail call float @llvm.fmuladd.f32(float %4, float %22, float %123)
%125 = tail call float @llvm.fmuladd.f32(float %26, float %124, float %122)
store float %125, float* %27
%126 = fmul float %120, %72
%127 = tail call float @llvm.fmuladd.f32(float %2, float %111, float %126)
%128 = fmul float %12, %118
%129 = tail call float @llvm.fmuladd.f32(float %4, float %14, float %128)
%130 = tail call float @llvm.fmuladd.f32(float %26, float %129, float %127)
%131 = fneg float %130
store float %131, float* %29
%132 = fmul float %124, %72
%133 = tail call float @llvm.fmuladd.f32(float %2, float %115, float %132)
%134 = tail call float @llvm.fmuladd.f32(float %18, float %129, float %133)
store float %134, float* %31
ret void
}