From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2071.outbound.protection.outlook.com [40.107.249.71]) by sourceware.org (Postfix) with ESMTPS id 2FA7B3858D1E for ; Tue, 2 May 2023 16:39:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2FA7B3858D1E 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=yJjixeqt4yfoDOQkmooIk5gXcl+KxvDZJYK5sPdsTOo=; b=2KIaI7JVfodIXC3wd3H2TcnpSJfSVzBU5IuMV+NM5SbRGirpdaFtN6z730x7j+cLVCL43zL52fqiJSv26JtgV5K9/Iw9nsAhjLGrcaUPaQyIJzK9GVq1PJ1/u62qhGoNMs5NOaQiPj46og2DlGnmd1EAwM/zixZLli3xXLIQ20o= Received: from AS9PR05CA0254.eurprd05.prod.outlook.com (2603:10a6:20b:493::14) by AS2PR08MB10125.eurprd08.prod.outlook.com (2603:10a6:20b:649::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.30; Tue, 2 May 2023 16:39:47 +0000 Received: from AM7EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:493:cafe::1a) by AS9PR05CA0254.outlook.office365.com (2603:10a6:20b:493::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.31 via Frontend Transport; Tue, 2 May 2023 16:39:47 +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 AM7EUR03FT043.mail.protection.outlook.com (100.127.140.160) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.21 via Frontend Transport; Tue, 2 May 2023 16:39:47 +0000 Received: ("Tessian outbound 945aec65ec65:v136"); Tue, 02 May 2023 16:39:47 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: f80161e356071a2a X-CR-MTA-TID: 64aa7808 Received: from e3b515281763.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FE8B8AF8-4ED3-4ADA-A1FC-6F84AEF11A2D.1; Tue, 02 May 2023 16:39:35 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e3b515281763.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 02 May 2023 16:39:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O5V2vrUXrOqY6FUoSb+yPSJJjgoNq+mGMBaXFPbE7cMaobUjuzGi2SniU/hR7jJzOOrosgz8HhWVkSd0Rhx3NZ2vF5V6JRtWDz0o15NSryxoLNW5dWI3BSxgJe+KiOj1wOoIbcYG6NqjEyNWWKBiYxedSOgYL+Fsgy4X5/sjNOYmvnnMzFdwKS/p7WAzJal/ANViY34aRlPHycZhQO13UzWdAwee9oOMxbFAemE7LmkBqd1MX/HciRWX7zEbdF7Bwub9q6X9+q2xWsSo0ApPpxYI9Dmr9IB5azm/b95mZouQ45K+4vIeHZ+ezSUF6fu6aqL28NaK/i3tfPau0rSuiw== 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=yJjixeqt4yfoDOQkmooIk5gXcl+KxvDZJYK5sPdsTOo=; b=h0UCSKfpVT2mKsVCDf8gbhYov7gdjEuMyqrEYrCwrt3JTOjZt7E0CjVjl2OSV0nfjXj8eLgQMdtytCwnbQceStQNu5L49M42ifiqPENZ4tnjpQsTWH+sGi8LXJdacD3oqVTJQ/KXBFgFNBeXx8dIOcCXrfr2WwyoadoTffXwHmgMDuZqCppL5/jJH2x8jAUavgRjPb9/LB8vI49uVXe54ur6tnyEzkIIQmNkdbVeey1EOesxDAMSPYw9G1118uLBU+93NpKY2aP31fD+kwrHw0I/MvVcnSVHvdyCHLII6VGG8HKw5eAOivzwOwjAT6y44y74F0np/lVfO6UpumhTpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; 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=yJjixeqt4yfoDOQkmooIk5gXcl+KxvDZJYK5sPdsTOo=; b=2KIaI7JVfodIXC3wd3H2TcnpSJfSVzBU5IuMV+NM5SbRGirpdaFtN6z730x7j+cLVCL43zL52fqiJSv26JtgV5K9/Iw9nsAhjLGrcaUPaQyIJzK9GVq1PJ1/u62qhGoNMs5NOaQiPj46og2DlGnmd1EAwM/zixZLli3xXLIQ20o= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by DU2PR08MB10277.eurprd08.prod.outlook.com (2603:10a6:10:49b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.31; Tue, 2 May 2023 16:39:33 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1%3]) with mapi id 15.20.6340.031; Tue, 2 May 2023 16:39:33 +0000 From: Kyrylo Tkachov To: Christophe Lyon , "gcc-patches@gcc.gnu.org" , Richard Earnshaw , Richard Sandiford CC: Christophe Lyon Subject: RE: [PATCH 12/22] arm: [MVE intrinsics] add binary_orrq shape Thread-Topic: [PATCH 12/22] arm: [MVE intrinsics] add binary_orrq shape Thread-Index: AQHZcfxSHTjiS263K02S1BFlcVRCB69HRTyg Date: Tue, 2 May 2023 16:39:33 +0000 Message-ID: References: <20230418134608.244751-1-christophe.lyon@arm.com> <20230418134608.244751-13-christophe.lyon@arm.com> In-Reply-To: <20230418134608.244751-13-christophe.lyon@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|DU2PR08MB10277:EE_|AM7EUR03FT043:EE_|AS2PR08MB10125:EE_ X-MS-Office365-Filtering-Correlation-Id: 2ee4d1d5-0bae-482c-67e1-08db4b2bd768 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: 0tc+Le3VMELUXMEb76JrtB8TLFAMb2N35igtGjf2shvxCbuitwWm1qv3ipd+MHtpwTkRhJrwU5F9xxFPgZ/vcdzzGN/9LEs7kw3U6ssLIosWp9lwLXUXFO3E4xs9WF/bahoZ1uCbUUluO9+FN3FBJGzggwLYrUlRXANHB0YT7WyD3V7auYyZ+eiS07xKUsjU0dzcg2oTzjJWyEEGUKB3roYSPxcE4WgZeLhWj92yAjRakP5an+78daICfP7nkwvHYR5aKHdDdmSb/xLc96fFYg3OkT2hLcr9JrJmR2Ma6W42GptDRht/NpjqgHBtFeYS3EcvrVuBRJzPxbLkbVIU72SPEty/vfGPm9GWeDxj71UcmYZZJllPtxYU5aw7frlrytGDtxfHSdQnA9tW+57wXP/kuIKNmQyr2l+QctEAcoZzoz44FQ2i2qsKCjtIsLZ4oqrvX/FifcnB+/K2CJazjMsCw8Y2f2IrzBrROogE4r8DziwXKb5QEo7IpdLkemJUbXgYxw3pBv60cLeCmJpqnfyEVE6xPbsi4EdNVmi7wUpjkvRLuhfeZ0u3Mxtj2jGyRZ4Fr4WKm1Cn+DmQDiqBg4tsUQfSE4kVmov4jp5FNL4dOwh77udc+wiTATBBEnu9 X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(376002)(39860400002)(136003)(366004)(346002)(451199021)(6636002)(76116006)(4326008)(52536014)(66946007)(64756008)(66556008)(66446008)(5660300002)(2906002)(66476007)(316002)(41300700001)(110136005)(8936002)(8676002)(53546011)(478600001)(83380400001)(71200400001)(7696005)(55016003)(9686003)(186003)(26005)(33656002)(6506007)(122000001)(38100700002)(38070700005)(86362001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10277 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ec2a959e-1c40-479f-29b3-08db4b2bcef9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BpDCiV8HP6LpInzVn5wmmOq7O9/SGSwGodMa979ntpg3qojCVY+BhdgjjHtOtGZJIhC9RbxlO1nLtIgFWVt9LHagNGdug3ypvvNYdOxUkboY8tNgtLuF0Ki/s0UNpl3mbzuJfv7lBHLiGyFYk6z4Wjfxb1Gt+SaeqeHeziQOS6xcxKMVEbOYZgvqqTcBV/U94rZvlLapIog8RnQt1guZvlSJn2sZVQMJ1H0Fy98+5AR0ThXkA3QT05fxoxNBVHZEuyk+Nzv7TNb7BLbCNiLDtAm8uecrXCIQ4+biuHW3cSWtlE4AkXC92GrRo9UIykaNnAPmXIu2k6hg+rWYO4oTcAEOWVgroO8aKAdpwURgI87Z7HtTw1lKXhcvpihu8hZ5l6E8s6Lmi4crTVFPlVBP12OaxAQ1TZlxFT6HwPZrAY4nw4Rj1eMTDafvXcNiTQrXCdXzWbkFNmAGgwa3LbLWau9aAM8YgMP79182mzhQgimJvPS/4EgjlF6YAcgmJaQI1KTNLFN7I9p8rZlqLSxbFfRT8N0+HgTzIsWtafnAXa1i7qs5/v0efY2Cv9RaxksD5gavv1n+J340Uum9s7OJogxgad3C/qJR040ZwmdwXlmRJ718axekETYPcphx5NQrm4r4RpEmwYAN5MZbzASk6xQXVsBD/ZZ4WCPAE6vjnupyBCY2mt6TjWMb5LQ12BiPLZ0VcuJFMx7vIccXW2ZE1/E7SoV50ZNNud5Twt+1RRM= 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)(396003)(376002)(39860400002)(346002)(451199021)(36840700001)(40470700004)(46966006)(356005)(5660300002)(8676002)(52536014)(40460700003)(82740400003)(8936002)(41300700001)(316002)(34020700004)(82310400005)(86362001)(33656002)(2906002)(81166007)(55016003)(40480700001)(36860700001)(186003)(478600001)(83380400001)(9686003)(7696005)(53546011)(47076005)(26005)(6506007)(336012)(6636002)(4326008)(70586007)(70206006)(110136005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2023 16:39:47.1896 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2ee4d1d5-0bae-482c-67e1-08db4b2bd768 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: AM7EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB10125 X-Spam-Status: No, score=-11.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 List-Id: > -----Original Message----- > From: Christophe Lyon > Sent: Tuesday, April 18, 2023 2:46 PM > To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; > Richard Earnshaw ; Richard Sandiford > > Cc: Christophe Lyon > Subject: [PATCH 12/22] arm: [MVE intrinsics] add binary_orrq shape >=20 > patch adds the binary_orrq shape description. >=20 > MODE_n intrinsics use a set of predicates (preds_m_or_none) different > the MODE_none ones, so we explicitly reference preds_m_or_none from > the shape, thus we need to make it a global array. >=20 > 2022-09-08 Christophe Lyon >=20 > gcc/ > * config/arm/arm-mve-builtins-shapes.cc (binary_orrq): New. > * config/arm/arm-mve-builtins-shapes.h (binary_orrq): New. > * config/arm/arm-mve-builtins.cc (preds_m_or_none): Remove > static. > * config/arm/arm-mve-builtins.h (preds_m_or_none): Declare. > --- > gcc/config/arm/arm-mve-builtins-shapes.cc | 61 +++++++++++++++++++++++ > gcc/config/arm/arm-mve-builtins-shapes.h | 1 + > gcc/config/arm/arm-mve-builtins.cc | 2 +- > gcc/config/arm/arm-mve-builtins.h | 3 ++ > 4 files changed, 66 insertions(+), 1 deletion(-) >=20 > diff --git a/gcc/config/arm/arm-mve-builtins-shapes.cc b/gcc/config/arm/a= rm- > mve-builtins-shapes.cc > index e69faae4e2c..83410bbc51a 100644 > --- a/gcc/config/arm/arm-mve-builtins-shapes.cc > +++ b/gcc/config/arm/arm-mve-builtins-shapes.cc > @@ -397,6 +397,67 @@ struct binary_opt_n_def : public > overloaded_base<0> > }; > SHAPE (binary_opt_n) >=20 > +/* _t vfoo[t0](_t, _t) > + _t vfoo[_n_t0](_t, _t) > + > + Where the _n form has only supports s16/s32/u16/u32 types as for vorr= q. Delete the "has" in this sentence. Ok otherwise. Thanks, Kyrill > + > + Example: vorrq. > + int16x8_t [__arm_]vorrq[_s16](int16x8_t a, int16x8_t b) > + int16x8_t [__arm_]vorrq_m[_s16](int16x8_t inactive, int16x8_t a, int1= 6x8_t > b, mve_pred16_t p) > + int16x8_t [__arm_]vorrq_x[_s16](int16x8_t a, int16x8_t b, mve_pred16_= t > p) > + int16x8_t [__arm_]vorrq[_n_s16](int16x8_t a, const int16_t imm) > + int16x8_t [__arm_]vorrq_m_n[_s16](int16x8_t a, const int16_t imm, > mve_pred16_t p) */ > +struct binary_orrq_def : public overloaded_base<0> > +{ > + bool > + explicit_mode_suffix_p (enum predication_index pred, enum > mode_suffix_index mode) const override > + { > + return (mode =3D=3D MODE_n > + && pred =3D=3D PRED_m); > + } > + > + bool > + skip_overload_p (enum predication_index pred, enum mode_suffix_index > mode) const override > + { > + switch (mode) > + { > + case MODE_none: > + return false; > + > + /* For MODE_n, share the overloaded instance with MODE_none, > except for PRED_m. */ > + case MODE_n: > + return pred !=3D PRED_m; > + > + default: > + gcc_unreachable (); > + } > + } > + > + 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); > + b.add_overloaded_functions (group, MODE_n, > preserve_user_namespace); > + build_all (b, "v0,v0,v0", group, MODE_none, preserve_user_namespace)= ; > + build_16_32 (b, "v0,v0,s0", group, MODE_n, preserve_user_namespace, > false, preds_m_or_none); > + } > + > + tree > + resolve (function_resolver &r) const override > + { > + unsigned int i, nargs; > + type_suffix_index type; > + if (!r.check_gp_argument (2, i, nargs) > + || (type =3D r.infer_vector_type (0)) =3D=3D NUM_TYPE_SUFFIXES) > + return error_mark_node; > + > + return r.finish_opt_n_resolution (i, 0, type); > + } > +}; > +SHAPE (binary_orrq) > + > /* [xN]_t vfoo_t0(). >=20 > Example: vuninitializedq. > diff --git a/gcc/config/arm/arm-mve-builtins-shapes.h b/gcc/config/arm/ar= m- > mve-builtins-shapes.h > index b00ee5eb57a..618b3226050 100644 > --- a/gcc/config/arm/arm-mve-builtins-shapes.h > +++ b/gcc/config/arm/arm-mve-builtins-shapes.h > @@ -36,6 +36,7 @@ namespace arm_mve >=20 > extern const function_shape *const binary; > extern const function_shape *const binary_opt_n; > + extern const function_shape *const binary_orrq; > extern const function_shape *const inherent; > extern const function_shape *const unary_convert; >=20 > diff --git a/gcc/config/arm/arm-mve-builtins.cc b/gcc/config/arm/arm-mve- > builtins.cc > index e409a029346..c74e890bd3d 100644 > --- a/gcc/config/arm/arm-mve-builtins.cc > +++ b/gcc/config/arm/arm-mve-builtins.cc > @@ -285,7 +285,7 @@ static const predication_index preds_none[] =3D { > PRED_none, NUM_PREDS }; >=20 > /* Used by functions that have the m (merging) predicated form, and in > addition have an unpredicated form. */ > -static const predication_index preds_m_or_none[] =3D { > +const predication_index preds_m_or_none[] =3D { > PRED_m, PRED_none, NUM_PREDS > }; >=20 > diff --git a/gcc/config/arm/arm-mve-builtins.h b/gcc/config/arm/arm-mve- > builtins.h > index a20d2fb5d86..c9b51a0c77b 100644 > --- a/gcc/config/arm/arm-mve-builtins.h > +++ b/gcc/config/arm/arm-mve-builtins.h > @@ -135,6 +135,9 @@ enum predication_index > NUM_PREDS > }; >=20 > +/* Some shapes need access to some predicate sets. */ > +extern const predication_index preds_m_or_none[]; > + > /* Classifies element types, based on type suffixes with the bit count > removed. */ > enum type_class_index > -- > 2.34.1