> -----Original Message----- > From: Xi Ruoyao <xry...@xry111.site> > Sent: Thursday, August 10, 2023 9:48 AM > To: Liu, Hongtao <hongtao....@intel.com>; gcc-patches@gcc.gnu.org > Cc: richard.guent...@gmail.com; ubiz...@gmail.com; hubi...@ucw.cz > Subject: Re: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable > vectorization for all gather/scatter instructions. > > On Thu, 2023-08-10 at 09:11 +0800, liuhongt via Gcc-patches wrote: > > Currently we have 3 different independent tunes for gather > > "use_gather,use_gather_2parts,use_gather_4parts", > > similar for scatter, there're > > "use_scatter,use_scatter_2parts,use_scatter_4parts" > > > > The patch support 2 standardizing options to enable/disable > > vectorization for all gather/scatter instructions. The options is > > interpreted by driver to 3 tunes. > > > > bootstrapped and regtested on x86_64-pc-linux-gnu. > > Ok for trunk? > > And should we set -mno-gather as the default for GDS affected processors? > We'll likely apply the ucode update for them, and then the gathering > instructions will be much slower. Assume you're talking about https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/advisory-guidance/gather-data-sampling.html Yes, there will be an separate patch for microarchitecture tuning. > > > gcc/ChangeLog: > > > > * config/i386/i386.h (DRIVER_SELF_SPECS): Add > > GATHER_SCATTER_DRIVER_SELF_SPECS. > > (GATHER_SCATTER_DRIVER_SELF_SPECS): New macro. > > * config/i386/i386.opt (mgather): New option. > > (mscatter): Ditto. > > --- > > gcc/config/i386/i386.h | 12 +++++++++++- > > gcc/config/i386/i386.opt | 8 ++++++++ > > 2 files changed, 19 insertions(+), 1 deletion(-) > > > > diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index > > ef342fcee9b..d9ac2c29bde 100644 > > --- a/gcc/config/i386/i386.h > > +++ b/gcc/config/i386/i386.h > > @@ -565,7 +565,17 @@ extern GTY(()) tree x86_mfence; > > # define SUBTARGET_DRIVER_SELF_SPECS "" > > #endif > > > > -#define DRIVER_SELF_SPECS SUBTARGET_DRIVER_SELF_SPECS > > +#ifndef GATHER_SCATTER_DRIVER_SELF_SPECS # define > > +GATHER_SCATTER_DRIVER_SELF_SPECS \ > > + "%{mno-gather:-mtune- > > ctrl=^use_gather_2parts,^use_gather_4parts,^use_gather} \ > > + %{mgather:-mtune- > > ctrl=use_gather_2parts,use_gather_4parts,use_gather} \ > > + %{mno-scatter:-mtune- > > ctrl=^use_scatter_2parts,^use_scatter_4parts,^use_scatter} \ > > + %{mscatter:-mtune- > > ctrl=use_scatter_2parts,use_scatter_4parts,use_scatter}" > > +#endif > > + > > +#define DRIVER_SELF_SPECS \ > > + SUBTARGET_DRIVER_SELF_SPECS " " \ > > + GATHER_SCATTER_DRIVER_SELF_SPECS > > > > /* -march=native handling only makes sense with compiler running on > > an x86 or x86_64 chip. If changing this condition, also change > > diff --git a/gcc/config/i386/i386.opt b/gcc/config/i386/i386.opt index > > ddb7f110aa2..99948644a8d 100644 > > --- a/gcc/config/i386/i386.opt > > +++ b/gcc/config/i386/i386.opt > > @@ -424,6 +424,14 @@ mdaz-ftz > > Target > > Set the FTZ and DAZ Flags. > > > > +mgather > > +Target > > +Enable vectorization for gather instruction. > > + > > +mscatter > > +Target > > +Enable vectorization for scatter instruction. > > + > > mpreferred-stack-boundary= > > Target RejectNegative Joined UInteger > > Var(ix86_preferred_stack_boundary_arg) > > Attempt to keep stack aligned to this power of 2. > > -- > Xi Ruoyao <xry...@xry111.site> > School of Aerospace Science and Technology, Xidian University
RE: [PATCH] Support -m[no-]gather -m[no-]scatter to enable/disable vectorization for all gather/scatter instructions.
Liu, Hongtao via Gcc-patches Wed, 09 Aug 2023 18:52:40 -0700
- [PATCH] Support -m[no-]gather -m[no-]scatte... liuhongt via Gcc-patches
- Re: [PATCH] Support -m[no-]gather -m[n... Xi Ruoyao via Gcc-patches
- RE: [PATCH] Support -m[no-]gather ... Liu, Hongtao via Gcc-patches
- Re: [PATCH] Support -m[no-]gather -m[n... Uros Bizjak via Gcc-patches
- Re: [PATCH] Support -m[no-]gather ... Hongtao Liu via Gcc-patches
- Re: [PATCH] Support -m[no-]gather -m[n... Richard Biener via Gcc-patches
- Re: [PATCH] Support -m[no-]gather ... Uros Bizjak via Gcc-patches
- Re: [PATCH] Support -m[no-]gat... Richard Biener via Gcc-patches
- Re: [PATCH] Support -m[no-... Hongtao Liu via Gcc-patches
- Re: [PATCH] Support -... Hongtao Liu via Gcc-patches
- Re: [PATCH] Suppo... Hongtao Liu via Gcc-patches
- Re: [PATCH] S... Richard Biener via Gcc-patches
- Re: [PATCH] S... Hongtao Liu via Gcc-patches