On Mon, Oct 15, 2018 at 4:50 PM Jakub Jelinek <ja...@redhat.com> wrote:
>
> On Mon, Oct 15, 2018 at 04:22:04PM +0200, Richard Biener wrote:
> > On Sun, Oct 14, 2018 at 9:29 PM Uros Bizjak <ubiz...@gmail.com> wrote:
> > >
> > > On Sat, Oct 13, 2018 at 11:54 PM H.J. Lu <hjl.to...@gmail.com> wrote:
> > > >
> > > > Also disable AVX512IFMA, AVX5124FMAPS and AVX5124VNNIW when disabling
> > > > AVX512F.
> > > >
> > > > gcc/
> > > >
> > > >         PR target/87572
> > > >         * common/config/i386/i386-common.c 
> > > > (OPTION_MASK_ISA_AVX512F_UNSET):
> > > >         Add OPTION_MASK_ISA_AVX512IFMA_UNSET,
> > > >         OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
> > > >         OPTION_MASK_ISA_AVX5124VNNIW_UNSET.
> > > >
> > > > gcc/testsuite/
> > > >
> > > >         PR target/87572
> > > >         * gcc.target/i386/pr87572.c: New test.
> > >
> > > LGTM.
> >
> > This caused gazillion of testsuite FAILs like
> >
> > FAIL: gcc.target/i386/isa-11.c (test for excess errors)
> > Excess errors:
> > /tmp/ccyurT91.s:8: Error: invalid instruction suffix for `push'
> > /tmp/ccyurT91.s:14: Error: invalid instruction suffix for `pop'
> >
> > where we now emit pushl in 64bit mode.
>
> That change was incorrect, avx5124fmaps and avx5124vnniw flags are
> isa_flags2, rather than isa_flags, and are handled already properly:
> #define OPTION_MASK_ISA2_AVX512F_UNSET \
>   (OPTION_MASK_ISA_AVX5124FMAPS_UNSET | OPTION_MASK_ISA_AVX5124VNNIW_UNSET)
>
> So I think we need at least following patch, ok for trunk?
>
> Plus, I wonder if we shouldn't make it harder to run into these issues, by
> changing
> Target Report Mask(ISA_AVX5124FMAPS) Var(ix86_isa_flags2) Save
> etc. to
> Target Report Mask(ISA2_AVX5124FMAPS) Var(ix86_isa_flags2) Save
> so that we'll have OPTION_MASK_ISA2_AVX5124FMAPS macros instead of
> OPTION_MASK_ISA_AVX5124FMAPS and adjust all i386-common.c etc. uses from ISA
> to ISA2 for the ix86_isa_flags2 options.  Perhaps we could have
> #define TARGET_ISA_AVX5124FMAPS TARGET_ISA2_AVX5124FMAPS
> compatibility macro, because unlike the OPTION_MASK_* and TARGET_*_P macros
> where you need to specify the right flags the TARGET_* macros already have
> that in implicitly.  Uros, thoughts on this?

I was looking for a mail, where we discussed x86_isa_flags2 as a
temporary solution, with the expectation that some other extensible
mechanism gets invented to handle ISA flags. Now we are in c++, and I
guess there should be more elegant way to deal with the issue.
>
> 2018-10-15  Jakub Jelinek  <ja...@redhat.com>
>
>         PR target/87572
>         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET):
>         Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and
>         OPTION_MASK_ISA_AVX5124VNNIW_UNSET.

Yes, please go ahead with this patch.

Thanks,
Uros.

> --- gcc/common/config/i386/i386-common.c.jj     2018-10-15 16:27:59.214107805 
> +0200
> +++ gcc/common/config/i386/i386-common.c        2018-10-15 16:30:30.750564097 
> +0200
> @@ -195,8 +195,6 @@ along with GCC; see the file COPYING3.
>     | OPTION_MASK_ISA_AVX512PF_UNSET | OPTION_MASK_ISA_AVX512ER_UNSET \
>     | OPTION_MASK_ISA_AVX512DQ_UNSET | OPTION_MASK_ISA_AVX512BW_UNSET \
>     | OPTION_MASK_ISA_AVX512VL_UNSET | OPTION_MASK_ISA_AVX512IFMA_UNSET \
> -   | OPTION_MASK_ISA_AVX5124FMAPS_UNSET \
> -   | OPTION_MASK_ISA_AVX5124VNNIW_UNSET \
>     | OPTION_MASK_ISA_AVX512VBMI2_UNSET \
>     | OPTION_MASK_ISA_AVX512VNNI_UNSET \
>     | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET \
>
>
>         Jakub

Reply via email to