diff options
| author | Nathan Moinvaziri <nathan@nathanm.com> | 2022-05-24 11:44:20 -0700 |
|---|---|---|
| committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2022-05-25 12:04:35 +0200 |
| commit | a6155234a2aa34b4562570dbd359a2a505962a01 (patch) | |
| tree | fffecc2105016a315c3da7d3d77caaf4d9ff05e4 /cpu_features.h | |
| parent | d79984b5bcaccab15e6cd13d7d1edea32ac36977 (diff) | |
| download | Project-Tick-a6155234a2aa34b4562570dbd359a2a505962a01.tar.gz Project-Tick-a6155234a2aa34b4562570dbd359a2a505962a01.zip | |
Speed up software CRC-32 computation by a factor of 1.5 to 3.
Use the interleaved method of Kadatch and Jenkins in order to make
use of pipelined instructions through multiple ALUs in a single
core. This also speeds up and simplifies the combination of CRCs,
and updates the functions to pre-calculate and use an operator for
CRC combination.
Co-authored-by: Nathan Moinvaziri <nathan@nathanm.com>
Diffstat (limited to 'cpu_features.h')
| -rw-r--r-- | cpu_features.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/cpu_features.h b/cpu_features.h index fc1b5d7339..ca1465d5d2 100644 --- a/cpu_features.h +++ b/cpu_features.h @@ -118,7 +118,7 @@ extern uint8_t* chunkmemset_safe_power8(uint8_t *out, unsigned dist, unsigned le /* CRC32 */ typedef uint32_t (*crc32_func)(uint32_t crc32, const unsigned char * buf, uint64_t len); -extern uint32_t crc32_byfour(uint32_t crc, const unsigned char *buf, uint64_t len); +extern uint32_t crc32_braid(uint32_t crc, const unsigned char *buf, uint64_t len); #ifdef ARM_ACLE_CRC_HASH extern uint32_t crc32_acle(uint32_t crc, const unsigned char *buf, uint64_t len); #elif defined(POWER8_VSX_CRC32) |
