Hi All,

This series of 7 patches aims to add support for cpuid detection,
builtins and intrinsics for AVX10_V2_AUX instructions.

AVX10_V2_AUX is a new ISA for x86, supporting converts between FP32-FP8, 
FP8-FP4, FP8-FP6, and vice-versa.
For more details, please refer to the specification here:
https://x86ecosystem.org/resource/ai-compute-extensions-ace-specification/

As discussed previously, this series of patches address the comments from 
Haochen Jiang.


Patch details are as follows:
- Patch 01/07: Add support for cpuid detection for AVX10_V2_AUX and supported 
FP32 to FP8 single-source RTNE converts.
- Patch 02/07: Add FP32 to FP8 single-source RTO converts.
- Patch 03/07: Add FP32 to FP8 biased converts.
- Patch 04/07: Add FP8 to FP32 converts.
- Patch 05/07: Add FP8 to FP4 and vice-versa converts.
- Patch 06/07: Add FP8 to FP6 and vice-versa converts.
- Patch 07/07: Add sub-byte element extraction and symmetric signed saturation 
narrow support.


 gcc/common/config/i386/cpuinfo.h              |    8 +
 gcc/common/config/i386/i386-common.cc         |   22 +-
 gcc/common/config/i386/i386-cpuinfo.h         |    1 +
 gcc/common/config/i386/i386-isas.h            |    2 +
 gcc/config.gcc                                |    3 +-
 gcc/config/i386/avx10v2auxintrin.h            | 1904 +++++++++++++++++
 gcc/config/i386/cpuid.h                       |    4 +
 gcc/config/i386/i386-builtin-types.def        |   21 +
 gcc/config/i386/i386-builtin.def              |   77 +
 gcc/config/i386/i386-c.cc                     |    2 +
 gcc/config/i386/i386-expand.cc                |   24 +
 gcc/config/i386/i386-isa.def                  |    1 +
 gcc/config/i386/i386-modes.def                |    2 +
 gcc/config/i386/i386-options.cc               |    4 +-
 gcc/config/i386/i386.opt                      |    4 +
 gcc/config/i386/i386.opt.urls                 |    3 +
 gcc/config/i386/immintrin.h                   |    2 +
 gcc/config/i386/predicates.md                 |    5 +
 gcc/config/i386/sse.md                        |  593 +++++
 gcc/doc/extend.texi                           |    5 +
 gcc/doc/invoke.texi                           |   11 +-
 gcc/doc/sourcebuild.texi                      |    3 +
 .../gcc.target/i386/avx10v2aux-convert-1a.c   |   88 +
 .../gcc.target/i386/avx10v2aux-convert-1b.c   |   61 +
 .../gcc.target/i386/avx10v2aux-convert-1c.c   |  114 +
 .../gcc.target/i386/avx10v2aux-convert-1d.c   |   61 +
 .../gcc.target/i386/avx10v2aux-convert-1e.c   |   52 +
 .../gcc.target/i386/avx10v2aux-convert-1f.c   |   36 +
 .../gcc.target/i386/avx10v2aux-convert-1g.c   |   18 +
 .../gcc.target/i386/avx10v2aux-convert-1h.c   |   46 +
 .../gcc.target/i386/avx10v2aux-convert-1i.c   |   36 +
 .../gcc.target/i386/avx10v2aux-convert-1j.c   |   43 +
 .../gcc.target/i386/avx10v2aux-convert-1k.c   |   29 +
 gcc/testsuite/lib/target-supports.exp         |   14 +
 34 files changed, 3292 insertions(+), 7 deletions(-)
 create mode 100644 gcc/config/i386/avx10v2auxintrin.h
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1a.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1b.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1c.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1d.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1e.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1f.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1g.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1h.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1i.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1j.c
 create mode 100644 gcc/testsuite/gcc.target/i386/avx10v2aux-convert-1k.c

--
2.34.1

Reply via email to