This series backports Arrow Lake and Arrow Lake-S x86 enablement from GCC 14 to
GCC 13 release branch code.
Changes in v2:
- Drop non-upstream helper artifacts under contrib/:
- contrib/arrowlake-backport-gap-report.md
- contrib/verify-arrowlake-backport.sh
- Keep the functional backport/tests/doc updates unchanged.
Scope:
- Add -march/-mtune Arrow Lake and Arrow Lake-S CPU handling.
- Backport AVXVNNIINT16, SM3, SM4 and SHA512 i386 backend/intrinsic support.
- Add missing invoke.texi option index/documentation entries.
- Fix SM3 immediate-argument compatibility in umbrella tests.
Testing:
- Targeted i386 tests for arrowlake/arrowlake-s feature and intrinsic coverage
pass with the same GCC 13 build tree used during validation.
Notes:
- All commits are DCO-signed.
- I do not have GCC write access; if this series is approved, please help
commit.
Jakit Liang (5):
i386: Backport Arrow Lake CPU and -march/-mtune support from GCC 14
i386: Backport AVXVNNIINT16/SM3/SM4/SHA512 support for Arrow Lake
targets
doc/i386: Document Arrow Lake extension switches in invoke.texi
testsuite/i386: Fix SM3 immediate override in avx-1 umbrella test
testsuite/i386: Fix SM3 immediate override in sse umbrella tests
gcc/common/config/i386/cpuinfo.h | 26 +++
gcc/common/config/i386/i386-common.cc | 87 ++++++++--
gcc/common/config/i386/i386-cpuinfo.h | 6 +
gcc/common/config/i386/i386-isas.h | 5 +
gcc/config.gcc | 3 +-
gcc/config/i386/avxvnniint16intrin.h | 138 ++++++++++++++
gcc/config/i386/cpuid.h | 20 ++
gcc/config/i386/driver-i386.cc | 9 +-
gcc/config/i386/i386-builtin-types.def | 6 +
gcc/config/i386/i386-builtin.def | 30 +++
gcc/config/i386/i386-c.cc | 22 +++
gcc/config/i386/i386-expand.cc | 3 +
gcc/config/i386/i386-isa.def | 4 +
gcc/config/i386/i386-options.cc | 15 +-
gcc/config/i386/i386.h | 6 +
gcc/config/i386/i386.opt | 20 ++
gcc/config/i386/immintrin.h | 8 +
gcc/config/i386/sha512intrin.h | 64 +++++++
gcc/config/i386/sm3intrin.h | 72 ++++++++
gcc/config/i386/sm4intrin.h | 70 ++++++++
gcc/config/i386/sse.md | 180 +++++++++++++++++++
gcc/doc/invoke.texi | 30 +++
gcc/testsuite/g++.target/i386/mv16.C | 12 ++
gcc/testsuite/gcc.target/i386/arrowlake-1.c | 24 +++
gcc/testsuite/gcc.target/i386/arrowlake-2.c | 36 ++++
gcc/testsuite/gcc.target/i386/arrowlake-3.c | 16 ++
gcc/testsuite/gcc.target/i386/avx-1.c | 3 +
.../gcc.target/i386/avxvnniint16-1.c | 41 ++++
.../gcc.target/i386/builtin_target.c | 14 ++
gcc/testsuite/gcc.target/i386/funcspec-56.inc | 8 +
gcc/testsuite/gcc.target/i386/sha512-1.c | 18 ++
gcc/testsuite/gcc.target/i386/sm3-1.c | 17 ++
gcc/testsuite/gcc.target/i386/sm4-1.c | 20 ++
gcc/testsuite/gcc.target/i386/sse-13.c | 3 +
gcc/testsuite/gcc.target/i386/sse-23.c | 3 +
gcc/testsuite/lib/target-supports.exp | 55 ++++++
36 files changed, 1089 insertions(+), 5 deletions(-)
create mode 100644 gcc/config/i386/avxvnniint16intrin.h
create mode 100644 gcc/config/i386/sha512intrin.h
create mode 100644 gcc/config/i386/sm3intrin.h
create mode 100644 gcc/config/i386/sm4intrin.h
create mode 100644 gcc/testsuite/gcc.target/i386/arrowlake-1.c
create mode 100644 gcc/testsuite/gcc.target/i386/arrowlake-2.c
create mode 100644 gcc/testsuite/gcc.target/i386/arrowlake-3.c
create mode 100644 gcc/testsuite/gcc.target/i386/avxvnniint16-1.c
create mode 100644 gcc/testsuite/gcc.target/i386/sha512-1.c
create mode 100644 gcc/testsuite/gcc.target/i386/sm3-1.c
create mode 100644 gcc/testsuite/gcc.target/i386/sm4-1.c
--
2.47.3