mirror of
https://github.com/aaru-dps/Aaru.Checksums.git
synced 2025-12-16 19:24:29 +00:00
Naming fixes.
This commit is contained in:
@@ -565,7 +565,7 @@ public static class CdChecksums
|
||||
var qSubChannelCrc = BigEndianBitConverter.ToUInt16(qSubChannel, 10);
|
||||
var qSubChannelForCrc = new byte[10];
|
||||
Array.Copy(qSubChannel, 0, qSubChannelForCrc, 0, 10);
|
||||
ushort calculatedQcrc = CRC16CCITTContext.Calculate(qSubChannelForCrc);
|
||||
ushort calculatedQcrc = CRC16CcittContext.Calculate(qSubChannelForCrc);
|
||||
|
||||
if(qSubChannelCrc != calculatedQcrc)
|
||||
{
|
||||
@@ -580,7 +580,7 @@ public static class CdChecksums
|
||||
var cdTextPack1Crc = BigEndianBitConverter.ToUInt16(cdTextPack1, 16);
|
||||
var cdTextPack1ForCrc = new byte[16];
|
||||
Array.Copy(cdTextPack1, 0, cdTextPack1ForCrc, 0, 16);
|
||||
ushort calculatedCdtp1Crc = CRC16CCITTContext.Calculate(cdTextPack1ForCrc);
|
||||
ushort calculatedCdtp1Crc = CRC16CcittContext.Calculate(cdTextPack1ForCrc);
|
||||
|
||||
if(cdTextPack1Crc != calculatedCdtp1Crc && cdTextPack1Crc != 0)
|
||||
{
|
||||
@@ -596,7 +596,7 @@ public static class CdChecksums
|
||||
var cdTextPack2Crc = BigEndianBitConverter.ToUInt16(cdTextPack2, 16);
|
||||
var cdTextPack2ForCrc = new byte[16];
|
||||
Array.Copy(cdTextPack2, 0, cdTextPack2ForCrc, 0, 16);
|
||||
ushort calculatedCdtp2Crc = CRC16CCITTContext.Calculate(cdTextPack2ForCrc);
|
||||
ushort calculatedCdtp2Crc = CRC16CcittContext.Calculate(cdTextPack2ForCrc);
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Cyclic_CDTP2_0_Calc_CDTP2_1, cdTextPack2Crc,
|
||||
calculatedCdtp2Crc);
|
||||
@@ -615,7 +615,7 @@ public static class CdChecksums
|
||||
var cdTextPack3Crc = BigEndianBitConverter.ToUInt16(cdTextPack3, 16);
|
||||
var cdTextPack3ForCrc = new byte[16];
|
||||
Array.Copy(cdTextPack3, 0, cdTextPack3ForCrc, 0, 16);
|
||||
ushort calculatedCdtp3Crc = CRC16CCITTContext.Calculate(cdTextPack3ForCrc);
|
||||
ushort calculatedCdtp3Crc = CRC16CcittContext.Calculate(cdTextPack3ForCrc);
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Cyclic_CDTP3_0_Calc_CDTP3_1, cdTextPack3Crc,
|
||||
calculatedCdtp3Crc);
|
||||
@@ -635,7 +635,7 @@ public static class CdChecksums
|
||||
var cdTextPack4Crc = BigEndianBitConverter.ToUInt16(cdTextPack4, 16);
|
||||
var cdTextPack4ForCrc = new byte[16];
|
||||
Array.Copy(cdTextPack4, 0, cdTextPack4ForCrc, 0, 16);
|
||||
ushort calculatedCdtp4Crc = CRC16CCITTContext.Calculate(cdTextPack4ForCrc);
|
||||
ushort calculatedCdtp4Crc = CRC16CcittContext.Calculate(cdTextPack4ForCrc);
|
||||
|
||||
AaruConsole.DebugWriteLine(MODULE_NAME, Localization.Cyclic_CDTP4_0_Calc_CDTP4_1, cdTextPack4Crc,
|
||||
calculatedCdtp4Crc);
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Aaru.Checksums;
|
||||
/// <inheritdoc />
|
||||
/// <summary>Implements the CRC16 algorithm with CCITT polynomial and seed</summary>
|
||||
[SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")]
|
||||
public sealed class CRC16CCITTContext : Crc16Context
|
||||
public sealed class CRC16CcittContext : Crc16Context
|
||||
{
|
||||
/// <summary>CCITT CRC16 polynomial</summary>
|
||||
public const ushort CRC16_CCITT_POLY = 0x8408;
|
||||
@@ -233,7 +233,7 @@ public sealed class CRC16CCITTContext : Crc16Context
|
||||
|
||||
/// <summary>Initializes an instance of the CRC16 with CCITT polynomial and seed.</summary>
|
||||
/// <inheritdoc />
|
||||
public CRC16CCITTContext() : base(CRC16_CCITT_POLY, CRC16_CCITT_SEED, _ccittCrc16Table, true) {}
|
||||
public CRC16CcittContext() : base(CRC16_CCITT_POLY, CRC16_CCITT_SEED, _ccittCrc16Table, true) {}
|
||||
|
||||
/// <summary>Gets the hash of a file</summary>
|
||||
/// <param name="filename">File path.</param>
|
||||
|
||||
@@ -61,11 +61,11 @@ public class Crc16Context : IChecksum
|
||||
|
||||
_useNative = Native.IsSupported;
|
||||
|
||||
_useCcitt = polynomial == CRC16CCITTContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CCITTContext.CRC16_CCITT_SEED &&
|
||||
_useCcitt = polynomial == CRC16CcittContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CcittContext.CRC16_CCITT_SEED &&
|
||||
inverse;
|
||||
|
||||
_useIbm = polynomial == CRC16IBMContext.CRC16_IBM_POLY && seed == CRC16IBMContext.CRC16_IBM_SEED && !inverse;
|
||||
_useIbm = polynomial == CRC16IbmContext.CRC16_IBM_POLY && seed == CRC16IbmContext.CRC16_IBM_SEED && !inverse;
|
||||
|
||||
if(_useCcitt && _useNative)
|
||||
{
|
||||
@@ -363,12 +363,12 @@ public class Crc16Context : IChecksum
|
||||
{
|
||||
bool useNative = Native.IsSupported;
|
||||
|
||||
bool useCcitt = polynomial == CRC16CCITTContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CCITTContext.CRC16_CCITT_SEED &&
|
||||
bool useCcitt = polynomial == CRC16CcittContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CcittContext.CRC16_CCITT_SEED &&
|
||||
inverse;
|
||||
|
||||
bool useIbm = polynomial == CRC16IBMContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IBMContext.CRC16_IBM_SEED &&
|
||||
bool useIbm = polynomial == CRC16IbmContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IbmContext.CRC16_IBM_SEED &&
|
||||
!inverse;
|
||||
|
||||
IntPtr nativeContext = IntPtr.Zero;
|
||||
@@ -470,12 +470,12 @@ public class Crc16Context : IChecksum
|
||||
{
|
||||
bool useNative = Native.IsSupported;
|
||||
|
||||
bool useCcitt = polynomial == CRC16CCITTContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CCITTContext.CRC16_CCITT_SEED &&
|
||||
bool useCcitt = polynomial == CRC16CcittContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CcittContext.CRC16_CCITT_SEED &&
|
||||
inverse;
|
||||
|
||||
bool useIbm = polynomial == CRC16IBMContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IBMContext.CRC16_IBM_SEED &&
|
||||
bool useIbm = polynomial == CRC16IbmContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IbmContext.CRC16_IBM_SEED &&
|
||||
!inverse;
|
||||
|
||||
IntPtr nativeContext = IntPtr.Zero;
|
||||
@@ -563,12 +563,12 @@ public class Crc16Context : IChecksum
|
||||
{
|
||||
bool useNative = Native.IsSupported;
|
||||
|
||||
bool useCcitt = polynomial == CRC16CCITTContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CCITTContext.CRC16_CCITT_SEED &&
|
||||
bool useCcitt = polynomial == CRC16CcittContext.CRC16_CCITT_POLY &&
|
||||
seed == CRC16CcittContext.CRC16_CCITT_SEED &&
|
||||
inverse;
|
||||
|
||||
bool useIbm = polynomial == CRC16IBMContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IBMContext.CRC16_IBM_SEED &&
|
||||
bool useIbm = polynomial == CRC16IbmContext.CRC16_IBM_POLY &&
|
||||
seed == CRC16IbmContext.CRC16_IBM_SEED &&
|
||||
!inverse;
|
||||
|
||||
IntPtr nativeContext = IntPtr.Zero;
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace Aaru.Checksums;
|
||||
[SuppressMessage("ReSharper", "UnusedMethodReturnValue.Global")]
|
||||
[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")]
|
||||
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
|
||||
public sealed class CRC16IBMContext : Crc16Context
|
||||
public sealed class CRC16IbmContext : Crc16Context
|
||||
{
|
||||
internal const ushort CRC16_IBM_POLY = 0xA001;
|
||||
internal const ushort CRC16_IBM_SEED = 0x0000;
|
||||
@@ -234,7 +234,7 @@ public sealed class CRC16IBMContext : Crc16Context
|
||||
|
||||
/// <summary>Initializes an instance of the CRC16 with IBM polynomial and seed.</summary>
|
||||
/// <inheritdoc />
|
||||
public CRC16IBMContext() : base(CRC16_IBM_POLY, CRC16_IBM_SEED, _ibmCrc16Table, false) {}
|
||||
public CRC16IbmContext() : base(CRC16_IBM_POLY, CRC16_IBM_SEED, _ibmCrc16Table, false) {}
|
||||
|
||||
/// <summary>Gets the hash of a file</summary>
|
||||
/// <param name="filename">File path.</param>
|
||||
|
||||
@@ -54,7 +54,7 @@ public sealed class Crc32Context : IChecksum
|
||||
const uint CRC32_ISO_POLY = 0xEDB88320;
|
||||
const uint CRC32_ISO_SEED = 0xFFFFFFFF;
|
||||
|
||||
internal static readonly uint[][] _isoCrc32Table =
|
||||
internal static readonly uint[][] ISOCrc32Table =
|
||||
{
|
||||
new uint[]
|
||||
{
|
||||
@@ -326,7 +326,7 @@ public sealed class Crc32Context : IChecksum
|
||||
{
|
||||
_hashInt = CRC32_ISO_SEED;
|
||||
_finalSeed = CRC32_ISO_SEED;
|
||||
_table = _isoCrc32Table;
|
||||
_table = ISOCrc32Table;
|
||||
_useIso = true;
|
||||
|
||||
if(!Native.IsSupported)
|
||||
|
||||
@@ -65,13 +65,13 @@ static class Neon
|
||||
/*
|
||||
* Process the data in blocks.
|
||||
*/
|
||||
uint BLOCK_SIZE = 1 << 5;
|
||||
uint blocks = len / BLOCK_SIZE;
|
||||
len -= blocks * BLOCK_SIZE;
|
||||
uint block_Size = 1 << 5;
|
||||
uint blocks = len / block_Size;
|
||||
len -= blocks * block_Size;
|
||||
|
||||
while(blocks != 0)
|
||||
{
|
||||
uint n = Fletcher32Context.NMAX / BLOCK_SIZE; /* The NMAX constraint. */
|
||||
uint n = Fletcher32Context.NMAX / block_Size; /* The NMAX constraint. */
|
||||
|
||||
if(n > blocks)
|
||||
n = blocks;
|
||||
@@ -81,12 +81,12 @@ static class Neon
|
||||
* Process n blocks of data. At most NMAX data bytes can be
|
||||
* processed before s2 must be reduced modulo FLETCHER_MODULE.
|
||||
*/
|
||||
var v_s2 = Vector128.Create(s1 * n, 0, 0, 0);
|
||||
var v_s1 = Vector128.Create(0u, 0, 0, 0);
|
||||
Vector128<ushort> v_column_sum_1 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_column_sum_2 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_column_sum_3 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_column_sum_4 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
var v_S2 = Vector128.Create(s1 * n, 0, 0, 0);
|
||||
var v_S1 = Vector128.Create(0u, 0, 0, 0);
|
||||
Vector128<ushort> v_Column_Sum_1 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_Column_Sum_2 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_Column_Sum_3 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
Vector128<ushort> v_Column_Sum_4 = AdvSimd.DuplicateToVector128((ushort)0);
|
||||
|
||||
do
|
||||
{
|
||||
@@ -109,13 +109,13 @@ static class Neon
|
||||
/*
|
||||
* Add previous block byte sum to v_s2.
|
||||
*/
|
||||
v_s2 = AdvSimd.Add(v_s2, v_s1);
|
||||
v_S2 = AdvSimd.Add(v_S2, v_S1);
|
||||
|
||||
/*
|
||||
* Horizontally add the bytes for s1.
|
||||
*/
|
||||
v_s1 =
|
||||
AdvSimd.AddPairwiseWideningAndAdd(v_s1,
|
||||
v_S1 =
|
||||
AdvSimd.AddPairwiseWideningAndAdd(v_S1,
|
||||
AdvSimd.
|
||||
AddPairwiseWideningAndAdd(AdvSimd.AddPairwiseWidening(bytes1),
|
||||
bytes2));
|
||||
@@ -123,49 +123,49 @@ static class Neon
|
||||
/*
|
||||
* Vertically add the bytes for s2.
|
||||
*/
|
||||
v_column_sum_1 = AdvSimd.AddWideningLower(v_column_sum_1, bytes1.GetLower());
|
||||
v_column_sum_2 = AdvSimd.AddWideningLower(v_column_sum_2, bytes1.GetUpper());
|
||||
v_column_sum_3 = AdvSimd.AddWideningLower(v_column_sum_3, bytes2.GetLower());
|
||||
v_column_sum_4 = AdvSimd.AddWideningLower(v_column_sum_4, bytes2.GetUpper());
|
||||
v_Column_Sum_1 = AdvSimd.AddWideningLower(v_Column_Sum_1, bytes1.GetLower());
|
||||
v_Column_Sum_2 = AdvSimd.AddWideningLower(v_Column_Sum_2, bytes1.GetUpper());
|
||||
v_Column_Sum_3 = AdvSimd.AddWideningLower(v_Column_Sum_3, bytes2.GetLower());
|
||||
v_Column_Sum_4 = AdvSimd.AddWideningLower(v_Column_Sum_4, bytes2.GetUpper());
|
||||
} while(--n != 0);
|
||||
|
||||
v_s2 = AdvSimd.ShiftLeftLogical(v_s2, 5);
|
||||
v_S2 = AdvSimd.ShiftLeftLogical(v_S2, 5);
|
||||
|
||||
/*
|
||||
* Multiply-add bytes by [ 32, 31, 30, ... ] for s2.
|
||||
*/
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_1.GetLower(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_1.GetLower(),
|
||||
Vector64.Create((ushort)32, 31, 30, 29));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_1.GetUpper(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_1.GetUpper(),
|
||||
Vector64.Create((ushort)28, 27, 26, 25));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_2.GetLower(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_2.GetLower(),
|
||||
Vector64.Create((ushort)24, 23, 22, 21));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_2.GetUpper(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_2.GetUpper(),
|
||||
Vector64.Create((ushort)20, 19, 18, 17));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_3.GetLower(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_3.GetLower(),
|
||||
Vector64.Create((ushort)16, 15, 14, 13));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_3.GetUpper(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_3.GetUpper(),
|
||||
Vector64.Create((ushort)12, 11, 10, 9));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_4.GetLower(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_4.GetLower(),
|
||||
Vector64.Create((ushort)8, 7, 6, 5));
|
||||
|
||||
v_s2 = AdvSimd.MultiplyWideningLowerAndAdd(v_s2, v_column_sum_4.GetUpper(),
|
||||
v_S2 = AdvSimd.MultiplyWideningLowerAndAdd(v_S2, v_Column_Sum_4.GetUpper(),
|
||||
Vector64.Create((ushort)4, 3, 2, 1));
|
||||
|
||||
/*
|
||||
* Sum epi32 ints v_s1(s2) and accumulate in s1(s2).
|
||||
*/
|
||||
Vector64<uint> sum1 = AdvSimd.AddPairwise(v_s1.GetLower(), v_s1.GetUpper());
|
||||
Vector64<uint> sum2 = AdvSimd.AddPairwise(v_s2.GetLower(), v_s2.GetUpper());
|
||||
Vector64<uint> s1s2 = AdvSimd.AddPairwise(sum1, sum2);
|
||||
s1 += AdvSimd.Extract(s1s2, 0);
|
||||
s2 += AdvSimd.Extract(s1s2, 1);
|
||||
Vector64<uint> sum1 = AdvSimd.AddPairwise(v_S1.GetLower(), v_S1.GetUpper());
|
||||
Vector64<uint> sum2 = AdvSimd.AddPairwise(v_S2.GetLower(), v_S2.GetUpper());
|
||||
Vector64<uint> s1S2 = AdvSimd.AddPairwise(sum1, sum2);
|
||||
s1 += AdvSimd.Extract(s1S2, 0);
|
||||
s2 += AdvSimd.Extract(s1S2, 1);
|
||||
/*
|
||||
* Reduce.
|
||||
*/
|
||||
|
||||
@@ -62,13 +62,13 @@ static class Ssse3
|
||||
/*
|
||||
* Process the data in blocks.
|
||||
*/
|
||||
uint BLOCK_SIZE = 1 << 5;
|
||||
uint blocks = len / BLOCK_SIZE;
|
||||
len -= blocks * BLOCK_SIZE;
|
||||
uint block_Size = 1 << 5;
|
||||
uint blocks = len / block_Size;
|
||||
len -= blocks * block_Size;
|
||||
|
||||
while(blocks != 0)
|
||||
{
|
||||
uint n = Fletcher32Context.NMAX / BLOCK_SIZE; /* The NMAX constraint. */
|
||||
uint n = Fletcher32Context.NMAX / block_Size; /* The NMAX constraint. */
|
||||
|
||||
if(n > blocks)
|
||||
n = blocks;
|
||||
@@ -85,9 +85,9 @@ static class Ssse3
|
||||
* Process n blocks of data. At most NMAX data bytes can be
|
||||
* processed before s2 must be reduced modulo BASE.
|
||||
*/
|
||||
var v_ps = Vector128.Create(s1 * n, 0, 0, 0);
|
||||
var v_s2 = Vector128.Create(s2, 0, 0, 0);
|
||||
var v_s1 = Vector128.Create(0u, 0, 0, 0);
|
||||
var v_Ps = Vector128.Create(s1 * n, 0, 0, 0);
|
||||
var v_S2 = Vector128.Create(s2, 0, 0, 0);
|
||||
var v_S1 = Vector128.Create(0u, 0, 0, 0);
|
||||
|
||||
do
|
||||
{
|
||||
@@ -111,35 +111,35 @@ static class Ssse3
|
||||
/*
|
||||
* Add previous block byte sum to v_ps.
|
||||
*/
|
||||
v_ps = Sse2.Add(v_ps, v_s1);
|
||||
v_Ps = Sse2.Add(v_Ps, v_S1);
|
||||
/*
|
||||
* Horizontally add the bytes for s1, multiply-adds the
|
||||
* bytes by [ 32, 31, 30, ... ] for s2.
|
||||
*/
|
||||
v_s1 = Sse2.Add(v_s1, Sse2.SumAbsoluteDifferences(bytes1.AsByte(), zero).AsUInt32());
|
||||
v_S1 = Sse2.Add(v_S1, Sse2.SumAbsoluteDifferences(bytes1.AsByte(), zero).AsUInt32());
|
||||
|
||||
Vector128<short> mad1 =
|
||||
System.Runtime.Intrinsics.X86.Ssse3.MultiplyAddAdjacent(bytes1.AsByte(), tap1.AsSByte());
|
||||
|
||||
v_s2 = Sse2.Add(v_s2, Sse2.MultiplyAddAdjacent(mad1.AsInt16(), ones.AsInt16()).AsUInt32());
|
||||
v_s1 = Sse2.Add(v_s1, Sse2.SumAbsoluteDifferences(bytes2.AsByte(), zero).AsUInt32());
|
||||
v_S2 = Sse2.Add(v_S2, Sse2.MultiplyAddAdjacent(mad1.AsInt16(), ones.AsInt16()).AsUInt32());
|
||||
v_S1 = Sse2.Add(v_S1, Sse2.SumAbsoluteDifferences(bytes2.AsByte(), zero).AsUInt32());
|
||||
|
||||
Vector128<short> mad2 =
|
||||
System.Runtime.Intrinsics.X86.Ssse3.MultiplyAddAdjacent(bytes2.AsByte(), tap2.AsSByte());
|
||||
|
||||
v_s2 = Sse2.Add(v_s2, Sse2.MultiplyAddAdjacent(mad2.AsInt16(), ones.AsInt16()).AsUInt32());
|
||||
v_S2 = Sse2.Add(v_S2, Sse2.MultiplyAddAdjacent(mad2.AsInt16(), ones.AsInt16()).AsUInt32());
|
||||
} while(--n != 0);
|
||||
|
||||
v_s2 = Sse2.Add(v_s2, Sse2.ShiftLeftLogical(v_ps, 5));
|
||||
v_S2 = Sse2.Add(v_S2, Sse2.ShiftLeftLogical(v_Ps, 5));
|
||||
/*
|
||||
* Sum epi32 ints v_s1(s2) and accumulate in s1(s2).
|
||||
*/
|
||||
v_s1 = Sse2.Add(v_s1, Sse2.Shuffle(v_s1, 177));
|
||||
v_s1 = Sse2.Add(v_s1, Sse2.Shuffle(v_s1, 78));
|
||||
s1 += (uint)Sse2.ConvertToInt32(v_s1.AsInt32());
|
||||
v_s2 = Sse2.Add(v_s2, Sse2.Shuffle(v_s2, 177));
|
||||
v_s2 = Sse2.Add(v_s2, Sse2.Shuffle(v_s2, 78));
|
||||
s2 = (uint)Sse2.ConvertToInt32(v_s2.AsInt32());
|
||||
v_S1 = Sse2.Add(v_S1, Sse2.Shuffle(v_S1, 177));
|
||||
v_S1 = Sse2.Add(v_S1, Sse2.Shuffle(v_S1, 78));
|
||||
s1 += (uint)Sse2.ConvertToInt32(v_S1.AsInt32());
|
||||
v_S2 = Sse2.Add(v_S2, Sse2.Shuffle(v_S2, 177));
|
||||
v_S2 = Sse2.Add(v_S2, Sse2.Shuffle(v_S2, 78));
|
||||
s2 = (uint)Sse2.ConvertToInt32(v_S2.AsInt32());
|
||||
/*
|
||||
* Reduce.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user