From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70049.outbound.protection.outlook.com [40.107.7.49]) by sourceware.org (Postfix) with ESMTPS id 12241385800B for ; Thu, 11 Nov 2021 10:24:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 12241385800B Received: from AS9PR06CA0339.eurprd06.prod.outlook.com (2603:10a6:20b:466::31) by DB7PR08MB3194.eurprd08.prod.outlook.com (2603:10a6:5:25::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Thu, 11 Nov 2021 10:24:11 +0000 Received: from AM5EUR03FT056.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:466:cafe::c4) by AS9PR06CA0339.outlook.office365.com (2603:10a6:20b:466::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Thu, 11 Nov 2021 10:24:11 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT056.mail.protection.outlook.com (10.152.17.224) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Thu, 11 Nov 2021 10:24:11 +0000 Received: ("Tessian outbound 4ce13939bd4a:v108"); Thu, 11 Nov 2021 10:24:11 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8a34b9041bd0d0ce X-CR-MTA-TID: 64aa7808 Received: from 0bb306507074.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6396EB3E-DAA1-46A7-89DE-B3458F3CDEB2.1; Thu, 11 Nov 2021 10:23:58 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0bb306507074.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 11 Nov 2021 10:23:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C54pPCAXkGXrZ8XSRRUH3I0V7SKVdoRmRnUgPzk1ipU6HvPV2raLZIfOPqDEuNZ9sQEqNC+w5K5P5TOUkgQYqB4Y1CBk7kpSYlUYzbdfFhAaeVhugoFYKCeo+j95BrXhr7foHVFPL7pD0smhhOb17kddvM0GHO+MqX6GtGnIFcw5dPhjVX5B+PVg5mZTYDU6/wp7he1PWJyn76za3cDbQkG2q1PelP8esUvHZcQcT1IeHW4KGoDC8DVasWektCxKCss87nBXY0Rhg8NtNlEgNp9ItcIvFRUijkG2U/vsDRW4OtD/YrIVNS6j9NwPTVGOLuom6nJMcFEMpPqeM3/f1Q== 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=wpTIcNehPSrqlcqvYtdUV2XG4rRraXFUjOMtyL5fDms=; b=UBXzxIAHpW5DerVjm6Bh19O+Ckx+w/D8xN5tfmsvUqU0peTThZRUqN7W9xAwHuSHs2bdmeibtTWDlEO8icW4th3wPUhl7at49Zyb6yFX3+tMUtJP83psRni4bKB4S7jHGMoh5uVVFdK+CdrkwvBolGYdHalmkV5LpjS+3iq1DZTh55E+H+XoNy6dag3UCqsyzSHwhyR/8v2VbByve5MJAOIKHjPJdxGwW030pDRw2mmmvjvv7ay0tO6AxuNLsi27iju2W0IbGLL8DknPkvSCt5bCbzZQFXEQIiffewnqE49QShbFsc3hp+KrKyhYVb4V1IAoaD5Fjlv3aYcq3vn4pw== 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 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com (2603:10a6:10:2bf::11) by DB7PR08MB3532.eurprd08.prod.outlook.com (2603:10a6:10:4f::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.18; Thu, 11 Nov 2021 10:23:54 +0000 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::4c14:9d27:688c:65fc]) by DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::4c14:9d27:688c:65fc%5]) with mapi id 15.20.4690.015; Thu, 11 Nov 2021 10:23:54 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH] aarch64: Use type-qualified builtins for UHSUB Neon intrinsics Thread-Topic: [PATCH] aarch64: Use type-qualified builtins for UHSUB Neon intrinsics Thread-Index: AQHX1uYT7jL8qn6yvUa8hjR7NQe83w== Date: Thu, 11 Nov 2021 10:23:54 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: suggested_attachment_session_id: 0dc22538-ced1-4db6-5148-8fe324f840e2 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: bb95856c-9853-49a2-5f69-08d9a4fd6758 x-ms-traffictypediagnostic: DB7PR08MB3532:|DB7PR08MB3194: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:628;OLM:628; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: t2XadqUOS7gkcjO9to+psoCw9/oFLWCJzKQ7mDBIpE1YFFWN17Gm8kbRsafl0LQqWvSlB06Ql6LniVF6fMQ88lDLGCARMR9vwLRDXBjP6yqkMZeeCXCZM/qokZfG1q6sol69j4x+TT5lOyLoEwoUdOK5APmw/LwBrY6a4j7J3BQxQg5n7pNvg6lrK3ivPfXSKQj4EntozGFsnrBgJoBV4tjtosVYchTjptf5Fh5ZIhJxiyn0wsJdC+lpJmnGu9i1CRNdeYHzL2HvyAjaxYWiMj0rDDyTFoChL8ceDce1x/Ye5T31oHYg0+oms+wwRuQM9htFZxoGtpsxeF2oqrARSmd5FEOf/HU429ZlwGaxYt3TzCTNOdNVePO/pqfe2ngo9yr3GR6rmoKprmKG8a1OEvqoH8seoHiEeRLboCQzyBd5IrjdatUsomu874FL6vYgLZIhkXnjjrW3nj04F91kG9O92W9XmsplM+gnOjofmCdKEJSOV3+5bxIJFZ2ta3uGkSRiuN2cXoUQvs/0CtCo7Ot3uBVsO7jWnBXHTCKcvpTaJks8Lg3Yyrb3I8cER911YJy523n7CkGHLmRLHbZtQZzum6eoizxuDeyRnFBT+VC46b4mNrf7H+xD40IJSdA7C7YXYFblg8GPJPlnnizcqoNVqGPZMZOFICONN1dfGGuRAdIMtL5rJBOlu3jt5mziNy5CgKF0io3xsjTgItyUYQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6959.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(2906002)(52536014)(99936003)(4326008)(186003)(9686003)(38100700002)(86362001)(7696005)(33656002)(66946007)(66446008)(64756008)(26005)(8676002)(5660300002)(76116006)(122000001)(91956017)(6506007)(38070700005)(66476007)(66556008)(4744005)(55016002)(508600001)(316002)(71200400001)(54906003)(8936002)(6916009); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_DB9PR08MB6959285C641A75CA797ECD4DEB949DB9PR08MB6959eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3532 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: AM5EUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 784eddb2-4d5d-4d0e-5802-08d9a4fd5d16 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3uJkfAkjZfWItK5L5SjjI2y+oIt+C359qpVnqKTFO9IHQmYtDr24YVPLJBnjVHk7E0ZrC4hAxnEISWtXgVPjKNX5aWBguoq2mok7iiOH+KVV4vI+lUUYKX51dHMHdFUb6kmhUEmbkmXiP6VglXo9cGfdjwPRQWn72yrorOLpt2gHhfGL5K4qzpNVlxcEIB6Gl1f56OoaPZTAKdJfdSIYAEowb+uQpzRb3710P9fdKO1lnMrOXyYsBlmAoUoGKKoOtpHD8az8wIcUysLZmiMjbJg0e6AXARqGeadxriVRWygCjARtU3RYkn/dqJgGl3/LjuIBFJ551697lm6XbyaKEkYyL7hUwfbIvsPcV3Dc+7guslLA6NOgcZVR5MSodjKXZ6/Prm77QbvzIhiov+T+bUBMsottcR7dswu75b2xD7fErjR4udankD1CzYze92kJBjMJLmfUxpmpSJQmLSLs9644trBOzCrf5jI0ovb45EQew9OegnqLwxn9EdixJYrt+0T0/mBNpQgA8UdB+4UcF0AbZHh1LuMcx2vFg8Nl0cGsI2z7AXGRz6isZknOERuhnso/ehA9as4K/H6LbP1PuUtme3u5CKzzhiEgpKuka/AOroe06PyoVYwUCR2Ff5J7pKbC0zgJlpCQu7RMEGD5rXXKfp6MCZJZ0tDJQysQVA/+6uTvRbieHDSI0KWjE3FeAINLaRNgOLOjttAw+K90dA== 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:(4636009)(46966006)(36840700001)(52536014)(54906003)(8676002)(8936002)(82310400003)(47076005)(6916009)(356005)(33656002)(99936003)(235185007)(55016002)(508600001)(316002)(6506007)(9686003)(26005)(86362001)(70206006)(5660300002)(2906002)(70586007)(7696005)(81166007)(336012)(36860700001)(4326008)(186003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 10:24:11.6422 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bb95856c-9853-49a2-5f69-08d9a4fd6758 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: AM5EUR03FT056.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3194 X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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-List-Received-Date: Thu, 11 Nov 2021 10:24:23 -0000 --_002_DB9PR08MB6959285C641A75CA797ECD4DEB949DB9PR08MB6959eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= This patch declares unsigned type-qualified builtins and uses them to=0A= implement halving-subtract Neon intrinsics. This removes the need for=0A= many casts in arm_neon.h.=0A= =0A= Bootstrapped and regression tested on aarch64-none-linux-gnu - no=0A= issues.=0A= =0A= Ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-11-09 =A0Jonathan Wright =A0=0A= =0A= * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type=0A= qualifiers in generator macros for uhsub builtins.=0A= * config/aarch64/arm_neon.h (vhsub_s8): Remove unnecessary=0A= cast.=0A= (vhsub_s16): Likewise.=0A= (vhsub_s32): Likewise.=0A= (vhsub_u8): Use type-qualified builtin and remove casts.=0A= (vhsub_u16): Likewise.=0A= (vhsub_u32): Likewise.=0A= (vhsubq_s8): Remove unnecessary cast.=0A= (vhsubq_s16): Likewise.=0A= (vhsubq_s32): Likewise.=0A= (vhsubq_u8): Use type-qualified builtin and remove casts.=0A= (vhsubq_u16): Likewise.=0A= (vhsubq_u32): Likewise.=0A= --_002_DB9PR08MB6959285C641A75CA797ECD4DEB949DB9PR08MB6959eurp_ Content-Type: application/octet-stream; name="rb15036.patch" Content-Description: rb15036.patch Content-Disposition: attachment; filename="rb15036.patch"; size=4455; creation-date="Thu, 11 Nov 2021 10:23:47 GMT"; modification-date="Thu, 11 Nov 2021 10:23:47 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVm IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKaW5kZXggOGY5 YThkMTcwN2RmZGY2MTExZDc0MGRhNTMyNzVlNzk1MDBlOGNkZS4uYWYwNGI3MzIyMjc0MzlkY2Fh YTJmMzc1MTA5NzA1MGQ5ODhlYjcyOSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtc2ltZC1idWlsdGlucy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt c2ltZC1idWlsdGlucy5kZWYKQEAgLTE3OSw3ICsxNzksNyBAQAogICBCVUlMVElOX1ZEUV9CSFNJ IChCSU5PUCwgc2hhZGQsIDAsIE5PTkUpCiAgIEJVSUxUSU5fVkRRX0JIU0kgKEJJTk9QLCBzaHN1 YiwgMCwgTk9ORSkKICAgQlVJTFRJTl9WRFFfQkhTSSAoQklOT1BVLCB1aGFkZCwgMCwgTk9ORSkK LSAgQlVJTFRJTl9WRFFfQkhTSSAoQklOT1AsIHVoc3ViLCAwLCBOT05FKQorICBCVUlMVElOX1ZE UV9CSFNJIChCSU5PUFUsIHVoc3ViLCAwLCBOT05FKQogICBCVUlMVElOX1ZEUV9CSFNJIChCSU5P UCwgc3JoYWRkLCAwLCBOT05FKQogICBCVUlMVElOX1ZEUV9CSFNJIChCSU5PUFUsIHVyaGFkZCwg MCwgTk9ORSkKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmggYi9n Y2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaAppbmRleCA3M2VlYTdjMjYxZjQ5MTU1ZDYxNmEy ZGRmMWQ5NmQ0YmU5YmNhNTNmLi5iMjc4MWY2ODBkMTQyYjg0OGY2MjJkMmY0OTY1YjQyOTg1ODg1 NTAyIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaAorKysgYi9nY2Mv Y29uZmlnL2FhcmNoNjQvYXJtX25lb24uaApAQCAtMTk1Niw5MCArMTk1Niw4NCBAQCBfX2V4dGVu c2lvbl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmhzdWJfczggKGlu dDh4OF90IF9fYSwgaW50OHg4X3QgX19iKQogewotICByZXR1cm4gKGludDh4OF90KV9fYnVpbHRp bl9hYXJjaDY0X3Noc3VidjhxaSAoX19hLCBfX2IpOworICByZXR1cm4gX19idWlsdGluX2FhcmNo NjRfc2hzdWJ2OHFpIChfX2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s aW5lIGludDE2eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9p bmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmhzdWJfczE2IChpbnQxNng0X3QgX19hLCBpbnQx Nng0X3QgX19iKQogewotICByZXR1cm4gKGludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRfc2hz dWJ2NGhpIChfX2EsIF9fYik7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaHN1YnY0aGkg KF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50MzJ4Ml90 CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2Fy dGlmaWNpYWxfXykpCiB2aHN1Yl9zMzIgKGludDMyeDJfdCBfX2EsIGludDMyeDJfdCBfX2IpCiB7 Ci0gIHJldHVybiAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9zaHN1YnYyc2kgKF9fYSwg X19iKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Noc3VidjJzaSAoX19hLCBfX2IpOwog fQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QKIF9fYXR0cmlidXRl X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkK IHZoc3ViX3U4ICh1aW50OHg4X3QgX19hLCB1aW50OHg4X3QgX19iKQogewotICByZXR1cm4gKHVp bnQ4eDhfdCkgX19idWlsdGluX2FhcmNoNjRfdWhzdWJ2OHFpICgoaW50OHg4X3QpIF9fYSwKLQkJ CQkJCSAgKGludDh4OF90KSBfX2IpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWhzdWJ2 OHFpX3V1dSAoX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1 aW50MTZ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2aHN1Yl91MTYgKHVpbnQxNng0X3QgX19hLCB1aW50MTZ4 NF90IF9fYikKIHsKLSAgcmV0dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF91aHN1 YnY0aGkgKChpbnQxNng0X3QpIF9fYSwKLQkJCQkJCSAgIChpbnQxNng0X3QpIF9fYik7CisgIHJl dHVybiBfX2J1aWx0aW5fYWFyY2g2NF91aHN1YnY0aGlfdXV1IChfX2EsIF9fYik7CiB9CiAKIF9f ZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMngyX3QKIF9fYXR0cmlidXRlX18gKChf X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZoc3Vi X3UzMiAodWludDMyeDJfdCBfX2EsIHVpbnQzMngyX3QgX19iKQogewotICByZXR1cm4gKHVpbnQz MngyX3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjJzaSAoKGludDMyeDJfdCkgX19hLAotCQkJ CQkJICAgKGludDMyeDJfdCkgX19iKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3Vi djJzaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg aW50OHgxNl90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2aHN1YnFfczggKGludDh4MTZfdCBfX2EsIGludDh4MTZf dCBfX2IpCiB7Ci0gIHJldHVybiAoaW50OHgxNl90KSBfX2J1aWx0aW5fYWFyY2g2NF9zaHN1YnYx NnFpIChfX2EsIF9fYik7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9zaHN1YnYxNnFpIChf X2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDE2eDhfdAog X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQogdmhzdWJxX3MxNiAoaW50MTZ4OF90IF9fYSwgaW50MTZ4OF90IF9fYikKIHsK LSAgcmV0dXJuIChpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Noc3VidjhoaSAoX19hLCBf X2IpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfc2hzdWJ2OGhpIChfX2EsIF9fYik7CiB9 CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGludDMyeDRfdAogX19hdHRyaWJ1dGVf XyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQog dmhzdWJxX3MzMiAoaW50MzJ4NF90IF9fYSwgaW50MzJ4NF90IF9fYikKIHsKLSAgcmV0dXJuIChp bnQzMng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Noc3VidjRzaSAoX19hLCBfX2IpOworICByZXR1 cm4gX19idWlsdGluX2FhcmNoNjRfc2hzdWJ2NHNpIChfX2EsIF9fYik7CiB9CiAKIF9fZXh0ZW5z aW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4eDE2X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5 c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZoc3VicV91OCAo dWludDh4MTZfdCBfX2EsIHVpbnQ4eDE2X3QgX19iKQogewotICByZXR1cm4gKHVpbnQ4eDE2X3Qp IF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjE2cWkgKChpbnQ4eDE2X3QpIF9fYSwKLQkJCQkJCSAg ICAoaW50OHgxNl90KSBfX2IpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfdWhzdWJ2MTZx aV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWlu dDE2eDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQogdmhzdWJxX3UxNiAodWludDE2eDhfdCBfX2EsIHVpbnQxNng4 X3QgX19iKQogewotICByZXR1cm4gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3Vi djhoaSAoKGludDE2eDhfdCkgX19hLAotCQkJCQkJICAgKGludDE2eDhfdCkgX19iKTsKKyAgcmV0 dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjhoaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19l eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9f YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmhzdWJx X3UzMiAodWludDMyeDRfdCBfX2EsIHVpbnQzMng0X3QgX19iKQogewotICByZXR1cm4gKHVpbnQz Mng0X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3VidjRzaSAoKGludDMyeDRfdCkgX19hLAotCQkJ CQkJICAgKGludDMyeDRfdCkgX19iKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3Voc3Vi djRzaV91dXUgKF9fYSwgX19iKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg aW50OHg4X3QK --_002_DB9PR08MB6959285C641A75CA797ECD4DEB949DB9PR08MB6959eurp_--