[compiler-rt] r370915 - [X86] Add support for avx512bf16 for __builtin_cpu_supports and compiler-rt's cpu indicator.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 4 09:01:43 PDT 2019


Author: ctopper
Date: Wed Sep  4 09:01:43 2019
New Revision: 370915

URL: http://llvm.org/viewvc/llvm-project?rev=370915&view=rev
Log:
[X86] Add support for avx512bf16 for __builtin_cpu_supports and compiler-rt's cpu indicator.

Modified:
    compiler-rt/trunk/lib/builtins/cpu_model.c

Modified: compiler-rt/trunk/lib/builtins/cpu_model.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/cpu_model.c?rev=370915&r1=370914&r2=370915&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/cpu_model.c (original)
+++ compiler-rt/trunk/lib/builtins/cpu_model.c Wed Sep  4 09:01:43 2019
@@ -121,7 +121,8 @@ enum ProcessorFeatures {
   FEATURE_GFNI,
   FEATURE_VPCLMULQDQ,
   FEATURE_AVX512VNNI,
-  FEATURE_AVX512BITALG
+  FEATURE_AVX512BITALG,
+  FEATURE_AVX512BF16
 };
 
 // The check below for i386 was copied from clang's cpuid.h (__get_cpuid_max).
@@ -582,6 +583,11 @@ static void getAvailableFeatures(unsigne
   if (HasLeaf7 && ((EDX >> 3) & 1) && HasAVX512Save)
     setFeature(FEATURE_AVX5124FMAPS);
 
+  bool HasLeaf7Subleaf1 =
+      MaxLeaf >= 0x7 && !getX86CpuIDAndInfoEx(0x7, 0x1, &EAX, &EBX, &ECX, &EDX);
+  if (HasLeaf7Subleaf1 && ((EAX >> 5) & 1) && HasAVX512Save)
+    setFeature(FEATURE_AVX512BF16);
+
   unsigned MaxExtLevel;
   getX86CpuIDAndInfo(0x80000000, &MaxExtLevel, &EBX, &ECX, &EDX);
 




More information about the llvm-commits mailing list