From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) by sourceware.org (Postfix) with ESMTPS id 93B073858D33 for ; Thu, 20 Apr 2023 02:12:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 93B073858D33 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp62t1681956698tlgeswd6 Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 20 Apr 2023 10:11:37 +0800 (CST) X-QQ-SSF: 01400000000000F0P000000A0000000 X-QQ-FEAT: RQW/96u6TojkxsPHMqDmtlli4t6E8IW0rVN3mDpdqP7OZaZIU754zBYommWbq pNOZAsG3Kae2kha2EyFH6SO5FjL4XxzJFIqPIWjHK0BTZYW9bSshZ8N2BjjcWspc8EnQ2VA xTifoRuH00AhA1K7RTAEtgbkOt97UoS3icnWNHVwij6Of5gOtUf35Bo3kQD3kuqSAdijDD2 eRNsE0KqS7Kz56yfdEgoMn46oQzcKAEiFZrSx8OhuVtt8MLzo0mim0DUCaBdp3JQD28wb6n c7H59rk7Fmj8g16gRmdHBN5FRnL4jM3CWMO7GHmpk/4lL2HySZ2vr9rygH8o/0D2KfZdpf5 pImRehWgsbSdjaHJXdNxDnCCfdjKYIzs+XQBxEjvmoOlgVboJSw5pWlT4u/KRGf9Xpoixkk 64XIAiUDpnAIprQZteJVMH79XCHTmvzSpdAS5T923Bg= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 5797083568533757477 Date: Thu, 20 Apr 2023 10:11:37 +0800 From: "juzhe.zhong@rivai.ai" To: collison , gcc-patches Cc: jeffreyalaw , Kito.cheng , kito.cheng , palmer , palmer , "Richard Biener" Subject: Re: [PATCH v4 04/10] RISC-V:autovec: Add target vectorization hooks References: <20230417183701.2249183-1-collison@rivosinc.com>, <20230417183701.2249183-5-collison@rivosinc.com> X-Priority: 3 X-GUID: B08BD8C8-457D-4617-9E3E-532D0CCB2598 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <36D3D1F00B8D77BF+2023042010113663427019@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart560806431254_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,RCVD_IN_SORBS_WEB,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID,T_SCC_BODY_TEXT_LINE 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: This is a multi-part message in MIME format. ------=_001_NextPart560806431254_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 SGksIE1pY2hhZWwuIFRoYW5rcyBmb3IgZXh0cmFjdGluZyBwYXRjaGVzIGZy b20gInJ2di1uZXh0Ii4gSSBoYXZlIHNldmVyYWwgY29tbWVudHMgaGVyZToN Cg0KMS4gSSB0aGluayBpdCdzIG5vdCBhcHByb3ByaWF0ZSBhbmQgdXNlbGVz cyB0byBzdXBwb3J0IHN1Y2ggbWFueSB0YXJnZXQgaG9vayBpbiB0aGUgZmly c3QgYXV0by12ZWMgc3VwcG9ydCBwYXRjaC4NCg0KICAgWW91IHNob3VsZCBv bmx5IHN1cHBvcnQgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURfU0lNRF9N T0RFIGlzIGVub3VnaCwgc3VwcG9ydGluZyB0b28gbWFueQ0KICAgdXNlbGVz cyB0YXJnZXQgaG9vayB3aWxsIG1ha2UgcGF0Y2ggdG9vIG1lc3N5IGFuZCBu b3QgZWFzeSB0byB0cmFjZS4NCg0KMi4gVEFSR0VUX0VTVElNQVRFRF9QT0xZ X1ZBTFVFIHNpbmNlIGl0J3MgY3VycmVudGx5IG5vdCB1c2VkLiANCjMuIFRB UkdFVF9BVVRPVkVDVE9SSVpFX1ZFQ1RPUl9NT0RFUyBpdCdzIG5vdCB1c2Vk IGluIHRoZSBmaXJzdCBwYXRjaC4NCjQuICBUQVJHRVRfVkVDVE9SSVpFX0dF VF9NQVNLX01PREUgJiYgVEFSR0VUX1ZFQ1RPUklaRV9FTVBUWV9NQVNLX0lT X0VYUEVOU0lWRSBpcyB1c2VkIHRvDQogICAgc3BlY2lmeSB0aGUgbWFzayBt b2RlIGZvciBXSElMRV9VTFQgYW5kIGNvbXBhcmlzb24gcmVzdWx0Lg0KICAg IFRoZXNlIDIgdGFyZ2V0IGhvb2sgYXJlIG5vdCB1c2VkIHdoZW4geW91IGRv bid0IGltcGxlbWVudCBXSElMRV9VTFQvVkNPTkQvVkVDX0NNUC8uLi4uIHBh dHRlcm4uDQo1LiBUQVJHRVRfVkVDVE9SSVpFX0xPT1BfTEVOX09WRVJSSURF X01BU0sgaXMgdGhlIHRhcmdldCBob29rIEkgYWRkZWQgaW4gcnZ2LW5leHQs IGl0J3Mgbm90IGV4aXN0ZWQgaW4gdGhlIHVwc3RyZWFtIEdDQy4NCiAgICBZ b3Ugc2hvdWxkIG5vdCBhZGQgaXQgd2hlbiBJIGRpZG4ndCBzdXBwb3J0IGl0 IHlldCBpbiB1cHN0cmVhbSBHQ0MuDQoNCi4uLi5ldGMuDQoNClNvLCB0aGUg YmFzaWMgaWRlYSBpcyB0aGF0IHlvdSBzaG91bGQgb25seSBUQVJHRVRfVkVD VE9SSVpFX1BSRUZFUlJFRF9TSU1EX01PREUgaW4gdGhlIGZpcnN0IGVuYWJs aW5nIGJhc2ljIGF1dG8tdmVjdG9yaXphdGlvbiBwYXRjaC4NCkl0IHNob3Vs ZCBiZSBlbm91Z2ggd2hlbiB3ZSBvbmx5IGltcGxlbWVudCBzaW1wbGUgbGVu X2xvYWQvbGVuX3N0b3JlLg0KDQpJIGhhdmUgc2VudCB0aGUgcGF0Y2g6IA0K aHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2NjLXBhdGNoZXMvMjAy My1BcHJpbC82MTYyMjMuaHRtbCB0byBpbml0aWFsIGJhc2ljIGF1dG8tdmVj dG9yaXphdGlvbi4NCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpG cm9tOiBNaWNoYWVsIENvbGxpc29uDQpEYXRlOiAyMDIzLTA0LTE4IDAyOjM2 DQpUbzogZ2NjLXBhdGNoZXMNClN1YmplY3Q6IFtQQVRDSCB2NCAwNC8xMF0g UklTQy1WOmF1dG92ZWM6IEFkZCB0YXJnZXQgdmVjdG9yaXphdGlvbiBob29r cw0KMjAyMy0wMy0wMiAgTWljaGFlbCBDb2xsaXNvbiAgPGNvbGxpc29uQHJp dm9zaW5jLmNvbT4NCiAgICBKdXpoZSBaaG9uZyAgPGp1emhlLnpob25nQHJp dmFpLmFpPg0KIA0KKiBjb25maWcvcmlzY3YvcmlzY3YuY2MgKHJpc2N2X29w dGlvbl9vdmVycmlkZSk6DQpTZXQgcmlzY3ZfdmVjdG9yaXphdGlvbl9mYWN0 b3IuDQoocmlzY3ZfZXN0aW1hdGVkX3BvbHlfdmFsdWUpOiBJbXBsZW1lbnQN ClRBUkdFVF9FU1RJTUFURURfUE9MWV9WQUxVRS4NCihyaXNjdl9wcmVmZXJy ZWRfc2ltZF9tb2RlKTogSW1wbGVtZW50DQpUQVJHRVRfVkVDVE9SSVpFX1BS RUZFUlJFRF9TSU1EX01PREUuDQoocmlzY3ZfYXV0b3ZlY3Rvcml6ZV92ZWN0 b3JfbW9kZXMpOiBJbXBsZW1lbnQNClRBUkdFVF9BVVRPVkVDVE9SSVpFX1ZF Q1RPUl9NT0RFUy4NCihyaXNjdl9nZXRfbWFza19tb2RlKTogSW1wbGVtZW50 IFRBUkdFVF9WRUNUT1JJWkVfR0VUX01BU0tfTU9ERS4NCihyaXNjdl9lbXB0 eV9tYXNrX2lzX2V4cGVuc2l2ZSk6IEltcGxlbWVudA0KVEFSR0VUX1ZFQ1RP UklaRV9FTVBUWV9NQVNLX0lTX0VYUEVOU0lWRS4NCihyaXNjdl92ZWN0b3Jp emVfY3JlYXRlX2Nvc3RzKTogSW1wbGVtZW50DQpUQVJHRVRfVkVDVE9SSVpF X0NSRUFURV9DT1NUUy4NCihUQVJHRVRfRVNUSU1BVEVEX1BPTFlfVkFMVUUp OiBSZWdpc3RlciB0YXJnZXQgbWFjcm8uDQooVEFSR0VUX1ZFQ1RPUklaRV9Q UkVGRVJSRURfU0lNRF9NT0RFKTogRGl0dG8uDQooVEFSR0VUX1ZFQ1RPUkla RV9BVVRPVkVDVE9SSVpFX1ZFQ1RPUl9NT0RFUyk6IERpdHRvLg0KKFRBUkdF VF9WRUNUT1JJWkVfR0VUX01BU0tfTU9ERSk6IERpdHRvLg0KKFRBUkdFVF9W RUNUT1JJWkVfRU1QVFlfTUFTS19JU19FWFBFTlNJVkUpOiBEaXR0by4NCihU QVJHRVRfVkVDVE9SSVpFX0xPT1BfTEVOX09WRVJSSURFX01BU0spOiBEaXR0 by4NCi0tLQ0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYyB8IDE1NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KMSBmaWxlIGNo YW5nZWQsIDE1NiBpbnNlcnRpb25zKCspDQogDQpkaWZmIC0tZ2l0IGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi5jYyBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YuY2MNCmluZGV4IGRjNDc0MzRmYWM0Li45YWYwNmQ5MjZjZiAxMDA2NDQN Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2MNCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YuY2MNCkBAIC02MCw2ICs2MCwxNSBAQCBhbG9u ZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQ0KI2luY2x1ZGUgIm9wdHMuaCINCiNpbmNsdWRlICJ0bS1jb25zdHJzLmgi DQojaW5jbHVkZSAicnRsLWl0ZXIuaCINCisjaW5jbHVkZSAiZ2ltcGxlLmgi DQorI2luY2x1ZGUgImNmZ2hvb2tzLmgiDQorI2luY2x1ZGUgImNmZ2xvb3Au aCINCisjaW5jbHVkZSAiY2ZncnRsLmgiDQorI2luY2x1ZGUgInNlbC1zY2hl ZC5oIg0KKyNpbmNsdWRlICJmb2xkLWNvbnN0LmgiDQorI2luY2x1ZGUgImdp bXBsZS1pdGVyYXRvci5oIg0KKyNpbmNsdWRlICJnaW1wbGUtZXhwci5oIg0K KyNpbmNsdWRlICJ0cmVlLXZlY3Rvcml6ZXIuaCINCi8qIFRoaXMgZmlsZSBz aG91bGQgYmUgaW5jbHVkZWQgbGFzdC4gICovDQojaW5jbHVkZSAidGFyZ2V0 LWRlZi5oIg0KQEAgLTI3NSw2ICsyODQsOSBAQCBwb2x5X3VpbnQxNiByaXNj dl92ZWN0b3JfY2h1bmtzOw0KLyogVGhlIG51bWJlciBvZiBieXRlcyBpbiBh IHZlY3RvciBjaHVuay4gICovDQp1bnNpZ25lZCByaXNjdl9ieXRlc19wZXJf dmVjdG9yX2NodW5rOw0KKy8qIFByZWZlciB2ZiBmb3IgYXV0by12ZWN0b3Jp emVyLiAgKi8NCit1bnNpZ25lZCByaXNjdl92ZWN0b3JpemF0aW9uX2ZhY3Rv cjsNCisNCi8qIEluZGV4IFIgaXMgdGhlIHNtYWxsZXN0IHJlZ2lzdGVyIGNs YXNzIHRoYXQgY29udGFpbnMgcmVnaXN0ZXIgUi4gICovDQpjb25zdCBlbnVt IHJlZ19jbGFzcyByaXNjdl9yZWdub190b19jbGFzc1tGSVJTVF9QU0VVRE9f UkVHSVNURVJdID0gew0KICAgR1JfUkVHUywgR1JfUkVHUywgR1JfUkVHUywg R1JfUkVHUywNCkBAIC02MzYzLDYgKzYzNzUsMTAgQEAgcmlzY3Zfb3B0aW9u X292ZXJyaWRlICh2b2lkKQ0KICAgLyogQ29udmVydCAtbWFyY2ggdG8gYSBj aHVua3MgY291bnQuICAqLw0KICAgcmlzY3ZfdmVjdG9yX2NodW5rcyA9IHJp c2N2X2NvbnZlcnRfdmVjdG9yX2JpdHMgKCk7DQorDQorICBpZiAoVEFSR0VU X1ZFQ1RPUikNCisgICAgcmlzY3ZfdmVjdG9yaXphdGlvbl9mYWN0b3IgPSBy aXNjdl92ZWN0b3JfbG11bDsNCisNCn0NCi8qIEltcGxlbWVudCBUQVJHRVRf Q09ORElUSU9OQUxfUkVHSVNURVJfVVNBR0UuICAqLw0KQEAgLTcwNTcsNiAr NzA3MywxMjggQEAgcmlzY3ZfZHdhcmZfcG9seV9pbmRldGVybWluYXRlX3Zh bHVlICh1bnNpZ25lZCBpbnQgaSwgdW5zaWduZWQgaW50ICpmYWN0b3IsDQog ICByZXR1cm4gUklTQ1ZfRFdBUkZfVkxFTkI7DQp9DQorLyogSW1wbGVtZW50 IFRBUkdFVF9FU1RJTUFURURfUE9MWV9WQUxVRS4NCisgICBMb29rIGludG8g dGhlIHR1bmluZyBzdHJ1Y3R1cmUgZm9yIGFuIGVzdGltYXRlLg0KKyAgIEtJ TkQgc3BlY2lmaWVzIHRoZSB0eXBlIG9mIHJlcXVlc3RlZCBlc3RpbWF0ZTog bWluLCBtYXggb3IgbGlrZWx5Lg0KKyAgIEZvciBjb3JlcyB3aXRoIGEga25v d24gUlZWIHdpZHRoIGFsbCB0aHJlZSBlc3RpbWF0ZXMgYXJlIHRoZSBzYW1l Lg0KKyAgIEZvciBnZW5lcmljIFJWViB0dW5pbmcgd2Ugd2FudCB0byBkaXN0 aW5ndWlzaCB0aGUgbWF4aW11bSBlc3RpbWF0ZSBmcm9tDQorICAgdGhlIG1p bmltdW0gYW5kIGxpa2VseSBvbmVzLg0KKyAgIFRoZSBsaWtlbHkgZXN0aW1h dGUgaXMgdGhlIHNhbWUgYXMgdGhlIG1pbmltdW0gaW4gdGhhdCBjYXNlIHRv IGdpdmUgYQ0KKyAgIGNvbnNlcnZhdGl2ZSBiZWhhdmlvciBvZiBhdXRvLXZl Y3Rvcml6aW5nIHdpdGggUlZWIHdoZW4gaXQgaXMgYSB3aW4NCisgICBldmVu IGZvciAxMjgtYml0IFJWVi4NCisgICBXaGVuIFJWViB3aWR0aCBpbmZvcm1h dGlvbiBpcyBhdmFpbGFibGUgVkFMLmNvZWZmc1sxXSBpcyBtdWx0aXBsaWVk IGJ5DQorICAgdGhlIG51bWJlciBvZiBWUSBjaHVua3Mgb3ZlciB0aGUgaW5p dGlhbCBBZHZhbmNlZCBTSU1EIDEyOCBiaXRzLiAgKi8NCisNCitzdGF0aWMg SE9TVF9XSURFX0lOVA0KK3Jpc2N2X2VzdGltYXRlZF9wb2x5X3ZhbHVlIChw b2x5X2ludDY0IHZhbCwNCisgICAgIHBvbHlfdmFsdWVfZXN0aW1hdGVfa2lu ZCBraW5kID0gUE9MWV9WQUxVRV9MSUtFTFkpDQorew0KKyAgdW5zaWduZWQg aW50IHdpZHRoX3NvdXJjZSA9IEJJVFNfUEVSX1JJU0NWX1ZFQ1RPUi5pc19j b25zdGFudCAoKQ0KKyAgICA/ICh1bnNpZ25lZCBpbnQpIEJJVFNfUEVSX1JJ U0NWX1ZFQ1RPUi50b19jb25zdGFudCAoKQ0KKyAgICA6ICh1bnNpZ25lZCBp bnQpIFJWVl9TQ0FMQUJMRTsNCisNCisgIC8qIElmIHRoZXJlIGlzIG5vIGNv cmUtc3BlY2lmaWMgaW5mb3JtYXRpb24gdGhlbiB0aGUgbWluaW11bSBhbmQg bGlrZWx5DQorICAgICB2YWx1ZXMgYXJlIGJhc2VkIG9uIDEyOC1iaXQgdmVj dG9ycyBhbmQgdGhlIG1heGltdW0gaXMgYmFzZWQgb24NCisgICAgIHRoZSBh cmNoaXRlY3R1cmFsIG1heGltdW0gb2YgMjA0OCBiaXRzLiAgKi8NCisgIGlm ICh3aWR0aF9zb3VyY2UgPT0gUlZWX1NDQUxBQkxFKQ0KKyAgICBzd2l0Y2gg KGtpbmQpDQorICAgICAgew0KKyAgICAgIGNhc2UgUE9MWV9WQUxVRV9NSU46 DQorICAgICAgY2FzZSBQT0xZX1ZBTFVFX0xJS0VMWToNCisgcmV0dXJuIHZh bC5jb2VmZnNbMF07DQorDQorICAgICAgY2FzZSBQT0xZX1ZBTFVFX01BWDoN CisgcmV0dXJuIHZhbC5jb2VmZnNbMF0gKyB2YWwuY29lZmZzWzFdICogMTU7 DQorICAgICAgfQ0KKw0KKyAgLyogQWxsb3cgQklUU19QRVJfUklTQ1ZfVkVD VE9SIHRvIGJlIGEgYml0bWFzayBvZiBkaWZmZXJlbnQgVkwsIHRyZWF0aW5n IHRoZQ0KKyAgICAgbG93ZXN0IGFzIGxpa2VseS4gIFRoaXMgY291bGQgYmUg bWFkZSBtb3JlIGdlbmVyYWwgaWYgZnV0dXJlIC1tdHVuZQ0KKyAgICAgb3B0 aW9ucyBuZWVkIGl0IHRvIGJlLiAgKi8NCisgIGlmIChraW5kID09IFBPTFlf VkFMVUVfTUFYKQ0KKyAgICB3aWR0aF9zb3VyY2UgPSAxIDw8IGZsb29yX2xv ZzIgKHdpZHRoX3NvdXJjZSk7DQorICBlbHNlDQorICAgIHdpZHRoX3NvdXJj ZSA9IGxlYXN0X2JpdF9od2kgKHdpZHRoX3NvdXJjZSk7DQorDQorICAvKiBJ ZiB0aGUgY29yZSBwcm92aWRlcyB3aWR0aCBpbmZvcm1hdGlvbiwgdXNlIHRo YXQuICAqLw0KKyAgSE9TVF9XSURFX0lOVCBvdmVyXzEyOCA9IHdpZHRoX3Nv dXJjZSAtIDEyODsNCisgIHJldHVybiB2YWwuY29lZmZzWzBdICsgdmFsLmNv ZWZmc1sxXSAqIG92ZXJfMTI4IC8gMTI4Ow0KK30NCisNCisvKiBJbXBsZW1l bnQgVEFSR0VUX1ZFQ1RPUklaRV9QUkVGRVJSRURfU0lNRF9NT0RFLiAgKi8N CisNCitzdGF0aWMgbWFjaGluZV9tb2RlDQorcmlzY3ZfcHJlZmVycmVkX3Np bWRfbW9kZSAoc2NhbGFyX21vZGUgbW9kZSkNCit7DQorICBtYWNoaW5lX21v ZGUgdm1vZGUgPQ0KKyAgICByaXNjdl92ZWN0b3I6OnJpc2N2X3ZlY3Rvcl9w cmVmZXJyZWRfc2ltZF9tb2RlIChtb2RlLA0KKyAgICAgcmlzY3ZfdmVjdG9y aXphdGlvbl9mYWN0b3IpOw0KKyAgaWYgKFZFQ1RPUl9NT0RFX1AgKHZtb2Rl KSkNCisgICAgcmV0dXJuIHZtb2RlOw0KKw0KKyAgcmV0dXJuIHdvcmRfbW9k ZTsNCit9DQorDQorLyogSW1wbGVtZW50IFRBUkdFVF9BVVRPVkVDVE9SSVpF X1ZFQ1RPUl9NT0RFUyBmb3IgUlZWLiAgKi8NCitzdGF0aWMgdW5zaWduZWQg aW50DQorcmlzY3ZfYXV0b3ZlY3Rvcml6ZV92ZWN0b3JfbW9kZXMgKHZlY3Rv cl9tb2RlcyAqbW9kZXMsIGJvb2wpDQorew0KKyAgaWYgKCFUQVJHRVRfVkVD VE9SKQ0KKyAgICByZXR1cm4gMDsNCisNCisgIGlmIChyaXNjdl92ZWN0b3Jp emF0aW9uX2ZhY3RvciA9PSBSVlZfTE1VTDEpDQorICAgIHsNCisgICAgICBt b2Rlcy0+c2FmZV9wdXNoIChWTngxNlFJbW9kZSk7DQorICAgICAgbW9kZXMt PnNhZmVfcHVzaCAoVk54OFFJbW9kZSk7DQorICAgICAgbW9kZXMtPnNhZmVf cHVzaCAoVk54NFFJbW9kZSk7DQorICAgICAgbW9kZXMtPnNhZmVfcHVzaCAo Vk54MlFJbW9kZSk7DQorICAgIH0NCisgIGVsc2UgaWYgKHJpc2N2X3ZlY3Rv cml6YXRpb25fZmFjdG9yID09IFJWVl9MTVVMMikNCisgICAgew0KKyAgICAg IG1vZGVzLT5zYWZlX3B1c2ggKFZOeDMyUUltb2RlKTsNCisgICAgICBtb2Rl cy0+c2FmZV9wdXNoIChWTngxNlFJbW9kZSk7DQorICAgICAgbW9kZXMtPnNh ZmVfcHVzaCAoVk54OFFJbW9kZSk7DQorICAgICAgbW9kZXMtPnNhZmVfcHVz aCAoVk54NFFJbW9kZSk7DQorICAgIH0NCisgIGVsc2UgaWYgKHJpc2N2X3Zl Y3Rvcml6YXRpb25fZmFjdG9yID09IFJWVl9MTVVMNCkNCisgICAgew0KKyAg ICAgIG1vZGVzLT5zYWZlX3B1c2ggKFZOeDY0UUltb2RlKTsNCisgICAgICBt b2Rlcy0+c2FmZV9wdXNoIChWTngzMlFJbW9kZSk7DQorICAgICAgbW9kZXMt PnNhZmVfcHVzaCAoVk54MTZRSW1vZGUpOw0KKyAgICAgIG1vZGVzLT5zYWZl X3B1c2ggKFZOeDhRSW1vZGUpOw0KKyAgICB9DQorICBlbHNlDQorICAgIHsN CisgICAgICBtb2Rlcy0+c2FmZV9wdXNoIChWTng2NFFJbW9kZSk7DQorICAg ICAgbW9kZXMtPnNhZmVfcHVzaCAoVk54MzJRSW1vZGUpOw0KKyAgICAgIG1v ZGVzLT5zYWZlX3B1c2ggKFZOeDE2UUltb2RlKTsNCisgICAgfQ0KKw0KKyAg cmV0dXJuIDA7DQorfQ0KKw0KKy8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9S SVpFX0dFVF9NQVNLX01PREUuICAqLw0KKw0KK3N0YXRpYyBvcHRfbWFjaGlu ZV9tb2RlDQorcmlzY3ZfZ2V0X21hc2tfbW9kZSAobWFjaGluZV9tb2RlIG1v ZGUpDQorew0KKyAgbWFjaGluZV9tb2RlIG1hc2tfbW9kZSA9IFZPSURtb2Rl Ow0KKyAgaWYgKFRBUkdFVF9WRUNUT1INCisgICAgICAmJiByaXNjdl92ZWN0 b3I6OnJpc2N2X3ZlY3Rvcl9nZXRfbWFza19tb2RlIChtb2RlKS5leGlzdHMg KCZtYXNrX21vZGUpKQ0KKyAgICByZXR1cm4gbWFza19tb2RlOw0KKw0KKyAg cmV0dXJuIGRlZmF1bHRfZ2V0X21hc2tfbW9kZSAobW9kZSk7DQorfQ0KKw0K Ky8qIEltcGxlbWVudCBUQVJHRVRfVkVDVE9SSVpFX0VNUFRZX01BU0tfSVNf RVhQRU5TSVZFLiAgQXNzdW1lIGZvciBub3cgdGhhdA0KKyAgIGl0IGlzbid0 IHdvcnRoIGJyYW5jaGluZyBhcm91bmQgZW1wdHkgbWFza2VkIG9wcyAoaW5j bHVkaW5nIG1hc2tlZA0KKyAgIHN0b3JlcykuICAqLw0KKw0KK3N0YXRpYyBi b29sDQorcmlzY3ZfZW1wdHlfbWFza19pc19leHBlbnNpdmUgKHVuc2lnbmVk KQ0KK3sNCisgIHJldHVybiBmYWxzZTsNCit9DQorDQovKiBSZXR1cm4gdHJ1 ZSBpZiBhIHNoaWZ0LWFtb3VudCBtYXRjaGVzIHRoZSB0cmFpbGluZyBjbGVh cmVkIGJpdHMgb24NCiAgICBhIGJpdG1hc2suICAqLw0KQEAgLTczODIsNiAr NzUyMCwyNCBAQCByaXNjdl96ZXJvX2NhbGxfdXNlZF9yZWdzIChIQVJEX1JF R19TRVQgbmVlZF96ZXJvZWRfaGFyZHJlZ3MpDQojdW5kZWYgVEFSR0VUX1ZF UklGWV9UWVBFX0NPTlRFWFQNCiNkZWZpbmUgVEFSR0VUX1ZFUklGWV9UWVBF X0NPTlRFWFQgcmlzY3ZfdmVyaWZ5X3R5cGVfY29udGV4dA0KKyN1bmRlZiBU QVJHRVRfRVNUSU1BVEVEX1BPTFlfVkFMVUUNCisjZGVmaW5lIFRBUkdFVF9F U1RJTUFURURfUE9MWV9WQUxVRSByaXNjdl9lc3RpbWF0ZWRfcG9seV92YWx1 ZQ0KKw0KKyN1bmRlZiBUQVJHRVRfVkVDVE9SSVpFX1BSRUZFUlJFRF9TSU1E X01PREUNCisjZGVmaW5lIFRBUkdFVF9WRUNUT1JJWkVfUFJFRkVSUkVEX1NJ TURfTU9ERSByaXNjdl9wcmVmZXJyZWRfc2ltZF9tb2RlDQorDQorI3VuZGVm IFRBUkdFVF9WRUNUT1JJWkVfQVVUT1ZFQ1RPUklaRV9WRUNUT1JfTU9ERVMN CisjZGVmaW5lIFRBUkdFVF9WRUNUT1JJWkVfQVVUT1ZFQ1RPUklaRV9WRUNU T1JfTU9ERVMgcmlzY3ZfYXV0b3ZlY3Rvcml6ZV92ZWN0b3JfbW9kZXMNCisN CisjdW5kZWYgVEFSR0VUX1ZFQ1RPUklaRV9HRVRfTUFTS19NT0RFDQorI2Rl ZmluZSBUQVJHRVRfVkVDVE9SSVpFX0dFVF9NQVNLX01PREUgcmlzY3ZfZ2V0 X21hc2tfbW9kZQ0KKw0KKyN1bmRlZiBUQVJHRVRfVkVDVE9SSVpFX0VNUFRZ X01BU0tfSVNfRVhQRU5TSVZFDQorI2RlZmluZSBUQVJHRVRfVkVDVE9SSVpF X0VNUFRZX01BU0tfSVNfRVhQRU5TSVZFIHJpc2N2X2VtcHR5X21hc2tfaXNf ZXhwZW5zaXZlDQorDQorI3VuZGVmIFRBUkdFVF9WRUNUT1JJWkVfTE9PUF9M RU5fT1ZFUlJJREVfTUFTSw0KKyNkZWZpbmUgVEFSR0VUX1ZFQ1RPUklaRV9M T09QX0xFTl9PVkVSUklERV9NQVNLIHJpc2N2X2xvb3BfbGVuX292ZXJyaWRl X21hc2sNCisNCiN1bmRlZiBUQVJHRVRfVkVDVE9SX0FMSUdOTUVOVA0KI2Rl ZmluZSBUQVJHRVRfVkVDVE9SX0FMSUdOTUVOVCByaXNjdl92ZWN0b3JfYWxp Z25tZW50DQotLSANCjIuMzQuMQ0K ------=_001_NextPart560806431254_=------