From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6493 invoked by alias); 8 May 2015 14:59:16 -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 6480 invoked by uid 89); 8 May 2015 14:59:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: mail3-relais-sop.national.inria.fr Received: from mail3-relais-sop.national.inria.fr (HELO mail3-relais-sop.national.inria.fr) (192.134.164.104) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Fri, 08 May 2015 14:59:14 +0000 Received: from stedding.saclay.inria.fr (HELO stedding) ([193.55.250.194]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/AES128-SHA; 08 May 2015 16:59:10 +0200 Received: from glisse (helo=localhost) by stedding with local-esmtp (Exim 4.85) (envelope-from ) id 1Yqjk6-0004rd-42; Fri, 08 May 2015 16:59:10 +0200 Date: Fri, 08 May 2015 14:59:00 -0000 From: Marc Glisse To: Richard Biener cc: GCC Patches Subject: Re: PR 64454: Improve VRP for % In-Reply-To: Message-ID: References: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-750447610-1431097150=:18616" X-SW-Source: 2015-05/txt/msg00680.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-750447610-1431097150=:18616 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-length: 155 Hello, here is a rewrite of the patch, using wide_int, and improving a bit the result. Same ChangeLog, tested again on x86_64-linux-gnu. -- Marc Glisse --8323329-750447610-1431097150=:18616 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p4 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p4 Content-length: 6072 SW5kZXg6IGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ZycDk3LmMN Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBnY2MvdGVzdHN1aXRlL2dj Yy5kZy90cmVlLXNzYS92cnA5Ny5jCShyZXZpc2lvbiAwKQ0KKysrIGdjYy90 ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ZycDk3LmMJKHdvcmtpbmcgY29w eSkNCkBAIC0wLDAgKzEsMTkgQEANCisvKiBQUiB0cmVlLW9wdGltaXphdGlv bi82NDQ1NCAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1mZHVtcC10cmVl LXZycDEiIH0gKi8NCisNCitpbnQgZihpbnQgYSwgaW50IGIpDQorew0KKyAg ICBpZiAoYSA8IC0zIHx8IGEgPiAxMykgX19idWlsdGluX3VucmVhY2hhYmxl KCk7DQorICAgIGlmIChiIDwgLTYgfHwgYiA+IDkpIF9fYnVpbHRpbl91bnJl YWNoYWJsZSgpOw0KKyAgICBpbnQgYyA9IGEgJSBiOw0KKyAgICByZXR1cm4g YyA+PSAtMyAmJiBjIDw9IDg7DQorfQ0KKw0KK2ludCBnKGludCBhLCBpbnQg YikNCit7DQorICBpbnQgYyA9IGEgJSBiOw0KKyAgcmV0dXJuIGMgIT0gLV9f SU5UX01BWF9fIC0gMTsNCit9DQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4t dHJlZS1kdW1wLXRpbWVzICJyZXR1cm4gMTsiIDIgInZycDEiIH0gfSAqLw0K Ky8qIHsgZGctZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAidnJwMSIgfSB9 ICovDQpJbmRleDogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9zbHAtcGVy bS03LmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBnY2MvdGVzdHN1 aXRlL2djYy5kZy92ZWN0L3NscC1wZXJtLTcuYwkocmV2aXNpb24gMjIyOTA2 KQ0KKysrIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qvc2xwLXBlcm0tNy5j CSh3b3JraW5nIGNvcHkpDQpAQCAtNjMsMTUgKzYzLDE1IEBAIGludCBtYWlu IChpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQ0KIA0KICAgZm9vIChp bnB1dCwgb3V0cHV0LCBpbnB1dDIsIG91dHB1dDIpOw0KIA0KICAgZm9yIChp ID0gMDsgaSA8IE47IGkrKykNCiAgICAgIGlmIChvdXRwdXRbaV0gIT0gY2hl Y2tfcmVzdWx0c1tpXSB8fCBvdXRwdXQyW2ldICE9IGNoZWNrX3Jlc3VsdHMy W2ldKQ0KICAgICAgICBhYm9ydCAoKTsNCiANCiAgIHJldHVybiAwOw0KIH0N CiANCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgInZl Y3Rvcml6ZWQgMSBsb29wcyIgMSAidmVjdCIgIHsgdGFyZ2V0IHZlY3RfcGVy bSB9IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10 aW1lcyAidmVjdG9yaXplZCAxIGxvb3BzIiAyICJ2ZWN0IiAgeyB0YXJnZXQg dmVjdF9wZXJtIH0gfSB9ICovDQogLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wLXRpbWVzICJ2ZWN0b3JpemluZyBzdG10cyB1c2luZyBTTFAiIDEg InZlY3QiIHsgdGFyZ2V0IHZlY3RfcGVybSB9IH0gfSAqLw0KIC8qIHsgZGct ZmluYWwgeyBjbGVhbnVwLXRyZWUtZHVtcCAidmVjdCIgfSB9ICovDQogDQog DQpJbmRleDogZ2NjL3RyZWUtdnJwLmMNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCi0tLSBnY2MvdHJlZS12cnAuYwkocmV2aXNpb24gMjIyOTA2KQ0KKysr IGdjYy90cmVlLXZycC5jCSh3b3JraW5nIGNvcHkpDQpAQCAtMzE4OSw0MCAr MzE4OSw3MyBAQCBleHRyYWN0X3JhbmdlX2Zyb21fYmluYXJ5X2V4cHJfMSAo dmFsdWVfDQogCSAgICB9DQogCX0NCiAgICAgICBlbHNlDQogCXsNCiAJICBl eHRyYWN0X3JhbmdlX2Zyb21fbXVsdGlwbGljYXRpdmVfb3BfMSAodnIsIGNv ZGUsICZ2cjAsICZ2cjEpOw0KIAkgIHJldHVybjsNCiAJfQ0KICAgICB9DQog ICBlbHNlIGlmIChjb2RlID09IFRSVU5DX01PRF9FWFBSKQ0KICAgICB7DQot ICAgICAgaWYgKHZyMS50eXBlICE9IFZSX1JBTkdFDQotCSAgfHwgcmFuZ2Vf aW5jbHVkZXNfemVyb19wICh2cjEubWluLCB2cjEubWF4KSAhPSAwDQotCSAg fHwgdnJwX3ZhbF9pc19taW4gKHZyMS5taW4pKQ0KKyAgICAgIGlmIChyYW5n ZV9pc19udWxsICgmdnIxKSkNCiAJew0KLQkgIHNldF92YWx1ZV9yYW5nZV90 b192YXJ5aW5nICh2cik7DQorCSAgc2V0X3ZhbHVlX3JhbmdlX3RvX3VuZGVm aW5lZCAodnIpOw0KIAkgIHJldHVybjsNCiAJfQ0KKyAgICAgIC8vIEFCUyAo QSAlIEIpIDwgQUJTIChCKSBhbmQgZWl0aGVyIDAgPD0gQSAlIEIgPD0gQSBv ciBBIDw9IEEgJSBCIDw9IDAuDQogICAgICAgdHlwZSA9IFZSX1JBTkdFOw0K LSAgICAgIC8qIENvbXB1dGUgTUFYIDx8dnIxLm1pbnwsIHx2cjEubWF4fD4g LSAxLiAgKi8NCi0gICAgICBtYXggPSBmb2xkX3VuYXJ5X3RvX2NvbnN0YW50 IChBQlNfRVhQUiwgZXhwcl90eXBlLCB2cjEubWluKTsNCi0gICAgICBpZiAo dHJlZV9pbnRfY3N0X2x0IChtYXgsIHZyMS5tYXgpKQ0KLQltYXggPSB2cjEu bWF4Ow0KLSAgICAgIG1heCA9IGludF9jb25zdF9iaW5vcCAoTUlOVVNfRVhQ UiwgbWF4LCBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUgKG1heCksIDEpKTsN Ci0gICAgICAvKiBJZiB0aGUgZGl2aWRlbmQgaXMgbm9uLW5lZ2F0aXZlIHRo ZSBtb2R1bHVzIHdpbGwgYmUNCi0JIG5vbi1uZWdhdGl2ZSBhcyB3ZWxsLiAg Ki8NCi0gICAgICBpZiAoVFlQRV9VTlNJR05FRCAoZXhwcl90eXBlKQ0KLQkg IHx8IHZhbHVlX3JhbmdlX25vbm5lZ2F0aXZlX3AgKCZ2cjApKQ0KLQltaW4g PSBidWlsZF9pbnRfY3N0IChUUkVFX1RZUEUgKG1heCksIDApOw0KKyAgICAg IHNpZ25vcCBzZ24gPSBUWVBFX1NJR04gKGV4cHJfdHlwZSk7DQorICAgICAg dW5zaWduZWQgaW50IHByZWMgPSBUWVBFX1BSRUNJU0lPTiAoZXhwcl90eXBl KTsNCisgICAgICB3aWRlX2ludCB3bWluLCB3bWF4LCB0bXA7DQorICAgICAg d2lkZV9pbnQgemVybyA9IHdpOjp6ZXJvIChwcmVjKTsNCisgICAgICB3aWRl X2ludCBvbmUgPSB3aTo6b25lIChwcmVjKTsNCisgICAgICBpZiAodnIxLnR5 cGUgPT0gVlJfUkFOR0UgJiYgIXN5bWJvbGljX3JhbmdlX3AgKCZ2cjEpKQ0K Kwl7DQorCSAgd21heCA9IHdpOjpzdWIgKHZyMS5tYXgsIG9uZSk7DQorCSAg aWYgKHNnbiA9PSBTSUdORUQpDQorCSAgICB7DQorCSAgICAgIHRtcCA9IHdp OjpzdWIgKHdpOjptaW51c19vbmUgKHByZWMpLCB2cjEubWluKTsNCisJICAg ICAgd21heCA9IHdpOjpzbWF4ICh3bWF4LCB0bXApOw0KKwkgICAgfQ0KKwl9 DQorICAgICAgZWxzZQ0KKwl7DQorCSAgd21heCA9IHdpOjptYXhfdmFsdWUg KHByZWMsIHNnbik7DQorCSAgLy8gWCAlIElOVF9NSU4gbWF5IGJlIElOVF9N QVguDQorCSAgaWYgKHNnbiA9PSBVTlNJR05FRCkNCisJICAgIHdtYXggPSB3 bWF4IC0gb25lOw0KKwl9DQorDQorICAgICAgaWYgKHNnbiA9PSBVTlNJR05F RCkNCisJd21pbiA9IHplcm87DQogICAgICAgZWxzZQ0KLQltaW4gPSBmb2xk X3VuYXJ5X3RvX2NvbnN0YW50IChORUdBVEVfRVhQUiwgZXhwcl90eXBlLCBt YXgpOw0KKwl7DQorCSAgd21pbiA9IC13bWF4Ow0KKwkgIGlmICh2cjAudHlw ZSA9PSBWUl9SQU5HRSAmJiBUUkVFX0NPREUgKHZyMC5taW4pID09IElOVEVH RVJfQ1NUKQ0KKwkgICAgew0KKwkgICAgICB0bXAgPSB2cjAubWluOw0KKwkg ICAgICBpZiAod2k6Omd0c19wICh0bXAsIHplcm8pKQ0KKwkJdG1wID0gemVy bzsNCisJICAgICAgd21pbiA9IHdpOjpzbWF4ICh3bWluLCB0bXApOw0KKwkg ICAgfQ0KKwl9DQorDQorICAgICAgaWYgKHZyMC50eXBlID09IFZSX1JBTkdF ICYmIFRSRUVfQ09ERSAodnIwLm1heCkgPT0gSU5URUdFUl9DU1QpDQorCXsN CisJICB0bXAgPSB2cjAubWF4Ow0KKwkgIGlmIChzZ24gPT0gU0lHTkVEICYm IHdpOjpuZWdfcCAodG1wKSkNCisJICAgIHRtcCA9IHplcm87DQorCSAgd21h eCA9IHdpOjptaW4gKHdtYXgsIHRtcCwgc2duKTsNCisJfQ0KKw0KKyAgICAg IG1pbiA9IHdpZGVfaW50X3RvX3RyZWUgKGV4cHJfdHlwZSwgd21pbik7DQor ICAgICAgbWF4ID0gd2lkZV9pbnRfdG9fdHJlZSAoZXhwcl90eXBlLCB3bWF4 KTsNCiAgICAgfQ0KICAgZWxzZSBpZiAoY29kZSA9PSBCSVRfQU5EX0VYUFIg fHwgY29kZSA9PSBCSVRfSU9SX0VYUFIgfHwgY29kZSA9PSBCSVRfWE9SX0VY UFIpDQogICAgIHsNCiAgICAgICBib29sIGludF9jc3RfcmFuZ2UwLCBpbnRf Y3N0X3JhbmdlMTsNCiAgICAgICB3aWRlX2ludCBtYXlfYmVfbm9uemVybzAs IG1heV9iZV9ub256ZXJvMTsNCiAgICAgICB3aWRlX2ludCBtdXN0X2JlX25v bnplcm8wLCBtdXN0X2JlX25vbnplcm8xOw0KIA0KICAgICAgIGludF9jc3Rf cmFuZ2UwID0gemVyb19ub256ZXJvX2JpdHNfZnJvbV92ciAoZXhwcl90eXBl LCAmdnIwLA0KIAkJCQkJCSAgJm1heV9iZV9ub256ZXJvMCwNCiAJCQkJCQkg ICZtdXN0X2JlX25vbnplcm8wKTsNCg== --8323329-750447610-1431097150=:18616--