From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 182193858284 for ; Tue, 5 Dec 2023 10:13:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 182193858284 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 182193858284 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=217.140.110.172 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701771219; cv=none; b=D6cXFYbjifaWmEJhe03ewRv5PLlAPAD5qBAtl8UfwYBmPv1XcM1bamwFUdhvc/kwnuABlfERLR3QhXsCKgbuyVRQKnsglHCLVq6Lk0WOLiPHmAnZJ2nXYm7rlnKzNOfDZCXImxttKtbR2hr5KC07h7Yw8n0JkI3ndJC2Skm0DKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701771219; c=relaxed/simple; bh=RQ2KD350vTmPtiVpbtCgmfQDfxm12RU98xddry+WkW0=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=A84rzicEKJqpX7cosaIQ1PdqDKt5OiJNZccdt3pSwWuB2+W0bN5+Ev9bkUBV/n0rN3mJ/G+x1aZ7zXVsTfS0Lp7PzIb48LTV3XkgAMUHKL9/MsEJrkUritWWbbgEnz98Zt61dOdhpnYJXZU8A+Zmx4SuapcLW4I0rppxlZoUeu8= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 31FCDFEC; Tue, 5 Dec 2023 02:14:20 -0800 (PST) Received: from e121540-lin.manchester.arm.com (e121540-lin.manchester.arm.com [10.32.110.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DF6A23F5A1; Tue, 5 Dec 2023 02:13:32 -0800 (PST) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Cc: Richard Sandiford Subject: [pushed v2 00/25] aarch64: Add support for SME Date: Tue, 5 Dec 2023 10:12:58 +0000 Message-Id: <20231205101323.1914247-1-richard.sandiford@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-16.4 required=5.0 tests=BAYES_00,KAM_DMARC_NONE,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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 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 -- 2.25.1