Message ID | 20230509121937.206183-1-christophe.lyon@arm.com |
---|---|
State | Accepted |
Headers |
Return-Path: <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2836272vqo; Tue, 9 May 2023 05:21:43 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4vu+/d8ixBbo8nnqvVSpQ5Qy7yf2ej6Izk0wsBux2NcnqFK9a3FiYiaHzOGjdftHzs3lfO X-Received: by 2002:a05:6402:685:b0:50b:d553:381e with SMTP id f5-20020a056402068500b0050bd553381emr10647332edy.9.1683634903613; Tue, 09 May 2023 05:21:43 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id v7-20020aa7d807000000b0050507213c83si1165824edq.169.2023.05.09.05.21.43 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 May 2023 05:21:43 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=HBs1o8+T; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id DA3B03852921 for <ouuuleilei@gmail.com>; Tue, 9 May 2023 12:20:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DA3B03852921 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1683634854; bh=/O1CchzHpiZCQnGdGUbkTuvNYPpIn0qBvJzQ6D0h7nc=; h=To:CC:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=HBs1o8+TD6Zy1Iaq33fAatR5Cb7wN5G+yPUYHALe4iwr+ZxRKzbMrktn3biXBI11u b3cd5sDoi3x3WHcZyzbxCjw/evF1pD/uVGhYx596mxkbcJutrJPxQwnfHN9StdMT8o syR2iTJeTxGDp04MXnNl8B5jCNaNeLwaK9WscLts= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2069.outbound.protection.outlook.com [40.107.105.69]) by sourceware.org (Postfix) with ESMTPS id 2A8593858C74 for <gcc-patches@gcc.gnu.org>; Tue, 9 May 2023 12:19:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2A8593858C74 Received: from DB6PR0202CA0003.eurprd02.prod.outlook.com (2603:10a6:4:29::13) by AM9PR08MB5891.eurprd08.prod.outlook.com (2603:10a6:20b:2da::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Tue, 9 May 2023 12:19:51 +0000 Received: from DBAEUR03FT046.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:29:cafe::b5) by DB6PR0202CA0003.outlook.office365.com (2603:10a6:4:29::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 12:19:51 +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 DBAEUR03FT046.mail.protection.outlook.com (100.127.142.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.18 via Frontend Transport; Tue, 9 May 2023 12:19:51 +0000 Received: ("Tessian outbound 8b05220b4215:v136"); Tue, 09 May 2023 12:19:51 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5505244a4c51997e X-CR-MTA-TID: 64aa7808 Received: from 4e240fe37a82.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 5D9F0C2C-3352-4130-AF14-C9017E906E6E.1; Tue, 09 May 2023 12:19:44 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4e240fe37a82.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 09 May 2023 12:19:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gklzoew3PNARdMIre1dxhevRbBQDlmF+StwQQw2aUo0fJv4lVt8vu8SwmzG0RfF4V3VDgclIJvZYdcM6Mu1GLpXs642HmbjgP+OQQxdfq+sfDUygmENtNgYemkxNhtGHtd4H1HucuDJc8KflpBH8EjIQrRRtnIJs4WuiUH+AQGAO6av6J/pjJAtooqaF/UdUwdsSKOWBfspmuTkqY7fK5WZoTDw87pD4uz6CBZ0CgmUBAHwFDEvsunv200bry5w03a9tSTUgNGd/Cu6JdMI85Z+g/2k8RauKYXlIshReuK9n7xYm8SIjUrn8vcgU+D3pwbCzzFA+0ENUjFqZMZZYMA== 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=/O1CchzHpiZCQnGdGUbkTuvNYPpIn0qBvJzQ6D0h7nc=; b=RU8Ea2ApbXEHl4t783I2gmVQ2tDNbTXv+vs32+9rsc/dXaRvF8zCrvfSnpdve+w3uA3xH928rcA8Zy52jAMhOxgflnSPL+xgLXHRerDaFN8tbwzxTptPQyp3livl4aaqbKhC8PJCbhT7/kfkY/Je0zFVNlK1Btom1WAF4/uUQAUidFGUAsBLG9WNa34dNmYEP3sIqDVlL6922S/35Ju3cnCju16UIbvuX5P4Ni6XuqIX+g834nljTxaGsituD1mJjD68M8xafpchLDhiwUTXDitJOTRdAgb7Q1ci6XgnNtpNHQu/Vt75wAIX7oHC22TJlXpTSp59R9YGNBYR1pVuiA== 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 DUZPR01CA0340.eurprd01.prod.exchangelabs.com (2603:10a6:10:4b8::13) by AS4PR08MB7604.eurprd08.prod.outlook.com (2603:10a6:20b:4ce::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Tue, 9 May 2023 12:19:42 +0000 Received: from DBAEUR03FT047.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:4b8:cafe::9b) by DUZPR01CA0340.outlook.office365.com (2603:10a6:10:4b8::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33 via Frontend Transport; Tue, 9 May 2023 12:19:42 +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 DBAEUR03FT047.mail.protection.outlook.com (100.127.143.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6387.18 via Frontend Transport; Tue, 9 May 2023 12:19:42 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) 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; Tue, 9 May 2023 12:19:42 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 9 May 2023 12:19:41 +0000 Received: from e129018.arm.com (10.57.21.174) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.23 via Frontend Transport; Tue, 9 May 2023 12:19:41 +0000 To: <gcc-patches@gcc.gnu.org>, <kyrylo.tkachov@arm.com>, <richard.earnshaw@arm.com>, <richard.sandiford@arm.com> CC: Christophe Lyon <christophe.lyon@arm.com> Subject: [PATCH 01/16] arm: [MVE intrinsics] add binary_maxvminv shape Date: Tue, 9 May 2023 14:19:22 +0200 Message-ID: <20230509121937.206183-1-christophe.lyon@arm.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DBAEUR03FT047:EE_|AS4PR08MB7604:EE_|DBAEUR03FT046:EE_|AM9PR08MB5891:EE_ X-MS-Office365-Filtering-Correlation-Id: 17e8ce04-2c3d-4ca0-ec73-08db5087b05f 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: ivrXoXwIZ6CIYHqBD1b0RHnZg2wxIIabhNqslm093l6R26L8r/83Piag+D35tnW4RVqQQHeY0EzSb8LPor3C7AY8cxQYJvUaonJ4WCQzYuuxuF/PS2q2fhPfy0FFIc7HzIaW7rplSAMhudNjAOx+hjoEBlv1uAk4qSAuuMhlUVZcJCt4emb4LE/G4fA7r1D5ya9l4Xoj3PczD2lKHpniqOodpkA/ibqfQNS3YCrIE3EK2fym73B1BfLLnutLBORKx8aVp1hsHj2FLXYlmDfDyPIRA+jvQQ6FkayYXCRsiE/8zGa+/CxegjYLR+zFr78tCANYBDdbjv4zcWyshq2bVVs4P/jN21acQi6FCRGweY1MIdWgbcRgf+7NITnDISJw03QGxalyPI3kLA9SyAfXltj9cYWClfPfgVsgOdONPZjYtpfYJfS7cIbX7rTQyiw+xeyCRqHch4l/V1RXKAmubMv0wxHCHn2j74ryUIXRnc765rHM9+0f+RLoKp38JhzBvEaeAveTtnuY1P/SEsF0m+dK/iQ1s0E2atuh1L4WsvAit4NTzAtvHkZKVD2ZSn30FgdHtdY2zLP3p8uI6u3cbWdJH6l3vZ88/qw5CjLo+IRuaZl2GoVJhXIxfoqee5qROjgUeji7qTEH0Jy+a9LVrWDoDjZoII9vnCixDQbcUyfnIQQlyhYfwIXCMKuf6//PMp1G0OFlddJUjWch7wwVrQ== 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)(396003)(376002)(39860400002)(136003)(451199021)(46966006)(36840700001)(478600001)(40480700001)(356005)(6666004)(81166007)(7696005)(6636002)(110136005)(316002)(70586007)(70206006)(4326008)(44832011)(82740400003)(41300700001)(2906002)(5660300002)(8936002)(8676002)(26005)(36756003)(1076003)(186003)(36860700001)(47076005)(2616005)(426003)(336012)(82310400005)(86362001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7604 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT046.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0f9abbb1-e951-46ae-71bd-08db5087ab39 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jtynWNW3AywpJZlO8lnainC7lYRHHZOmQRfh+2bsr+RxAMZci4CPOMPGNGPXkClbv5wXf/8wIPKa1B9tOPF4swb9E9O/S9ozaZZm0+Y7suVgA8HgrZRsHvcPv647Ldb2oSy2n0032k/ckJHkLJSoQf05WSSjQL/vB5x3HQsgrUoRQHZgkcWzZcKB09d/tFvJughhatqqdnibC8eYF1We/fHMVB3lD0+e1ateoI2vNo+4rPzDGi+FR/+2WuAjefCOuWHV9/KrbuxH/toJQjeSsies0WXvNUW+OCQvUgWzNbn75JRjRpsDtK8Vw87oEO/QPtC0Hni+X2rTwyQaanWtAUr58yHvy8FyUXUGPZQ21zh14E79SOlcFY9wxZ86+Ek1V7SH3PDkT2w3uu3ehbVbTupUQ0pMQ4WH1Gx3UkX/Bq//0+UjuqSINXxCWobgvWMA9RgUeUHR1VneuUGQH/C5pjx97pPcoYs+qBpw8JGRyqoslMW0NNlLW4ti8yJ4d23iV9o95aPDp5KspUkNGeg2LVbkbybNqGZAqDFICI+iayOTqiRafp+N0zGUJM8rr+IMTEZoDaxSg5DH3IMTo++7NpGblxJcky8JuL7QrOWpXlKGy3+AbAmLpCmf6WY2Yol+iTMZw2+Zyq4d+tqTmUzMhZMoe8UrfC2WHufnUwp0n14c9NoPXytD1eHjxAtm+m1UCopYMbKoHC2GZOxo7kALYQ== 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)(376002)(136003)(346002)(39860400002)(396003)(451199021)(46966006)(36840700001)(40470700004)(426003)(336012)(36860700001)(36756003)(186003)(47076005)(40460700003)(2616005)(40480700001)(478600001)(70206006)(5660300002)(44832011)(41300700001)(6636002)(70586007)(4326008)(110136005)(8676002)(8936002)(7696005)(2906002)(6666004)(82740400003)(316002)(81166007)(86362001)(1076003)(26005)(82310400005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 12:19:51.2940 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 17e8ce04-2c3d-4ca0-ec73-08db5087b05f 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: DBAEUR03FT046.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5891 X-Spam-Status: No, score=-12.5 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 <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> From: Christophe Lyon via Gcc-patches <gcc-patches@gcc.gnu.org> Reply-To: Christophe Lyon <christophe.lyon@arm.com> Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1765419153135336474?= X-GMAIL-MSGID: =?utf-8?q?1765419153135336474?= |
Series |
[01/16] arm: [MVE intrinsics] add binary_maxvminv shape
|
|
Checks
Context | Check | Description |
---|---|---|
snail/gcc-patch-check | success | Github commit url |
Commit Message
Christophe Lyon
May 9, 2023, 12:19 p.m. UTC
This patch adds the binary_maxvminv shape description. 2022-09-08 Christophe Lyon <christophe.lyon@arm.com> gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New. * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 30 +++++++++++++++++++++++ gcc/config/arm/arm-mve-builtins-shapes.h | 1 + 2 files changed, 31 insertions(+)
Comments
Hi Christophe, > -----Original Message----- > From: Christophe Lyon <christophe.lyon@arm.com> > Sent: Tuesday, May 9, 2023 1:19 PM > To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; > Richard Earnshaw <Richard.Earnshaw@arm.com>; Richard Sandiford > <Richard.Sandiford@arm.com> > Cc: Christophe Lyon <Christophe.Lyon@arm.com> > Subject: [PATCH 01/16] arm: [MVE intrinsics] add binary_maxvminv shape > > This patch adds the binary_maxvminv shape description. This patch series is fairly mechanical (that's not to say simple!) and in line with the other series in this area. You obviously know what you're doing here so I'm comfortable approving it. I did have a look at the patches individually and with the comment on patch 06/16 addressed this series is ok for trunk. Thanks, Kyrill > > 2022-09-08 Christophe Lyon <christophe.lyon@arm.com> > > gcc/ > * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New. > * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New. > --- > gcc/config/arm/arm-mve-builtins-shapes.cc | 30 +++++++++++++++++++++++ > gcc/config/arm/arm-mve-builtins-shapes.h | 1 + > 2 files changed, 31 insertions(+) > > diff --git a/gcc/config/arm/arm-mve-builtins-shapes.cc b/gcc/config/arm/arm- > mve-builtins-shapes.cc > index 1d43b8871bf..19c3c47a20e 100644 > --- a/gcc/config/arm/arm-mve-builtins-shapes.cc > +++ b/gcc/config/arm/arm-mve-builtins-shapes.cc > @@ -401,6 +401,36 @@ struct binary_rshift_def : public > overloaded_base<0> > }; > SHAPE (binary_rshift) > > +/* <S0>_t vfoo[_<t0>](<S0>_t, <T0>_t) > + > + Example: vmaxvq. > + int8_t [__arm_]vmaxvq[_s8](int8_t a, int8x16_t b) > + int8_t [__arm_]vmaxvq_p[_s8](int8_t a, int8x16_t b, mve_pred16_t p) */ > +struct binary_maxvminv_def : public overloaded_base<0> > +{ > + void > + build (function_builder &b, const function_group_info &group, > + bool preserve_user_namespace) const override > + { > + b.add_overloaded_functions (group, MODE_none, > preserve_user_namespace); > + build_all (b, "s0,s0,v0", group, MODE_none, preserve_user_namespace); > + } > + > + tree > + resolve (function_resolver &r) const override > + { > + unsigned int i, nargs; > + type_suffix_index type; > + if (!r.check_gp_argument (2, i, nargs) > + || !r.require_derived_scalar_type (0, r.SAME_TYPE_CLASS) > + || (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES) > + return error_mark_node; > + > + return r.resolve_to (r.mode_suffix_id, type); > + } > +}; > +SHAPE (binary_maxvminv) > + > /* <T0:half>_t vfoo[_t0](<T0:half>_t, <T0>_t) > > Example: vmovnbq. > diff --git a/gcc/config/arm/arm-mve-builtins-shapes.h b/gcc/config/arm/arm- > mve-builtins-shapes.h > index dd2597dc6f5..9debf1d8733 100644 > --- a/gcc/config/arm/arm-mve-builtins-shapes.h > +++ b/gcc/config/arm/arm-mve-builtins-shapes.h > @@ -37,6 +37,7 @@ namespace arm_mve > extern const function_shape *const binary; > extern const function_shape *const binary_lshift; > extern const function_shape *const binary_lshift_r; > + extern const function_shape *const binary_maxvminv; > extern const function_shape *const binary_move_narrow; > extern const function_shape *const binary_move_narrow_unsigned; > extern const function_shape *const binary_opt_n; > -- > 2.34.1
On 5/9/23 15:50, Kyrylo Tkachov wrote: > Hi Christophe, > >> -----Original Message----- >> From: Christophe Lyon <christophe.lyon@arm.com> >> Sent: Tuesday, May 9, 2023 1:19 PM >> To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov <Kyrylo.Tkachov@arm.com>; >> Richard Earnshaw <Richard.Earnshaw@arm.com>; Richard Sandiford >> <Richard.Sandiford@arm.com> >> Cc: Christophe Lyon <Christophe.Lyon@arm.com> >> Subject: [PATCH 01/16] arm: [MVE intrinsics] add binary_maxvminv shape >> >> This patch adds the binary_maxvminv shape description. > > This patch series is fairly mechanical (that's not to say simple!) and in line with the other series in this area. Yeah it took me a bit of time & thinking to put the series in a mechanical shape, hopefully easy to review. > You obviously know what you're doing here so I'm comfortable approving it. > I did have a look at the patches individually and with the comment on patch 06/16 addressed this series is ok for trunk. Thanks, Christophe > Thanks, > Kyrill > >> >> 2022-09-08 Christophe Lyon <christophe.lyon@arm.com> >> >> gcc/ >> * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New. >> * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New. >> --- >> gcc/config/arm/arm-mve-builtins-shapes.cc | 30 +++++++++++++++++++++++ >> gcc/config/arm/arm-mve-builtins-shapes.h | 1 + >> 2 files changed, 31 insertions(+) >> >> diff --git a/gcc/config/arm/arm-mve-builtins-shapes.cc b/gcc/config/arm/arm- >> mve-builtins-shapes.cc >> index 1d43b8871bf..19c3c47a20e 100644 >> --- a/gcc/config/arm/arm-mve-builtins-shapes.cc >> +++ b/gcc/config/arm/arm-mve-builtins-shapes.cc >> @@ -401,6 +401,36 @@ struct binary_rshift_def : public >> overloaded_base<0> >> }; >> SHAPE (binary_rshift) >> >> +/* <S0>_t vfoo[_<t0>](<S0>_t, <T0>_t) >> + >> + Example: vmaxvq. >> + int8_t [__arm_]vmaxvq[_s8](int8_t a, int8x16_t b) >> + int8_t [__arm_]vmaxvq_p[_s8](int8_t a, int8x16_t b, mve_pred16_t p) */ >> +struct binary_maxvminv_def : public overloaded_base<0> >> +{ >> + void >> + build (function_builder &b, const function_group_info &group, >> + bool preserve_user_namespace) const override >> + { >> + b.add_overloaded_functions (group, MODE_none, >> preserve_user_namespace); >> + build_all (b, "s0,s0,v0", group, MODE_none, preserve_user_namespace); >> + } >> + >> + tree >> + resolve (function_resolver &r) const override >> + { >> + unsigned int i, nargs; >> + type_suffix_index type; >> + if (!r.check_gp_argument (2, i, nargs) >> + || !r.require_derived_scalar_type (0, r.SAME_TYPE_CLASS) >> + || (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES) >> + return error_mark_node; >> + >> + return r.resolve_to (r.mode_suffix_id, type); >> + } >> +}; >> +SHAPE (binary_maxvminv) >> + >> /* <T0:half>_t vfoo[_t0](<T0:half>_t, <T0>_t) >> >> Example: vmovnbq. >> diff --git a/gcc/config/arm/arm-mve-builtins-shapes.h b/gcc/config/arm/arm- >> mve-builtins-shapes.h >> index dd2597dc6f5..9debf1d8733 100644 >> --- a/gcc/config/arm/arm-mve-builtins-shapes.h >> +++ b/gcc/config/arm/arm-mve-builtins-shapes.h >> @@ -37,6 +37,7 @@ namespace arm_mve >> extern const function_shape *const binary; >> extern const function_shape *const binary_lshift; >> extern const function_shape *const binary_lshift_r; >> + extern const function_shape *const binary_maxvminv; >> extern const function_shape *const binary_move_narrow; >> extern const function_shape *const binary_move_narrow_unsigned; >> extern const function_shape *const binary_opt_n; >> -- >> 2.34.1 >
diff --git a/gcc/config/arm/arm-mve-builtins-shapes.cc b/gcc/config/arm/arm-mve-builtins-shapes.cc index 1d43b8871bf..19c3c47a20e 100644 --- a/gcc/config/arm/arm-mve-builtins-shapes.cc +++ b/gcc/config/arm/arm-mve-builtins-shapes.cc @@ -401,6 +401,36 @@ struct binary_rshift_def : public overloaded_base<0> }; SHAPE (binary_rshift) +/* <S0>_t vfoo[_<t0>](<S0>_t, <T0>_t) + + Example: vmaxvq. + int8_t [__arm_]vmaxvq[_s8](int8_t a, int8x16_t b) + int8_t [__arm_]vmaxvq_p[_s8](int8_t a, int8x16_t b, mve_pred16_t p) */ +struct binary_maxvminv_def : public overloaded_base<0> +{ + void + build (function_builder &b, const function_group_info &group, + bool preserve_user_namespace) const override + { + b.add_overloaded_functions (group, MODE_none, preserve_user_namespace); + build_all (b, "s0,s0,v0", group, MODE_none, preserve_user_namespace); + } + + tree + resolve (function_resolver &r) const override + { + unsigned int i, nargs; + type_suffix_index type; + if (!r.check_gp_argument (2, i, nargs) + || !r.require_derived_scalar_type (0, r.SAME_TYPE_CLASS) + || (type = r.infer_vector_type (1)) == NUM_TYPE_SUFFIXES) + return error_mark_node; + + return r.resolve_to (r.mode_suffix_id, type); + } +}; +SHAPE (binary_maxvminv) + /* <T0:half>_t vfoo[_t0](<T0:half>_t, <T0>_t) Example: vmovnbq. diff --git a/gcc/config/arm/arm-mve-builtins-shapes.h b/gcc/config/arm/arm-mve-builtins-shapes.h index dd2597dc6f5..9debf1d8733 100644 --- a/gcc/config/arm/arm-mve-builtins-shapes.h +++ b/gcc/config/arm/arm-mve-builtins-shapes.h @@ -37,6 +37,7 @@ namespace arm_mve extern const function_shape *const binary; extern const function_shape *const binary_lshift; extern const function_shape *const binary_lshift_r; + extern const function_shape *const binary_maxvminv; extern const function_shape *const binary_move_narrow; extern const function_shape *const binary_move_narrow_unsigned; extern const function_shape *const binary_opt_n;