summaryrefslogtreecommitdiff
path: root/cpu_features.h
diff options
context:
space:
mode:
authorAdam Stylinski <kungfujesus06@gmail.com>2022-04-07 22:57:09 -0400
committerHans Kristian Rosbach <hk-github@circlestorm.org>2022-05-23 16:13:39 +0200
commitb8269bb7d4702f8e694441112bb4ba7c59ff2362 (patch)
treec499c5d0cdafa2c468200445cf55adea83b7c663 /cpu_features.h
parent2f2b7e9d6972dcba001c02aedb758a991b82b30d (diff)
downloadProject-Tick-b8269bb7d4702f8e694441112bb4ba7c59ff2362.tar.gz
Project-Tick-b8269bb7d4702f8e694441112bb4ba7c59ff2362.zip
Added inlined AVX512 adler checksum + copy
While we're here, also simplfy the "fold" signature, as reducing the number of rebases and horizontal sums did not prove to be meaningfully faster (slower in many circumstances).
Diffstat (limited to 'cpu_features.h')
-rw-r--r--cpu_features.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/cpu_features.h b/cpu_features.h
index dbabb3ac9f..9e0d5cb95d 100644
--- a/cpu_features.h
+++ b/cpu_features.h
@@ -36,20 +36,15 @@ extern uint32_t adler32_vmx(uint32_t adler, const unsigned char *buf, size_t len
extern uint32_t adler32_ssse3(uint32_t adler, const unsigned char *buf, size_t len);
#endif
#ifdef X86_SSE42_ADLER32
-extern void adler32_fold_reset_sse42(adler32_fold *adler, uint32_t init_adler);
-extern void adler32_fold_copy_sse42(adler32_fold *adler, uint8_t *dst, const uint8_t *src, size_t len);
-extern void adler32_fold_sse42(adler32_fold *adler, const uint8_t *src, size_t len);
-extern uint32_t adler32_fold_final_sse42(adler32_fold *adler);
+extern uint32_t adler32_fold_copy_sse42(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
#endif
#ifdef X86_AVX2_ADLER32
extern uint32_t adler32_avx2(uint32_t adler, const unsigned char *buf, size_t len);
-extern void adler32_fold_reset_avx2(adler32_fold *adler, uint32_t init_adler);
-extern void adler32_fold_copy_avx2(adler32_fold *adler, uint8_t *dst, const uint8_t *src, size_t len);
-extern void adler32_fold_avx2(adler32_fold *adler, const uint8_t *src, size_t len);
-extern uint32_t adler32_fold_final_avx2(adler32_fold *adler);
+extern uint32_t adler32_fold_copy_avx2(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
#endif
#ifdef X86_AVX512_ADLER32
extern uint32_t adler32_avx512(uint32_t adler, const unsigned char *buf, size_t len);
+extern uint32_t adler32_fold_copy_avx512(uint32_t adler, uint8_t *dst, const uint8_t *src, size_t len);
#endif
#ifdef X86_AVX512VNNI_ADLER32
extern uint32_t adler32_avx512_vnni(uint32_t adler, const unsigned char *buf, size_t len);