Define getHostCPUFeatures for Windows on ARM64 platform
This change implements getHostCPUFeatures function to enable this functionality on Windows on ARM64.
This was committed to llvm at https://reviews.llvm.org/D68139 .
Bug: chromium:893460
Change-Id: I7ae62f298683979a4ab1aa8099d6e91706b15c9b
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/37328
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
diff --git a/third_party/llvm-7.0/llvm/lib/Support/Host.cpp b/third_party/llvm-7.0/llvm/lib/Support/Host.cpp
index 2c718dd..c15b212 100644
--- a/third_party/llvm-7.0/llvm/lib/Support/Host.cpp
+++ b/third_party/llvm-7.0/llvm/lib/Support/Host.cpp
@@ -1358,6 +1358,17 @@
return true;
}
+#elif defined(_WIN32) && (defined(__aarch64__) || defined(_M_ARM64))
+bool sys::getHostCPUFeatures(StringMap<bool> &Features) {
+ if (IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
+ Features["neon"] = true;
+ if (IsProcessorFeaturePresent(PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE))
+ Features["crc"] = true;
+ if (IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE))
+ Features["crypto"] = true;
+
+ return true;
+}
#else
bool sys::getHostCPUFeatures(StringMap<bool> &Features) { return false; }
#endif