mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
a05ce3ad9d
Cosmo's _Cz_crc32() function now goes 73 GiB/s on Threadripper. This will significantly improve the performance of the PKZIP file format. This algorithm is also used by apelink, to create deterministic ids.
30 lines
902 B
C
30 lines
902 B
C
#ifndef COSMOPOLITAN_THIRD_PARTY_ZLIB_CPU_FEATURES_H_
|
|
#define COSMOPOLITAN_THIRD_PARTY_ZLIB_CPU_FEATURES_H_
|
|
#include "libc/nexgen32e/x86feature.h"
|
|
#include "third_party/zlib/zconf.h"
|
|
COSMOPOLITAN_C_START_
|
|
#ifdef __x86_64__
|
|
|
|
#ifdef Z_COSMO_PREFIX_SET
|
|
#undef x86_cpu_enable_sse2
|
|
#undef x86_cpu_enable_ssse3
|
|
#undef x86_cpu_enable_simd
|
|
#undef x86_cpu_enable_avx512
|
|
#undef cpu_check_features
|
|
#endif
|
|
|
|
#define x86_cpu_enable_sse2 X86_HAVE(SSE2)
|
|
#define x86_cpu_enable_ssse3 X86_HAVE(SSSE3)
|
|
#define x86_cpu_enable_simd (X86_HAVE(SSE4_2) && X86_HAVE(PCLMUL))
|
|
#define x86_cpu_enable_avx512 (X86_HAVE(AVX512F) && X86_HAVE(PCLMUL) && X86_HAVE(VPCLMULQDQ))
|
|
#define cpu_check_features() ((void)0)
|
|
|
|
#elif defined(__aarch64__)
|
|
|
|
extern int arm_cpu_enable_crc32;
|
|
extern int arm_cpu_enable_pmull;
|
|
void cpu_check_features(void);
|
|
|
|
#endif
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* COSMOPOLITAN_THIRD_PARTY_ZLIB_CPU_FEATURES_H_ */
|