This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] i386: Rewrite check for AVX512 features


On Sat, Jul 29, 2017 at 3:06 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> Add a new file, avx512-check.h, to check all AVX512 features.  The test
> is skipped if any requested AVX512 features are unavailable.
>
> Tested on Skylake server and Haswell.  OK for trunk?

No, I'd rather leave it in in the way they are now, so test can
include individual checks.

Uros.

>
> H.J.
> ---
>         PR target/81590
>         * gcc.target/i386/avx512-check.h: New file.
>         * gcc.target/i386/avx5124fmaps-check.h: Removed.
>         * gcc.target/i386/avx5124vnniw-check.h: Likewise.
>         * gcc.target/i386/avx512cd-check.h: Likewise.
>         * gcc.target/i386/avx512ifma-check.h: Likewise.
>         * gcc.target/i386/avx512vbmi-check.h: Likewise.
>         * gcc.target/i386/avx512vpopcntdq-check.h: Likewise.
>         * gcc.target/i386/avx512bw-check.h: Rewrite.
>         * gcc.target/i386/avx512dq-check.h: Likewise.
>         * gcc.target/i386/avx512er-check.h: Likewise.
>         * gcc.target/i386/avx512f-check.h: Likewise.
>         * gcc.target/i386/avx512vl-check.h: Likewise.
>         * gcc.target/i386/avx512f-helper.h: Include "avx512-check.h"
>         only.
>         (test_512): Removed.
>         (avx512*_test): Likewise.
>         * gcc.target/i386/avx512f-pr71559.c (TEST): Undef.
> ---
>  gcc/testsuite/gcc.target/i386/avx512-check.h       | 113 +++++++++++++++++++++
>  gcc/testsuite/gcc.target/i386/avx5124fmaps-check.h |  47 ---------
>  gcc/testsuite/gcc.target/i386/avx5124vnniw-check.h |  47 ---------
>  gcc/testsuite/gcc.target/i386/avx512bw-check.h     |  50 +--------
>  gcc/testsuite/gcc.target/i386/avx512cd-check.h     |  46 ---------
>  gcc/testsuite/gcc.target/i386/avx512dq-check.h     |  50 +--------
>  gcc/testsuite/gcc.target/i386/avx512er-check.h     |  49 +--------
>  gcc/testsuite/gcc.target/i386/avx512f-check.h      |  49 +--------
>  gcc/testsuite/gcc.target/i386/avx512f-helper.h     |  64 +-----------
>  gcc/testsuite/gcc.target/i386/avx512f-pr71559.c    |   1 +
>  gcc/testsuite/gcc.target/i386/avx512ifma-check.h   |  46 ---------
>  gcc/testsuite/gcc.target/i386/avx512vbmi-check.h   |  46 ---------
>  gcc/testsuite/gcc.target/i386/avx512vl-check.h     |  51 +---------
>  .../gcc.target/i386/avx512vpopcntdq-check.h        |  47 ---------
>  14 files changed, 130 insertions(+), 576 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx512-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx5124fmaps-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx5124vnniw-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx512cd-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx512ifma-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx512vbmi-check.h
>  delete mode 100644 gcc/testsuite/gcc.target/i386/avx512vpopcntdq-check.h
>
> diff --git a/gcc/testsuite/gcc.target/i386/avx512-check.h b/gcc/testsuite/gcc.target/i386/avx512-check.h
> new file mode 100644
> index 00000000000..bfe14960100
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/i386/avx512-check.h
> @@ -0,0 +1,113 @@
> +#include <stdlib.h>
> +#include "cpuid.h"
> +#include "m512-check.h"
> +#include "avx512f-os-support.h"
> +
> +#ifndef DO_TEST
> +#define DO_TEST do_test
> +#ifdef AVX512VL
> +static void test_256 (void);
> +static void test_128 (void);
> +#else
> +static void test_512 (void);
> +#endif
> +
> +__attribute__ ((noinline))
> +static void
> +do_test (void)
> +{
> +#ifdef AVX512VL
> +  test_256 ();
> +  test_128 ();
> +#else
> +  test_512 ();
> +#endif
> +}
> +#endif
> +
> +int
> +main ()
> +{
> +  unsigned int eax, ebx, ecx, edx;
> +
> +  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> +    goto skipped;
> +
> +  /* Run AVX512F test only if host has AVX512F support.  */
> +  if (!(ecx & bit_OSXSAVE))
> +    goto skipped;
> +
> +  if (__get_cpuid_max (0, NULL) < 7)
> +    goto skipped;
> +
> +  __cpuid_count (7, 0, eax, ebx, ecx, edx);
> +
> +  if (!(ebx & bit_AVX512F))
> +    goto skipped;
> +
> +#ifdef AVX512VL
> +  if (!(ebx & bit_AVX512VL))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512ER
> +  if (!(ebx & bit_AVX512ER))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512CD
> +  if (!(ebx & bit_AVX512CD))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512DQ
> +  if (!(ebx & bit_AVX512DQ))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512BW
> +  if (!(ebx & bit_AVX512BW))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512IFMA
> +  if (!(ebx & bit_AVX512IFMA))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512VBMI
> +  if (!(ecx & bit_AVX512VBMI))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX5124FMAPS
> +  if (!(edx & bit_AVX5124FMAPS))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX5124VNNIW
> +  if (!(edx & bit_AVX5124VNNIW))
> +    goto skipped;
> +#endif
> +
> +#ifdef AVX512VPOPCNTDQ
> +  if (!(ecx & bit_AVX512VPOPCNTDQ))
> +    goto skipped;
> +#endif
> +
> +  if (!avx512f_os_support ())
> +    goto skipped;
> +
> +  DO_TEST ();
> +
> +#ifdef DEBUG
> +  printf ("PASSED\n");
> +#endif
> +  return 0;
> +
> +skipped:
> +#ifdef DEBUG
> +  printf ("SKIPPED\n");
> +#endif
> +  return 0;
> +}
> diff --git a/gcc/testsuite/gcc.target/i386/avx5124fmaps-check.h b/gcc/testsuite/gcc.target/i386/avx5124fmaps-check.h
> deleted file mode 100644
> index 13ea70b0a8d..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx5124fmaps-check.h
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx5124fmaps_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx5124fmaps_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512_4FMAPS test only if host has the support.  */
> -  if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE))
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((avx512f_os_support ()) && ((edx & bit_AVX5124FMAPS) == bit_AVX5124FMAPS))
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/avx5124vnniw-check.h b/gcc/testsuite/gcc.target/i386/avx5124vnniw-check.h
> deleted file mode 100644
> index 27d35a57490..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx5124vnniw-check.h
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx5124vnniw_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx5124vnniw_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512_4VNNIW test only if host has the support.  */
> -  if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE))
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((avx512f_os_support ()) && ((edx & bit_AVX5124VNNIW) == bit_AVX5124VNNIW))
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/avx512bw-check.h b/gcc/testsuite/gcc.target/i386/avx512bw-check.h
> index d5288aaabd4..899a006363e 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512bw-check.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512bw-check.h
> @@ -1,47 +1,3 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512bw_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512bw_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512BW test only if host has AVX512BW support.  */
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512BW) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> +#define AVX512BW
> +#define avx512bw_test test_512
> +#include "avx512-check.h"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512cd-check.h b/gcc/testsuite/gcc.target/i386/avx512cd-check.h
> deleted file mode 100644
> index fd0b9eb05d6..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx512cd-check.h
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512cd_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512cd_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512CD) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/avx512dq-check.h b/gcc/testsuite/gcc.target/i386/avx512dq-check.h
> index 7955f48e912..1b728836731 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512dq-check.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512dq-check.h
> @@ -1,47 +1,3 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512dq_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512dq_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512DQ test only if host has AVX512DQ support.  */
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512DQ) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> +#define AVX512DQ
> +#define avx512dq_test test_512
> +#include "avx512-check.h"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512er-check.h b/gcc/testsuite/gcc.target/i386/avx512er-check.h
> index 06fc18a098b..eb44c2f7ade 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512er-check.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512er-check.h
> @@ -1,46 +1,3 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512er_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512er_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512ER) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> +#define AVX512ER
> +#define avx512er_test test_512
> +#include "avx512f-helper.h"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512f-check.h b/gcc/testsuite/gcc.target/i386/avx512f-check.h
> index 811184b2fd7..b3bdd9a05c4 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512f-check.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512f-check.h
> @@ -1,47 +1,2 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512f_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512f_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512F test only if host has AVX512F support.  */
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512F) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> +#define avx512f_test test_512
> +#include "avx512f-helper.h"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512f-helper.h b/gcc/testsuite/gcc.target/i386/avx512f-helper.h
> index ef4661a3453..72982f95aed 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512f-helper.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512f-helper.h
> @@ -8,29 +8,7 @@
>  #ifndef AVX512F_HELPER_INCLUDED
>  #define AVX512F_HELPER_INCLUDED
>
> -#if defined (AVX512F) && !defined (AVX512VL)
> -#include "avx512f-check.h"
> -#elif defined (AVX512ER) && !defined (AVX512VL)
> -#include "avx512er-check.h"
> -#elif defined (AVX512CD) && !defined (AVX512VL)
> -#include "avx512cd-check.h"
> -#elif defined (AVX512DQ) && !defined (AVX512VL)
> -#include "avx512dq-check.h"
> -#elif defined (AVX512BW) && !defined (AVX512VL)
> -#include "avx512bw-check.h"
> -#elif defined (AVX512IFMA) && !defined (AVX512VL)
> -#include "avx512ifma-check.h"
> -#elif defined (AVX512VBMI) && !defined (AVX512VL)
> -#include "avx512vbmi-check.h"
> -#elif defined (AVX5124FMAPS) && !defined (AVX512VL)
> -#include "avx5124fmaps-check.h"
> -#elif defined (AVX5124VNNIW) && !defined (AVX512VL)
> -#include "avx5124vnniw-check.h"
> -#elif defined (AVX512VPOPCNTDQ) && !defined (AVX512VL)
> -#include "avx512vpopcntdq-check.h"
> -#elif defined (AVX512VL)
> -#include "avx512vl-check.h"
> -#endif
> +#include "avx512-check.h"
>
>  /* Macros expansion.  */
>  #define CONCAT(a,b,c) a ## b ## c
> @@ -112,46 +90,6 @@ MAKE_MASK_ZERO(i_uq, unsigned long long)
>  #ifndef AVX512VL
>  #define AVX512F_LEN 512
>  #define AVX512F_LEN_HALF 256
> -void test_512 ();
> -#endif
> -
> -void test_512 ();
> -void test_256 ();
> -void test_128 ();
> -
> -#if defined (AVX512F) && !defined (AVX512VL)
> -void
> -avx512f_test (void) { test_512 (); }
> -#elif defined (AVX512CD) && !defined (AVX512VL)
> -void
> -avx512cd_test (void) { test_512 (); }
> -#elif defined (AVX512ER) && !defined (AVX512VL)
> -void
> -avx512er_test (void) { test_512 (); }
> -#elif defined (AVX512DQ) && !defined (AVX512VL)
> -void
> -avx512dq_test (void) { test_512 (); }
> -#elif defined (AVX512BW) && !defined (AVX512VL)
> -void
> -avx512bw_test (void) { test_512 (); }
> -#elif defined (AVX512IFMA) && !defined (AVX512VL)
> -void
> -avx512ifma_test (void) { test_512 (); }
> -#elif defined (AVX512VBMI) && !defined (AVX512VL)
> -void
> -avx512vbmi_test (void) { test_512 (); }
> -#elif defined (AVX5124FMAPS) && !defined (AVX512VL)
> -void
> -avx5124fmaps_test (void) { test_512 (); }
> -#elif defined (AVX5124VNNIW) && !defined (AVX512VL)
> -void
> -avx5124vnniw_test (void) { test_512 (); }
> -#elif defined (AVX512VPOPCNTDQ) && !defined (AVX512VL)
> -void
> -avx512vpopcntdq_test (void) { test_512 (); }
> -#elif defined (AVX512VL)
> -void
> -avx512vl_test (void) { test_256 (); test_128 (); }
>  #endif
>
>  #endif /* AVX512F_HELPER_INCLUDED */
> diff --git a/gcc/testsuite/gcc.target/i386/avx512f-pr71559.c b/gcc/testsuite/gcc.target/i386/avx512f-pr71559.c
> index d78d86ac2f8..43dc236c410 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512f-pr71559.c
> +++ b/gcc/testsuite/gcc.target/i386/avx512f-pr71559.c
> @@ -3,6 +3,7 @@
>  /* { dg-options "-O2 -ftree-vectorize -mavx512f" } */
>
>  #include "avx512f-check.h"
> +#undef TEST
>  #define PR71559_TEST avx512f_test
>
>  #include "sse2-pr71559.c"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512ifma-check.h b/gcc/testsuite/gcc.target/i386/avx512ifma-check.h
> deleted file mode 100644
> index b90a4d55103..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx512ifma-check.h
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512ifma_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512ifma_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512IFMA) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/avx512vbmi-check.h b/gcc/testsuite/gcc.target/i386/avx512vbmi-check.h
> deleted file mode 100644
> index 2c1f6259401..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx512vbmi-check.h
> +++ /dev/null
> @@ -1,46 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512vbmi_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512vbmi_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ecx & bit_AVX512VBMI) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> diff --git a/gcc/testsuite/gcc.target/i386/avx512vl-check.h b/gcc/testsuite/gcc.target/i386/avx512vl-check.h
> index 29d984d03dd..9d02cc82c46 100644
> --- a/gcc/testsuite/gcc.target/i386/avx512vl-check.h
> +++ b/gcc/testsuite/gcc.target/i386/avx512vl-check.h
> @@ -1,47 +1,4 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512vl_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512vl_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run avx512vl test only if host has avx512vl support.  */
> -  if (ecx & bit_OSXSAVE)
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((ebx & bit_AVX512VL) && avx512f_os_support ())
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> +#define AVX512VL
> +#define DO_TEST avx512vl_test
> +static void DO_TEST (void);
> +#include "avx512-check.h"
> diff --git a/gcc/testsuite/gcc.target/i386/avx512vpopcntdq-check.h b/gcc/testsuite/gcc.target/i386/avx512vpopcntdq-check.h
> deleted file mode 100644
> index 179548bf8cb..00000000000
> --- a/gcc/testsuite/gcc.target/i386/avx512vpopcntdq-check.h
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -#include <stdlib.h>
> -#include "cpuid.h"
> -#include "m512-check.h"
> -#include "avx512f-os-support.h"
> -
> -static void avx512vpopcntdq_test (void);
> -
> -static void __attribute__ ((noinline)) do_test (void)
> -{
> -  avx512vpopcntdq_test ();
> -}
> -
> -int
> -main ()
> -{
> -  unsigned int eax, ebx, ecx, edx;
> -
> -  if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
> -    return 0;
> -
> -  /* Run AVX512_VPOPCNTDQ test only if host has the support.  */
> -  if ((ecx & bit_OSXSAVE) == (bit_OSXSAVE))
> -    {
> -      if (__get_cpuid_max (0, NULL) < 7)
> -       return 0;
> -
> -      __cpuid_count (7, 0, eax, ebx, ecx, edx);
> -
> -      if ((avx512f_os_support ()) && ((ecx & bit_AVX512VPOPCNTDQ) == bit_AVX512VPOPCNTDQ))
> -       {
> -         do_test ();
> -#ifdef DEBUG
> -         printf ("PASSED\n");
> -#endif
> -         return 0;
> -       }
> -#ifdef DEBUG
> -      printf ("SKIPPED\n");
> -#endif
> -    }
> -#ifdef DEBUG
> -  else
> -    printf ("SKIPPED\n");
> -#endif
> -
> -  return 0;
> -}
> --
> 2.13.3
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]