From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 42773 invoked by alias); 10 Jul 2019 11:28:43 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 42720 invoked by uid 89); 10 Jul 2019 11:28:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=sk:fold-co, sk:foldco, lose, herewith X-HELO: mail-ed1-f43.google.com Received: from mail-ed1-f43.google.com (HELO mail-ed1-f43.google.com) (209.85.208.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 10 Jul 2019 11:28:40 +0000 Received: by mail-ed1-f43.google.com with SMTP id v15so1813784eds.9 for ; Wed, 10 Jul 2019 04:28:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=tHhdrxhz5MqdfoyqN8Srgr+Lel0p01wOuJ1pirFEqVk=; b=JGKv68CsxH5TP2Euz3JtK6Bto0LMme80wevJiKfdjd9A5ii9y+u8bV0WP2f8rU+FMk g0bqWF65Zp6Do/G0T8+2La4vDoLOfRKdPwnc67Mcn7Ess8oAAOLHkq1KIQmtYAOMz4Km sXK+dZWjji9xCrfseHZa5CxGMpyExV7TaflYrpkIBS+Va+Zm1A6CbhwFbTSu8cLKQSq0 KLi/zoji5bVVHRe7qFSxHqZWrmhZTlK2L/Uuj9kXGIITubNEUhADFtbxc8ccNkiHXTsw oMXAmoBx8zFn5lb7wMxBNfToxaPhl3aqvE6gisdj1FSsati+IFt88j/jTvAz2RQFXshe DRaQ== MIME-Version: 1.0 References: In-Reply-To: From: Tejas Joshi Date: Wed, 10 Jul 2019 11:28:00 -0000 Message-ID: Subject: Re: [GSoC-19] Implementing narrowing functions like fadd To: gcc@gcc.gnu.org Cc: Martin Jambor , hubicka@ucw.cz, joseph@codesourcery.com Content-Type: multipart/mixed; boundary="0000000000007e033a058d51fa25" X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00087.txt.bz2 --0000000000007e033a058d51fa25 Content-Type: text/plain; charset="UTF-8" Content-length: 2853 Hello. I have added fadd variants in builtins.def. For fadd and faddl variants, I had to introduce builtin function types in builtin-types.def : +DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_DOUBLE_DOUBLE, + BT_FLOAT, BT_DOUBLE, BT_DOUBLE) +DEF_FUNCTION_TYPE_2 (BT_FN_FLOAT_LONGDOUBLE_LONGDOUBLE, + BT_FLOAT, BT_LONGDOUBLE, BT_LONGDOUBLE) and used them to define function in builtins.def. At this point, only faddf variant is getting called by test program : int main () { double z = __builtin_faddf (3.5, 1.4); } faddf variant is using BT_FN_FLOAT_FLOAT_FLOAT which is already defined in builtin-types.def means I need not to introduce it. Why fadd and faddl are not getting called in this patch? I don't find any other place where these function types needs to be added. Thanks, -Tejas On Sat, 6 Jul 2019 at 18:29, Tejas Joshi wrote: > > Hello. > I am trying to add fadd function variants and as fadd takes two > arguments, the function should be called from fold_const_call_sss (). > The function is closely modeled on function calls and cases according > to real_nextafter (), also used gdb to look at backtrace. Although I > have made changes according to real_nextafter, the function real_fadd > is not called by the test program but real_nextafter does get called. > I cant find any other places to add calls for fadd. What is missing? > The patch is attached herewith. > > int > main () > { > float x; > x = __builtin_fadd (3.5,1.4); > } > > Also, fadd function should not have faddf variant, but is introduced > only for the sake. > > Thanks, > -Tejas > > On Wed, 3 Jul 2019 at 18:29, Tejas Joshi wrote: > > > > Hello. > > Functions like fadd, faddl take two arguments, do the addition and > > return the answer in narrower precision than the argument type. The > > thing that might be helpful is using the do_add function directly, if > > appropriate? > > The thing to consider about narrowed down return type is how it can be > > achieved. The functions that operate on real numbers like real_round > > and so on, do not consider the return type and do calculations on the > > entire real number representation. So just defining these functions > > and their return type in builtins.def and other appropriate places > > would do the trick? > > like: > > BT_FN_FLOAT_DOUBLE_DOUBLE as return and argument type for FADD > > > > Or it has to be narrowed down by zeroing down the trailing > > out-of-precision bits? > > Also, if the addition or any one of the argument exceeds the return > > size, the integer part of the addition would not fit in the narrowed > > type. Like, 2^32 would easily fit in double but will lose its least > > significant bit in float and become 2^31. How these types are supposed > > to be handled? > > > > Thanks, > > -Tejas --0000000000007e033a058d51fa25 Content-Type: text/x-patch; charset="US-ASCII"; name="fadd.diff" Content-Disposition: attachment; filename="fadd.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jxx60e9e0 Content-length: 5490 ZGlmZiAtLWdpdCBhL2djYy9idWlsdGluLXR5cGVzLmRlZiBiL2djYy9idWls dGluLXR5cGVzLmRlZgppbmRleCBlNWM5ZTA2M2M0OC4uODdlY2QyZTkyMTgg MTAwNjQ0Ci0tLSBhL2djYy9idWlsdGluLXR5cGVzLmRlZgorKysgYi9nY2Mv YnVpbHRpbi10eXBlcy5kZWYKQEAgLTM4Nyw2ICszODcsMTAgQEAgREVGX0ZV TkNUSU9OX1RZUEVfMiAoQlRfRk5fVk9JRF9VSU5UX1BUUiwKIAkJICAgICBC VF9WT0lELCBCVF9VSU5ULCBCVF9QVFIpCiBERUZfRlVOQ1RJT05fVFlQRV8y IChCVF9GTl9GTE9BVF9GTE9BVF9GTE9BVCwKIAkJICAgICBCVF9GTE9BVCwg QlRfRkxPQVQsIEJUX0ZMT0FUKQorREVGX0ZVTkNUSU9OX1RZUEVfMiAoQlRf Rk5fRkxPQVRfRE9VQkxFX0RPVUJMRSwKKwkJICAgICBCVF9GTE9BVCwgQlRf RE9VQkxFLCBCVF9ET1VCTEUpCitERUZfRlVOQ1RJT05fVFlQRV8yIChCVF9G Tl9GTE9BVF9MT05HRE9VQkxFX0xPTkdET1VCTEUsCisJCSAgICAgQlRfRkxP QVQsIEJUX0xPTkdET1VCTEUsIEJUX0xPTkdET1VCTEUpCiBERUZfRlVOQ1RJ T05fVFlQRV8yIChCVF9GTl9ET1VCTEVfRE9VQkxFX0RPVUJMRSwKIAkJICAg ICBCVF9ET1VCTEUsIEJUX0RPVUJMRSwgQlRfRE9VQkxFKQogREVGX0ZVTkNU SU9OX1RZUEVfMiAoQlRfRk5fTE9OR0RPVUJMRV9MT05HRE9VQkxFX0xPTkdE T1VCTEUsCmRpZmYgLS1naXQgYS9nY2MvYnVpbHRpbnMuYyBiL2djYy9idWls dGlucy5jCmluZGV4IGY2MWYxMDQyMmZkLi40NzFjNzkxOGFiYiAxMDA2NDQK LS0tIGEvZ2NjL2J1aWx0aW5zLmMKKysrIGIvZ2NjL2J1aWx0aW5zLmMKQEAg LTIwMDYsNiArMjAwNiw3IEBAIG1hdGhmbl9idWlsdF9pbl8yICh0cmVlIHR5 cGUsIGNvbWJpbmVkX2ZuIGZuKQogICAgIENBU0VfTUFUSEZOIChFWFAyKQog ICAgIENBU0VfTUFUSEZOIChFWFBNMSkKICAgICBDQVNFX01BVEhGTiAoRkFC UykKKyAgICBDQVNFX01BVEhGTiAoRkFERCkKICAgICBDQVNFX01BVEhGTiAo RkRJTSkKICAgICBDQVNFX01BVEhGTl9GTE9BVE4gKEZMT09SKQogICAgIENB U0VfTUFUSEZOX0ZMT0FUTiAoRk1BKQpkaWZmIC0tZ2l0IGEvZ2NjL2J1aWx0 aW5zLmRlZiBiL2djYy9idWlsdGlucy5kZWYKaW5kZXggOGJiNzAyN2FhYzcu LmFmYzQ4MmYzOGRjIDEwMDY0NAotLS0gYS9nY2MvYnVpbHRpbnMuZGVmCisr KyBiL2djYy9idWlsdGlucy5kZWYKQEAgLTM1Miw2ICszNTIsOSBAQCBERUZf Qzk5X0M5MFJFU19CVUlMVElOIChCVUlMVF9JTl9GQUJTTCwgImZhYnNsIiwg QlRfRk5fTE9OR0RPVUJMRV9MT05HRE9VQkxFLCBBVAogI2RlZmluZSBGQUJT X1RZUEUoRikgQlRfRk5fIyNGIyNfIyNGCiBERUZfRVhUX0xJQl9GTE9BVE5f TlhfQlVJTFRJTlMgKEJVSUxUX0lOX0ZBQlMsICJmYWJzIiwgRkFCU19UWVBF LCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQogI3VuZGVmIEZBQlNf VFlQRQorREVGX0VYVF9MSUJfQlVJTFRJTiAgICAoQlVJTFRfSU5fRkFERCwg ImZhZGQiLCBCVF9GTl9GTE9BVF9ET1VCTEVfRE9VQkxFLCBBVFRSX0NPTlNU X05PVEhST1dfTEVBRl9MSVNUKQorREVGX0VYVF9MSUJfQlVJTFRJTiAgICAo QlVJTFRfSU5fRkFEREYsICJmYWRkZiIsIEJUX0ZOX0ZMT0FUX0ZMT0FUX0ZM T0FULCBBVFRSX0NPTlNUX05PVEhST1dfTEVBRl9MSVNUKQorREVGX0VYVF9M SUJfQlVJTFRJTiAgICAoQlVJTFRfSU5fRkFEREwsICJmYWRkbCIsIEJUX0ZO X0ZMT0FUX0xPTkdET1VCTEVfTE9OR0RPVUJMRSwgQVRUUl9DT05TVF9OT1RI Uk9XX0xFQUZfTElTVCkKIERFRl9HQ0NfQlVJTFRJTiAgICAgICAgKEJVSUxU X0lOX0ZBQlNEMzIsICJmYWJzZDMyIiwgQlRfRk5fREZMT0FUMzJfREZMT0FU MzIsIEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCiBERUZfR0NDX0JV SUxUSU4gICAgICAgIChCVUlMVF9JTl9GQUJTRDY0LCAiZmFic2Q2NCIsIEJU X0ZOX0RGTE9BVDY0X0RGTE9BVDY0LCBBVFRSX0NPTlNUX05PVEhST1dfTEVB Rl9MSVNUKQogREVGX0dDQ19CVUlMVElOICAgICAgICAoQlVJTFRfSU5fRkFC U0QxMjgsICJmYWJzZDEyOCIsIEJUX0ZOX0RGTE9BVDEyOF9ERkxPQVQxMjgs IEFUVFJfQ09OU1RfTk9USFJPV19MRUFGX0xJU1QpCmRpZmYgLS1naXQgYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMgYi9nY2MvZm9sZC1jb25zdC1jYWxsLmMK aW5kZXggZDliNTQ2ZTY4MDMuLmVlOTM5Zjg1MDA1IDEwMDY0NAotLS0gYS9n Y2MvZm9sZC1jb25zdC1jYWxsLmMKKysrIGIvZ2NjL2ZvbGQtY29uc3QtY2Fs bC5jCkBAIC01NzAsNiArNTcwLDE2IEBAIGZvbGRfY29uc3RfbmV4dGFmdGVy IChyZWFsX3ZhbHVlICpyZXN1bHQsIGNvbnN0IHJlYWxfdmFsdWUgKmFyZzAs CiAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbAorZm9sZF9jb25z dF9mYWRkIChyZWFsX3ZhbHVlKiByZXN1bHQsIGNvbnN0IHJlYWxfdmFsdWUg KmFyZzAsCisJCSBjb25zdCByZWFsX3ZhbHVlICphcmcxLCBjb25zdCByZWFs X2Zvcm1hdCAqZm9ybWF0KQoreworICBpZiAoIXJlYWxfZmFkZChyZXN1bHQs IGZvcm1hdCwgYXJnMCwgYXJnMSkpCisgICAgcmV0dXJuIHRydWU7CisgIGVs c2UKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIC8qIFRyeSB0byBldmFsdWF0 ZToKIAogICAgICAgKlJFU1VMVCA9IGxkZXhwICgqQVJHMCwgQVJHMSkKQEAg LTEzNjYsNiArMTM3Niw5IEBAIGZvbGRfY29uc3RfY2FsbF9zc3MgKHJlYWxf dmFsdWUgKnJlc3VsdCwgY29tYmluZWRfZm4gZm4sCiAgICAgQ0FTRV9DRk5f TkVYVFRPV0FSRDoKICAgICAgIHJldHVybiBmb2xkX2NvbnN0X25leHRhZnRl ciAocmVzdWx0LCBhcmcwLCBhcmcxLCBmb3JtYXQpOwogCisgICAgQ0FTRV9D Rk5fRkFERDoKKyAgICAgIHJldHVybiBmb2xkX2NvbnN0X2ZhZGQgKHJlc3Vs dCwgYXJnMCwgYXJnMSwgZm9ybWF0KTsKKwogICAgIGRlZmF1bHQ6CiAgICAg ICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvZ2NjL3JlYWwu YyBiL2djYy9yZWFsLmMKaW5kZXggYWI3MTQzMDcwOWYuLjYzNzljZDBiY2Rj IDEwMDY0NAotLS0gYS9nY2MvcmVhbC5jCisrKyBiL2djYy9yZWFsLmMKQEAg LTUwOTMsNiArNTA5MywxNyBAQCByZWFsX3JvdW5kZXZlbiAoUkVBTF9WQUxV RV9UWVBFICpyLCBmb3JtYXRfaGVscGVyIGZtdCwKICAgICByZWFsX3JvdW5k IChyLCBmbXQsIHgpOwogfQogCitib29sCityZWFsX2ZhZGQgKFJFQUxfVkFM VUVfVFlQRSAqciwgZm9ybWF0X2hlbHBlciBmbXQsCisJICAgY29uc3QgUkVB TF9WQUxVRV9UWVBFICp4LCBjb25zdCBSRUFMX1ZBTFVFX1RZUEUgKnkpCit7 CisgIGRvX2FkZCAociwgeCwgeSwgMCk7CisgIGlmIChmbXQpCisgICAgcmVh bF9jb252ZXJ0IChyLCBmbXQsIHIpOworICBmcHJpbnRmIChzdGRlcnIsICJc bmluIHJlYWxfZmFkZFxuIik7CisgIHJldHVybiBmYWxzZTsKK30KKwogLyog U2V0IHRoZSBzaWduIG9mIFIgdG8gdGhlIHNpZ24gb2YgWC4gICovCiAKIHZv aWQKZGlmZiAtLWdpdCBhL2djYy9yZWFsLmggYi9nY2MvcmVhbC5oCmluZGV4 IDc2ODg5YmZmMGVhLi43MDhkODIxNTM0YiAxMDA2NDQKLS0tIGEvZ2NjL3Jl YWwuaAorKysgYi9nY2MvcmVhbC5oCkBAIC01MTAsNiArNTEwLDEwIEBAIGV4 dGVybiB2b2lkIHJlYWxfcm91bmQgKFJFQUxfVkFMVUVfVFlQRSAqLCBmb3Jt YXRfaGVscGVyLAogZXh0ZXJuIHZvaWQgcmVhbF9yb3VuZGV2ZW4gKFJFQUxf VkFMVUVfVFlQRSAqLCBmb3JtYXRfaGVscGVyLAogICAgICAgY29uc3QgUkVB TF9WQUxVRV9UWVBFICopOwogCisvKiBOYXJyb3dpbmcgdHlwZSBzdGFuZGFy ZCBtYXRoIG9wZXJhdGlvbnMgZnVuY3Rpb25zLiAgKi8KK2V4dGVybiBib29s IHJlYWxfZmFkZCAoUkVBTF9WQUxVRV9UWVBFICosIGZvcm1hdF9oZWxwZXIs CisgICAgICBjb25zdCBSRUFMX1ZBTFVFX1RZUEUgKiwgY29uc3QgUkVBTF9W QUxVRV9UWVBFICopOworCiAvKiBTZXQgdGhlIHNpZ24gb2YgUiB0byB0aGUg c2lnbiBvZiBYLiAgKi8KIGV4dGVybiB2b2lkIHJlYWxfY29weXNpZ24gKFJF QUxfVkFMVUVfVFlQRSAqLCBjb25zdCBSRUFMX1ZBTFVFX1RZUEUgKik7CiAK --0000000000007e033a058d51fa25--