On Fri, Jun 26, 2026 at 8:16 PM Dipesh Sharma <[email protected]> wrote:
>
> ---
> Hi GCC Team,
>
> This series of 10 patches aims to add support for cpuid detection,
> builtins and intrinsics for AVX10_V2_AUX and ACE ISA for x86.
>
> ACE is a new ISA for x86, which is designed to accelerate computation tasks,
> initially focusing on matrix multiplication kernels and reduced precision
> data formats important to ML workloads. For more details,
> please refer to the ACE specification here: 
> https://x86ecosystem.org/resource/ai-compute-extensions-ace-specification/
>
> AVX10_V1_AUX instructions are already present and supported by GCC,
> we need to check with intel to carve them out to a separate flag.
>
> The series first adds AVX10_V2_AUX support, followed by ACE instructions.
> AVX10_V2_AUX provides a set of converts that ACE builds upon,
> while tile and outer product operations are supported by ACE instructions.
>
> Patch details are as follows:
> - Patch 01/10: Add support for cpuid detection for AVX10_V2_AUX and supported 
> FP32 to FP8 single-source RTNE converts.
> - Patch 02/10: Support FP32 to FP8 single-source RTO converts.
> - Patch 03/10: Support FP32 to FP8 biased converts.
> - Patch 04/10: Support FP8 to FP32 converts.
> - Patch 05/10: Support FP8 to FP4 and vice-versa converts.
> - Patch 06/10: Support FP8 to FP6 and vice-versa converts.
> - Patch 07/10: Support sub-byte element extraction and symmetric signed 
> saturation narrow support.
> - Patch 08/10: Introduce TILE ISA and split tile config common to both ACE 
> and AMX-TILE.
> - Patch 09/10: Add ACE_V1 CPUID and option support..
> - Patch 10/10: Implement ACE_V1 intrinsics.
>
> Bootstrapped and regtested on x86_64-pc-linux-gnu. Ok for trunk?
I'll let haochen help review the patches, he also implemented ACE V1
for GCC from intel side.

>
>
>  gcc/common/config/i386/cpuinfo.h              |   33 +
>  gcc/common/config/i386/i386-common.cc         |   59 +-
>  gcc/common/config/i386/i386-cpuinfo.h         |    3 +
>  gcc/common/config/i386/i386-isas.h            |    4 +
>  gcc/config.gcc                                |    2 +-
>  gcc/config/i386/aceintrin.h                   |  151 ++
>  gcc/config/i386/amxtileintrin.h               |   28 -
>  gcc/config/i386/avx10_v2_auxintrin.h          | 1603 +++++++++++++++++
>  gcc/config/i386/cpuid.h                       |    7 +
>  gcc/config/i386/i386-builtin-types.def        |   20 +
>  gcc/config/i386/i386-builtin.def              |   74 +-
>  gcc/config/i386/i386-c.cc                     |    6 +
>  gcc/config/i386/i386-expand.cc                |   18 +
>  gcc/config/i386/i386-isa.def                  |    3 +
>  gcc/config/i386/i386-options.cc               |    8 +-
>  gcc/config/i386/i386.md                       |    4 +-
>  gcc/config/i386/i386.opt                      |   12 +
>  gcc/config/i386/immintrin.h                   |    6 +
>  gcc/config/i386/sse.md                        |  431 +++++
>  gcc/config/i386/tileintrin.h                  |   69 +
>  gcc/doc/extend.texi                           |    5 +
>  gcc/doc/invoke.texi                           |    9 +-
>  gcc/doc/sourcebuild.texi                      |    3 +
>  gcc/testsuite/g++.dg/other/i386-2.C           |    6 +-
>  gcc/testsuite/g++.dg/other/i386-3.C           |    6 +-
>  gcc/testsuite/gcc.target/i386/ace-asmatt-1.c  |   58 +
>  .../gcc.target/i386/ace-asmintel-1.c          |   58 +
>  gcc/testsuite/gcc.target/i386/ace-define-1.c  |   11 +
>  gcc/testsuite/gcc.target/i386/ace-define-2.c  |    7 +
>  .../gcc.target/i386/ace-funcspec-1.c          |   14 +
>  .../i386/avx10_2-v2-aux-convert-1.c           |   88 +
>  .../i386/avx10_2-v2-aux-convert-10.c          |   25 +
>  .../i386/avx10_2-v2-aux-convert-2.c           |   46 +
>  .../i386/avx10_2-v2-aux-convert-3.c           |   88 +
>  .../i386/avx10_2-v2-aux-convert-4.c           |   46 +
>  .../i386/avx10_2-v2-aux-convert-5.c           |   18 +
>  .../i386/avx10_2-v2-aux-convert-6.c           |   25 +
>  .../i386/avx10_2-v2-aux-convert-7.c           |   18 +
>  .../i386/avx10_2-v2-aux-convert-8.c           |   46 +
>  .../i386/avx10_2-v2-aux-convert-9.c           |   25 +
>  gcc/testsuite/gcc.target/i386/funcspec-56.inc |    4 +
>  gcc/testsuite/gcc.target/i386/tile-asmatt-1.c |   19 +
>  .../gcc.target/i386/tile-asmintel-1.c         |   18 +
>  gcc/testsuite/gcc.target/i386/tile-define-1.c |   13 +
>  gcc/testsuite/gcc.target/i386/tile-define-2.c |   13 +
>  gcc/testsuite/lib/target-supports.exp         |   26 +
>  46 files changed, 3191 insertions(+), 45 deletions(-)
>  create mode 100644 gcc/config/i386/aceintrin.h
>  create mode 100644 gcc/config/i386/avx10_v2_auxintrin.h
>  create mode 100644 gcc/config/i386/tileintrin.h
>  create mode 100644 gcc/testsuite/gcc.target/i386/ace-asmatt-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/ace-asmintel-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/ace-define-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/ace-define-2.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/ace-funcspec-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-10.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-2.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-3.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-4.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-5.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-6.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-7.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-8.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/avx10_2-v2-aux-convert-9.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/tile-asmatt-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/tile-asmintel-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/tile-define-1.c
>  create mode 100644 gcc/testsuite/gcc.target/i386/tile-define-2.c
>
> --
> 2.34.1
>


-- 
BR,
Hongtao

Reply via email to