• Marko Mäkelä's avatar
    MDEV-33817: AVX512BW and VPCLMULQDQ based CRC-32 · 9ec7819c
    Marko Mäkelä authored
    This is based on https://github.com/intel/intel-ipsec-mb/
    and has been tested both on x86 and x86-64, with code that
    was generated by several versions of GCC and clang.
    GCC 11 or clang 8 or later should be able to compile this,
    and so should recent versions of MSVC.
    
    Thanks to Intel Corporation for providing access to hardware,
    for answering my questions regarding the code, and for
    providing the coefficients for the CRC-32C computation.
    
    crc32_avx512(): Compute a reverse polynomial CRC-32 using
    precomputed tables and carry-less product, for up to 256 bytes
    of unaligned input per loop iteration.
    
    Reviewed by: Vladislav Vaintroub
    9ec7819c
crc32c_x86.cc 13.8 KB