Implement Fletcher-32 using SSSE3 instructions.

This commit is contained in:
2023-09-23 03:05:45 +01:00
parent b741a2eaf1
commit fbd5180793
3 changed files with 194 additions and 0 deletions

View File

@@ -36,6 +36,7 @@ using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.Intrinsics.Arm;
using System.Runtime.Intrinsics.X86;
using System.Text;
using Aaru.CommonTypes.Interfaces;
using Aaru.Helpers;
@@ -133,6 +134,13 @@ public sealed class Fletcher32Context : IChecksum
return;
}
if(Ssse3.IsSupported)
{
ssse3.Step(ref previousSum1, ref previousSum2, data, len);
return;
}
if(AdvSimd.IsSupported)
{
neon.Step(ref previousSum1, ref previousSum2, data, len);