chromium/third_party/ruy/src/ruy/cpuinfo.cc

#include "ruy/cpuinfo.h"

#include <algorithm>
#include <cstdint>
#include <limits>

#include "ruy/check_macros.h"
#include "ruy/cpu_cache_params.h"
#include "ruy/platform.h"

#ifdef RUY_HAVE_CPUINFO
#include <cpuinfo.h>
#endif

namespace ruy {

namespace {
void MakeDummyCacheParams(CpuCacheParams* result) {}
}  // end namespace

#ifdef RUY_HAVE_CPUINFO

CpuInfo::~CpuInfo() {}

bool CpuInfo::EnsureInitialized() {}

namespace {
bool QueryCacheParams(CpuCacheParams* cache_params) {}
}  // end namespace

CpuInfo::InitStatus CpuInfo::Initialize() {}

bool CpuInfo::NeonDotprod() {}

bool CpuInfo::Sse42() {}

bool CpuInfo::Avx2Fma() {}

bool CpuInfo::Avx() {}

bool CpuInfo::Avx512() {}

bool CpuInfo::AvxVnni() {}

bool CpuInfo::CurrentCpuIsA55ish() {}

bool CpuInfo::CurrentCpuIsX1() {}

#else  // not defined RUY_HAVE_CPUINFO

CpuInfo::~CpuInfo() {}
bool CpuInfo::EnsureInitialized() {
  if (init_status_ == InitStatus::kNotYetAttempted) {
    MakeDummyCacheParams(&cache_params_);
    init_status_ = InitStatus::kInitialized;
  }
  RUY_DCHECK_EQ(init_status_, InitStatus::kInitialized);
  return true;
}
bool CpuInfo::NeonDotprod() { return false; }
bool CpuInfo::Sse42() { return false; }
bool CpuInfo::Avx() { return false; }
bool CpuInfo::Avx2Fma() { return false; }
bool CpuInfo::Avx512() { return false; }
bool CpuInfo::AvxVnni() { return false; }
bool CpuInfo::CurrentCpuIsA55ish() { return false; }
bool CpuInfo::CurrentCpuIsX1() { return false; }

#endif

const CpuCacheParams& CpuInfo::CacheParams() {}

}  // namespace ruy