ADD: BLAKE3 use NEON

This commit is contained in:
Alexander Koblov 2025-09-13 17:26:29 +03:00
commit 9bb0036c76
3 changed files with 1161 additions and 2 deletions

File diff suppressed because it is too large Load diff

View file

@ -30,6 +30,8 @@ const
{$if defined(CPUX86_64)}
MAX_SIMD_DEGREE = 16;
{$elseif defined(CPUAARCH64)}
MAX_SIMD_DEGREE = 4;
{$else}
MAX_SIMD_DEGREE = 1;
{$endif}
@ -203,6 +205,10 @@ end;
{$include blake3_pas.inc}
{$ENDIF}
{$IF DEFINED(CPUAARCH64)}
{$include blake3_neon.inc}
{$ENDIF}
var
blake3_simd_degree: csize_t; // The dynamically detected SIMD degree of the current platform
@ -732,6 +738,11 @@ initialization
blake3_compress_xof:= @blake3_compress_xof_sse2;
blake3_hash_many:= @blake3_hash_many_sse2;
end;
{$ELSEIF DEFINED(CPUAARCH64)}
blake3_simd_degree:= 4;
blake3_compress_in_place:= @blake3_compress_in_place_portable;
blake3_compress_xof:= @blake3_compress_xof_portable;
blake3_hash_many:= @blake3_hash_many_neon;
{$ELSE}
blake3_simd_degree:= 1;
blake3_compress_in_place:= @blake3_compress_in_place_portable;
@ -739,4 +750,3 @@ initialization
blake3_hash_many:= @blake3_hash_many_portable;
{$ENDIF}
end.

View file

@ -37,7 +37,7 @@
"/>
<License Value="KAScrypt is open source software (released under the MIT license) and as such there is no charge for inclusion in other software.
"/>
<Version Major="3" Minor="2"/>
<Version Major="3" Minor="3"/>
<Files Count="32">
<Item1>
<Filename Value="dcpbase64.pas"/>