From bf8fced073c62b3c39e02b336ce977c3d4d67e4a Mon Sep 17 00:00:00 2001 From: Ayan Shafqat Date: Thu, 2 Feb 2023 12:13:12 -0500 Subject: [PATCH] Add CPU detection --- libs/pbd/fpu.cc | 7 ++++++- libs/pbd/pbd/fpu.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libs/pbd/fpu.cc b/libs/pbd/fpu.cc index 0c281a74e8..2c0d70df25 100644 --- a/libs/pbd/fpu.cc +++ b/libs/pbd/fpu.cc @@ -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)); } diff --git a/libs/pbd/pbd/fpu.h b/libs/pbd/pbd/fpu.h index 7d5e21d696..9dfd68a27a 100644 --- a/libs/pbd/pbd/fpu.h +++ b/libs/pbd/pbd/fpu.h @@ -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; }