https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119617

--- Comment #10 from Haochen Jiang <haochen.jiang at intel dot com> ---
(In reply to Haochen Jiang from comment #9)
> Proposed change:
> 
> diff --git a/gcc/config/i386/i386-options.cc
> b/gcc/config/i386/i386-options.cc
> index a9fac011f3d..789c1f1ae54 100644
> --- a/gcc/config/i386/i386-options.cc
> +++ b/gcc/config/i386/i386-options.cc
> @@ -2775,6 +2775,12 @@ ix86_option_override_internal (bool main_args_p,
>        opts->x_ix86_isa_flags2 |= avx512_isa_flags2;
>      }
> 
> +  /* Reject -mno-evex512 if AVX512VL is not enabled.  */
> +  if (!TARGET_EVEX512_P (opts->x_ix86_isa_flags2)
> +      && (OPTION_MASK_ISA2_EVEX512 & opts->x_ix86_isa_flags2_explicit)
> +      && !TARGET_AVX512VL_P (opts->x_ix86_isa_flags))
> +    error ("%<-mno-evex512%> could not be used if AVX512VL is not enabled");
> +
>    /* Validate -mpreferred-stack-boundary= value or default it to
>       PREFERRED_STACK_BOUNDARY_DEFAULT.  */
>    ix86_preferred_stack_boundary = PREFERRED_STACK_BOUNDARY_DEFAULT;

I forgot that we have something like this in intrin file:

#if !defined (__AVX512F__) || defined (__EVEX512__)
#pragma GCC push_options
#pragma GCC target("avx512f,no-evex512")
#define __DISABLE_AVX512F__
#endif /* __AVX512F__ */

Thus, we could not reject no-evex512. Maybe a simple workaround under
standard_sse_constant_opcode is a better temporary way for both GCC 14 and GCC
15.

Reply via email to