float vor_float_filter_bp_ref(float xn) {
  const float a0 = 0.0175489156490784836694984960558940656483;
  const float a2 = -0.0526467469472354510084954881676821969450;
  const float a4 = 0.0526467469472354510084954881676821969450;
  const float a6 = -0.0175489156490784836694984960558940656483;
  const float b1 = 2.5508195725874163173330089193768799304962;
  const float b2 = 3.9857308274503626677187639870680868625641;
  const float b3 = 3.8245798569419009460546021728077903389931;
  const float b4 = 2.6296760724926846464200025366153568029404;
  const float b5 = 1.0926715614934312537087635064381174743176;
  const float b6 = 0.2825578543465128156242371915141120553017;
  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 + a2 * x2 + a4 * x4 + 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_bp_ref>:
push   %rbp
mov    %rsp,%rbp
movss  %xmm0,-0x4(%rbp)
movss  0xf0f(%rip),%xmm0
movss  %xmm0,-0x8(%rbp)
movss  0xf06(%rip),%xmm0
movss  %xmm0,-0xc(%rbp)
movss  0xef1(%rip),%xmm0
movss  %xmm0,-0x10(%rbp)
movss  0xee0(%rip),%xmm0
movss  %xmm0,-0x14(%rbp)
movss  0xef7(%rip),%xmm0
movss  %xmm0,-0x18(%rbp)
movss  0xee6(%rip),%xmm0
movss  %xmm0,-0x1c(%rbp)
movss  0xed5(%rip),%xmm0
movss  %xmm0,-0x20(%rbp)
movss  0xec4(%rip),%xmm0
movss  %xmm0,-0x24(%rbp)
movss  0xeb3(%rip),%xmm0
movss  %xmm0,-0x28(%rbp)
movss  0xea2(%rip),%xmm0
movss  %xmm0,-0x2c(%rbp)
movss  -0x4(%rbp),%xmm0
movss  0xe8c(%rip),%xmm1
mulss  0x2e88(%rip),%xmm1
movss  0xe78(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e78(%rip),%xmm1
movss  0xe5c(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2e68(%rip),%xmm0
movss  0xe40(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e54(%rip),%xmm1
movss  0xe24(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2e40(%rip),%xmm0
movss  0xe08(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e2c(%rip),%xmm1
movss  0xdec(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2e18(%rip),%xmm0
movss  0xdd0(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  0x2e04(%rip),%xmm1
movss  0xdb4(%rip),%xmm2
mulss  %xmm2,%xmm1
addss  %xmm0,%xmm1
movss  0x2df0(%rip),%xmm0
movss  0xd98(%rip),%xmm2
mulss  %xmm2,%xmm0
addss  %xmm1,%xmm0
movss  %xmm0,-0x30(%rbp)
movss  0x2db7(%rip),%xmm0
movss  %xmm0,0x2db3(%rip)
movss  0x2da3(%rip),%xmm0
movss  %xmm0,0x2d9f(%rip)
movss  0x2d8f(%rip),%xmm0
movss  %xmm0,0x2d8b(%rip)
movss  0x2d7b(%rip),%xmm0
movss  %xmm0,0x2d77(%rip)
movss  0x2d67(%rip),%xmm0
movss  %xmm0,0x2d63(%rip)
movss  -0x4(%rbp),%xmm0
movss  %xmm0,0x2d52(%rip)
movss  0x2d72(%rip),%xmm0
movss  %xmm0,0x2d6e(%rip)
movss  0x2d5e(%rip),%xmm0
movss  %xmm0,0x2d5a(%rip)
movss  0x2d4a(%rip),%xmm0
movss  %xmm0,0x2d46(%rip)
movss  0x2d36(%rip),%xmm0
movss  %xmm0,0x2d32(%rip)
movss  0x2d22(%rip),%xmm0
movss  %xmm0,0x2d1e(%rip)
movss  -0x30(%rbp),%xmm0
movss  %xmm0,0x2d0d(%rip)
movss  -0x30(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<vor_float_filter_bp_ref>:
movss  0x2f1f(%rip),%xmm8
movss  0xeef(%rip),%xmm1
mulss  %xmm8,%xmm1
movss  0xee6(%rip),%xmm4
mulss  %xmm0,%xmm4
addss  %xmm1,%xmm4
movss  0x2f01(%rip),%xmm9
movss  0xed1(%rip),%xmm1
mulss  %xmm9,%xmm1
addss  %xmm4,%xmm1
movss  0x2ef0(%rip),%xmm5
mulss  0xebc(%rip),%xmm5
addss  %xmm1,%xmm5
movss  0x2edf(%rip),%xmm10
movss  0xeab(%rip),%xmm1
mulss  %xmm10,%xmm1
addss  %xmm5,%xmm1
movss  0x2eca(%rip),%xmm5
movss  0xe96(%rip),%xmm7
mulss  %xmm5,%xmm7
addss  %xmm1,%xmm7
movss  0x2eb6(%rip),%xmm6
movss  0xe82(%rip),%xmm1
mulss  %xmm6,%xmm1
addss  %xmm7,%xmm1
movss  0x2ea2(%rip),%xmm7
movss  0xe6e(%rip),%xmm2
mulss  %xmm7,%xmm2
addss  %xmm1,%xmm2
movss  0x2e8e(%rip),%xmm3
movss  0xe5a(%rip),%xmm4
mulss  %xmm3,%xmm4
addss  %xmm2,%xmm4
movss  0x2e7a(%rip),%xmm1
mulss  0xe46(%rip),%xmm1
addss  %xmm4,%xmm1
movss  0x2e4a(%rip),%xmm2
movss  %xmm2,0x2e46(%rip)
movss  %xmm9,0x2e39(%rip)
movss  0x2e29(%rip),%xmm2
movss  %xmm2,0x2e25(%rip)
movss  %xmm8,0x2e18(%rip)
movss  0x2e08(%rip),%xmm2
movss  %xmm2,0x2e04(%rip)
movss  %xmm0,0x2df8(%rip)
movss  %xmm3,0x2e1c(%rip)
movss  %xmm7,0x2e10(%rip)
movss  %xmm6,0x2e04(%rip)
movss  %xmm5,0x2df8(%rip)
movss  %xmm10,0x2deb(%rip)
movss  %xmm1,0x2ddf(%rip)
movaps %xmm1,%xmm0
ret

LLVM IR (-O0):
@vor_float_filter_bp_ref.x1 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.x2 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.x3 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.x4 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.x5 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.x6 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y1 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y2 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y3 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y4 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y5 = internal global float 0.000000e+00
@vor_float_filter_bp_ref.y6 = internal global float 0.000000e+00
define float @vor_float_filter_bp_ref(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
store float %0, float* %2
store float 0x3F91F857C0000000, float* %3
store float 0xBFAAF483C0000000, float* %4
store float 0x3FAAF483C0000000, float* %5
store float 0xBF91F857C0000000, float* %6
store float 0x4004681420000000, float* %7
store float 0x400FE2C6E0000000, float* %8
store float 0x400E98BD60000000, float* %9
store float 0x40050993A0000000, float* %10
store float 0x3FF17B9520000000, float* %11
store float 0x3FD2156D80000000, float* %12
%14 = load float, float* %2
%15 = load float, float* @vor_float_filter_bp_ref.x2
%16 = fmul float 0xBFAAF483C0000000, %15
%17 = call float @llvm.fmuladd.f32(float 0x3F91F857C0000000, float %14, float %16)
%18 = load float, float* @vor_float_filter_bp_ref.x4
%19 = call float @llvm.fmuladd.f32(float 0x3FAAF483C0000000, float %18, float %17)
%20 = load float, float* @vor_float_filter_bp_ref.x6
%21 = call float @llvm.fmuladd.f32(float 0xBF91F857C0000000, float %20, float %19)
%22 = load float, float* @vor_float_filter_bp_ref.y1
%23 = call float @llvm.fmuladd.f32(float 0xC004681420000000, float %22, float %21)
%24 = load float, float* @vor_float_filter_bp_ref.y2
%25 = call float @llvm.fmuladd.f32(float 0xC00FE2C6E0000000, float %24, float %23)
%26 = load float, float* @vor_float_filter_bp_ref.y3
%27 = call float @llvm.fmuladd.f32(float 0xC00E98BD60000000, float %26, float %25)
%28 = load float, float* @vor_float_filter_bp_ref.y4
%29 = call float @llvm.fmuladd.f32(float 0xC0050993A0000000, float %28, float %27)
%30 = load float, float* @vor_float_filter_bp_ref.y5
%31 = call float @llvm.fmuladd.f32(float 0xBFF17B9520000000, float %30, float %29)
%32 = load float, float* @vor_float_filter_bp_ref.y6
%33 = call float @llvm.fmuladd.f32(float 0xBFD2156D80000000, float %32, float %31)
store float %33, float* %13
%34 = load float, float* @vor_float_filter_bp_ref.x5
store float %34, float* @vor_float_filter_bp_ref.x6
%35 = load float, float* @vor_float_filter_bp_ref.x4
store float %35, float* @vor_float_filter_bp_ref.x5
%36 = load float, float* @vor_float_filter_bp_ref.x3
store float %36, float* @vor_float_filter_bp_ref.x4
%37 = load float, float* @vor_float_filter_bp_ref.x2
store float %37, float* @vor_float_filter_bp_ref.x3
%38 = load float, float* @vor_float_filter_bp_ref.x1
store float %38, float* @vor_float_filter_bp_ref.x2
%39 = load float, float* %2
store float %39, float* @vor_float_filter_bp_ref.x1
%40 = load float, float* @vor_float_filter_bp_ref.y5
store float %40, float* @vor_float_filter_bp_ref.y6
%41 = load float, float* @vor_float_filter_bp_ref.y4
store float %41, float* @vor_float_filter_bp_ref.y5
%42 = load float, float* @vor_float_filter_bp_ref.y3
store float %42, float* @vor_float_filter_bp_ref.y4
%43 = load float, float* @vor_float_filter_bp_ref.y2
store float %43, float* @vor_float_filter_bp_ref.y3
%44 = load float, float* @vor_float_filter_bp_ref.y1
store float %44, float* @vor_float_filter_bp_ref.y2
%45 = load float, float* %13
store float %45, float* @vor_float_filter_bp_ref.y1
%46 = load float, float* %13
ret float %46
}

LLVM IR (-O2):
@vor_float_filter_bp_ref.x1 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.x2 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.x3 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.x4 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.x5 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.x6 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y1 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y2 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y3 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y4 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y5 = internal unnamed_addr global float 0.000000e+00
@vor_float_filter_bp_ref.y6 = internal unnamed_addr global float 0.000000e+00
define float @vor_float_filter_bp_ref(float %0) {
%2 = load float, float* @vor_float_filter_bp_ref.x2
%3 = fmul float %2, 0xBFAAF483C0000000
%4 = tail call float @llvm.fmuladd.f32(float %0, float 0x3F91F857C0000000, float %3)
%5 = load float, float* @vor_float_filter_bp_ref.x4
%6 = tail call float @llvm.fmuladd.f32(float %5, float 0x3FAAF483C0000000, float %4)
%7 = load float, float* @vor_float_filter_bp_ref.x6
%8 = tail call float @llvm.fmuladd.f32(float %7, float 0xBF91F857C0000000, float %6)
%9 = load float, float* @vor_float_filter_bp_ref.y1
%10 = tail call float @llvm.fmuladd.f32(float %9, float 0xC004681420000000, float %8)
%11 = load float, float* @vor_float_filter_bp_ref.y2
%12 = tail call float @llvm.fmuladd.f32(float %11, float 0xC00FE2C6E0000000, float %10)
%13 = load float, float* @vor_float_filter_bp_ref.y3
%14 = tail call float @llvm.fmuladd.f32(float %13, float 0xC00E98BD60000000, float %12)
%15 = load float, float* @vor_float_filter_bp_ref.y4
%16 = tail call float @llvm.fmuladd.f32(float %15, float 0xC0050993A0000000, float %14)
%17 = load float, float* @vor_float_filter_bp_ref.y5
%18 = tail call float @llvm.fmuladd.f32(float %17, float 0xBFF17B9520000000, float %16)
%19 = load float, float* @vor_float_filter_bp_ref.y6
%20 = tail call float @llvm.fmuladd.f32(float %19, float 0xBFD2156D80000000, float %18)
%21 = load float, float* @vor_float_filter_bp_ref.x5
store float %21, float* @vor_float_filter_bp_ref.x6
store float %5, float* @vor_float_filter_bp_ref.x5
%22 = load float, float* @vor_float_filter_bp_ref.x3
store float %22, float* @vor_float_filter_bp_ref.x4
store float %2, float* @vor_float_filter_bp_ref.x3
%23 = load float, float* @vor_float_filter_bp_ref.x1
store float %23, float* @vor_float_filter_bp_ref.x2
store float %0, float* @vor_float_filter_bp_ref.x1
store float %17, float* @vor_float_filter_bp_ref.y6
store float %15, float* @vor_float_filter_bp_ref.y5
store float %13, float* @vor_float_filter_bp_ref.y4
store float %11, float* @vor_float_filter_bp_ref.y3
store float %9, float* @vor_float_filter_bp_ref.y2
store float %20, float* @vor_float_filter_bp_ref.y1
ret float %20
}