Currently we represent architecture requirements using a single bitmask of features. However, some of the new extensions have different requirements in non-streaming mode compared to stremaing mode. This series adds support for that and applies it to FAMINMAX.
Tested on aarch64-linux-gnu. Since we have quite a bit of work gated behind this, I'm planning to commit tomorrow evening (UTC) if there are no comments before then, but please let me know if you'd like more time to review. Richard Richard Sandiford (3): aarch64: Move ENTRY_VHSDF to aarch64-simd-pragma-builtins.def aarch64: Record separate streaming and non-streaming ISA requirements aarch64: Require SVE2 and/or SME2 for SVE FAMINMAX intrinsics gcc/config.gcc | 2 +- gcc/config/aarch64/aarch64-builtins.cc | 142 +++++++++--------- gcc/config/aarch64/aarch64-protos.h | 87 ++++++++++- .../aarch64/aarch64-simd-pragma-builtins.def | 14 +- .../aarch64/aarch64-sve-builtins-base.cc | 4 - .../aarch64/aarch64-sve-builtins-base.def | 29 +--- .../aarch64/aarch64-sve-builtins-sme.def | 30 ++-- .../aarch64/aarch64-sve-builtins-sve2.cc | 4 + .../aarch64/aarch64-sve-builtins-sve2.def | 48 +++--- gcc/config/aarch64/aarch64-sve-builtins.cc | 51 ++++--- gcc/config/aarch64/aarch64-sve-builtins.h | 13 +- .../aarch64/sve/acle/general/amin_1.c | 9 ++ .../aarch64/sve2/acle/asm/amax_f16.c | 5 +- .../aarch64/sve2/acle/asm/amax_f32.c | 5 +- .../aarch64/sve2/acle/asm/amax_f64.c | 5 +- .../aarch64/sve2/acle/asm/amin_f16.c | 5 +- .../aarch64/sve2/acle/asm/amin_f32.c | 5 +- .../aarch64/sve2/acle/asm/amin_f64.c | 5 +- 18 files changed, 282 insertions(+), 181 deletions(-) create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general/amin_1.c -- 2.25.1