Skip to content

Commit f00ad59

Browse files
authored
simd related refactorings (#60)
1 parent 7c81bcb commit f00ad59

21 files changed

Lines changed: 116 additions & 116 deletions

HashLib.Benchmark/Delphi/PerformanceBenchmarkConsole.dpr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ uses
124124
HlpConverters in '..\..\HashLib\src\Utils\HlpConverters.pas',
125125
HlpBitConverter in '..\..\HashLib\src\Utils\HlpBitConverter.pas',
126126
HlpBits in '..\..\HashLib\src\Utils\HlpBits.pas',
127-
HlpSimd in '..\..\HashLib\src\Utils\HlpSimd.pas',
127+
HlpCpuFeatures in '..\..\HashLib\src\Utils\HlpCpuFeatures.pas',
128128
HlpHashLibTypes in '..\..\HashLib\src\Utils\HlpHashLibTypes.pas',
129129
HlpArrayUtils in '..\..\HashLib\src\Utils\HlpArrayUtils.pas';
130130

HashLib.Benchmark/Delphi/PerformanceBenchmarkFMX.dpr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ uses
123123
HlpConverters in '..\..\HashLib\src\Utils\HlpConverters.pas',
124124
HlpBitConverter in '..\..\HashLib\src\Utils\HlpBitConverter.pas',
125125
HlpBits in '..\..\HashLib\src\Utils\HlpBits.pas',
126-
HlpSimd in '..\..\HashLib\src\Utils\HlpSimd.pas',
126+
HlpCpuFeatures in '..\..\HashLib\src\Utils\HlpCpuFeatures.pas',
127127
HlpHashLibTypes in '..\..\HashLib\src\Utils\HlpHashLibTypes.pas',
128128
HlpArrayUtils in '..\..\HashLib\src\Utils\HlpArrayUtils.pas';
129129

HashLib.Tests/Delphi.Tests/HashLib.Tests.dpr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ uses
142142
HlpConverters in '..\..\HashLib\src\Utils\HlpConverters.pas',
143143
HlpBitConverter in '..\..\HashLib\src\Utils\HlpBitConverter.pas',
144144
HlpBits in '..\..\HashLib\src\Utils\HlpBits.pas',
145-
HlpSimd in '..\..\HashLib\src\Utils\HlpSimd.pas',
145+
HlpCpuFeatures in '..\..\HashLib\src\Utils\HlpCpuFeatures.pas',
146146
HlpHashLibTypes in '..\..\HashLib\src\Utils\HlpHashLibTypes.pas',
147147
HlpArrayUtils in '..\..\HashLib\src\Utils\HlpArrayUtils.pas',
148148
HashLibTestBase in '..\src\HashLibTestBase.pas',

HashLib/src/Checksum/HlpAdler32Dispatch.pas

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ interface
1313
implementation
1414

1515
uses
16-
HlpSimd;
16+
HlpCpuFeatures;
1717

1818
const
1919
ModAdler = UInt32(65521);
@@ -188,28 +188,28 @@ procedure InitDispatch();
188188
begin
189189
Adler32_Update := @Adler32_Update_Scalar;
190190
{$IFDEF HASHLIB_I386_ASM}
191-
case TSimd.GetActiveLevel() of
192-
TSimdLevel.SSSE3:
191+
case TCpuFeatures.GetActiveLevel() of
192+
TCpuSimdLevel.SSSE3:
193193
begin
194194
Adler32_Update := @Adler32_Update_Ssse3;
195195
end;
196-
TSimdLevel.SSE2:
196+
TCpuSimdLevel.SSE2:
197197
begin
198198
Adler32_Update := @Adler32_Update_Sse2;
199199
end;
200200
end;
201201
{$ENDIF}
202202
{$IFDEF HASHLIB_X86_64_ASM}
203-
case TSimd.GetActiveLevel() of
204-
TSimdLevel.AVX2:
203+
case TCpuFeatures.GetActiveLevel() of
204+
TCpuSimdLevel.AVX2:
205205
begin
206206
Adler32_Update := @Adler32_Update_Avx2;
207207
end;
208-
TSimdLevel.SSSE3:
208+
TCpuSimdLevel.SSSE3:
209209
begin
210210
Adler32_Update := @Adler32_Update_Ssse3;
211211
end;
212-
TSimdLevel.SSE2:
212+
TCpuSimdLevel.SSE2:
213213
begin
214214
Adler32_Update := @Adler32_Update_Sse2;
215215
end;

HashLib/src/Checksum/HlpCRCDispatch.pas

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ implementation
7878

7979
uses
8080
HlpConverters,
81-
HlpSimd;
81+
HlpCpuFeatures;
8282

8383
// =============================================================================
8484
// Scalar fallback implementation
@@ -494,15 +494,15 @@ procedure InitDispatch();
494494
CRC_Fold_UsesPclmul := False;
495495

496496
{$IFDEF HASHLIB_X86_64_ASM}
497-
if TSimd.HasVPCLMULQDQ() then
497+
if TCpuFeatures.HasVPCLMULQDQ() then
498498
begin
499499
CRC_Fold_Lsb := @CRC_Fold_Vpclmul;
500500
CRC_Fold_Msb := @CRC_Fold_Vpclmul_Msb;
501501
CRC_Fold_Lsb32 := @CRC_Fold_Vpclmul;
502502
CRC_Fold_UsesPclmul := True;
503503
Exit;
504504
end;
505-
if TSimd.HasPCLMULQDQ() then
505+
if TCpuFeatures.HasPCLMULQDQ() then
506506
begin
507507
CRC_Fold_Lsb := @CRC_Fold_Pclmul;
508508
CRC_Fold_Msb := @CRC_Fold_Pclmul_Msb;
@@ -514,14 +514,14 @@ procedure InitDispatch();
514514

515515
{$IFDEF HASHLIB_X86_SIMD}
516516
{$IFDEF HASHLIB_I386_ASM}
517-
case TSimd.GetActiveLevel() of
518-
TSimdLevel.SSSE3, TSimdLevel.SSE2:
517+
case TCpuFeatures.GetActiveLevel() of
518+
TCpuSimdLevel.SSSE3, TCpuSimdLevel.SSE2:
519519
BindSse2CrcFold;
520520
end;
521521
{$ENDIF HASHLIB_I386_ASM}
522522
{$IFDEF HASHLIB_X86_64_ASM}
523-
case TSimd.GetActiveLevel() of
524-
TSimdLevel.AVX2, TSimdLevel.SSSE3, TSimdLevel.SSE2:
523+
case TCpuFeatures.GetActiveLevel() of
524+
TCpuSimdLevel.AVX2, TCpuSimdLevel.SSSE3, TCpuSimdLevel.SSE2:
525525
BindSse2CrcFold;
526526
end;
527527
{$ENDIF HASHLIB_X86_64_ASM}

HashLib/src/Crypto/HlpBlake2BDispatch.pas

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ implementation
2222

2323
uses
2424
HlpBits,
25-
HlpSimd;
25+
HlpCpuFeatures;
2626

2727
const
2828
Blake2BSigma: array [0 .. 11, 0 .. 15] of Int32 = (
@@ -131,20 +131,20 @@ procedure InitDispatch();
131131
begin
132132
Blake2B_Compress := @Blake2B_Compress_Scalar;
133133
{$IFDEF HASHLIB_I386_ASM}
134-
case TSimd.GetActiveLevel() of
135-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
134+
case TCpuFeatures.GetActiveLevel() of
135+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
136136
begin
137137
Blake2B_Compress := @Blake2B_Compress_Sse2;
138138
end;
139139
end;
140140
{$ENDIF}
141141
{$IFDEF HASHLIB_X86_64_ASM}
142-
case TSimd.GetActiveLevel() of
143-
TSimdLevel.AVX2:
142+
case TCpuFeatures.GetActiveLevel() of
143+
TCpuSimdLevel.AVX2:
144144
begin
145145
Blake2B_Compress := @Blake2B_Compress_Avx2;
146146
end;
147-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
147+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
148148
begin
149149
Blake2B_Compress := @Blake2B_Compress_Sse2;
150150
end;

HashLib/src/Crypto/HlpBlake2SDispatch.pas

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ implementation
2222

2323
uses
2424
HlpBits,
25-
HlpSimd;
25+
HlpCpuFeatures;
2626

2727
const
2828
Blake2SSigma: array [0 .. 9, 0 .. 15] of Int32 = (
@@ -129,20 +129,20 @@ procedure InitDispatch();
129129
begin
130130
Blake2S_Compress := @Blake2S_Compress_Scalar;
131131
{$IFDEF HASHLIB_I386_ASM}
132-
case TSimd.GetActiveLevel() of
133-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
132+
case TCpuFeatures.GetActiveLevel() of
133+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
134134
begin
135135
Blake2S_Compress := @Blake2S_Compress_Sse2;
136136
end;
137137
end;
138138
{$ENDIF}
139139
{$IFDEF HASHLIB_X86_64_ASM}
140-
case TSimd.GetActiveLevel() of
141-
TSimdLevel.AVX2:
140+
case TCpuFeatures.GetActiveLevel() of
141+
TCpuSimdLevel.AVX2:
142142
begin
143143
Blake2S_Compress := @Blake2S_Compress_Avx2;
144144
end;
145-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
145+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
146146
begin
147147
Blake2S_Compress := @Blake2S_Compress_Sse2;
148148
end;

HashLib/src/Crypto/HlpBlake3Dispatch.pas

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ implementation
2626

2727
uses
2828
HlpBits,
29-
HlpSimd;
29+
HlpCpuFeatures;
3030

3131
const
3232
Blake3IV: array [0 .. 3] of UInt32 = (
@@ -712,8 +712,8 @@ procedure InitDispatch();
712712
Blake3_HashMany := @Blake3_HashMany_Scalar;
713713
Blake3_ParallelDegree := 1;
714714
{$IFDEF HASHLIB_I386_ASM}
715-
case TSimd.GetActiveLevel() of
716-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
715+
case TCpuFeatures.GetActiveLevel() of
716+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
717717
begin
718718
Blake3_Compress := @Blake3_Compress_Sse2;
719719
Blake3_HashMany := @Blake3_HashMany_Sse2;
@@ -722,14 +722,14 @@ procedure InitDispatch();
722722
end;
723723
{$ENDIF}
724724
{$IFDEF HASHLIB_X86_64_ASM}
725-
case TSimd.GetActiveLevel() of
726-
TSimdLevel.AVX2:
725+
case TCpuFeatures.GetActiveLevel() of
726+
TCpuSimdLevel.AVX2:
727727
begin
728728
Blake3_Compress := @Blake3_Compress_Avx2;
729729
Blake3_HashMany := @Blake3_HashMany_Avx2;
730730
Blake3_ParallelDegree := 8;
731731
end;
732-
TSimdLevel.SSE2, TSimdLevel.SSSE3:
732+
TCpuSimdLevel.SSE2, TCpuSimdLevel.SSSE3:
733733
begin
734734
Blake3_Compress := @Blake3_Compress_Sse2;
735735
Blake3_HashMany := @Blake3_HashMany_Sse2;

HashLib/src/Crypto/HlpSHA1Dispatch.pas

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ implementation
2727
uses
2828
HlpBits,
2929
HlpConverters,
30-
HlpSimd;
30+
HlpCpuFeatures;
3131

3232
// =============================================================================
3333
// Scalar fallback implementation
@@ -175,33 +175,33 @@ procedure InitDispatch();
175175
begin
176176
SHA1_Compress := @SHA1_Compress_Scalar;
177177
{$IFDEF HASHLIB_I386_ASM}
178-
case TSimd.GetActiveLevel() of
179-
TSimdLevel.SSSE3:
178+
case TCpuFeatures.GetActiveLevel() of
179+
TCpuSimdLevel.SSSE3:
180180
begin
181181
SHA1_Compress := @SHA1_Compress_Ssse3_Wrap;
182182
end;
183-
TSimdLevel.SSE2:
183+
TCpuSimdLevel.SSE2:
184184
begin
185185
SHA1_Compress := @SHA1_Compress_Sse2;
186186
end;
187187
end;
188188
{$ENDIF}
189189
{$IFDEF HASHLIB_X86_64_ASM}
190-
if TSimd.HasSHANI() then
190+
if TCpuFeatures.HasSHANI() then
191191
begin
192192
SHA1_Compress := @SHA1_Compress_ShaNi_Wrap;
193193
Exit;
194194
end;
195-
case TSimd.GetActiveLevel() of
196-
TSimdLevel.AVX2:
195+
case TCpuFeatures.GetActiveLevel() of
196+
TCpuSimdLevel.AVX2:
197197
begin
198198
SHA1_Compress := @SHA1_Compress_Avx2_Wrap;
199199
end;
200-
TSimdLevel.SSSE3:
200+
TCpuSimdLevel.SSSE3:
201201
begin
202202
SHA1_Compress := @SHA1_Compress_Ssse3_Wrap;
203203
end;
204-
TSimdLevel.SSE2:
204+
TCpuSimdLevel.SSE2:
205205
begin
206206
SHA1_Compress := @SHA1_Compress_Sse2;
207207
end;

HashLib/src/Crypto/HlpSHA2_256Dispatch.pas

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ implementation
3939
uses
4040
HlpBits,
4141
HlpConverters,
42-
HlpSimd;
42+
HlpCpuFeatures;
4343

4444
// =============================================================================
4545
// Scalar fallback implementation
@@ -185,33 +185,33 @@ procedure InitDispatch();
185185
begin
186186
SHA256_Compress := @SHA256_Compress_Scalar;
187187
{$IFDEF HASHLIB_I386_ASM}
188-
case TSimd.GetActiveLevel() of
189-
TSimdLevel.SSSE3:
188+
case TCpuFeatures.GetActiveLevel() of
189+
TCpuSimdLevel.SSSE3:
190190
begin
191191
SHA256_Compress := @SHA256_Compress_Ssse3_Wrap;
192192
end;
193-
TSimdLevel.SSE2:
193+
TCpuSimdLevel.SSE2:
194194
begin
195195
SHA256_Compress := @SHA256_Compress_Sse2_Wrap;
196196
end;
197197
end;
198198
{$ENDIF}
199199
{$IFDEF HASHLIB_X86_64_ASM}
200-
if TSimd.HasSHANI() then
200+
if TCpuFeatures.HasSHANI() then
201201
begin
202202
SHA256_Compress := @SHA256_Compress_ShaNi_Wrap;
203203
Exit;
204204
end;
205-
case TSimd.GetActiveLevel() of
206-
TSimdLevel.AVX2:
205+
case TCpuFeatures.GetActiveLevel() of
206+
TCpuSimdLevel.AVX2:
207207
begin
208208
SHA256_Compress := @SHA256_Compress_Avx2_Wrap;
209209
end;
210-
TSimdLevel.SSSE3:
210+
TCpuSimdLevel.SSSE3:
211211
begin
212212
SHA256_Compress := @SHA256_Compress_Ssse3_Wrap;
213213
end;
214-
TSimdLevel.SSE2:
214+
TCpuSimdLevel.SSE2:
215215
begin
216216
SHA256_Compress := @SHA256_Compress_Sse2_Wrap;
217217
end;

0 commit comments

Comments
 (0)