Add ARM SIMD VMULL implementation of CRC32.

This commit is contained in:
2021-10-05 00:33:48 +01:00
parent ae9e8f66d8
commit 1f31d93572
4 changed files with 552 additions and 2 deletions

View File

@@ -21,7 +21,6 @@
#include "library.h"
#include "crc32.h"
#include "simd.h"
AARU_EXPORT crc32_ctx* AARU_CALL crc32_init(void)
{
@@ -55,6 +54,11 @@ AARU_EXPORT int AARU_CALL crc32_update(crc32_ctx* ctx, const uint8_t* data, uint
return 0;
}
if(have_neon())
{
ctx->crc = ~crc32_vmull(data, len, ~ctx->crc);
return 0;
}
#endif
// Unroll according to Intel slicing by uint8_t