Add CPU detection
This commit is contained in:
parent
a050d9bf1f
commit
bf8fced073
@ -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));
|
||||
}
|
||||
|
@ -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; }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user