#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_ */
