diff --git a/gcc/testsuite/gcc.target/i386/adx-check.h b/gcc/testsuite/gcc.target/i386/adx-check.h
index cfed1a38483..bed5dcca385 100644
--- a/gcc/testsuite/gcc.target/i386/adx-check.h
+++ b/gcc/testsuite/gcc.target/i386/adx-check.h
@@ -1,5 +1,4 @@
 #include <stdlib.h>
-#include "cpuid.h"
 
 static void adx_test (void);
 
@@ -11,13 +10,8 @@ static void __attribute__ ((noinline)) do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run ADX test only if host has ADX support.  */
-  if (ebx & bit_ADX)
+  /* Check cpu support for ADX.  */
+  if (__builtin_cpu_supports ("adx"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/aes-avx-check.h b/gcc/testsuite/gcc.target/i386/aes-avx-check.h
index f2a4ead4014..74bf597ead4 100644
--- a/gcc/testsuite/gcc.target/i386/aes-avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/aes-avx-check.h
@@ -2,8 +2,6 @@
 #include <stdio.h>
 #endif
 #include <stdlib.h>
-#include "cpuid.h"
-#include "avx-os-support.h"
 
 static void aes_avx_test (void);
 
@@ -17,15 +15,9 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run AES + AVX test only if host has AES + AVX support.  */
-  if (((ecx & (bit_AVX | bit_OSXSAVE | bit_AES))
-       == (bit_AVX | bit_OSXSAVE | bit_AES))
-      && avx_os_support ())
+  /* Check cpu support for AES and AVX.  */
+  if (__builtin_cpu_supports ("avx")
+      && __builtin_cpu_supports ("aes"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/aes-check.h b/gcc/testsuite/gcc.target/i386/aes-check.h
index 7e794423e47..7c3a3b324a7 100644
--- a/gcc/testsuite/gcc.target/i386/aes-check.h
+++ b/gcc/testsuite/gcc.target/i386/aes-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void aes_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run AES test only if host has AES support.  */
-  if (ecx & bit_AES)
+  /* Check cpu support for AES.  */
+  if (__builtin_cpu_supports ("aes"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/avx-check.h b/gcc/testsuite/gcc.target/i386/avx-check.h
index 7ddca9d7b80..4a3dbc257bc 100644
--- a/gcc/testsuite/gcc.target/i386/avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/avx-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
-#include "cpuid.h"
 #include "m256-check.h"
-#include "avx-os-support.h"
 
 static void avx_test (void);
 
@@ -15,14 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run AVX test only if host has AVX support.  */
-  if (((ecx & (bit_AVX | bit_OSXSAVE)) == (bit_AVX | bit_OSXSAVE))
-      && avx_os_support ())
+  /* Check cpu support for AVX.  */
+  if (__builtin_cpu_supports ("avx"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/avx2-check.h b/gcc/testsuite/gcc.target/i386/avx2-check.h
index 25bed5e0da6..2bc3c4425bb 100644
--- a/gcc/testsuite/gcc.target/i386/avx2-check.h
+++ b/gcc/testsuite/gcc.target/i386/avx2-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
-#include "cpuid.h"
 #include "m256-check.h"
-#include "avx-os-support.h"
 
 static void avx2_test (void);
 
@@ -10,25 +8,11 @@ static void __attribute__ ((noinline)) do_test (void)
   avx2_test ();
 }
 
-static int
-check_osxsave (void)
-{
-  unsigned int eax, ebx, ecx, edx;
-
-  __cpuid (1, eax, ebx, ecx, edx);
-  return (ecx & bit_OSXSAVE) != 0;
-}
-
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run AVX2 test only if host has AVX2 support.  */
-  if (check_osxsave () && (ebx & bit_AVX2) && avx_os_support ())
+  /* Check cpu support for AVX2.  */
+  if (__builtin_cpu_supports ("avx2"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/avx512-check.h b/gcc/testsuite/gcc.target/i386/avx512-check.h
index 0ad9064f637..339c79070c9 100644
--- a/gcc/testsuite/gcc.target/i386/avx512-check.h
+++ b/gcc/testsuite/gcc.target/i386/avx512-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
-#include "cpuid.h"
 #include "m512-check.h"
-#include "avx512f-os-support.h"
 
 #ifndef DO_TEST
 #define DO_TEST do_test
@@ -25,81 +23,66 @@ do_test (void)
 }
 #endif
 
-static int
-check_osxsave (void)
-{
-  unsigned int eax, ebx, ecx, edx;
-
-  __cpuid (1, eax, ebx, ecx, edx);
-  return (ecx & bit_OSXSAVE) != 0;
-}
-
 int
 main ()
 {
-  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)
+  /* Check cpu support for AVX512.  */
+  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 ())
+      )
     {
       DO_TEST ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/bmi-check.h b/gcc/testsuite/gcc.target/i386/bmi-check.h
index 1973f3b6468..6af0291a947 100644
--- a/gcc/testsuite/gcc.target/i386/bmi-check.h
+++ b/gcc/testsuite/gcc.target/i386/bmi-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void bmi_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run BMI test only if host has BMI support.  */
-  if (ebx & bit_BMI)
+  /* Check cpu support for BMI.  */
+  if (__builtin_cpu_supports ("bmi"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/bmi2-check.h b/gcc/testsuite/gcc.target/i386/bmi2-check.h
index ba91ef9b780..75c4d8d9616 100644
--- a/gcc/testsuite/gcc.target/i386/bmi2-check.h
+++ b/gcc/testsuite/gcc.target/i386/bmi2-check.h
@@ -1,6 +1,5 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include "cpuid.h"
 
 static void bmi2_test (void);
 
@@ -14,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run BMI2 test only if host has BMI2 support.  */
-  if (ebx & bit_BMI2)
+  /* Check cpu support for BMI2.  */
+  if (__builtin_cpu_supports ("bmi2"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/f16c-check.h b/gcc/testsuite/gcc.target/i386/f16c-check.h
index af7f32c5f4f..2cbf34ab516 100644
--- a/gcc/testsuite/gcc.target/i386/f16c-check.h
+++ b/gcc/testsuite/gcc.target/i386/f16c-check.h
@@ -1,6 +1,5 @@
 #include <stdlib.h>
 #include <stdio.h>
-#include "cpuid.h"
 #include "m256-check.h"
 
 static void f16c_test (void);
@@ -8,13 +7,8 @@ static void f16c_test (void);
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run F16C test only if host has F16C support.  */
-  if (ecx & bit_F16C)
+  /* Check cpu support for F16C.  */
+  if (__builtin_cpu_supports ("f16c"))
     {
       f16c_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/fma-check.h b/gcc/testsuite/gcc.target/i386/fma-check.h
index 8390f5088bd..6c1d3372218 100644
--- a/gcc/testsuite/gcc.target/i386/fma-check.h
+++ b/gcc/testsuite/gcc.target/i386/fma-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void fma_test (void);
 
 static void __attribute__ ((noinline)) do_test (void)
@@ -12,13 +10,8 @@ static void __attribute__ ((noinline)) do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run FMA test only if host has FMA support.  */
-  if (ecx & bit_FMA)
+  /* Check cpu support for FMA.  */
+  if (__builtin_cpu_supports ("fma"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/fma4-check.h b/gcc/testsuite/gcc.target/i386/fma4-check.h
index 33cd9628c04..2d2c2718029 100644
--- a/gcc/testsuite/gcc.target/i386/fma4-check.h
+++ b/gcc/testsuite/gcc.target/i386/fma4-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void fma4_test (void);
 
 static void
@@ -14,13 +12,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run FMA4 test only if host has FMA4 support.  */
-  if (ecx & bit_FMA4)
+  /* Check cpu support foe FMA4.  */
+  if (__builtin_cpu_supports ("fma4"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/lzcnt-check.h b/gcc/testsuite/gcc.target/i386/lzcnt-check.h
index 8aad834d6af..824f1a3b513 100644
--- a/gcc/testsuite/gcc.target/i386/lzcnt-check.h
+++ b/gcc/testsuite/gcc.target/i386/lzcnt-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void lzcnt_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run LZCNT test only if host has LZCNT support.  */
-  if (ecx & bit_LZCNT)
+  /* Check cpu support for LZCNT.  */
+  if (__builtin_cpu_supports ("lzcnt"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h b/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
index 4f2f7f3ac40..0ec2dca2e19 100644
--- a/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
+++ b/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void mmx_3dnow_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run 3DNow! test only if host has 3DNow! support.  */
-  if (edx & bit_3DNOW)
+  /* Check cpu support for 3DNow!.  */
+  if (__builtin_cpu_supports ("3dnow"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/mmx-check.h b/gcc/testsuite/gcc.target/i386/mmx-check.h
index faf9b876f38..2afe5183ba2 100644
--- a/gcc/testsuite/gcc.target/i386/mmx-check.h
+++ b/gcc/testsuite/gcc.target/i386/mmx-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void mmx_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run MMX test only if host has MMX support.  */
-  if (edx & bit_MMX)
+  /* Check cpu support for MMX.  */
+  if (__builtin_cpu_supports ("mmx"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h b/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
index 5eed2e2203c..b506b3306e6 100644
--- a/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
@@ -2,8 +2,6 @@
 #include <stdio.h>
 #endif
 #include <stdlib.h>
-#include "cpuid.h"
-#include "avx-os-support.h"
 
 static void pclmul_avx_test (void);
 
@@ -17,15 +15,9 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run PCLMUL + AVX test only if host has PCLMUL + AVX support.  */
-  if (((ecx & (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
-       == (bit_AVX | bit_OSXSAVE | bit_PCLMUL))
-      && avx_os_support ())
+  /* Check cpu support for PCLMUL and AVX.  */
+  if (__builtin_cpu_supports ("pclmul")
+      && __builtin_cpu_supports ("avx"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/pclmul-check.h b/gcc/testsuite/gcc.target/i386/pclmul-check.h
index 7526cbe2ddf..3ed1a044627 100644
--- a/gcc/testsuite/gcc.target/i386/pclmul-check.h
+++ b/gcc/testsuite/gcc.target/i386/pclmul-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void pclmul_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run PCLMULQDQ test only if host has PCLMULQDQ support.  */
-  if (ecx & bit_PCLMUL)
+  /* Check cpu support for PCLMUL.  */
+  if (__builtin_cpu_supports ("pclmul"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/rtm-check.h b/gcc/testsuite/gcc.target/i386/rtm-check.h
index bdb5a6dc0bf..4121e602a7f 100644
--- a/gcc/testsuite/gcc.target/i386/rtm-check.h
+++ b/gcc/testsuite/gcc.target/i386/rtm-check.h
@@ -1,5 +1,4 @@
 #include <stdlib.h>
-#include "cpuid.h"
 
 static void rtm_test (void);
 
@@ -11,13 +10,8 @@ static void __attribute__ ((noinline)) do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run RTM test only if host has RTM support.  */
-  if (ebx & bit_RTM)
+  /* Check cpu support for RTM.  */
+  if (__builtin_cpu_supports ("rtm"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/sha-check.h b/gcc/testsuite/gcc.target/i386/sha-check.h
index 5bc5a59ab80..61ce43053f9 100644
--- a/gcc/testsuite/gcc.target/i386/sha-check.h
+++ b/gcc/testsuite/gcc.target/i386/sha-check.h
@@ -1,5 +1,4 @@
 #include <stdlib.h>
-#include "cpuid.h"
 
 static void sha_test (void);
 
@@ -13,13 +12,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
-
-  if (!__get_cpuid_count (7, 0, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SHA test only if host has SHA support.  */
-  if (ebx & bit_SHA)
+  /* Check cpu support for SHA.  */
+  if (__builtin_cpu_supports ("sha"))
     {
       do_test ();
 #ifdef DEBUG
diff --git a/gcc/testsuite/gcc.target/i386/sse-check.h b/gcc/testsuite/gcc.target/i386/sse-check.h
index 11b71bc3e97..58bc88c5598 100644
--- a/gcc/testsuite/gcc.target/i386/sse-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
 #include "m128-check.h"
-#include "cpuid.h"
-#include "sse-os-support.h"
 
 static void sse_test (void);
 
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSE test only if host has SSE support.  */
-  if ((edx & bit_SSE) && sse_os_support ())
+  /* Check cpu support for SSE.  */
+  if (__builtin_cpu_supports ("sse"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/sse2-check.h b/gcc/testsuite/gcc.target/i386/sse2-check.h
index fd4a6ce1dbf..4976a27022d 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse2-check.h
@@ -1,7 +1,5 @@
 #include <stdlib.h>
-#include "cpuid.h"
 #include "m128-check.h"
-#include "sse-os-support.h"
 
 static void sse2_test (void);
 
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSE2 test only if host has SSE2 support.  */
-  if ((edx & bit_SSE2) && sse_os_support ())
+  /* Check cpu support for SSE2.  */
+  if (__builtin_cpu_supports ("sse2"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/sse3-check.h b/gcc/testsuite/gcc.target/i386/sse3-check.h
index 5a0a0b1a02e..3c58361e925 100644
--- a/gcc/testsuite/gcc.target/i386/sse3-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse3-check.h
@@ -1,7 +1,5 @@
 #include <stdio.h>
 #include <stdlib.h>
-#include "cpuid.h"
-#include "sse-os-support.h"
 
 static void sse3_test (void);
 
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
- 
-  /* Run SSE3 test only if host has SSE3 support.  */
-  if ((ecx & bit_SSE3) && sse_os_support ())
+  /* Check cpu support for SSE3.  */
+  if (__builtin_cpu_supports ("sse3"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-check.h b/gcc/testsuite/gcc.target/i386/sse4_1-check.h
index 788f65d61cb..61d0d0284a8 100644
--- a/gcc/testsuite/gcc.target/i386/sse4_1-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4_1-check.h
@@ -1,6 +1,4 @@
 #include <stdlib.h>
-
-#include "cpuid.h"
 #include "m128-check.h"
 
 static void sse4_1_test (void);
@@ -17,13 +15,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSE4.1 test only if host has SSE4.1 support.  */
-  if (ecx & bit_SSE4_1)
+  /* Check cpu support for SSE4.1.  */
+  if (__builtin_cpu_supports ("sse4.1"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/sse4_2-check.h b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
index c33cd1b4986..6c921ac52c7 100644
--- a/gcc/testsuite/gcc.target/i386/sse4_2-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
-
 #include "m128-check.h"
-#include "cpuid.h"
 
 static void sse4_2_test (void);
 
@@ -16,13 +14,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSE4.2 test only if host has SSE4.2 support.  */
-  if (ecx & bit_SSE4_2)
+  /* Check cpu support for SSE4.2.  */
+  if (__builtin_cpu_supports ("sse4.2"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/sse4a-check.h b/gcc/testsuite/gcc.target/i386/sse4a-check.h
index d43b4b222b1..ae70ff0a268 100644
--- a/gcc/testsuite/gcc.target/i386/sse4a-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4a-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void sse4a_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSE4a test only if host has SSE4a support.  */
-  if (ecx & bit_SSE4a)
+  /* Check cpu support for SSE4a.  */
+  if (__builtin_cpu_supports ("sse4a"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/ssse3-check.h b/gcc/testsuite/gcc.target/i386/ssse3-check.h
index 3ca79333c7f..3e834811f2d 100644
--- a/gcc/testsuite/gcc.target/i386/ssse3-check.h
+++ b/gcc/testsuite/gcc.target/i386/ssse3-check.h
@@ -1,8 +1,6 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "cpuid.h"
-
 static void ssse3_test (void);
 
 static void
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run SSSE3 test only if host has SSSE3 support.  */
-  if (ecx & bit_SSSE3)
+  /* Check cpu support for SSSE3.  */
+  if (__builtin_cpu_supports ("ssse3"))
     do_test ();
 
   return 0;
diff --git a/gcc/testsuite/gcc.target/i386/xop-check.h b/gcc/testsuite/gcc.target/i386/xop-check.h
index 395abe8766d..e1ef1273111 100644
--- a/gcc/testsuite/gcc.target/i386/xop-check.h
+++ b/gcc/testsuite/gcc.target/i386/xop-check.h
@@ -1,6 +1,4 @@
 #include <stdlib.h>
-
-#include "cpuid.h"
 #include "m256-check.h"
 
 static void xop_test (void);
@@ -15,13 +13,8 @@ do_test (void)
 int
 main ()
 {
-  unsigned int eax, ebx, ecx, edx;
- 
-  if (!__get_cpuid (0x80000001, &eax, &ebx, &ecx, &edx))
-    return 0;
-
-  /* Run XOP test only if host has XOP support.  */
-  if (ecx & bit_XOP)
+  /* Check cpu support for XOP.  */
+  if (__builtin_cpu_supports ("xop"))
     do_test ();
 
   return 0;
