]> gcc.gnu.org Git - gcc.git/commit
aarch64: Fix transitive closure of features
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 29 Sep 2022 10:32:53 +0000 (11:32 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 29 Sep 2022 10:32:53 +0000 (11:32 +0100)
commitb754d32d3053a4ba2a82361ac0f2739797a811f1
treeb48d251bb8b49fe58e6dc6b89e233fd082070e82
parent0f244d848cffeda68f0eb4c5bb9c7e629bf2e957
aarch64: Fix transitive closure of features

aarch64-option-extensions.def requires us to maintain the transitive
closure of options by hand.  This patch fixes a few cases where a
flag was missed.

+noaes and +nosha2 now disable +crypto, which IMO makes more
sense and is consistent with the Clang behaviour.

gcc/
* config/aarch64/aarch64-option-extensions.def (dotprod): Depend
on fp as well as simd.
(sha3): Likewise.
(aes): Likewise.  Make +noaes disable crypto.
(sha2): Likewise +nosha2.  Also make +nosha2 disable sha3 and
sve2-sha3.
(sve2-sha3): Depend on sha2 as well as sha3.

gcc/testsuite/
* gcc.target/aarch64/options_set_6.c: Expect +crypto+nosha2 to
disable crypto but keep aes.
* gcc.target/aarch64/pragma_cpp_predefs_4.c: New test.
gcc/config/aarch64/aarch64-option-extensions.def
gcc/testsuite/gcc.target/aarch64/options_set_6.c
gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_4.c [new file with mode: 0644]
This page took 0.063257 seconds and 5 git commands to generate.