Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-12-07 Thread Hongtao Liu
On Wed, Dec 6, 2023 at 3:52 PM Richard Biener
 wrote:
>
> On Wed, Dec 6, 2023 at 3:33 AM Jiang, Haochen  wrote:
> >
> > > -Original Message-
> > > From: Jiang, Haochen
> > > Sent: Friday, December 1, 2023 4:51 PM
> > > To: Richard Biener 
> > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > ubiz...@gmail.com
> > > Subject: RE: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > >
> > > > -Original Message-
> > > > From: Richard Biener 
> > > > Sent: Friday, December 1, 2023 4:37 PM
> > > > To: Jiang, Haochen 
> > > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > > ubiz...@gmail.com
> > > > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > > >
> > > > On Fri, Dec 1, 2023 at 8:34 AM Jiang, Haochen 
> > > > wrote:
> > > > >
> > > > > > -Original Message-----
> > > > > > From: Richard Biener 
> > > > > > Sent: Friday, December 1, 2023 3:04 PM
> > > > > > To: Jiang, Haochen 
> > > > > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > > > > ubiz...@gmail.com
> > > > > > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > > > > >
> > > > > > On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang
> > > 
> > > > > > wrote:
> > > > > > >
> > > > > > > Since Knight Landing and Knight Mill microarchitectures are EOL, 
> > > > > > > we
> > > > > > > would like to remove its support in GCC 15. In GCC 14, we will 
> > > > > > > first
> > > > > > > emit a warning for the usage.
> > > > > >
> > > > > > I think it's better to keep supporting -mtune/arch=knl without 
> > > > > > diagnostics
> > > > >
> > > > > I see, it could be a choice and might be better. But if we take this, 
> > > > > how
> > > should
> > > > > we define -mtune=knl remains a question.
> > > >
> > > > I'd say mapping it to a "close" micro-architecture makes most sense, but
> > > > we could also simply keep the tuning entry for knl?
> > >
> > > Actually I have written a removal test patch, one of the issue might be 
> > > there is
> > > something specific about knl in tuning for VZEROUPPER, which is also 
> > > reflected
> > > in
> > > PR82990.
> > >
> > > /* X86_TUNE_EMIT_VZEROUPPER: This enables vzeroupper instruction
> > > insertion
> > >before a transfer of control flow out of the function.  */
> > > DEF_TUNE (X86_TUNE_EMIT_VZEROUPPER, "emit_vzeroupper", ~m_KNL)
> > >
> > > If we chose to keep them, this behavior will be changed.
> >
> > Hi Richard,
> >
> > After double thinking, I suppose we still should remove the arch/tune 
> > options
> > here to avoid misleading behavior since there will always something be 
> > changed.
> >
> > What is your concern about removing? Do you have anything that relies on the
> > tune and arch?
>
> We usually promise backwards compatibility with respect to accepted options
> which is why we have things like
>
> ftree-vect-loop-version
> Common Ignore
> Does nothing. Preserved for backward compatibility.
>
> the backend errors on unknown march/tune and that would be a regression
> for build systems using that (even if that's indeed very unlikely).  That's 
> why
> I suggested to make it still do something (doing "nothing", aka keeping 
> generic
> is probably worse than dropping).  I guess having -march=knl behave 
> differently
> is also bad so I guess there's not a good solution for that.
To avoid confusion,  I prefer to remove all of them.
>
> So - just to have made the above point, I'm fine with what x86 maintainers
> decide here.
>
> Richard.
>
> > Thx,
> > Haochen
> >
> > >
> > > >
> > > > > > but simply not enable the ISAs we don't support.  The better 
> > > > > > question is
> > > > > > what to do about KNL specific intrinsics headers / intrinsics?  
> > > > > > Will we
> > > > > > simply remove those?
> > > > >
> > > > > If there is no objection, The intrinsics are planned to be removed in 
> &g

Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-12-05 Thread Richard Biener
On Wed, Dec 6, 2023 at 3:33 AM Jiang, Haochen  wrote:
>
> > -Original Message-
> > From: Jiang, Haochen
> > Sent: Friday, December 1, 2023 4:51 PM
> > To: Richard Biener 
> > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > ubiz...@gmail.com
> > Subject: RE: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> >
> > > -Original Message-
> > > From: Richard Biener 
> > > Sent: Friday, December 1, 2023 4:37 PM
> > > To: Jiang, Haochen 
> > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > ubiz...@gmail.com
> > > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > >
> > > On Fri, Dec 1, 2023 at 8:34 AM Jiang, Haochen 
> > > wrote:
> > > >
> > > > > -Original Message-
> > > > > From: Richard Biener 
> > > > > Sent: Friday, December 1, 2023 3:04 PM
> > > > > To: Jiang, Haochen 
> > > > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > > > ubiz...@gmail.com
> > > > > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > > > >
> > > > > On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang
> > 
> > > > > wrote:
> > > > > >
> > > > > > Since Knight Landing and Knight Mill microarchitectures are EOL, we
> > > > > > would like to remove its support in GCC 15. In GCC 14, we will first
> > > > > > emit a warning for the usage.
> > > > >
> > > > > I think it's better to keep supporting -mtune/arch=knl without 
> > > > > diagnostics
> > > >
> > > > I see, it could be a choice and might be better. But if we take this, 
> > > > how
> > should
> > > > we define -mtune=knl remains a question.
> > >
> > > I'd say mapping it to a "close" micro-architecture makes most sense, but
> > > we could also simply keep the tuning entry for knl?
> >
> > Actually I have written a removal test patch, one of the issue might be 
> > there is
> > something specific about knl in tuning for VZEROUPPER, which is also 
> > reflected
> > in
> > PR82990.
> >
> > /* X86_TUNE_EMIT_VZEROUPPER: This enables vzeroupper instruction
> > insertion
> >before a transfer of control flow out of the function.  */
> > DEF_TUNE (X86_TUNE_EMIT_VZEROUPPER, "emit_vzeroupper", ~m_KNL)
> >
> > If we chose to keep them, this behavior will be changed.
>
> Hi Richard,
>
> After double thinking, I suppose we still should remove the arch/tune options
> here to avoid misleading behavior since there will always something be 
> changed.
>
> What is your concern about removing? Do you have anything that relies on the
> tune and arch?

We usually promise backwards compatibility with respect to accepted options
which is why we have things like

ftree-vect-loop-version
Common Ignore
Does nothing. Preserved for backward compatibility.

the backend errors on unknown march/tune and that would be a regression
for build systems using that (even if that's indeed very unlikely).  That's why
I suggested to make it still do something (doing "nothing", aka keeping generic
is probably worse than dropping).  I guess having -march=knl behave differently
is also bad so I guess there's not a good solution for that.

So - just to have made the above point, I'm fine with what x86 maintainers
decide here.

Richard.

> Thx,
> Haochen
>
> >
> > >
> > > > > but simply not enable the ISAs we don't support.  The better question 
> > > > > is
> > > > > what to do about KNL specific intrinsics headers / intrinsics?  Will 
> > > > > we
> > > > > simply remove those?
> > > >
> > > > If there is no objection, The intrinsics are planned to be removed in 
> > > > GCC 15.
> > > > As far as concerned, almost nobody are using them with the latest GCC.
> > And
> > > > there is no complaint when removing them in ICC/ICX.
> > >
> > > I see.  Replacing the header contents with #error "XYZ is no longer
> > supported"
> > > might be nicer.  OTOH x86intrin.h should simply no longer include them.
> >
> > That is nicer. I will take that in GCC 15 patch.
> >
> > Thx,
> > Haochen
> >
> > >
> > > Richard.
> > >
> > > > Thx,
> > > > Haochen
> > > >
> > > > >
> > > > > Ric

RE: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-12-01 Thread Jiang, Haochen
> -Original Message-
> From: Richard Biener 
> Sent: Friday, December 1, 2023 4:37 PM
> To: Jiang, Haochen 
> Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> ubiz...@gmail.com
> Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> 
> On Fri, Dec 1, 2023 at 8:34 AM Jiang, Haochen 
> wrote:
> >
> > > -Original Message-
> > > From: Richard Biener 
> > > Sent: Friday, December 1, 2023 3:04 PM
> > > To: Jiang, Haochen 
> > > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > > ubiz...@gmail.com
> > > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> > >
> > > On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang 
> > > wrote:
> > > >
> > > > Since Knight Landing and Knight Mill microarchitectures are EOL, we
> > > > would like to remove its support in GCC 15. In GCC 14, we will first
> > > > emit a warning for the usage.
> > >
> > > I think it's better to keep supporting -mtune/arch=knl without diagnostics
> >
> > I see, it could be a choice and might be better. But if we take this, how 
> > should
> > we define -mtune=knl remains a question.
> 
> I'd say mapping it to a "close" micro-architecture makes most sense, but
> we could also simply keep the tuning entry for knl?

Actually I have written a removal test patch, one of the issue might be there is
something specific about knl in tuning for VZEROUPPER, which is also reflected 
in
PR82990.

/* X86_TUNE_EMIT_VZEROUPPER: This enables vzeroupper instruction insertion
   before a transfer of control flow out of the function.  */
DEF_TUNE (X86_TUNE_EMIT_VZEROUPPER, "emit_vzeroupper", ~m_KNL)

If we chose to keep them, this behavior will be changed.

> 
> > > but simply not enable the ISAs we don't support.  The better question is
> > > what to do about KNL specific intrinsics headers / intrinsics?  Will we
> > > simply remove those?
> >
> > If there is no objection, The intrinsics are planned to be removed in GCC 
> > 15.
> > As far as concerned, almost nobody are using them with the latest GCC. And
> > there is no complaint when removing them in ICC/ICX.
> 
> I see.  Replacing the header contents with #error "XYZ is no longer supported"
> might be nicer.  OTOH x86intrin.h should simply no longer include them.

That is nicer. I will take that in GCC 15 patch.

Thx,
Haochen

> 
> Richard.
> 
> > Thx,
> > Haochen
> >
> > >
> > > Richard.
> > >
> > > > gcc/ChangeLog:
> > > >
> > > > * config/i386/driver-i386.cc (host_detect_local_cpu):
> > > > Do not append "-mno-" for Xeon Phi ISAs.
> > > > * config/i386/i386-options.cc (ix86_option_override_internal):
> > > > Emit a warning for KNL/KNM targets.
> > > > * config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.
> > > >
> > > > gcc/testsuite/ChangeLog:
> > > >
> > > > * g++.dg/other/i386-2.C: Adjust testcases.
> > > > * g++.dg/other/i386-3.C: Ditto.
> > > > * g++.dg/pr80481.C: Ditto.
> > > > * gcc.dg/pr71279.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
> > > > * gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
> > > > * gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
> > > > * gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
> > > > * gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
> > > > * gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
> > > > * gcc.target/i386/avx512er-vexp2pd-1.c: Ditto.
> > > > * gcc.target/i386/avx512er-vexp2pd-2.c: Ditto.
> > > > * gcc.target/i386/avx512er-vexp2ps-1.c: Ditto.
> > > > * gcc.target/i386/avx512er-vexp2ps-2.c: Ditto.
> > > > * gcc.target/i386/avx512er-vrcp28pd-1.c: Ditto.
> > > > * gcc.target/i386/avx512er-vrcp28pd-2.c: Ditto.
> > > > * gcc.target/i386/avx512er-vrcp28ps-1.c: Ditto.
> > > > * gcc.target/i386/avx512er-vrcp28ps-2.c: Ditto.
> > > > * gcc.target/i386/avx5

Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-12-01 Thread Richard Biener
On Fri, Dec 1, 2023 at 8:34 AM Jiang, Haochen  wrote:
>
> > -Original Message-
> > From: Richard Biener 
> > Sent: Friday, December 1, 2023 3:04 PM
> > To: Jiang, Haochen 
> > Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> > ubiz...@gmail.com
> > Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> >
> > On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang 
> > wrote:
> > >
> > > Since Knight Landing and Knight Mill microarchitectures are EOL, we
> > > would like to remove its support in GCC 15. In GCC 14, we will first
> > > emit a warning for the usage.
> >
> > I think it's better to keep supporting -mtune/arch=knl without diagnostics
>
> I see, it could be a choice and might be better. But if we take this, how 
> should
> we define -mtune=knl remains a question.

I'd say mapping it to a "close" micro-architecture makes most sense, but
we could also simply keep the tuning entry for knl?

> > but simply not enable the ISAs we don't support.  The better question is
> > what to do about KNL specific intrinsics headers / intrinsics?  Will we
> > simply remove those?
>
> If there is no objection, The intrinsics are planned to be removed in GCC 15.
> As far as concerned, almost nobody are using them with the latest GCC. And
> there is no complaint when removing them in ICC/ICX.

I see.  Replacing the header contents with #error "XYZ is no longer supported"
might be nicer.  OTOH x86intrin.h should simply no longer include them.

Richard.

> Thx,
> Haochen
>
> >
> > Richard.
> >
> > > gcc/ChangeLog:
> > >
> > > * config/i386/driver-i386.cc (host_detect_local_cpu):
> > > Do not append "-mno-" for Xeon Phi ISAs.
> > > * config/i386/i386-options.cc (ix86_option_override_internal):
> > > Emit a warning for KNL/KNM targets.
> > > * config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.
> > >
> > > gcc/testsuite/ChangeLog:
> > >
> > > * g++.dg/other/i386-2.C: Adjust testcases.
> > > * g++.dg/other/i386-3.C: Ditto.
> > > * g++.dg/pr80481.C: Ditto.
> > > * gcc.dg/pr71279.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
> > > * gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
> > > * gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
> > > * gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
> > > * gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
> > > * gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vexp2pd-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vexp2pd-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vexp2ps-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vexp2ps-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28pd-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28pd-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ps-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ps-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ps-3.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ps-4.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28sd-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28sd-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ss-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrcp28ss-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28pd-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28pd-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-3.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-4.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-5.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ps-6.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28sd-1.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28sd-2.c: Ditto.
> > > * gcc.target/i386/avx512er-vrsqrt28ss-1.c: Ditto

RE: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-11-30 Thread Jiang, Haochen
> -Original Message-
> From: Richard Biener 
> Sent: Friday, December 1, 2023 3:04 PM
> To: Jiang, Haochen 
> Cc: gcc-patches@gcc.gnu.org; Liu, Hongtao ;
> ubiz...@gmail.com
> Subject: Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated
> 
> On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang 
> wrote:
> >
> > Since Knight Landing and Knight Mill microarchitectures are EOL, we
> > would like to remove its support in GCC 15. In GCC 14, we will first
> > emit a warning for the usage.
> 
> I think it's better to keep supporting -mtune/arch=knl without diagnostics

I see, it could be a choice and might be better. But if we take this, how should
we define -mtune=knl remains a question.

> but simply not enable the ISAs we don't support.  The better question is
> what to do about KNL specific intrinsics headers / intrinsics?  Will we
> simply remove those?

If there is no objection, The intrinsics are planned to be removed in GCC 15.
As far as concerned, almost nobody are using them with the latest GCC. And
there is no complaint when removing them in ICC/ICX.

Thx,
Haochen

> 
> Richard.
> 
> > gcc/ChangeLog:
> >
> > * config/i386/driver-i386.cc (host_detect_local_cpu):
> > Do not append "-mno-" for Xeon Phi ISAs.
> > * config/i386/i386-options.cc (ix86_option_override_internal):
> > Emit a warning for KNL/KNM targets.
> > * config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.
> >
> > gcc/testsuite/ChangeLog:
> >
> > * g++.dg/other/i386-2.C: Adjust testcases.
> > * g++.dg/other/i386-3.C: Ditto.
> > * g++.dg/pr80481.C: Ditto.
> > * gcc.dg/pr71279.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
> > * gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
> > * gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
> > * gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
> > * gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
> > * gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
> > * gcc.target/i386/avx512er-vexp2pd-1.c: Ditto.
> > * gcc.target/i386/avx512er-vexp2pd-2.c: Ditto.
> > * gcc.target/i386/avx512er-vexp2ps-1.c: Ditto.
> > * gcc.target/i386/avx512er-vexp2ps-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28pd-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28pd-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ps-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ps-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ps-3.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ps-4.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28sd-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28sd-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ss-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrcp28ss-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28pd-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28pd-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-3.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-4.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-5.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ps-6.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28sd-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28sd-2.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ss-1.c: Ditto.
> > * gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto.
> > * gcc.target/i386/avx512f-gather-1.c: Ditto.
> > * gcc.target/i386/avx512f-gather-2.c: Ditto.
> > * gcc.target/i386/avx512f-gather-3.c: Ditto.
> > * gcc.target/i386/avx512f-gather-4.c: Ditto.
> > * gcc.target/i386/avx512f-gather-5.c: Ditto.
> > * gcc.target/i386/avx512f-i32gatherd512-1.c: Ditto.
> > * gcc.target/i386/avx512f-i32gatherd512-2.c: Ditto.
> > * gcc.target/i386/avx512f-i32gatherpd512-1.c: Ditto.
> > * gcc.target/i386/avx512f-i32gatherpd512-2.c: Ditto.
> > * gcc.target/i386/avx512f-i32gatherps512-1.c: Ditto.
> > * gcc.target/i386/avx512f

Re: [PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-11-30 Thread Richard Biener
On Fri, Dec 1, 2023 at 3:22 AM Haochen Jiang  wrote:
>
> Since Knight Landing and Knight Mill microarchitectures are EOL, we
> would like to remove its support in GCC 15. In GCC 14, we will first
> emit a warning for the usage.

I think it's better to keep supporting -mtune/arch=knl without diagnostics
but simply not enable the ISAs we don't support.  The better question is
what to do about KNL specific intrinsics headers / intrinsics?  Will we
simply remove those?

Richard.

> gcc/ChangeLog:
>
> * config/i386/driver-i386.cc (host_detect_local_cpu):
> Do not append "-mno-" for Xeon Phi ISAs.
> * config/i386/i386-options.cc (ix86_option_override_internal):
> Emit a warning for KNL/KNM targets.
> * config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.
>
> gcc/testsuite/ChangeLog:
>
> * g++.dg/other/i386-2.C: Adjust testcases.
> * g++.dg/other/i386-3.C: Ditto.
> * g++.dg/pr80481.C: Ditto.
> * gcc.dg/pr71279.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
> * gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
> * gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
> * gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
> * gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
> * gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
> * gcc.target/i386/avx512er-vexp2pd-1.c: Ditto.
> * gcc.target/i386/avx512er-vexp2pd-2.c: Ditto.
> * gcc.target/i386/avx512er-vexp2ps-1.c: Ditto.
> * gcc.target/i386/avx512er-vexp2ps-2.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28pd-1.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28pd-2.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ps-1.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ps-2.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ps-3.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ps-4.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28sd-1.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28sd-2.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ss-1.c: Ditto.
> * gcc.target/i386/avx512er-vrcp28ss-2.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28pd-1.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28pd-2.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-1.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-2.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-3.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-4.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-5.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ps-6.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28sd-1.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28sd-2.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ss-1.c: Ditto.
> * gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto.
> * gcc.target/i386/avx512f-gather-1.c: Ditto.
> * gcc.target/i386/avx512f-gather-2.c: Ditto.
> * gcc.target/i386/avx512f-gather-3.c: Ditto.
> * gcc.target/i386/avx512f-gather-4.c: Ditto.
> * gcc.target/i386/avx512f-gather-5.c: Ditto.
> * gcc.target/i386/avx512f-i32gatherd512-1.c: Ditto.
> * gcc.target/i386/avx512f-i32gatherd512-2.c: Ditto.
> * gcc.target/i386/avx512f-i32gatherpd512-1.c: Ditto.
> * gcc.target/i386/avx512f-i32gatherpd512-2.c: Ditto.
> * gcc.target/i386/avx512f-i32gatherps512-1.c: Ditto.
> * gcc.target/i386/avx512f-vect-perm-1.c: Ditto.
> * gcc.target/i386/avx512f-vect-perm-2.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf0dpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf0dps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf0qpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf0qps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf1dpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf1dps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf1qpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vgatherpf1qps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Ditto.
> * gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Ditto.
> * gcc.target/i386/funcspec-56.inc: Ditto.
> * gcc.target/i386/pr101395-2.c: Ditto.
> * g

[PATCH] i386: Mark Xeon Phi ISAs as deprecated

2023-11-30 Thread Haochen Jiang
Since Knight Landing and Knight Mill microarchitectures are EOL, we
would like to remove its support in GCC 15. In GCC 14, we will first
emit a warning for the usage.

gcc/ChangeLog:

* config/i386/driver-i386.cc (host_detect_local_cpu):
Do not append "-mno-" for Xeon Phi ISAs.
* config/i386/i386-options.cc (ix86_option_override_internal):
Emit a warning for KNL/KNM targets.
* config/i386/i386.opt: Emit a warning for Xeon Phi ISAs.

gcc/testsuite/ChangeLog:

* g++.dg/other/i386-2.C: Adjust testcases.
* g++.dg/other/i386-3.C: Ditto.
* g++.dg/pr80481.C: Ditto.
* gcc.dg/pr71279.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
* gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
* gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
* gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
* gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
* gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
* gcc.target/i386/avx512er-vexp2pd-1.c: Ditto.
* gcc.target/i386/avx512er-vexp2pd-2.c: Ditto.
* gcc.target/i386/avx512er-vexp2ps-1.c: Ditto.
* gcc.target/i386/avx512er-vexp2ps-2.c: Ditto.
* gcc.target/i386/avx512er-vrcp28pd-1.c: Ditto.
* gcc.target/i386/avx512er-vrcp28pd-2.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ps-1.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ps-2.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ps-3.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ps-4.c: Ditto.
* gcc.target/i386/avx512er-vrcp28sd-1.c: Ditto.
* gcc.target/i386/avx512er-vrcp28sd-2.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ss-1.c: Ditto.
* gcc.target/i386/avx512er-vrcp28ss-2.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28pd-1.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28pd-2.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-1.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-2.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-3.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-4.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-5.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ps-6.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28sd-1.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28sd-2.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ss-1.c: Ditto.
* gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto.
* gcc.target/i386/avx512f-gather-1.c: Ditto.
* gcc.target/i386/avx512f-gather-2.c: Ditto.
* gcc.target/i386/avx512f-gather-3.c: Ditto.
* gcc.target/i386/avx512f-gather-4.c: Ditto.
* gcc.target/i386/avx512f-gather-5.c: Ditto.
* gcc.target/i386/avx512f-i32gatherd512-1.c: Ditto.
* gcc.target/i386/avx512f-i32gatherd512-2.c: Ditto.
* gcc.target/i386/avx512f-i32gatherpd512-1.c: Ditto.
* gcc.target/i386/avx512f-i32gatherpd512-2.c: Ditto.
* gcc.target/i386/avx512f-i32gatherps512-1.c: Ditto.
* gcc.target/i386/avx512f-vect-perm-1.c: Ditto.
* gcc.target/i386/avx512f-vect-perm-2.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf0dpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf0dps-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf0qpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf0qps-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf1dpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf1dps-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf1qpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vgatherpf1qps-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf0dpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf0dps-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf0qpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf0qps-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf1dpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf1dps-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf1qpd-1.c: Ditto.
* gcc.target/i386/avx512pf-vscatterpf1qps-1.c: Ditto.
* gcc.target/i386/funcspec-56.inc: Ditto.
* gcc.target/i386/pr101395-2.c: Ditto.
* gcc.target/i386/pr101395-3.c: Ditto.
* gcc.target/i386/pr103404.c: Ditto.
* gcc.target/i386/pr104448.c: Ditto.
* gcc.target/i386/pr107934.c: Ditto.
* gcc.target/i386/pr57275.c: Ditto.
* gcc.target/i386/pr64387.c: Ditto.
* gcc.target/i386/pr70728.c: Ditto.
* gcc.target/i386/pr71346.c: Ditto.
* gcc.target/i386/pr82941-2.c: Ditto.
* gcc.target/i386/pr82942-1.c: Ditto.
* gcc.target/i386/pr82942