Skip to content

Commit 950ee2a

Browse files
committed
add some CPUFeatures check
1 parent bdcd16f commit 950ee2a

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

HashLib/src/Utils/HlpCpuFeatures.pas

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ TCpuFeatures = class sealed
2525
class function HasSHANI(): Boolean; static;
2626
class function HasPCLMULQDQ(): Boolean; static;
2727
class function HasVPCLMULQDQ(): Boolean; static;
28+
class function HasSSE2(): Boolean; static;
29+
class function HasSSSE3(): Boolean; static;
30+
class function HasAVX2(): Boolean; static;
2831
end;
2932

3033
implementation
@@ -216,6 +219,21 @@ class function TCpuFeatures.HasVPCLMULQDQ(): Boolean;
216219
Result := FHasVPCLMULQDQ;
217220
end;
218221

222+
class function TCpuFeatures.HasSSE2(): Boolean;
223+
begin
224+
Result := Ord(FDetectedLevel) >= Ord(TCpuSimdLevel.SSE2);
225+
end;
226+
227+
class function TCpuFeatures.HasSSSE3(): Boolean;
228+
begin
229+
Result := Ord(FDetectedLevel) >= Ord(TCpuSimdLevel.SSSE3);
230+
end;
231+
232+
class function TCpuFeatures.HasAVX2(): Boolean;
233+
begin
234+
Result := FDetectedLevel = TCpuSimdLevel.AVX2;
235+
end;
236+
219237
initialization
220238
TCpuFeatures.DetectFeatures();
221239

0 commit comments

Comments
 (0)