From patchwork Fri May 12 09:38:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Lyon X-Patchwork-Id: 69232 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EF4CA3856DE6 for ; Fri, 12 May 2023 09:44:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EF4CA3856DE6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1683884654; bh=jHxQYc8HFxcmC/HyVxbCxaV+0aKAyJwxIfBHD0ySTeo=; h=To:CC:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=VLxuP/HHqefV77sueKbI2Cub9BvC3n0RKf0UGtCHQWiJO7+HGS8uIduS9JiP2Ucsi M3mQ+Egv6ZAKVyq73OucMSU40kOpr9w9Y+1hjZVvgDmrnTXQCz3JwEw1mRyCgGuUWM u7HhALOvTqpGghRnNNS9o0t/nvP9EJSaurqQZwgA= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2045.outbound.protection.outlook.com [40.107.22.45]) by sourceware.org (Postfix) with ESMTPS id 8CCE73853D38 for ; Fri, 12 May 2023 09:39:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8CCE73853D38 Received: from DUZPR01CA0180.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b3::14) by AS8PR08MB9720.eurprd08.prod.outlook.com (2603:10a6:20b:614::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.23; Fri, 12 May 2023 09:39:22 +0000 Received: from DBAEUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:4b3:cafe::58) by DUZPR01CA0180.outlook.office365.com (2603:10a6:10:4b3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.24 via Frontend Transport; Fri, 12 May 2023 09:39:22 +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 DBAEUR03FT026.mail.protection.outlook.com (100.127.142.242) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18 via Frontend Transport; Fri, 12 May 2023 09:39:22 +0000 Received: ("Tessian outbound 3570909035da:v136"); Fri, 12 May 2023 09:39:22 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 9bf5cb25622cf003 X-CR-MTA-TID: 64aa7808 Received: from 5fcf10c2fd6c.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B5E0A0FD-C12A-4B49-AF6C-4333E4B4A6DA.1; Fri, 12 May 2023 09:39:15 +0000 Received: from EUR02-AM0-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5fcf10c2fd6c.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 12 May 2023 09:39:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hlIIWPSx5CYwG0r9BXyiAgNNCYFqt5cKHbcZxX0qZ/fANBXZhm8xc60eUhevFWfxosuXYRfqhLfm8Ub4vG7ATaaXZuG7hmYU3jcGz/cA1Uv0tXRvJwpqpq1H/eAVS8Y5tly0EQUzefp5uIvwKoTqROWOLofLIxnpBuLpg1oweWfGp3EgMXp5dpnGAYfNHH+t9UVhxrY21QyFWcQhvsM1I7ghagGDiJbM8vdE6YI1sbbtt27fImlYSqxWvD08zcC9lqluuSK2f5/g78yBh6N8TDrTeLuVH6LsoYIiGlFRqmUYPDTNifi0xuAkfwqGrMc0WpvrO8PqDaqrlUSy97DxXw== 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=jHxQYc8HFxcmC/HyVxbCxaV+0aKAyJwxIfBHD0ySTeo=; b=QHpiBeJY8FrCvxh0ZzUAaeN8XEP7u6pHiXWH34G8+BajiaI8Xdp+YXC/bjyqavESBXeMq/MJ3hKP/3y5LJ6ya+lAEJ5VWCMzfLla039Hzlk948s6MnciWbplRW9WV0YA2QoeMOCmGiSmekjKTbjS4JhhPTXh3QVaiXuNWwlUmGPKYQfj5xU/bREJTcbYQTEEu+gmJSUuiR3kIg+vsySRqQqDR42fPzYPdWi/z5hM9/1roBgLyqtJf1PMCqz2ywLRDtR51cKPWlc/olNvO2aZUy57Gj/pvrDRaXItn4/CMrwkvdeiyrC8VGVJQpuJ3/M5r84BJ6Vrf0Qj+9NHRxOYIA== 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 Received: from AS9PR06CA0467.eurprd06.prod.outlook.com (2603:10a6:20b:49a::20) by DB9PR08MB6665.eurprd08.prod.outlook.com (2603:10a6:10:2ad::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.24; Fri, 12 May 2023 09:39:13 +0000 Received: from AM7EUR03FT039.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:49a:cafe::a0) by AS9PR06CA0467.outlook.office365.com (2603:10a6:20b:49a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.23 via Frontend Transport; Fri, 12 May 2023 09:39:13 +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 AM7EUR03FT039.mail.protection.outlook.com (100.127.140.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6387.24 via Frontend Transport; Fri, 12 May 2023 09:39:13 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Fri, 12 May 2023 09:39:01 +0000 Received: from e129018.arm.com (10.57.21.161) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2507.23 via Frontend Transport; Fri, 12 May 2023 09:39:01 +0000 To: , , , CC: Christophe Lyon Subject: [PATCH 18/26] arm: [MVE intrinsics] factorize vpselq Date: Fri, 12 May 2023 11:38:47 +0200 Message-ID: <20230512093855.79529-18-christophe.lyon@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230512093855.79529-1-christophe.lyon@arm.com> References: <20230512093855.79529-1-christophe.lyon@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM7EUR03FT039:EE_|DB9PR08MB6665:EE_|DBAEUR03FT026:EE_|AS8PR08MB9720:EE_ X-MS-Office365-Filtering-Correlation-Id: d0b617c1-2121-460d-2cfb-08db52ccc437 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: CQBDeDkfJsHaStOyhGSQB9DyFvNaSrpOU7FpVIwdYtFdgFCA8puSgZx5nZYk+X5mm1T5gMAtqqBRlHYStlegCr2NA/Kaji5JxtJ/nXFvkvVgMMpkD6Z7nD21ZGhNqsQuW7PAA3eiKLBbQ80o2r420oANAT1TUYz2SfNWZK4v9qf6YmpfxxjqxiyJomWB+czJaTRGxSt4OMA2/qL2GDeeifiprg4A0k3Ln3NIA/evJwRCT25ih+8L426hTXVtK0LCnIlv4KzcRugclUaXbc39rLPPixPYqLSrvEm0lWdS1iwgRdjFYXZNni/PsFj3cJx7c1/0AQwmvavPoS/CYMBiORdTXJDtM2roqHXHc7N9c4nHf1B8BSelqkIGG+SDrCKku1YUgRDVLVydznLKJ+yJf+fEO1lZFlJZwTDZAPXVFlehbVJLUQBU/V9M/MFIeWDvtzvMYcV2qnBChBnVIBaqe2G9a27ALU68FIomYJCZLWkfIkGinER3qVxUCgRWzEX0AGt+Buvr4jDru4Oy2UcqgX0FrbqGKk6/cRK2hAJ8B96eLFVtR1SC1dIFElczkXBkE/ogZyWYU7bs94C6u59Dz1QSCO0HkcZObAPctLlXr8Y4y+brKgENjfJ/9n+LV7Wq60cf8Hf4asYp35EUQNINNbbMw3JQ0jHYVXBuvTtg9tgxjzB9hpHH43/6b4nErrNCbbJTdXbsPtlBHYqPabZ17AZE3Nh3oXHykd/tM6e9fdQc6CC30y3g7FZfgASWi89Tc30JFSjVsQkB6gHH5+6b5A== 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)(136003)(376002)(396003)(39860400002)(346002)(451199021)(36840700001)(40470700004)(46966006)(40460700003)(4326008)(6636002)(70206006)(70586007)(478600001)(7696005)(316002)(110136005)(86362001)(36756003)(426003)(83380400001)(47076005)(336012)(26005)(186003)(2616005)(1076003)(36860700001)(5660300002)(8936002)(44832011)(2906002)(4001150100001)(8676002)(6666004)(41300700001)(82310400005)(40480700001)(356005)(82740400003)(81166007)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6665 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 72844b7d-abf2-48f6-c1b0-08db52ccbeda X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K18Pamb/yztKUK5liRlGdgMlmXgzLQE6jcBpscp9k3zlrx0GxZkugz+GysAH50/Kc9bwy3qsbuUczJlhvjcDMUEF+tCV99bzBG/9V/MHhRhaE4Lnw85p0Hiclbq36Lcy2wOLJscNyZtK4sADJUmSU10Wzou0r7GpeFTUmakBxintVhVb1bSMInGI/i7fOQ6agnz6J8Txkc4osV0pWjX/pDajsQkRRJc7MHEKIF2VKpDircoS2liuz/sDsHml+HYkqmSfSlfwCDLqmZxuB7k9rLCloW9XwHODHZp1IArVR6LfxRz1RbAk8Noby/Rkj7cp+3BQ1dJHruHr/00fn751iTXIrz5sGJlPwwH2v1SFaa3DQRPyoFBvIB/6rmz3hqmj6k5nCrFMBG/ESFJr+s0fFiFoHVp+Ia872+dNDriSa1+ModGS4HcmRvPAdBOZXSueiq98258sph2T5+iBY/PibPdaAOrSB9go+xEKdAogr6PQpaN1UwkmFk2yuxCxkC9nFYiRJLY+729SkNn+pVfo3Vx9l/yT+FNVpJOt2RmgLHjXDae6VDIx7IAr2htqxnlrF8mUW2EYRoFw37x/i5FG9z1PiccLuR7Hg0tMqnpzWsOlOnvq2Zmk4mfNVZq688/q6mA84FqjFwDfG81Co8ntlbXGfx5ou3tyQPOdKbikE65czktHL4Qx2Ey7l/pII94nv62Fpl3TtZAQ1aqwtrh5ehqgUmtCJTaQ2+nGueec4igfb4ToopQbP+2RE/Phpeha 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)(136003)(376002)(396003)(39860400002)(346002)(451199021)(36840700001)(46966006)(40470700004)(81166007)(82740400003)(86362001)(40480700001)(36756003)(40460700003)(82310400005)(44832011)(5660300002)(8676002)(8936002)(26005)(1076003)(186003)(4001150100001)(70586007)(2616005)(70206006)(83380400001)(478600001)(110136005)(316002)(6666004)(6636002)(41300700001)(2906002)(4326008)(7696005)(36860700001)(47076005)(426003)(336012); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2023 09:39:22.1657 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d0b617c1-2121-460d-2cfb-08db52ccc437 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: DBAEUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9720 X-Spam-Status: No, score=-12.7 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Christophe Lyon via Gcc-patches From: Christophe Lyon Reply-To: Christophe Lyon Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Factorize vpselq builtins so that they use parameterized names. 2022-12-12 Christophe Lyon gcc/ * config/arm/arm.cc (arm_expand_vcond): Use gen_mve_q instead of gen_mve_vpselq. * config/arm/iterators.md (MVE_VPSELQ_F): New. (mve_insn): Add vpsel. * config/arm/mve.md (@mve_vpselq_): Rename into ... (@mve_q_): ... this. (@mve_vpselq_f): Rename into ... (@mve_q_f): ... this. --- gcc/config/arm/arm.cc | 8 ++++---- gcc/config/arm/iterators.md | 5 +++++ gcc/config/arm/mve.md | 18 +++++++++--------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc index 06e0756e4e8..da7e9c81465 100644 --- a/gcc/config/arm/arm.cc +++ b/gcc/config/arm/arm.cc @@ -31633,13 +31633,13 @@ arm_expand_vcond (rtx *operands, machine_mode cmp_result_mode) switch (GET_MODE_CLASS (cmp_mode)) { case MODE_VECTOR_INT: - emit_insn (gen_mve_vpselq (VPSELQ_S, cmp_mode, operands[0], - operands[1], operands[2], mask)); + emit_insn (gen_mve_q (VPSELQ_S, VPSELQ_S, cmp_mode, operands[0], + operands[1], operands[2], mask)); break; case MODE_VECTOR_FLOAT: if (TARGET_HAVE_MVE_FLOAT) - emit_insn (gen_mve_vpselq_f (cmp_mode, operands[0], - operands[1], operands[2], mask)); + emit_insn (gen_mve_q_f (VPSELQ_F, cmp_mode, operands[0], + operands[1], operands[2], mask)); else gcc_unreachable (); break; diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md index 022744f04d9..3d4a9cf9cc2 100644 --- a/gcc/config/arm/iterators.md +++ b/gcc/config/arm/iterators.md @@ -898,6 +898,10 @@ (define_int_attr mve_cmp_op1 [ (VCMPNEQ_M_N_F "ne") ]) +(define_int_iterator MVE_VPSELQ_F [ + VPSELQ_F + ]) + (define_int_attr mve_insn [ (VABAVQ_P_S "vabav") (VABAVQ_P_U "vabav") (VABAVQ_S "vabav") (VABAVQ_U "vabav") @@ -1030,6 +1034,7 @@ (define_int_attr mve_insn [ (VORRQ_M_N_S "vorr") (VORRQ_M_N_U "vorr") (VORRQ_M_S "vorr") (VORRQ_M_U "vorr") (VORRQ_M_F "vorr") (VORRQ_N_S "vorr") (VORRQ_N_U "vorr") + (VPSELQ_S "vpsel") (VPSELQ_U "vpsel") (VPSELQ_F "vpsel") (VQABSQ_M_S "vqabs") (VQABSQ_S "vqabs") (VQADDQ_M_N_S "vqadd") (VQADDQ_M_N_U "vqadd") diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md index b87798730a2..c6f9c0b9afb 100644 --- a/gcc/config/arm/mve.md +++ b/gcc/config/arm/mve.md @@ -1969,7 +1969,7 @@ (define_insn "@mve_q_m_" ;; ;; [vpselq_u, vpselq_s]) ;; -(define_insn "@mve_vpselq_" +(define_insn "@mve_q_" [ (set (match_operand:MVE_1 0 "s_register_operand" "=w") (unspec:MVE_1 [(match_operand:MVE_1 1 "s_register_operand" "w") @@ -1978,7 +1978,7 @@ (define_insn "@mve_vpselq_" VPSELQ)) ] "TARGET_HAVE_MVE" - "vpsel %q0, %q1, %q2" + "\t%q0, %q1, %q2" [(set_attr "type" "mve_move") ]) @@ -2427,16 +2427,16 @@ (define_insn "@mve_q_m_n_" ;; ;; [vpselq_f]) ;; -(define_insn "@mve_vpselq_f" +(define_insn "@mve_q_f" [ (set (match_operand:MVE_0 0 "s_register_operand" "=w") (unspec:MVE_0 [(match_operand:MVE_0 1 "s_register_operand" "w") (match_operand:MVE_0 2 "s_register_operand" "w") (match_operand: 3 "vpr_register_operand" "Up")] - VPSELQ_F)) + MVE_VPSELQ_F)) ] "TARGET_HAVE_MVE && TARGET_HAVE_MVE_FLOAT" - "vpsel %q0, %q1, %q2" + "\t%q0, %q1, %q2" [(set_attr "type" "mve_move") ]) @@ -6867,12 +6867,12 @@ (define_expand "vcond_mask_" switch (GET_MODE_CLASS (mode)) { case MODE_VECTOR_INT: - emit_insn (gen_mve_vpselq (VPSELQ_S, mode, operands[0], - operands[1], operands[2], operands[3])); + emit_insn (gen_mve_q (VPSELQ_S, VPSELQ_S, mode, operands[0], + operands[1], operands[2], operands[3])); break; case MODE_VECTOR_FLOAT: - emit_insn (gen_mve_vpselq_f (mode, operands[0], - operands[1], operands[2], operands[3])); + emit_insn (gen_mve_q_f (VPSELQ_F, mode, operands[0], + operands[1], operands[2], operands[3])); break; default: gcc_unreachable ();