x86: Require AVX for F16C and VAES

Message ID YqONLwdJ0Eo68NlW@gmail.com
State Committed
Commit 751f306688508b08842d0ab967dee8e6c3b91351
Headers
Series x86: Require AVX for F16C and VAES |

Commit Message

H.J. Lu June 10, 2022, 6:27 p.m. UTC
  Since F16C and VAES are only usable with AVX, require AVX for F16C and
VAES.

OK for master and release branches?

Thanks.

H.J.
---
	libgcc/105920
	* common/config/i386/cpuinfo.h (get_available_features): Require
	AVX for F16C and VAES.
---
 gcc/common/config/i386/cpuinfo.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Uros Bizjak June 11, 2022, 7:24 p.m. UTC | #1
On Fri, Jun 10, 2022 at 8:28 PM H.J. Lu <hjl.tools@gmail.com> wrote:
>
> Since F16C and VAES are only usable with AVX, require AVX for F16C and
> VAES.
>
> OK for master and release branches?
>
> Thanks.
>
> H.J.
> ---
>         libgcc/105920
>         * common/config/i386/cpuinfo.h (get_available_features): Require
>         AVX for F16C and VAES.

OK.

Thanks,
Uros.

> ---
>  gcc/common/config/i386/cpuinfo.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
> index adc02bc3d98..bbced8a23b9 100644
> --- a/gcc/common/config/i386/cpuinfo.h
> +++ b/gcc/common/config/i386/cpuinfo.h
> @@ -651,8 +651,6 @@ get_available_features (struct __processor_model *cpu_model,
>      set_feature (FEATURE_MOVBE);
>    if (ecx & bit_AES)
>      set_feature (FEATURE_AES);
> -  if (ecx & bit_F16C)
> -    set_feature (FEATURE_F16C);
>    if (ecx & bit_RDRND)
>      set_feature (FEATURE_RDRND);
>    if (ecx & bit_XSAVE)
> @@ -663,6 +661,8 @@ get_available_features (struct __processor_model *cpu_model,
>         set_feature (FEATURE_AVX);
>        if (ecx & bit_FMA)
>         set_feature (FEATURE_FMA);
> +      if (ecx & bit_F16C)
> +       set_feature (FEATURE_F16C);
>      }
>
>    /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
> @@ -683,6 +683,8 @@ get_available_features (struct __processor_model *cpu_model,
>             set_feature (FEATURE_AVX2);
>           if (ecx & bit_VPCLMULQDQ)
>             set_feature (FEATURE_VPCLMULQDQ);
> +         if (ecx & bit_VAES)
> +           set_feature (FEATURE_VAES);
>         }
>        if (ebx & bit_BMI2)
>         set_feature (FEATURE_BMI2);
> @@ -705,8 +707,6 @@ get_available_features (struct __processor_model *cpu_model,
>         set_feature (FEATURE_PKU);
>        if (ecx & bit_RDPID)
>         set_feature (FEATURE_RDPID);
> -      if (ecx & bit_VAES)
> -       set_feature (FEATURE_VAES);
>        if (ecx & bit_GFNI)
>         set_feature (FEATURE_GFNI);
>        if (ecx & bit_MOVDIRI)
> --
> 2.36.1
>
  

Patch

diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index adc02bc3d98..bbced8a23b9 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -651,8 +651,6 @@  get_available_features (struct __processor_model *cpu_model,
     set_feature (FEATURE_MOVBE);
   if (ecx & bit_AES)
     set_feature (FEATURE_AES);
-  if (ecx & bit_F16C)
-    set_feature (FEATURE_F16C);
   if (ecx & bit_RDRND)
     set_feature (FEATURE_RDRND);
   if (ecx & bit_XSAVE)
@@ -663,6 +661,8 @@  get_available_features (struct __processor_model *cpu_model,
 	set_feature (FEATURE_AVX);
       if (ecx & bit_FMA)
 	set_feature (FEATURE_FMA);
+      if (ecx & bit_F16C)
+	set_feature (FEATURE_F16C);
     }
 
   /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */
@@ -683,6 +683,8 @@  get_available_features (struct __processor_model *cpu_model,
 	    set_feature (FEATURE_AVX2);
 	  if (ecx & bit_VPCLMULQDQ)
 	    set_feature (FEATURE_VPCLMULQDQ);
+	  if (ecx & bit_VAES)
+	    set_feature (FEATURE_VAES);
 	}
       if (ebx & bit_BMI2)
 	set_feature (FEATURE_BMI2);
@@ -705,8 +707,6 @@  get_available_features (struct __processor_model *cpu_model,
 	set_feature (FEATURE_PKU);
       if (ecx & bit_RDPID)
 	set_feature (FEATURE_RDPID);
-      if (ecx & bit_VAES)
-	set_feature (FEATURE_VAES);
       if (ecx & bit_GFNI)
 	set_feature (FEATURE_GFNI);
       if (ecx & bit_MOVDIRI)