mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-23 12:16:04 +02:00
cksum: use pclmul hardware instruction for CRC32 calculation
Use cpuid to detect CPU support for hardware instruction. Fall back to slice by 8 algorithm if not supported. A 500MiB file improves from 1.40s to 0.67s on an i3-2310M * configure.ac [USE_PCLMUL_CRC32]: A new conditional, set when __get_cpuid() and clmul compiler intrinsics are supported. * src/cksum.c (pclmul_supported): A new function using __get_cpuid() to determine if pclmul instructions are supported. (cksum): A new function refactored from cksum_slice8(), which calls pclmul_supported() and then cksum_slice8() or cksum_pclmul() as appropriate. * src/cksum.h: Export the crctab array for use in the new module. * src/cksum_pclmul.c: A new module to implement using pclmul intrinsics. * po/POTFILES.in: Reference the new cksum_pclmul module. * src/local.mk: Likewise. Note we build it as a separate library so that it can be portably built with separate -mavx etc. flags. * tests/misc/cksum.sh: Add new test modes for pertinent buffer sizes.
This commit is contained in:
committed by
Pádraig Brady
parent
90c4ef1f7d
commit
4b9118cdb3
@@ -44,6 +44,7 @@ src/chown-core.c
|
||||
src/chown.c
|
||||
src/chroot.c
|
||||
src/cksum.c
|
||||
src/cksum_pclmul.c
|
||||
src/comm.c
|
||||
src/copy.c
|
||||
src/coreutils.c
|
||||
|
||||
Reference in New Issue
Block a user