void update_state_accel(float ax, float ay, float az, float az_dyn, float g,
                        float g11, float g12, float g13, float g21, float g22,
                        float g23, float g31, float g32, float g33, float g41,
                        float g42, float g43, float g51, float g52, float g53,
                        float g61, float g62, float g63, float g71, float g72,
                        float g73, float h, float pitch, float pitch_rate,
                        float roll, float roll_rate, float v,
                        float *out_5918412186688097944) {
  out_5918412186688097944[0] = g11 * (ax + g * pitch) + g12 * (ay - g * roll) +
                               g13 * (az - az_dyn - g) + roll;
  out_5918412186688097944[1] = g21 * (ax + g * pitch) + g22 * (ay - g * roll) +
                               g23 * (az - az_dyn - g) + pitch;
  out_5918412186688097944[2] = g31 * (ax + g * pitch) + g32 * (ay - g * roll) +
                               g33 * (az - az_dyn - g) + roll_rate;
  out_5918412186688097944[3] = g41 * (ax + g * pitch) + g42 * (ay - g * roll) +
                               g43 * (az - az_dyn - g) + pitch_rate;
  out_5918412186688097944[4] = g51 * (ax + g * pitch) + g52 * (ay - g * roll) +
                               g53 * (az - az_dyn - g) + h;
  out_5918412186688097944[5] = g61 * (ax + g * pitch) + g62 * (ay - g * roll) +
                               g63 * (az - az_dyn - g) + v;
  out_5918412186688097944[6] = az_dyn + g71 * (ax + g * pitch) +
                               g72 * (ay - g * roll) + g73 * (az - az_dyn - g);
}


x86 assembly (clang, -O0):
<update_state_accel>:
push   %rbp
mov    %rsp,%rbp
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  -0x18(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  -0x1c(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  -0x20(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xb8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,(%rax)
movss  0x10(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  0x18(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x20(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xa8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x4(%rax)
movss  0x28(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  0x30(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x38(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xc0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x8(%rax)
movss  0x40(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  0x48(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x50(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xb0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0xc(%rax)
movss  0x58(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  0x60(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x68(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xa0(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x10(%rax)
movss  0x70(%rbp),%xmm1
movss  -0x4(%rbp),%xmm0
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm3
mulss  %xmm3,%xmm2
addss  %xmm0,%xmm2
movss  0x78(%rbp),%xmm0
movss  -0x8(%rbp),%xmm4
movss  -0x14(%rbp),%xmm3
movss  0xb8(%rbp),%xmm5
movd   %xmm3,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm3
mulss  %xmm5,%xmm3
addss  %xmm4,%xmm3
mulss  %xmm3,%xmm0
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x80(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
addss  0xc8(%rbp),%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x14(%rax)
movss  -0x10(%rbp),%xmm1
movss  0x88(%rbp),%xmm0
movss  -0x4(%rbp),%xmm3
movss  -0x14(%rbp),%xmm2
movss  0xa8(%rbp),%xmm4
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x90(%rbp),%xmm1
movss  -0x8(%rbp),%xmm3
movss  -0x14(%rbp),%xmm2
movss  0xb8(%rbp),%xmm4
movd   %xmm2,%eax
xor    $0x80000000,%eax
movd   %eax,%xmm2
mulss  %xmm4,%xmm2
addss  %xmm3,%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x98(%rbp),%xmm0
movss  -0xc(%rbp),%xmm2
subss  -0x10(%rbp),%xmm2
subss  -0x14(%rbp),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movss  %xmm0,0x18(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<update_state_accel>:
movss  0xb0(%rsp),%xmm8
movss  0xa0(%rsp),%xmm9
movaps %xmm4,%xmm10
subss  %xmm3,%xmm2
subss  %xmm4,%xmm2
mulss  %xmm9,%xmm4
addss  %xmm0,%xmm4
mulss  %xmm8,%xmm10
subss  %xmm10,%xmm1
movaps %xmm1,%xmm11
shufps $0x0,%xmm1,%xmm11
movss  0x40(%rsp),%xmm10
movss  0x28(%rsp),%xmm12
unpcklps %xmm10,%xmm12
movss  0x10(%rsp),%xmm0
unpcklps %xmm0,%xmm6
movlhps %xmm12,%xmm6
mulps  %xmm11,%xmm6
movss  0x38(%rsp),%xmm10
movss  0x20(%rsp),%xmm11
unpcklps %xmm10,%xmm11
movss  0x8(%rsp),%xmm0
unpcklps %xmm0,%xmm5
movlhps %xmm11,%xmm5
movaps %xmm4,%xmm0
shufps $0x0,%xmm4,%xmm0
mulps  %xmm5,%xmm0
addps  %xmm6,%xmm0
movss  0x48(%rsp),%xmm5
movss  0x30(%rsp),%xmm6
unpcklps %xmm5,%xmm6
movss  0x18(%rsp),%xmm5
unpcklps %xmm5,%xmm7
movlhps %xmm6,%xmm7
movaps %xmm2,%xmm5
shufps $0x0,%xmm2,%xmm5
mulps  %xmm7,%xmm5
addps  %xmm0,%xmm5
movss  0xa8(%rsp),%xmm0
movss  0xb8(%rsp),%xmm6
unpcklps %xmm0,%xmm6
unpcklps %xmm9,%xmm8
movlhps %xmm6,%xmm8
addps  %xmm5,%xmm8
movups %xmm8,(%rdi)
movss  0x58(%rsp),%xmm0
mulss  %xmm1,%xmm0
movss  0x50(%rsp),%xmm5
mulss  %xmm4,%xmm5
addss  %xmm0,%xmm5
movss  0x60(%rsp),%xmm0
mulss  %xmm2,%xmm0
addss  %xmm5,%xmm0
addss  0x98(%rsp),%xmm0
movss  0x70(%rsp),%xmm5
mulss  %xmm1,%xmm5
movss  0x68(%rsp),%xmm6
mulss  %xmm4,%xmm6
addss  %xmm5,%xmm6
movss  0x78(%rsp),%xmm5
mulss  %xmm2,%xmm5
addss  %xmm6,%xmm5
addss  0xc0(%rsp),%xmm5
movss  %xmm0,0x10(%rdi)
movss  %xmm5,0x14(%rdi)
mulss  0x80(%rsp),%xmm4
addss  %xmm3,%xmm4
mulss  0x88(%rsp),%xmm1
addss  %xmm4,%xmm1
mulss  0x90(%rsp),%xmm2
addss  %xmm1,%xmm2
movss  %xmm2,0x18(%rdi)
ret

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

LLVM IR (-O2):
define void @update_state_accel(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* nocapture writeonly %32) {
%34 = tail call float @llvm.fmuladd.f32(float %4, float %27, float %0)
%35 = fneg float %4
%36 = tail call float @llvm.fmuladd.f32(float %35, float %29, float %1)
%37 = fsub float %2, %3
%38 = fsub float %37, %4
%39 = insertelement <4 x float> poison, float %36, i64 0
%40 = shufflevector <4 x float> %39, <4 x float> poison, <4 x i32> zeroinitializer
%41 = insertelement <4 x float> poison, float %6, i64 0
%42 = insertelement <4 x float> %41, float %9, i64 1
%43 = insertelement <4 x float> %42, float %12, i64 2
%44 = insertelement <4 x float> %43, float %15, i64 3
%45 = fmul <4 x float> %40, %44
%46 = insertelement <4 x float> poison, float %5, i64 0
%47 = insertelement <4 x float> %46, float %8, i64 1
%48 = insertelement <4 x float> %47, float %11, i64 2
%49 = insertelement <4 x float> %48, float %14, i64 3
%50 = insertelement <4 x float> poison, float %34, i64 0
%51 = shufflevector <4 x float> %50, <4 x float> poison, <4 x i32> zeroinitializer
%52 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %49, <4 x float> %51, <4 x float> %45)
%53 = insertelement <4 x float> poison, float %7, i64 0
%54 = insertelement <4 x float> %53, float %10, i64 1
%55 = insertelement <4 x float> %54, float %13, i64 2
%56 = insertelement <4 x float> %55, float %16, i64 3
%57 = insertelement <4 x float> poison, float %38, i64 0
%58 = shufflevector <4 x float> %57, <4 x float> poison, <4 x i32> zeroinitializer
%59 = call <4 x float> @llvm.fmuladd.v4f32(<4 x float> %56, <4 x float> %58, <4 x float> %52)
%60 = insertelement <4 x float> poison, float %29, i64 0
%61 = insertelement <4 x float> %60, float %27, i64 1
%62 = insertelement <4 x float> %61, float %30, i64 2
%63 = insertelement <4 x float> %62, float %28, i64 3
%64 = fadd <4 x float> %59, %63
%65 = bitcast float* %32 to <4 x float>*
store <4 x float> %64, <4 x float>* %65
%66 = fmul float %36, %18
%67 = tail call float @llvm.fmuladd.f32(float %17, float %34, float %66)
%68 = tail call float @llvm.fmuladd.f32(float %19, float %38, float %67)
%69 = fadd float %68, %26
%70 = getelementptr inbounds float, float* %32, i64 4
store float %69, float* %70
%71 = fmul float %36, %21
%72 = tail call float @llvm.fmuladd.f32(float %20, float %34, float %71)
%73 = tail call float @llvm.fmuladd.f32(float %22, float %38, float %72)
%74 = fadd float %73, %31
%75 = getelementptr inbounds float, float* %32, i64 5
store float %74, float* %75
%76 = tail call float @llvm.fmuladd.f32(float %23, float %34, float %3)
%77 = tail call float @llvm.fmuladd.f32(float %24, float %36, float %76)
%78 = tail call float @llvm.fmuladd.f32(float %25, float %38, float %77)
%79 = getelementptr inbounds float, float* %32, i64 6
store float %78, float* %79
ret void
}