From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2611::601]) by sourceware.org (Postfix) with ESMTPS id 392CC3864837; Tue, 28 May 2024 09:39:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 392CC3864837 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 392CC3864837 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2611::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716889146; cv=pass; b=wrNtrdREeIANiWfAoXnWBSdIdiQd6EMGwnjMExPxV8W0eQptv84NTCCl7kkn1YsrtL5/HES+y8H1YGvJQc4zKWC5okfnlWKqJg4F5m47iEYGTG1z0teSEOrIwLmc7a3D4XbnFc/wdNymVODiNNmMkJ5NaPY3FXENcuJvjR0hV6s= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1716889146; c=relaxed/simple; bh=u1QgXtVdInjqbzQ63msUrPXgNqmMUrCbvp2go5sZgbQ=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Gq083+es/wmLhC/xwOsYqvHc4DabCebthK1WwSYiMwQL9i8NC1fr46T0yNZRVCCEvWUaxcNdRb3nchXo1aFYiTNLWEXt+Y6cslASVMmLv0TjMJwIRNSy8kUStz6fL7jJPQkEVXSAr+ck4G60ffnSw65CoFouKi0vOE1mr5vHTq8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=NNuyEq6TK6pOyt0UJgUrui2tlDgsSC3Mz1WAQulSRznJ4qAfFz/ECUkOTSIwButI4zc+CCxnRKiR9FW3Yz/qA1f5rfZb8RdDl4wAArSeacsAdz0sp/gkJOeZ98AuVm+m3GYT/kWF/ErY4HKAHoW2dI1tB4DIR1QT7otHf0YUM+F/iydy2aLJSjLWocVA5eLrpd7ny/zgnbg0YR/q2/fmT923RawmsoDZ+hsWGdC6yXLZ3xom1EZFh4LLG3gCVBZ45S2Ofk2XOPGpGfOBdDE8STG/49orQpBnfKiHVSDivevUKSb1DAbLDEl1AjR38Z747UtvaZbXeUuPhQWKBQOg4A== ARC-Message-Signature: i=2; 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=ev8Muf1KpFhszp/W6zV87wDklzCNgxWk0o0ewHVjyfQ=; b=fLVzJ/NyUWU3k6P36jNC6kRUXs9Ek+N2CLSY8wakQ/soX32riR0LS4y/hhaoTH0fKtw1LrRf9CfpNDOwDGuRDJHryGh8bXvZrxLpSDA8zTs0bb59+Rub4Kf9ccieTNA4/Wt6aGm0Hu1sdWSoRU+VIm7TOJZ42bhYeaIDROhu4g/eOfGcyEXJnV7ct+RCd0SzsUVTBRyRwF8JFZQ2zWU5K4U+NQiiEocWNGnhl5bBgrZ48Y5APEQzDnm6SlT7aQC6kEivRC2/SmJs9w2tgUUlN2TLVrokaDkZqEkU4vpnxCmma4h6gQYxo0ifKyvLc7c26omJQ+dvZ1b/+n69z270Fg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ev8Muf1KpFhszp/W6zV87wDklzCNgxWk0o0ewHVjyfQ=; b=gP1S9TftdbPR7bo4WIr7sslvsefD4j7+YDvnx3CGvpPI0SzAGIlGwuBfosEfHWAxKCoVQXo9vErcj3o2v67wL+jxpKk3L90v59vunmkjU88YOK67wtm6uOf4bQuIcPiDbin+Q71zxo8vVc1Y0mJf/2hr0SHIPk40IW3CCNmgrHE= Received: from AS9PR06CA0095.eurprd06.prod.outlook.com (2603:10a6:20b:465::28) by PAWPR08MB9615.eurprd08.prod.outlook.com (2603:10a6:102:2ef::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.29; Tue, 28 May 2024 09:38:57 +0000 Received: from AM1PEPF000252DB.eurprd07.prod.outlook.com (2603:10a6:20b:465:cafe::32) by AS9PR06CA0095.outlook.office365.com (2603:10a6:20b:465::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.29 via Frontend Transport; Tue, 28 May 2024 09:38:56 +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=arm.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 AM1PEPF000252DB.mail.protection.outlook.com (10.167.16.53) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Tue, 28 May 2024 09:38:56 +0000 Received: ("Tessian outbound 57d5075de207:v327"); Tue, 28 May 2024 09:38:56 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0b38c579906d0059 X-CR-MTA-TID: 64aa7808 Received: from f220b480657e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EC81BD37-47D9-4582-97F5-ECA5EED6B10E.1; Tue, 28 May 2024 09:38:45 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f220b480657e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 28 May 2024 09:38:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lm9o+r/swvnrgaQm377zPb15j/Q6wVDzjzNWCNiHFaYBL6xT4GSJcwsCOopY7jJh0Fe8CzGfQSU1ANYICfH1wYZoDutUdxoxXW2beZq5ruJcPsDjcYxNQ0qs1ImRDy60YKGyXMX7mPzLDi1lDSzYMj4YMLCuoD8E3FaMgeh5TPBiL+VAzRdkY3+SemlXBX/qNyufb3gR4DWa3ZRaABDRjmRcfH17swESEdf6diGx0wXW/VMGAI+g3oR+Kmw64q+oyowEIIyvoeEB8BKv/T0/w91YggUhJwUt9Gr/lznnpN2Zz0UjCdFYfitKV6AeFfqW1Ct+ixsgdcyWKKtsIecA2A== 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=ev8Muf1KpFhszp/W6zV87wDklzCNgxWk0o0ewHVjyfQ=; b=Xfe5zjRveDHTD7kDmyKZP0NH9FqUyAFMSEvbtS4gT8nSxCoTPpfXbordzh7liGRHkEOhSSFQOF2Ld9cYPaWFu23vHrgGhXQfXcVnGFOLTr5mg1hEwT4EKBVNgqFIq8xB6jQzHtqGijzcM33UPux9JJ786NDmcYkGiZfY6C1wLR33NGxl7iIaqZcDsQzcL3V7UXxNugEQqrlgI6CoBpx1IJ4GpqJ1K4YMzc5c8Gz2cE2FYU3xVUrCEW58ptbZ8cnZ83lhNvlesag1j0T9EyAQ6QlatRaGT4ZGh6BPTTs7jtJM2b9fL4TpYOmdsf6K+6Bk8IMdFn2jsNFu2/qtqZKw8Q== 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=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ev8Muf1KpFhszp/W6zV87wDklzCNgxWk0o0ewHVjyfQ=; b=gP1S9TftdbPR7bo4WIr7sslvsefD4j7+YDvnx3CGvpPI0SzAGIlGwuBfosEfHWAxKCoVQXo9vErcj3o2v67wL+jxpKk3L90v59vunmkjU88YOK67wtm6uOf4bQuIcPiDbin+Q71zxo8vVc1Y0mJf/2hr0SHIPk40IW3CCNmgrHE= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DB5PR08MB10254.eurprd08.prod.outlook.com (2603:10a6:10:488::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.30; Tue, 28 May 2024 09:38:42 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69%4]) with mapi id 15.20.7611.025; Tue, 28 May 2024 09:38:42 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , "ktkachov@gcc.gnu.org" Subject: RE: [PATCH 3/4]AArch64: add new alternative with early clobber to patterns Thread-Topic: [PATCH 3/4]AArch64: add new alternative with early clobber to patterns Thread-Index: AQHarCqUGpP6NzEyHEuf2MrjtMcCQLGjAf3AgAAQBLCAAArio4AJUC8w Date: Tue, 28 May 2024 09:38:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes 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: VI1PR08MB5325:EE_|DB5PR08MB10254:EE_|AM1PEPF000252DB:EE_|PAWPR08MB9615:EE_ X-MS-Office365-Filtering-Correlation-Id: ec6cec6e-2859-44d5-435b-08dc7ef9feda x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230031|376005|1800799015|366007|38070700009; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?ixrjXned5pvdFzySUtsG9vr/iUqOBC012lEZUSTJa3K4O8EDWvpB+xIhhn1Z?= =?us-ascii?Q?c1+WJaEngaRInJ/nuZXfXt2Q1F+wH430Tgzo1LfenM44hh0A1SwyMSg57JBt?= =?us-ascii?Q?Dcpc+APjgS7PbtLuwhAibg35oRYAeI07eIu606z3tlxDIlLOsNU8TPvU5ZnZ?= =?us-ascii?Q?kTHyqMTm7PKZMxiQOtItatqNK6kt9VnnPn9qizj51evlow4KHRcqJrUkPnCy?= =?us-ascii?Q?xC5vvwV8X1oj4prA/sBSeN1iTYZEvF+/1UD3u58mY/XnzAh7snUMn/13Z6bl?= =?us-ascii?Q?z2jY6bmtm9x3fhYBkVporJcuA0guyPwP7ktztZMvwEDqMs9Jf8Y3BPasGAs6?= =?us-ascii?Q?eUc3zinTamwskTAyTS1ja2euGgRt3O9+7TmA14McsBfBt1acr/07QKAJsLyI?= =?us-ascii?Q?G1pINFl0Gj1uyqp0178YlDmhUXsEsen05SnHMGuB7oehh+s1bVhsvHYqh0fI?= =?us-ascii?Q?LkN16h5qyCeFB/OxTCFikyr2ZTJETxZ5t+TaTahO3Xcxi5yHNiaRCiWRpdcE?= =?us-ascii?Q?fJtd2wWDOxT4LXq4YuSQpH4kuZirTAH5+LQB3Ftzis1PBYKFDuPpTejQv/5F?= =?us-ascii?Q?X4Mz96g0NJDy2v5i4Eln6KklaLewtqHwuujtH83MwDW3kb6CWJALxpR/zJOT?= =?us-ascii?Q?0LzXiI7I0PJm++eLXv7l9TMyCxxHI+oiDbQQYq4aLygUixzl62RPZQYeDpXX?= =?us-ascii?Q?gacIGFfg8LG+NXM0Cj9uCEOZcIsfqa4QecDbOMaRLqVfLf5osKcHrSlLLJSm?= =?us-ascii?Q?1l4KawR0HTzGtl6G4GOf8Ke+gsH2+SjzzzS+3w2Rpad6oSqEEe2d6ve6eSL/?= =?us-ascii?Q?urJH6lugnnHSisLgHJzClNnrwBNmCvuMQj1bkPQ8PxMqWRtoAk8jh5h64V6x?= =?us-ascii?Q?3WCYhAYsHXMsxJvFCKgZWG86Y5OUsvciQn/cucDmoPmGFyMH44CHX0hO2UIJ?= =?us-ascii?Q?b7tM2yhVjddvhtw8x3aG+JZ9YT5Py+EdS7Zk+w+KMnxC8JSx35k4JrJon9GE?= =?us-ascii?Q?3OZ96x9Am1YCYzVrwrgvL1kzldWuOt1yP0TXHThinsyqmPQ8SGBr2vKLgT6K?= =?us-ascii?Q?zswCro808AJ+vAGkByPdxH+eRbtZD849eD2oUI7WfFng294gHvg6fYlYtQri?= =?us-ascii?Q?DcwNd37MDjdYuT1wOG/7CTOEeBo+++S6XZkPcFX8CGuPKuZwh89DmKRnHyIP?= =?us-ascii?Q?z4tFjLXKSaZGMaslR402tZlMViT7/jQDB7z6+w9LS6lMZVzd9l0AjLhnrjNG?= =?us-ascii?Q?UzrqSuc0sjari3qdcspV2moJDbDvGIwrctCMHhA6EFE2dEGzDmO43m7sA2dp?= =?us-ascii?Q?xci+qsrJKq4XYrWfJouRYBVQM0zCHPYf0+1e4WDzcQ2XVA=3D=3D?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(1800799015)(366007)(38070700009);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53257FD008C912EE0C6C8790FFF12VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10254 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: AM1PEPF000252DB.eurprd07.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 59c5217b-2dd3-4153-50e1-08dc7ef9f695 X-Microsoft-Antispam: BCL:0;ARA:13230031|35042699013|82310400017|376005|36860700004|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?89oNIV3tdXcshW+Uhhzg4Hd3Sv3l3GMm1S7kcfN++7Fd3dK9zIHFjAulmDm+?= =?us-ascii?Q?NqFkyPQjV6DbdfGwK1Jwwi0t1DPwU31d2RG04XitkbrgUOJY9dT0C/BqtFxi?= =?us-ascii?Q?m9JN+rL1bkFbplWYgumhne0lZfPc9VyTriXCFPQvpqFdB9eQaGLzJcyUmlkA?= =?us-ascii?Q?zXn7f2syRj2sLJv6zagroH+AXh0jOMd6uWzwA9PVyzqC0I3Jn/683qSr4qdd?= =?us-ascii?Q?brOxhPp0fC6tj/nSQWO3kmDpAJgr+QXE2E2Ln2UA4oyHwNr+0+hvx8aXLSpz?= =?us-ascii?Q?hmY9i+QGxxXNUCcI32um6+C3pB/IR/tfBbljnibc0KCkyP3h/4f9H0aI/Acv?= =?us-ascii?Q?ELmFcd1+PZxT24ou5t3vzP6cNkbqiEW01SjCqaZ2/S9i8vmBp36/bXiNMyEW?= =?us-ascii?Q?tHvS0aynuwy9ssANP777pcQNih50eEfXo7oYExF6SkDU1K+8GvVB1v5TxU3c?= =?us-ascii?Q?IefGyLlHLHS9SMezr4ucaman12WWxaNaopx8KKKX/W0ChcfLM7vKafpruOsb?= =?us-ascii?Q?jpFU2fsbh5N43q4q2/0kM/CAlXTPiBAgU5+a3zpu3vjIKntK9bNXqvioIeyj?= =?us-ascii?Q?ZBFHyotTGk0hlJ8m654fjFqQ3NornWX8r8LrylsctF6UrtwckztyV/zvoQgL?= =?us-ascii?Q?ftQiV078zkAPc5onrMgIWRVRdXN7FKnQ4ZZTaA17/xSdUXSe0OfUhOiLin3q?= =?us-ascii?Q?1g7Pxn7MB2R27pJkhZJSKP3K7oGT5eW4hFZzOHEQOb83DnF2+dX/UWyDz/WO?= =?us-ascii?Q?xbm6Pz4AY0rzfmYabBi9MV6d/3sDfWg23IMmrEA3NQmETbehr80vp01/K5+y?= =?us-ascii?Q?KFVLuWDWY490cNI76/Qq7uKn+gNVq8iEOzZmUK4s8vuIK7RzCoBRWioWkwuA?= =?us-ascii?Q?R130E5JTpAwdkWymse8kDl/GKejGxraYBIRSegjyxsb1rjF+ZZAFLj61xJUK?= =?us-ascii?Q?ucqixYfU+rSu2bUkJ149CC/TwTgdIce0cQFrQ8Kc4YnhswVb7CkGprd9cufF?= =?us-ascii?Q?SJJjTcOw0RFVsERmQkiY6xrtvFSp8FLNNx6m7oOcG9Owzxp5J2hXZ+4NeZ/Y?= =?us-ascii?Q?nJMRPlGSjsQd+juCMxsjt2DE8ijOvkxpXvKrZjza8fJ4SlqL2hwnE+L773Os?= =?us-ascii?Q?zXOVGgZa7sNdbAxv6gCE9vczx728k7z3s4KhQggy2VgT4VR0KP9QTsB9DDSl?= =?us-ascii?Q?hQiIYHGdmtU8fE1Q2GoJVC3OFuQlKWDQ5cRcNpAfzwwOyRfIibKU2sm0jgNn?= =?us-ascii?Q?Kyf6J0elv0kezimrVdONWrwFdo9A925DXTE067BPZ26PIRSHSca7qsazyeEw?= =?us-ascii?Q?em02IBYTHQPy5Wqjdhsv6RRoEZ9etreNrSioFg2VoMclhsbP42VI+5oR962K?= =?us-ascii?Q?vprm5VLG0ID815z3wI0Lj8Tm/zuf?= 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:(13230031)(35042699013)(82310400017)(376005)(36860700004)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2024 09:38:56.6347 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec6cec6e-2859-44d5-435b-08dc7ef9feda 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: AM1PEPF000252DB.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9615 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,KAM_LOTSOFHASH,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: --_002_VI1PR08MB53257FD008C912EE0C6C8790FFF12VI1PR08MB5325eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Richard Sandiford > Sent: Wednesday, May 22, 2024 12:24 PM > To: Tamar Christina > Cc: gcc-patches@gcc.gnu.org; nd ; Richard Earnshaw > ; Marcus Shawcroft > ; ktkachov@gcc.gnu.org > Subject: Re: [PATCH 3/4]AArch64: add new alternative with early clobber t= o > patterns >=20 > Tamar Christina writes: > >> -----Original Message----- > >> From: Richard Sandiford > >> Sent: Wednesday, May 22, 2024 10:48 AM > >> To: Tamar Christina > >> Cc: gcc-patches@gcc.gnu.org; nd ; Richard Earnshaw > >> ; Marcus Shawcroft > >> ; ktkachov@gcc.gnu.org > >> Subject: Re: [PATCH 3/4]AArch64: add new alternative with early clobbe= r to > >> patterns > >> > >> Tamar Christina writes: > >> > Hi All, > >> > > >> > This patch adds new alternatives to the patterns which are affected.= The new > >> > alternatives with the conditional early clobbers are added before th= e normal > >> > ones in order for LRA to prefer them in the event that we have enoug= h free > >> > registers to accommodate them. > >> > > >> > In case register pressure is too high the normal alternatives will b= e preferred > >> > before a reload is considered as we rather have the tie than a spill= . > >> > > >> > Tests are in the next patch. > >> > > >> > Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. > >> > > >> > Ok for master? > >> > > >> > Thanks, > >> > Tamar > >> > > >> > gcc/ChangeLog: > >> > > >> > * config/aarch64/aarch64-sve.md (and3, > >> > @aarch64_pred__z, *3_cc, > >> > *3_ptest, aarch64_pred__z, > >> > *3_cc, *3_ptest, > >> > aarch64_pred__z, *3_cc, > >> > *3_ptest, @aarch64_pred_cmp, > >> > *cmp_cc, *cmp_ptest, > >> > @aarch64_pred_cmp_wide, > >> > *aarch64_pred_cmp_wide_cc, > >> > *aarch64_pred_cmp_wide_ptest, > >> @aarch64_brk, > >> > *aarch64_brk_cc, *aarch64_brk_ptest, > >> > @aarch64_brk, *aarch64_brkn_cc, *aarch64_brkn_ptest, > >> > *aarch64_brk_cc, *aarch64_brk_ptest, > >> > aarch64_rdffr_z, *aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, > >> > *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add new early clobber > >> > alternative. > >> > * config/aarch64/aarch64-sve2.md > >> > (@aarch64_pred_): Likewise. > >> > > >> > --- > >> > diff --git a/gcc/config/aarch64/aarch64-sve.md > b/gcc/config/aarch64/aarch64- > >> sve.md > >> > index > >> > e3085c0c636f1317409bbf3b5fbaf5342a2df1f6..8fdc1bc3cd43acfcd675a18350c > >> 297428c85fe46 100644 > >> > --- a/gcc/config/aarch64/aarch64-sve.md > >> > +++ b/gcc/config/aarch64/aarch64-sve.md > >> > @@ -1161,8 +1161,10 @@ (define_insn "aarch64_rdffr_z" > >> > (reg:VNx16BI FFRT_REGNUM) > >> > (match_operand:VNx16BI 1 "register_operand")))] > >> > "TARGET_SVE && TARGET_NON_STREAMING" > >> > - {@ [ cons: =3D0, 1 ] > >> > - [ Upa , Upa ] rdffr\t%0.b, %1/z > >> > + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] > >> > + [ &Upa , Upa; yes ] rdffr\t%0.b, %1/z > >> > + [ ?Upa , Upa; yes ] ^ > >> > + [ Upa , Upa; * ] ^ > >> > } > >> > ) > >> > >> Sorry for not explaining it very well, but in the previous review I su= ggested: > >> > >> > The gather-like approach would be something like: > >> > > >> > [ &Upa , Upl , w , ; yes ] > >> cmp\t%0., %1/z, %3., #%4 > >> > [ ?Upl , 0 , w , ; yes ] ^ > >> > [ Upa , Upl , w , ; no ] ^ > >> > [ &Upa , Upl , w , w ; yes ] cmp= \t%0., > %1/z, > >> %3., %4. > >> > [ ?Upl , 0 , w , w ; yes ] ^ > >> > [ Upa , Upl , w , w ; no ] ^ > >> > > >> > with: > >> > > >> > (define_attr "pred_clobber" "any,no,yes" (const_string "any")) > >> > >> (with emphasis on the last line). What I didn't say explicitly is > >> that "no" should require !TARGET_SVE_PRED_CLOBBER. > >> > >> The premise of that review was that we shouldn't enable things like: > >> > >> [ Upa , Upl , w , w ; no ] ^ > >> > >> for TARGET_SVE_PRED_CLOBBER since it contradicts the earlyclobber > >> alternative. So we should enable either the pred_clobber=3Dyes > >> alternatives or the pred_clobber=3Dno alternatives, but not both. > >> > >> The default "any" is then for other non-predicate instructions that > >> don't care about TARGET_SVE_PRED_CLOBBER either way. > >> > >> In contrast, this patch makes pred_clobber=3Dyes enable the alternativ= es > >> that correctly describe the restriction (good!) but then also enables > >> the normal alternatives too, which IMO makes the semantics unclear. > > > > Sure, the reason I still had that is because this ICEs under high regis= ter > > pressure: > > > > {@ [ cons: =3D0 , 1 , 3 , 4 ; attrs: pred_clobber ] > > [ &Upa , Upl , w , ; yes ] > cmp\t%0., %1/z, %3., #%4 > > [ ?Upa , 0 , w , ; yes ] ^ > > [ Upa , Upl , w , ; no ] ^ > > [ &Upa , Upl , w , w ; yes ] cmp\t%0., %1/z, > %3., %4. > > [ ?Upa , 0 , w , w ; yes ] ^ > > [ Upa , Upl , w , w ; no ] ^ > > } > > > > So now in the `yes` case reload does: > > > > Considering alt=3D0 of insn 10: (0) =3D&Upa (1) Upl (3) w = (4) vsd > > 0 Small class reload: reject+=3D3 > > 0 Non input pseudo reload: reject++ > > 0 Early clobber: reject++ > > Bad operand -- refuse > > Considering alt=3D1 of insn 10: (0) ?Upa (1) 0 (3) w (4) = vsd > > Staticly defined alt reject+=3D6 > > 0 Small class reload: reject+=3D3 > > 0 Non input pseudo reload: reject++ > > 1 Dying matched operand reload: reject++ > > 1 Small class reload: reject+=3D3 > > Bad operand -- refuse > > Considering alt=3D3 of insn 10: (0) &Upa (1) Upl (3) w (4= ) w > > 0 Small class reload: reject+=3D3 > > 0 Non input pseudo reload: reject++ > > 0 Early clobber: reject++ > > overall=3D11,losers=3D1,rld_nregs=3D1 > > Considering alt=3D4 of insn 10: (0) ?Upa (1) 0 (3) w (4) = w > > Staticly defined alt reject+=3D6 > > 0 Small class reload: reject+=3D3 > > 0 Non input pseudo reload: reject++ > > overall=3D16,losers=3D1 -- refuse > > Choosing alt 3 in insn 10: (0) &Upa (1) Upl (3) w (4) w > {aarch64_pred_cmplovnx8hi} > > > > And the penalty of alt=3D4 makes it pick alt=3D3 even though it doesn't= have the free > registers > > for it. alt=3D4 would have worked. >=20 > By "high register pressure", do you mean if predicate registers are > disabled using -ffixed? If so, that's ok in itself. That kind of > ICE shouldn't occur in real use. >=20 > > I believe this now follows exactly what was suggested: > > > > 1. provide an early clobber alternative > > 2. provide an explicit tie alternative with an increase in cost for usi= ng it > > 3. provide a general/normal alternative that is only enabled when the f= irst two > aren't. > > > > Having read the email a number of times.. did I somehow miss something? >=20 > But how is (3) arranged? It looks like the normal alternative is enabled > unconditionally, in the sense that the "enabled" attribute is always "yes= ". >=20 Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: * config/aarch64/aarch64-sve.md (and3, @aarch64_pred__z, *3_cc, *3_ptest, aarch64_pred__z, *3_cc, *3_ptest, aarch64_pred__z, *3_cc, *3_ptest, @aarch64_pred_cmp, *cmp_cc, *cmp_ptest, @aarch64_pred_cmp_wide, *aarch64_pred_cmp_wide_cc, *aarch64_pred_cmp_wide_ptest, @aarch64_brk, *aarch64_brk_cc, *aarch64_brk_ptest, @aarch64_brk, *aarch64_brkn_cc, *aarch64_brkn_ptest, *aarch64_brk_cc, *aarch64_brk_ptest, aarch64_rdffr_z, *aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add new early clobber alternative. * config/aarch64/aarch64-sve2.md (@aarch64_pred_): Likewise. -- inline copy of patch -- diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64= -sve.md index e3085c0c636f1317409bbf3b5fbaf5342a2df1f6..ca97750f5c3549bbb3a89aa41ac= b4edfac3f1b85 100644 --- a/gcc/config/aarch64/aarch64-sve.md +++ b/gcc/config/aarch64/aarch64-sve.md @@ -1161,8 +1161,10 @@ (define_insn "aarch64_rdffr_z" (reg:VNx16BI FFRT_REGNUM) (match_operand:VNx16BI 1 "register_operand")))] "TARGET_SVE && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 ] - [ Upa , Upa ] rdffr\t%0.b, %1/z + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] + [ &Upa , Upa; yes ] rdffr\t%0.b, %1/z + [ ?Upa , 0 ; yes ] ^ + [ Upa , Upa; no ] ^ } ) =20 @@ -1179,8 +1181,10 @@ (define_insn "*aarch64_rdffr_z_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 ] - [ Upa , Upa ] rdffrs\t%0.b, %1/z + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] + [ &Upa , Upa; yes ] rdffrs\t%0.b, %1/z + [ ?Upa , 0 ; yes ] ^ + [ Upa , Upa; no ] ^ } ) =20 @@ -1195,8 +1199,10 @@ (define_insn "*aarch64_rdffr_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 ] - [ Upa , Upa ] rdffrs\t%0.b, %1/z + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] + [ &Upa , Upa; yes ] rdffrs\t%0.b, %1/z + [ ?Upa , 0 ; yes ] ^ + [ Upa , Upa; no ] ^ } ) =20 @@ -1216,8 +1222,10 @@ (define_insn "*aarch64_rdffr_z_cc" (reg:VNx16BI FFRT_REGNUM) (match_dup 1)))] "TARGET_SVE && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 ] - [ Upa , Upa ] rdffrs\t%0.b, %1/z + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] + [ &Upa , Upa; yes ] rdffrs\t%0.b, %1/z + [ ?Upa , 0 ; yes ] ^ + [ Upa , Upa; no ] ^ } ) =20 @@ -1233,8 +1241,10 @@ (define_insn "*aarch64_rdffr_cc" (set (match_operand:VNx16BI 0 "register_operand") (reg:VNx16BI FFRT_REGNUM))] "TARGET_SVE && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 ] - [ Upa , Upa ] rdffrs\t%0.b, %1/z + {@ [ cons: =3D0, 1 ; attrs: pred_clobber ] + [ &Upa , Upa; yes ] rdffrs\t%0.b, %1/z + [ ?Upa , 0 ; yes ] ^ + [ Upa , Upa; no ] ^ } ) =20 @@ -6651,8 +6661,10 @@ (define_insn "and3" (and:PRED_ALL (match_operand:PRED_ALL 1 "register_operand") (match_operand:PRED_ALL 2 "register_operand")))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 ] - [ Upa , Upa, Upa ] and\t%0.b, %1/z, %2.b, %2.b + {@ [ cons: =3D0, 1 , 2 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa; yes ] and\t%0.b, %1/z, %2.b, %2= .b + [ ?Upa , 0 , Upa; yes ] ^ + [ Upa , Upa, Upa; no ] ^ } ) =20 @@ -6679,8 +6691,10 @@ (define_insn "@aarch64_pred__z" (match_operand:PRED_ALL 3 "register_operand")) (match_operand:PRED_ALL 1 "register_operand")))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] \t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] \t%0.b, %1/= z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6703,8 +6717,10 @@ (define_insn "*3_cc" (and:PRED_ALL (LOGICAL:PRED_ALL (match_dup 2) (match_dup 3)) (match_dup 4)))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b, %1= /z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6723,8 +6739,10 @@ (define_insn "*3_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b, %1= /z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6745,8 +6763,10 @@ (define_insn "aarch64_pred__z" (match_operand:PRED_ALL 2 "register_operand")) (match_operand:PRED_ALL 1 "register_operand")))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] \t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] \t%0.b, %1= /z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6770,8 +6790,10 @@ (define_insn "*3_cc" (match_dup 2)) (match_dup 4)))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b, %= 1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6791,8 +6813,10 @@ (define_insn "*3_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b, = %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6813,8 +6837,10 @@ (define_insn "aarch64_pred__z" (not:PRED_ALL (match_operand:PRED_ALL 3 "register_operand"))) (match_operand:PRED_ALL 1 "register_operand")))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] \t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] \t%0.b, = %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6839,8 +6865,10 @@ (define_insn "*3_cc" (not:PRED_ALL (match_dup 3))) (match_dup 4)))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b,= %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -6861,8 +6889,10 @@ (define_insn "*3_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] s\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] s\t%0.b,= %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 @@ -8104,9 +8134,13 @@ (define_insn "@aarch64_pred_cmp" UNSPEC_PRED_Z)) (clobber (reg:CC_NZC CC_REGNUM))] "TARGET_SVE" - {@ [ cons: =3D0 , 1 , 3 , 4 ] - [ Upa , Upl , w , ] cmp\t%0., %1/= z, %3., #%4 - [ Upa , Upl , w , w ] cmp\t%0., %1/= z, %3., %4. + {@ [ cons: =3D0 , 1 , 3 , 4 ; attrs: pred_clobber ] + [ &Upa , Upl , w , ; yes ] cmp\t%0., %1/z, %3., #%4 + [ ?Upa , 0 , w , ; yes ] ^ + [ Upa , Upl , w , ; no ] ^ + [ &Upa , Upl , w , w ; yes ] cmp\t%0., %1/z, %3., %4. + [ ?Upa , 0 , w , w ; yes ] ^ + [ Upa , Upl , w , w ; no ] ^ } ) =20 @@ -8136,9 +8170,13 @@ (define_insn_and_rewrite "*cmp_cc" UNSPEC_PRED_Z))] "TARGET_SVE && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])" - {@ [ cons: =3D0 , 1 , 2 , 3 ] - [ Upa , Upl , w , ] cmp\t%0., %1/= z, %2., #%3 - [ Upa , Upl , w , w ] cmp\t%0., %1/= z, %2., %3. + {@ [ cons: =3D0 , 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upl , w , ; yes ] cmp\t%0., %1/z, %2., #%3 + [ ?Upa , 0 , w , ; yes ] ^ + [ Upa , Upl , w , ; no ] ^ + [ &Upa , Upl , w , w ; yes ] cmp\t%0., %1/z, %2., %3. + [ ?Upa , 0 , w , w ; yes ] ^ + [ Upa , Upl , w , w ; no ] ^ } "&& !rtx_equal_p (operands[4], operands[6])" { @@ -8166,9 +8204,13 @@ (define_insn_and_rewrite "*cmp_ptest" (clobber (match_scratch: 0))] "TARGET_SVE && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upl, w , ] cmp\t%0., %1/z,= %2., #%3 - [ Upa , Upl, w , w ] cmp\t%0., %1/z,= %2., %3. + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upl, w , ; yes ] cmp\t%0., %1/z, %2., #%3 + [ ?Upa , 0 , w , ; yes ] ^ + [ Upa , Upl, w , ; no ] ^ + [ &Upa , Upl, w , w ; yes ] cmp\t%0., %1/z, %2., %3. + [ ?Upa , 0 , w , w ; yes ] ^ + [ Upa , Upl, w , w ; no ] ^ } "&& !rtx_equal_p (operands[4], operands[6])" { @@ -8221,8 +8263,10 @@ (define_insn "@aarch64_pred_cmp_wide" UNSPEC_PRED_Z)) (clobber (reg:CC_NZC CC_REGNUM))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2, 3, 4 ] - [ Upa , Upl, , w, w ] cmp\t%0., %1/z, %3., %4.d + {@ [ cons: =3D0, 1 , 2, 3, 4; attrs: pred_clobber ] + [ &Upa , Upl, , w, w; yes ] cmp\t%0., %1/z, %3., %4.d + [ ?Upa , 0 , , w, w; yes ] ^ + [ Upa , Upl, , w, w; no ] ^ } ) =20 @@ -8254,8 +8298,10 @@ (define_insn "*aarch64_pred_cmp_wide_c= c" UNSPEC_PRED_Z))] "TARGET_SVE && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])" - {@ [ cons: =3D0, 1 , 2, 3, 6 ] - [ Upa , Upl, w, w, Upl ] cmp\t%0., %1/z, %2., %3.d + {@ [ cons: =3D0, 1 , 2, 3, 6 ; attrs: pred_clobber ] + [ &Upa , Upl, w, w, Upl; yes ] cmp\t%0., %1/z, %2., %3.d + [ ?Upa , 0 , w, w, Upl; yes ] ^ + [ Upa , Upl, w, w, Upl; no ] ^ } ) =20 @@ -8279,8 +8325,10 @@ (define_insn "*aarch64_pred_cmp_wide_p= test" (clobber (match_scratch: 0))] "TARGET_SVE && aarch64_sve_same_pred_for_ptest_p (&operands[4], &operands[6])" - {@ [ cons: =3D0, 1 , 2, 3, 6 ] - [ Upa , Upl, w, w, Upl ] cmp\t%0., %1/z, %2., %3.d + {@ [ cons: =3D0, 1 , 2, 3, 6 ; attrs: pred_clobber ] + [ &Upa , Upl, w, w, Upl; yes ] cmp\t%0.<= Vetype>, %1/z, %2., %3.d + [ ?Upa , 0 , w, w, Upl; yes ] ^ + [ Upa , Upl, w, w, Upl; no ] ^ } ) =20 @@ -9948,9 +9996,13 @@ (define_insn "@aarch64_brk" (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero")] SVE_BRK_UNARY))] "TARGET_SVE" - {@ [ cons: =3D0 , 1 , 2 , 3 ] - [ Upa , Upa , Upa , Dz ] brk\t%0.b, %1/z, %2.b - [ Upa , Upa , Upa , 0 ] brk\t%0.b, %1/m, %2.b + {@ [ cons: =3D0 , 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa , Upa , Dz; yes ] brk\t%0.b= , %1/z, %2.b + [ ?Upa , 0 , Upa , Dz; yes ] ^ + [ Upa , Upa , Upa , Dz; no ] ^ + [ &Upa , Upa , Upa , 0 ; yes ] brk\t%0.b= , %1/m, %2.b + [ ?Upa , 0 , Upa , 0 ; yes ] ^ + [ Upa , Upa , Upa , 0 ; no ] ^ } ) =20 @@ -9974,8 +10026,10 @@ (define_insn "*aarch64_brk_cc" (match_dup 3)] SVE_BRK_UNARY))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 ] - [ Upa , Upa, Upa ] brks\t%0.b, %1/z, %2.b + {@ [ cons: =3D0, 1 , 2 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa; yes ] brks\t%0.b, %1/z,= %2.b + [ ?Upa , 0 , Upa; yes ] ^ + [ Upa , Upa, Upa; no ] ^ } ) =20 @@ -9994,8 +10048,10 @@ (define_insn "*aarch64_brk_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 ] - [ Upa , Upa, Upa ] brks\t%0.b, %1/z, %2.b + {@ [ cons: =3D0, 1 , 2 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa; yes ] brks\t%0.b, %1/z,= %2.b + [ ?Upa , 0 , Upa; yes ] ^ + [ Upa , Upa, Upa; no ] ^ } ) =20 @@ -10020,8 +10076,10 @@ (define_insn "@aarch64_brk" (match_operand:VNx16BI 3 "register_operand")] SVE_BRK_BINARY))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, ] brk\t%0.b, %1/z, %2.b, = %.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, ; yes ] brk\t%0.b, %1/z, %2.b, %.b + [ ?Upa , 0 , Upa, ; yes ] ^ + [ Upa , Upa, Upa, ; no ] ^ } ) =20 @@ -10046,8 +10104,10 @@ (define_insn_and_rewrite "*aarch64_brkn_cc" (match_dup 3)] UNSPEC_BRKN))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, 0 ] brkns\t%0.b, %1/z, %2.b, %0.b + {@ [ cons: =3D0, 1 , 2 , 3; attrs: pred_clobber ] + [ &Upa , Upa, Upa, 0; yes ] brkns\t%0.b, %1/z, %2.= b, %0.b + [ ?Upa , 0 , Upa, 0; yes ] ^ + [ Upa , Upa, Upa, 0; no ] ^ } "&& (operands[4] !=3D CONST0_RTX (VNx16BImode) || operands[5] !=3D CONST0_RTX (VNx16BImode))" @@ -10072,8 +10132,10 @@ (define_insn_and_rewrite "*aarch64_brkn_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, 0 ] brkns\t%0.b, %1/z, %2.b, %0.b + {@ [ cons: =3D0, 1 , 2 , 3; attrs: pred_clobber ] + [ &Upa , Upa, Upa, 0; yes ] brkns\t%0.b, %1/z, %2.= b, %0.b + [ ?Upa , 0 , Upa, 0; yes ] ^ + [ Upa , Upa, Upa, 0; no ] ^ } "&& (operands[4] !=3D CONST0_RTX (VNx16BImode) || operands[5] !=3D CONST0_RTX (VNx16BImode))" @@ -10103,8 +10165,10 @@ (define_insn "*aarch64_brk_cc" (match_dup 3)] SVE_BRKP))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] brks\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 , 4; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa, ; yes ] brks\t%0.= b, %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa, ; yes ] ^ + [ Upa , Upa, Upa, Upa, ; no ] ^ } ) =20 @@ -10123,8 +10187,10 @@ (define_insn "*aarch64_brk_ptest" UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0))] "TARGET_SVE" - {@ [ cons: =3D0, 1 , 2 , 3 ] - [ Upa , Upa, Upa, Upa ] brks\t%0.b, %1/z, %2.b, %3.b + {@ [ cons: =3D0, 1 , 2 , 3 ; attrs: pred_clobber ] + [ &Upa , Upa, Upa, Upa; yes ] brks\t%0.b, = %1/z, %2.b, %3.b + [ ?Upa , 0 , Upa, Upa; yes ] ^ + [ Upa , Upa, Upa, Upa; no ] ^ } ) =20 diff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch6= 4-sve2.md index aa12baf48355358ca4fefe88157df3aac6eb09bd..62634e16daad577c5de710c1fc5= c8fa542282265 100644 --- a/gcc/config/aarch64/aarch64-sve2.md +++ b/gcc/config/aarch64/aarch64-sve2.md @@ -3349,8 +3349,10 @@ (define_insn "@aarch64_pred_" UNSPEC_PRED_Z)) (clobber (reg:CC_NZC CC_REGNUM))] "TARGET_SVE2 && TARGET_NON_STREAMING" - {@ [ cons: =3D0, 1 , 2, 3, 4 ] - [ Upa , Upl, , w, w ] \t%0., %1/z, %3., %4. + {@ [ cons: =3D0, 1 , 2, 3, 4; attrs: pred_clobber ] + [ &Upa , Upl, , w, w; yes ] \t%0., %1/z, %3., %4. + [ ?Upa , 0 , , w, w; yes ] ^ + [ Upa , Upl, , w, w; no ] ^ } ) --_002_VI1PR08MB53257FD008C912EE0C6C8790FFF12VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb18357.patch" Content-Description: rb18357.patch Content-Disposition: attachment; filename="rb18357.patch"; size=18048; creation-date="Tue, 28 May 2024 09:38:14 GMT"; modification-date="Tue, 28 May 2024 09:38:42 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS5tZCBiL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXN2ZS5tZAppbmRleCBlMzA4NWMwYzYzNmYxMzE3NDA5YmJmM2I1 ZmJhZjUzNDJhMmRmMWY2Li5jYTk3NzUwZjVjMzU0OWJiYjNhODlhYTQxYWNiNGVkZmFjM2YxYjg1 IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUubWQKKysrIGIvZ2Nj L2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc3ZlLm1kCkBAIC0xMTYxLDggKzExNjEsMTAgQEAgKGRl ZmluZV9pbnNuICJhYXJjaDY0X3JkZmZyX3oiCiAJICAocmVnOlZOeDE2QkkgRkZSVF9SRUdOVU0p CiAJICAobWF0Y2hfb3BlcmFuZDpWTngxNkJJIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkpXQogICAi VEFSR0VUX1NWRSAmJiBUQVJHRVRfTk9OX1NUUkVBTUlORyIKLSAge0AgWyBjb25zOiA9MCwgMSAg IF0KLSAgICAgWyBVcGEgICAgICwgVXBhIF0gcmRmZnJcdCUwLmIsICUxL3oKKyAge0AgWyBjb25z OiA9MCwgMSAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgVXBhOyB5 ZXMgICAgICAgICAgICAgICAgIF0gcmRmZnJcdCUwLmIsICUxL3oKKyAgICAgWyA/VXBhICAgICwg MCAgOyB5ZXMgICAgICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGE7IG5vICAg ICAgICAgICAgICAgICAgXSBeCiAgIH0KICkKIApAQCAtMTE3OSw4ICsxMTgxLDEwIEBAIChkZWZp bmVfaW5zbiAiKmFhcmNoNjRfcmRmZnJfel9wdGVzdCIKIAkgIFVOU1BFQ19QVEVTVCkpCiAgICAo Y2xvYmJlciAobWF0Y2hfc2NyYXRjaDpWTngxNkJJIDApKV0KICAgIlRBUkdFVF9TVkUgJiYgVEFS R0VUX05PTl9TVFJFQU1JTkciCi0gIHtAIFsgY29uczogPTAsIDEgICBdCi0gICAgIFsgVXBhICAg ICAsIFVwYSBdIHJkZmZyc1x0JTAuYiwgJTEvegorICB7QCBbIGNvbnM6ID0wLCAxICA7IGF0dHJz OiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAgLCBVcGE7IHllcyAgICAgICAgICAgICAg ICAgXSByZGZmcnNcdCUwLmIsICUxL3oKKyAgICAgWyA/VXBhICAgICwgMCAgOyB5ZXMgICAgICAg ICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGE7IG5vICAgICAgICAgICAgICAgICAg XSBeCiAgIH0KICkKIApAQCAtMTE5NSw4ICsxMTk5LDEwIEBAIChkZWZpbmVfaW5zbiAiKmFhcmNo NjRfcmRmZnJfcHRlc3QiCiAJICBVTlNQRUNfUFRFU1QpKQogICAgKGNsb2JiZXIgKG1hdGNoX3Nj cmF0Y2g6Vk54MTZCSSAwKSldCiAgICJUQVJHRVRfU1ZFICYmIFRBUkdFVF9OT05fU1RSRUFNSU5H IgotICB7QCBbIGNvbnM6ID0wLCAxICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEgXSByZGZmcnNc dCUwLmIsICUxL3oKKyAge0AgWyBjb25zOiA9MCwgMSAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0K KyAgICAgWyAmVXBhICAgICwgVXBhOyB5ZXMgICAgICAgICAgICAgICAgIF0gcmRmZnJzXHQlMC5i LCAlMS96CisgICAgIFsgP1VwYSAgICAsIDAgIDsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAg ICAgWyBVcGEgICAgICwgVXBhOyBubyAgICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAg LTEyMTYsOCArMTIyMiwxMCBAQCAoZGVmaW5lX2luc24gIiphYXJjaDY0X3JkZmZyX3pfY2MiCiAJ ICAocmVnOlZOeDE2QkkgRkZSVF9SRUdOVU0pCiAJICAobWF0Y2hfZHVwIDEpKSldCiAgICJUQVJH RVRfU1ZFICYmIFRBUkdFVF9OT05fU1RSRUFNSU5HIgotICB7QCBbIGNvbnM6ID0wLCAxICAgXQot ICAgICBbIFVwYSAgICAgLCBVcGEgXSByZGZmcnNcdCUwLmIsICUxL3oKKyAge0AgWyBjb25zOiA9 MCwgMSAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgVXBhOyB5ZXMg ICAgICAgICAgICAgICAgIF0gcmRmZnJzXHQlMC5iLCAlMS96CisgICAgIFsgP1VwYSAgICAsIDAg IDsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhOyBubyAgICAg ICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAgLTEyMzMsOCArMTI0MSwxMCBAQCAoZGVmaW5l X2luc24gIiphYXJjaDY0X3JkZmZyX2NjIgogICAgKHNldCAobWF0Y2hfb3BlcmFuZDpWTngxNkJJ IDAgInJlZ2lzdGVyX29wZXJhbmQiKQogCShyZWc6Vk54MTZCSSBGRlJUX1JFR05VTSkpXQogICAi VEFSR0VUX1NWRSAmJiBUQVJHRVRfTk9OX1NUUkVBTUlORyIKLSAge0AgWyBjb25zOiA9MCwgMSAg IF0KLSAgICAgWyBVcGEgICAgICwgVXBhIF0gcmRmZnJzXHQlMC5iLCAlMS96CisgIHtAIFsgY29u czogPTAsIDEgIDsgYXR0cnM6IHByZWRfY2xvYmJlciBdCisgICAgIFsgJlVwYSAgICAsIFVwYTsg eWVzICAgICAgICAgICAgICAgICBdIHJkZmZyc1x0JTAuYiwgJTEvegorICAgICBbID9VcGEgICAg LCAwICA7IHllcyAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAgICAsIFVwYTsgbm8g ICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02NjUxLDggKzY2NjEsMTAgQEAgKGRl ZmluZV9pbnNuICJhbmQ8bW9kZT4zIgogCShhbmQ6UFJFRF9BTEwgKG1hdGNoX29wZXJhbmQ6UFJF RF9BTEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCiAJCSAgICAgIChtYXRjaF9vcGVyYW5kOlBSRURf QUxMIDIgInJlZ2lzdGVyX29wZXJhbmQiKSkpXQogICAiVEFSR0VUX1NWRSIKLSAge0AgWyBjb25z OiA9MCwgMSAgLCAyICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSBdIGFuZFx0JTAuYiwg JTEveiwgJTIuYiwgJTIuYgorICB7QCBbIGNvbnM6ID0wLCAxICAsIDIgIDsgYXR0cnM6IHByZWRf Y2xvYmJlciBdCisgICAgIFsgJlVwYSAgICAsIFVwYSwgVXBhOyB5ZXMgICAgICAgICAgICAgICAg IF0gYW5kXHQlMC5iLCAlMS96LCAlMi5iLCAlMi5iCisgICAgIFsgP1VwYSAgICAsIDAgICwgVXBh OyB5ZXMgICAgICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYTsgbm8g ICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02Njc5LDggKzY2OTEsMTAgQEAgKGRl ZmluZV9pbnNuICJAYWFyY2g2NF9wcmVkXzxvcHRhYj48bW9kZT5feiIKIAkgICAgKG1hdGNoX29w ZXJhbmQ6UFJFRF9BTEwgMyAicmVnaXN0ZXJfb3BlcmFuZCIpKQogCSAgKG1hdGNoX29wZXJhbmQ6 UFJFRF9BTEwgMSAicmVnaXN0ZXJfb3BlcmFuZCIpKSldCiAgICJUQVJHRVRfU1ZFIgotICB7QCBb IGNvbnM6ID0wLCAxICAsIDIgICwgMyAgIF0KLSAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVw YSBdIDxsb2dpY2FsPlx0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgorICB7QCBbIGNvbnM6ID0wLCAx ICAsIDIgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgVXBh LCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxsb2dpY2FsPlx0JTAuYiwgJTEveiwg JTIuYiwgJTMuYgorICAgICBbID9VcGEgICAgLCAwICAsIFVwYSwgVXBhOyB5ZXMgICAgICAgICAg ICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSwgVXBhOyBubyAgICAgICAgICAg ICAgICAgIF0gXgogICB9CiApCiAKQEAgLTY3MDMsOCArNjcxNywxMCBAQCAoZGVmaW5lX2luc24g Iio8b3B0YWI+PG1vZGU+M19jYyIKIAkoYW5kOlBSRURfQUxMIChMT0dJQ0FMOlBSRURfQUxMICht YXRjaF9kdXAgMikgKG1hdGNoX2R1cCAzKSkKIAkJICAgICAgKG1hdGNoX2R1cCA0KSkpXQogICAi VEFSR0VUX1NWRSIKLSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMgICBdCi0gICAgIFsgVXBh ICAgICAsIFVwYSwgVXBhLCBVcGEgXSA8bG9naWNhbD5zXHQlMC5iLCAlMS96LCAlMi5iLCAlMy5i CisgIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAzICA7IGF0dHJzOiBwcmVkX2Nsb2JiZXIgXQor ICAgICBbICZVcGEgICAgLCBVcGEsIFVwYSwgVXBhOyB5ZXMgICAgICAgICAgICAgICAgIF0gPGxv Z2ljYWw+c1x0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgorICAgICBbID9VcGEgICAgLCAwICAsIFVw YSwgVXBhOyB5ZXMgICAgICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVw YSwgVXBhOyBubyAgICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAgLTY3MjMsOCArNjcz OSwxMCBAQCAoZGVmaW5lX2luc24gIio8b3B0YWI+PG1vZGU+M19wdGVzdCIKIAkgIFVOU1BFQ19Q VEVTVCkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpWTngxNkJJIDApKV0KICAgIlRBUkdF VF9TVkUiCi0gIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAzICAgXQotICAgICBbIFVwYSAgICAg LCBVcGEsIFVwYSwgVXBhIF0gPGxvZ2ljYWw+c1x0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgorICB7 QCBbIGNvbnM6ID0wLCAxICAsIDIgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAg WyAmVXBhICAgICwgVXBhLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxsb2dpY2Fs PnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEsIFVw YTsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVw YTsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02NzQ1LDggKzY3NjMsMTAg QEAgKGRlZmluZV9pbnNuICJhYXJjaDY0X3ByZWRfPG5sb2dpY2FsPjxtb2RlPl96IgogCSAgICAo bWF0Y2hfb3BlcmFuZDpQUkVEX0FMTCAyICJyZWdpc3Rlcl9vcGVyYW5kIikpCiAJICAobWF0Y2hf b3BlcmFuZDpQUkVEX0FMTCAxICJyZWdpc3Rlcl9vcGVyYW5kIikpKV0KICAgIlRBUkdFVF9TVkUi Ci0gIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAzICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEs IFVwYSwgVXBhIF0gPG5sb2dpY2FsPlx0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgorICB7QCBbIGNv bnM6ID0wLCAxICAsIDIgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBh ICAgICwgVXBhLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxubG9naWNhbD5cdCUw LmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEsIFVwYTsgeWVz ICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVwYTsgbm8g ICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02NzcwLDggKzY3OTAsMTAgQEAgKGRl ZmluZV9pbnNuICIqPG5sb2dpY2FsPjxtb2RlPjNfY2MiCiAJCQkobWF0Y2hfZHVwIDIpKQogCQkg ICAgICAobWF0Y2hfZHVwIDQpKSldCiAgICJUQVJHRVRfU1ZFIgotICB7QCBbIGNvbnM6ID0wLCAx ICAsIDIgICwgMyAgIF0KLSAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVwYSBdIDxubG9naWNh bD5zXHQlMC5iLCAlMS96LCAlMi5iLCAlMy5iCisgIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAz ICA7IGF0dHJzOiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAgLCBVcGEsIFVwYSwgVXBh OyB5ZXMgICAgICAgICAgICAgICAgIF0gPG5sb2dpY2FsPnNcdCUwLmIsICUxL3osICUyLmIsICUz LmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBd IF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVwYTsgbm8gICAgICAgICAgICAgICAgICBd IF4KICAgfQogKQogCkBAIC02NzkxLDggKzY4MTMsMTAgQEAgKGRlZmluZV9pbnNuICIqPG5sb2dp Y2FsPjxtb2RlPjNfcHRlc3QiCiAJICBVTlNQRUNfUFRFU1QpKQogICAgKGNsb2JiZXIgKG1hdGNo X3NjcmF0Y2g6Vk54MTZCSSAwKSldCiAgICJUQVJHRVRfU1ZFIgotICB7QCBbIGNvbnM6ICA9MCwg MSAgLCAyICAsIDMgICBdCi0gICAgIFsgVXBhICAgICAgLCBVcGEsIFVwYSwgVXBhIF0gPG5sb2dp Y2FsPnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAge0AgWyBjb25zOiAgPTAsIDEgICwgMiAg LCAzICA7IGF0dHJzOiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAgICwgVXBhLCBVcGEs IFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxubG9naWNhbD5zXHQlMC5iLCAlMS96LCAlMi5i LCAlMy5iCisgICAgIFsgP1VwYSAgICAgLCAwICAsIFVwYSwgVXBhOyB5ZXMgICAgICAgICAgICAg ICAgIF0gXgorICAgICBbIFVwYSAgICAgICwgVXBhLCBVcGEsIFVwYTsgbm8gICAgICAgICAgICAg ICAgICBdIF4KICAgfQogKQogCkBAIC02ODEzLDggKzY4MzcsMTAgQEAgKGRlZmluZV9pbnNuICJh YXJjaDY0X3ByZWRfPGxvZ2ljYWxfbm4+PG1vZGU+X3oiCiAJICAgIChub3Q6UFJFRF9BTEwgKG1h dGNoX29wZXJhbmQ6UFJFRF9BTEwgMyAicmVnaXN0ZXJfb3BlcmFuZCIpKSkKIAkgIChtYXRjaF9v cGVyYW5kOlBSRURfQUxMIDEgInJlZ2lzdGVyX29wZXJhbmQiKSkpXQogICAiVEFSR0VUX1NWRSIK LSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMgICBdCi0gICAgIFsgVXBhICAgICAsIFVwYSwg VXBhLCBVcGEgXSA8bG9naWNhbF9ubj5cdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAge0AgWyBj b25zOiA9MCwgIDEgLCAyICAsIDMgIDsgYXR0cnM6IHByZWRfY2xvYmJlciBdCisgICAgIFsgJlVw YSAgICAsIFVwYSwgVXBhLCBVcGE7IHllcyAgICAgICAgICAgICAgICAgXSA8bG9naWNhbF9ubj5c dCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEsIFVwYTsg eWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVwYTsg bm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02ODM5LDggKzY4NjUsMTAgQEAg KGRlZmluZV9pbnNuICIqPGxvZ2ljYWxfbm4+PG1vZGU+M19jYyIKIAkJCShub3Q6UFJFRF9BTEwg KG1hdGNoX2R1cCAzKSkpCiAJCSAgICAgIChtYXRjaF9kdXAgNCkpKV0KICAgIlRBUkdFVF9TVkUi Ci0gIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAzICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEs IFVwYSwgVXBhIF0gPGxvZ2ljYWxfbm4+c1x0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgorICB7QCBb IGNvbnM6ID0wLCAxICAsIDIgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAm VXBhICAgICwgVXBhLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxsb2dpY2FsX25u PnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEsIFVw YTsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBVcGEsIFVw YTsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC02ODYxLDggKzY4ODksMTAg QEAgKGRlZmluZV9pbnNuICIqPGxvZ2ljYWxfbm4+PG1vZGU+M19wdGVzdCIKIAkgIFVOU1BFQ19Q VEVTVCkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpWTngxNkJJIDApKV0KICAgIlRBUkdF VF9TVkUiCi0gIHtAIFsgY29uczogPTAsIDEgICwgMiAgLCAzICAgXQotICAgICBbIFVwYSAgICAg LCBVcGEsIFVwYSwgVXBhIF0gPGxvZ2ljYWxfbm4+c1x0JTAuYiwgJTEveiwgJTIuYiwgJTMuYgor ICB7QCBbIGNvbnM6ID0wLCAxICAsIDIgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAg ICAgWyAmVXBhICAgICwgVXBhLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIDxsb2dp Y2FsX25uPnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBV cGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBV cGEsIFVwYTsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC04MTA0LDkgKzgx MzQsMTMgQEAgKGRlZmluZV9pbnNuICJAYWFyY2g2NF9wcmVkX2NtcDxjbXBfb3A+PG1vZGU+Igog CSAgVU5TUEVDX1BSRURfWikpCiAgICAoY2xvYmJlciAocmVnOkNDX05aQyBDQ19SRUdOVU0pKV0K ICAgIlRBUkdFVF9TVkUiCi0gIHtAIFsgY29uczogPTAgLCAxICAgLCAzICwgNCAgICAgICAgICAg ICAgXQotICAgICBbIFVwYSAgICAgICwgVXBsICwgdyAsIDxzdmVfaW1tX2Nvbj4gIF0gY21wPGNt cF9vcD5cdCUwLjxWZXR5cGU+LCAlMS96LCAlMy48VmV0eXBlPiwgIyU0Ci0gICAgIFsgVXBhICAg ICAgLCBVcGwgLCB3ICwgdyAgICAgICAgICAgICAgXSBjbXA8Y21wX29wPlx0JTAuPFZldHlwZT4s ICUxL3osICUzLjxWZXR5cGU+LCAlNC48VmV0eXBlPgorICB7QCBbIGNvbnM6ID0wICwgMSAgICwg MyAsIDQgICAgICAgICAgICA7IGF0dHJzOiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAg ICwgVXBsICwgdyAsIDxzdmVfaW1tX2Nvbj47IHllcyAgICAgICAgICAgICAgICAgXSBjbXA8Y21w X29wPlx0JTAuPFZldHlwZT4sICUxL3osICUzLjxWZXR5cGU+LCAjJTQKKyAgICAgWyA/VXBhICAg ICAsIDAgICAsIHcgLCA8c3ZlX2ltbV9jb24+OyB5ZXMgICAgICAgICAgICAgICAgIF0gXgorICAg ICBbIFVwYSAgICAgICwgVXBsICwgdyAsIDxzdmVfaW1tX2Nvbj47IG5vICAgICAgICAgICAgICAg ICAgXSBeCisgICAgIFsgJlVwYSAgICAgLCBVcGwgLCB3ICwgdyAgICAgICAgICAgIDsgeWVzICAg ICAgICAgICAgICAgICBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBlPiwgJTEveiwgJTMuPFZldHlw ZT4sICU0LjxWZXR5cGU+CisgICAgIFsgP1VwYSAgICAgLCAwICAgLCB3ICwgdyAgICAgICAgICAg IDsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICAsIFVwbCAsIHcgLCB3 ICAgICAgICAgICAgOyBubyAgICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAgLTgxMzYs OSArODE3MCwxMyBAQCAoZGVmaW5lX2luc25fYW5kX3Jld3JpdGUgIipjbXA8Y21wX29wPjxtb2Rl Pl9jYyIKIAkgIFVOU1BFQ19QUkVEX1opKV0KICAgIlRBUkdFVF9TVkUKICAgICYmIGFhcmNoNjRf c3ZlX3NhbWVfcHJlZF9mb3JfcHRlc3RfcCAoJm9wZXJhbmRzWzRdLCAmb3BlcmFuZHNbNl0pIgot ICB7QCBbIGNvbnM6ID0wICwgMSAgICwgMiAsIDMgICAgICAgICAgICAgIF0KLSAgICAgWyBVcGEg ICAgICAsIFVwbCAsIHcgLCA8c3ZlX2ltbV9jb24+ICBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBl PiwgJTEveiwgJTIuPFZldHlwZT4sICMlMwotICAgICBbIFVwYSAgICAgICwgVXBsICwgdyAsIHcg ICAgICAgICAgICAgIF0gY21wPGNtcF9vcD5cdCUwLjxWZXR5cGU+LCAlMS96LCAlMi48VmV0eXBl PiwgJTMuPFZldHlwZT4KKyAge0AgWyBjb25zOiA9MCAsIDEgICAgLCAyICwgMyAgICAgICAgICAg IDsgYXR0cnM6IHByZWRfY2xvYmJlciBdCisgICAgIFsgJlVwYSAgICAgLCAgVXBsICwgdyAsIDxz dmVfaW1tX2Nvbj47IHllcyAgICAgICAgICAgICAgICAgXSBjbXA8Y21wX29wPlx0JTAuPFZldHlw ZT4sICUxL3osICUyLjxWZXR5cGU+LCAjJTMKKyAgICAgWyA/VXBhICAgICAsICAwICAgLCB3ICwg PHN2ZV9pbW1fY29uPjsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICAs ICBVcGwgLCB3ICwgPHN2ZV9pbW1fY29uPjsgbm8gICAgICAgICAgICAgICAgICBdIF4KKyAgICAg WyAmVXBhICAgICAsICBVcGwgLCB3ICwgdyAgICAgICAgICAgIDsgeWVzICAgICAgICAgICAgICAg ICBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBlPiwgJTEveiwgJTIuPFZldHlwZT4sICUzLjxWZXR5 cGU+CisgICAgIFsgP1VwYSAgICAgLCAgMCAgICwgdyAsIHcgICAgICAgICAgICA7IHllcyAgICAg ICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAgICAgLCAgVXBsICwgdyAsIHcgICAgICAgICAg ICA7IG5vICAgICAgICAgICAgICAgICAgXSBeCiAgIH0KICAgIiYmICFydHhfZXF1YWxfcCAob3Bl cmFuZHNbNF0sIG9wZXJhbmRzWzZdKSIKICAgewpAQCAtODE2Niw5ICs4MjA0LDEzIEBAIChkZWZp bmVfaW5zbl9hbmRfcmV3cml0ZSAiKmNtcDxjbXBfb3A+PG1vZGU+X3B0ZXN0IgogICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6PFZQUkVEPiAwKSldCiAgICJUQVJHRVRfU1ZFCiAgICAmJiBhYXJj aDY0X3N2ZV9zYW1lX3ByZWRfZm9yX3B0ZXN0X3AgKCZvcGVyYW5kc1s0XSwgJm9wZXJhbmRzWzZd KSIKLSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICwgMyAgICAgICAgICAgICAgXQotICAgICBbIFVw YSAgICAgLCBVcGwsIHcgLCA8c3ZlX2ltbV9jb24+ICBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBl PiwgJTEveiwgJTIuPFZldHlwZT4sICMlMwotICAgICBbIFVwYSAgICAgLCBVcGwsIHcgLCB3ICAg ICAgICAgICAgICBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBlPiwgJTEveiwgJTIuPFZldHlwZT4s ICUzLjxWZXR5cGU+CisgIHtAIFsgY29uczogPTAsIDEgICAsIDIgLCAzICAgICAgICAgICAgOyBh dHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgIFVwbCwgdyAsIDxzdmVfaW1t X2Nvbj47IHllcyAgICAgICAgICAgICAgICAgXSBjbXA8Y21wX29wPlx0JTAuPFZldHlwZT4sICUx L3osICUyLjxWZXR5cGU+LCAjJTMKKyAgICAgWyA/VXBhICAgICwgIDAgICwgdyAsIDxzdmVfaW1t X2Nvbj47IHllcyAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAgICAsICBVcGwsIHcg LCA8c3ZlX2ltbV9jb24+OyBubyAgICAgICAgICAgICAgICAgIF0gXgorICAgICBbICZVcGEgICAg LCAgVXBsLCB3ICwgdyAgICAgICAgICAgIDsgeWVzICAgICAgICAgICAgICAgICBdIGNtcDxjbXBf b3A+XHQlMC48VmV0eXBlPiwgJTEveiwgJTIuPFZldHlwZT4sICUzLjxWZXR5cGU+CisgICAgIFsg P1VwYSAgICAsICAwICAsIHcgLCB3ICAgICAgICAgICAgOyB5ZXMgICAgICAgICAgICAgICAgIF0g XgorICAgICBbIFVwYSAgICAgLCAgVXBsLCB3ICwgdyAgICAgICAgICAgIDsgbm8gICAgICAgICAg ICAgICAgICBdIF4KICAgfQogICAiJiYgIXJ0eF9lcXVhbF9wIChvcGVyYW5kc1s0XSwgb3BlcmFu ZHNbNl0pIgogICB7CkBAIC04MjIxLDggKzgyNjMsMTAgQEAgKGRlZmluZV9pbnNuICJAYWFyY2g2 NF9wcmVkX2NtcDxjbXBfb3A+PG1vZGU+X3dpZGUiCiAJICBVTlNQRUNfUFJFRF9aKSkKICAgIChj bG9iYmVyIChyZWc6Q0NfTlpDIENDX1JFR05VTSkpXQogICAiVEFSR0VUX1NWRSIKLSAge0AgWyBj b25zOiA9MCwgMSAgLCAyLCAzLCA0IF0KLSAgICAgWyBVcGEgICAgICwgVXBsLCAgLCB3LCB3IF0g Y21wPGNtcF9vcD5cdCUwLjxWZXR5cGU+LCAlMS96LCAlMy48VmV0eXBlPiwgJTQuZAorICB7QCBb IGNvbnM6ID0wLCAxICAgLCAyLCAzLCA0OyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAm VXBhICAgICwgIFVwbCwgICwgdywgdzsgeWVzICAgICAgICAgICAgICAgICBdIGNtcDxjbXBfb3A+ XHQlMC48VmV0eXBlPiwgJTEveiwgJTMuPFZldHlwZT4sICU0LmQKKyAgICAgWyA/VXBhICAgICwg IDAgICwgICwgdywgdzsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwg IFVwbCwgICwgdywgdzsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC04MjU0 LDggKzgyOTgsMTAgQEAgKGRlZmluZV9pbnNuICIqYWFyY2g2NF9wcmVkX2NtcDxjbXBfb3A+PG1v ZGU+X3dpZGVfY2MiCiAJICBVTlNQRUNfUFJFRF9aKSldCiAgICJUQVJHRVRfU1ZFCiAgICAmJiBh YXJjaDY0X3N2ZV9zYW1lX3ByZWRfZm9yX3B0ZXN0X3AgKCZvcGVyYW5kc1s0XSwgJm9wZXJhbmRz WzZdKSIKLSAge0AgWyBjb25zOiA9MCwgMSAgLCAyLCAzLCA2ICAgXQotICAgICBbIFVwYSAgICAg LCBVcGwsIHcsIHcsIFVwbCBdIGNtcDxjbXBfb3A+XHQlMC48VmV0eXBlPiwgJTEveiwgJTIuPFZl dHlwZT4sICUzLmQKKyAge0AgWyBjb25zOiA9MCwgMSAgICwgMiwgMywgNiAgOyBhdHRyczogcHJl ZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgIFVwbCwgdywgdywgVXBsOyB5ZXMgICAgICAg ICAgICAgICAgIF0gY21wPGNtcF9vcD5cdCUwLjxWZXR5cGU+LCAlMS96LCAlMi48VmV0eXBlPiwg JTMuZAorICAgICBbID9VcGEgICAgLCAgMCAgLCB3LCB3LCBVcGw7IHllcyAgICAgICAgICAgICAg ICAgXSBeCisgICAgIFsgVXBhICAgICAsICBVcGwsIHcsIHcsIFVwbDsgbm8gICAgICAgICAgICAg ICAgICBdIF4KICAgfQogKQogCkBAIC04Mjc5LDggKzgzMjUsMTAgQEAgKGRlZmluZV9pbnNuICIq YWFyY2g2NF9wcmVkX2NtcDxjbXBfb3A+PG1vZGU+X3dpZGVfcHRlc3QiCiAgICAoY2xvYmJlciAo bWF0Y2hfc2NyYXRjaDo8VlBSRUQ+IDApKV0KICAgIlRBUkdFVF9TVkUKICAgICYmIGFhcmNoNjRf c3ZlX3NhbWVfcHJlZF9mb3JfcHRlc3RfcCAoJm9wZXJhbmRzWzRdLCAmb3BlcmFuZHNbNl0pIgot ICB7QCBbIGNvbnM6ICA9MCwgMSAgLCAyLCAzLCA2ICAgXQotICAgICBbIFVwYSAgICAgICwgVXBs LCB3LCB3LCBVcGwgXSBjbXA8Y21wX29wPlx0JTAuPFZldHlwZT4sICUxL3osICUyLjxWZXR5cGU+ LCAlMy5kCisgIHtAIFsgY29uczogID0wLCAxICAgLCAyLCAzLCA2ICA7IGF0dHJzOiBwcmVkX2Ns b2JiZXIgXQorICAgICBbICZVcGEgICAgICwgIFVwbCwgdywgdywgVXBsOyB5ZXMgICAgICAgICAg ICAgICAgIF0gY21wPGNtcF9vcD5cdCUwLjxWZXR5cGU+LCAlMS96LCAlMi48VmV0eXBlPiwgJTMu ZAorICAgICBbID9VcGEgICAgICwgIDAgICwgdywgdywgVXBsOyB5ZXMgICAgICAgICAgICAgICAg IF0gXgorICAgICBbIFVwYSAgICAgICwgIFVwbCwgdywgdywgVXBsOyBubyAgICAgICAgICAgICAg ICAgIF0gXgogICB9CiApCiAKQEAgLTk5NDgsOSArOTk5NiwxMyBAQCAoZGVmaW5lX2luc24gIkBh YXJjaDY0X2Jyazxicmtfb3A+IgogCSAgIChtYXRjaF9vcGVyYW5kOlZOeDE2QkkgMyAiYWFyY2g2 NF9zaW1kX3JlZ19vcl96ZXJvIildCiAJICBTVkVfQlJLX1VOQVJZKSldCiAgICJUQVJHRVRfU1ZF IgotICB7QCBbIGNvbnM6ID0wICwgMSAgICwgMiAgICwgMyAgIF0KLSAgICAgWyBVcGEgICAgICAs IFVwYSAsIFVwYSAsIER6ICBdIGJyazxicmtfb3A+XHQlMC5iLCAlMS96LCAlMi5iCi0gICAgIFsg VXBhICAgICAgLCBVcGEgLCBVcGEgLCAwICAgXSBicms8YnJrX29wPlx0JTAuYiwgJTEvbSwgJTIu YgorICB7QCBbIGNvbnM6ID0wICwgMSAgICwgMiAgICwgMyAgOyBhdHRyczogcHJlZF9jbG9iYmVy IF0KKyAgICAgWyAmVXBhICAgICAsICBVcGEgLCBVcGEgLCBEejsgeWVzICAgICAgICAgICAgICAg ICBdIGJyazxicmtfb3A+XHQlMC5iLCAlMS96LCAlMi5iCisgICAgIFsgP1VwYSAgICAgLCAgMCAg ICwgVXBhICwgRHo7IHllcyAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAgICAgLCAg VXBhICwgVXBhICwgRHo7IG5vICAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgJlVwYSAgICAg LCAgVXBhICwgVXBhICwgMCA7IHllcyAgICAgICAgICAgICAgICAgXSBicms8YnJrX29wPlx0JTAu YiwgJTEvbSwgJTIuYgorICAgICBbID9VcGEgICAgICwgIDAgICAsIFVwYSAsIDAgOyB5ZXMgICAg ICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgICwgIFVwYSAsIFVwYSAsIDAgOyBubyAg ICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAgLTk5NzQsOCArMTAwMjYsMTAgQEAgKGRl ZmluZV9pbnNuICIqYWFyY2g2NF9icms8YnJrX29wPl9jYyIKIAkgICAobWF0Y2hfZHVwIDMpXQog CSAgU1ZFX0JSS19VTkFSWSkpXQogICAiVEFSR0VUX1NWRSIKLSAge0AgWyBjb25zOiA9MCwgMSAg LCAyICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSBdIGJyazxicmtfb3A+c1x0JTAuYiwg JTEveiwgJTIuYgorICB7QCBbIGNvbnM6ID0wLCAxICAsIDIgIDsgYXR0cnM6IHByZWRfY2xvYmJl ciBdCisgICAgIFsgJlVwYSAgICAsIFVwYSwgVXBhOyB5ZXMgICAgICAgICAgICAgICAgIF0gYnJr PGJya19vcD5zXHQlMC5iLCAlMS96LCAlMi5iCisgICAgIFsgP1VwYSAgICAsIDAgICwgVXBhOyB5 ZXMgICAgICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYTsgbm8gICAg ICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC05OTk0LDggKzEwMDQ4LDEwIEBAIChkZWZp bmVfaW5zbiAiKmFhcmNoNjRfYnJrPGJya19vcD5fcHRlc3QiCiAJICBVTlNQRUNfUFRFU1QpKQog ICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6Vk54MTZCSSAwKSldCiAgICJUQVJHRVRfU1ZFIgot ICB7QCBbIGNvbnM6ID0wLCAxICAsIDIgICBdCi0gICAgIFsgVXBhICAgICAsIFVwYSwgVXBhIF0g YnJrPGJya19vcD5zXHQlMC5iLCAlMS96LCAlMi5iCisgIHtAIFsgY29uczogPTAsIDEgICwgMiAg OyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgVXBhLCBVcGE7IHllcyAg ICAgICAgICAgICAgICAgXSBicms8YnJrX29wPnNcdCUwLmIsICUxL3osICUyLmIKKyAgICAgWyA/ VXBhICAgICwgMCAgLCBVcGE7IHllcyAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAg ICAsIFVwYSwgVXBhOyBubyAgICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAKQEAgLTEwMDIw LDggKzEwMDc2LDEwIEBAIChkZWZpbmVfaW5zbiAiQGFhcmNoNjRfYnJrPGJya19vcD4iCiAJICAg KG1hdGNoX29wZXJhbmQ6Vk54MTZCSSAzICJyZWdpc3Rlcl9vcGVyYW5kIildCiAJICBTVkVfQlJL X0JJTkFSWSkpXQogICAiVEFSR0VUX1NWRSIKLSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMg ICAgICAgICAgICAgXQotICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSwgPGJya19yZWdfY29uPiBd IGJyazxicmtfb3A+XHQlMC5iLCAlMS96LCAlMi5iLCAlPGJya19yZWdfb3Bubz4uYgorICB7QCBb IGNvbnM6ID0wLCAgMSAsIDIgICwgMyAgICAgICAgICAgIDsgYXR0cnM6IHByZWRfY2xvYmJlciBd CisgICAgIFsgJlVwYSAgICAsIFVwYSwgVXBhLCA8YnJrX3JlZ19jb24+OyB5ZXMgICAgICAgICAg ICAgICAgIF0gYnJrPGJya19vcD5cdCUwLmIsICUxL3osICUyLmIsICU8YnJrX3JlZ19vcG5vPi5i CisgICAgIFsgP1VwYSAgICAsIDAgICwgVXBhLCA8YnJrX3JlZ19jb24+OyB5ZXMgICAgICAgICAg ICAgICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSwgPGJya19yZWdfY29uPjsgbm8g ICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC0xMDA0Niw4ICsxMDEwNCwxMCBAQCAo ZGVmaW5lX2luc25fYW5kX3Jld3JpdGUgIiphYXJjaDY0X2Jya25fY2MiCiAJICAgKG1hdGNoX2R1 cCAzKV0KIAkgIFVOU1BFQ19CUktOKSldCiAgICJUQVJHRVRfU1ZFIgotICB7QCBbIGNvbnM6ID0w LCAxICAsIDIgICwgMyBdCi0gICAgIFsgVXBhICAgICAsIFVwYSwgVXBhLCAwIF0gYnJrbnNcdCUw LmIsICUxL3osICUyLmIsICUwLmIKKyAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDM7IGF0dHJz OiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAgLCBVcGEsIFVwYSwgMDsgeWVzICAgICAg ICAgICAgICAgICBdIGJya25zXHQlMC5iLCAlMS96LCAlMi5iLCAlMC5iCisgICAgIFsgP1VwYSAg ICAsIDAgICwgVXBhLCAwOyB5ZXMgICAgICAgICAgICAgICAgIF0gXgorICAgICBbIFVwYSAgICAg LCBVcGEsIFVwYSwgMDsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogICAiJiYgKG9wZXJh bmRzWzRdICE9IENPTlNUMF9SVFggKFZOeDE2Qkltb2RlKQogICAgICAgIHx8IG9wZXJhbmRzWzVd ICE9IENPTlNUMF9SVFggKFZOeDE2Qkltb2RlKSkiCkBAIC0xMDA3Miw4ICsxMDEzMiwxMCBAQCAo ZGVmaW5lX2luc25fYW5kX3Jld3JpdGUgIiphYXJjaDY0X2Jya25fcHRlc3QiCiAJICBVTlNQRUNf UFRFU1QpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6Vk54MTZCSSAwKSldCiAgICJUQVJH RVRfU1ZFIgotICB7QCBbIGNvbnM6ID0wLCAxICAsIDIgICwgMyBdCi0gICAgIFsgVXBhICAgICAs IFVwYSwgVXBhLCAwIF0gYnJrbnNcdCUwLmIsICUxL3osICUyLmIsICUwLmIKKyAge0AgWyBjb25z OiA9MCwgMSAgLCAyICAsIDM7IGF0dHJzOiBwcmVkX2Nsb2JiZXIgXQorICAgICBbICZVcGEgICAg LCBVcGEsIFVwYSwgMDsgeWVzICAgICAgICAgICAgICAgICBdIGJya25zXHQlMC5iLCAlMS96LCAl Mi5iLCAlMC5iCisgICAgIFsgP1VwYSAgICAsIDAgICwgVXBhLCAwOyB5ZXMgICAgICAgICAgICAg ICAgIF0gXgorICAgICBbIFVwYSAgICAgLCBVcGEsIFVwYSwgMDsgbm8gICAgICAgICAgICAgICAg ICBdIF4KICAgfQogICAiJiYgKG9wZXJhbmRzWzRdICE9IENPTlNUMF9SVFggKFZOeDE2Qkltb2Rl KQogICAgICAgIHx8IG9wZXJhbmRzWzVdICE9IENPTlNUMF9SVFggKFZOeDE2Qkltb2RlKSkiCkBA IC0xMDEwMyw4ICsxMDE2NSwxMCBAQCAoZGVmaW5lX2luc24gIiphYXJjaDY0X2Jyazxicmtfb3A+ X2NjIgogCSAgIChtYXRjaF9kdXAgMyldCiAJICBTVkVfQlJLUCkpXQogICAiVEFSR0VUX1NWRSIK LSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMgICBdCi0gICAgIFsgVXBhICAgICAsIFVwYSwg VXBhLCBVcGEgXSBicms8YnJrX29wPnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAge0AgWyBj b25zOiA9MCwgMSAgLCAyICAsIDMgICwgNDsgYXR0cnM6IHByZWRfY2xvYmJlciBdCisgICAgIFsg JlVwYSAgICAsIFVwYSwgVXBhLCBVcGEsICA7IHllcyAgICAgICAgICAgICAgICAgXSBicms8YnJr X29wPnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAgICwgMCAgLCBVcGEs IFVwYSwgIDsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAgICwgVXBhLCBV cGEsIFVwYSwgIDsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCkBAIC0xMDEyMyw4 ICsxMDE4NywxMCBAQCAoZGVmaW5lX2luc24gIiphYXJjaDY0X2Jyazxicmtfb3A+X3B0ZXN0Igog CSAgVU5TUEVDX1BURVNUKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlZOeDE2QkkgMCkp XQogICAiVEFSR0VUX1NWRSIKLSAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMgICBdCi0gICAg IFsgVXBhICAgICAsIFVwYSwgVXBhLCBVcGEgXSBicms8YnJrX29wPnNcdCUwLmIsICUxL3osICUy LmIsICUzLmIKKyAge0AgWyBjb25zOiA9MCwgMSAgLCAyICAsIDMgIDsgYXR0cnM6IHByZWRfY2xv YmJlciBdCisgICAgIFsgJlVwYSAgICAsIFVwYSwgVXBhLCBVcGE7IHllcyAgICAgICAgICAgICAg ICAgXSBicms8YnJrX29wPnNcdCUwLmIsICUxL3osICUyLmIsICUzLmIKKyAgICAgWyA/VXBhICAg ICwgMCAgLCBVcGEsIFVwYTsgeWVzICAgICAgICAgICAgICAgICBdIF4KKyAgICAgWyBVcGEgICAg ICwgVXBhLCBVcGEsIFVwYTsgbm8gICAgICAgICAgICAgICAgICBdIF4KICAgfQogKQogCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUyLm1kIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQtc3ZlMi5tZAppbmRleCBhYTEyYmFmNDgzNTUzNThjYTRmZWZlODgxNTdk ZjNhYWM2ZWIwOWJkLi42MjYzNGUxNmRhYWQ1NzdjNWRlNzEwYzFmYzVjOGZhNTQyMjgyMjY1IDEw MDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zdmUyLm1kCisrKyBiL2djYy9j b25maWcvYWFyY2g2NC9hYXJjaDY0LXN2ZTIubWQKQEAgLTMzNDksOCArMzM0OSwxMCBAQCAoZGVm aW5lX2luc24gIkBhYXJjaDY0X3ByZWRfPHN2ZV9pbnRfb3A+PG1vZGU+IgogCSAgVU5TUEVDX1BS RURfWikpCiAgICAoY2xvYmJlciAocmVnOkNDX05aQyBDQ19SRUdOVU0pKV0KICAgIlRBUkdFVF9T VkUyICYmIFRBUkdFVF9OT05fU1RSRUFNSU5HIgotICB7QCBbIGNvbnM6ID0wLCAxICwgMiwgMywg NCBdCi0gICAgIFsgVXBhICAgICAsIFVwbCwgLCB3LCB3IF0gPHN2ZV9pbnRfb3A+XHQlMC48VmV0 eXBlPiwgJTEveiwgJTMuPFZldHlwZT4sICU0LjxWZXR5cGU+CisgIHtAIFsgY29uczogPTAsIDEg LCAyLCAzLCA0OyBhdHRyczogcHJlZF9jbG9iYmVyIF0KKyAgICAgWyAmVXBhICAgICwgVXBsLCAs IHcsIHc7IHllcyAgICAgICAgICAgICAgICAgXSA8c3ZlX2ludF9vcD5cdCUwLjxWZXR5cGU+LCAl MS96LCAlMy48VmV0eXBlPiwgJTQuPFZldHlwZT4KKyAgICAgWyA/VXBhICAgICwgMCAgLCAsIHcs IHc7IHllcyAgICAgICAgICAgICAgICAgXSBeCisgICAgIFsgVXBhICAgICAsIFVwbCwgLCB3LCB3 OyBubyAgICAgICAgICAgICAgICAgIF0gXgogICB9CiApCiAK --_002_VI1PR08MB53257FD008C912EE0C6C8790FFF12VI1PR08MB5325eurp_--