Hi everyone!

This is the VOLK v3.1.1 release! We want to thank all contributors. This release wouldn't have been possible without them.

This is a maintenance release to fix subtle bugs in many areas and to improve our tests where possible. All in all, our CI is more stable now and catches more errors.



  • CI fixes
  • Allow for rounding error in float-to-int conversions
  • Allow for rounding error in volk_32fc_s32f_magnitude_16i
  • Allow for rounding error in float-to-int interleave
  • Add missing volk_16_byteswap_u_orc to puppet
  • Fix 64-bit integer testing
  • Build and test neonv7 protokernels on armv7

  • kernels

  • Remove broken sse32 kernels
  • Fix flaky fm_detect test
  • Fix flaky mod_range test
  • Remove unnecessary volatiles from volk_32fc_s32f_magnitude_16i
  • Remove SSE protokernels written in assembly
  • Remove inline assembler from volk_32fc_convert_16ic_neon
  • Use bit shifts in generic and byte_shuffle reverse
  • Remove disabled SSE4.1 dot product
  • Fix conv_k7_r2 kernel and puppet
  • Remove unused argument from renormalize
  • Align types in ORC function signatures
  • Uncomment AVX2 implementation
  • Renormalize in every iteration on AVX2
  • Remove extraneous permutations
  • Compute the minimum over both register lanes
  • volk_32fc_s32f_atan2_32f: Add NaN tests for avx2 and avx2fma code

  • fixes

  • Express version information in decimal
  • Remove __VOLK_VOLATILE
  • Remove references to simdmath library
  • cmake: Switch to GNUInstallDirs
  • fprintf: Remove fprintf statements from volk_malloc
  • release: Prepare release with updated files
  • Get the sse2neon.h file to a git submodule to avoid random copies.