[0/3] aarch64: Allow separate SVE and SME feature requirements

Message ID 20241030184830.3634301-1-richard.sandiford@arm.com
Headers
Series aarch64: Allow separate SVE and SME feature requirements |

Message

Richard Sandiford Oct. 30, 2024, 6:48 p.m. UTC
  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