https://gcc.gnu.org/g:699087a16591adfdf21228876b6c48dbcd353faa

commit r15-1836-g699087a16591adfdf21228876b6c48dbcd353faa
Author: liuhongt <hongtao....@intel.com>
Date:   Thu Jul 4 13:57:32 2024 +0800

    Use __builtin_cpu_support instead of __get_cpuid_count.
    
    gcc/testsuite/ChangeLog:
    
            PR target/115748
            * gcc.target/i386/avx512-check.h: Use __builtin_cpu_support
            instead of __get_cpuid_count.

Diff:
---
 gcc/testsuite/gcc.target/i386/avx512-check.h | 46 ++++++++++++----------------
 1 file changed, 20 insertions(+), 26 deletions(-)

diff --git a/gcc/testsuite/gcc.target/i386/avx512-check.h 
b/gcc/testsuite/gcc.target/i386/avx512-check.h
index 71858a33dac..8ec1a7ccbae 100644
--- a/gcc/testsuite/gcc.target/i386/avx512-check.h
+++ b/gcc/testsuite/gcc.target/i386/avx512-check.h
@@ -38,69 +38,63 @@ __attribute__((noipa,target("no-avx")))
 int
 avx512_runtime_support_p ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
   /* Run AVX512 test only if host has ISA support.  */
-  if (check_osxsave ()
-      && (ebx & bit_AVX512F)
+  if (__builtin_cpu_supports ("avx512f")
 #ifdef AVX512VL
-      && (ebx & bit_AVX512VL)
+      && __builtin_cpu_supports ("avx512vl")
 #endif
 #ifdef AVX512ER
-      && (ebx & bit_AVX512ER)
+      && __builtin_cpu_supports ("avx512er")
 #endif
 #ifdef AVX512CD
-      && (ebx & bit_AVX512CD)
+      && __builtin_cpu_supports ("avx512cd")
 #endif
 #ifdef AVX512DQ
-      && (ebx & bit_AVX512DQ)
+      && __builtin_cpu_supports ("avx512dq")
 #endif
 #ifdef AVX512BW
-      && (ebx & bit_AVX512BW)
+      && __builtin_cpu_supports ("avx512bw")
 #endif
 #ifdef AVX512IFMA
-      && (ebx & bit_AVX512IFMA)
+      && __builtin_cpu_supports ("avx512ifma")
 #endif
 #ifdef AVX512VBMI
-      && (ecx & bit_AVX512VBMI)
+      && __builtin_cpu_supports ("avx512vbmi")
 #endif
 #ifdef AVX5124FMAPS
-      && (edx & bit_AVX5124FMAPS)
+      && __builtin_cpu_supports ("avx5124fmaps")
 #endif
 #ifdef AVX5124VNNIW
-      && (edx & bit_AVX5124VNNIW)
+      && __builtin_cpu_supports ("avx5124vnniw")
 #endif
 #ifdef AVX512VPOPCNTDQ
-      && (ecx & bit_AVX512VPOPCNTDQ)
+      && __builtin_cpu_supports ("avx512vpopcntdq")
 #endif
 #ifdef AVX512BITALG
-      && (ecx & bit_AVX512BITALG)
+      && __builtin_cpu_supports ("avx512bitalg")
 #endif
 #ifdef GFNI
-      && (ecx & bit_GFNI)
+      && __builtin_cpu_supports ("gfni")
 #endif
 #ifdef AVX512VBMI2
-      && (ecx & bit_AVX512VBMI2)
+      && __builtin_cpu_supports ("avx512vbmi2")
 #endif
 #ifdef AVX512VNNI
-      && (ecx & bit_AVX512VNNI)
+      && __builtin_cpu_supports ("avx512vnni")
 #endif
 #ifdef AVX512FP16
-      && (edx & bit_AVX512FP16)
+      && __builtin_cpu_supports ("avx512fp16")
 #endif
 #ifdef VAES
-      && (ecx & bit_VAES)
+      && __builtin_cpu_supports ("vaes")
 #endif
 #ifdef VPCLMULQDQ
-      && (ecx & bit_VPCLMULQDQ)
+      && __builtin_cpu_supports ("vpclmulqdq")
 #endif
 #ifdef AVX512VP2INTERSECT
-      && (edx & bit_AVX512VP2INTERSECT)
+      && __builtin_cpu_supports ("avx512vp2intersect")
 #endif
-      && avx512f_os_support ())
+      )
     {
       return 1;
     }

Reply via email to