Implement Fletcher-32 using ARM NEON instructions.

This commit is contained in:
2023-09-23 02:44:19 +01:00
parent 1bd06bb761
commit 6bfd6c7c83
4 changed files with 215 additions and 1 deletions

View File

@@ -46,6 +46,15 @@ AARU_EXPORT int AARU_CALL fletcher32_update(fletcher32_ctx* ctx, const uint8_t*
{
if(!ctx || !data) return -1;
#if defined(__aarch64__) || defined(_M_ARM64) || ((defined(__arm__) || defined(_M_ARM)) && !defined(__MINGW32__))
if(have_neon())
{
fletcher32_neon(&ctx->sum1, &ctx->sum2, data, len);
return 0;
}
#endif
uint32_t sum1 = ctx->sum1;
uint32_t sum2 = ctx->sum2;
unsigned n;