This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Enable GCC support for AVX512_VP2INTERSECT.


On Tue, Aug 6, 2019 at 1:16 PM Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
>
> Hi Hongtao,
>
> > On Thu, Jun 27, 2019 at 5:38 PM Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
> >>
> >> Hi Hongtao,
> >>
> >> > On Thu, Jun 27, 2019 at 5:02 PM Rainer Orth
> >> > <ro@cebitec.uni-bielefeld.de> wrote:
> >> >>
> >> >> Hi Hongtao,
> >> >>
> >> >> >> as usual, the new effective-target keyword needs documenting in
> >> >> >> sourcebuild.texi.
> >> >> > Like this?
> >> >>
> >> >> a couple of nits: first of all, your mailer seems to replace tabs by a
> >> >> single space.  Please fix this or attach the patch instead.
> >> >>
> >> >> > Index: ChangeLog
> >> >> > ===================================================================
> >> >> > --- ChangeLog (revision 272668)
> >> >> > +++ ChangeLog (working copy)
> >> >> > @@ -1,3 +1,8 @@
> >> >> > +2019-06-27  Hongtao Liu  <hongtao.liu@intel.com>
> >> >> > +
> >> >> > + * doc/sourcebuild.texi: Document new effective target keyword
> >> >> > + avx512vp2intersect.
> >> >>
> >> >> Please include the sections you're modifying, something like
> >> >>
> >> >>         * doc/sourcebuild.texi (Effective-Target Keywords, Other
> >> >>         hardware attributes): Document avx512vp2intersect.
> >> >>
> >> >> And please don't include the ChangeLog in the patch, but include it in
> >> >> the mail proper: it won't apply due to date and context changes anyway.
> >> >> Best review https://gcc.gnu.org/contribute.html where this is documented
> >> >> besides other points of patch submission.
> >> >>
> >> >> Besides, it's most likely useful to also review the GNU Coding
> >> >> Standards, too, not only for ChangeLog formatting.
> >> >>
> >> >> > Index: testsuite/ChangeLog
> >> >> > ===================================================================
> >> >> > --- testsuite/ChangeLog (revision 272668)
> >> >> > +++ testsuite/ChangeLog (working copy)
> >> >> > @@ -1,3 +1,11 @@
> >> >> > +2019-06-27  Hongtao Liu  <hongtao.liu@intel.com>
> >> >> > +
> >> >> > + * lib/target-supports.exp: Add
> >> >> > + check_effective_target_avx512vp2intersect.
> >> >>
> >> >> Use
> >> >>
> >> >>         * lib/target-supports.exp
> >> >>         (check_effective_target_avx512vp2intersect): New proc.
> >> >>
> >> >> > + * gcc.target/i386/avx512vp2intersect-2intersect-1b.c: Add
> >> >> > + dg-require-effective-target avx512vp2intersect.
> >> >>
> >> >> Better:
> >> >>
> >> >>         * gcc.target/i386/avx512vp2intersect-2intersect-1b.c: Require
> >> >>         avx512vp2intersect.
> >> >>
> >> >> but that's a matter of preference.
> >> >>
> >> >> > Index: testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c
> >> >> > ===================================================================
> >> >> > --- testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c
> >> >> > (revision 272668)
> >> >> > +++ testsuite/gcc.target/i386/avx512vp2intersect-2intersect-1b.c
> >> >> > (working copy)
> >> >> > @@ -1,5 +1,6 @@
> >> >> >  /* { dg-do run } */
> >> >> >  /* { dg-options "-O2 -mavx512vp2intersect" } */
> >> >> > +/* { dg-require-effective-target "avx512vp2intersect" } */
> >> >>
> >> >> No need to quote avx512vp2intersect here and in the next test.
> >> >>
> >> >> Ok with those nits fixed.
> >> >>
> >> > Yes, thanks a lot.
> >> >> Thanks.
> >> >>         Rainer
> >> >>
> >> >> --
> >> >> -----------------------------------------------------------------------------
> >> >> Rainer Orth, Center for Biotechnology, Bielefeld University
> >> >
> >> > Ok for trunk?
> >>
> >> ENOPATCH
> > Sorry, Here is the patch.
> >>
> >> --
> >> -----------------------------------------------------------------------------
> >> Rainer Orth, Center for Biotechnology, Bielefeld University
> >
> >
> > Changelog
> >
> > gcc/
> > +2019-06-27  Hongtao Liu  <hongtao.liu@intel.com>
> > +
> > + * doc/sourcebuild.texi (Effective-Target Keywords, Other
> > + hardware attributes): Document avx512vp2intersect.
> > +
> >
> > gcc/testsuite/
> > +2019-06-27  Hongtao Liu  <hongtao.liu@intel.com>
> > +
> > + * lib/target-supports.exp
> > + (check_effective_target_avx512vp2intersect): New proc.
> > + * gcc.target/i386/avx512vp2intersect-2intersect-1b.c: Add
> > + dg-require-effective-target avx512vp2intersect.
> > + * gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c: Ditto.
> > +
>
> unfortunately, the testcases are still not right.  While with gas 2.32
> they now come up as UNSUPPORTED, I've now tried a mainline bootstrap on
> i386-pc-solaris2.11 with gas from binutils master.  Doing so, I get
>
> +FAIL: gcc.target/i386/avx512vp2intersect-2intersect-1b.c execution test
> +FAIL: gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c execution test
>
> for both 32 and 64-bit, and there are similar results on
> gcc-testresults for x86_64-pc-linux-gnu.
>
> Running one of the testcases under gdb shows
>
> Thread 2 received signal SIGILL, Illegal instruction.
> [Switching to Thread 1 (LWP 1)]
> 0x08050d89 in do_test ()
> 1: x/i $pc
> => 0x8050d89 <do_test+25>:      (bad)
>
> or with objdump 2.32:
>
>  8050d89:       62 f2 ff 48 68          (bad)
>
> Using objdump from binutils master shows
>
>  8050d89:       62 f2 ff 48 68 05 80    vp2intersectq 0x8050a80,%zmm0,%k0
>
> Currently, the testcases only check for AVX512F (which the machine in
> question supports: Xeon Gold 6132), while they need to check for
> AVX512VP2INTERSECT to avoid this.
>
> The following patch does this; tested on i386-pc-solaris2.11 with gas
> 2.32.51 both 32 and 64-bit where the tests PASS.
>
> Ok for mainline?

OK.

Thanks,
Uros.

>
>         Rainer
>
> --
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
>
>
> 2019-08-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
>
>         * gcc.target/i386/avx512vp2intersect-2intersect-1b.c (AVX512F):
>         Remove.
>         (AVX512VP2INTERSECT): Define.
>         * gcc.target/i386/avx512vp2intersect-2intersectvl-1b.c (AVX512F):
>         Remove.
>         (AVX512VP2INTERSECT): Define.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]