From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2087.outbound.protection.outlook.com [40.107.22.87]) by sourceware.org (Postfix) with ESMTPS id E0E403853574 for ; Wed, 10 May 2023 13:31:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E0E403853574 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iIIDzIY7tC2w/dURUBKi8iV4xpNZj6/E+Kv1WdBwzPc=; b=IBt6cnBYYe2ufkyuRn4cek7nq3xJe/9yhq3Mu3wNHq3l8mA7imR4bPMQnudRAlZuR2kKNxUp33Wt4oo/YMcH0LjhzoL/fm2wjJyrszJUVAhO7a+lc7zXx7d/976AQp15hyrf47UWVnooWR6qY1Sy83QXl6v/Xaf3UMP801vHoDE= Received: from AM6PR05CA0013.eurprd05.prod.outlook.com (2603:10a6:20b:2e::26) by PAXPR08MB7443.eurprd08.prod.outlook.com (2603:10a6:102:2b7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.32; Wed, 10 May 2023 13:31:06 +0000 Received: from AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2e:cafe::39) by AM6PR05CA0013.outlook.office365.com (2603:10a6:20b:2e::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.19 via Frontend Transport; Wed, 10 May 2023 13:31:06 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT048.mail.protection.outlook.com (100.127.140.86) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.20 via Frontend Transport; Wed, 10 May 2023 13:31:06 +0000 Received: ("Tessian outbound 5bb4c51d5a1f:v136"); Wed, 10 May 2023 13:31:06 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 62fa757e1c895bf7 X-CR-MTA-TID: 64aa7808 Received: from c266348600b8.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id ECADCA9A-5E28-40E1-945F-BBD900B1BF1C.1; Wed, 10 May 2023 13:30:59 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c266348600b8.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 10 May 2023 13:30:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mnRcxOBRx8J2ERkW+9Vu9eMZd53E+RvOE6L9g0Otojf/5bu4meuu5AgF9aqOM96enaxg7m+iDVRVS5S5pZ2Mcfz9lFoaDOprZCE3gCC6Hd2fGARWQvIXBYCnX+MkqQYM4KsW8srCfRvNrDtvx7ituPVtFF/BcEG1W8pikcBkzyAfT06M/qoVFy4EtR4zFu3ZWQhNTH4zao0cEdw25yUe1gthwYqGvlaifrDay9QatY0uzkkC+Hn/BKvLVA58xdV7lEx9Fd5thBe2TW6oCB5TsC9+v9+2OUpoKO5EJVTKK5ovsKZ6jkvoXqMO8DSbmbrPQNHbd1vOIZrMnRTpCjdaUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iIIDzIY7tC2w/dURUBKi8iV4xpNZj6/E+Kv1WdBwzPc=; b=e682kLmcBbrkTCld4UBW2F2wEAiiTsiwJVrFf5SKkDUu9RIWypSHJ4EOWkzDvbm1QvHBYduJBeASvKz3qI8wfLxGjpmYWGLJMSwb1qVpLUPSN0crbTYYoEfFTNQo3AOrRPaFtF2Z1g4KF50NlA4XnZCpSO9CIR4fWFMmd3cm0IPw2PmImIkFYpwIeJEYCzL7fcBSQV7dA1Qlk8OCIvibz5HZeGUdxays3Y3Qrxtg7t2XQLfMqEaUsAHSjDCzxqyzIOZwcCFibk932uXj78UXOTC3c3DnMTlVjtzBSx1e96UfrV/ZbgMLzHkgjp5D6OuatBcAgHKXSUeeFM2c/8c1sQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iIIDzIY7tC2w/dURUBKi8iV4xpNZj6/E+Kv1WdBwzPc=; b=IBt6cnBYYe2ufkyuRn4cek7nq3xJe/9yhq3Mu3wNHq3l8mA7imR4bPMQnudRAlZuR2kKNxUp33Wt4oo/YMcH0LjhzoL/fm2wjJyrszJUVAhO7a+lc7zXx7d/976AQp15hyrf47UWVnooWR6qY1Sy83QXl6v/Xaf3UMP801vHoDE= Received: from DB6PR07CA0200.eurprd07.prod.outlook.com (2603:10a6:6:42::30) by PAXPR08MB7442.eurprd08.prod.outlook.com (2603:10a6:102:2b8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.20; Wed, 10 May 2023 13:30:54 +0000 Received: from DBAEUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:6:42:cafe::1b) by DB6PR07CA0200.outlook.office365.com (2603:10a6:6:42::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.20 via Frontend Transport; Wed, 10 May 2023 13:30:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DBAEUR03FT039.mail.protection.outlook.com (100.127.142.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6387.19 via Frontend Transport; Wed, 10 May 2023 13:30:54 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX04.Arm.com (10.251.24.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 10 May 2023 13:30:45 +0000 Received: from e129018.arm.com (10.57.23.51) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2507.23 via Frontend Transport; Wed, 10 May 2023 13:30:45 +0000 From: Christophe Lyon To: , , , CC: Christophe Lyon Subject: [PATCH 11/20] arm: [MVE intrinsics] rework vaddvq Date: Wed, 10 May 2023 15:30:27 +0200 Message-ID: <20230510133036.596530-11-christophe.lyon@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230510133036.596530-1-christophe.lyon@arm.com> References: <20230510133036.596530-1-christophe.lyon@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT039:EE_|PAXPR08MB7442:EE_|AM7EUR03FT048:EE_|PAXPR08MB7443:EE_ X-MS-Office365-Filtering-Correlation-Id: 026836f5-9ee7-46e7-387f-08db515acef1 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 0MQ3uTGO/QDwQKUehaWR+feQjkCj2s03+xU7KIbAfH3rlcx+m1WY0su67PSQLxS4FPrXDw363LWG79gg31t2Oz+AEQv8O0V6N1tBF3WXWsEmIWcL0FgE16tp80fWm6FQLi5TJopcWukLSGGgOdsXfjc8kNIL9jVm5hhb6QJgBiu5dVMHOg5yQG6EQstLvaSeczwysmDu/VZBsUk+v7siZQzHNHkgxagsmkaKE0156VtA51tJ3p8sCCJ5JUuGoYshLqAWDgkd5Kp3RFB5eA20p4mQicYWz5Q5vN6kZZyNakw6SLheYQ7v9Pp3t6YxzNlh82vFteese5DFP5qbKQI3KrAdgCHoH8SsEIoP1ibTXDcPd9Px9rlGhMGww5fcTJ2LWoQCWZraOLfL2yBgdGXug0Lplg+KveFQ7wlDNkg05UphklVCgWLI7dW0Y37OoMv18m/m53k/kY1HCESrNra7b9Yyk40vKM6oj1KxJK2Tv0HJ/kKoCS0DX6aTWoooXStqIN14hPX4REMc71VTfDDswqzPkSzh1z7ueuVwNvWY1DT6IlHwZOEFOut45lfsZiNGyTYwEsmftxOwRGmT6twmT7fnOqoq5bZe2JC49gfdN2dMAaOlCzOzokvCqW9qTuAHCLN4Rvp9/v6v9AweNqfN7NIw8udFzY+3JE5GQ5dKU1K1KhaRGrpO1ON+TIuQle5+snZVSVWgDLuFdLBr5cDj1A5T6OsQoY5cSjRpf5Qrjfle5x2XykzlWcaScUsaahdfjwIxUd3UyQPrIMT6GBzFpw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230028)(4636009)(346002)(376002)(136003)(39860400002)(396003)(451199021)(40470700004)(36840700001)(46966006)(2616005)(8936002)(8676002)(40460700003)(30864003)(2906002)(4001150100001)(36756003)(7696005)(6666004)(86362001)(82310400005)(26005)(1076003)(186003)(5660300002)(40480700001)(478600001)(44832011)(356005)(316002)(81166007)(110136005)(83380400001)(82740400003)(6636002)(4326008)(70586007)(47076005)(70206006)(426003)(336012)(36860700001)(41300700001)(36900700001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7442 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 486c9915-5929-4b13-1556-08db515ac7cd X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QcMAGdrqQS8TvEfUkOzEkFShKGBB7nKA98GTzOrFAqiIpFnYQQG7o5nDuXqvvnKXOtii9objmZQj8vPaZjL1x2JUqcse+sKK2qFHd3yn35rkT978qifG/+xuADkCH04bnXxs7OCUuJ077vHchXis0JdsfcQeSrMItJkp8uOM+Ke5sZUVvIVvYCdgydXakV1uUz6tWmp2oe29Y5UpK4gu7KZmQS+EsmPAr6b0bJ8trzkgPjKK7l4tGJhVmCa6C5yB6xwvPeOCgraf7mgm4oKf88E744s5wBM2ZcV4ueObH45xRSXWf+1jwWe4PAdKZ5qp2wnByFqDnOJ9FgRxQOxdIo1AdbNVeSpfIdDFkSVba+ayBV+B31MzrsLGiAwRWqaCVVZSjvcJNKQiRVwTsJZR0zGuSpUHwv4d5OO8Ugif2u66IfZscWGq5owulX4oqEQZxeofJkPgy4Ud/xoL6kc5n5g5XyX2/7TECYBYHNNIlERBOcZVKVKfrsN4cjI16E6FPOIBWwHgT0r8EOb5so4uoS4E3ufs+7kf0QyhhbKn3a38CfGJuoLvQ7o2ZfDGiAhRwCny17KpGWFwHh2PooOB+5foGzwqHXbdIW+YUm7U4BsCEwjb/br72oNsXftSSe1KaQ5abQettXE7QB5/Ahq2XMkbD1nj0dMziX2DuWTdoHuXUKoXPR9UhKpmwzfzR1+JCim85N1ScEviQbnLfoaFeg== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230028)(4636009)(396003)(39860400002)(376002)(346002)(136003)(451199021)(40470700004)(46966006)(36840700001)(336012)(86362001)(36756003)(4326008)(110136005)(316002)(7696005)(70206006)(478600001)(6636002)(70586007)(82310400005)(40480700001)(5660300002)(30864003)(8936002)(41300700001)(8676002)(186003)(44832011)(81166007)(4001150100001)(2906002)(82740400003)(1076003)(36860700001)(83380400001)(2616005)(426003)(26005)(47076005)(6666004)(40460700003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 May 2023 13:31:06.3097 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 026836f5-9ee7-46e7-387f-08db515acef1 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT048.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7443 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Implement vaddvq using the new MVE builtins framework. 2022-10-25 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vaddvq): New. * config/arm/arm-mve-builtins-base.def (vaddvq): New. * config/arm/arm-mve-builtins-base.h (vaddvq): New. * config/arm/arm_mve.h (vaddvq): Remove. (vaddvq_p): Remove. (vaddvq_s8): Remove. (vaddvq_s16): Remove. (vaddvq_s32): Remove. (vaddvq_u8): Remove. (vaddvq_u16): Remove. (vaddvq_u32): Remove. (vaddvq_p_u8): Remove. (vaddvq_p_s8): Remove. (vaddvq_p_u16): Remove. (vaddvq_p_s16): Remove. (vaddvq_p_u32): Remove. (vaddvq_p_s32): Remove. (__arm_vaddvq_s8): Remove. (__arm_vaddvq_s16): Remove. (__arm_vaddvq_s32): Remove. (__arm_vaddvq_u8): Remove. (__arm_vaddvq_u16): Remove. (__arm_vaddvq_u32): Remove. (__arm_vaddvq_p_u8): Remove. (__arm_vaddvq_p_s8): Remove. (__arm_vaddvq_p_u16): Remove. (__arm_vaddvq_p_s16): Remove. (__arm_vaddvq_p_u32): Remove. (__arm_vaddvq_p_s32): Remove. (__arm_vaddvq): Remove. (__arm_vaddvq_p): Remove. --- gcc/config/arm/arm-mve-builtins-base.cc | 1 + gcc/config/arm/arm-mve-builtins-base.def | 1 + gcc/config/arm/arm-mve-builtins-base.h | 1 + gcc/config/arm/arm_mve.h | 200 ----------------------- 4 files changed, 3 insertions(+), 200 deletions(-) diff --git a/gcc/config/arm/arm-mve-builtins-base.cc b/gcc/config/arm/arm-mve-builtins-base.cc index cb572130c2b..7f90fc65ae2 100644 --- a/gcc/config/arm/arm-mve-builtins-base.cc +++ b/gcc/config/arm/arm-mve-builtins-base.cc @@ -244,6 +244,7 @@ namespace arm_mve { FUNCTION_WITHOUT_N (vabdq, VABDQ) FUNCTION (vabsq, unspec_based_mve_function_exact_insn, (ABS, ABS, ABS, -1, -1, -1, VABSQ_M_S, -1, VABSQ_M_F, -1, -1, -1)) FUNCTION_WITH_RTX_M_N (vaddq, PLUS, VADDQ) +FUNCTION_PRED_P_S_U (vaddvq, VADDVQ) FUNCTION_WITH_RTX_M (vandq, AND, VANDQ) FUNCTION_WITHOUT_N_NO_U_F (vclsq, VCLSQ) FUNCTION (vclzq, unspec_based_mve_function_exact_insn, (CLZ, CLZ, CLZ, -1, -1, -1, VCLZQ_M_S, VCLZQ_M_U, -1, -1, -1 ,-1)) diff --git a/gcc/config/arm/arm-mve-builtins-base.def b/gcc/config/arm/arm-mve-builtins-base.def index 30e6aa1e1e6..d32745f334a 100644 --- a/gcc/config/arm/arm-mve-builtins-base.def +++ b/gcc/config/arm/arm-mve-builtins-base.def @@ -21,6 +21,7 @@ DEF_MVE_FUNCTION (vabdq, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vabsq, unary, all_signed, mx_or_none) DEF_MVE_FUNCTION (vaddq, binary_opt_n, all_integer, mx_or_none) +DEF_MVE_FUNCTION (vaddvq, unary_int32, all_integer, p_or_none) DEF_MVE_FUNCTION (vandq, binary, all_integer, mx_or_none) DEF_MVE_FUNCTION (vclsq, unary, all_signed, mx_or_none) DEF_MVE_FUNCTION (vclzq, unary, all_integer, mx_or_none) diff --git a/gcc/config/arm/arm-mve-builtins-base.h b/gcc/config/arm/arm-mve-builtins-base.h index 3dc9114045f..9080542e7e3 100644 --- a/gcc/config/arm/arm-mve-builtins-base.h +++ b/gcc/config/arm/arm-mve-builtins-base.h @@ -26,6 +26,7 @@ namespace functions { extern const function_base *const vabdq; extern const function_base *const vabsq; extern const function_base *const vaddq; +extern const function_base *const vaddvq; extern const function_base *const vandq; extern const function_base *const vclsq; extern const function_base *const vclzq; diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h index c3d18e4cc6f..11f1033deb9 100644 --- a/gcc/config/arm/arm_mve.h +++ b/gcc/config/arm/arm_mve.h @@ -43,7 +43,6 @@ #ifndef __ARM_MVE_PRESERVE_USER_NAMESPACE #define vst4q(__addr, __value) __arm_vst4q(__addr, __value) #define vaddlvq(__a) __arm_vaddlvq(__a) -#define vaddvq(__a) __arm_vaddvq(__a) #define vmovlbq(__a) __arm_vmovlbq(__a) #define vmovltq(__a) __arm_vmovltq(__a) #define vmvnq(__a) __arm_vmvnq(__a) @@ -55,7 +54,6 @@ #define vcaddq_rot90(__a, __b) __arm_vcaddq_rot90(__a, __b) #define vcaddq_rot270(__a, __b) __arm_vcaddq_rot270(__a, __b) #define vbicq(__a, __b) __arm_vbicq(__a, __b) -#define vaddvq_p(__a, __p) __arm_vaddvq_p(__a, __p) #define vaddvaq(__a, __b) __arm_vaddvaq(__a, __b) #define vbrsrq(__a, __b) __arm_vbrsrq(__a, __b) #define vqshluq(__a, __imm) __arm_vqshluq(__a, __imm) @@ -329,9 +327,6 @@ #define vcvtq_f16_u16(__a) __arm_vcvtq_f16_u16(__a) #define vcvtq_f32_u32(__a) __arm_vcvtq_f32_u32(__a) #define vaddlvq_s32(__a) __arm_vaddlvq_s32(__a) -#define vaddvq_s8(__a) __arm_vaddvq_s8(__a) -#define vaddvq_s16(__a) __arm_vaddvq_s16(__a) -#define vaddvq_s32(__a) __arm_vaddvq_s32(__a) #define vmovlbq_s8(__a) __arm_vmovlbq_s8(__a) #define vmovlbq_s16(__a) __arm_vmovlbq_s16(__a) #define vmovltq_s8(__a) __arm_vmovltq_s8(__a) @@ -354,9 +349,6 @@ #define vmvnq_u8(__a) __arm_vmvnq_u8(__a) #define vmvnq_u16(__a) __arm_vmvnq_u16(__a) #define vmvnq_u32(__a) __arm_vmvnq_u32(__a) -#define vaddvq_u8(__a) __arm_vaddvq_u8(__a) -#define vaddvq_u16(__a) __arm_vaddvq_u16(__a) -#define vaddvq_u32(__a) __arm_vaddvq_u32(__a) #define vmovltq_u8(__a) __arm_vmovltq_u8(__a) #define vmovltq_u16(__a) __arm_vmovltq_u16(__a) #define vmovlbq_u8(__a) __arm_vmovlbq_u8(__a) @@ -398,11 +390,9 @@ #define vcaddq_rot90_u8(__a, __b) __arm_vcaddq_rot90_u8(__a, __b) #define vcaddq_rot270_u8(__a, __b) __arm_vcaddq_rot270_u8(__a, __b) #define vbicq_u8(__a, __b) __arm_vbicq_u8(__a, __b) -#define vaddvq_p_u8(__a, __p) __arm_vaddvq_p_u8(__a, __p) #define vaddvaq_u8(__a, __b) __arm_vaddvaq_u8(__a, __b) #define vbrsrq_n_u8(__a, __b) __arm_vbrsrq_n_u8(__a, __b) #define vqshluq_n_s8(__a, __imm) __arm_vqshluq_n_s8(__a, __imm) -#define vaddvq_p_s8(__a, __p) __arm_vaddvq_p_s8(__a, __p) #define vornq_s8(__a, __b) __arm_vornq_s8(__a, __b) #define vmulltq_int_s8(__a, __b) __arm_vmulltq_int_s8(__a, __b) #define vmullbq_int_s8(__a, __b) __arm_vmullbq_int_s8(__a, __b) @@ -424,11 +414,9 @@ #define vcaddq_rot90_u16(__a, __b) __arm_vcaddq_rot90_u16(__a, __b) #define vcaddq_rot270_u16(__a, __b) __arm_vcaddq_rot270_u16(__a, __b) #define vbicq_u16(__a, __b) __arm_vbicq_u16(__a, __b) -#define vaddvq_p_u16(__a, __p) __arm_vaddvq_p_u16(__a, __p) #define vaddvaq_u16(__a, __b) __arm_vaddvaq_u16(__a, __b) #define vbrsrq_n_u16(__a, __b) __arm_vbrsrq_n_u16(__a, __b) #define vqshluq_n_s16(__a, __imm) __arm_vqshluq_n_s16(__a, __imm) -#define vaddvq_p_s16(__a, __p) __arm_vaddvq_p_s16(__a, __p) #define vornq_s16(__a, __b) __arm_vornq_s16(__a, __b) #define vmulltq_int_s16(__a, __b) __arm_vmulltq_int_s16(__a, __b) #define vmullbq_int_s16(__a, __b) __arm_vmullbq_int_s16(__a, __b) @@ -450,11 +438,9 @@ #define vcaddq_rot90_u32(__a, __b) __arm_vcaddq_rot90_u32(__a, __b) #define vcaddq_rot270_u32(__a, __b) __arm_vcaddq_rot270_u32(__a, __b) #define vbicq_u32(__a, __b) __arm_vbicq_u32(__a, __b) -#define vaddvq_p_u32(__a, __p) __arm_vaddvq_p_u32(__a, __p) #define vaddvaq_u32(__a, __b) __arm_vaddvaq_u32(__a, __b) #define vbrsrq_n_u32(__a, __b) __arm_vbrsrq_n_u32(__a, __b) #define vqshluq_n_s32(__a, __imm) __arm_vqshluq_n_s32(__a, __imm) -#define vaddvq_p_s32(__a, __p) __arm_vaddvq_p_s32(__a, __p) #define vornq_s32(__a, __b) __arm_vornq_s32(__a, __b) #define vmulltq_int_s32(__a, __b) __arm_vmulltq_int_s32(__a, __b) #define vmullbq_int_s32(__a, __b) __arm_vmullbq_int_s32(__a, __b) @@ -1534,27 +1520,6 @@ __arm_vaddlvq_s32 (int32x4_t __a) return __builtin_mve_vaddlvq_sv4si (__a); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_s8 (int8x16_t __a) -{ - return __builtin_mve_vaddvq_sv16qi (__a); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_s16 (int16x8_t __a) -{ - return __builtin_mve_vaddvq_sv8hi (__a); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_s32 (int32x4_t __a) -{ - return __builtin_mve_vaddvq_sv4si (__a); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmovlbq_s8 (int8x16_t __a) @@ -1639,27 +1604,6 @@ __arm_vmvnq_u32 (uint32x4_t __a) return __builtin_mve_vmvnq_uv4si (__a); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_u8 (uint8x16_t __a) -{ - return __builtin_mve_vaddvq_uv16qi (__a); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_u16 (uint16x8_t __a) -{ - return __builtin_mve_vaddvq_uv8hi (__a); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_u32 (uint32x4_t __a) -{ - return __builtin_mve_vaddvq_uv4si (__a); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmovltq_u8 (uint8x16_t __a) @@ -1809,13 +1753,6 @@ __arm_vbicq_u8 (uint8x16_t __a, uint8x16_t __b) return __builtin_mve_vbicq_uv16qi (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_u8 (uint8x16_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_uv16qi (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq_u8 (uint32_t __a, uint8x16_t __b) @@ -1837,13 +1774,6 @@ __arm_vqshluq_n_s8 (int8x16_t __a, const int __imm) return __builtin_mve_vqshluq_n_sv16qi (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_s8 (int8x16_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_sv16qi (__a, __p); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_s8 (int8x16_t __a, int8x16_t __b) @@ -1993,13 +1923,6 @@ __arm_vbicq_u16 (uint16x8_t __a, uint16x8_t __b) return __builtin_mve_vbicq_uv8hi (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_u16 (uint16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_uv8hi (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq_u16 (uint32_t __a, uint16x8_t __b) @@ -2021,13 +1944,6 @@ __arm_vqshluq_n_s16 (int16x8_t __a, const int __imm) return __builtin_mve_vqshluq_n_sv8hi (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_s16 (int16x8_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_sv8hi (__a, __p); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_s16 (int16x8_t __a, int16x8_t __b) @@ -2177,13 +2093,6 @@ __arm_vbicq_u32 (uint32x4_t __a, uint32x4_t __b) return __builtin_mve_vbicq_uv4si (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_u32 (uint32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_uv4si (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq_u32 (uint32_t __a, uint32x4_t __b) @@ -2205,13 +2114,6 @@ __arm_vqshluq_n_s32 (int32x4_t __a, const int __imm) return __builtin_mve_vqshluq_n_sv4si (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p_s32 (int32x4_t __a, mve_pred16_t __p) -{ - return __builtin_mve_vaddvq_p_sv4si (__a, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq_s32 (int32x4_t __a, int32x4_t __b) @@ -9789,27 +9691,6 @@ __arm_vaddlvq (int32x4_t __a) return __arm_vaddlvq_s32 (__a); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (int8x16_t __a) -{ - return __arm_vaddvq_s8 (__a); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (int16x8_t __a) -{ - return __arm_vaddvq_s16 (__a); -} - -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (int32x4_t __a) -{ - return __arm_vaddvq_s32 (__a); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmovlbq (int8x16_t __a) @@ -9880,27 +9761,6 @@ __arm_vmvnq (uint32x4_t __a) return __arm_vmvnq_u32 (__a); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (uint8x16_t __a) -{ - return __arm_vaddvq_u8 (__a); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (uint16x8_t __a) -{ - return __arm_vaddvq_u16 (__a); -} - -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq (uint32x4_t __a) -{ - return __arm_vaddvq_u32 (__a); -} - __extension__ extern __inline uint16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vmovltq (uint8x16_t __a) @@ -9999,13 +9859,6 @@ __arm_vbicq (uint8x16_t __a, uint8x16_t __b) return __arm_vbicq_u8 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (uint8x16_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_u8 (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq (uint32_t __a, uint8x16_t __b) @@ -10027,13 +9880,6 @@ __arm_vqshluq (int8x16_t __a, const int __imm) return __arm_vqshluq_n_s8 (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (int8x16_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_s8 (__a, __p); -} - __extension__ extern __inline int8x16_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq (int8x16_t __a, int8x16_t __b) @@ -10181,13 +10027,6 @@ __arm_vbicq (uint16x8_t __a, uint16x8_t __b) return __arm_vbicq_u16 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (uint16x8_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_u16 (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq (uint32_t __a, uint16x8_t __b) @@ -10209,13 +10048,6 @@ __arm_vqshluq (int16x8_t __a, const int __imm) return __arm_vqshluq_n_s16 (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (int16x8_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_s16 (__a, __p); -} - __extension__ extern __inline int16x8_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq (int16x8_t __a, int16x8_t __b) @@ -10363,13 +10195,6 @@ __arm_vbicq (uint32x4_t __a, uint32x4_t __b) return __arm_vbicq_u32 (__a, __b); } -__extension__ extern __inline uint32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (uint32x4_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_u32 (__a, __p); -} - __extension__ extern __inline uint32_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vaddvaq (uint32_t __a, uint32x4_t __b) @@ -10391,13 +10216,6 @@ __arm_vqshluq (int32x4_t __a, const int __imm) return __arm_vqshluq_n_s32 (__a, __imm); } -__extension__ extern __inline int32_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__arm_vaddvq_p (int32x4_t __a, mve_pred16_t __p) -{ - return __arm_vaddvq_p_s32 (__a, __p); -} - __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vornq (int32x4_t __a, int32x4_t __b) @@ -19606,24 +19424,6 @@ extern void *__ARM_undef; int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint16x8_t]: __arm_vaddvaq_p_u16 (__ARM_mve_coerce3(p0, int), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ int (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t]: __arm_vaddvaq_p_u32 (__ARM_mve_coerce3(p0, int), __ARM_mve_coerce(__p1, uint32x4_t), p2));}) -#define __arm_vaddvq(p0) ({ __typeof(p0) __p0 = (p0); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ - int (*)[__ARM_mve_type_int8x16_t]: __arm_vaddvq_s8 (__ARM_mve_coerce(__p0, int8x16_t)), \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vaddvq_s16 (__ARM_mve_coerce(__p0, int16x8_t)), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddvq_s32 (__ARM_mve_coerce(__p0, int32x4_t)), \ - int (*)[__ARM_mve_type_uint8x16_t]: __arm_vaddvq_u8 (__ARM_mve_coerce(__p0, uint8x16_t)), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vaddvq_u16 (__ARM_mve_coerce(__p0, uint16x8_t)), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddvq_u32 (__ARM_mve_coerce(__p0, uint32x4_t)));}) - -#define __arm_vaddvq_p(p0,p1) ({ __typeof(p0) __p0 = (p0); \ - _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ - int (*)[__ARM_mve_type_int8x16_t]: __arm_vaddvq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), p1), \ - int (*)[__ARM_mve_type_int16x8_t]: __arm_vaddvq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), p1), \ - int (*)[__ARM_mve_type_int32x4_t]: __arm_vaddvq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), p1), \ - int (*)[__ARM_mve_type_uint8x16_t]: __arm_vaddvq_p_u8 (__ARM_mve_coerce(__p0, uint8x16_t), p1), \ - int (*)[__ARM_mve_type_uint16x8_t]: __arm_vaddvq_p_u16 (__ARM_mve_coerce(__p0, uint16x8_t), p1), \ - int (*)[__ARM_mve_type_uint32x4_t]: __arm_vaddvq_p_u32 (__ARM_mve_coerce(__p0, uint32x4_t), p1));}) - #define __arm_vmladavaq(p0,p1,p2) ({ __typeof(p0) __p0 = (p0); \ __typeof(p1) __p1 = (p1); \ __typeof(p2) __p2 = (p2); \ -- 2.34.1