From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 78576 invoked by alias); 1 Jun 2016 10:46:28 -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 78561 invoked by uid 89); 1 Jun 2016 10:46:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=rank, H*r:10.1.1, commonly, HX-Received:10.98.20.5 X-HELO: mail-pf0-f176.google.com Received: from mail-pf0-f176.google.com (HELO mail-pf0-f176.google.com) (209.85.192.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 01 Jun 2016 10:46:16 +0000 Received: by mail-pf0-f176.google.com with SMTP id b124so13133657pfb.0 for ; Wed, 01 Jun 2016 03:46:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version; bh=KrwRscOvb7/A45MdNk87YGKUjrE8VMQAKj0K8662TZA=; b=b7tptW/N4BcAoelwVqr+7DKCdZ5hmZnpmZ1kxw12QhyyoChMBPXxux5vuWwqJvANu6 pd4P9gBnDYv4sOUyj4spcYhhYMBKpEhK+RJyo9FwNi5fmLeEKNDw+UWU9xt6yu63F1Mf fbstquw99P0cceb3E5d6XyN/mHSlYfOx7/yFFJyDtXVTnUCvf55UBrWQqtOKcrW5kGYI l8mZbxjcEBokxUgeVVosetZeHOWiHzmNF0X0JkpUVvfZvXKOwG/T4k0zlSt0JPbZVMbb KyXlF+eUz7eHaBAwWd6r5VAI3JcV+KygILA5xWTfLbKsFjhrKnjSROT1sVpU60wDNi3G L7PQ== X-Gm-Message-State: ALyK8tIHeIEEQYmIOhpoHV2m21KcQmCBsdLRANIMLpcE4pcZzE1S3ozsLuHyKJy30snMMSwy X-Received: by 10.98.20.5 with SMTP id 5mr7429151pfu.144.1464777974520; Wed, 01 Jun 2016 03:46:14 -0700 (PDT) Received: from [10.1.1.13] (58-6-183-210.dyn.iinet.net.au. [58.6.183.210]) by smtp.gmail.com with ESMTPSA id g82sm47147234pfj.22.2016.06.01.03.46.12 for (version=TLSv1/SSLv3 cipher=OTHER); Wed, 01 Jun 2016 03:46:13 -0700 (PDT) To: "gcc-patches@gcc.gnu.org" From: kugan Subject: [PR66726] Fix regression caused by Factor conversion out of COND_EXPR Message-ID: <574EBCEC.70805@linaro.org> Date: Wed, 01 Jun 2016 10:46:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.8.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010906020608040404080106" X-IsSubscribed: yes X-SW-Source: 2016-06/txt/msg00028.txt.bz2 This is a multi-part message in MIME format. --------------010906020608040404080106 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 3248 Hi All, Factoring out CONVERT_EXPR introduced a regression for (PR66726). I had to revert my previous patch due to some regressions. This is a much simplified version compared to the one I reverted. There is a test-case (pr46309.c) in the test-suite which is valid for targets that has branch cost greater than 1. This patch makes optimize_range_tests understand the factored out COND_EXPR. i.e., Updated the final_range_test_p to look for the new pattern. Changed the maybe_optimize_range_tests (which does the inter basic block range test optimization) accordingly. With the patch m68k-linux-gnu-gcc -O2 -S pr46309.c -fdump-tree-reassoc-details grep -e "Optimizing range tests" -e into pr46309.c.*.reassoc1pr46309.c.114t.reassoc1:Optimizing range tests a_6(D) -[1, 1] and -[2, 2] and -[3, 3] and -[4, 4] pr46309.c.114t.reassoc1: into (unsigned int) a_6(D) + 4294967295 > 3 pr46309.c.114t.reassoc1: into _10 = _13; pr46309.c.114t.reassoc1:Optimizing range tests a_6(D) -[1, 1] and -[2, 2] and -[3, 3] and -[4, 4] pr46309.c.114t.reassoc1: into (unsigned int) a_6(D) + 4294967295 > 3 pr46309.c.114t.reassoc1: into _10 = _13; pr46309.c.114t.reassoc1:Optimizing range tests a_4(D) -[1, 1] and -[3, 3] pr46309.c.114t.reassoc1: into (a_4(D) & -3) != 1 pr46309.c.114t.reassoc1: into _6 = _8; pr46309.c.114t.reassoc1:Optimizing range tests a_4(D) -[1, 1] and -[2, 2] pr46309.c.114t.reassoc1: into (unsigned int) a_4(D) + 4294967295 > 1 pr46309.c.114t.reassoc1: into _6 = _9; pr46309.c.114t.reassoc1:Optimizing range tests a_5(D) -[0, 31] and -[64, 95] pr46309.c.114t.reassoc1: into (a_5(D) & 4294967231) > 31 pr46309.c.114t.reassoc1: into _7 = _9; pr46309.c.114t.reassoc1:Optimizing range tests a_9(D) -[0, 31] and -[64, 95] pr46309.c.114t.reassoc1: into (a_9(D) & 4294967231) > 31 pr46309.c.114t.reassoc1:Optimizing range tests a_9(D) -[128, 159] and -[192, 223] pr46309.c.114t.reassoc1: into (a_9(D) & 4294967231) + 4294967168 > 31 pr46309.c.114t.reassoc1: into _13 = _18 | _15; pr46309.c.116t.reassoc1:Optimizing range tests a_2(D) -[1, 1] and -[2, 2] and -[3, 3] and -[4, 4] pr46309.c.116t.reassoc1: into (unsigned int) a_2(D) + 4294967295 > 3 pr46309.c.116t.reassoc1:Optimizing range tests a_2(D) -[1, 1] and -[2, 2] and -[3, 3] and -[4, 4] pr46309.c.116t.reassoc1: into (unsigned int) a_2(D) + 4294967295 > 3 pr46309.c.116t.reassoc1:Optimizing range tests a_3(D) -[0, 31] and -[64, 95] pr46309.c.116t.reassoc1: into (a_3(D) & 4294967231) > 31 pr46309.c.116t.reassoc1:Optimizing range tests a_5(D) -[0, 31] and -[64, 95] pr46309.c.116t.reassoc1: into (a_5(D) & 4294967231) > 31 pr46309.c.116t.reassoc1:Optimizing range tests a_5(D) -[128, 159] and -[192, 223] pr46309.c.116t.reassoc1: into (a_5(D) & 4294967231) + 4294967168 > 31 Bootstrapped and regression testing on x86-64-linux-gnu and ppc64le-linux-gnu doesn't have any new regressions. Also did regression testing arm variants which has branch cost greater than 1 Is this OK for trunk. Thanks, Kugan gcc/ChangeLog: 2016-06-01 Kugan Vivekanandarajah PR middle-end/66726 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt whose result is used in PHI (final_range_test_p): Likewise. (maybe_optimize_range_tests): Likewise. --------------010906020608040404080106 Content-Type: text/plain; charset=UTF-8; name="PR66726_2.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="PR66726_2.txt" Content-length: 8288 ZGlmZiAtLWdpdCBhL2djYy90cmVlLXNzYS1yZWFzc29jLmMgYi9nY2MvdHJl ZS1zc2EtcmVhc3NvYy5jCmluZGV4IDQzMGJjYzguLjg1MWFlNmQgMTAwNjQ0 Ci0tLSBhL2djYy90cmVlLXNzYS1yZWFzc29jLmMKKysrIGIvZ2NjL3RyZWUt c3NhLXJlYXNzb2MuYwpAQCAtMzAwNywxOCArMzAwNywzMyBAQCBvcHRpbWl6 ZV92ZWNfY29uZF9leHByICh0cmVlX2NvZGUgb3Bjb2RlLCB2ZWM8b3BlcmFu ZF9lbnRyeSAqPiAqb3BzKQogICAgIyBfMzQ1ID0gUEhJIDxfMTIzKE4pLCAx KC4uLiksIDEoLi4uKT4KICAgIHdoZXJlIF8yMzQgaGFzIGJvb2wgdHlwZSwg XzEyMyBoYXMgc2luZ2xlIHVzZSBhbmQKICAgIGJiIE4gaGFzIGEgc2luZ2xl IHN1Y2Nlc3NvciBNLiAgVGhpcyBpcyBjb21tb25seSB1c2VkIGluCisgICB0 aGUgbGFzdCBibG9jayBvZiBhIHJhbmdlIHRlc3QuCisKKyAgIEFsc28gUmV0 dXJuIHRydWUgaWYgU1RNVCBpcyB0Y2NfY29tcGFyZSBsaWtlOgorICAgPGJi IE4+OgorICAgLi4uCisgICBfMjM0ID0gYV8yKEQpID09IDI7CisKKyAgIDxi YiBNPjoKKyAgICMgXzM0NSA9IFBISSA8XzIzNChOKSwgMSguLi4pLCAxKC4u Lik+CisgICBfMzQ2ID0gKGludCkgXzM0NTsKKyAgIHdoZXJlIF8yMzQgaGFz IGJvb2x0eXBlLCBzaW5nbGUgdXNlIGFuZAorICAgYmIgTiBoYXMgYSBzaW5n bGUgc3VjY2Vzc29yIE0uICBUaGlzIGlzIGNvbW1vbmx5IHVzZWQgaW4KICAg IHRoZSBsYXN0IGJsb2NrIG9mIGEgcmFuZ2UgdGVzdC4gICovCiAKIHN0YXRp YyBib29sCiBmaW5hbF9yYW5nZV90ZXN0X3AgKGdpbXBsZSAqc3RtdCkKIHsK LSAgYmFzaWNfYmxvY2sgYmIsIHJoc19iYjsKKyAgYmFzaWNfYmxvY2sgYmIs IHJoc19iYiwgbGhzX2JiOwogICBlZGdlIGU7CiAgIHRyZWUgbGhzLCByaHM7 CiAgIHVzZV9vcGVyYW5kX3AgdXNlX3A7CiAgIGdpbXBsZSAqdXNlX3N0bXQ7 CiAKLSAgaWYgKCFnaW1wbGVfYXNzaWduX2Nhc3RfcCAoc3RtdCkpCisgIGlm ICghZ2ltcGxlX2Fzc2lnbl9jYXN0X3AgKHN0bXQpCisgICAgICAmJiAoIWlz X2dpbXBsZV9hc3NpZ24gKHN0bXQpCisJICB8fCAoVFJFRV9DT0RFX0NMQVNT IChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChzdG10KSkKKwkgICAgICAhPSB0 Y2NfY29tcGFyaXNvbikpKQogICAgIHJldHVybiBmYWxzZTsKICAgYmIgPSBn aW1wbGVfYmIgKHN0bXQpOwogICBpZiAoIXNpbmdsZV9zdWNjX3AgKGJiKSkK QEAgLTMwMjksMTEgKzMwNDQsMTYgQEAgZmluYWxfcmFuZ2VfdGVzdF9wIChn aW1wbGUgKnN0bXQpCiAKICAgbGhzID0gZ2ltcGxlX2Fzc2lnbl9saHMgKHN0 bXQpOwogICByaHMgPSBnaW1wbGVfYXNzaWduX3JoczEgKHN0bXQpOwotICBp ZiAoIUlOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChsaHMpKQotICAgICAg fHwgVFJFRV9DT0RFIChyaHMpICE9IFNTQV9OQU1FCi0gICAgICB8fCBUUkVF X0NPREUgKFRSRUVfVFlQRSAocmhzKSkgIT0gQk9PTEVBTl9UWVBFKQorICBp ZiAoZ2ltcGxlX2Fzc2lnbl9jYXN0X3AgKHN0bXQpCisgICAgICAmJiAoIUlO VEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChsaHMpKQorCSAgfHwgVFJFRV9D T0RFIChyaHMpICE9IFNTQV9OQU1FCisJICB8fCBUUkVFX0NPREUgKFRSRUVf VFlQRSAocmhzKSkgIT0gQk9PTEVBTl9UWVBFKSkKICAgICByZXR1cm4gZmFs c2U7CiAKKyAgaWYgKCFnaW1wbGVfYXNzaWduX2Nhc3RfcCAoc3RtdCkKKyAg ICAgICYmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAobGhzKSkgIT0gQk9PTEVB Tl9UWVBFKSkKKyAgICAgIHJldHVybiBmYWxzZTsKKwogICAvKiBUZXN0IHdo ZXRoZXIgbGhzIGlzIGNvbnN1bWVkIG9ubHkgYnkgYSBQSEkgaW4gdGhlIG9u bHkgc3VjY2Vzc29yIGJiLiAgKi8KICAgaWYgKCFzaW5nbGVfaW1tX3VzZSAo bGhzLCAmdXNlX3AsICZ1c2Vfc3RtdCkpCiAgICAgcmV0dXJuIGZhbHNlOwpA QCAtMzA0MywxMCArMzA2MywyMCBAQCBmaW5hbF9yYW5nZV90ZXN0X3AgKGdp bXBsZSAqc3RtdCkKICAgICByZXR1cm4gZmFsc2U7CiAKICAgLyogQW5kIHRo YXQgdGhlIHJocyBpcyBkZWZpbmVkIGluIHRoZSBzYW1lIGxvb3AuICAqLwot ICByaHNfYmIgPSBnaW1wbGVfYmIgKFNTQV9OQU1FX0RFRl9TVE1UIChyaHMp KTsKLSAgaWYgKHJoc19iYiA9PSBOVUxMCi0gICAgICB8fCAhZmxvd19iYl9p bnNpZGVfbG9vcF9wIChsb29wX2NvbnRhaW5pbmdfc3RtdCAoc3RtdCksIHJo c19iYikpCi0gICAgcmV0dXJuIGZhbHNlOworICBpZiAoZ2ltcGxlX2Fzc2ln bl9jYXN0X3AgKHN0bXQpKQorICAgIHsKKyAgICAgIGlmIChUUkVFX0NPREUg KHJocykgIT0gU1NBX05BTUUKKwkgIHx8ICEocmhzX2JiID0gZ2ltcGxlX2Ji IChTU0FfTkFNRV9ERUZfU1RNVCAocmhzKSkpCisJICB8fCAhZmxvd19iYl9p bnNpZGVfbG9vcF9wIChsb29wX2NvbnRhaW5pbmdfc3RtdCAoc3RtdCksIHJo c19iYikpCisJcmV0dXJuIGZhbHNlOworICAgIH0KKyAgZWxzZQorICAgIHsK KyAgICAgIGlmIChUUkVFX0NPREUgKGxocykgIT0gU1NBX05BTUUKKwkgIHx8 ICEobGhzX2JiID0gZ2ltcGxlX2JiIChTU0FfTkFNRV9ERUZfU1RNVCAobGhz KSkpCisJICB8fCAhZmxvd19iYl9pbnNpZGVfbG9vcF9wIChsb29wX2NvbnRh aW5pbmdfc3RtdCAoc3RtdCksIGxoc19iYikpCisJcmV0dXJuIGZhbHNlOwor ICAgIH0KIAogICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTM0NDAsNiArMzQ3MCw4 IEBAIG1heWJlX29wdGltaXplX3JhbmdlX3Rlc3RzIChnaW1wbGUgKnN0bXQp CiAKIAkgIC8qIHN0bXQgaXMKIAkgICAgIF8xMjMgPSAoaW50KSBfMjM0Owor CSAgICAgT1IKKwkgICAgIF8yMzQgPSBhXzIoRCkgPT0gMjsKIAogCSAgICAg Zm9sbG93ZWQgYnk6CiAJICAgICA8YmIgTT46CkBAIC0zNDY5LDYgKzM1MDEs OCBAQCBtYXliZV9vcHRpbWl6ZV9yYW5nZV90ZXN0cyAoZ2ltcGxlICpzdG10 KQogCSAgICAgb2YgdGhlIGJpdHdpc2Ugb3IgcmVzcC4gYW5kLCByZWN1cnNp dmVseS4gICovCiAJICBpZiAoIWdldF9vcHMgKHJocywgY29kZSwgJm9wcywK IAkJCWxvb3BfY29udGFpbmluZ19zdG10IChzdG10KSkKKwkgICAgICAmJiAo VFJFRV9DT0RFX0NMQVNTIChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChzdG10 KSkKKwkJICAhPSB0Y2NfY29tcGFyaXNvbikKIAkgICAgICAmJiBoYXNfc2lu Z2xlX3VzZSAocmhzKSkKIAkgICAgewogCSAgICAgIC8qIE90aGVyd2lzZSwg cHVzaCB0aGUgXzIzNCByYW5nZSB0ZXN0IGl0c2VsZi4gICovCkBAIC0zNDgx LDEwICszNTE1LDM2IEBAIG1heWJlX29wdGltaXplX3JhbmdlX3Rlc3RzIChn aW1wbGUgKnN0bXQpCiAJICAgICAgb2UtPnN0bXRfdG9faW5zZXJ0ID0gTlVM TDsKIAkgICAgICBvcHMuc2FmZV9wdXNoIChvZSk7CiAJICAgICAgYmJfZW50 Lmxhc3RfaWR4Kys7CisJICAgICAgYmJfZW50Lm9wID0gcmhzOworCSAgICB9 CisJICBlbHNlIGlmIChpc19naW1wbGVfYXNzaWduIChzdG10KQorCQkgICAm JiAoVFJFRV9DT0RFX0NMQVNTIChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChz dG10KSkKKwkJICAgICAgID09IHRjY19jb21wYXJpc29uKSkKKwkgICAgewor CSAgICAgIGlmICghZ2V0X29wcyAobGhzLCBjb2RlLCAmb3BzLAorCQkJICAg IGxvb3BfY29udGFpbmluZ19zdG10IChzdG10KSkKKwkJICAmJiBoYXNfc2lu Z2xlX3VzZSAocmhzKSkKKwkJeworCQkgIG9wZXJhbmRfZW50cnkgKm9lID0g b3BlcmFuZF9lbnRyeV9wb29sLmFsbG9jYXRlICgpOworCQkgIG9lLT5vcCA9 IGxoczsKKwkJICBvZS0+cmFuayA9IGNvZGU7CisJCSAgb2UtPmlkID0gMDsK KwkJICBvZS0+Y291bnQgPSAxOworCQkgIG9wcy5zYWZlX3B1c2ggKG9lKTsK KwkJICBiYl9lbnQubGFzdF9pZHgrKzsKKwkJICBiYl9lbnQub3AgPSBsaHM7 CisJCX0KKwkgICAgICBlbHNlCisJCXsKKwkJICBiYl9lbnQubGFzdF9pZHgg PSBvcHMubGVuZ3RoICgpOworCQkgIGJiX2VudC5vcCA9IHJoczsKKwkJfQog CSAgICB9CiAJICBlbHNlCi0JICAgIGJiX2VudC5sYXN0X2lkeCA9IG9wcy5s ZW5ndGggKCk7Ci0JICBiYl9lbnQub3AgPSByaHM7CisJICAgIHsKKwkgICAg ICBiYl9lbnQubGFzdF9pZHggPSBvcHMubGVuZ3RoICgpOworCSAgICAgIGJi X2VudC5vcCA9IHJoczsKKwkgICAgfQogCSAgYmJpbmZvLnNhZmVfcHVzaCAo YmJfZW50KTsKIAkgIGNvbnRpbnVlOwogCX0KQEAgLTM1NjYsNyArMzYyNiw3 IEBAIG1heWJlX29wdGltaXplX3JhbmdlX3Rlc3RzIChnaW1wbGUgKnN0bXQp CiAJCXsKIAkJICBpbW1fdXNlX2l0ZXJhdG9yIGl0ZXI7CiAJCSAgdXNlX29w ZXJhbmRfcCB1c2VfcDsKLQkJICBnaW1wbGUgKnVzZV9zdG10LCAqY2FzdF9z dG10ID0gTlVMTDsKKwkJICBnaW1wbGUgKnVzZV9zdG10LCAqY2FzdF9vcl90 Y2NfY21wX3N0bXQgPSBOVUxMOwogCiAJCSAgRk9SX0VBQ0hfSU1NX1VTRV9T VE1UICh1c2Vfc3RtdCwgaXRlciwgYmJpbmZvW2lkeF0ub3ApCiAJCSAgICBp ZiAoaXNfZ2ltcGxlX2RlYnVnICh1c2Vfc3RtdCkpCkBAIC0zNTc1LDE3ICsz NjM1LDI1IEBAIG1heWJlX29wdGltaXplX3JhbmdlX3Rlc3RzIChnaW1wbGUg KnN0bXQpCiAJCQkgICAgIHx8IGdpbXBsZV9jb2RlICh1c2Vfc3RtdCkgPT0g R0lNUExFX1BISSkKIAkJICAgICAgRk9SX0VBQ0hfSU1NX1VTRV9PTl9TVE1U ICh1c2VfcCwgaXRlcikKIAkJCVNFVF9VU0UgKHVzZV9wLCBuZXdfb3ApOwor CQkgICAgZWxzZSBpZiAoKGlzX2dpbXBsZV9hc3NpZ24gKHVzZV9zdG10KQor CQkJICAgICAgJiYgKFRSRUVfQ09ERV9DTEFTUworCQkJCSAgKGdpbXBsZV9h c3NpZ25fcmhzX2NvZGUgKHVzZV9zdG10KSkKKwkJCQkgID09IHRjY19jb21w YXJpc29uKSkpCisJCSAgICAgIGNhc3Rfb3JfdGNjX2NtcF9zdG10ID0gdXNl X3N0bXQ7CiAJCSAgICBlbHNlIGlmIChnaW1wbGVfYXNzaWduX2Nhc3RfcCAo dXNlX3N0bXQpKQotCQkgICAgICBjYXN0X3N0bXQgPSB1c2Vfc3RtdDsKKwkJ ICAgICAgY2FzdF9vcl90Y2NfY21wX3N0bXQgPSB1c2Vfc3RtdDsKIAkJICAg IGVsc2UKIAkJICAgICAgZ2NjX3VucmVhY2hhYmxlICgpOwotCQkgIGlmIChj YXN0X3N0bXQpCisKKwkJICBpZiAoY2FzdF9vcl90Y2NfY21wX3N0bXQpCiAJ CSAgICB7CiAJCSAgICAgIGdjY19hc3NlcnQgKGJiID09IGxhc3RfYmIpOwot CQkgICAgICB0cmVlIGxocyA9IGdpbXBsZV9hc3NpZ25fbGhzIChjYXN0X3N0 bXQpOworCQkgICAgICB0cmVlIGxocyA9IGdpbXBsZV9hc3NpZ25fbGhzIChj YXN0X29yX3RjY19jbXBfc3RtdCk7CiAJCSAgICAgIHRyZWUgbmV3X2xocyA9 IG1ha2Vfc3NhX25hbWUgKFRSRUVfVFlQRSAobGhzKSk7CiAJCSAgICAgIGVu dW0gdHJlZV9jb2RlIHJoc19jb2RlCi0JCQk9IGdpbXBsZV9hc3NpZ25fcmhz X2NvZGUgKGNhc3Rfc3RtdCk7CisJCQk9IGdpbXBsZV9hc3NpZ25fY2FzdF9w IChjYXN0X29yX3RjY19jbXBfc3RtdCkKKwkJCT8gZ2ltcGxlX2Fzc2lnbl9y aHNfY29kZSAoY2FzdF9vcl90Y2NfY21wX3N0bXQpCisJCQk6IENPTlZFUlRf RVhQUjsKIAkJICAgICAgZ2Fzc2lnbiAqZzsKIAkJICAgICAgaWYgKGlzX2dp bXBsZV9taW5faW52YXJpYW50IChuZXdfb3ApKQogCQkJewpAQCAtMzU5NCw4 ICszNjYyLDkgQEAgbWF5YmVfb3B0aW1pemVfcmFuZ2VfdGVzdHMgKGdpbXBs ZSAqc3RtdCkKIAkJCX0KIAkJICAgICAgZWxzZQogCQkJZyA9IGdpbXBsZV9i dWlsZF9hc3NpZ24gKG5ld19saHMsIHJoc19jb2RlLCBuZXdfb3ApOwotCQkg ICAgICBnaW1wbGVfc3RtdF9pdGVyYXRvciBnc2kgPSBnc2lfZm9yX3N0bXQg KGNhc3Rfc3RtdCk7Ci0JCSAgICAgIGdpbXBsZV9zZXRfdWlkIChnLCBnaW1w bGVfdWlkIChjYXN0X3N0bXQpKTsKKwkJICAgICAgZ2ltcGxlX3N0bXRfaXRl cmF0b3IgZ3NpCisJCQk9IGdzaV9mb3Jfc3RtdCAoY2FzdF9vcl90Y2NfY21w X3N0bXQpOworCQkgICAgICBnaW1wbGVfc2V0X3VpZCAoZywgZ2ltcGxlX3Vp ZCAoY2FzdF9vcl90Y2NfY21wX3N0bXQpKTsKIAkJICAgICAgZ2ltcGxlX3Nl dF92aXNpdGVkIChnLCB0cnVlKTsKIAkJICAgICAgZ3NpX2luc2VydF9iZWZv cmUgKCZnc2ksIGcsIEdTSV9TQU1FX1NUTVQpOwogCQkgICAgICBGT1JfRUFD SF9JTU1fVVNFX1NUTVQgKHVzZV9zdG10LCBpdGVyLCBsaHMpCg== --------------010906020608040404080106--