float vor_float_filter_lp_fm(float xn) {
  const float a0 = 0.0001325928962621713658003030911203268261;
  const float a1 = 0.0007955573775730281948018185467219609563;
  const float a2 = 0.0019888934439325706496348722396305674920;
  const float a3 = 0.0026518579252434275328464963195074233226;
  const float a4 = 0.0019888934439325706496348722396305674920;
  const float a5 = 0.0007955573775730281948018185467219609563;
  const float a6 = 0.0001325928962621713658003030911203268261;
  const float b1 = -3.9811884900947003274040980613790452480316;
  const float b2 = 6.8452604202756832663112618320155888795853;
  const float b3 = -6.4498289229953256196381516929250210523605;
  const float b4 = 3.4951386512490887348292289971141144633293;
  const float b5 = -1.0292502263335985279724127394729293882847;
  const float b6 = 0.1283545132596315418993526691338047385216;
  static float x1 = 0.;
  static float x2 = 0.;
  static float x3 = 0.;
  static float x4 = 0.;
  static float x5 = 0.;
  static float x6 = 0.;
  static float y1 = 0.;
  static float y2 = 0.;
  static float y3 = 0.;
  static float y4 = 0.;
  static float y5 = 0.;
  static float y6 = 0.;
  float yn = a0 * xn + a1 * x1 + a2 * x2 + a3 * x3 + a4 * x4 + a5 * x5 +
             a6 * x6 - b1 * y1 - b2 * y2 - b3 * y3 - b4 * y4 - b5 * y5 -
             b6 * y6;
  x6 = x5;
  x5 = x4;
  x4 = x3;
  x3 = x2;
  x2 = x1;
  x1 = xn;
  y6 = y5;
  y5 = y4;
  y4 = y3;
  y3 = y2;
  y2 = y1;
  y1 = yn;
  return yn;
}


x86 assembly (clang, -O0):
<vor_float_filter_lp_fm>:
push   %rbp
mov    %rsp,%rbp
movss  %xmm0,-0x4(%rbp)
movss  0xf07(%rip),%xmm0
movss  %xmm0,-0x8(%rbp)
movss  0xefe(%rip),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  0xef5(%rip),%xmm0
movss  %xmm0,-0x10(%rbp)
movss  0xeec(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  0xedb(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0xeca(%rip),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  0xeb9(%rip),%xmm0
movss  %xmm0,-0x20(%rbp)
movss  0xed0(%rip),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  0xebf(%rip),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0xeae(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  0xe9d(%rip),%xmm0
movss  %xmm0,-0x30(%rbp)
movss  0xe8c(%rip),%xmm0
movss  %xmm0,-0x34(%rbp)
movss  0xe7b(%rip),%xmm0
movss  %xmm0,-0x38(%rbp)
movss  -0x4(%rbp),%xmm1
movss  0xe5d(%rip),%xmm0
mulss  0x2e5d(%rip),%xmm0
movss  0xe49(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2e49(%rip),%xmm0
movss  0xe39(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e35(%rip),%xmm1
movss  0xe25(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2e21(%rip),%xmm0
movss  0xe09(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e0d(%rip),%xmm1
movss  0xded(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2df9(%rip),%xmm0
movss  0xdd1(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2de5(%rip),%xmm1
movss  0xdb5(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2dd1(%rip),%xmm0
movss  0xd99(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2dbd(%rip),%xmm1
movss  0xd7d(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2da9(%rip),%xmm0
movss  0xd61(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2d95(%rip),%xmm1
movss  0xd45(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2d81(%rip),%xmm0
movss  0xd29(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x3c(%rbp)
movss  0x2d48(%rip),%xmm0
movss  %xmm0,0x2d44(%rip)
movss  0x2d34(%rip),%xmm0
movss  %xmm0,0x2d30(%rip)
movss  0x2d20(%rip),%xmm0
movss  %xmm0,0x2d1c(%rip)
movss  0x2d0c(%rip),%xmm0
movss  %xmm0,0x2d08(%rip)
movss  0x2cf8(%rip),%xmm0
movss  %xmm0,0x2cf4(%rip)
movss  -0x4(%rbp),%xmm0
movss  %xmm0,0x2ce3(%rip)
movss  0x2d03(%rip),%xmm0
movss  %xmm0,0x2cff(%rip)
movss  0x2cef(%rip),%xmm0
movss  %xmm0,0x2ceb(%rip)
movss  0x2cdb(%rip),%xmm0
movss  %xmm0,0x2cd7(%rip)
movss  0x2cc7(%rip),%xmm0
movss  %xmm0,0x2cc3(%rip)
movss  0x2cb3(%rip),%xmm0
movss  %xmm0,0x2caf(%rip)
movss  -0x3c(%rbp),%xmm0
movss  %xmm0,0x2c9e(%rip)
movss  -0x3c(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<vor_float_filter_lp_fm>:
movss  0x2f1c(%rip),%xmm2
movss  0xef0(%rip),%xmm1
movss  0x2f10(%rip),%xmm3
movss  %xmm2,0x2f08(%rip)
mulss  %xmm1,%xmm2
movss  0xed8(%rip),%xmm4
movss  %xmm0,0x2ef0(%rip)
mulss  %xmm4,%xmm0
addss  %xmm2,%xmm0
movss  0xec4(%rip),%xmm2
movss  0x2edf(%rip),%xmm8
movss  %xmm3,0x2ed7(%rip)
mulss  %xmm2,%xmm3
addss  %xmm0,%xmm3
movss  0xea7(%rip),%xmm0
mulss  %xmm8,%xmm0
addss  %xmm3,%xmm0
movss  0x2eb9(%rip),%xmm9
mulss  %xmm9,%xmm2
addss  %xmm0,%xmm2
movss  0x2eac(%rip),%xmm6
mulss  %xmm6,%xmm1
addss  %xmm2,%xmm1
mulss  0x2ea0(%rip),%xmm4
addss  %xmm1,%xmm4
movss  0x2e97(%rip),%xmm10
movss  0xe63(%rip),%xmm0
mulss  %xmm10,%xmm0
addss  %xmm4,%xmm0
movss  0x2e82(%rip),%xmm2
movss  0xe4e(%rip),%xmm4
mulss  %xmm2,%xmm4
addss  %xmm0,%xmm4
movss  0x2e6e(%rip),%xmm7
movss  0xe3a(%rip),%xmm0
mulss  %xmm7,%xmm0
addss  %xmm4,%xmm0
movss  0x2e5a(%rip),%xmm4
movss  0xe26(%rip),%xmm5
mulss  %xmm4,%xmm5
addss  %xmm0,%xmm5
movss  0x2e46(%rip),%xmm3
movss  0xe12(%rip),%xmm1
mulss  %xmm3,%xmm1
addss  %xmm5,%xmm1
movss  0x2e32(%rip),%xmm0
mulss  0xdfe(%rip),%xmm0
addss  %xmm1,%xmm0
movss  %xmm6,0x2e06(%rip)
movss  %xmm9,0x2df9(%rip)
movss  %xmm8,0x2dec(%rip)
movss  %xmm3,0x2e04(%rip)
movss  %xmm4,0x2df8(%rip)
movss  %xmm7,0x2dec(%rip)
movss  %xmm2,0x2de0(%rip)
movss  %xmm10,0x2dd3(%rip)
movss  %xmm0,0x2dc7(%rip)
ret

LLVM IR (-O0):
@vor_float_filter_lp_fm.x1 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.x2 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.x3 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.x4 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.x5 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.x6 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y1 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y2 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y3 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y4 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y5 = internal global float 0.000000e+00
@vor_float_filter_lp_fm.y6 = internal global float 0.000000e+00
define float @vor_float_filter_lp_fm(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
store float %0, float* %2
store float 0x3F21611440000000, float* %3
store float 0x3F4A119E80000000, float* %4
store float 0x3F604B0300000000, float* %5
store float 0x3F65B95960000000, float* %6
store float 0x3F604B0300000000, float* %7
store float 0x3F4A119E80000000, float* %8
store float 0x3F21611440000000, float* %9
store float 0xC00FD97960000000, float* %10
store float 0x401B618C00000000, float* %11
store float 0xC019CCA000000000, float* %12
store float 0x400BF60B40000000, float* %13
store float 0xBFF077CF20000000, float* %14
store float 0x3FC06DEBC0000000, float* %15
%17 = load float, float* %2
%18 = load float, float* @vor_float_filter_lp_fm.x1
%19 = fmul float 0x3F4A119E80000000, %18
%20 = call float @llvm.fmuladd.f32(float 0x3F21611440000000, float %17, float %19)
%21 = load float, float* @vor_float_filter_lp_fm.x2
%22 = call float @llvm.fmuladd.f32(float 0x3F604B0300000000, float %21, float %20)
%23 = load float, float* @vor_float_filter_lp_fm.x3
%24 = call float @llvm.fmuladd.f32(float 0x3F65B95960000000, float %23, float %22)
%25 = load float, float* @vor_float_filter_lp_fm.x4
%26 = call float @llvm.fmuladd.f32(float 0x3F604B0300000000, float %25, float %24)
%27 = load float, float* @vor_float_filter_lp_fm.x5
%28 = call float @llvm.fmuladd.f32(float 0x3F4A119E80000000, float %27, float %26)
%29 = load float, float* @vor_float_filter_lp_fm.x6
%30 = call float @llvm.fmuladd.f32(float 0x3F21611440000000, float %29, float %28)
%31 = load float, float* @vor_float_filter_lp_fm.y1
%32 = call float @llvm.fmuladd.f32(float 0x400FD97960000000, float %31, float %30)
%33 = load float, float* @vor_float_filter_lp_fm.y2
%34 = call float @llvm.fmuladd.f32(float 0xC01B618C00000000, float %33, float %32)
%35 = load float, float* @vor_float_filter_lp_fm.y3
%36 = call float @llvm.fmuladd.f32(float 0x4019CCA000000000, float %35, float %34)
%37 = load float, float* @vor_float_filter_lp_fm.y4
%38 = call float @llvm.fmuladd.f32(float 0xC00BF60B40000000, float %37, float %36)
%39 = load float, float* @vor_float_filter_lp_fm.y5
%40 = call float @llvm.fmuladd.f32(float 0x3FF077CF20000000, float %39, float %38)
%41 = load float, float* @vor_float_filter_lp_fm.y6
%42 = call float @llvm.fmuladd.f32(float 0xBFC06DEBC0000000, float %41, float %40)
store float %42, float* %16
%43 = load float, float* @vor_float_filter_lp_fm.x5
store float %43, float* @vor_float_filter_lp_fm.x6
%44 = load float, float* @vor_float_filter_lp_fm.x4
store float %44, float* @vor_float_filter_lp_fm.x5
%45 = load float, float* @vor_float_filter_lp_fm.x3
store float %45, float* @vor_float_filter_lp_fm.x4
%46 = load float, float* @vor_float_filter_lp_fm.x2
store float %46, float* @vor_float_filter_lp_fm.x3
%47 = load float, float* @vor_float_filter_lp_fm.x1
store float %47, float* @vor_float_filter_lp_fm.x2
%48 = load float, float* %2
store float %48, float* @vor_float_filter_lp_fm.x1
%49 = load float, float* @vor_float_filter_lp_fm.y5
store float %49, float* @vor_float_filter_lp_fm.y6
%50 = load float, float* @vor_float_filter_lp_fm.y4
store float %50, float* @vor_float_filter_lp_fm.y5
%51 = load float, float* @vor_float_filter_lp_fm.y3
store float %51, float* @vor_float_filter_lp_fm.y4
%52 = load float, float* @vor_float_filter_lp_fm.y2
store float %52, float* @vor_float_filter_lp_fm.y3
%53 = load float, float* @vor_float_filter_lp_fm.y1
store float %53, float* @vor_float_filter_lp_fm.y2
%54 = load float, float* %16
store float %54, float* @vor_float_filter_lp_fm.y1
%55 = load float, float* %16
ret float %55
}

LLVM IR (-O2):
@vor_float_filter_lp_fm.x1 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.x2 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.x3 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.x4 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.x5 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.x6 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y1 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y2 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y3 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y4 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y5 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_lp_fm.y6 = internal unnamed_addr global float 0.000000e+00
define float @vor_float_filter_lp_fm(float %0) {
%2 = load float, float* @vor_float_filter_lp_fm.x1
%3 = fmul float %2, 0x3F4A119E80000000
%4 = tail call float @llvm.fmuladd.f32(float %0, float 0x3F21611440000000, float %3)
%5 = load float, float* @vor_float_filter_lp_fm.x2
%6 = tail call float @llvm.fmuladd.f32(float %5, float 0x3F604B0300000000, float %4)
%7 = load float, float* @vor_float_filter_lp_fm.x3
%8 = tail call float @llvm.fmuladd.f32(float %7, float 0x3F65B95960000000, float %6)
%9 = load float, float* @vor_float_filter_lp_fm.x4
%10 = tail call float @llvm.fmuladd.f32(float %9, float 0x3F604B0300000000, float %8)
%11 = load float, float* @vor_float_filter_lp_fm.x5
%12 = tail call float @llvm.fmuladd.f32(float %11, float 0x3F4A119E80000000, float %10)
%13 = load float, float* @vor_float_filter_lp_fm.x6
%14 = tail call float @llvm.fmuladd.f32(float %13, float 0x3F21611440000000, float %12)
%15 = load float, float* @vor_float_filter_lp_fm.y1
%16 = tail call float @llvm.fmuladd.f32(float %15, float 0x400FD97960000000, float %14)
%17 = load float, float* @vor_float_filter_lp_fm.y2
%18 = tail call float @llvm.fmuladd.f32(float %17, float 0xC01B618C00000000, float %16)
%19 = load float, float* @vor_float_filter_lp_fm.y3
%20 = tail call float @llvm.fmuladd.f32(float %19, float 0x4019CCA000000000, float %18)
%21 = load float, float* @vor_float_filter_lp_fm.y4
%22 = tail call float @llvm.fmuladd.f32(float %21, float 0xC00BF60B40000000, float %20)
%23 = load float, float* @vor_float_filter_lp_fm.y5
%24 = tail call float @llvm.fmuladd.f32(float %23, float 0x3FF077CF20000000, float %22)
%25 = load float, float* @vor_float_filter_lp_fm.y6
%26 = tail call float @llvm.fmuladd.f32(float %25, float 0xBFC06DEBC0000000, float %24)
store float %11, float* @vor_float_filter_lp_fm.x6
store float %9, float* @vor_float_filter_lp_fm.x5
store float %7, float* @vor_float_filter_lp_fm.x4
store float %5, float* @vor_float_filter_lp_fm.x3
store float %2, float* @vor_float_filter_lp_fm.x2
store float %0, float* @vor_float_filter_lp_fm.x1
store float %23, float* @vor_float_filter_lp_fm.y6
store float %21, float* @vor_float_filter_lp_fm.y5
store float %19, float* @vor_float_filter_lp_fm.y4
store float %17, float* @vor_float_filter_lp_fm.y3
store float %15, float* @vor_float_filter_lp_fm.y2
store float %26, float* @vor_float_filter_lp_fm.y1
ret float %26
}