[libc][NFC] Make cpu feature check tolerate non-x86 architectures.

The feature check should probably be enhanced for non-x86 architectures,
but this change shields them from x86 specific pieces until then.

This patch has been split out from https://reviews.llvm.org/D81533.

GitOrigin-RevId: c76a1d0fc0c148c8642397a6ec8a589256eb1dc2
diff --git a/cmake/modules/LLVMLibCCheckCpuFeatures.cmake b/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
index 0bb4af8..86c3822 100644
--- a/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
+++ b/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
@@ -4,10 +4,9 @@
 
 if(${LIBC_TARGET_MACHINE} MATCHES "x86|x86_64")
   set(ALL_CPU_FEATURES SSE SSE2 AVX AVX2 AVX512F)
+  list(SORT ALL_CPU_FEATURES)
 endif()
 
-list(SORT ALL_CPU_FEATURES)
-
 # Function to check whether the host supports the provided set of features.
 # Usage:
 # host_supports(
@@ -126,4 +125,11 @@
 endfunction()
 
 # Populates the HOST_CPU_FEATURES list.
-_check_defined_cpu_feature(HOST_CPU_FEATURES MARCH native)
+# Use -march=native only when the compiler supports it.
+include(CheckCXXCompilerFlag)
+CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE)
+if(COMPILER_SUPPORTS_MARCH_NATIVE)
+  _check_defined_cpu_feature(HOST_CPU_FEATURES MARCH native)
+else()
+  _check_defined_cpu_feature(HOST_CPU_FEATURES)
+endif()