From patchwork Thu Aug 15 09:13:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Sandiford X-Patchwork-Id: 1972705 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Wkztv66rjz1yYl for ; Thu, 15 Aug 2024 19:13:27 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A4BBE3858283 for ; Thu, 15 Aug 2024 09:13:25 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by sourceware.org (Postfix) with ESMTP id 084653858D34 for ; Thu, 15 Aug 2024 09:13:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 084653858D34 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 084653858D34 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=1723713187; cv=none; b=B4vO2gQCRqH4vv+Lmve3jupt8sWGhSFKqHW6eKtba4pZr/HT6cDELfpL/kIUWBzhbF9IpVAWUGGofvZATDPKFyGpDZ6c5NyUWTCSEyO7FZgm4rFPmEMkaWK7pQovYni3/mLhKaTOWDLyOQ0ml27kR/AKfv/7yCJGfs3rACtFt8g= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1723713187; c=relaxed/simple; bh=Xv4GQpTQ1MO3w2zodFrwqBP3yG3oyGBTLMxq4pHUqp8=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=wCU37J+HwUvzZV3Ge2JTuKfQOwixV8Af96BRSQiFiEUKkLAgx/odfV3wy6q40omO12KsMej5UVWfLS3aTNgkY2iHP9VJSmxwOn8zKQMw18nPkQLn+Eckof2N75mRlKqiC7BaEZvEbw12qQXx/MP5cuBLj+Dknf2pYqF5nVnxyic= 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 B0261169E for ; Thu, 15 Aug 2024 02:13:28 -0700 (PDT) Received: from localhost (e121540-lin.manchester.arm.com [10.32.110.72]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 48A4D3F6A8 for ; Thu, 15 Aug 2024 02:13:02 -0700 (PDT) From: Richard Sandiford To: gcc-patches@gcc.gnu.org Mail-Followup-To: gcc-patches@gcc.gnu.org, richard.sandiford@arm.com Subject: [pushed] aarch64: Rename svpext to svpext_lane [PR116371] Date: Thu, 15 Aug 2024 10:13:01 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 X-Spam-Status: No, score=-19.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_NONE, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org When implementing the SME2 ACLE, I somehow missed off the _lane suffix on svpext. Tested on aarch64-linux-gnu & pushed. (I wondered about posting and waiting for comments, but the patch seems kind-of obvious, once the mistake is pointed out.) I'll backport to GCC 14 if there is no fallout. Richard gcc/ PR target/116371 * config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to... (svpext_lane): ...this. * config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename to... (svpext_lane_impl): ...this and update instantiation accordingly. * config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to... (svpext_lane): ...this. gcc/testsuite/ PR target/116371 * gcc.target/aarch64/sme2/acle-asm/pext_c16.c, gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_c32.c, gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_c64.c, gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_c8.c, gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c: Replace with... * gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c, gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c: ...these new tests, testing for svpext_lane instead of svpext. --- .../aarch64/aarch64-sve-builtins-sve2.cc | 4 +- .../aarch64/aarch64-sve-builtins-sve2.def | 2 +- .../aarch64/aarch64-sve-builtins-sve2.h | 2 +- .../aarch64/sme2/acle-asm/pext_c16.c | 50 ----------------- .../aarch64/sme2/acle-asm/pext_c16_x2.c | 54 ------------------- .../aarch64/sme2/acle-asm/pext_c32.c | 50 ----------------- .../aarch64/sme2/acle-asm/pext_c32_x2.c | 54 ------------------- .../aarch64/sme2/acle-asm/pext_c64.c | 50 ----------------- .../aarch64/sme2/acle-asm/pext_c64_x2.c | 54 ------------------- .../aarch64/sme2/acle-asm/pext_c8.c | 50 ----------------- .../aarch64/sme2/acle-asm/pext_c8_x2.c | 54 ------------------- .../aarch64/sme2/acle-asm/pext_lane_c16.c | 50 +++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c16_x2.c | 54 +++++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c32.c | 50 +++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c32_x2.c | 54 +++++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c64.c | 50 +++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c64_x2.c | 54 +++++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c8.c | 50 +++++++++++++++++ .../aarch64/sme2/acle-asm/pext_lane_c8_x2.c | 54 +++++++++++++++++++ 19 files changed, 420 insertions(+), 420 deletions(-) delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c delete mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc index dc591551682..146a5459930 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc +++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc @@ -221,7 +221,7 @@ public: } }; -class svpext_impl : public function_base +class svpext_lane_impl : public function_base { public: rtx @@ -619,7 +619,7 @@ FUNCTION (svmullt_lane, unspec_based_lane_function, (UNSPEC_SMULLT, UNSPEC_UMULLT, -1)) FUNCTION (svnbsl, CODE_FOR_MODE0 (aarch64_sve2_nbsl),) FUNCTION (svnmatch, svmatch_svnmatch_impl, (UNSPEC_NMATCH)) -FUNCTION (svpext, svpext_impl,) +FUNCTION (svpext_lane, svpext_lane_impl,) FUNCTION (svpmul, CODE_FOR_MODE0 (aarch64_sve2_pmul),) FUNCTION (svpmullb, unspec_based_function, (-1, UNSPEC_PMULLB, -1)) FUNCTION (svpmullb_pair, unspec_based_function, (-1, UNSPEC_PMULLB_PAIR, -1)) diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def index 4366925a971..4543402f836 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def +++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def @@ -263,7 +263,7 @@ DEF_SVE_FUNCTION_GS (svmax, binary_opt_single_n, all_arith, x24, none) DEF_SVE_FUNCTION_GS (svmaxnm, binary_opt_single_n, all_float, x24, none) DEF_SVE_FUNCTION_GS (svmin, binary_opt_single_n, all_arith, x24, none) DEF_SVE_FUNCTION_GS (svminnm, binary_opt_single_n, all_float, x24, none) -DEF_SVE_FUNCTION_GS (svpext, extract_pred, all_count, x12, none) +DEF_SVE_FUNCTION_GS (svpext_lane, extract_pred, all_count, x12, none) DEF_SVE_FUNCTION (svptrue, inherent, all_count, none) DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x2, x2, none) DEF_SVE_FUNCTION_GS (svqcvt, unary_convertxn, qcvt_x4, x4, none) diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h index a612ace9415..2ac6edeb8db 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h +++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h @@ -100,7 +100,7 @@ namespace aarch64_sve extern const function_base *const svmullt_lane; extern const function_base *const svnbsl; extern const function_base *const svnmatch; - extern const function_base *const svpext; + extern const function_base *const svpext_lane; extern const function_base *const svpmul; extern const function_base *const svpmullb; extern const function_base *const svpmullb_pair; diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c deleted file mode 100644 index b03a8aed994..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16.c +++ /dev/null @@ -1,50 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext p2\.h, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t, - p2 = svpext_c16 (pn0, 0), - p2 = svpext_c16 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext p5\.h, pn\1\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t, - p5 = svpext_c16 (pn7, 1), - p5 = svpext_c16 (pn7, 1)) - -/* -** pext_p9_pn8_2: -** pext p9\.h, pn8\[2\] -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t, - p9 = svpext_c16 (pn8, 2), - p9 = svpext_c16 (pn8, 2)) - -/* -** pext_p12_pn11_3: -** pext p12\.h, pn11\[3\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t, - p12 = svpext_c16 (pn11, 3), - p12 = svpext_c16 (pn11, 3)) - -/* -** pext_p2_pn15_0: -** pext p2\.h, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t, - p2 = svpext_c16 (pn15, 0), - p2 = svpext_c16 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c deleted file mode 100644 index c07d82038b1..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c16_x2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext {p2\.h, p3\.h}, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t, - p2 = svpext_c16_x2 (pn0, 0), - p2 = svpext_c16_x2 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext {[^}]+}, pn\1\[1\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t, - p5 = svpext_c16_x2 (pn7, 1), - p5 = svpext_c16_x2 (pn7, 1)) - -/* -** pext_p9_pn8_0: -** pext {[^}]+}, pn8\[0\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t, - p9 = svpext_c16_x2 (pn8, 0), - p9 = svpext_c16_x2 (pn8, 0)) - -/* -** pext_p12_pn11_1: -** pext {p12\.h, p13\.h}, pn11\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t, - p12 = svpext_c16_x2 (pn11, 1), - p12 = svpext_c16_x2 (pn11, 1)) - -/* -** pext_p2_pn15_0: -** pext {p2\.h, p3\.h}, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t, - p2 = svpext_c16_x2 (pn15, 0), - p2 = svpext_c16_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c deleted file mode 100644 index 2a63942d8e8..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32.c +++ /dev/null @@ -1,50 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext p2\.s, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t, - p2 = svpext_c32 (pn0, 0), - p2 = svpext_c32 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext p5\.s, pn\1\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t, - p5 = svpext_c32 (pn7, 1), - p5 = svpext_c32 (pn7, 1)) - -/* -** pext_p9_pn8_2: -** pext p9\.s, pn8\[2\] -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t, - p9 = svpext_c32 (pn8, 2), - p9 = svpext_c32 (pn8, 2)) - -/* -** pext_p12_pn11_3: -** pext p12\.s, pn11\[3\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t, - p12 = svpext_c32 (pn11, 3), - p12 = svpext_c32 (pn11, 3)) - -/* -** pext_p2_pn15_0: -** pext p2\.s, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t, - p2 = svpext_c32 (pn15, 0), - p2 = svpext_c32 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c deleted file mode 100644 index 1629b440fab..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c32_x2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext {p2\.s, p3\.s}, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t, - p2 = svpext_c32_x2 (pn0, 0), - p2 = svpext_c32_x2 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext {[^}]+}, pn\1\[1\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t, - p5 = svpext_c32_x2 (pn7, 1), - p5 = svpext_c32_x2 (pn7, 1)) - -/* -** pext_p9_pn8_0: -** pext {[^}]+}, pn8\[0\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t, - p9 = svpext_c32_x2 (pn8, 0), - p9 = svpext_c32_x2 (pn8, 0)) - -/* -** pext_p12_pn11_1: -** pext {p12\.s, p13\.s}, pn11\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t, - p12 = svpext_c32_x2 (pn11, 1), - p12 = svpext_c32_x2 (pn11, 1)) - -/* -** pext_p2_pn15_0: -** pext {p2\.s, p3\.s}, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t, - p2 = svpext_c32_x2 (pn15, 0), - p2 = svpext_c32_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c deleted file mode 100644 index 8c93d7b6f1f..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64.c +++ /dev/null @@ -1,50 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext p2\.d, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t, - p2 = svpext_c64 (pn0, 0), - p2 = svpext_c64 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext p5\.d, pn\1\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t, - p5 = svpext_c64 (pn7, 1), - p5 = svpext_c64 (pn7, 1)) - -/* -** pext_p9_pn8_2: -** pext p9\.d, pn8\[2\] -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t, - p9 = svpext_c64 (pn8, 2), - p9 = svpext_c64 (pn8, 2)) - -/* -** pext_p12_pn11_3: -** pext p12\.d, pn11\[3\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t, - p12 = svpext_c64 (pn11, 3), - p12 = svpext_c64 (pn11, 3)) - -/* -** pext_p2_pn15_0: -** pext p2\.d, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t, - p2 = svpext_c64 (pn15, 0), - p2 = svpext_c64 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c deleted file mode 100644 index ab12c8a9003..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c64_x2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext {p2\.d, p3\.d}, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t, - p2 = svpext_c64_x2 (pn0, 0), - p2 = svpext_c64_x2 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext {[^}]+}, pn\1\[1\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t, - p5 = svpext_c64_x2 (pn7, 1), - p5 = svpext_c64_x2 (pn7, 1)) - -/* -** pext_p9_pn8_0: -** pext {[^}]+}, pn8\[0\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t, - p9 = svpext_c64_x2 (pn8, 0), - p9 = svpext_c64_x2 (pn8, 0)) - -/* -** pext_p12_pn11_1: -** pext {p12\.d, p13\.d}, pn11\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t, - p12 = svpext_c64_x2 (pn11, 1), - p12 = svpext_c64_x2 (pn11, 1)) - -/* -** pext_p2_pn15_0: -** pext {p2\.d, p3\.d}, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t, - p2 = svpext_c64_x2 (pn15, 0), - p2 = svpext_c64_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c deleted file mode 100644 index 8f882ce5a14..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8.c +++ /dev/null @@ -1,50 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext p2\.b, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svbool_t, - p2 = svpext_c8 (pn0, 0), - p2 = svpext_c8 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext p5\.b, pn\1\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svbool_t, - p5 = svpext_c8 (pn7, 1), - p5 = svpext_c8 (pn7, 1)) - -/* -** pext_p9_pn8_2: -** pext p9\.b, pn8\[2\] -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_2, svbool_t, - p9 = svpext_c8 (pn8, 2), - p9 = svpext_c8 (pn8, 2)) - -/* -** pext_p12_pn11_3: -** pext p12\.b, pn11\[3\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_3, svbool_t, - p12 = svpext_c8 (pn11, 3), - p12 = svpext_c8 (pn11, 3)) - -/* -** pext_p2_pn15_0: -** pext p2\.b, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svbool_t, - p2 = svpext_c8 (pn15, 0), - p2 = svpext_c8 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c deleted file mode 100644 index 814e36df094..00000000000 --- a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_c8_x2.c +++ /dev/null @@ -1,54 +0,0 @@ -/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ - -#include "test_sme2_acle.h" - -/* -** pext_p2_pn0_0: -** mov p([0-9]+)\.b, p0\.b -** pext {p2\.b, p3\.b}, pn\1\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn0_0, svboolx2_t, - p2 = svpext_c8_x2 (pn0, 0), - p2 = svpext_c8_x2 (pn0, 0)) - -/* -** pext_p5_pn7_1: -** mov p([0-9]+)\.b, p7\.b -** pext {[^}]+}, pn\1\[1\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p5_pn7_1, svboolx2_t, - p5 = svpext_c8_x2 (pn7, 1), - p5 = svpext_c8_x2 (pn7, 1)) - -/* -** pext_p9_pn8_0: -** pext {[^}]+}, pn8\[0\] -** mov [^\n]+ -** mov [^\n]+ -** ret -*/ -TEST_EXTRACT_PN (pext_p9_pn8_0, svboolx2_t, - p9 = svpext_c8_x2 (pn8, 0), - p9 = svpext_c8_x2 (pn8, 0)) - -/* -** pext_p12_pn11_1: -** pext {p12\.b, p13\.b}, pn11\[1\] -** ret -*/ -TEST_EXTRACT_PN (pext_p12_pn11_1, svboolx2_t, - p12 = svpext_c8_x2 (pn11, 1), - p12 = svpext_c8_x2 (pn11, 1)) - -/* -** pext_p2_pn15_0: -** pext {p2\.b, p3\.b}, pn15\[0\] -** ret -*/ -TEST_EXTRACT_PN (pext_p2_pn15_0, svboolx2_t, - p2 = svpext_c8_x2 (pn15, 0), - p2 = svpext_c8_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c new file mode 100644 index 00000000000..d06598f71ff --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16.c @@ -0,0 +1,50 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext p2\.h, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t, + p2 = svpext_lane_c16 (pn0, 0), + p2 = svpext_lane_c16 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext p5\.h, pn\1\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t, + p5 = svpext_lane_c16 (pn7, 1), + p5 = svpext_lane_c16 (pn7, 1)) + +/* +** pext_lane_p9_pn8_2: +** pext p9\.h, pn8\[2\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t, + p9 = svpext_lane_c16 (pn8, 2), + p9 = svpext_lane_c16 (pn8, 2)) + +/* +** pext_lane_p12_pn11_3: +** pext p12\.h, pn11\[3\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t, + p12 = svpext_lane_c16 (pn11, 3), + p12 = svpext_lane_c16 (pn11, 3)) + +/* +** pext_lane_p2_pn15_0: +** pext p2\.h, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t, + p2 = svpext_lane_c16 (pn15, 0), + p2 = svpext_lane_c16 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c new file mode 100644 index 00000000000..eb2621cda9a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c16_x2.c @@ -0,0 +1,54 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext {p2\.h, p3\.h}, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t, + p2 = svpext_lane_c16_x2 (pn0, 0), + p2 = svpext_lane_c16_x2 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext {[^}]+}, pn\1\[1\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t, + p5 = svpext_lane_c16_x2 (pn7, 1), + p5 = svpext_lane_c16_x2 (pn7, 1)) + +/* +** pext_lane_p9_pn8_0: +** pext {[^}]+}, pn8\[0\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t, + p9 = svpext_lane_c16_x2 (pn8, 0), + p9 = svpext_lane_c16_x2 (pn8, 0)) + +/* +** pext_lane_p12_pn11_1: +** pext {p12\.h, p13\.h}, pn11\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t, + p12 = svpext_lane_c16_x2 (pn11, 1), + p12 = svpext_lane_c16_x2 (pn11, 1)) + +/* +** pext_lane_p2_pn15_0: +** pext {p2\.h, p3\.h}, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t, + p2 = svpext_lane_c16_x2 (pn15, 0), + p2 = svpext_lane_c16_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c new file mode 100644 index 00000000000..870e671852a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32.c @@ -0,0 +1,50 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext p2\.s, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t, + p2 = svpext_lane_c32 (pn0, 0), + p2 = svpext_lane_c32 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext p5\.s, pn\1\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t, + p5 = svpext_lane_c32 (pn7, 1), + p5 = svpext_lane_c32 (pn7, 1)) + +/* +** pext_lane_p9_pn8_2: +** pext p9\.s, pn8\[2\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t, + p9 = svpext_lane_c32 (pn8, 2), + p9 = svpext_lane_c32 (pn8, 2)) + +/* +** pext_lane_p12_pn11_3: +** pext p12\.s, pn11\[3\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t, + p12 = svpext_lane_c32 (pn11, 3), + p12 = svpext_lane_c32 (pn11, 3)) + +/* +** pext_lane_p2_pn15_0: +** pext p2\.s, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t, + p2 = svpext_lane_c32 (pn15, 0), + p2 = svpext_lane_c32 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c new file mode 100644 index 00000000000..1ed586de1ea --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c32_x2.c @@ -0,0 +1,54 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext {p2\.s, p3\.s}, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t, + p2 = svpext_lane_c32_x2 (pn0, 0), + p2 = svpext_lane_c32_x2 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext {[^}]+}, pn\1\[1\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t, + p5 = svpext_lane_c32_x2 (pn7, 1), + p5 = svpext_lane_c32_x2 (pn7, 1)) + +/* +** pext_lane_p9_pn8_0: +** pext {[^}]+}, pn8\[0\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t, + p9 = svpext_lane_c32_x2 (pn8, 0), + p9 = svpext_lane_c32_x2 (pn8, 0)) + +/* +** pext_lane_p12_pn11_1: +** pext {p12\.s, p13\.s}, pn11\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t, + p12 = svpext_lane_c32_x2 (pn11, 1), + p12 = svpext_lane_c32_x2 (pn11, 1)) + +/* +** pext_lane_p2_pn15_0: +** pext {p2\.s, p3\.s}, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t, + p2 = svpext_lane_c32_x2 (pn15, 0), + p2 = svpext_lane_c32_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c new file mode 100644 index 00000000000..a3a0b299e88 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64.c @@ -0,0 +1,50 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext p2\.d, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t, + p2 = svpext_lane_c64 (pn0, 0), + p2 = svpext_lane_c64 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext p5\.d, pn\1\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t, + p5 = svpext_lane_c64 (pn7, 1), + p5 = svpext_lane_c64 (pn7, 1)) + +/* +** pext_lane_p9_pn8_2: +** pext p9\.d, pn8\[2\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t, + p9 = svpext_lane_c64 (pn8, 2), + p9 = svpext_lane_c64 (pn8, 2)) + +/* +** pext_lane_p12_pn11_3: +** pext p12\.d, pn11\[3\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t, + p12 = svpext_lane_c64 (pn11, 3), + p12 = svpext_lane_c64 (pn11, 3)) + +/* +** pext_lane_p2_pn15_0: +** pext p2\.d, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t, + p2 = svpext_lane_c64 (pn15, 0), + p2 = svpext_lane_c64 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c new file mode 100644 index 00000000000..3678912f5a0 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c64_x2.c @@ -0,0 +1,54 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext {p2\.d, p3\.d}, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t, + p2 = svpext_lane_c64_x2 (pn0, 0), + p2 = svpext_lane_c64_x2 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext {[^}]+}, pn\1\[1\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t, + p5 = svpext_lane_c64_x2 (pn7, 1), + p5 = svpext_lane_c64_x2 (pn7, 1)) + +/* +** pext_lane_p9_pn8_0: +** pext {[^}]+}, pn8\[0\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t, + p9 = svpext_lane_c64_x2 (pn8, 0), + p9 = svpext_lane_c64_x2 (pn8, 0)) + +/* +** pext_lane_p12_pn11_1: +** pext {p12\.d, p13\.d}, pn11\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t, + p12 = svpext_lane_c64_x2 (pn11, 1), + p12 = svpext_lane_c64_x2 (pn11, 1)) + +/* +** pext_lane_p2_pn15_0: +** pext {p2\.d, p3\.d}, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t, + p2 = svpext_lane_c64_x2 (pn15, 0), + p2 = svpext_lane_c64_x2 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c new file mode 100644 index 00000000000..ca1767c7655 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8.c @@ -0,0 +1,50 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext p2\.b, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svbool_t, + p2 = svpext_lane_c8 (pn0, 0), + p2 = svpext_lane_c8 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext p5\.b, pn\1\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svbool_t, + p5 = svpext_lane_c8 (pn7, 1), + p5 = svpext_lane_c8 (pn7, 1)) + +/* +** pext_lane_p9_pn8_2: +** pext p9\.b, pn8\[2\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_2, svbool_t, + p9 = svpext_lane_c8 (pn8, 2), + p9 = svpext_lane_c8 (pn8, 2)) + +/* +** pext_lane_p12_pn11_3: +** pext p12\.b, pn11\[3\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_3, svbool_t, + p12 = svpext_lane_c8 (pn11, 3), + p12 = svpext_lane_c8 (pn11, 3)) + +/* +** pext_lane_p2_pn15_0: +** pext p2\.b, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svbool_t, + p2 = svpext_lane_c8 (pn15, 0), + p2 = svpext_lane_c8 (pn15, 0)) diff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c new file mode 100644 index 00000000000..d2ef31e5655 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/pext_lane_c8_x2.c @@ -0,0 +1,54 @@ +/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */ + +#include "test_sme2_acle.h" + +/* +** pext_lane_p2_pn0_0: +** mov p([0-9]+)\.b, p0\.b +** pext {p2\.b, p3\.b}, pn\1\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn0_0, svboolx2_t, + p2 = svpext_lane_c8_x2 (pn0, 0), + p2 = svpext_lane_c8_x2 (pn0, 0)) + +/* +** pext_lane_p5_pn7_1: +** mov p([0-9]+)\.b, p7\.b +** pext {[^}]+}, pn\1\[1\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p5_pn7_1, svboolx2_t, + p5 = svpext_lane_c8_x2 (pn7, 1), + p5 = svpext_lane_c8_x2 (pn7, 1)) + +/* +** pext_lane_p9_pn8_0: +** pext {[^}]+}, pn8\[0\] +** mov [^\n]+ +** mov [^\n]+ +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p9_pn8_0, svboolx2_t, + p9 = svpext_lane_c8_x2 (pn8, 0), + p9 = svpext_lane_c8_x2 (pn8, 0)) + +/* +** pext_lane_p12_pn11_1: +** pext {p12\.b, p13\.b}, pn11\[1\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p12_pn11_1, svboolx2_t, + p12 = svpext_lane_c8_x2 (pn11, 1), + p12 = svpext_lane_c8_x2 (pn11, 1)) + +/* +** pext_lane_p2_pn15_0: +** pext {p2\.b, p3\.b}, pn15\[0\] +** ret +*/ +TEST_EXTRACT_PN (pext_lane_p2_pn15_0, svboolx2_t, + p2 = svpext_lane_c8_x2 (pn15, 0), + p2 = svpext_lane_c8_x2 (pn15, 0))