This series backports Arrow Lake and Arrow Lake-S x86 enablement from GCC 14 to
GCC 13 release branch code.
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 verification script:
contrib/verify-arrowlake-backport.sh
/home/jakit/Repos/gcc/build-gcc-13.4-arrowlake
-> ALL PASS.
- Targeted i386 tests for arrowlake/arrowlake-s feature and intrinsic coverage
pass with the same build tree.
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
contrib/arrowlake-backport-gap-report.md | 141 ++++++++++++++
contrib/verify-arrowlake-backport.sh | 53 ++++++
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 ++++++
38 files changed, 1283 insertions(+), 5 deletions(-)
create mode 100644 contrib/arrowlake-backport-gap-report.md
create mode 100755 contrib/verify-arrowlake-backport.sh
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