]> git.feebdaed.xyz Git - 0xmirror/gcc.git/commit
aarch64: Split sve2-X extensions into sve2 + sve-X extension.
authorAlfie Richards <alfie.richards@arm.com>
Wed, 29 Oct 2025 13:29:10 +0000 (13:29 +0000)
committerAlfie Richards <alfie.richards@arm.com>
Thu, 18 Dec 2025 10:10:39 +0000 (10:10 +0000)
commit7c329561c0f5a5b9e4358e45b520cd16f29deac5
tree6a1bdf4bd804e6f7365935a8377aa94d24df8939
parent4b281c6c515c36945bc233df9b9991d70c35d455
aarch64: Split sve2-X extensions into sve2 + sve-X extension.

Changes the "sve2-sm4", "sve2-sha3", "sve2-bitperm", and "sve2-aes"
to be aliases which imply both "sve2" and the new option "sve-sm4",
"sve-sha3", "sve-bitperm", or "sve-aes" respectively.

The EXPLICIT_OFF values are chosen to preserve the existing behaviour of
+nosve2-X.

This granularity is needed to model the 2024 Architecture Extensions
dependencies.

gcc/ChangeLog:

* config/aarch64/aarch64-option-extensions.def
(sve-aes): New cli extension option.
(sve2-aes): Changed to be alias of sve2+sve-aes2.
(sve-bitperm): New cli extension option.
(sve2-bitperm): Changed to be alias of sve2+sve-bitperm.
(sve-sm4): New cli extension option.
(sve2-sm4): Changed to be alias of sve2+sve-sm4.
(sve-sm4): New cli extension option.
(sve2-sm4): Changed to be alias of sve2+sve-sm4.
* config/aarch64/aarch64.h (TARGET_SVE2_AES): Updated to require
sve2+sve-aes.
(TARGET_SVE2_BITPERM): Updated to require sve2+sve-bitperm.
(TARGET_SVE2_SHA3): Updated to require sve2+sve-sha3.
(TARGET_SVE2_SM4): Updated to require sve2+sve-sm4
* config/aarch64/aarch64-sve-builtins-sve2.def: Update gating for sve2-X
intrinsics.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/pragma_cpp_predefs_5.c: New test.
* gcc.target/aarch64/options_set_30.c: Likewise.
* lib/target-supports.exp (exts): Add sve-sm4, sve-aes, sve-bitperm.
gcc/config/aarch64/aarch64-option-extensions.def
gcc/config/aarch64/aarch64-sve-builtins-sve2.def
gcc/config/aarch64/aarch64.h
gcc/testsuite/gcc.target/aarch64/options_set_30.c [new file with mode: 0644]
gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.c [new file with mode: 0644]
gcc/testsuite/lib/target-supports.exp