HostFeatures: Check for CRC32 op support

Available with CRC32 bit on Arm64 or SSE4.2 on x86-64
This commit is contained in:
Ryan Houdek committed 2022-01-30 15:38:26 -08:00
1 parent 9e224d2bb0
commit 57ebfceb48
2 files changed
+3

No files matched your search

@@ -53,6 +53,7 @@ HostFeatures::HostFeatures() {
#ifdef _M_ARM_64
auto Features = vixl::CPUFeatures::InferFromOS();
SupportsAES = Features.Has(vixl::CPUFeatures::Feature::kAES);
SupportsCRC = Features.Has(vixl::CPUFeatures::Feature::kCRC32);
SupportsAtomics = Features.Has(vixl::CPUFeatures::Feature::kAtomics);
// Only supported when FEAT_AFP is supported
SupportsFlushInputsToZero = Features.Has(vixl::CPUFeatures::Feature::kAFP);
@@ -78,6 +79,7 @@ HostFeatures::HostFeatures() {
#ifdef _M_X86_64
Xbyak::util::Cpu Features{};
SupportsAES = Features.has(Xbyak::util::Cpu::tAESNI);
SupportsCRC = Features.has(Xbyak::util::Cpu::tSSE42);
SupportsFlushInputsToZero = true;
SupportsFloatExceptions = true;
#else
+1
View File
@@ -15,6 +15,7 @@ class HostFeatures final {
uint32_t DCacheLineSize{};
uint32_t ICacheLineSize{};
bool SupportsAES{};
bool SupportsCRC{};
bool SupportsCLZERO{};
bool SupportsAtomics{};
bool SupportsRCPC{};