mbox series

[pushed,v2,00/25] aarch64: Add support for SME

Message ID 20231205101323.1914247-1-richard.sandiford@arm.com
Headers show
Series aarch64: Add support for SME | expand

Message

Richard Sandiford Dec. 5, 2023, 10:12 a.m. UTC
This is the version of the SME support that I pushed to trunk.
The only significant difference from the original version:

  https://gcc.gnu.org/pipermail/gcc-patches/2023-November/637049.html

is that it includes some tweaks to the C overload resolution code,
since it turned out that the current code gives misleading diagnostics
for some SME2 cases.

Retested on aarch64-linux-gnu.

Richard Sandiford (25):
  aarch64: Generalise require_immediate_lane_index
  aarch64: Use SVE's RDVL instruction
  aarch64: Make AARCH64_FL_SVE requirements explicit
  aarch64: Add group suffixes to SVE intrinsics
  aarch64: Add sve_type to SVE builtins code
  aarch64: Generalise some SVE ACLE error messages
  aarch64: Replace vague "previous arguments" message
  aarch64: Make more use of sve_type in ACLE code
  aarch64: Tweak error message for (tuple,vector) pairs
  aarch64: Add tuple forms of svreinterpret
  aarch64: Add arm_streaming(_compatible) attributes
  aarch64: Add +sme
  aarch64: Distinguish streaming-compatible AdvSIMD insns
  aarch64: Mark relevant SVE instructions as non-streaming
  aarch64: Switch PSTATE.SM around calls
  aarch64: Add support for SME ZA attributes
  aarch64: Add a register class for w12-w15
  aarch64: Add a VNx1TI mode
  aarch64: Generalise unspec_based_function_base
  aarch64: Generalise _m rules for SVE intrinsics
  aarch64: Add support for <arm_sme.h>
  aarch64: Add support for __arm_locally_streaming
  aarch64: Handle PSTATE.SM across abnormal edges
  aarch64: Enforce inlining restrictions for SME
  aarch64: Update sibcall handling for SME

 gcc/config.gcc                                |    4 +-
 gcc/config/aarch64/aarch64-c.cc               |   53 +
 gcc/config/aarch64/aarch64-isa-modes.def      |   40 +
 gcc/config/aarch64/aarch64-modes.def          |   21 +-
 .../aarch64/aarch64-option-extensions.def     |    6 +
 gcc/config/aarch64/aarch64-passes.def         |    1 +
 gcc/config/aarch64/aarch64-protos.h           |   21 +-
 gcc/config/aarch64/aarch64-simd.md            |   48 +-
 gcc/config/aarch64/aarch64-sme.md             |  831 ++++
 .../aarch64/aarch64-sve-builtins-base.cc      |    5 +-
 .../aarch64/aarch64-sve-builtins-base.def     |  168 +-
 .../aarch64/aarch64-sve-builtins-functions.h  |  100 +-
 .../aarch64/aarch64-sve-builtins-shapes.cc    |  435 ++-
 .../aarch64/aarch64-sve-builtins-shapes.h     |   14 +
 .../aarch64/aarch64-sve-builtins-sme.cc       |  412 ++
 .../aarch64/aarch64-sve-builtins-sme.def      |   76 +
 gcc/config/aarch64/aarch64-sve-builtins-sme.h |   57 +
 .../aarch64/aarch64-sve-builtins-sve2.cc      |   10 +-
 .../aarch64/aarch64-sve-builtins-sve2.def     |   73 +-
 gcc/config/aarch64/aarch64-sve-builtins.cc    |  716 +++-
 gcc/config/aarch64/aarch64-sve-builtins.def   |   45 +-
 gcc/config/aarch64/aarch64-sve-builtins.h     |  214 +-
 gcc/config/aarch64/aarch64-sve.md             |  132 +-
 gcc/config/aarch64/aarch64-sve2.md            |   14 +-
 gcc/config/aarch64/aarch64.cc                 | 3338 ++++++++++++++++-
 gcc/config/aarch64/aarch64.h                  |  196 +-
 gcc/config/aarch64/aarch64.md                 |  176 +-
 gcc/config/aarch64/arm_sme.h                  |   45 +
 gcc/config/aarch64/constraints.md             |   21 +
 gcc/config/aarch64/iterators.md               |  124 +-
 gcc/config/aarch64/predicates.md              |    8 +-
 gcc/config/aarch64/t-aarch64                  |   27 +-
 gcc/doc/invoke.texi                           |    6 +
 gcc/doc/sourcebuild.texi                      |    2 +
 .../aarch64/sme/aarch64-sme-acle-asm.exp      |   82 +
 .../g++.target/aarch64/sme/aarch64-sme.exp    |   46 +
 .../g++.target/aarch64/sme/exceptions_1.C     |  189 +
 .../g++.target/aarch64/sme/exceptions_2.C     |  148 +
 .../g++.target/aarch64/sme/keyword_macros_1.C |   10 +
 .../g++.target/aarch64/sme/streaming_mode_1.C |  142 +
 .../g++.target/aarch64/sme/streaming_mode_2.C |   25 +
 .../g++.target/aarch64/sve/aarch64-ssve.exp   |  308 ++
 .../aarch64/sve/acle/aarch64-sve-acle-asm.exp |    1 +
 .../sve/acle/general-c++/func_redef_4.c       |    3 +-
 .../sve/acle/general-c++/func_redef_5.c       |    1 +
 .../sve/acle/general-c++/func_redef_7.c       |    1 +
 .../sve2/acle/aarch64-sve2-acle-asm.exp       |    1 +
 .../gcc.target/aarch64/auto-init-1.c          |    3 +-
 gcc/testsuite/gcc.target/aarch64/movdf_2.c    |   51 +
 gcc/testsuite/gcc.target/aarch64/movdi_3.c    |   59 +
 gcc/testsuite/gcc.target/aarch64/movhf_2.c    |   53 +
 gcc/testsuite/gcc.target/aarch64/movhi_2.c    |   61 +
 gcc/testsuite/gcc.target/aarch64/movqi_2.c    |   59 +
 gcc/testsuite/gcc.target/aarch64/movsf_2.c    |   51 +
 gcc/testsuite/gcc.target/aarch64/movsi_2.c    |   59 +
 gcc/testsuite/gcc.target/aarch64/movtf_3.c    |   81 +
 gcc/testsuite/gcc.target/aarch64/movtf_4.c    |   78 +
 gcc/testsuite/gcc.target/aarch64/movti_3.c    |   86 +
 gcc/testsuite/gcc.target/aarch64/movti_4.c    |   83 +
 gcc/testsuite/gcc.target/aarch64/movv16qi_4.c |   82 +
 gcc/testsuite/gcc.target/aarch64/movv16qi_5.c |   79 +
 gcc/testsuite/gcc.target/aarch64/movv8qi_4.c  |   55 +
 .../gcc.target/aarch64/pragma_cpp_predefs_4.c |   38 +
 .../aarch64/sme/aarch64-sme-acle-asm.exp      |   81 +
 .../gcc.target/aarch64/sme/aarch64-sme.exp    |   46 +
 .../aarch64/sme/acle-asm/addha_za32.c         |   48 +
 .../aarch64/sme/acle-asm/addha_za64.c         |   50 +
 .../aarch64/sme/acle-asm/addva_za32.c         |   48 +
 .../aarch64/sme/acle-asm/addva_za64.c         |   50 +
 .../aarch64/sme/acle-asm/arm_has_sme_sc.c     |   25 +
 .../sme/acle-asm/arm_in_streaming_mode_ns.c   |   11 +
 .../sme/acle-asm/arm_in_streaming_mode_s.c    |   11 +
 .../sme/acle-asm/arm_in_streaming_mode_sc.c   |   26 +
 .../gcc.target/aarch64/sme/acle-asm/cntsb_s.c |  310 ++
 .../aarch64/sme/acle-asm/cntsb_sc.c           |   12 +
 .../gcc.target/aarch64/sme/acle-asm/cntsd_s.c |  277 ++
 .../aarch64/sme/acle-asm/cntsd_sc.c           |   13 +
 .../gcc.target/aarch64/sme/acle-asm/cntsh_s.c |  279 ++
 .../aarch64/sme/acle-asm/cntsh_sc.c           |   13 +
 .../gcc.target/aarch64/sme/acle-asm/cntsw_s.c |  278 ++
 .../aarch64/sme/acle-asm/cntsw_sc.c           |   13 +
 .../aarch64/sme/acle-asm/ld1_hor_vnum_za128.c |   77 +
 .../aarch64/sme/acle-asm/ld1_hor_vnum_za16.c  |  123 +
 .../aarch64/sme/acle-asm/ld1_hor_vnum_za32.c  |  123 +
 .../aarch64/sme/acle-asm/ld1_hor_vnum_za64.c  |  112 +
 .../aarch64/sme/acle-asm/ld1_hor_vnum_za8.c   |  112 +
 .../aarch64/sme/acle-asm/ld1_hor_za128.c      |   83 +
 .../aarch64/sme/acle-asm/ld1_hor_za16.c       |  126 +
 .../aarch64/sme/acle-asm/ld1_hor_za32.c       |  125 +
 .../aarch64/sme/acle-asm/ld1_hor_za64.c       |  105 +
 .../aarch64/sme/acle-asm/ld1_hor_za8.c        |   95 +
 .../aarch64/sme/acle-asm/ld1_ver_vnum_za128.c |   77 +
 .../aarch64/sme/acle-asm/ld1_ver_vnum_za16.c  |  123 +
 .../aarch64/sme/acle-asm/ld1_ver_vnum_za32.c  |  123 +
 .../aarch64/sme/acle-asm/ld1_ver_vnum_za64.c  |  112 +
 .../aarch64/sme/acle-asm/ld1_ver_vnum_za8.c   |  112 +
 .../aarch64/sme/acle-asm/ld1_ver_za128.c      |   83 +
 .../aarch64/sme/acle-asm/ld1_ver_za16.c       |  126 +
 .../aarch64/sme/acle-asm/ld1_ver_za32.c       |  125 +
 .../aarch64/sme/acle-asm/ld1_ver_za64.c       |  105 +
 .../aarch64/sme/acle-asm/ld1_ver_za8.c        |   95 +
 .../aarch64/sme/acle-asm/ldr_vnum_za_s.c      |  147 +
 .../aarch64/sme/acle-asm/ldr_vnum_za_sc.c     |  148 +
 .../aarch64/sme/acle-asm/ldr_za_s.c           |  124 +
 .../aarch64/sme/acle-asm/ldr_za_sc.c          |   71 +
 .../aarch64/sme/acle-asm/mopa_za32.c          |  102 +
 .../aarch64/sme/acle-asm/mopa_za64.c          |   70 +
 .../aarch64/sme/acle-asm/mops_za32.c          |  102 +
 .../aarch64/sme/acle-asm/mops_za64.c          |   70 +
 .../aarch64/sme/acle-asm/read_hor_za128.c     |  435 +++
 .../aarch64/sme/acle-asm/read_hor_za16.c      |  207 +
 .../aarch64/sme/acle-asm/read_hor_za32.c      |  196 +
 .../aarch64/sme/acle-asm/read_hor_za64.c      |  186 +
 .../aarch64/sme/acle-asm/read_hor_za8.c       |  125 +
 .../aarch64/sme/acle-asm/read_ver_za128.c     |  435 +++
 .../aarch64/sme/acle-asm/read_ver_za16.c      |  207 +
 .../aarch64/sme/acle-asm/read_ver_za32.c      |  196 +
 .../aarch64/sme/acle-asm/read_ver_za64.c      |  186 +
 .../aarch64/sme/acle-asm/read_ver_za8.c       |  125 +
 .../aarch64/sme/acle-asm/st1_hor_vnum_za128.c |   77 +
 .../aarch64/sme/acle-asm/st1_hor_vnum_za16.c  |  123 +
 .../aarch64/sme/acle-asm/st1_hor_vnum_za32.c  |  123 +
 .../aarch64/sme/acle-asm/st1_hor_vnum_za64.c  |  112 +
 .../aarch64/sme/acle-asm/st1_hor_vnum_za8.c   |  112 +
 .../aarch64/sme/acle-asm/st1_hor_za128.c      |   83 +
 .../aarch64/sme/acle-asm/st1_hor_za16.c       |  126 +
 .../aarch64/sme/acle-asm/st1_hor_za32.c       |  125 +
 .../aarch64/sme/acle-asm/st1_hor_za64.c       |  105 +
 .../aarch64/sme/acle-asm/st1_hor_za8.c        |   95 +
 .../aarch64/sme/acle-asm/st1_ver_vnum_za128.c |   77 +
 .../aarch64/sme/acle-asm/st1_ver_vnum_za16.c  |  123 +
 .../aarch64/sme/acle-asm/st1_ver_vnum_za32.c  |  123 +
 .../aarch64/sme/acle-asm/st1_ver_vnum_za64.c  |  112 +
 .../aarch64/sme/acle-asm/st1_ver_vnum_za8.c   |  112 +
 .../aarch64/sme/acle-asm/st1_ver_za128.c      |   83 +
 .../aarch64/sme/acle-asm/st1_ver_za16.c       |  126 +
 .../aarch64/sme/acle-asm/st1_ver_za32.c       |  125 +
 .../aarch64/sme/acle-asm/st1_ver_za64.c       |  105 +
 .../aarch64/sme/acle-asm/st1_ver_za8.c        |   95 +
 .../aarch64/sme/acle-asm/str_vnum_za_s.c      |  147 +
 .../aarch64/sme/acle-asm/str_vnum_za_sc.c     |  148 +
 .../aarch64/sme/acle-asm/str_za_s.c           |  124 +
 .../aarch64/sme/acle-asm/str_za_sc.c          |   71 +
 .../aarch64/sme/acle-asm/sumopa_za32.c        |   30 +
 .../aarch64/sme/acle-asm/sumopa_za64.c        |   32 +
 .../aarch64/sme/acle-asm/sumops_za32.c        |   30 +
 .../aarch64/sme/acle-asm/sumops_za64.c        |   32 +
 .../aarch64/sme/acle-asm/test_sme_acle.h      |   62 +
 .../aarch64/sme/acle-asm/undef_za.c           |   33 +
 .../aarch64/sme/acle-asm/usmopa_za32.c        |   30 +
 .../aarch64/sme/acle-asm/usmopa_za64.c        |   32 +
 .../aarch64/sme/acle-asm/usmops_za32.c        |   30 +
 .../aarch64/sme/acle-asm/usmops_za64.c        |   32 +
 .../aarch64/sme/acle-asm/write_hor_za128.c    |  193 +
 .../aarch64/sme/acle-asm/write_hor_za16.c     |  133 +
 .../aarch64/sme/acle-asm/write_hor_za32.c     |  143 +
 .../aarch64/sme/acle-asm/write_hor_za64.c     |  133 +
 .../aarch64/sme/acle-asm/write_hor_za8.c      |   93 +
 .../aarch64/sme/acle-asm/write_ver_za128.c    |  193 +
 .../aarch64/sme/acle-asm/write_ver_za16.c     |  133 +
 .../aarch64/sme/acle-asm/write_ver_za32.c     |  143 +
 .../aarch64/sme/acle-asm/write_ver_za64.c     |  133 +
 .../aarch64/sme/acle-asm/write_ver_za8.c      |   93 +
 .../aarch64/sme/acle-asm/zero_mask_za.c       |  130 +
 .../gcc.target/aarch64/sme/acle-asm/zero_za.c |   11 +
 .../gcc.target/aarch64/sme/arm_neon_1.c       |   13 +
 .../gcc.target/aarch64/sme/arm_neon_2.c       |   11 +
 .../gcc.target/aarch64/sme/arm_neon_3.c       |   11 +
 .../gcc.target/aarch64/sme/call_sm_switch_1.c |  233 ++
 .../aarch64/sme/call_sm_switch_10.c           |   37 +
 .../gcc.target/aarch64/sme/call_sm_switch_2.c |   43 +
 .../gcc.target/aarch64/sme/call_sm_switch_3.c |  166 +
 .../gcc.target/aarch64/sme/call_sm_switch_4.c |   43 +
 .../gcc.target/aarch64/sme/call_sm_switch_5.c |  318 ++
 .../gcc.target/aarch64/sme/call_sm_switch_6.c |   45 +
 .../gcc.target/aarch64/sme/call_sm_switch_7.c |  516 +++
 .../gcc.target/aarch64/sme/call_sm_switch_8.c |   87 +
 .../gcc.target/aarch64/sme/call_sm_switch_9.c |  103 +
 .../gcc.target/aarch64/sme/inlining_1.c       |   47 +
 .../gcc.target/aarch64/sme/inlining_10.c      |   57 +
 .../gcc.target/aarch64/sme/inlining_11.c      |   57 +
 .../gcc.target/aarch64/sme/inlining_12.c      |   15 +
 .../gcc.target/aarch64/sme/inlining_13.c      |   15 +
 .../gcc.target/aarch64/sme/inlining_14.c      |   15 +
 .../gcc.target/aarch64/sme/inlining_15.c      |   27 +
 .../gcc.target/aarch64/sme/inlining_2.c       |   47 +
 .../gcc.target/aarch64/sme/inlining_3.c       |   47 +
 .../gcc.target/aarch64/sme/inlining_4.c       |   47 +
 .../gcc.target/aarch64/sme/inlining_5.c       |   47 +
 .../gcc.target/aarch64/sme/inlining_6.c       |   31 +
 .../gcc.target/aarch64/sme/inlining_7.c       |   31 +
 .../gcc.target/aarch64/sme/inlining_8.c       |   31 +
 .../gcc.target/aarch64/sme/inlining_9.c       |   55 +
 .../gcc.target/aarch64/sme/keyword_macros_1.c |   10 +
 .../aarch64/sme/locally_streaming_1.c         |  466 +++
 .../aarch64/sme/locally_streaming_2.c         |  177 +
 .../aarch64/sme/locally_streaming_3.c         |  273 ++
 .../aarch64/sme/locally_streaming_4.c         |  145 +
 .../gcc.target/aarch64/sme/nonlocal_goto_1.c  |   58 +
 .../gcc.target/aarch64/sme/nonlocal_goto_2.c  |   44 +
 .../gcc.target/aarch64/sme/nonlocal_goto_3.c  |   46 +
 .../gcc.target/aarch64/sme/nonlocal_goto_4.c  |   25 +
 .../gcc.target/aarch64/sme/nonlocal_goto_5.c  |   26 +
 .../gcc.target/aarch64/sme/nonlocal_goto_6.c  |   31 +
 .../gcc.target/aarch64/sme/nonlocal_goto_7.c  |   25 +
 .../gcc.target/aarch64/sme/sibcall_1.c        |   45 +
 .../gcc.target/aarch64/sme/sibcall_2.c        |   45 +
 .../gcc.target/aarch64/sme/sibcall_3.c        |   45 +
 .../gcc.target/aarch64/sme/sibcall_4.c        |   45 +
 .../gcc.target/aarch64/sme/sibcall_5.c        |   45 +
 .../gcc.target/aarch64/sme/sibcall_6.c        |   26 +
 .../gcc.target/aarch64/sme/sibcall_7.c        |   26 +
 .../gcc.target/aarch64/sme/sibcall_8.c        |   19 +
 .../gcc.target/aarch64/sme/streaming_mode_1.c |  130 +
 .../gcc.target/aarch64/sme/streaming_mode_2.c |   25 +
 .../gcc.target/aarch64/sme/streaming_mode_3.c |   63 +
 .../gcc.target/aarch64/sme/streaming_mode_4.c |   22 +
 .../gcc.target/aarch64/sme/za_state_1.c       |  154 +
 .../gcc.target/aarch64/sme/za_state_2.c       |   73 +
 .../gcc.target/aarch64/sme/za_state_3.c       |   31 +
 .../gcc.target/aarch64/sme/za_state_4.c       |  585 +++
 .../gcc.target/aarch64/sme/za_state_5.c       |  595 +++
 .../gcc.target/aarch64/sme/za_state_6.c       |   23 +
 .../aarch64/sve/acle/aarch64-sve-acle-asm.exp |    1 +
 .../aarch64/sve/acle/asm/adda_f16.c           |    1 +
 .../aarch64/sve/acle/asm/adda_f32.c           |    1 +
 .../aarch64/sve/acle/asm/adda_f64.c           |    1 +
 .../gcc.target/aarch64/sve/acle/asm/adrb.c    |    1 +
 .../gcc.target/aarch64/sve/acle/asm/adrd.c    |    1 +
 .../gcc.target/aarch64/sve/acle/asm/adrh.c    |    1 +
 .../gcc.target/aarch64/sve/acle/asm/adrw.c    |    1 +
 .../aarch64/sve/acle/asm/bfmmla_f32.c         |    1 +
 .../gcc.target/aarch64/sve/acle/asm/cntb.c    |   71 +-
 .../gcc.target/aarch64/sve/acle/asm/cntd.c    |   12 +-
 .../gcc.target/aarch64/sve/acle/asm/cnth.c    |   20 +-
 .../gcc.target/aarch64/sve/acle/asm/cntw.c    |   16 +-
 .../aarch64/sve/acle/asm/compact_f32.c        |    1 +
 .../aarch64/sve/acle/asm/compact_f64.c        |    1 +
 .../aarch64/sve/acle/asm/compact_s32.c        |    1 +
 .../aarch64/sve/acle/asm/compact_s64.c        |    1 +
 .../aarch64/sve/acle/asm/compact_u32.c        |    1 +
 .../aarch64/sve/acle/asm/compact_u64.c        |    1 +
 .../aarch64/sve/acle/asm/expa_f16.c           |    1 +
 .../aarch64/sve/acle/asm/expa_f32.c           |    1 +
 .../aarch64/sve/acle/asm/expa_f64.c           |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_f32.c     |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_f64.c     |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_s32.c     |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_s64.c     |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_u32.c     |    1 +
 .../aarch64/sve/acle/asm/ld1_gather_u64.c     |    1 +
 .../aarch64/sve/acle/asm/ld1ro_bf16.c         |    1 +
 .../aarch64/sve/acle/asm/ld1ro_f16.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_f32.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_f64.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_s16.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_s32.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_s64.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_s8.c           |    1 +
 .../aarch64/sve/acle/asm/ld1ro_u16.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_u32.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_u64.c          |    1 +
 .../aarch64/sve/acle/asm/ld1ro_u8.c           |    1 +
 .../aarch64/sve/acle/asm/ld1sb_gather_s32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sb_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sb_gather_u32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sb_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sh_gather_s32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sh_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sh_gather_u32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sh_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sw_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1sw_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1ub_gather_s32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1ub_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1ub_gather_u32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1ub_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uh_gather_s32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uh_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uh_gather_u32.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uh_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uw_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ld1uw_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_bf16.c         |    1 +
 .../aarch64/sve/acle/asm/ldff1_f16.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_f32.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_f64.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_f32.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_f64.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_s32.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_s64.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_u32.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_gather_u64.c   |    1 +
 .../aarch64/sve/acle/asm/ldff1_s16.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_s32.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_s64.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_s8.c           |    1 +
 .../aarch64/sve/acle/asm/ldff1_u16.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_u32.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_u64.c          |    1 +
 .../aarch64/sve/acle/asm/ldff1_u8.c           |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_gather_s32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_gather_u32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_s16.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_u16.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sb_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_gather_s32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_gather_u32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sh_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sw_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sw_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1sw_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1sw_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_gather_s32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_gather_u32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_s16.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_u16.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1ub_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_gather_s32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_gather_u32.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uh_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uw_gather_s64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uw_gather_u64.c |    1 +
 .../aarch64/sve/acle/asm/ldff1uw_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldff1uw_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1_bf16.c         |    1 +
 .../aarch64/sve/acle/asm/ldnf1_f16.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_f32.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_f64.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_s16.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_s32.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_s64.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_s8.c           |    1 +
 .../aarch64/sve/acle/asm/ldnf1_u16.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_u32.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_u64.c          |    1 +
 .../aarch64/sve/acle/asm/ldnf1_u8.c           |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_s16.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_u16.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sb_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sh_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sh_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sh_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sh_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sw_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1sw_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_s16.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_u16.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1ub_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uh_s32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uh_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uh_u32.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uh_u64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uw_s64.c        |    1 +
 .../aarch64/sve/acle/asm/ldnf1uw_u64.c        |    1 +
 .../aarch64/sve/acle/asm/mmla_f32.c           |    1 +
 .../aarch64/sve/acle/asm/mmla_f64.c           |    1 +
 .../aarch64/sve/acle/asm/mmla_s32.c           |    1 +
 .../aarch64/sve/acle/asm/mmla_u32.c           |    1 +
 .../gcc.target/aarch64/sve/acle/asm/prfb.c    |    6 +-
 .../aarch64/sve/acle/asm/prfb_gather.c        |    1 +
 .../gcc.target/aarch64/sve/acle/asm/prfd.c    |    4 +-
 .../aarch64/sve/acle/asm/prfd_gather.c        |    1 +
 .../gcc.target/aarch64/sve/acle/asm/prfh.c    |    4 +-
 .../aarch64/sve/acle/asm/prfh_gather.c        |    1 +
 .../gcc.target/aarch64/sve/acle/asm/prfw.c    |    4 +-
 .../aarch64/sve/acle/asm/prfw_gather.c        |    1 +
 .../gcc.target/aarch64/sve/acle/asm/rdffr_1.c |    1 +
 .../aarch64/sve/acle/asm/reinterpret_bf16.c   |   62 +
 .../aarch64/sve/acle/asm/reinterpret_f16.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_f32.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_f64.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_s16.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_s32.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_s64.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_s8.c     |   62 +
 .../aarch64/sve/acle/asm/reinterpret_u16.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_u32.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_u64.c    |   62 +
 .../aarch64/sve/acle/asm/reinterpret_u8.c     |   62 +
 .../aarch64/sve/acle/asm/st1_scatter_f32.c    |    1 +
 .../aarch64/sve/acle/asm/st1_scatter_f64.c    |    1 +
 .../aarch64/sve/acle/asm/st1_scatter_s32.c    |    1 +
 .../aarch64/sve/acle/asm/st1_scatter_s64.c    |    1 +
 .../aarch64/sve/acle/asm/st1_scatter_u32.c    |    1 +
 .../aarch64/sve/acle/asm/st1_scatter_u64.c    |    1 +
 .../aarch64/sve/acle/asm/st1b_scatter_s32.c   |    1 +
 .../aarch64/sve/acle/asm/st1b_scatter_s64.c   |    1 +
 .../aarch64/sve/acle/asm/st1b_scatter_u32.c   |    1 +
 .../aarch64/sve/acle/asm/st1b_scatter_u64.c   |    1 +
 .../aarch64/sve/acle/asm/st1h_scatter_s32.c   |    1 +
 .../aarch64/sve/acle/asm/st1h_scatter_s64.c   |    1 +
 .../aarch64/sve/acle/asm/st1h_scatter_u32.c   |    1 +
 .../aarch64/sve/acle/asm/st1h_scatter_u64.c   |    1 +
 .../aarch64/sve/acle/asm/st1w_scatter_s64.c   |    1 +
 .../aarch64/sve/acle/asm/st1w_scatter_u64.c   |    1 +
 .../aarch64/sve/acle/asm/test_sve_acle.h      |   35 +-
 .../aarch64/sve/acle/asm/tmad_f16.c           |    1 +
 .../aarch64/sve/acle/asm/tmad_f32.c           |    1 +
 .../aarch64/sve/acle/asm/tmad_f64.c           |    1 +
 .../aarch64/sve/acle/asm/tsmul_f16.c          |    1 +
 .../aarch64/sve/acle/asm/tsmul_f32.c          |    1 +
 .../aarch64/sve/acle/asm/tsmul_f64.c          |    1 +
 .../aarch64/sve/acle/asm/tssel_f16.c          |    1 +
 .../aarch64/sve/acle/asm/tssel_f32.c          |    1 +
 .../aarch64/sve/acle/asm/tssel_f64.c          |    1 +
 .../aarch64/sve/acle/asm/usmmla_s32.c         |    1 +
 .../aarch64/sve/acle/general-c/adr_index_1.c  |    6 +-
 .../aarch64/sve/acle/general-c/adr_offset_1.c |    6 +-
 .../aarch64/sve/acle/general-c/binary_1.c     |    8 +-
 .../sve/acle/general-c/binary_int_opt_n.c     |    2 +-
 .../sve/acle/general-c/binary_lane_1.c        |    6 +-
 .../sve/acle/general-c/binary_long_lane_1.c   |    6 +-
 .../sve/acle/general-c/binary_long_opt_n_1.c  |   10 +-
 .../aarch64/sve/acle/general-c/binary_n_1.c   |    2 +-
 .../acle/general-c/binary_narrowb_opt_n_1.c   |   10 +-
 .../acle/general-c/binary_narrowt_opt_n_1.c   |   12 +-
 .../sve/acle/general-c/binary_opt_n_2.c       |   16 +-
 .../sve/acle/general-c/binary_opt_n_3.c       |   18 +-
 .../sve/acle/general-c/binary_rotate_1.c      |    6 +-
 .../sve/acle/general-c/binary_to_uint_1.c     |    8 +-
 .../sve/acle/general-c/binary_uint64_n_1.c    |    2 +-
 .../acle/general-c/binary_uint64_opt_n_2.c    |    2 +-
 .../sve/acle/general-c/binary_uint_1.c        |    2 +-
 .../sve/acle/general-c/binary_uint_n_1.c      |    2 +-
 .../sve/acle/general-c/binary_uint_opt_n_1.c  |    2 +-
 .../sve/acle/general-c/binary_wide_1.c        |    8 +-
 .../sve/acle/general-c/binary_wide_opt_n_1.c  |    4 +-
 .../sve/acle/general-c/binary_za_int_m_1.c    |   50 +
 .../sve/acle/general-c/binary_za_m_1.c        |   49 +
 .../sve/acle/general-c/binary_za_m_2.c        |   11 +
 .../sve/acle/general-c/binary_za_uint_m_1.c   |   50 +
 .../aarch64/sve/acle/general-c/clast_1.c      |    6 +-
 .../aarch64/sve/acle/general-c/compare_1.c    |   18 +-
 .../sve/acle/general-c/compare_opt_n_1.c      |   16 +-
 .../sve/acle/general-c/compare_wide_opt_n_1.c |    2 +-
 .../sve/acle/general-c/count_vector_1.c       |    2 +-
 .../aarch64/sve/acle/general-c/create_1.c     |   10 +-
 .../aarch64/sve/acle/general-c/create_3.c     |   10 +-
 .../aarch64/sve/acle/general-c/create_5.c     |   10 +-
 .../aarch64/sve/acle/general-c/fold_left_1.c  |    4 +-
 .../aarch64/sve/acle/general-c/func_redef_4.c |    3 +-
 .../aarch64/sve/acle/general-c/func_redef_5.c |    1 +
 .../sve/acle/general-c/inc_dec_pred_1.c       |    2 +-
 .../aarch64/sve/acle/general-c/mmla_1.c       |   24 +-
 .../acle/general-c/prefetch_gather_offset_2.c |    2 +-
 .../aarch64/sve/acle/general-c/read_za_m_1.c  |   48 +
 .../aarch64/sve/acle/general-c/reduction_1.c  |    2 +-
 .../sve/acle/general-c/reduction_wide_1.c     |    2 +-
 .../aarch64/sve/acle/general-c/set_1.c        |    4 +-
 .../aarch64/sve/acle/general-c/set_3.c        |    4 +-
 .../aarch64/sve/acle/general-c/set_5.c        |    4 +-
 .../general-c/shift_right_imm_narrowb_1.c     |    2 +-
 .../shift_right_imm_narrowb_to_uint_1.c       |    2 +-
 .../general-c/shift_right_imm_narrowt_1.c     |    4 +-
 .../shift_right_imm_narrowt_to_uint_1.c       |    4 +-
 .../aarch64/sve/acle/general-c/store_1.c      |    2 +-
 .../aarch64/sve/acle/general-c/store_2.c      |    2 +-
 .../acle/general-c/store_scatter_offset_1.c   |    4 +-
 .../sve/acle/general-c/ternary_bfloat16_1.c   |    2 +-
 .../acle/general-c/ternary_bfloat16_lane_1.c  |    2 +-
 .../general-c/ternary_bfloat16_lanex2_1.c     |    2 +-
 .../acle/general-c/ternary_bfloat16_opt_n_1.c |    2 +-
 .../general-c/ternary_intq_uintq_lane_1.c     |    6 +-
 .../general-c/ternary_intq_uintq_opt_n_1.c    |    4 +-
 .../sve/acle/general-c/ternary_lane_1.c       |   10 +-
 .../acle/general-c/ternary_lane_rotate_1.c    |   10 +-
 .../sve/acle/general-c/ternary_long_lane_1.c  |    6 +-
 .../sve/acle/general-c/ternary_long_opt_n_1.c |    4 +-
 .../sve/acle/general-c/ternary_opt_n_1.c      |   32 +-
 .../sve/acle/general-c/ternary_qq_lane_1.c    |    6 +-
 .../acle/general-c/ternary_qq_lane_rotate_1.c |    6 +-
 .../sve/acle/general-c/ternary_qq_opt_n_2.c   |    4 +-
 .../sve/acle/general-c/ternary_qq_rotate_1.c  |    6 +-
 .../sve/acle/general-c/ternary_rotate_1.c     |   10 +-
 .../general-c/ternary_shift_right_imm_1.c     |   10 +-
 .../sve/acle/general-c/ternary_uint_1.c       |   12 +-
 .../sve/acle/general-c/ternary_uintq_intq_1.c |    6 +-
 .../general-c/ternary_uintq_intq_lane_1.c     |    6 +-
 .../general-c/ternary_uintq_intq_opt_n_1.c    |    4 +-
 .../aarch64/sve/acle/general-c/tmad_1.c       |    6 +-
 .../aarch64/sve/acle/general-c/unary_1.c      |   10 +-
 .../aarch64/sve/acle/general-c/unary_2.c      |    2 +-
 .../sve/acle/general-c/unary_convert_1.c      |    2 +-
 .../sve/acle/general-c/unary_convert_2.c      |    2 +-
 .../acle/general-c/unary_convert_narrowt_1.c  |    2 +-
 .../sve/acle/general-c/unary_narrowb_1.c      |    2 +-
 .../acle/general-c/unary_narrowb_to_uint_1.c  |    2 +-
 .../sve/acle/general-c/unary_narrowt_1.c      |    4 +-
 .../acle/general-c/unary_narrowt_to_uint_1.c  |    4 +-
 .../sve/acle/general-c/unary_to_int_1.c       |    2 +-
 .../sve/acle/general-c/unary_to_uint_1.c      |    2 +-
 .../sve/acle/general-c/unary_to_uint_2.c      |    2 +-
 .../sve/acle/general-c/unary_to_uint_3.c      |    2 +-
 .../aarch64/sve/acle/general-c/unary_uint_1.c |    2 +-
 .../sve/acle/general-c/unary_widen_1.c        |    4 +-
 .../aarch64/sve/acle/general-c/unary_za_m_1.c |   49 +
 .../aarch64/sve/acle/general-c/undeclared_2.c |    2 +-
 .../aarch64/sve/acle/general-c/write_za_m_1.c |   48 +
 .../gcc.target/aarch64/sve/loop_add_4.c       |    6 +-
 .../aarch64/sve/pcs/stack_clash_1.c           |    3 +-
 .../sve2/acle/aarch64-sve2-acle-asm.exp       |    1 +
 .../aarch64/sve2/acle/asm/aesd_u8.c           |    1 +
 .../aarch64/sve2/acle/asm/aese_u8.c           |    1 +
 .../aarch64/sve2/acle/asm/aesimc_u8.c         |    1 +
 .../aarch64/sve2/acle/asm/aesmc_u8.c          |    1 +
 .../aarch64/sve2/acle/asm/bdep_u16.c          |    1 +
 .../aarch64/sve2/acle/asm/bdep_u32.c          |    1 +
 .../aarch64/sve2/acle/asm/bdep_u64.c          |    1 +
 .../aarch64/sve2/acle/asm/bdep_u8.c           |    1 +
 .../aarch64/sve2/acle/asm/bext_u16.c          |    1 +
 .../aarch64/sve2/acle/asm/bext_u32.c          |    1 +
 .../aarch64/sve2/acle/asm/bext_u64.c          |    1 +
 .../aarch64/sve2/acle/asm/bext_u8.c           |    1 +
 .../aarch64/sve2/acle/asm/bgrp_u16.c          |    1 +
 .../aarch64/sve2/acle/asm/bgrp_u32.c          |    1 +
 .../aarch64/sve2/acle/asm/bgrp_u64.c          |    1 +
 .../aarch64/sve2/acle/asm/bgrp_u8.c           |    1 +
 .../aarch64/sve2/acle/asm/histcnt_s32.c       |    1 +
 .../aarch64/sve2/acle/asm/histcnt_s64.c       |    1 +
 .../aarch64/sve2/acle/asm/histcnt_u32.c       |    1 +
 .../aarch64/sve2/acle/asm/histcnt_u64.c       |    1 +
 .../aarch64/sve2/acle/asm/histseg_s8.c        |    1 +
 .../aarch64/sve2/acle/asm/histseg_u8.c        |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_f32.c  |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_f64.c  |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_s32.c  |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_s64.c  |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_u32.c  |    1 +
 .../aarch64/sve2/acle/asm/ldnt1_gather_u64.c  |    1 +
 .../sve2/acle/asm/ldnt1sb_gather_s32.c        |    1 +
 .../sve2/acle/asm/ldnt1sb_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1sb_gather_u32.c        |    1 +
 .../sve2/acle/asm/ldnt1sb_gather_u64.c        |    1 +
 .../sve2/acle/asm/ldnt1sh_gather_s32.c        |    1 +
 .../sve2/acle/asm/ldnt1sh_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1sh_gather_u32.c        |    1 +
 .../sve2/acle/asm/ldnt1sh_gather_u64.c        |    1 +
 .../sve2/acle/asm/ldnt1sw_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1sw_gather_u64.c        |    1 +
 .../sve2/acle/asm/ldnt1ub_gather_s32.c        |    1 +
 .../sve2/acle/asm/ldnt1ub_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1ub_gather_u32.c        |    1 +
 .../sve2/acle/asm/ldnt1ub_gather_u64.c        |    1 +
 .../sve2/acle/asm/ldnt1uh_gather_s32.c        |    1 +
 .../sve2/acle/asm/ldnt1uh_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1uh_gather_u32.c        |    1 +
 .../sve2/acle/asm/ldnt1uh_gather_u64.c        |    1 +
 .../sve2/acle/asm/ldnt1uw_gather_s64.c        |    1 +
 .../sve2/acle/asm/ldnt1uw_gather_u64.c        |    1 +
 .../aarch64/sve2/acle/asm/match_s16.c         |    1 +
 .../aarch64/sve2/acle/asm/match_s8.c          |    1 +
 .../aarch64/sve2/acle/asm/match_u16.c         |    1 +
 .../aarch64/sve2/acle/asm/match_u8.c          |    1 +
 .../aarch64/sve2/acle/asm/nmatch_s16.c        |    1 +
 .../aarch64/sve2/acle/asm/nmatch_s8.c         |    1 +
 .../aarch64/sve2/acle/asm/nmatch_u16.c        |    1 +
 .../aarch64/sve2/acle/asm/nmatch_u8.c         |    1 +
 .../aarch64/sve2/acle/asm/pmullb_pair_u64.c   |    1 +
 .../aarch64/sve2/acle/asm/pmullt_pair_u64.c   |    1 +
 .../aarch64/sve2/acle/asm/rax1_s64.c          |    1 +
 .../aarch64/sve2/acle/asm/rax1_u64.c          |    1 +
 .../aarch64/sve2/acle/asm/sm4e_u32.c          |    1 +
 .../aarch64/sve2/acle/asm/sm4ekey_u32.c       |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_f32.c |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_f64.c |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_s32.c |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_s64.c |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_u32.c |    1 +
 .../aarch64/sve2/acle/asm/stnt1_scatter_u64.c |    1 +
 .../sve2/acle/asm/stnt1b_scatter_s32.c        |    1 +
 .../sve2/acle/asm/stnt1b_scatter_s64.c        |    1 +
 .../sve2/acle/asm/stnt1b_scatter_u32.c        |    1 +
 .../sve2/acle/asm/stnt1b_scatter_u64.c        |    1 +
 .../sve2/acle/asm/stnt1h_scatter_s32.c        |    1 +
 .../sve2/acle/asm/stnt1h_scatter_s64.c        |    1 +
 .../sve2/acle/asm/stnt1h_scatter_u32.c        |    1 +
 .../sve2/acle/asm/stnt1h_scatter_u64.c        |    1 +
 .../sve2/acle/asm/stnt1w_scatter_s64.c        |    1 +
 .../sve2/acle/asm/stnt1w_scatter_u64.c        |    1 +
 gcc/testsuite/lib/target-supports.exp         |   15 +-
 607 files changed, 27288 insertions(+), 1014 deletions(-)
 create mode 100644 gcc/config/aarch64/aarch64-isa-modes.def
 create mode 100644 gcc/config/aarch64/aarch64-sme.md
 create mode 100644 gcc/config/aarch64/aarch64-sve-builtins-sme.cc
 create mode 100644 gcc/config/aarch64/aarch64-sve-builtins-sme.def
 create mode 100644 gcc/config/aarch64/aarch64-sve-builtins-sme.h
 create mode 100644 gcc/config/aarch64/arm_sme.h
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/aarch64-sme-acle-asm.exp
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/aarch64-sme.exp
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/exceptions_1.C
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/exceptions_2.C
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/keyword_macros_1.C
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/streaming_mode_1.C
 create mode 100644 gcc/testsuite/g++.target/aarch64/sme/streaming_mode_2.C
 create mode 100644 gcc/testsuite/g++.target/aarch64/sve/aarch64-ssve.exp
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movdf_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movdi_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movhf_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movhi_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movqi_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movsf_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movsi_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movtf_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movtf_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movti_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movti_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movv16qi_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movv16qi_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/movv8qi_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme-acle-asm.exp
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/aarch64-sme.exp
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addha_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/addva_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_has_sme_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_ns.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/arm_in_streaming_mode_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsb_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsb_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsd_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsd_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsh_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsh_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsw_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/cntsw_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_vnum_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_hor_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_vnum_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ld1_ver_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_vnum_za_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/ldr_za_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mopa_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/mops_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_hor_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/read_ver_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_vnum_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_hor_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_vnum_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/st1_ver_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_vnum_za_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_s.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/str_za_sc.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumopa_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/sumops_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/test_sme_acle.h
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/undef_za.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmopa_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/usmops_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_hor_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za128.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za16.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za32.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za64.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/write_ver_za8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_mask_za.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/acle-asm/zero_za.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/arm_neon_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/arm_neon_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/arm_neon_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_10.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/call_sm_switch_9.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_10.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_11.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_12.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_13.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_14.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_15.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/inlining_9.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/keyword_macros_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/locally_streaming_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/nonlocal_goto_7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_7.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/sibcall_8.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/streaming_mode_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_3.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_4.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_5.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sme/za_state_6.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_int_m_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_m_2.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/binary_za_uint_m_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/read_za_m_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/unary_za_m_1.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/write_za_m_1.c