From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 62793 invoked by alias); 30 Oct 2019 13:08:18 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 62784 invoked by uid 89); 30 Oct 2019 13:08:17 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: EUR04-VI1-obe.outbound.protection.outlook.com Received: from mail-eopbgr80047.outbound.protection.outlook.com (HELO EUR04-VI1-obe.outbound.protection.outlook.com) (40.107.8.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 30 Oct 2019 13:08:13 +0000 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=aP+wONorU7qfGQ0qBX2qCBq8bMWi6YIOuWQCraAWzRs=; b=2IF1fiTtTYqFKzhC21B69FSjIdgqGXBP7GjMxZl6vu9uqy1zlay8Gy3mDwL77xrBGTBQqHwbQscFJ2C2JGZwD7VQhtN2tt6Cwod0cZi93XRwpSzc8RSlBEto2o+qJ+wzSRLoIjf45lD5CmxQKLSyTb9/JTdku3kY4cgB4uM3aFM= Received: from VI1PR0802CA0025.eurprd08.prod.outlook.com (2603:10a6:800:a9::11) by VI1PR0802MB2254.eurprd08.prod.outlook.com (2603:10a6:800:9c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.25; Wed, 30 Oct 2019 13:08:09 +0000 Received: from DB5EUR03FT046.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::205) by VI1PR0802CA0025.outlook.office365.com (2603:10a6:800:a9::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.20 via Frontend Transport; Wed, 30 Oct 2019 13:08:09 +0000 Authentication-Results: spf=fail (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=none action=none header.from=arm.com; Received-SPF: Fail (protection.outlook.com: domain of arm.com does not designate 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 DB5EUR03FT046.mail.protection.outlook.com (10.152.21.230) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2387.20 via Frontend Transport; Wed, 30 Oct 2019 13:08:08 +0000 Received: ("Tessian outbound 081de437afc7:v33"); Wed, 30 Oct 2019 13:08:08 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d461904ed1158139 X-CR-MTA-TID: 64aa7808 Received: from f06b012ed8c9.1 (cr-mta-lb-1.cr-mta-net [104.47.14.56]) by 64aa7808-outbound-1.mta.getcheckrecipient.com id 30EBC495-997C-465B-A010-A92E1E586FBD.1; Wed, 30 Oct 2019 13:08:03 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2056.outbound.protection.outlook.com [104.47.14.56]) by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f06b012ed8c9.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 30 Oct 2019 13:08:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TrB6XlJIeijD4VeYbZ6uSWHx/QgwjEZrEUG7/Kd7ir2sahV7pEFhF3V5WLDsZKXyp7cQ2Xrxahm11Q+gC+woqApHDYllbiDeU+4H4EIecBTRL4KvTaM81tyJnbxLqU+QpZDdLiX9lh2ck7dg+F9a0DMcXl3cY3A5TCw5hZSKti0Fk9/u/bFMYE40R7Bva6xjxhfCVzMzjDkZGu0rkbc0pGvmG0q8bxbhGVMTLtb59Fi53EkLXAROGXAlt1gWu1eGoVqlwXzKAXioT5V/Mg7+iThtWXvJmEidD/OScwijzE6xc7PW81FwLsRP55PJ/liv/J8aA/CbvC5kOT2LShdqaw== 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-SenderADCheck; bh=aP+wONorU7qfGQ0qBX2qCBq8bMWi6YIOuWQCraAWzRs=; b=IdyRrM6sQXFBqyD+FhXxNzoS1N2nOZo9ONmfm5aOxlDbj55S3uTFlSCVwXkMaW4GeT+6/aMcnNXtfzN/m9b/PQNH8hWN/lD1XlOaHqWPeI0HYdHzMILXW3IGsGJVrzM4wxQExLWbIwSR4wp2vB1gteXrF8ozvthOxWT6CFQ7T6PD63zydY78ErR6HoLy2mC5ReTvPvt7FrMowtJoYDFwXF/ZzsyfIkenCCxmVLQtyPwJc/QNy7wRImjjp7EMpm5fL32qbtPgxPiu/n7+t3pk4YUUoNgdHlM+s1PmH9Jj5vvHa3GDolOnISS2QiNiGr6m66DJaQuHLMo0ZhIXVHFkFw== 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=aP+wONorU7qfGQ0qBX2qCBq8bMWi6YIOuWQCraAWzRs=; b=2IF1fiTtTYqFKzhC21B69FSjIdgqGXBP7GjMxZl6vu9uqy1zlay8Gy3mDwL77xrBGTBQqHwbQscFJ2C2JGZwD7VQhtN2tt6Cwod0cZi93XRwpSzc8RSlBEto2o+qJ+wzSRLoIjf45lD5CmxQKLSyTb9/JTdku3kY4cgB4uM3aFM= Received: from HE1PR0801MB2059.eurprd08.prod.outlook.com (10.168.96.136) by HE1PR0801MB1867.eurprd08.prod.outlook.com (10.168.96.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2408.17; Wed, 30 Oct 2019 13:08:01 +0000 Received: from HE1PR0801MB2059.eurprd08.prod.outlook.com ([fe80::98fd:57d8:4367:a2af]) by HE1PR0801MB2059.eurprd08.prod.outlook.com ([fe80::98fd:57d8:4367:a2af%11]) with mapi id 15.20.2408.016; Wed, 30 Oct 2019 13:08:01 +0000 From: Joel Hutton To: Richard Biener CC: GCC Patches , nd Subject: [SLP] SLP vectorization: vectorize vector constructors Date: Wed, 30 Oct 2019 13:30:00 -0000 Message-ID: <6b66b279-eba2-80be-58f0-f72dc2316fcb@arm.com> References: <5edb0b00-4ae2-41c0-80ec-76de15d0b110@arm.com> In-Reply-To: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Joel.Hutton@arm.com; x-checkrecipientrouted: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-Forefront-Antispam-Report-Untrusted: SFV:NSPM;SFS:(10009020)(979002)(4636009)(346002)(396003)(136003)(366004)(376002)(39860400002)(189003)(199004)(54534003)(11346002)(8676002)(3846002)(52116002)(6116002)(6486002)(81166006)(76176011)(81156014)(102836004)(26005)(186003)(99286004)(53546011)(6512007)(4326008)(6436002)(6916009)(2906002)(25786009)(386003)(486006)(476003)(2616005)(6506007)(14454004)(8936002)(31686004)(4001150100001)(446003)(71190400001)(478600001)(71200400001)(58126008)(36756003)(316002)(305945005)(99936001)(31696002)(256004)(65806001)(54906003)(66066001)(86362001)(65956001)(7736002)(66446008)(64756008)(66946007)(66556008)(66476007)(66616009)(5660300002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR0801MB1867;H:HE1PR0801MB2059.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: mIKDvmBvjka9tUrTBPJaeCeIoMBd7ud8mVYBNHNdq8NMrHYtM4QpezVSuDjubLPEDmDEqct6Low50MpHvP4MzxI1305obSNZg5esS02cm2eljPiktmM4aOhzafwnfhTYmjRiWs2uAYIy9GXbOvEKGfzDa6fr+nvNrff3pp1npUO4jsTazlcW+/vdJX++vzdjT/s76yMK3jGgci/RUldR1xCEC2zAoE743EtpVBe4vqs+N+Qvlm1h+ElmlHo0kJXTDwR9JC/756sqI3TAyzrGnKUwe6LQYN9N8tyLk8/6+rr5idWNyf7nBMMqtCHHGWd3pmK7uXm07TrYMM2N7BclmD8GCLJMTpF8Jl90eOBSObsv6Q3bMzbeNehbtjj+f2pNXM+l2stxOdfnyCm+ji3DWvBUF/kPokFmFRUKzk8EQjQE1jgXp80qQK0P7U2ASjaD x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_6b66b279eba280be58f0f72dc2316fcbarmcom_" MIME-Version: 1.0 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Joel.Hutton@arm.com; Return-Path: Joel.Hutton@arm.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT046.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 04eea878-b59a-478e-9a61-08d75d3a30f6 X-IsSubscribed: yes X-SW-Source: 2019-10/txt/msg02121.txt.bz2 --_002_6b66b279eba280be58f0f72dc2316fcbarmcom_ Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Content-length: 6499 T24gMTUvMTAvMjAxOSAxMzoxMSwgUmljaGFyZCBCaWVuZXIgd3JvdGU6DQog Pj7CoCA+IFlvdSBtaXNzIHRvIGNoZWNrIHRoYXQgQ09OU1RSVUNUT1JfTkVM VFMgPT0gVFlQRV9WRUNUT1JfU1VCUEFSVFMNCiA+PsKgID4gKHdlIGNhbiBo YXZlIG9taXR0ZWQgdHJhaWxpbmcgemVyb3MpLg0KID4NCiA+IF5eXg0KID4N CiA+IEkgZG9uJ3Qgc2VlIHRoaXMgYmVpbmcgaGFuZGxlZD/CoCBZb3UgZ2l2 ZSB1cCBvbiBub24tU1NBIG5hbWVzDQogPiBidXQgbm90IG9uIHRoZSBvbWl0 dGVkIHRyYWlsaW5nIHplcm9zLg0KDQpJIGhhZCB0aG91Z2h0IGNoZWNraW5n IHRoZSBudW1iZXIgb2YgdmVjdG9ycyBwcm9kdWNlZCB3b3VsZCB3b3JrLiBJ J3ZlIA0KYWRkZWQgdGhhdCBjaGVjay4NCkknbSBzbGlnaHRseSBjb25mdXNl ZCBhYm91dCB3aGF0IHNob3VsZCBiZSBkb25lIGZvciBub24tU1NBIG5hbWVz LiANClRoZXJlJ3Mgbm8gc2NhbGFyIHN0bXQgdG8gZ2F0aGVyIGZvciBhIGNv bnN0YW50IGluIGEgdmVjdG9yIGNvbnN0cnVjdG9yLg0KDQogPg0KID4gWW91 IGJ1aWxkIGEgQ09OU1RSVUNUT1Igb2YgdmVjdG9ycywgdGh1cw0KID4NCiA+ IF9vcmlnX3NzYV8xID0geyB2ZWN0X3BhcnQxXzIsIHZlY3RfcGFydDJfMywg Li4uIH07DQpJJ3ZlIGFkZGVkIGNvZGUgdG8gZG8gdGhpcywgYW5kIGEgdGVz dGNhc2Ugd2hpY2ggdHJpZ2dlcnMgaXQuDQoNCiA+DQogPiArDQogPiArwqDC oMKgwqDCoMKgwqDCoCBpZiAoY29uc3RydWN0b3IpDQogPiArwqDCoMKgwqDC oMKgwqDCoMKgwqAgew0KID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBT TFBfSU5TVEFOQ0VfUk9PVF9TVE1UIChuZXdfaW5zdGFuY2UpID0gc3RtdF9p bmZvLT5zdG10Ow0KID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIH0NCiA+ICvC oMKgwqDCoMKgwqDCoMKgIGVsc2UNCiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oCBTTFBfSU5TVEFOQ0VfUk9PVF9TVE1UIChuZXdfaW5zdGFuY2UpID0gTlVM TDsNCiA+ICsNCiA+DQogPiB0b28gbXVjaCB2ZXJ0aWNhbCBzcGFjZSwgbm8g e30gYXJvdW5kIHNpbmdsZS1zdG10IGlmIGNsYXVzZXMNCkZpeGVkLg0KDQog Pg0KID4NCiA+IEBAIC0yNzI1LDYgKzI3NjAsMTAgQEAgdmVjdF9iYl9zbHBf c2NhbGFyX2Nvc3QgKGJhc2ljX2Jsb2NrIGJiLA0KID7CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdG10X3ZlY19pbmZvIHVzZV9zdG10X2lu Zm8gPSB2aW5mby0+bG9va3VwX3N0bXQNCiA+ICh1c2Vfc3RtdCk7DQogPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghdXNlX3N0bXRf aW5mbyB8fCAhUFVSRV9TTFBfU1RNVCAodXNlX3N0bXRfaW5mbykpDQogPsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB7DQogPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIENoZWNrIHRo aXMgaXMgbm90IGEgY29uc3RydWN0b3IgdGhhdCB3aWxsIGJlDQogPiB2ZWN0 b3JpemVkDQogPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGF3YXkuwqAgKi8NCiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgaWYgKEJCX1ZJTkZPX0dST1VQRURfU1RPUkVT ICh2aW5mbykuY29udGFpbnMNCiA+ICh1c2Vfc3RtdF9pbmZvKSkNCiA+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b250aW51ZTsNCiA+DQogPiBobW0sIHNvIHdoeSBub3Qgc2V0IHRoZSBzbHAg dHlwZSBvbiBTTFBfSU5TVEFOQ0VfUk9PVF9TVE1UIGluc3RlYWQ/DQogPiBJ biB0aGVvcnkgdGhlIHN0bXQgc2hvdWxkIGJlIHBhcnQgb2YgdGhlIFNMUCB0 cmVlIGl0c2VsZiBidXQgdGhhdCdzDQogPiBwcm9iYWJseSB0b28gYXdrd2Fy ZCB0byBiZSBtYWRlIHdvcmsgYXQgdGhlIG1vbWVudCA7KQ0KSSBkaWQgdHJ5 IHRoaXMsIGJ1dCBpdCB3YXMgaW5kZWVkIHZlcnkgYXdrd2FyZCB0byBiZSBt YWRlIHRvIHdvcmsuDQoNCiA+DQogPiB2ZWN0X3NzYV91c2Vfb3V0c2lkZV9i YiBhbmQgdmVjdF9zbHBfY2hlY2tfZm9yX2NvbnN0cnVjdG9ycyBhcmUgbmV3 DQogPiBmdW5jdGlvbnMgd2hpY2ggbmVlZCBjb21tZW50cy4NCkZpeGVkLiBJ J3ZlIGFsc28gdGFrZW4gdGhlICd2ZWN0b3JpemUgdGhlIHJvb3QnIG91dCBp bnRvIGEgc2VwYXJhdGUgDQpmdW5jdGlvbi4NCg0KID4NCiA+ICvCoCAvKiBG b3IgdmVjdG9yIGNvbnN0cnVjdG9ycywgdGhlIHNhbWUgU1NBIG5hbWUgbXVz dCBiZSB1c2VkIHRvIA0KbWFpbnRhaW4NCiA+IGRhdGENCiA+ICvCoMKgwqDC oCBmbG93IGludG8gb3RoZXIgYmFzaWMgYmxvY2tzLsKgICovDQogPiArwqAg aWYgKGluc3RhbmNlLT5yb290ID09IG5vZGUgJiYgU0xQX0lOU1RBTkNFX1JP T1RfU1RNVCAoaW5zdGFuY2UpDQogPiArwqDCoMKgwqDCoCAmJiBTTFBfVFJF RV9OVU1CRVJfT0ZfVkVDX1NUTVRTIChub2RlKSA9PSAxDQogPiArwqDCoMKg wqDCoCAmJiBTTFBfVFJFRV9WRUNfU1RNVFMgKG5vZGUpLmV4aXN0cyAoKSkN CiA+ICvCoMKgwqAgew0KID4NCiA+IGl0IHNob3VsZCByZWFkDQogPg0KID7C oMKgIC8qIFZlY3Rvcml6ZSB0aGUgaW5zdGFuY2Ugcm9vdC7CoCAqLw0KID4N CiA+IGFuZCBiZSBpbiB2ZWN0X3NjaGVkdWxlX3NscCBhZnRlciB0aGUgdmVj dF9zY2hlZHVsZV9zbHBfaW5zdGFuY2UuDQogPiBBcyBzYWlkIGFib3ZlIHlv dSBuZWVkIHRvIGhhbmRsZSBTTFBfVFJFRV9OVU1CRVJfT0ZfVkVDX1NUTVRT ID4gMSwNCiA+IHlvdSBhbHNvIGNhbm5vdCBzaW1wbHkgZG8gIm5vdGhpbmci IGhlcmUsICJmYWlsaW5nIiB2ZWN0b3JpemF0aW9uDQogPiAod2VsbCwgeW91 IHByb2JhYmx5IGNhbiAtIERDRSB3aWxsIHJlbW92ZSB0aGUgdmVjdG9yaXpl ZCBjb2RlIC0gYnV0DQogPiBhdCBsZWFzdCBpZiB0aGVyZSB3ZXJlIGNhbGxz IGluIHRoZSBTTFAgdHJlZSB0aGV5IHdpbGwgYmUgbWFuZ2xlZA0KID4gYnkg dmVjdG9yaXphdGlvbiBzbyB0aGUgc2NhbGFyIGNvZGUgaXMgd3JlY2tlZCku wqAgU08gaXQgc2hvdWxkIGJlDQogPg0KID7CoCBpZiAoU0xQX0lOU1RBTkNF X1JPT1RfU1RNVCAoaW5zdGFuY2UpKQ0KID7CoMKgwqAgLi4geW91IG1heSBu b3QgZmFpbCB0byByZXBsYWNlIHRoZSBzY2FsYXIgcm9vdCBzdG10IGhlcmUg Li4NCiA+DQpTbyB3aGF0IHNob3VsZCBiZSBkb25lIGluIHRoZSBjYXNlIHRo YXQgQ09OU1RSVUNUT1JfTkVMVFMgPCANClRZUEVfVkVDVE9SX1NVQlBBUlRT Pw0KDQogPiArwqDCoMKgwqDCoMKgwqDCoCBpZiAoQ09OU1RSVUNUT1JfTkVM VFMgKHJocykgPT0gMCkNCiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZWN0 b3JpemFibGUgPSBmYWxzZTsNCiA+ICsNCiA+DQogPiBpZiB5b3UgdXNlIGNv bnRpbnVlOyB5b3UgY2FuIGVsaWRlIHRoZSAndmVjdG9yaXphYmxlJyB2YXJp YWJsZS4NCkRvbmUuDQoNCiA+DQogPiArwqDCoMKgwqDCoMKgwqDCoCBpZiAo IXZlY3Rfc3NhX3VzZV9vdXRzaWRlX2JiIChnaW1wbGVfYXNzaWduX2xocyAo c3RtdCkpKQ0KID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIHZlY3Rvcml6YWJs ZSA9IGZhbHNlOw0KID4gKw0KID4NCiA+IHdoeSdzIHRoYXQ/wqAgbm8gY29t bWVudHMgdGhhdCBjbGFyaWZ5IDspwqAgVGhlIHZlY3RvciBtYXkgYmUNCiA+ IHVzZWQgYXMgYXJndW1lbnQgdG8gYSBjYWxsIG9yIGFzIHNvdXJjZSBvZiBh IHN0b3JlLsKgIFNvIEknZCBzaW1wbHkNCiA+IHJlbW92ZSB0aGlzIGNoZWNr IChhbmQgdGhlIGZ1bmN0aW9uKS4NCg0KRG9uZS4gVGhlIHRoaW5raW5nIHdh cyB0aGF0IGlmIHRoZSB2ZWN0b3Igd2FzIHVzZWQgYXMgYSBzb3VyY2Ugb2Yg YSANCnN0b3JlIHRoZSBTTFAgdHJlZSB3b3VsZCBiZSBidWlsdCBmcm9tIHRo ZSBncm91cGVkIHN0b3JlIGluc3RlYWQuIFdpbGwgDQppdCBub3QgY2F1c2Ug cHJvYmxlbXMgaWYgYm90aCB0aGUgZ3JvdXBlZCBzdG9yZSBhbmQgdGhlIHZl Y3RvciANCmNvbnN0cnVjdG9yIGFyZSB1c2VkIHRvIGJ1aWxkIFNMUCB0cmVl cz8NCg0KDQoNCjIwMTktMTAtMTAgIEpvZWwgSHV0dG9uICA8Sm9lbC5IdXR0 b25AYXJtLmNvbT4NCg0KICAgICAgICAgKiBleHByLmMgKHN0b3JlX2NvbnN0 cnVjdG9yKTogQWRkIGNhc2UgZm9yIGNvbnN0cnVjdG9yIG9mIHZlY3RvcnMu DQogICAgICAgICAqIHRyZWUtdmVjdC1zbHAuYyAodmVjdF9hbmFseXplX3Ns cF9pbnN0YW5jZSk6IEFkZCBjYXNlIGZvciB2ZWN0b3IgY29uc3RydWN0b3Jz Lg0KICAgICAgICAgKHZlY3RfYmJfc2xwX3NjYWxhcl9jb3N0KTogTGlrZXdp c2UuDQogICAgICAgICAodmVjdF9zbHBfY2hlY2tfZm9yX2NvbnN0cnVjdG9y cyk6IE5ldyBmdW5jdGlvbi4NCiAgICAgICAgICh2ZWN0X3NscF9hbmFseXpl X2JiXzEpOiBBZGQgY2hlY2sgZm9yIHZlY3RvciBjb25zdHJ1Y3RvcnMuDQog ICAgICAgICAodmVjdF9zY2hlZHVsZV9zbHBfaW5zdGFuY2UpOiBBZGQgY2Fz ZSB0byBmaXh1cCB2ZWN0b3IgY29uc3RydWN0b3Igc3RtdC4NCiAgICAgICAg ICh2ZWN0b3JpemVfc2xwX2luc3RhbmNlX3Jvb3Rfc3RtdCk6IE5ldyBmdW5j dGlvbg0KICAgICAgICAgKiB0cmVlLXZlY3Rvcml6ZXIuaCAoU0xQX0lOU1RB TkNFX1JPT1RfU1RNVCk6IE5ldyBmaWVsZC4NCg0KZ2NjL3Rlc3RzdWl0ZS9D aGFuZ2VMb2c6DQoNCjIwMTktMTAtMTAgIEpvZWwgSHV0dG9uICA8Sm9lbC5I dXR0b25AYXJtLmNvbT4NCg0KICAgICAgICAgKiBnY2MuZGcvdmVjdC9iYi1z bHAtNDAuYzogTmV3IHRlc3QuDQogICAgICAgICAqIGdjYy5kZy92ZWN0L2Ji LXNscC00MS5jOiBOZXcgdGVzdC4NCg0K --_002_6b66b279eba280be58f0f72dc2316fcbarmcom_ Content-Type: text/x-patch; name="0001-SLP-Vectorization-Vectorize-vector-constructors.patch" Content-Description: 0001-SLP-Vectorization-Vectorize-vector-constructors.patch Content-Disposition: attachment; filename="0001-SLP-Vectorization-Vectorize-vector-constructors.patch"; size=13814; creation-date="Wed, 30 Oct 2019 13:08:00 GMT"; modification-date="Wed, 30 Oct 2019 13:08:00 GMT" Content-ID: <9C602E1825CAFB4FAEB7D6E58B201EA9@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 Content-length: 18727 RnJvbSA5MDI1MTBiZDQ5OGFjZmM5ZTMwNjM2ZjgyNjdiNTcwMjdiYzYzMjU0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KRnJvbTogSm9lbCBIdXR0b24g PEpvZWwuSHV0dG9uQGFybS5jb20+DQpEYXRlOiBUdWUsIDIyIE9jdCAyMDE5 IDEwOjA1OjE5ICswMTAwDQpTdWJqZWN0OiBbUEFUQ0hdIFNMUCBWZWN0b3Jp emF0aW9uOiBWZWN0b3JpemUgdmVjdG9yIGNvbnN0cnVjdG9ycw0KDQotLS0N CiBnY2MvZXhwci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1 ICstDQogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9iYi1zbHAtNDAuYyB8 ICAzNCArKysrKw0KIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvYmItc2xw LTQxLmMgfCAgNjEgKysrKysrKysrDQogZ2NjL3RyZWUtdmVjdC1zbHAuYyAg ICAgICAgICAgICAgICAgICB8IDE3MSArKysrKysrKysrKysrKysrKysrKysr KysrLQ0KIGdjYy90cmVlLXZlY3Rvcml6ZXIuaCAgICAgICAgICAgICAgICAg fCAgIDUgKw0KIDUgZmlsZXMgY2hhbmdlZCwgMjczIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLmRnL3ZlY3QvYmItc2xwLTQwLmMNCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9iYi1zbHAtNDEuYw0K DQpkaWZmIC0tZ2l0IGEvZ2NjL2V4cHIuYyBiL2djYy9leHByLmMNCmluZGV4 IDQ3NmM2ODY1ZjIwODI4ZmM2OGY0NTVlNzBkNDg3NGVhYWJkOWQwOGQuLmVh NDcwNWU0N2M3ZTg0MjRjY2E1ZTE5MzE5ZWYyMWRiNDE1ZjQ5NmEgMTAwNjQ0 DQotLS0gYS9nY2MvZXhwci5jDQorKysgYi9nY2MvZXhwci5jDQpAQCAtNjgy NSw3ICs2ODI1LDEwIEBAIHN0b3JlX2NvbnN0cnVjdG9yICh0cmVlIGV4cCwg cnR4IHRhcmdldCwgaW50IGNsZWFyZWQsIHBvbHlfaW50NjQgc2l6ZSwNCiAJ ICAgICAgew0KIAkJdW5zaWduZWQgaW50IG4gPSBjb25zdF9uX2VsdHM7DQog DQotCQlpZiAoZW1vZGUgIT0gZWx0bW9kZSkNCisJCWlmIChlbW9kZSAhPSBl bHRtb2RlDQorCQkgICAgfHwgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChleHAp KSA9PSBWRUNUT1JfVFlQRQ0KKwkJCSYmIFRSRUVfQ09ERSAoVFJFRV9UWVBF IChDT05TVFJVQ1RPUl9FTFQoZXhwLCAwKS0+dmFsdWUpKQ0KKwkJCSAgID09 IFZFQ1RPUl9UWVBFKSkNCiAJCSAgew0KIAkJICAgIG4gPSBDT05TVFJVQ1RP Ul9ORUxUUyAoZXhwKTsNCiAJCSAgICB2ZWNfdmVjX2luaXRfcCA9IHRydWU7 DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9iYi1z bHAtNDAuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvYmItc2xwLTQw LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMWRkMzcyMTg0NjIzZjM0 ZjhmMjgyNWFhNWRhNTBkYzcwYzk4MDg0DQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L2JiLXNscC00MC5jDQpAQCAt MCwwICsxLDM0IEBADQorLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7 IGRnLW9wdGlvbnMgIi1PMyAtZmR1bXAtdHJlZS1zbHAtYWxsIiB9ICovDQor LyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAq Lw0KKw0KK2NoYXIgZ19kWzEwMjRdLCBnX3MxWzEwMjRdLCBnX3MyWzEwMjRd Ow0KK3ZvaWQgZm9vKHZvaWQpDQorew0KKyAgICBjaGFyICpkID0gZ19kLCAq czEgPSBnX3MxLCAqczIgPSBnX3MyOw0KKw0KKyAgICBmb3IgKCBpbnQgeSA9 IDA7IHkgPCAxMjg7IHkrKyApDQorICAgIHsNCisgICAgICBkWzAgXSA9IHMx WzAgXSArIHMyWzAgXTsNCisgICAgICBkWzEgXSA9IHMxWzEgXSArIHMyWzEg XTsNCisgICAgICBkWzIgXSA9IHMxWzIgXSArIHMyWzIgXTsNCisgICAgICBk WzMgXSA9IHMxWzMgXSArIHMyWzMgXTsNCisgICAgICBkWzQgXSA9IHMxWzQg XSArIHMyWzQgXTsNCisgICAgICBkWzUgXSA9IHMxWzUgXSArIHMyWzUgXTsN CisgICAgICBkWzYgXSA9IHMxWzYgXSArIHMyWzYgXTsNCisgICAgICBkWzcg XSA9IHMxWzcgXSArIHMyWzcgXTsNCisgICAgICBkWzggXSA9IHMxWzggXSAr IHMyWzggXTsNCisgICAgICBkWzkgXSA9IHMxWzkgXSArIHMyWzkgXTsNCisg ICAgICBkWzEwXSA9IHMxWzEwXSArIHMyWzEwXTsNCisgICAgICBkWzExXSA9 IHMxWzExXSArIHMyWzExXTsNCisgICAgICBkWzEyXSA9IHMxWzEyXSArIHMy WzEyXTsNCisgICAgICBkWzEzXSA9IHMxWzEzXSArIHMyWzEzXTsNCisgICAg ICBkWzE0XSA9IHMxWzE0XSArIHMyWzE0XTsNCisgICAgICBkWzE1XSA9IHMx WzE1XSArIHMyWzE1XTsNCisgICAgICBkICs9IDE2Ow0KKyAgICB9DQorfQ0K Kw0KKy8qIFNlZSB0aGF0IHdlIHZlY3Rvcml6ZSBhbiBTTFAgaW5zdGFuY2Uu ICAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi Rm91bmQgdmVjdG9yaXphYmxlIGNvbnN0cnVjdG9yIiAxICJzbHAxIiB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInZl Y3Rvcml6aW5nIHN0bXRzIHVzaW5nIFNMUCIgMSAic2xwMSIgfSB9ICovDQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9iYi1zbHAt NDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvYmItc2xwLTQxLmMN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MThkMWQwZWYzZjZkYTkzYjUz ZGY2MjI5NjYyMGQ1ODlhZDJlMjFhDQotLS0gL2Rldi9udWxsDQorKysgYi9n Y2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L2JiLXNscC00MS5jDQpAQCAtMCww ICsxLDYxIEBADQorLyogeyBkZy1kbyBydW4gfSAqLw0KKy8qIHsgZGctb3B0 aW9ucyAiLU8zIC1mZHVtcC10cmVlLXNscC1hbGwgLWZuby12ZWN0LWNvc3Qt bW9kZWwiIH0gKi8NCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdl dCB2ZWN0X2ludCB9ICovDQorDQorI2RlZmluZSBBUlJfU0laRSAxMDAwDQor DQordm9pZCBmb28gKGludCAqYSwgaW50ICpiKQ0KK3sNCisgIGludCBpOw0K KyAgZm9yIChpID0gMDsgaSA8IChBUlJfU0laRSAtIDIpOyArK2kpDQorICAg IGFbaV0gPSBiWzBdICsgYlsxXSArIGJbaSsxXSArIGJbaSsyXTsNCit9DQor DQordm9pZCBiYXIgKGludCAqYSwgaW50ICpiKQ0KK3sNCisgIGludCBpOw0K KyAgZm9yIChpID0gMDsgaSA8IChBUlJfU0laRSAtIDIpOyArK2kpDQorICB7 DQorICAgIGFbaV0gPSBiWzBdOw0KKyAgfQ0KKyAgZm9yIChpID0gMDsgaSA8 IChBUlJfU0laRSAtIDIpOyArK2kpDQorICB7DQorICAgIGFbaV0gPSBhW2ld ICsgYlsxXTsNCisgIH0NCisgIGZvciAoaSA9IDA7IGkgPCAoQVJSX1NJWkUg LSAyKTsgKytpKQ0KKyAgew0KKyAgICBhW2ldID0gYVtpXSArIGJbaSsxXTsN CisgIH0NCisgIGZvciAoaSA9IDA7IGkgPCAoQVJSX1NJWkUgLSAyKTsgKytp KQ0KKyAgew0KKyAgICBhW2ldID0gYVtpXSArIGJbaSsyXTsNCisgIH0NCit9 DQorDQoraW50IG1haW4gKCkNCit7DQorICBpbnQgYTFbQVJSX1NJWkVdOw0K KyAgaW50IGEyW0FSUl9TSVpFXTsNCisgIGludCBiW0FSUl9TSVpFXTsNCisg IGludCBpOw0KKw0KKyAgZm9yIChpID0gMDsgaSA8IEFSUl9TSVpFOyBpKysp DQorICB7DQorICAgIGExW2ldID0gMDsNCisgICAgYTJbaV0gPSAwOw0KKyAg ICBiW2ldICA9IGk7DQorICB9DQorDQorICBmb28gKGExLCBiKTsNCisgIGJh ciAoYTIsIGIpOw0KKw0KKyAgZm9yIChpID0gMDsgaSA8IEFSUl9TSVpFOyBp KyspDQorICAgIGlmIChhMVtpXSAhPSBhMltpXSkNCisgICAgICByZXR1cm4g MTsNCisNCisgIHJldHVybiAwOw0KKw0KK30NCisvKiBTZWUgdGhhdCB3ZSB2 ZWN0b3JpemUgYW4gU0xQIGluc3RhbmNlLiAgKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkZvdW5kIHZlY3Rvcml6YWJsZSBj b25zdHJ1Y3RvciIgNCAic2xwMSIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemluZyBzdG10cyB1c2lu ZyBTTFAiIDIgInNscDEiIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90cmVl LXZlY3Qtc2xwLmMgYi9nY2MvdHJlZS12ZWN0LXNscC5jDQppbmRleCBlMTA2 MWVkZTA2MTc1MWY1ZmQ2YzU1ZWRiNTY2NzFhODU0ZTc0NTZlLi5iZTdiYjI3 ODk5ZGEwNmQyMmRkYzQ4MzNiM2U5MGEyZjhjMDAwMTc3IDEwMDY0NA0KLS0t IGEvZ2NjL3RyZWUtdmVjdC1zbHAuYw0KKysrIGIvZ2NjL3RyZWUtdmVjdC1z bHAuYw0KQEAgLTE5ODMsNiArMTk4Myw3IEBAIHZlY3RfYW5hbHl6ZV9zbHBf aW5zdGFuY2UgKHZlY19pbmZvICp2aW5mbywNCiAgIHVuc2lnbmVkIGludCBp Ow0KICAgc3RydWN0IGRhdGFfcmVmZXJlbmNlICpkciA9IFNUTVRfVklORk9f REFUQV9SRUYgKHN0bXRfaW5mbyk7DQogICB2ZWM8c3RtdF92ZWNfaW5mbz4g c2NhbGFyX3N0bXRzOw0KKyAgYm9vbCBjb25zdHJ1Y3RvciA9IGZhbHNlOw0K IA0KICAgaWYgKFNUTVRfVklORk9fR1JPVVBFRF9BQ0NFU1MgKHN0bXRfaW5m bykpDQogICAgIHsNCkBAIC0xOTk2LDYgKzE5OTcsMTMgQEAgdmVjdF9hbmFs eXplX3NscF9pbnN0YW5jZSAodmVjX2luZm8gKnZpbmZvLA0KICAgICAgIHZl Y3R5cGUgPSBTVE1UX1ZJTkZPX1ZFQ1RZUEUgKHN0bXRfaW5mbyk7DQogICAg ICAgZ3JvdXBfc2l6ZSA9IFJFRFVDX0dST1VQX1NJWkUgKHN0bXRfaW5mbyk7 DQogICAgIH0NCisgIGVsc2UgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXRf aW5mby0+c3RtdCkNCisJICAgICYmIGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUg KHN0bXRfaW5mby0+c3RtdCkgPT0gQ09OU1RSVUNUT1IpDQorICAgIHsNCisg ICAgICB2ZWN0eXBlID0gVFJFRV9UWVBFIChnaW1wbGVfYXNzaWduX3JoczEg KHN0bXRfaW5mby0+c3RtdCkpOw0KKyAgICAgIGdyb3VwX3NpemUgPSBDT05T VFJVQ1RPUl9ORUxUUyAoZ2ltcGxlX2Fzc2lnbl9yaHMxIChzdG10X2luZm8t PnN0bXQpKTsNCisgICAgICBjb25zdHJ1Y3RvciA9IHRydWU7DQorICAgIH0N CiAgIGVsc2UNCiAgICAgew0KICAgICAgIGdjY19hc3NlcnQgKGlzX2EgPGxv b3BfdmVjX2luZm8+ICh2aW5mbykpOw0KQEAgLTIwNDIsNiArMjA1MCwyNSBA QCB2ZWN0X2FuYWx5emVfc2xwX2luc3RhbmNlICh2ZWNfaW5mbyAqdmluZm8s DQogICAgICAgU1RNVF9WSU5GT19SRURVQ19ERUYgKHZlY3Rfb3JpZ19zdG10 IChzdG10X2luZm8pKQ0KIAk9IFNUTVRfVklORk9fUkVEVUNfREVGICh2ZWN0 X29yaWdfc3RtdCAoc2NhbGFyX3N0bXRzLmxhc3QgKCkpKTsNCiAgICAgfQ0K KyAgZWxzZSBpZiAoY29uc3RydWN0b3IpDQorICAgIHsNCisgICAgICB0cmVl IHJocyA9IGdpbXBsZV9hc3NpZ25fcmhzMSAoc3RtdF9pbmZvLT5zdG10KTsN CisgICAgICB0cmVlIHZhbDsNCisgICAgICBGT1JfRUFDSF9DT05TVFJVQ1RP Ul9WQUxVRSAoQ09OU1RSVUNUT1JfRUxUUyAocmhzKSwgaSwgdmFsKQ0KKwl7 DQorCSAgaWYgKFRSRUVfQ09ERSAodmFsKSA9PSBTU0FfTkFNRSkNCisJICAg IHsNCisJICAgICAgZ2ltcGxlKiBkZWYgPSBTU0FfTkFNRV9ERUZfU1RNVCAo dmFsKTsNCisJICAgICAgc3RtdF92ZWNfaW5mbyBkZWZfaW5mbyA9IHZpbmZv LT5sb29rdXBfc3RtdCAoZGVmKTsNCisJICAgICAgLyogVmFsdWUgaXMgZGVm aW5lZCBpbiBhbm90aGVyIGJhc2ljIGJsb2NrLiAgKi8NCisJICAgICAgaWYg KCFkZWZfaW5mbykNCisJCXJldHVybiBmYWxzZTsNCisJICAgICAgc2NhbGFy X3N0bXRzLnNhZmVfcHVzaCAoZGVmX2luZm8pOw0KKwkgICAgfQ0KKwkgIGVs c2UNCisJICAgIHJldHVybiBmYWxzZTsNCisJfQ0KKyAgICB9DQogICBlbHNl DQogICAgIHsNCiAgICAgICAvKiBDb2xsZWN0IHJlZHVjdGlvbiBzdGF0ZW1l bnRzLiAgKi8NCkBAIC0yMDk5LDYgKzIxMjYsOCBAQCB2ZWN0X2FuYWx5emVf c2xwX2luc3RhbmNlICh2ZWNfaW5mbyAqdmluZm8sDQogCSAgU0xQX0lOU1RB TkNFX0dST1VQX1NJWkUgKG5ld19pbnN0YW5jZSkgPSBncm91cF9zaXplOw0K IAkgIFNMUF9JTlNUQU5DRV9VTlJPTExJTkdfRkFDVE9SIChuZXdfaW5zdGFu Y2UpID0gdW5yb2xsaW5nX2ZhY3RvcjsNCiAJICBTTFBfSU5TVEFOQ0VfTE9B RFMgKG5ld19pbnN0YW5jZSkgPSB2TlVMTDsNCisJICBTTFBfSU5TVEFOQ0Vf Uk9PVF9TVE1UIChuZXdfaW5zdGFuY2UpID0gY29uc3RydWN0b3IgPyBzdG10 X2luZm8tPnN0bXRcDQorCQkJCQkJICA6IE5VTEw7DQogCSAgdmVjdF9nYXRo ZXJfc2xwX2xvYWRzIChuZXdfaW5zdGFuY2UsIG5vZGUpOw0KIAkgIGlmIChk dW1wX2VuYWJsZWRfcCAoKSkNCiAJICAgIGR1bXBfcHJpbnRmX2xvYyAoTVNH X05PVEUsIHZlY3RfbG9jYXRpb24sDQpAQCAtMjgwMSw2ICsyODMwLDEwIEBA IHZlY3RfYmJfc2xwX3NjYWxhcl9jb3N0IChiYXNpY19ibG9jayBiYiwNCiAJ CXN0bXRfdmVjX2luZm8gdXNlX3N0bXRfaW5mbyA9IHZpbmZvLT5sb29rdXBf c3RtdCAodXNlX3N0bXQpOw0KIAkJaWYgKCF1c2Vfc3RtdF9pbmZvIHx8ICFQ VVJFX1NMUF9TVE1UICh1c2Vfc3RtdF9pbmZvKSkNCiAJCSAgew0KKwkJICAg IC8qIENoZWNrIHRoaXMgaXMgbm90IGEgY29uc3RydWN0b3IgdGhhdCB3aWxs IGJlIHZlY3Rvcml6ZWQNCisJCSAgICAgICBhd2F5LiAgKi8NCisJCSAgICBp ZiAoQkJfVklORk9fR1JPVVBFRF9TVE9SRVMgKHZpbmZvKS5jb250YWlucyAo dXNlX3N0bXRfaW5mbykpDQorCQkJY29udGludWU7DQogCQkgICAgKCpsaWZl KVtpXSA9IHRydWU7DQogCQkgICAgQlJFQUtfRlJPTV9JTU1fVVNFX1NUTVQg KHVzZV9pdGVyKTsNCiAJCSAgfQ0KQEAgLTI5MTIsNiArMjk0NSwzOCBAQCB2 ZWN0X2JiX3ZlY3Rvcml6YXRpb25fcHJvZml0YWJsZV9wIChiYl92ZWNfaW5m byBiYl92aW5mbykNCiAgIHJldHVybiB0cnVlOw0KIH0NCiANCisvKiBGaW5k IGFueSB2ZWN0b3JpemFibGUgY29uc3RydWN0b3JzLCBhbmQgYWRkIHRoZW0g dG8gdGhlIGdyb3VwZWRfc3RvcmUNCisgICBhcnJheS4gICovDQorDQorc3Rh dGljIHZvaWQNCit2ZWN0X3NscF9jaGVja19mb3JfY29uc3RydWN0b3JzIChi Yl92ZWNfaW5mbyBiYl92aW5mbykNCit7DQorICBnaW1wbGVfc3RtdF9pdGVy YXRvciBnc2k7DQorDQorICBmb3IgKGdzaSA9IGJiX3ZpbmZvLT5yZWdpb25f YmVnaW47DQorICAgICAgZ3NpX3N0bXQgKGdzaSkgIT0gZ3NpX3N0bXQgKGJi X3ZpbmZvLT5yZWdpb25fZW5kKTsgZ3NpX25leHQgKCZnc2kpKQ0KKyAgICB7 DQorICAgICAgZ2ltcGxlICpzdG10ID0gZ3NpX3N0bXQgKGdzaSk7DQorDQor ICAgICAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXQpDQorCSAgJiYgZ2lt cGxlX2Fzc2lnbl9yaHNfY29kZSAoc3RtdCkgPT0gQ09OU1RSVUNUT1INCisJ ICAmJiBUUkVFX0NPREUgKGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KSkgPT0g U1NBX05BTUUNCisJICAmJiBUUkVFX0NPREUgKFRSRUVfVFlQRSAoZ2ltcGxl X2Fzc2lnbl9saHMgKHN0bXQpKSkgPT0gVkVDVE9SX1RZUEUpDQorCXsNCisJ ICB0cmVlIHJocyA9IGdpbXBsZV9hc3NpZ25fcmhzMSAoc3RtdCk7DQorDQor CSAgaWYgKENPTlNUUlVDVE9SX05FTFRTIChyaHMpID09IDApDQorCSAgICBj b250aW51ZTsNCisNCisJICBpZiAoZHVtcF9lbmFibGVkX3AgKCkpDQorCSAg ICBkdW1wX3ByaW50Zl9sb2MgKE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLA0K KwkJCSAgICAgIkZvdW5kIHZlY3Rvcml6YWJsZSBjb25zdHJ1Y3RvcjogJUdc biIsIHN0bXQpOw0KKwkgIHN0bXRfdmVjX2luZm8gc3RtdF9pbmZvID0gYmJf dmluZm8tPmxvb2t1cF9zdG10IChzdG10KTsNCisJICBCQl9WSU5GT19HUk9V UEVEX1NUT1JFUyAoYmJfdmluZm8pLnNhZmVfcHVzaCAoc3RtdF9pbmZvKTsN CisJfQ0KKyAgICB9DQorfQ0KKw0KIC8qIENoZWNrIGlmIHRoZSByZWdpb24g ZGVzY3JpYmVkIGJ5IEJCX1ZJTkZPIGNhbiBiZSB2ZWN0b3JpemVkLCByZXR1 cm5pbmcNCiAgICB0cnVlIGlmIHNvLiAgV2hlbiByZXR1cm5pbmcgZmFsc2Us IHNldCBGQVRBTCB0byB0cnVlIGlmIHRoZSBzYW1lIGZhaWx1cmUNCiAgICB3 b3VsZCBwcmV2ZW50IHZlY3Rvcml6YXRpb24gYXQgb3RoZXIgdmVjdG9yIHNp emVzLCBmYWxzZSBpZiBpdCBpcyBzdGlsbA0KQEAgLTI5NTksNiArMzAyNCw4 IEBAIHZlY3Rfc2xwX2FuYWx5emVfYmJfMSAoYmJfdmVjX2luZm8gYmJfdmlu Zm8sIGludCBuX3N0bXRzLCBib29sICZmYXRhbCkNCiAgICAgICByZXR1cm4g ZmFsc2U7DQogICAgIH0NCiANCisgIHZlY3Rfc2xwX2NoZWNrX2Zvcl9jb25z dHJ1Y3RvcnMgKGJiX3ZpbmZvKTsNCisNCiAgIC8qIElmIHRoZXJlIGFyZSBu byBncm91cGVkIHN0b3JlcyBpbiB0aGUgcmVnaW9uIHRoZXJlIGlzIG5vIG5l ZWQNCiAgICAgIHRvIGNvbnRpbnVlIHdpdGggcGF0dGVybiByZWNvZyBhcyB2 ZWN0X2FuYWx5emVfc2xwIHdpbGwgZmFpbA0KICAgICAgYW55d2F5LiAgKi8N CkBAIC00MDIyLDYgKzQwODksNjggQEAgdmVjdF9yZW1vdmVfc2xwX3NjYWxh cl9jYWxscyAoc2xwX3RyZWUgbm9kZSkNCiAgIHZlY3RfcmVtb3ZlX3NscF9z Y2FsYXJfY2FsbHMgKG5vZGUsIHZpc2l0ZWQpOw0KIH0NCiANCisvKiBWZWN0 b3JpemUgdGhlIGluc3RhbmNlIHJvb3QuICBSZXR1cm4gc3VjY2VzcyBvciBm YWlsdXJlLiAgKi8NCisNCitib29sDQordmVjdG9yaXplX3NscF9pbnN0YW5j ZV9yb290X3N0bXQgKHNscF90cmVlIG5vZGUsIHNscF9pbnN0YW5jZSBpbnN0 YW5jZSkNCit7DQorDQorICBpZiAoU0xQX1RSRUVfTlVNQkVSX09GX1ZFQ19T VE1UUyAobm9kZSkgPT0gMSkNCisgICAgew0KKyAgICAgIHN0bXRfdmVjX2lu Zm8gY2hpbGRfc3RtdF9pbmZvOw0KKyAgICAgIGludCBqOw0KKyAgICAgIHRy ZWUgY29uc3RydWN0b3I7DQorICAgICAgY29uc3RydWN0b3IgPSBnaW1wbGVf YXNzaWduX3JoczEgKFNMUF9JTlNUQU5DRV9ST09UX1NUTVQgKGluc3RhbmNl KSk7DQorDQorICAgICAgRk9SX0VBQ0hfVkVDX0VMVCAoU0xQX1RSRUVfVkVD X1NUTVRTIChub2RlKSwgaiwgY2hpbGRfc3RtdF9pbmZvKQ0KKwl7DQorCSAg dHJlZSB2ZWN0X2xocyA9IGdpbXBsZV9nZXRfbGhzIChjaGlsZF9zdG10X2lu Zm8tPnN0bXQpOw0KKwkgIGdhc3NpZ24gKnJzdG10DQorCSAgICA9IGdpbXBs ZV9idWlsZF9hc3NpZ24gKGdpbXBsZV9nZXRfbGhzIChpbnN0YW5jZS0+cm9v dF9zdG10KSwNCisJCWdpbXBsZV9nZXRfbGhzIChjaGlsZF9zdG10X2luZm8t PnN0bXQpKTsNCisJICBnaW1wbGVfc3RtdF9pdGVyYXRvciByZ3NpID0gZ3Np X2Zvcl9zdG10IChpbnN0YW5jZS0+cm9vdF9zdG10KTsNCisJICBpZiAoVFlQ RV9WRUNUT1JfU1VCUEFSVFMgKFRSRUVfVFlQRSAodmVjdF9saHMpKS5pc19j b25zdGFudCAoKQ0KKwkgICAgICAmJiAoQ09OU1RSVUNUT1JfTkVMVFMgKGNv bnN0cnVjdG9yKQ0KKwkJICA9PSBUWVBFX1ZFQ1RPUl9TVUJQQVJUUyAoVFJF RV9UWVBFICh2ZWN0X2xocykpLnRvX2NvbnN0YW50ICgpKSkNCisJICAgIHsN CisJICAgICAgZ3NpX3JlcGxhY2UgKCZyZ3NpLCByc3RtdCwgdHJ1ZSk7DQor CSAgICAgIFNMUF9JTlNUQU5DRV9ST09UX1NUTVQgKGluc3RhbmNlKSA9IE5V TEw7DQorCSAgICB9DQorCSAgYnJlYWs7DQorCX0NCisgICAgfQ0KKyAgZWxz ZSBpZiAoU0xQX1RSRUVfTlVNQkVSX09GX1ZFQ19TVE1UUyAobm9kZSkgPiAx KQ0KKyAgICB7DQorICAgICAgaW50IG5lbHRzID0gU0xQX1RSRUVfTlVNQkVS X09GX1ZFQ19TVE1UUyAobm9kZSk7DQorICAgICAgc3RtdF92ZWNfaW5mbyBj aGlsZF9zdG10X2luZm87DQorICAgICAgaW50IGo7DQorICAgICAgdmVjPGNv bnN0cnVjdG9yX2VsdCwgdmFfZ2M+ICp2Ow0KKyAgICAgIHZlY19hbGxvYyAo diwgbmVsdHMpOw0KKyAgICAgIEZPUl9FQUNIX1ZFQ19FTFQgKFNMUF9UUkVF X1ZFQ19TVE1UUyAobm9kZSksIGosIGNoaWxkX3N0bXRfaW5mbykNCisJew0K KwkgIENPTlNUUlVDVE9SX0FQUEVORF9FTFQgKHYsDQorCQkJCSAgTlVMTF9U UkVFLA0KKwkJCQkgIGdpbXBsZV9nZXRfbGhzIChjaGlsZF9zdG10X2luZm8t PnN0bXQpKTsNCisJfQ0KKyAgICAgIHRyZWUgdHlwZSA9IFRSRUVfVFlQRSAo Z2ltcGxlX2Fzc2lnbl9yaHMxIChpbnN0YW5jZS0+cm9vdF9zdG10KSk7DQor ICAgICAgdHJlZSByX2NvbnN0cnVjdG9yID0gYnVpbGRfY29uc3RydWN0b3Ig KHR5cGUsIHYpOw0KKyAgICAgIGdhc3NpZ24gKnJzdG10DQorCT0gZ2ltcGxl X2J1aWxkX2Fzc2lnbiAoZ2ltcGxlX2dldF9saHMgKGluc3RhbmNlLT5yb290 X3N0bXQpLA0KKwkgICAgcl9jb25zdHJ1Y3Rvcik7DQorICAgICAgZ2ltcGxl X3N0bXRfaXRlcmF0b3IgcmdzaSA9IGdzaV9mb3Jfc3RtdCAoaW5zdGFuY2Ut PnJvb3Rfc3RtdCk7DQorICAgICAgZ3NpX3JlcGxhY2UgKCZyZ3NpLCByc3Rt dCwgdHJ1ZSk7DQorICAgICAgU0xQX0lOU1RBTkNFX1JPT1RfU1RNVCAoaW5z dGFuY2UpID0gTlVMTDsNCisgICAgfQ0KKyAgZWxzZQ0KKyAgICB7DQorICAg ICAgaWYgKGR1bXBfZW5hYmxlZF9wICgpKQ0KKwlkdW1wX3ByaW50Zl9sb2Mg KE1TR19OT1RFLCB2ZWN0X2xvY2F0aW9uLA0KKwkgICAgInZlY3Rvcml6YXRp b24gb2YgY29uc3RydWN0b3IgZmFpbGVkLlxuIik7DQorICAgICAgcmV0dXJu IGZhbHNlOw0KKyAgICB9DQorICByZXR1cm4gdHJ1ZTsNCit9DQorDQogLyog R2VuZXJhdGUgdmVjdG9yIGNvZGUgZm9yIGFsbCBTTFAgaW5zdGFuY2VzIGlu IHRoZSBsb29wL2Jhc2ljIGJsb2NrLiAgKi8NCiANCiB2b2lkDQpAQCAtNDAz Niw5ICs0MTY1LDIwIEBAIHZlY3Rfc2NoZWR1bGVfc2xwICh2ZWNfaW5mbyAq dmluZm8pDQogICBzbHBfaW5zdGFuY2VzID0gdmluZm8tPnNscF9pbnN0YW5j ZXM7DQogICBGT1JfRUFDSF9WRUNfRUxUIChzbHBfaW5zdGFuY2VzLCBpLCBp bnN0YW5jZSkNCiAgICAgew0KKyAgICAgIHNscF90cmVlIG5vZGUgPSBTTFBf SU5TVEFOQ0VfVFJFRSAoaW5zdGFuY2UpOw0KICAgICAgIC8qIFNjaGVkdWxl IHRoZSB0cmVlIG9mIElOU1RBTkNFLiAgKi8NCi0gICAgICB2ZWN0X3NjaGVk dWxlX3NscF9pbnN0YW5jZSAoU0xQX0lOU1RBTkNFX1RSRUUgKGluc3RhbmNl KSwNCisgICAgICB2ZWN0X3NjaGVkdWxlX3NscF9pbnN0YW5jZSAobm9kZSwN CiAJCQkJICBpbnN0YW5jZSwgYnN0X21hcCk7DQorDQorICAgICAgLyogVmVj dG9yaXplIHRoZSBpbnN0YW5jZSByb290LiAgKi8NCisgICAgICBpZiAoaW5z dGFuY2UtPnJvb3QgPT0gbm9kZSAmJiBTTFBfSU5TVEFOQ0VfUk9PVF9TVE1U IChpbnN0YW5jZSkNCisJICAmJiBTTFBfVFJFRV9WRUNfU1RNVFMgKG5vZGUp LmV4aXN0cyAoKSkNCisJaWYgKCF2ZWN0b3JpemVfc2xwX2luc3RhbmNlX3Jv b3Rfc3RtdCAobm9kZSwgaW5zdGFuY2UpKQ0KKwkgIHsNCisJICAgIGRlbGV0 ZSBic3RfbWFwOw0KKwkgICAgcmV0dXJuOw0KKwkgIH0NCisNCiAgICAgICBp ZiAoZHVtcF9lbmFibGVkX3AgKCkpDQogCWR1bXBfcHJpbnRmX2xvYyAoTVNH X05PVEUsIHZlY3RfbG9jYXRpb24sDQogICAgICAgICAgICAgICAgICAgICAg ICAgICJ2ZWN0b3JpemluZyBzdG10cyB1c2luZyBTTFAuXG4iKTsNCkBAIC00 MDYxLDE1ICs0MjAxLDQyIEBAIHZlY3Rfc2NoZWR1bGVfc2xwICh2ZWNfaW5m byAqdmluZm8pDQogICAgICAgaWYgKGlzX2EgPGxvb3BfdmVjX2luZm8+ICh2 aW5mbykpDQogCXZlY3RfcmVtb3ZlX3NscF9zY2FsYXJfY2FsbHMgKHJvb3Qp Ow0KIA0KKyAgICAgIGF1dG9fdmVjPHN0bXRfdmVjX2luZm8+IHJlbW92ZWQ7 DQorDQogICAgICAgZm9yIChqID0gMDsgU0xQX1RSRUVfU0NBTEFSX1NUTVRT IChyb290KS5pdGVyYXRlIChqLCAmc3RvcmVfaW5mbykNCiAgICAgICAgICAg ICAgICAgICAmJiBqIDwgU0xQX0lOU1RBTkNFX0dST1VQX1NJWkUgKGluc3Rh bmNlKTsgaisrKQ0KICAgICAgICAgew0KIAkgIGlmICghU1RNVF9WSU5GT19E QVRBX1JFRiAoc3RvcmVfaW5mbykpDQogCSAgICBicmVhazsNCiANCisJICBp ZiAocmVtb3ZlZC5jb250YWlucyAoc3RvcmVfaW5mbykpDQorCSAgICBjb250 aW51ZTsNCisNCiAJICBzdG9yZV9pbmZvID0gdmVjdF9vcmlnX3N0bXQgKHN0 b3JlX2luZm8pOw0KKwkgIHRyZWUgbGhzID0gZ2ltcGxlX2dldF9saHMgKHN0 b3JlX2luZm8tPnN0bXQpOw0KKwkgIGJvb2wgdXNlZCA9IGZhbHNlOw0KKwkg IC8qIFdlIG11c3QgZW5zdXJlIHdlIGRvbid0IHJlbW92ZSBkZWYgc3RtdHMg Zm9yIHNzYSBuYW1lcyB1c2VkDQorCSAgICAgZWxzZXdoZXJlLiAgKi8NCisJ ICBpZiAoVFJFRV9DT0RFIChsaHMpID09IFNTQV9OQU1FKQ0KKwkgICAgew0K KwkgICAgICBnaW1wbGUgKnVzZV9zdG10Ow0KKwkgICAgICBpbW1fdXNlX2l0 ZXJhdG9yIHVzZV9pdGVyOw0KKw0KKwkgICAgICBGT1JfRUFDSF9JTU1fVVNF X1NUTVQgKHVzZV9zdG10LCB1c2VfaXRlciwgbGhzKQ0KKwkJew0KKwkJICBp ZiAodXNlX3N0bXQgIT0gc3RvcmVfaW5mby0+c3RtdCkNCisJCSAgew0KKwkJ ICAgIHVzZWQgPSB0cnVlOw0KKwkJICAgIEJSRUFLX0ZST01fSU1NX1VTRV9T VE1UICh1c2VfaXRlcik7DQorCQkgIH0NCisJCX0NCisJICAgIH0NCisNCiAJ ICAvKiBGcmVlIHRoZSBhdHRhY2hlZCBzdG10X3ZlY19pbmZvIGFuZCByZW1v dmUgdGhlIHN0bXQuICAqLw0KLQkgIHZpbmZvLT5yZW1vdmVfc3RtdCAoc3Rv cmVfaW5mbyk7DQorDQorCSAgaWYgKCF1c2VkKQ0KKwkgICAgdmluZm8tPnJl bW92ZV9zdG10IChzdG9yZV9pbmZvKTsNCisJICByZW1vdmVkLnNhZmVfcHVz aCAoc3RvcmVfaW5mbyk7DQogICAgICAgICB9DQogICAgIH0NCiB9DQpkaWZm IC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5oIGIvZ2NjL3RyZWUtdmVj dG9yaXplci5oDQppbmRleCA1NmJlMjhiMGNjNWE3NzQxMmY5OTZlNzA2MzZi MDhkNWI2MTU4MTNlLi45Zjg0MTllNDIwOGI3ZDQzOGFjZTQxODkyMDIyZjkz ZWJjYWRkMDE5IDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtdmVjdG9yaXplci5o DQorKysgYi9nY2MvdHJlZS12ZWN0b3JpemVyLmgNCkBAIC0xNTEsNiArMTUx LDEwIEBAIHB1YmxpYzoNCiAgIC8qIFRoZSByb290IG9mIFNMUCB0cmVlLiAg Ki8NCiAgIHNscF90cmVlIHJvb3Q7DQogDQorICAvKiBGb3IgdmVjdG9yIGNv bnN0cnVjdG9ycywgdGhlIGNvbnN0cnVjdG9yIHN0bXQgdGhhdCB0aGUgU0xQ IHRyZWUgaXMgYnVpbHQNCisgICAgIGZyb20sIE5VTEwgb3RoZXJ3aXNlLiAg Ki8NCisgIGdpbXBsZSAqcm9vdF9zdG10Ow0KKw0KICAgLyogU2l6ZSBvZiBn cm91cHMgb2Ygc2NhbGFyIHN0bXRzIHRoYXQgd2lsbCBiZSByZXBsYWNlZCBi eSBTSU1EIHN0bXQvcy4gICovDQogICB1bnNpZ25lZCBpbnQgZ3JvdXBfc2l6 ZTsNCiANCkBAIC0xNzAsNiArMTc0LDcgQEAgcHVibGljOg0KICNkZWZpbmUg U0xQX0lOU1RBTkNFX0dST1VQX1NJWkUoUykgICAgICAgICAgICAgICAoUykt Pmdyb3VwX3NpemUNCiAjZGVmaW5lIFNMUF9JTlNUQU5DRV9VTlJPTExJTkdf RkFDVE9SKFMpICAgICAgICAgKFMpLT51bnJvbGxpbmdfZmFjdG9yDQogI2Rl ZmluZSBTTFBfSU5TVEFOQ0VfTE9BRFMoUykgICAgICAgICAgICAgICAgICAg IChTKS0+bG9hZHMNCisjZGVmaW5lIFNMUF9JTlNUQU5DRV9ST09UX1NUTVQo UykgICAgICAgICAgICAgICAgKFMpLT5yb290X3N0bXQNCiANCiAjZGVmaW5l IFNMUF9UUkVFX0NISUxEUkVOKFMpICAgICAgICAgICAgICAgICAgICAgKFMp LT5jaGlsZHJlbg0KICNkZWZpbmUgU0xQX1RSRUVfU0NBTEFSX1NUTVRTKFMp ICAgICAgICAgICAgICAgICAoUyktPnN0bXRzDQotLSANCjIuMTcuMQ0KDQo= --_002_6b66b279eba280be58f0f72dc2316fcbarmcom_--