aboutsummaryrefslogtreecommitdiffstats
path: root/util/system/cpu_id.h
diff options
context:
space:
mode:
authorAnton Samokhvalov <pg83@yandex.ru>2022-02-10 16:45:15 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:15 +0300
commit72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch)
treeda2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /util/system/cpu_id.h
parent778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff)
downloadydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'util/system/cpu_id.h')
-rw-r--r--util/system/cpu_id.h208
1 files changed, 104 insertions, 104 deletions
diff --git a/util/system/cpu_id.h b/util/system/cpu_id.h
index 3c49e728a7..75637d68b7 100644
--- a/util/system/cpu_id.h
+++ b/util/system/cpu_id.h
@@ -1,154 +1,154 @@
-#pragma once
-
-#include "types.h"
+#pragma once
+
+#include "types.h"
#include "compiler.h"
#include <util/generic/singleton.h>
-
-#define Y_CPU_ID_ENUMERATE(F) \
- F(SSE) \
- F(SSE2) \
- F(SSE3) \
- F(SSSE3) \
- F(SSE41) \
- F(SSE42) \
+
+#define Y_CPU_ID_ENUMERATE(F) \
+ F(SSE) \
+ F(SSE2) \
+ F(SSE3) \
+ F(SSSE3) \
+ F(SSE41) \
+ F(SSE42) \
F(F16C) \
- F(POPCNT) \
- F(BMI1) \
+ F(POPCNT) \
+ F(BMI1) \
F(BMI2) \
F(PCLMUL) \
- F(AES) \
- F(AVX) \
- F(FMA) \
- F(AVX2) \
- F(AVX512F) \
- F(AVX512DQ) \
- F(AVX512IFMA) \
- F(AVX512PF) \
- F(AVX512ER) \
- F(AVX512CD) \
- F(AVX512BW) \
- F(AVX512VL) \
- F(AVX512VBMI) \
- F(PREFETCHWT1) \
- F(SHA) \
- F(ADX) \
- F(RDRAND) \
- F(RDSEED) \
- F(PCOMMIT) \
- F(RDTSCP) \
- F(CLFLUSHOPT) \
- F(CLWB) \
- F(XSAVE) \
- F(OSXSAVE)
-
+ F(AES) \
+ F(AVX) \
+ F(FMA) \
+ F(AVX2) \
+ F(AVX512F) \
+ F(AVX512DQ) \
+ F(AVX512IFMA) \
+ F(AVX512PF) \
+ F(AVX512ER) \
+ F(AVX512CD) \
+ F(AVX512BW) \
+ F(AVX512VL) \
+ F(AVX512VBMI) \
+ F(PREFETCHWT1) \
+ F(SHA) \
+ F(ADX) \
+ F(RDRAND) \
+ F(RDSEED) \
+ F(PCOMMIT) \
+ F(RDTSCP) \
+ F(CLFLUSHOPT) \
+ F(CLWB) \
+ F(XSAVE) \
+ F(OSXSAVE)
+
#define Y_CPU_ID_ENUMERATE_OUTLINED_CACHED_DEFINE(F) \
- F(F16C) \
- F(BMI1) \
- F(BMI2) \
- F(PCLMUL) \
- F(AES) \
- F(AVX) \
- F(FMA) \
- F(AVX2) \
- F(AVX512F) \
- F(AVX512DQ) \
- F(AVX512IFMA) \
- F(AVX512PF) \
- F(AVX512ER) \
- F(AVX512CD) \
- F(AVX512BW) \
- F(AVX512VL) \
- F(AVX512VBMI) \
- F(PREFETCHWT1) \
- F(SHA) \
- F(ADX) \
- F(RDRAND) \
- F(RDSEED) \
- F(PCOMMIT) \
- F(RDTSCP) \
- F(CLFLUSHOPT) \
- F(CLWB) \
- F(XSAVE) \
+ F(F16C) \
+ F(BMI1) \
+ F(BMI2) \
+ F(PCLMUL) \
+ F(AES) \
+ F(AVX) \
+ F(FMA) \
+ F(AVX2) \
+ F(AVX512F) \
+ F(AVX512DQ) \
+ F(AVX512IFMA) \
+ F(AVX512PF) \
+ F(AVX512ER) \
+ F(AVX512CD) \
+ F(AVX512BW) \
+ F(AVX512VL) \
+ F(AVX512VBMI) \
+ F(PREFETCHWT1) \
+ F(SHA) \
+ F(ADX) \
+ F(RDRAND) \
+ F(RDSEED) \
+ F(PCOMMIT) \
+ F(RDTSCP) \
+ F(CLFLUSHOPT) \
+ F(CLWB) \
+ F(XSAVE) \
F(OSXSAVE)
-namespace NX86 {
- /**
- * returns false on non-x86 platforms
- */
+namespace NX86 {
+ /**
+ * returns false on non-x86 platforms
+ */
bool CpuId(ui32 op, ui32 res[4]) noexcept;
bool CpuId(ui32 op, ui32 subOp, ui32 res[4]) noexcept;
#define Y_DEF_NAME(X) Y_CONST_FUNCTION bool Have##X() noexcept;
- Y_CPU_ID_ENUMERATE(Y_DEF_NAME)
-#undef Y_DEF_NAME
+ Y_CPU_ID_ENUMERATE(Y_DEF_NAME)
+#undef Y_DEF_NAME
#define Y_DEF_NAME(X) Y_CONST_FUNCTION bool CachedHave##X() noexcept;
Y_CPU_ID_ENUMERATE_OUTLINED_CACHED_DEFINE(Y_DEF_NAME)
#undef Y_DEF_NAME
- struct TFlagsCache {
+ struct TFlagsCache {
#define Y_DEF_NAME(X) const bool Have##X##_ = NX86::Have##X();
- Y_CPU_ID_ENUMERATE(Y_DEF_NAME)
-#undef Y_DEF_NAME
- };
+ Y_CPU_ID_ENUMERATE(Y_DEF_NAME)
+#undef Y_DEF_NAME
+ };
#define Y_LOOKUP_CPU_ID_IMPL(X) return SingletonWithPriority<TFlagsCache, 0>()->Have##X##_;
- inline bool CachedHaveSSE() noexcept {
+ inline bool CachedHaveSSE() noexcept {
#ifdef _sse_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSE)
+ Y_LOOKUP_CPU_ID_IMPL(SSE)
#endif
- }
-
- inline bool CachedHaveSSE2() noexcept {
+ }
+
+ inline bool CachedHaveSSE2() noexcept {
#ifdef _sse2_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSE2)
+ Y_LOOKUP_CPU_ID_IMPL(SSE2)
#endif
- }
+ }
- inline bool CachedHaveSSE3() noexcept {
+ inline bool CachedHaveSSE3() noexcept {
#ifdef _sse3_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSE3)
+ Y_LOOKUP_CPU_ID_IMPL(SSE3)
#endif
- }
+ }
- inline bool CachedHaveSSSE3() noexcept {
+ inline bool CachedHaveSSSE3() noexcept {
#ifdef _ssse3_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSSE3)
+ Y_LOOKUP_CPU_ID_IMPL(SSSE3)
#endif
- }
+ }
- inline bool CachedHaveSSE41() noexcept {
+ inline bool CachedHaveSSE41() noexcept {
#ifdef _sse4_1_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSE41)
+ Y_LOOKUP_CPU_ID_IMPL(SSE41)
#endif
- }
+ }
- inline bool CachedHaveSSE42() noexcept {
+ inline bool CachedHaveSSE42() noexcept {
#ifdef _sse4_2_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(SSE42)
+ Y_LOOKUP_CPU_ID_IMPL(SSE42)
#endif
- }
+ }
- inline bool CachedHavePOPCNT() noexcept {
+ inline bool CachedHavePOPCNT() noexcept {
#ifdef _popcnt_
- return true;
+ return true;
#else
- Y_LOOKUP_CPU_ID_IMPL(POPCNT)
+ Y_LOOKUP_CPU_ID_IMPL(POPCNT)
#endif
- }
+ }
#undef Y_LOOKUP_CPU_ID_IMPL