From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2078.outbound.protection.outlook.com [40.107.6.78]) by sourceware.org (Postfix) with ESMTPS id 654613858431 for ; Mon, 24 Apr 2023 08:48:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 654613858431 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=cA769hk1Ada/jwd0jk8o4G6tnIZ/Dza7LUFAnmVNoKc=; b=5e4MMntTNl1h5oFjTSEKwlHMTD0xaGCtBjcmQF2jtG4l1445Kq6+XONROp09jU3C+py9SLPChlY7TvqiKwkUO7PoTPyOsrwouaDQ7GPi0y76IxC9l07JijV37GB6/DjQYT1+6b2R8OrsXsg5/yCkiFSlutT5TvEM26SGxf0P204= Received: from AM5PR0601CA0047.eurprd06.prod.outlook.com (2603:10a6:203:68::33) by GV1PR08MB7731.eurprd08.prod.outlook.com (2603:10a6:150:52::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 08:47:52 +0000 Received: from AM7EUR03FT013.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:68::4) by AM5PR0601CA0047.outlook.office365.com (2603:10a6:203:68::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33 via Frontend Transport; Mon, 24 Apr 2023 08:47:52 +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 AM7EUR03FT013.mail.protection.outlook.com (100.127.140.191) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.19 via Frontend Transport; Mon, 24 Apr 2023 08:47:51 +0000 Received: ("Tessian outbound 5bb4c51d5a1f:v136"); Mon, 24 Apr 2023 08:47:51 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 31fbf7979b94960f X-CR-MTA-TID: 64aa7808 Received: from 0c8d8d499caf.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1CF5E889-1B6C-496D-8AA1-3AD5D14EB485.1; Mon, 24 Apr 2023 08:47:44 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0c8d8d499caf.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 24 Apr 2023 08:47:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jd/QMmdR5kSoKltPS6TrshiNTczFAGO9eHRK2pJNCYW9RIlvGbnMHfSRd6NDGyIhDY0LcGF07bQfLJ7LwR4+LinXFUxnWIgzkUlu2z9ld1WWFfsGJBL4kOHvpCgzdMdxUjSoUFJiLP8ofRu+1ecnVZii44eV8QddHq6ziSyS2XsqxXPUI5ymZS9FgFKGaTNr11OnWxM6ZsqdywYBUulwZ2OZFCKJ7K9ke9UKIu7P9uGX+wpNOmcT4EnXtyALaAFmD21h+S2cPAuJy9Gv468rhrV7xl4OXbCGXoWs9GJgnb0O5d/01UHhOseX47wUStK7ntxIhAl2TKcXSpVqV+XC4g== 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=cA769hk1Ada/jwd0jk8o4G6tnIZ/Dza7LUFAnmVNoKc=; b=WOcL1WrGXTkaS1+ZAFRKw8+MQnJ5OHdHZxzIvwGWBBpS441l2HxGKPK/Mvvtk7o9kf1m68UZXcfeDmOPQFN/ZZx60o7OowrIu0I16lrhtSsVfwIcD8fUFvlpPYCCy7q46TUNKxihe3lY2cg6GepUY4lLtVn/kO7hbuNuxTXjzhokwcLfz01f/FNKTFz9mC6Ym+Y+BGePFtr/FKNWH4biLDCQ/W1ra9+qcch5VX6JuwhDG+3+aY1LlEOJCBG+Dp3sLuycLqLv5kMIyFaFtHTvEdYtyrh4x9h9xccX6X+xWtuwL2vVxoa1mcqLHXu0WV0WtG0nMRU4gE0a0g+BWnzvOg== 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=cA769hk1Ada/jwd0jk8o4G6tnIZ/Dza7LUFAnmVNoKc=; b=5e4MMntTNl1h5oFjTSEKwlHMTD0xaGCtBjcmQF2jtG4l1445Kq6+XONROp09jU3C+py9SLPChlY7TvqiKwkUO7PoTPyOsrwouaDQ7GPi0y76IxC9l07JijV37GB6/DjQYT1+6b2R8OrsXsg5/yCkiFSlutT5TvEM26SGxf0P204= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AS2PR08MB9222.eurprd08.prod.outlook.com (2603:10a6:20b:59e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 08:47:39 +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.6319.033; Mon, 24 Apr 2023 08:47:39 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH][4/4][committed] aarch64: Convert UABAL2 and SABAL2 patterns to standard RTL codes Thread-Topic: [PATCH][4/4][committed] aarch64: Convert UABAL2 and SABAL2 patterns to standard RTL codes Thread-Index: Adl2iOA2RCOuFyVbT9OueztkOxzZ3g== Date: Mon, 24 Apr 2023 08:47:39 +0000 Message-ID: Accept-Language: en-GB, 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: PAXPR08MB6926:EE_|AS2PR08MB9222:EE_|AM7EUR03FT013:EE_|GV1PR08MB7731:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d2aea21-feb9-41f4-6442-08db44a096d5 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: 9lmcNdK9tbcN1S1NdEdirAKSkkE10rkfAMQD+a8TiTekVlxJ0zwrZYOWqlWRmvOZT5Rcwv5sYsvo19B0WYloT0sjP+f1aYEZ5DRy5dxup/tFGAgMRMUSCJVCTMQzihhF1h9naRZBsN8u85TtrBVvjz3N0gtLisaEkWE7mPAXl5BPP48OmHVVNGqa9hdwGR3yxzsMh+TQIEPSjUE233tt3omZ8s8uK+c+El/oggSVGaoVsXg9bviq0+GiQpWzdVyQle3d36+8ONy/1NX9HzvFx6eEc97LuSTLDqYOU1dyPz55sV55XHwRmPbUHldUGk9OjqP3JLHVrMeYRTM8M4fCU712iXLqTMHwsxOBs7gdNEfp2c+apb4wDndd4tbwPZ2XNgly0CtSEznyBWZ81eihplmgVc8OjkgIUIRxCd7hYZo0r9N4FmTQe4FzPa5IjKj0BHl7zMX1R8spAbSTkz+mFSv3Xi6vok8VxW+L2GjmB+UTkoq8Vt1FFGlTBubP+LOeH6TAv5qXf5spVcEhtfuv9lQ7Gl188ICvPMao/Ccf02LGWmTQEu7mfYMmy8cacDiVFohJ7M+4b/12YIiNjYmQL7Gj9zwlsu/47H77MURJFpA= 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)(136003)(39860400002)(366004)(376002)(346002)(396003)(451199021)(2906002)(76116006)(64756008)(66446008)(66476007)(66556008)(66946007)(6916009)(316002)(52536014)(8676002)(8936002)(5660300002)(38070700005)(41300700001)(33656002)(86362001)(55016003)(9686003)(26005)(186003)(122000001)(71200400001)(99936003)(55236004)(38100700002)(478600001)(7696005)(84970400001)(83380400001)(6506007);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_PAXPR08MB692607CE36F464AD87DB378F93679PAXPR08MB6926eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9222 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: AM7EUR03FT013.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b2fd0f89-46fe-4bf2-ef72-08db44a08f82 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +hMgrRaF6LPpvrjnmdZXxyq63ZpshWIi9BW9xXFIoJOyMI07C006VaczEua0UnqTZT/gvRdOuwwTrfHbsJ/HZKFaKcPt4A8ckfH6EYIjFVVmcE+1eOCgNSyX7pqdCvImY0Gl6Xg/6o/+QJyCD8uFRHWU2fWgsm/n6lYqvHVXX14imI+poehKJEW1SF9BxZUO7aur2QP+vQi/jrTeQyLD+ZMAZkEJoVlc71RWVZIFp3RQLj4CsLdItFS7ZuGf6pC4EMjyLwseO2IXlGtzt1sGoDkp1XRRxlgZ0U1Yc34Wye6xk5MZ9ulhJiY9W/dhiY0q1d0RWL2t9u2IXPJvrYnYBWap3TaN2zn7d53/9f2Zrc+oNvIcSLbBOhspdepXrJe6dAoqqDiFkwk5LbnTsC90NtS9wWBWJp3SsbubWi/HMc/3mApaGe5OKR6GwccN5PRmfTSR9KRc/s+qVInSuQC1WAE222X1Scn7TUSZ5bDZIe4CybCegCiMsMySIdIGF+ALHwlSA2jHtZEhXDcrXWyjvv/jdPW49SdaeBkn49CufjgTNNFE/dH7UqqFN4uN+bMBLce5QkVpdaCyXTk5TJZI9lvYEmIFMhRpt6ZOOOgoKHjaGPO0yLEThIGQTH1Aimw3tdUPgiSW1fJ17xkCFa+/VMBbJrlMqHNFnF1nUNAKkvMBtHABW7l/Iyrt5fMYcBaO 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)(396003)(39860400002)(346002)(376002)(136003)(451199021)(40470700004)(46966006)(36840700001)(8676002)(8936002)(40460700003)(478600001)(55016003)(6916009)(70206006)(70586007)(40480700001)(99936003)(356005)(81166007)(316002)(41300700001)(82740400003)(2906002)(52536014)(235185007)(5660300002)(86362001)(186003)(36860700001)(336012)(26005)(6506007)(9686003)(33656002)(84970400001)(7696005)(47076005)(83380400001)(82310400005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2023 08:47:51.8299 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3d2aea21-feb9-41f4-6442-08db44a096d5 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: AM7EUR03FT013.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7731 X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no 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_PAXPR08MB692607CE36F464AD87DB378F93679PAXPR08MB6926eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, The final patch in the series tackles the most complex of this family of pa= tterns, UABAL2 and SABAL2. These extract the high part of the sources, perform an absdiff on them, wid= en the result and accumulate. The motivating testcase for this patch (series) is included and the simplif= ication required doesn't actually trigger with just the RTL pattern change because rtx_costs block it. So this patch also extends rtx costs to recognise the (minus (smax (x, y) (= smin (x, y)))) expression we use to describe absdiff in the backend and avoid recursing into its arms. This allows us to generate the single-instruction sequence expected here. Bootstrapped and tested on aarch64-none-linux-gnu. Pushing to trunk. Thanks, Kyrill gcc/ChangeLog: * config/aarch64/aarch64-simd.md (aarch64_abal2): Rename to... (aarch64_abal2_insn): ... This. Use RTL codes instead of unspec= . (aarch64_abal2): New define_expand. * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function. (aarch64_rtx_costs): Handle ABD rtxes. * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete. * config/aarch64/iterators.md (ABAL2): Delete. (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2. gcc/testsuite/ChangeLog: * gcc.target/aarch64/simd/vabal_combine.c: New test. --_002_PAXPR08MB692607CE36F464AD87DB378F93679PAXPR08MB6926eurp_ Content-Type: application/octet-stream; name="abal2.patch" Content-Description: abal2.patch Content-Disposition: attachment; filename="abal2.patch"; size=7758; creation-date="Mon, 24 Apr 2023 08:40:45 GMT"; modification-date="Mon, 24 Apr 2023 08:47:39 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQgYi9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLm1kCmluZGV4IDM3OWMzMjJmYmQ0MzViMDUwMjQyNDMw OTY3MDVkZTJiOTU3ZjMyNmUuLjAxNWU4MmI1MDkyOTExYWM2OTBjNjdkYjBkZWU0MjNlM2FkMDYz MTAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQKKysrIGIv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5tZApAQCAtOTQxLDE3ICs5NDEsNDYgQEAg KGRlZmluZV9pbnNuICJhYXJjaDY0XzxzdT5hYmFsPG1vZGU+IgogICBbKHNldF9hdHRyICJ0eXBl IiAibmVvbl9hcml0aF9hY2M8cT4iKV0KICkKIAotKGRlZmluZV9pbnNuICJhYXJjaDY0XzxzdXI+ YWJhbDI8bW9kZT4iCi0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWV0lERT4gMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj13IikKLQkodW5zcGVjOjxWV0lERT4gWyhtYXRjaF9vcGVyYW5kOlZRVyAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAidyIpCi0JCQkgIChtYXRjaF9vcGVyYW5kOlZRVyAzICJyZWdpc3Rl cl9vcGVyYW5kIiAidyIpCi0JCQkgKG1hdGNoX29wZXJhbmQ6PFZXSURFPiAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCIpXQotCUFCQUwyKSldCisoZGVmaW5lX2luc24gImFhcmNoNjRfPHN1PmFiYWwy PG1vZGU+X2luc24iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWREJMVz4gMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj13IikKKwkocGx1czo8VkRCTFc+CisJICAoemVyb19leHRlbmQ6PFZEQkxXPgor CSAgICAobWludXM6PFZIQUxGPgorCSAgICAgIChVU01BWDo8VkhBTEY+CisJCSh2ZWNfc2VsZWN0 OjxWSEFMRj4KKwkJICAobWF0Y2hfb3BlcmFuZDpWUVcgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInci KQorCQkgIChtYXRjaF9vcGVyYW5kOlZRVyA0ICJ2ZWN0X3Bhcl9jbnN0X2hpX2hhbGYiICIiKSkK KwkJKHZlY19zZWxlY3Q6PFZIQUxGPgorCQkgIChtYXRjaF9vcGVyYW5kOlZRVyAzICJyZWdpc3Rl cl9vcGVyYW5kIiAidyIpCisJCSAgKG1hdGNoX2R1cCA0KSkpCisJICAgICAgKDxtYXhfb3BwPjo8 VkhBTEY+CisJCSh2ZWNfc2VsZWN0OjxWSEFMRj4KKwkJICAobWF0Y2hfZHVwIDIpCisJCSAgKG1h dGNoX2R1cCA0KSkKKwkJKHZlY19zZWxlY3Q6PFZIQUxGPgorCQkgIChtYXRjaF9kdXAgMykKKwkJ ICAobWF0Y2hfZHVwIDQpKSkpKQorCSAgKG1hdGNoX29wZXJhbmQ6PFZEQkxXPiAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCIpKSldCiAgICJUQVJHRVRfU0lNRCIKLSAgIjxzdXI+YWJhbDJcdCUwLjxW d3R5cGU+LCAlMi48VnR5cGU+LCAlMy48VnR5cGU+IgorICAiPHN1PmFiYWwyXHQlMC48Vnd0eXBl PiwgJTIuPFZ0eXBlPiwgJTMuPFZ0eXBlPiIKICAgWyhzZXRfYXR0ciAidHlwZSIgIm5lb25fYXJp dGhfYWNjPHE+IildCiApCiAKKyhkZWZpbmVfZXhwYW5kICJhYXJjaDY0XzxzdT5hYmFsMjxtb2Rl PiIKKyAgWyhtYXRjaF9vcGVyYW5kOjxWREJMVz4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAo bWF0Y2hfb3BlcmFuZDo8VkRCTFc+IDEgInJlZ2lzdGVyX29wZXJhbmQiKQorICAgKFVTTUFYOlZR VworICAgICAobWF0Y2hfb3BlcmFuZDpWUVcgMiAicmVnaXN0ZXJfb3BlcmFuZCIpCisgICAgICht YXRjaF9vcGVyYW5kOlZRVyAzICJyZWdpc3Rlcl9vcGVyYW5kIikpXQorICAiVEFSR0VUX1NJTUQi CisgIHsKKyAgICBydHggaGkgPSBhYXJjaDY0X3NpbWRfdmVjdF9wYXJfY25zdF9oYWxmICg8TU9E RT5tb2RlLCA8bnVuaXRzPiwgdHJ1ZSk7CisgICAgZW1pdF9pbnNuIChnZW5fYWFyY2g2NF88c3U+ YWJhbDI8bW9kZT5faW5zbiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAorCQkJCQkJIG9wZXJh bmRzWzJdLCBvcGVyYW5kc1szXSwgaGkpKTsKKyAgICBET05FOworICB9CispCisKIChkZWZpbmVf aW5zbiAiYWFyY2g2NF88c3VyPmFkYWxwPG1vZGU+IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8 VkRCTFc+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpCiAJKHVuc3BlYzo8VkRCTFc+IFsobWF0 Y2hfb3BlcmFuZDpWRFFWX0wgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQpkaWZmIC0tZ2l0IGEv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQuY2MgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2 NC5jYwppbmRleCA1YzQwYjZlZDIyYTUwODcyM2JkNTM1YTc0NjA3NjJjM2EyNDNkNDQxLi41NTJk ZTMwMWIyZjljNjNhZGNiOGY1NmNiYWQxNjZjYTBiMzA5MmYyIDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC5jYworKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5j YwpAQCAtMTM3ODYsNiArMTM3ODYsMzEgQEAgYWFyY2g2NF9tYXNrc19hbmRfc2hpZnRfZm9yX2Jm aV9wIChzY2FsYXJfaW50X21vZGUgbW9kZSwKICAgcmV0dXJuICh0ID09ICh0ICYgLXQpKTsKIH0K IAorLyogUmV0dXJuIHRydWUgaWYgWCBpcyBhbiBSVFggcmVwcmVzZW50aW5nIGFuIG9wZXJhdGlv biBpbiB0aGUgQUJEIGZhbWlseQorICAgb2YgaW5zdHJ1Y3Rpb25zLiAgKi8KKworc3RhdGljIGJv b2wKK2FhcmNoNjRfYWJkX3J0eF9wIChydHggeCkKK3sKKyAgaWYgKEdFVF9DT0RFICh4KSAhPSBN SU5VUykKKyAgICByZXR1cm4gZmFsc2U7CisgIHJ0eCBtYXhfYXJtID0gWEVYUCAoeCwgMCk7Cisg IHJ0eCBtaW5fYXJtID0gWEVYUCAoeCwgMSk7CisgIGlmIChHRVRfQ09ERSAobWF4X2FybSkgIT0g U01BWCAmJiBHRVRfQ09ERSAobWF4X2FybSkgIT0gVU1BWCkKKyAgICByZXR1cm4gZmFsc2U7Cisg IGJvb2wgc2lnbmVkX3AgPSBHRVRfQ09ERSAobWF4X2FybSkgPT0gU01BWDsKKyAgaWYgKHNpZ25l ZF9wICYmIEdFVF9DT0RFIChtaW5fYXJtKSAhPSBTTUlOKQorICAgIHJldHVybiBmYWxzZTsKKyAg ZWxzZSBpZiAoIXNpZ25lZF9wICYmIEdFVF9DT0RFIChtaW5fYXJtKSAhPSBVTUlOKQorICAgIHJl dHVybiBmYWxzZTsKKworICBydHggbWF4b3AwID0gWEVYUCAobWF4X2FybSwgMCk7CisgIHJ0eCBt YXhvcDEgPSBYRVhQIChtYXhfYXJtLCAxKTsKKyAgcnR4IG1pbm9wMCA9IFhFWFAgKG1pbl9hcm0s IDApOworICBydHggbWlub3AxID0gWEVYUCAobWluX2FybSwgMSk7CisgIHJldHVybiBydHhfZXF1 YWxfcCAobWF4b3AwLCBtaW5vcDApICYmIHJ0eF9lcXVhbF9wIChtYXhvcDEsIG1pbm9wMSk7Cit9 CisKIC8qIENhbGN1bGF0ZSB0aGUgY29zdCBvZiBjYWxjdWxhdGluZyBYLCBzdG9yaW5nIGl0IGlu ICpDT1NULiAgUmVzdWx0CiAgICBpcyB0cnVlIGlmIHRoZSB0b3RhbCBjb3N0IG9mIHRoZSBvcGVy YXRpb24gaGFzIG5vdyBiZWVuIGNhbGN1bGF0ZWQuICAqLwogc3RhdGljIGJvb2wKQEAgLTE0MTgy LDExICsxNDIwNywyMCBAQCBhYXJjaDY0X3J0eF9jb3N0cyAocnR4IHgsIG1hY2hpbmVfbW9kZSBt b2RlLCBpbnQgb3V0ZXIgQVRUUklCVVRFX1VOVVNFRCwKIGNvc3RfbWludXM6CiAJaWYgKFZFQ1RP Ul9NT0RFX1AgKG1vZGUpKQogCSAgewotCSAgICAvKiBTVUJMMiBhbmQgU1VCVzIuICAqLwogCSAg ICB1bnNpZ25lZCBpbnQgdmVjX2ZsYWdzID0gYWFyY2g2NF9jbGFzc2lmeV92ZWN0b3JfbW9kZSAo bW9kZSk7CiAJICAgIGlmIChUQVJHRVRfU0lNRCAmJiAodmVjX2ZsYWdzICYgVkVDX0FEVlNJTUQp KQogCSAgICAgIHsKLQkJLyogVGhlIHNlbGVjdC1vcGVyYW5kLWhpZ2gtaGFsZiB2ZXJzaW9ucyBv ZiB0aGUgc3ViIGluc3RydWN0aW9uCisJCS8qIFJlY29nbmlzZSB0aGUgU0FCRCBhbmQgVUFCRCBv cGVyYXRpb24gaGVyZS4KKwkJICAgUmVjdXJzaW9uIGZyb20gdGhlIFBMVVMgY2FzZSB3aWxsIGNh dGNoIHRoZSBhY2N1bXVsYXRpbmcKKwkJICAgZm9ybXMuICAqLworCQlpZiAoYWFyY2g2NF9hYmRf cnR4X3AgKHgpKQorCQkgIHsKKwkJICAgIGlmIChzcGVlZCkKKwkJICAgICAgKmNvc3QgKz0gZXh0 cmFfY29zdC0+dmVjdC5hbHU7CisJCSAgICByZXR1cm4gdHJ1ZTsKKwkJICB9CisJCSAgLyogU1VC TDIgYW5kIFNVQlcyLgorCQkgICBUaGUgc2VsZWN0LW9wZXJhbmQtaGlnaC1oYWxmIHZlcnNpb25z IG9mIHRoZSBzdWIgaW5zdHJ1Y3Rpb24KIAkJICAgaGF2ZSB0aGUgc2FtZSBjb3N0IGFzIHRoZSBy ZWd1bGFyIHRocmVlIHZlY3RvciB2ZXJzaW9uIC0KIAkJICAgZG9uJ3QgYWRkIHRoZSBjb3N0cyBv ZiB0aGUgc2VsZWN0IGludG8gdGhlIGNvc3RzIG9mIHRoZSBzdWIuCiAJCSAgICovCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZCBiL2djYy9jb25maWcvYWFyY2g2NC9h YXJjaDY0Lm1kCmluZGV4IDU3NWFhZjgyZWFmMGExMThhNTFhMmUwNjdmOTkxYTg3NDAxZjViOWYu LjA5NWFjZjYxYzI5YjM0YjNhZWJlNjQwN2UwMzY3YTY2ZjIzYTBjYzMgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kCisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJj aDY0Lm1kCkBAIC0yMDQsNyArMjA0LDYgQEAgKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWwogICAg IFVOU1BFQ19QUkxHX1NUSwogICAgIFVOU1BFQ19SRVYKICAgICBVTlNQRUNfUkJJVAotICAgIFVO U1BFQ19TQUJBTDIKICAgICBVTlNQRUNfU0FEQUxQCiAgICAgVU5TUEVDX1NDVlRGCiAgICAgVU5T UEVDX1NFVE1FTQpAQCAtMjI1LDcgKzIyNCw2IEBAIChkZWZpbmVfY19lbnVtICJ1bnNwZWMiIFsK ICAgICBVTlNQRUNfVExTTEUyNAogICAgIFVOU1BFQ19UTFNMRTMyCiAgICAgVU5TUEVDX1RMU0xF NDgKLSAgICBVTlNQRUNfVUFCQUwyCiAgICAgVU5TUEVDX1VBREFMUAogICAgIFVOU1BFQ19VQ1ZU RgogICAgIFVOU1BFQ19VU0hMXzJTCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FhcmNoNjQvaXRl cmF0b3JzLm1kIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZAppbmRleCBjYzQ3MWFl OTBkMTU3ZDczNTZhMGFkNGMxYWM1OTFhYTYyMjdjNTU1Li40YjU5MmYzNDY5MmZhYWExZTViNTI0 YjUyMGE0Nzg0ZmI5MTczYWRlIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvaXRlcmF0 b3JzLm1kCisrKyBiL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMubWQKQEAgLTI1NjIsOSAr MjU2Miw2IEBAIChkZWZpbmVfY29kZV9hdHRyIGluY19kZWMgWyhtaW51cyAiZGVjIikgKHNzX21p bnVzICJzcWRlYyIpICh1c19taW51cyAidXFkZWMiKQogOzsgSW50IEl0ZXJhdG9ycy4KIDs7IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIAotOzsgVGhlIHVuc3BlYyBjb2RlcyBmb3IgdGhlIFNBQkFMMiwgVUFCQUwyIEFk dmFuY2VkU0lNRCBpbnN0cnVjdGlvbnMuCi0oZGVmaW5lX2ludF9pdGVyYXRvciBBQkFMMiBbVU5T UEVDX1NBQkFMMiBVTlNQRUNfVUFCQUwyXSkKLQogOzsgVGhlIHVuc3BlYyBjb2RlcyBmb3IgdGhl IFNBREFMUCwgVUFEQUxQIEFkdmFuY2VkU0lNRCBpbnN0cnVjdGlvbnMuCiAoZGVmaW5lX2ludF9p dGVyYXRvciBBREFMUCBbVU5TUEVDX1NBREFMUCBVTlNQRUNfVUFEQUxQXSkKIApAQCAtMzM0Niw3 ICszMzQzLDYgQEAgKGRlZmluZV9pbnRfYXR0ciBzdXIgWyhVTlNQRUNfU0hBREQgInMiKSAoVU5T UEVDX1VIQUREICJ1IikKIAkJICAgICAgKFVOU1BFQ19TUkhBREQgInNyIikgKFVOU1BFQ19VUkhB REQgInVyIikKIAkJICAgICAgKFVOU1BFQ19TSFNVQiAicyIpIChVTlNQRUNfVUhTVUIgInUiKQog CQkgICAgICAoVU5TUEVDX0FEREhOICIiKSAoVU5TUEVDX1JBRERITiAiciIpCi0JCSAgICAgIChV TlNQRUNfU0FCQUwyICJzIikgKFVOU1BFQ19VQUJBTDIgInUiKQogCQkgICAgICAoVU5TUEVDX1NB REFMUCAicyIpIChVTlNQRUNfVUFEQUxQICJ1IikKIAkJICAgICAgKFVOU1BFQ19TVUJITiAiIikg KFVOU1BFQ19SU1VCSE4gInIiKQogCQkgICAgICAoVU5TUEVDX1VTUUFERCAidXMiKSAoVU5TUEVD X1NVUUFERCAic3UiKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc2ltZC92YWJhbF9jb21iaW5lLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC9zaW1kL3ZhYmFsX2NvbWJpbmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTE4NzhhYTIyNjUyYTNiY2JjOTQz NWY4NGUyMjRjNThjYmY1ZDk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc2ltZC92YWJhbF9jb21iaW5lLmMKQEAgLTAsMCArMSw3MiBAQAorLyog eyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8KKy8qIHsgZGct ZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB9IH0gKi8KKworI2luY2x1 ZGUgPGFybV9uZW9uLmg+CisKKy8qCisqKiB0ZXN0X3ZhYmFsX3M4OgorKiogICAgICBzYWJhbDIJ djAuOGgsIHYyLjE2YiwgdjEuMTZiCisqKiAgICAgIHJldAorKi8KK2ludDE2eDhfdAordGVzdF92 YWJhbF9zOCAoaW50MTZ4OF90IHNhZHYsIGludDh4MTZfdCBwdiwgaW50OHgxNl90IHN2KQorewor ICByZXR1cm4gdmFiYWxfczggKHNhZHYsIHZnZXRfaGlnaF9zOCAocHYpLCB2Z2V0X2hpZ2hfczgg KHN2KSk7Cit9CisKKy8qCisqKiB0ZXN0X3ZhYmFsX3U4OgorKiogICAgICB1YWJhbDIJdjAuOGgs IHYyLjE2YiwgdjEuMTZiCisqKiAgICAgIHJldAorKi8KK3VpbnQxNng4X3QKK3Rlc3RfdmFiYWxf dTggKHVpbnQxNng4X3Qgc2FkdiwgdWludDh4MTZfdCBwdiwgdWludDh4MTZfdCBzdikKK3sKKyAg cmV0dXJuIHZhYmFsX3U4IChzYWR2LCB2Z2V0X2hpZ2hfdTggKHB2KSwgdmdldF9oaWdoX3U4IChz dikpOworfQorCisvKgorKiogdGVzdF92YWJhbF9zMTY6CisqKiAgICAgIHNhYmFsMgl2MC40cywg djIuOGgsIHYxLjhoCisqKiAgICAgIHJldAorKi8KK2ludDMyeDRfdAordGVzdF92YWJhbF9zMTYg KGludDMyeDRfdCBzYWR2LCBpbnQxNng4X3QgcHYsIGludDE2eDhfdCBzdikKK3sKKyAgcmV0dXJu IHZhYmFsX3MxNiAoc2FkdiwgdmdldF9oaWdoX3MxNiAocHYpLCB2Z2V0X2hpZ2hfczE2IChzdikp OworfQorCisvKgorKiogdGVzdF92YWJhbF91MTY6CisqKiAgICAgIHVhYmFsMgl2MC40cywgdjIu OGgsIHYxLjhoCisqKiAgICAgIHJldAorKi8KK3VpbnQzMng0X3QKK3Rlc3RfdmFiYWxfdTE2ICh1 aW50MzJ4NF90IHNhZHYsIHVpbnQxNng4X3QgcHYsIHVpbnQxNng4X3Qgc3YpCit7CisgIHJldHVy biB2YWJhbF91MTYgKHNhZHYsIHZnZXRfaGlnaF91MTYgKHB2KSwgdmdldF9oaWdoX3UxNiAoc3Yp KTsKK30KKworLyoKKyoqIHRlc3RfdmFiYWxfczMyOgorKiogICAgICBzYWJhbDIJdjAuMmQsIHYy LjRzLCB2MS40cworKiogICAgICByZXQKKyovCitpbnQ2NHgyX3QKK3Rlc3RfdmFiYWxfczMyIChp bnQ2NHgyX3Qgc2FkdiwgaW50MzJ4NF90IHB2LCBpbnQzMng0X3Qgc3YpCit7CisgIHJldHVybiB2 YWJhbF9zMzIgKHNhZHYsIHZnZXRfaGlnaF9zMzIgKHB2KSwgdmdldF9oaWdoX3MzMiAoc3YpKTsK K30KKworLyoKKyoqIHRlc3RfdmFiYWxfdTMyOgorKiogICAgICB1YWJhbDIJdjAuMmQsIHYyLjRz LCB2MS40cworKiogICAgICByZXQKKyovCit1aW50NjR4Ml90Cit0ZXN0X3ZhYmFsX3UzMiAodWlu dDY0eDJfdCBzYWR2LCB1aW50MzJ4NF90IHB2LCB1aW50MzJ4NF90IHN2KQoreworICByZXR1cm4g dmFiYWxfdTMyIChzYWR2LCB2Z2V0X2hpZ2hfdTMyIChwdiksIHZnZXRfaGlnaF91MzIgKHN2KSk7 Cit9CisK --_002_PAXPR08MB692607CE36F464AD87DB378F93679PAXPR08MB6926eurp_--