[0/2] Enable Intel AVX512_FP16 instructions and add tests for it

Message ID 20210701074736.9534-1-lili.cui@intel.com
Headers show
Series
  • Enable Intel AVX512_FP16 instructions and add tests for it
Related show

Message

Nick Clifton via Binutils July 1, 2021, 7:47 a.m.
Hi all,

AVX512FP16 is disclosed, there're 100+ instructions for AVX512FP16,
2 patches for the convenience review, for details please refer to 
https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html

Make check-gas is ok.

Ok for master ?

Cui,Lili (2):
  Enable Intel AVX512_FP16 instructions
  Add tests for Intel AVX512_FP16 instructions

 gas/config/tc-i386.c                          |   15 +-
 gas/doc/c-i386.texi                           |    4 +-
 gas/testsuite/gas/i386/avx512_fp16-intel.d    | 1480 ++++++++++++++++
 .../gas/i386/avx512_fp16-inval-bcast.l        |   27 +
 .../gas/i386/avx512_fp16-inval-bcast.s        |   33 +
 gas/testsuite/gas/i386/avx512_fp16.d          | 1480 ++++++++++++++++
 gas/testsuite/gas/i386/avx512_fp16.s          | 1475 ++++++++++++++++
 .../gas/i386/avx512_fp16_disp8-intel.d        |   20 +
 gas/testsuite/gas/i386/avx512_fp16_disp8.d    |   20 +
 gas/testsuite/gas/i386/avx512_fp16_disp8.s    |   16 +
 gas/testsuite/gas/i386/avx512_fp16_vl-intel.d | 1438 +++++++++++++++
 gas/testsuite/gas/i386/avx512_fp16_vl.d       | 1437 +++++++++++++++
 gas/testsuite/gas/i386/avx512_fp16_vl.s       | 1433 +++++++++++++++
 gas/testsuite/gas/i386/i386.exp               |   14 +
 .../gas/i386/x86-64-avx512_fp16-intel.d       | 1544 +++++++++++++++++
 .../gas/i386/x86-64-avx512_fp16-inval-bcast.l |   27 +
 .../gas/i386/x86-64-avx512_fp16-inval-bcast.s |   33 +
 gas/testsuite/gas/i386/x86-64-avx512_fp16.d   | 1544 +++++++++++++++++
 gas/testsuite/gas/i386/x86-64-avx512_fp16.s   | 1539 ++++++++++++++++
 .../gas/i386/x86-64-avx512_fp16_disp8-intel.d |   20 +
 .../gas/i386/x86-64-avx512_fp16_disp8.d       |   20 +
 .../gas/i386/x86-64-avx512_fp16_disp8.s       |   16 +
 .../gas/i386/x86-64-avx512_fp16_vl-intel.d    | 1438 +++++++++++++++
 .../gas/i386/x86-64-avx512_fp16_vl.d          | 1438 +++++++++++++++
 .../gas/i386/x86-64-avx512_fp16_vl.s          | 1433 +++++++++++++++
 .../gas/i386/x86-64-default-suffix-avx.d      |    3 +
 .../gas/i386/x86-64-default-suffix.d          |    3 +
 .../gas/i386/x86-64-default-suffix.s          |    3 +
 gas/testsuite/gas/i386/xmmword.l              |    2 +
 gas/testsuite/gas/i386/xmmword.s              |    3 +
 opcodes/i386-dis-evex-mod.h                   |   10 +
 opcodes/i386-dis-evex-prefix.h                |  212 +++
 opcodes/i386-dis-evex-w.h                     |  442 ++++-
 opcodes/i386-dis-evex.h                       |  600 ++++++-
 opcodes/i386-dis.c                            |  263 ++-
 opcodes/i386-gen.c                            |    7 +-
 opcodes/i386-opc.h                            |    7 +
 opcodes/i386-opc.tbl                          |  376 ++++
 38 files changed, 19843 insertions(+), 32 deletions(-)
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16-intel.d
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16.d
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16.s
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.d
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.s
 create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl-intel.d
 create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl.d
 create mode 100644 gas/testsuite/gas/i386/avx512_fp16_vl.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.s
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8-intel.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.s
 create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d
 create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.d
 create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.s

-- 
2.17.1

Comments

Nick Clifton via Binutils July 1, 2021, 3:42 p.m. | #1
On Thu, Jul 1, 2021 at 12:47 AM Cui,Lili <lili.cui@intel.com> wrote:
>

>

> Hi all,

>

> AVX512FP16 is disclosed, there're 100+ instructions for AVX512FP16,

> 2 patches for the convenience review, for details please refer to

> https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html

>

> Make check-gas is ok.

>

> Ok for master ?

>

> Cui,Lili (2):

>   Enable Intel AVX512_FP16 instructions

>   Add tests for Intel AVX512_FP16 instructions

>

>  gas/config/tc-i386.c                          |   15 +-

>  gas/doc/c-i386.texi                           |    4 +-

>  gas/testsuite/gas/i386/avx512_fp16-intel.d    | 1480 ++++++++++++++++

>  .../gas/i386/avx512_fp16-inval-bcast.l        |   27 +

>  .../gas/i386/avx512_fp16-inval-bcast.s        |   33 +

>  gas/testsuite/gas/i386/avx512_fp16.d          | 1480 ++++++++++++++++

>  gas/testsuite/gas/i386/avx512_fp16.s          | 1475 ++++++++++++++++

>  .../gas/i386/avx512_fp16_disp8-intel.d        |   20 +

>  gas/testsuite/gas/i386/avx512_fp16_disp8.d    |   20 +

>  gas/testsuite/gas/i386/avx512_fp16_disp8.s    |   16 +

>  gas/testsuite/gas/i386/avx512_fp16_vl-intel.d | 1438 +++++++++++++++

>  gas/testsuite/gas/i386/avx512_fp16_vl.d       | 1437 +++++++++++++++

>  gas/testsuite/gas/i386/avx512_fp16_vl.s       | 1433 +++++++++++++++

>  gas/testsuite/gas/i386/i386.exp               |   14 +

>  .../gas/i386/x86-64-avx512_fp16-intel.d       | 1544 +++++++++++++++++

>  .../gas/i386/x86-64-avx512_fp16-inval-bcast.l |   27 +

>  .../gas/i386/x86-64-avx512_fp16-inval-bcast.s |   33 +

>  gas/testsuite/gas/i386/x86-64-avx512_fp16.d   | 1544 +++++++++++++++++

>  gas/testsuite/gas/i386/x86-64-avx512_fp16.s   | 1539 ++++++++++++++++

>  .../gas/i386/x86-64-avx512_fp16_disp8-intel.d |   20 +

>  .../gas/i386/x86-64-avx512_fp16_disp8.d       |   20 +

>  .../gas/i386/x86-64-avx512_fp16_disp8.s       |   16 +

>  .../gas/i386/x86-64-avx512_fp16_vl-intel.d    | 1438 +++++++++++++++

>  .../gas/i386/x86-64-avx512_fp16_vl.d          | 1438 +++++++++++++++

>  .../gas/i386/x86-64-avx512_fp16_vl.s          | 1433 +++++++++++++++

>  .../gas/i386/x86-64-default-suffix-avx.d      |    3 +

>  .../gas/i386/x86-64-default-suffix.d          |    3 +

>  .../gas/i386/x86-64-default-suffix.s          |    3 +

>  gas/testsuite/gas/i386/xmmword.l              |    2 +

>  gas/testsuite/gas/i386/xmmword.s              |    3 +

>  opcodes/i386-dis-evex-mod.h                   |   10 +

>  opcodes/i386-dis-evex-prefix.h                |  212 +++

>  opcodes/i386-dis-evex-w.h                     |  442 ++++-

>  opcodes/i386-dis-evex.h                       |  600 ++++++-

>  opcodes/i386-dis.c                            |  263 ++-

>  opcodes/i386-gen.c                            |    7 +-

>  opcodes/i386-opc.h                            |    7 +

>  opcodes/i386-opc.tbl                          |  376 ++++

>  38 files changed, 19843 insertions(+), 32 deletions(-)

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-intel.d

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.d

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.s

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.d

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.s

>  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl-intel.d

>  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl.d

>  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_vl.s

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-intel.d

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.d

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.s

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8-intel.d

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.d

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.s

>  create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d

>  create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.d

>  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.s

>

> --

> 2.17.1


OK for both.

Please give Jan a few days to comment.

Thanks.

-- 
H.J.
Nick Clifton via Binutils July 1, 2021, 5:46 p.m. | #2
On Thu, Jul 1, 2021 at 8:42 AM H.J. Lu <hjl.tools@gmail.com> wrote:
>

> On Thu, Jul 1, 2021 at 12:47 AM Cui,Lili <lili.cui@intel.com> wrote:

> >

> >

> > Hi all,

> >

> > AVX512FP16 is disclosed, there're 100+ instructions for AVX512FP16,

> > 2 patches for the convenience review, for details please refer to

> > https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html

> >

> > Make check-gas is ok.

> >

> > Ok for master ?

> >

> > Cui,Lili (2):

> >   Enable Intel AVX512_FP16 instructions

> >   Add tests for Intel AVX512_FP16 instructions

> >

> >  gas/config/tc-i386.c                          |   15 +-

> >  gas/doc/c-i386.texi                           |    4 +-

> >  gas/testsuite/gas/i386/avx512_fp16-intel.d    | 1480 ++++++++++++++++

> >  .../gas/i386/avx512_fp16-inval-bcast.l        |   27 +

> >  .../gas/i386/avx512_fp16-inval-bcast.s        |   33 +

> >  gas/testsuite/gas/i386/avx512_fp16.d          | 1480 ++++++++++++++++

> >  gas/testsuite/gas/i386/avx512_fp16.s          | 1475 ++++++++++++++++

> >  .../gas/i386/avx512_fp16_disp8-intel.d        |   20 +

> >  gas/testsuite/gas/i386/avx512_fp16_disp8.d    |   20 +

> >  gas/testsuite/gas/i386/avx512_fp16_disp8.s    |   16 +

> >  gas/testsuite/gas/i386/avx512_fp16_vl-intel.d | 1438 +++++++++++++++

> >  gas/testsuite/gas/i386/avx512_fp16_vl.d       | 1437 +++++++++++++++

> >  gas/testsuite/gas/i386/avx512_fp16_vl.s       | 1433 +++++++++++++++

> >  gas/testsuite/gas/i386/i386.exp               |   14 +

> >  .../gas/i386/x86-64-avx512_fp16-intel.d       | 1544 +++++++++++++++++

> >  .../gas/i386/x86-64-avx512_fp16-inval-bcast.l |   27 +

> >  .../gas/i386/x86-64-avx512_fp16-inval-bcast.s |   33 +

> >  gas/testsuite/gas/i386/x86-64-avx512_fp16.d   | 1544 +++++++++++++++++

> >  gas/testsuite/gas/i386/x86-64-avx512_fp16.s   | 1539 ++++++++++++++++

> >  .../gas/i386/x86-64-avx512_fp16_disp8-intel.d |   20 +

> >  .../gas/i386/x86-64-avx512_fp16_disp8.d       |   20 +

> >  .../gas/i386/x86-64-avx512_fp16_disp8.s       |   16 +

> >  .../gas/i386/x86-64-avx512_fp16_vl-intel.d    | 1438 +++++++++++++++

> >  .../gas/i386/x86-64-avx512_fp16_vl.d          | 1438 +++++++++++++++

> >  .../gas/i386/x86-64-avx512_fp16_vl.s          | 1433 +++++++++++++++

> >  .../gas/i386/x86-64-default-suffix-avx.d      |    3 +

> >  .../gas/i386/x86-64-default-suffix.d          |    3 +

> >  .../gas/i386/x86-64-default-suffix.s          |    3 +

> >  gas/testsuite/gas/i386/xmmword.l              |    2 +

> >  gas/testsuite/gas/i386/xmmword.s              |    3 +

> >  opcodes/i386-dis-evex-mod.h                   |   10 +

> >  opcodes/i386-dis-evex-prefix.h                |  212 +++

> >  opcodes/i386-dis-evex-w.h                     |  442 ++++-

> >  opcodes/i386-dis-evex.h                       |  600 ++++++-

> >  opcodes/i386-dis.c                            |  263 ++-

> >  opcodes/i386-gen.c                            |    7 +-

> >  opcodes/i386-opc.h                            |    7 +

> >  opcodes/i386-opc.tbl                          |  376 ++++

> >  38 files changed, 19843 insertions(+), 32 deletions(-)

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-intel.d

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.d

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.s

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.d

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.s

> >  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl-intel.d

> >  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl.d

> >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_vl.s

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-intel.d

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.d

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.s

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8-intel.d

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.d

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.s

> >  create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d

> >  create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.d

> >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.s

> >

> > --

> > 2.17.1

>

> OK for both.

>

> Please give Jan a few days to comment.


Please add an entry to gas/NEWS for AVX512FP16 support.

Thanks.

-- 
H.J.
Nick Clifton via Binutils July 2, 2021, 12:13 a.m. | #3
> -----Original Message-----

> From: H.J. Lu <hjl.tools@gmail.com>

> Sent: Friday, July 2, 2021 1:47 AM

> To: Cui, Lili <lili.cui@intel.com>

> Cc: Binutils <binutils@sourceware.org>; Jan Beulich <jbeulich@suse.com>

> Subject: Re: [PATCH 0/2]Enable Intel AVX512_FP16 instructions and add tests

> for it

> 

> On Thu, Jul 1, 2021 at 8:42 AM H.J. Lu <hjl.tools@gmail.com> wrote:

> >

> > On Thu, Jul 1, 2021 at 12:47 AM Cui,Lili <lili.cui@intel.com> wrote:

> > >

> > >

> > > Hi all,

> > >

> > > AVX512FP16 is disclosed, there're 100+ instructions for AVX512FP16,

> > > 2 patches for the convenience review, for details please refer to

> > >

> https://software.intel.com/content/www/us/en/develop/download/intel-

> > > avx512-fp16-architecture-specification.html

> > >

> > > Make check-gas is ok.

> > >

> > > Ok for master ?

> > >

> > > Cui,Lili (2):

> > >   Enable Intel AVX512_FP16 instructions

> > >   Add tests for Intel AVX512_FP16 instructions

> > >

> > >  gas/config/tc-i386.c                          |   15 +-

> > >  gas/doc/c-i386.texi                           |    4 +-

> > >  gas/testsuite/gas/i386/avx512_fp16-intel.d    | 1480 ++++++++++++++++

> > >  .../gas/i386/avx512_fp16-inval-bcast.l        |   27 +

> > >  .../gas/i386/avx512_fp16-inval-bcast.s        |   33 +

> > >  gas/testsuite/gas/i386/avx512_fp16.d          | 1480 ++++++++++++++++

> > >  gas/testsuite/gas/i386/avx512_fp16.s          | 1475 ++++++++++++++++

> > >  .../gas/i386/avx512_fp16_disp8-intel.d        |   20 +

> > >  gas/testsuite/gas/i386/avx512_fp16_disp8.d    |   20 +

> > >  gas/testsuite/gas/i386/avx512_fp16_disp8.s    |   16 +

> > >  gas/testsuite/gas/i386/avx512_fp16_vl-intel.d | 1438 +++++++++++++++

> > >  gas/testsuite/gas/i386/avx512_fp16_vl.d       | 1437 +++++++++++++++

> > >  gas/testsuite/gas/i386/avx512_fp16_vl.s       | 1433 +++++++++++++++

> > >  gas/testsuite/gas/i386/i386.exp               |   14 +

> > >  .../gas/i386/x86-64-avx512_fp16-intel.d       | 1544 +++++++++++++++++

> > >  .../gas/i386/x86-64-avx512_fp16-inval-bcast.l |   27 +

> > >  .../gas/i386/x86-64-avx512_fp16-inval-bcast.s |   33 +

> > >  gas/testsuite/gas/i386/x86-64-avx512_fp16.d   | 1544

> +++++++++++++++++

> > >  gas/testsuite/gas/i386/x86-64-avx512_fp16.s   | 1539 ++++++++++++++++

> > >  .../gas/i386/x86-64-avx512_fp16_disp8-intel.d |   20 +

> > >  .../gas/i386/x86-64-avx512_fp16_disp8.d       |   20 +

> > >  .../gas/i386/x86-64-avx512_fp16_disp8.s       |   16 +

> > >  .../gas/i386/x86-64-avx512_fp16_vl-intel.d    | 1438 +++++++++++++++

> > >  .../gas/i386/x86-64-avx512_fp16_vl.d          | 1438 +++++++++++++++

> > >  .../gas/i386/x86-64-avx512_fp16_vl.s          | 1433 +++++++++++++++

> > >  .../gas/i386/x86-64-default-suffix-avx.d      |    3 +

> > >  .../gas/i386/x86-64-default-suffix.d          |    3 +

> > >  .../gas/i386/x86-64-default-suffix.s          |    3 +

> > >  gas/testsuite/gas/i386/xmmword.l              |    2 +

> > >  gas/testsuite/gas/i386/xmmword.s              |    3 +

> > >  opcodes/i386-dis-evex-mod.h                   |   10 +

> > >  opcodes/i386-dis-evex-prefix.h                |  212 +++

> > >  opcodes/i386-dis-evex-w.h                     |  442 ++++-

> > >  opcodes/i386-dis-evex.h                       |  600 ++++++-

> > >  opcodes/i386-dis.c                            |  263 ++-

> > >  opcodes/i386-gen.c                            |    7 +-

> > >  opcodes/i386-opc.h                            |    7 +

> > >  opcodes/i386-opc.tbl                          |  376 ++++

> > >  38 files changed, 19843 insertions(+), 32 deletions(-)  create mode

> > > 100644 gas/testsuite/gas/i386/avx512_fp16-intel.d

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.d

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16.s

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.d

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_disp8.s

> > >  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl-intel.d

> > >  create mode 100755 gas/testsuite/gas/i386/avx512_fp16_vl.d

> > >  create mode 100644 gas/testsuite/gas/i386/avx512_fp16_vl.s

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16-intel.d

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.l

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16-inval-bcast.s

> > >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.d

> > >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16.s

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8-intel.d

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.d

> > >  create mode 100644

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16_disp8.s

> > >  create mode 100755

> > > gas/testsuite/gas/i386/x86-64-avx512_fp16_vl-intel.d

> > >  create mode 100755 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.d

> > >  create mode 100644 gas/testsuite/gas/i386/x86-64-avx512_fp16_vl.s

> > >

> > > --

> > > 2.17.1

> >

> > OK for both.

> >

> > Please give Jan a few days to comment.


Yes, the patch is big and it will take some time to review.

>

> Please add an entry to gas/NEWS for AVX512FP16 support.

> 


Ok, I will add it, thanks.


> 

> --

> H.J.
Nick Clifton via Binutils July 2, 2021, 3:44 p.m. | #4
On 01.07.2021 09:47, Cui,Lili wrote:
> 

> Intel AVX512 FP16 instructions use maps 3, 5 and 6. Maps 5 and 6 use 3 bits

> in the EVEX.mmm field (0b101, 0b110). Map 5 is for instructions that were FP32

> in map 1 (0Fxx). Map 6 is for instructions that were FP32 in map 2 (0F38xx).

> There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8

> operands predated our current conventions; those instructions moved to map 3.

> FP32 things in map 3 (0F3Axx) found new opcodes in map3 for FP16 because map3

> is very sparsely populated. Most of the FP16 instructions share opcodes and

> prefix (EVEX.pp) bits with the related FP32 operations.

> 

> Intel AVX512 FP16 instructions has new displacements scaling rules, please refer

> to the public software developer manual for detail information.

> 

> gas/

> 

> 2021-07-01  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

>             H.J. Lu  <hongjiu.lu@intel.com>

>             Wei Xiao <wei3.xiao@intel.com>

>             Lili Cui  <lili.cui@intel.com>

> 

> 	* gas/testsuite/gas/i386/i386.exp: Run FP16 tests.

> 	* gas/testsuite/gas/i386/avx512_fp16-intel.d: New test.

> 	* gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l: Ditto.

> 	* gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s: Ditto.

> 	* gas/testsuite/gas/i386/avx512_fp16.d: Ditto.

> 	* gas/testsuite/gas/i386/avx512_fp16.s: Ditto.


This, just to pick an example, has

	vaddph	8128(%ecx), %zmm5, %zmm6	 #AVX512_FP16 Disp8
	vaddph	-8192(%edx){1to32}, %zmm5, %zmm6{%k7}{z}	 #AVX512_FP16 Disp8 BROADCAST_EN MASK_ENABLING ZEROCTL

The former is indeed using disp8, but the latter isn't despite the
comment suggesting so. I'd consider it particularly important that
disp8-scaling be covered both without and with broadcast, yet I
don't think I've been able to spot any instance of the latter.

> 	* gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d: Ditto.

> 	* gas/testsuite/gas/i386/avx512_fp16_disp8.d: Ditto.

> 	* gas/testsuite/gas/i386/avx512_fp16_disp8.s: Ditto.


So what are these about? Their name suggests disp8 handling, but
the produced code has no single instance of an 8-bit displacement.
Same for the 64-bit equivalents further down.

Overall this patch if of course close to impossible to review
properly.

Jan
Nick Clifton via Binutils July 13, 2021, 3:59 p.m. | #5
On 13.07.2021 08:58, Cui, Lili wrote:
>> From: Jan Beulich <jbeulich@suse.com>

>> Sent: Friday, July 2, 2021 11:44 PM

>>

>> On 01.07.2021 09:47, Cui,Lili wrote:

>>> 2021-07-01  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

>>>             H.J. Lu  <hongjiu.lu@intel.com>

>>>             Wei Xiao <wei3.xiao@intel.com>

>>>             Lili Cui  <lili.cui@intel.com>

>>>

>>> 	* gas/testsuite/gas/i386/i386.exp: Run FP16 tests.

>>> 	* gas/testsuite/gas/i386/avx512_fp16-intel.d: New test.

>>> 	* gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l: Ditto.

>>> 	* gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s: Ditto.

>>> 	* gas/testsuite/gas/i386/avx512_fp16.d: Ditto.

>>> 	* gas/testsuite/gas/i386/avx512_fp16.s: Ditto.

>>

>> This, just to pick an example, has

>>

>> 	vaddph	8128(%ecx), %zmm5, %zmm6	 #AVX512_FP16 Disp8

>> 	vaddph	-8192(%edx){1to32}, %zmm5, %zmm6{%k7}{z}

>> #AVX512_FP16 Disp8 BROADCAST_EN MASK_ENABLING ZEROCTL

>>

>> The former is indeed using disp8, but the latter isn't despite the comment

>> suggesting so. I'd consider it particularly important that disp8-scaling be

>> covered both without and with broadcast, yet I don't think I've been able to

>> spot any instance of the latter.

>>

> Yes, it does not use disp8 in the second testcase, I changed it for all instructions. 

> 

> For example:

>           vaddph  8128(%ecx), %zmm5, %zmm6         #AVX512-FP16 Disp8(7f)

>           vaddph  -256(%edx){1to32}, %zmm5, %zmm6{%k7}{z}  #AVX512-FP16 BROADCAST_EN Disp8(80) MASK_ENABLING ZEROCTL

> 

>  

>>> 	* gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d: Ditto.

>>> 	* gas/testsuite/gas/i386/avx512_fp16_disp8.d: Ditto.

>>> 	* gas/testsuite/gas/i386/avx512_fp16_disp8.s: Ditto.

>>

>> So what are these about? Their name suggests disp8 handling, but the

>> produced code has no single instance of an 8-bit displacement.

>> Same for the 64-bit equivalents further down.

>>

> I deleted those disp8 handling files, because we already checked it in other *.s file.  


This new version of the testcases largely looks okay to me. As said before
I don't think one can sensibly review such.

The one thing I wonder is whether at least for new additions we shouldn't
strive to have full coverage of affected (mixed-operand-size) instructions
in xmmword.s - H.J.? You add only two lines, and these are even redundant.
Hence minimally I'd see the redundancy dropped (there's no point here to
check with and without result masking); ideally you'd also add other
respective insns there.

Jan
Nick Clifton via Binutils July 14, 2021, 6:01 p.m. | #6
On Tue, Jul 13, 2021 at 8:59 AM Jan Beulich <jbeulich@suse.com> wrote:
>

> On 13.07.2021 08:58, Cui, Lili wrote:

> >> From: Jan Beulich <jbeulich@suse.com>

> >> Sent: Friday, July 2, 2021 11:44 PM

> >>

> >> On 01.07.2021 09:47, Cui,Lili wrote:

> >>> 2021-07-01  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

> >>>             H.J. Lu  <hongjiu.lu@intel.com>

> >>>             Wei Xiao <wei3.xiao@intel.com>

> >>>             Lili Cui  <lili.cui@intel.com>

> >>>

> >>>     * gas/testsuite/gas/i386/i386.exp: Run FP16 tests.

> >>>     * gas/testsuite/gas/i386/avx512_fp16-intel.d: New test.

> >>>     * gas/testsuite/gas/i386/avx512_fp16-inval-bcast.l: Ditto.

> >>>     * gas/testsuite/gas/i386/avx512_fp16-inval-bcast.s: Ditto.

> >>>     * gas/testsuite/gas/i386/avx512_fp16.d: Ditto.

> >>>     * gas/testsuite/gas/i386/avx512_fp16.s: Ditto.

> >>

> >> This, just to pick an example, has

> >>

> >>      vaddph  8128(%ecx), %zmm5, %zmm6         #AVX512_FP16 Disp8

> >>      vaddph  -8192(%edx){1to32}, %zmm5, %zmm6{%k7}{z}

> >> #AVX512_FP16 Disp8 BROADCAST_EN MASK_ENABLING ZEROCTL

> >>

> >> The former is indeed using disp8, but the latter isn't despite the comment

> >> suggesting so. I'd consider it particularly important that disp8-scaling be

> >> covered both without and with broadcast, yet I don't think I've been able to

> >> spot any instance of the latter.

> >>

> > Yes, it does not use disp8 in the second testcase, I changed it for all instructions.

> >

> > For example:

> >           vaddph  8128(%ecx), %zmm5, %zmm6         #AVX512-FP16 Disp8(7f)

> >           vaddph  -256(%edx){1to32}, %zmm5, %zmm6{%k7}{z}  #AVX512-FP16 BROADCAST_EN Disp8(80) MASK_ENABLING ZEROCTL

> >

> >

> >>>     * gas/testsuite/gas/i386/avx512_fp16_disp8-intel.d: Ditto.

> >>>     * gas/testsuite/gas/i386/avx512_fp16_disp8.d: Ditto.

> >>>     * gas/testsuite/gas/i386/avx512_fp16_disp8.s: Ditto.

> >>

> >> So what are these about? Their name suggests disp8 handling, but the

> >> produced code has no single instance of an 8-bit displacement.

> >> Same for the 64-bit equivalents further down.

> >>

> > I deleted those disp8 handling files, because we already checked it in other *.s file.

>

> This new version of the testcases largely looks okay to me. As said before

> I don't think one can sensibly review such.

>

> The one thing I wonder is whether at least for new additions we shouldn't

> strive to have full coverage of affected (mixed-operand-size) instructions

> in xmmword.s - H.J.? You add only two lines, and these are even redundant.

> Hence minimally I'd see the redundancy dropped (there's no point here to

> check with and without result masking); ideally you'd also add other

> respective insns there.


Yes, the testsuite should provide the full coverage.

-- 
H.J.