diff options
author | Haochen Jiang <haochen.jiang@intel.com> | 2023-10-09 16:09:23 +0800 |
---|---|---|
committer | Haochen Jiang <haochen.jiang@intel.com> | 2023-10-09 17:01:55 +0800 |
commit | 6882df700cebf5a2292566c5acb2480f7dafd116 (patch) | |
tree | 1a80f8763d895422150707b13301e878f9a96af1 /gcc/common | |
parent | 873586ebc565b6c8abbaaba58b900dbe984bf64f (diff) | |
download | gcc-6882df700cebf5a2292566c5acb2480f7dafd116.zip gcc-6882df700cebf5a2292566c5acb2480f7dafd116.tar.gz gcc-6882df700cebf5a2292566c5acb2480f7dafd116.tar.bz2 |
Initial support for -mevex512
gcc/ChangeLog:
* common/config/i386/i386-common.cc
(OPTION_MASK_ISA2_EVEX512_SET): New.
(OPTION_MASK_ISA2_EVEX512_UNSET): Ditto.
(ix86_handle_option): Handle EVEX512.
* config/i386/i386-c.cc
(ix86_target_macros_internal): Handle EVEX512. Add __EVEX256__
when AVX512VL is set.
* config/i386/i386-options.cc: (isa2_opts): Handle EVEX512.
(ix86_valid_target_attribute_inner_p): Ditto.
(ix86_option_override_internal): Set EVEX512 target if it is not
explicitly set when AVX512 is enabled. Disable
AVX512{PF,ER,4VNNIW,4FAMPS} for -mno-evex512.
* config/i386/i386.opt: Add mevex512. Temporaily RejectNegative.
Diffstat (limited to 'gcc/common')
-rw-r--r-- | gcc/common/config/i386/i386-common.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc index 86596e9..684b045 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -124,6 +124,7 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA2_SHA512_SET OPTION_MASK_ISA2_SHA512 #define OPTION_MASK_ISA2_SM4_SET OPTION_MASK_ISA2_SM4 #define OPTION_MASK_ISA2_APX_F_SET OPTION_MASK_ISA2_APX_F +#define OPTION_MASK_ISA2_EVEX512_SET OPTION_MASK_ISA2_EVEX512 /* SSE4 includes both SSE4.1 and SSE4.2. -msse4 should be the same as -msse4.2. */ @@ -311,6 +312,7 @@ along with GCC; see the file COPYING3. If not see #define OPTION_MASK_ISA2_SHA512_UNSET OPTION_MASK_ISA2_SHA512 #define OPTION_MASK_ISA2_SM4_UNSET OPTION_MASK_ISA2_SM4 #define OPTION_MASK_ISA2_APX_F_UNSET OPTION_MASK_ISA2_APX_F +#define OPTION_MASK_ISA2_EVEX512_UNSET OPTION_MASK_ISA2_EVEX512 /* SSE4 includes both SSE4.1 and SSE4.2. -mno-sse4 should the same as -mno-sse4.1. */ @@ -1358,6 +1360,19 @@ ix86_handle_option (struct gcc_options *opts, } return true; + case OPT_mevex512: + if (value) + { + opts->x_ix86_isa_flags2 |= OPTION_MASK_ISA2_EVEX512_SET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_EVEX512_SET; + } + else + { + opts->x_ix86_isa_flags2 &= ~OPTION_MASK_ISA2_EVEX512_UNSET; + opts->x_ix86_isa_flags2_explicit |= OPTION_MASK_ISA2_EVEX512_UNSET; + } + return true; + case OPT_mfma: if (value) { |