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/

This series of patches address the comments on previous revision from Haochen 
Jiang.

Bootstraped and regtested on x86_64-linux-gnu. Ok for trunk?

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              |    7 +
 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            | 1861 +++++++++++++++++
 gcc/config/i386/cpuid.h                       |    4 +
 gcc/config/i386/i386-builtin-types.def        |   18 +
 gcc/config/i386/i386-builtin.def              |   72 +
 gcc/config/i386/i386-c.cc                     |    2 +
 gcc/config/i386/i386-expand.cc                |   20 +
 gcc/config/i386/i386-isa.def                  |    1 +
 gcc/config/i386/i386-options.cc               |    4 +-
 gcc/config/i386/i386.opt                      |    5 +
 gcc/config/i386/i386.opt.urls                 |    3 +
 gcc/config/i386/immintrin.h                   |    2 +
 gcc/config/i386/predicates.md                 |    5 +
 gcc/config/i386/sse.md                        |  613 ++++++
 gcc/doc/extend.texi                           |    5 +
 gcc/doc/invoke.texi                           |    8 +-
 gcc/doc/sourcebuild.texi                      |    3 +
 .../gcc.target/i386/avx10v2aux-convert-1a.c   |  112 +
 .../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   |   30 +
 .../gcc.target/i386/avx10v2aux-convert-1f.c   |   36 +
 .../gcc.target/i386/avx10v2aux-convert-1g.c   |   26 +
 .../gcc.target/i386/avx10v2aux-convert-1h.c   |   61 +
 .../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 +
 33 files changed, 3279 insertions(+), 5 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