From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70023 invoked by alias); 18 May 2016 08:38:44 -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 69886 invoked by uid 89); 18 May 2016 08:38:43 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=reassociate_bb, UD:tree-ssa-reassoc.c X-HELO: mail-qg0-f45.google.com Received: from mail-qg0-f45.google.com (HELO mail-qg0-f45.google.com) (209.85.192.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 18 May 2016 08:38:32 +0000 Received: by mail-qg0-f45.google.com with SMTP id f92so21847291qgf.0 for ; Wed, 18 May 2016 01:38:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=fDvtLHoXbjT37LMUyb+r2UMKY+bx8He8c0Hd4uWlef8=; b=cFS5WU+ujOT6Wq1WSBZNUZqTspCQBxADkKf3NuRFiign2rNeNwzTOUBi8lr79s82qA Zy93W6N1+EQQY6CtebLF4HUwj8devawSfHjAlbaB4PkR1I22GP+R8V2hIcl3BJlbnt9N Rwmb+6Q/kg2xYTy/06Y+MQJcV+nvEIy+Mi3GdBIBeLqAEsVgFN0Tp8bm+GEhgtWBYcni +m996i2y9JqQDO8B08+qqKXKtsfv38hl45TI8naMMcm1+TSlsMCR/hyuUp8jNZvtvdUF joRKY12U1v5RVgPd90RHfq3+sZEEhth3JKDFkHCW3NZwuog5ypnB9d+5Uu2zZVMTALwQ Hufg== X-Gm-Message-State: AOPr4FWOkCj2rkI9lAFyWF4xHJB5di3hWsK6BbDuKmOC+iKSvniSoaEpIRqDmKVmHiLvo80MKJxxZNyQWHe+gBL0 MIME-Version: 1.0 X-Received: by 10.140.223.10 with SMTP id t10mr6427365qhb.96.1463560710332; Wed, 18 May 2016 01:38:30 -0700 (PDT) Received: by 10.200.42.71 with HTTP; Wed, 18 May 2016 01:38:30 -0700 (PDT) In-Reply-To: References: <56CFC02F.2070801@linaro.org> <56D42341.5090607@linaro.org> <5718B5B1.8030809@linaro.org> <571B7448.4080005@linaro.org> <572A96AE.10701@linaro.org> Date: Wed, 18 May 2016 08:38:00 -0000 Message-ID: Subject: Re: [RFC][PATCH][PR40921] Convert x + (-y * z * z) into x - y * z * z From: Kugan Vivekanandarajah To: Richard Biener Cc: "gcc-patches@gcc.gnu.org" Content-Type: multipart/mixed; boundary=001a113711b6403dce053319c85d X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg01315.txt.bz2 --001a113711b6403dce053319c85d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 992 >>> Please move the whole thing under the else { } case of the ops.length >>> =3D=3D 0, ops.length =3D=3D 1 test chain >>> as you did for the actual emit of the negate. >>> >> >> I see your point. However, when we remove the (-1) from the ops list, th= at >> intern can result in ops.length becoming 1. Therefore, I moved the the >> following if (negate_result), outside the condition. > > Ah, indeed. But now you have to care for ops.length () =3D=3D 0 and thus > the unconditonally ops.last () may now trap. So I suggest to > do Done. > Yes - the patch is ok with the above suggested change. While testing on an arm variant, vector types are not handled. Therefore, I had to change: + || ((TREE_CODE (last->op) =3D=3D REAL_CST) + && real_equal (&TREE_REAL_CST (last->op), &dconstm1)) to + || real_minus_onep (last->op)) Is this Still OK. Bootstrap and regression testing on ARM, AARCH64 and x86-64 didn=E2=80=99t have any new regressions. Thanks, Kugan --001a113711b6403dce053319c85d Content-Type: text/plain; charset=US-ASCII; name="pr40921.txt" Content-Disposition: attachment; filename="pr40921.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iocm750j0 Content-length: 7211 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3By NDA5MjEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3RyZWUtc3NhL3ByNDA5 MjEuYwppbmRleCBlNjlkZTI5Li4zYTVhMjNhIDEwMDY0NAotLS0gYS9nY2Mv dGVzdHN1aXRlL2djYy5kZy90cmVlLXNzYS9wcjQwOTIxLmMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdHJlZS1zc2EvcHI0MDkyMS5jCkBAIC0wLDAg KzEsMjYgQEAKKworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGct b3B0aW9ucyAiLU8yICAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQgLWZmYXN0LW1h dGgiIH0gKi8KKwordW5zaWduZWQgaW50IGZvbyAodW5zaWduZWQgaW50IHgs IHVuc2lnbmVkIGludCB5LCB1bnNpZ25lZCBpbnQgeikKK3sKKyAgICAgIHJl dHVybiB4ICsgKC15ICogeiAqIHopOworfQorCitmbG9hdCBiYXIgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopCit7CisgICAgICByZXR1cm4geCArICgt eSAqIHogKiB6KTsKK30KKworZmxvYXQgYmFyMiAoZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeikKK3sKKyAgICAgIHJldHVybiB4ICsgKC15ICogeiAqIHog KiA1LjBmKTsKK30KKworZmxvYXQgYmFyMyAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeikKK3sKKyAgICAgIHJldHVybiB4ICsgKC15ICogeCAqIC16KTsK K30KKworCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg Il8qID0gLXlfIiAwICJvcHRpbWl6ZWQiIH0gfSAqLwpkaWZmIC0tZ2l0IGEv Z2NjL3RyZWUtc3NhLXJlYXNzb2MuYyBiL2djYy90cmVlLXNzYS1yZWFzc29j LmMKaW5kZXggNzQwODk3Ny4uYjU0ZTNlYiAxMDA2NDQKLS0tIGEvZ2NjL3Ry ZWUtc3NhLXJlYXNzb2MuYworKysgYi9nY2MvdHJlZS1zc2EtcmVhc3NvYy5j CkBAIC00MjUyLDYgKzQyNTIsNDUgQEAgYWNjZXB0YWJsZV9wb3dfY2FsbCAo Z2ltcGxlICpzdG10LCB0cmVlICpiYXNlLCBIT1NUX1dJREVfSU5UICpleHBv bmVudCkKICAgcmV0dXJuIHRydWU7CiB9CiAKKy8qIFRyeSB0byBkZXJpdmUg YW5kIGFkZCBvcGVyYW5kIGVudHJ5IGZvciBPUCB0byAqT1BTLiAgUmV0dXJu IGZhbHNlIGlmCisgICB1bnN1Y2Nlc3NmdWwuICAqLworCitzdGF0aWMgYm9v bAordHJ5X3NwZWNpYWxfYWRkX3RvX29wcyAodmVjPG9wZXJhbmRfZW50cnkg Kj4gKm9wcywKKwkJCWVudW0gdHJlZV9jb2RlIGNvZGUsCisJCQl0cmVlIG9w LCBnaW1wbGUqIGRlZl9zdG10KQoreworICB0cmVlIGJhc2UgPSBOVUxMX1RS RUU7CisgIEhPU1RfV0lERV9JTlQgZXhwb25lbnQgPSAwOworCisgIGlmIChU UkVFX0NPREUgKG9wKSAhPSBTU0FfTkFNRSkKKyAgICByZXR1cm4gZmFsc2U7 CisKKyAgaWYgKGNvZGUgPT0gTVVMVF9FWFBSCisgICAgICAmJiBhY2NlcHRh YmxlX3Bvd19jYWxsIChkZWZfc3RtdCwgJmJhc2UsICZleHBvbmVudCkpCisg ICAgeworICAgICAgYWRkX3JlcGVhdF90b19vcHNfdmVjIChvcHMsIGJhc2Us IGV4cG9uZW50KTsKKyAgICAgIGdpbXBsZV9zZXRfdmlzaXRlZCAoZGVmX3N0 bXQsIHRydWUpOworICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICBlbHNl IGlmIChjb2RlID09IE1VTFRfRVhQUgorCSAgICYmIGlzX2dpbXBsZV9hc3Np Z24gKGRlZl9zdG10KQorCSAgICYmIGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUg KGRlZl9zdG10KSA9PSBORUdBVEVfRVhQUgorCSAgICYmICFIT05PUl9TTkFO UyAoVFJFRV9UWVBFIChvcCkpCisJICAgJiYgKCFIT05PUl9TSUdORURfWkVS T1MgKFRSRUVfVFlQRSAob3ApKQorCSAgICAgICB8fCAhQ09NUExFWF9GTE9B VF9UWVBFX1AgKFRSRUVfVFlQRSAob3ApKSkpCisgICAgeworICAgICAgdHJl ZSByaHMxID0gZ2ltcGxlX2Fzc2lnbl9yaHMxIChkZWZfc3RtdCk7CisgICAg ICB0cmVlIGNzdCA9IGJ1aWxkX21pbnVzX29uZV9jc3QgKFRSRUVfVFlQRSAo b3ApKTsKKyAgICAgIGFkZF90b19vcHNfdmVjIChvcHMsIHJoczEpOworICAg ICAgYWRkX3RvX29wc192ZWMgKG9wcywgY3N0KTsKKyAgICAgIGdpbXBsZV9z ZXRfdmlzaXRlZCAoZGVmX3N0bXQsIHRydWUpOworICAgICAgcmV0dXJuIHRy dWU7CisgICAgfQorCisgIHJldHVybiBmYWxzZTsKK30KKwogLyogUmVjdXJz aXZlbHkgbGluZWFyaXplIGEgYmluYXJ5IGV4cHJlc3Npb24gdGhhdCBpcyB0 aGUgUkhTIG9mIFNUTVQuCiAgICBQbGFjZSB0aGUgb3BlcmFuZHMgb2YgdGhl IGV4cHJlc3Npb24gdHJlZSBpbiB0aGUgdmVjdG9yIG5hbWVkIE9QUy4gICov CiAKQEAgLTQyNjYsOCArNDMwNSw2IEBAIGxpbmVhcml6ZV9leHByX3RyZWUg KHZlYzxvcGVyYW5kX2VudHJ5ICo+ICpvcHMsIGdpbXBsZSAqc3RtdCwKICAg Ym9vbCBiaW5yaHNpc3JlYXNzb2MgPSBmYWxzZTsKICAgZW51bSB0cmVlX2Nv ZGUgcmhzY29kZSA9IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKHN0bXQpOwog ICBzdHJ1Y3QgbG9vcCAqbG9vcCA9IGxvb3BfY29udGFpbmluZ19zdG10IChz dG10KTsKLSAgdHJlZSBiYXNlID0gTlVMTF9UUkVFOwotICBIT1NUX1dJREVf SU5UIGV4cG9uZW50ID0gMDsKIAogICBpZiAoc2V0X3Zpc2l0ZWQpCiAgICAg Z2ltcGxlX3NldF92aXNpdGVkIChzdG10LCB0cnVlKTsKQEAgLTQzMDMsMjQg KzQzNDAsMTAgQEAgbGluZWFyaXplX2V4cHJfdHJlZSAodmVjPG9wZXJhbmRf ZW50cnkgKj4gKm9wcywgZ2ltcGxlICpzdG10LAogCiAgICAgICBpZiAoIWJp bnJoc2lzcmVhc3NvYykKIAl7Ci0JICBpZiAocmhzY29kZSA9PSBNVUxUX0VY UFIKLQkgICAgICAmJiBUUkVFX0NPREUgKGJpbnJocykgPT0gU1NBX05BTUUK LQkgICAgICAmJiBhY2NlcHRhYmxlX3Bvd19jYWxsIChiaW5yaHNkZWYsICZi YXNlLCAmZXhwb25lbnQpKQotCSAgICB7Ci0JICAgICAgYWRkX3JlcGVhdF90 b19vcHNfdmVjIChvcHMsIGJhc2UsIGV4cG9uZW50KTsKLQkgICAgICBnaW1w bGVfc2V0X3Zpc2l0ZWQgKGJpbnJoc2RlZiwgdHJ1ZSk7Ci0JICAgIH0KLQkg IGVsc2UKKwkgIGlmICghdHJ5X3NwZWNpYWxfYWRkX3RvX29wcyAob3BzLCBy aHNjb2RlLCBiaW5yaHMsIGJpbnJoc2RlZikpCiAJICAgIGFkZF90b19vcHNf dmVjIChvcHMsIGJpbnJocyk7CiAKLQkgIGlmIChyaHNjb2RlID09IE1VTFRf RVhQUgotCSAgICAgICYmIFRSRUVfQ09ERSAoYmlubGhzKSA9PSBTU0FfTkFN RQotCSAgICAgICYmIGFjY2VwdGFibGVfcG93X2NhbGwgKGJpbmxoc2RlZiwg JmJhc2UsICZleHBvbmVudCkpCi0JICAgIHsKLQkgICAgICBhZGRfcmVwZWF0 X3RvX29wc192ZWMgKG9wcywgYmFzZSwgZXhwb25lbnQpOwotCSAgICAgIGdp bXBsZV9zZXRfdmlzaXRlZCAoYmlubGhzZGVmLCB0cnVlKTsKLQkgICAgfQot CSAgZWxzZQorCSAgaWYgKCF0cnlfc3BlY2lhbF9hZGRfdG9fb3BzIChvcHMs IHJoc2NvZGUsIGJpbmxocywgYmlubGhzZGVmKSkKIAkgICAgYWRkX3RvX29w c192ZWMgKG9wcywgYmlubGhzKTsKIAogCSAgcmV0dXJuOwpAQCAtNDM2MCwx NCArNDM4Myw3IEBAIGxpbmVhcml6ZV9leHByX3RyZWUgKHZlYzxvcGVyYW5k X2VudHJ5ICo+ICpvcHMsIGdpbXBsZSAqc3RtdCwKICAgbGluZWFyaXplX2V4 cHJfdHJlZSAob3BzLCBTU0FfTkFNRV9ERUZfU1RNVCAoYmlubGhzKSwKIAkJ ICAgICAgIGlzX2Fzc29jaWF0aXZlLCBzZXRfdmlzaXRlZCk7CiAKLSAgaWYg KHJoc2NvZGUgPT0gTVVMVF9FWFBSCi0gICAgICAmJiBUUkVFX0NPREUgKGJp bnJocykgPT0gU1NBX05BTUUKLSAgICAgICYmIGFjY2VwdGFibGVfcG93X2Nh bGwgKFNTQV9OQU1FX0RFRl9TVE1UIChiaW5yaHMpLCAmYmFzZSwgJmV4cG9u ZW50KSkKLSAgICB7Ci0gICAgICBhZGRfcmVwZWF0X3RvX29wc192ZWMgKG9w cywgYmFzZSwgZXhwb25lbnQpOwotICAgICAgZ2ltcGxlX3NldF92aXNpdGVk IChTU0FfTkFNRV9ERUZfU1RNVCAoYmlucmhzKSwgdHJ1ZSk7Ci0gICAgfQot ICBlbHNlCisgIGlmICghdHJ5X3NwZWNpYWxfYWRkX3RvX29wcyAob3BzLCBy aHNjb2RlLCBiaW5yaHMsIGJpbnJoc2RlZikpCiAgICAgYWRkX3RvX29wc192 ZWMgKG9wcywgYmlucmhzKTsKIH0KIApAQCAtNTEyNyw2ICs1MTQzLDI0IEBA IHJlYXNzb2NpYXRlX2JiIChiYXNpY19ibG9jayBiYikKIAkJICAgIHBvd2lf cmVzdWx0ID0gYXR0ZW1wdF9idWlsdGluX3Bvd2kgKHN0bXQsICZvcHMpOwog CQl9CiAKKwkgICAgICBvcGVyYW5kX2VudHJ5ICpsYXN0OworCSAgICAgIGJv b2wgbmVnYXRlX3Jlc3VsdCA9IGZhbHNlOworCSAgICAgIGlmIChvcHMubGVu Z3RoICgpID4gMQorCQkgICYmIHJoc19jb2RlID09IE1VTFRfRVhQUikKKwkJ eworCQkgIGxhc3QgPSBvcHMubGFzdCAoKTsKKwkJICBpZiAoKChUUkVFX0NP REUgKGxhc3QtPm9wKSA9PSBJTlRFR0VSX0NTVAorCQkJJiYgaW50ZWdlcl9t aW51c19vbmVwIChsYXN0LT5vcCkpCisJCSAgICAgICB8fCByZWFsX21pbnVz X29uZXAgKGxhc3QtPm9wKSkKKwkJICAgICAgJiYgIUhPTk9SX1NOQU5TIChU UkVFX1RZUEUgKGxocykpCisJCSAgICAgICYmICghSE9OT1JfU0lHTkVEX1pF Uk9TIChUUkVFX1RZUEUgKGxocykpCisJCQkgIHx8ICFDT01QTEVYX0ZMT0FU X1RZUEVfUCAoVFJFRV9UWVBFIChsaHMpKSkpCisJCSAgICB7CisJCSAgICAg IG9wcy5wb3AgKCk7CisJCSAgICAgIG5lZ2F0ZV9yZXN1bHQgPSB0cnVlOwor CQkgICAgfQorCQl9CisKIAkgICAgICAvKiBJZiB0aGUgb3BlcmFuZCB2ZWN0 b3IgaXMgbm93IGVtcHR5LCBhbGwgb3BlcmFuZHMgd2VyZSAKIAkJIGNvbnN1 bWVkIGJ5IHRoZSBfX2J1aWx0aW5fcG93aSBvcHRpbWl6YXRpb24uICAqLwog CSAgICAgIGlmIChvcHMubGVuZ3RoICgpID09IDApCkBAIC01MTg5LDYgKzUy MjMsMTggQEAgcmVhc3NvY2lhdGVfYmIgKGJhc2ljX2Jsb2NrIGJiKQogCQkg ICAgICBnc2lfaW5zZXJ0X2FmdGVyICgmZ3NpLCBtdWxfc3RtdCwgR1NJX05F V19TVE1UKTsKIAkJICAgIH0KIAkJfQorCisJICAgICAgaWYgKG5lZ2F0ZV9y ZXN1bHQpCisJCXsKKwkJICBzdG10ID0gU1NBX05BTUVfREVGX1NUTVQgKGxo cyk7CisJCSAgdHJlZSB0bXAgPSBtYWtlX3NzYV9uYW1lIChUUkVFX1RZUEUg KGxocykpOworCQkgIGdpbXBsZV9zZXRfbGhzIChzdG10LCB0bXApOworCQkg IGdhc3NpZ24gKm5lZ19zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAobGhz LCBORUdBVEVfRVhQUiwKKwkJCQkJCQkgICB0bXApOworCQkgIGdpbXBsZV9z dG10X2l0ZXJhdG9yIGdzaSA9IGdzaV9mb3Jfc3RtdCAoc3RtdCk7CisJCSAg Z3NpX2luc2VydF9hZnRlciAoJmdzaSwgbmVnX3N0bXQsIEdTSV9ORVdfU1RN VCk7CisJCSAgdXBkYXRlX3N0bXQgKHN0bXQpOworCQl9CiAJICAgIH0KIAl9 CiAgICAgfQo= --001a113711b6403dce053319c85d--