Add CPU detection

This commit is contained in:
Ayan Shafqat 2023-02-02 12:13:12 -05:00 committed by Robin Gareus
parent a050d9bf1f
commit bf8fced073
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
2 changed files with 8 additions and 1 deletions

View File

@ -210,7 +210,7 @@ FPU::FPU ()
if ((cpu_info[2] & (1<<27)) /* OSXSAVE */ &&
(cpu_info[2] & (1<<28) /* AVX */) &&
((_xgetbv (_XCR_XFEATURE_ENABLED_MASK) & 0x6) == 0x6)) { /* OS really supports XSAVE */
info << _("AVX-capable processor") << endmsg;
info << _("AVX capable processor") << endmsg;
_flags = Flags (_flags | (HasAVX));
}
@ -219,6 +219,11 @@ FPU::FPU ()
_flags = Flags (_flags | (HasFMA));
}
if (cpu_info[2] & (1<<16) /* AVX512F */) {
info << _("AVX512F capable processor") << endmsg;
_flags = Flags (_flags | (HasAVX512F));
}
if (cpu_info[3] & (1<<25)) {
_flags = Flags (_flags | (HasSSE|HasFlushToZero));
}

View File

@ -34,6 +34,7 @@ class LIBPBD_API FPU {
HasAVX = 0x10,
HasNEON = 0x20,
HasFMA = 0x40,
HasAVX512F = 0x80,
};
public:
@ -47,6 +48,7 @@ class LIBPBD_API FPU {
bool has_sse () const { return _flags & HasSSE; }
bool has_sse2 () const { return _flags & HasSSE2; }
bool has_avx () const { return _flags & HasAVX; }
bool has_avx512f () const { return _flags & HasAVX512F; }
bool has_fma() const { return _flags & HasFMA; }
bool has_neon () const { return _flags & HasNEON; }