From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29594 invoked by alias); 14 Jun 2019 12:49:44 -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 29581 invoked by uid 89); 14 Jun 2019 12:49:43 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-20.4 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,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=sake 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; Fri, 14 Jun 2019 12:49:40 +0000 Received: by mail-ed1-f43.google.com with SMTP id m10so3346456edv.6 for ; Fri, 14 Jun 2019 05:49: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=erqfMbtnBPm0z10OMzka4Lv3BBYPa4YIh2jQDPPXJqc=; b=M2gowTkO6F4CqFRzTYX/bIdft3ipanr3ampu6YIlNc0EN2gwasE0v8rRgixGDyq25Y q8OX2ohxCePKpwufTUtqYupQWZ/C00G0ZHKnM9/etyQcXMeFqu/81SkD1qweiH5NI+vO Cm5vzqJKcEQohzt2Kjtib06dK0yYqEKqPQRuKSUN2kQhVjxOEBRfaDRnosc3zp2NFi5p PnyjLGqWWSepJb9UBqLhqoSoe/LZVo9t+CuClrU4pXGJR4rGvpwNEVqUn1fpjF9HNbOk khDYhhOaAubyx0Hi/Blg0TbODiuQ+yBRxhDmFaUgfi9WGrPDF/ymw+q4LsIrPxJcWLqO wzEA== MIME-Version: 1.0 References: <20190530213839.GF31586@gate.crashing.org> In-Reply-To: From: Tejas Joshi Date: Fri, 14 Jun 2019 12:49:00 -0000 Message-ID: Subject: Re: Expanding roundeven (Was: Re: About GSOC.) To: gcc@gcc.gnu.org Cc: Martin Jambor , hubicka@ucw.cz, joseph@codesourcery.com Content-Type: multipart/mixed; boundary="0000000000004b4046058b4814cb" X-IsSubscribed: yes X-SW-Source: 2019-06/txt/msg00144.txt.bz2 --0000000000004b4046058b4814cb Content-Type: text/plain; charset="UTF-8" Content-length: 2642 > Of course the instruction is not present there, that is the next step in > your project :-) Yes, of course, but what I meant was that instructions for existing round/ceil functions and not roundeven. If inlining for these functions is available, how can I inspect such instructions getting inlined maybe in a *.s file? Also, I am trying to find appropriate places to introduce changes for roundeven to be inlined. Attached patch is what I have tried so far to find the places. ix86_expand_roundeven have dummy code for the sake of time. In i386.md: 1. How should roundeven be defined at certain places where existing floor is defined as: (define_int_attr rounding_insn [(UNSPEC_FRNDINT_FLOOR "floor") 2. Also, can roundeven be handled like round_floor is handled by: (define_expand "2" but definitely with certain changes of flags, options and macros. Thanks, --Tejas On Thu, 13 Jun 2019 at 22:49, Martin Jambor wrote: > > Hi Tejas, > > On Thu, Jun 13 2019, Tejas Joshi wrote: > > Hello. > > As further part of implementing roundeven is inlining, I was studying > > machine descriptions and I have a few questions. > > > > As suggested, builtin functions provided a strong model for > > implementing roundeven. Keeping that in mind, I tried to inspect how > > similar functions (round/ceil) would get inlined. As it is dependent > > on target machine, (mine is i7, so should be x86_64 ? I wonder why > > gcc/config/ does not have x86_64 or amd64 directory. Or is it i386 > > itself as extended?), > > Yes, the directory with x86_64 specific stuff is i386. > > > should *.s file after compilation contain the > > specific instruction if supported? I was unable to see such kind of > > instruction on any -O level. > > > > I am not sure I understand your question. Yes, the intent is that when > the compiler cannot determine the argument of roundeven to be constant, > it should emit the instruction instead of a library call, if the target > architecture supports it. (and if IIUC, the intent is to use the 0 mode > from table 4-8 in > https://software.intel.com/sites/default/files/managed/39/c5/325462-sdm-vol-1-2abcd-3abcd.pdf > in instructions that take a rounding a mode to implement roundeven). > > Of course the instruction is not present there, that is the next step in > your project :-) > > > Different pattern names are available for machine descriptions > > , also for > > round, ceil, etc. Will I have to add such pattern name for roundeven? > > (is it the same as optab defined in optabs.def?) > > Yes. > > Martin --0000000000004b4046058b4814cb Content-Type: text/x-patch; charset="US-ASCII"; name="roundeven-md.patch" Content-Disposition: attachment; filename="roundeven-md.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jww3fj820 Content-length: 6824 ZGlmZiAtLWdpdCBhL2djYy9idWlsdGlucy5jIGIvZ2NjL2J1aWx0aW5zLmMK aW5kZXggODVhOTQ1ODc3YTQuLjI5MTcxN2RhN2VlIDEwMDY0NAotLS0gYS9n Y2MvYnVpbHRpbnMuYworKysgYi9nY2MvYnVpbHRpbnMuYwpAQCAtMjcyMyw2 ICsyNzIzLDkgQEAgZXhwYW5kX2J1aWx0aW5faW50X3JvdW5kaW5nZm4gKHRy ZWUgZXhwLCBydHggdGFyZ2V0KQogICAgICAgZmFsbGJhY2tfZm4gPSBCVUlM VF9JTl9GTE9PUjsKICAgICAgIGJyZWFrOwogCisgICAgQ0FTRV9GTFRfRk4g KEJVSUxUX0lOX1JPVU5ERVZFTik6CisgICAgICBidWlsdGluX29wdGFiID0g cm91bmRldmVuX29wdGFiOworCiAgICAgZGVmYXVsdDoKICAgICAgIGdjY191 bnJlYWNoYWJsZSAoKTsKICAgICB9CkBAIC03MzQ2LDYgKzczNDksNyBAQCBl eHBhbmRfYnVpbHRpbiAodHJlZSBleHAsIHJ0eCB0YXJnZXQsIHJ0eCBzdWJ0 YXJnZXQsIG1hY2hpbmVfbW9kZSBtb2RlLAogCXJldHVybiB0YXJnZXQ7CiAg ICAgICBicmVhazsKIAorICAgIENBU0VfRkxUX0ZOIChCVUlMVF9JTl9ST1VO REVWRU4pOgogICAgIENBU0VfRkxUX0ZOIChCVUlMVF9JTl9JQ0VJTCk6CiAg ICAgQ0FTRV9GTFRfRk4gKEJVSUxUX0lOX0xDRUlMKToKICAgICBDQVNFX0ZM VF9GTiAoQlVJTFRfSU5fTExDRUlMKToKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvaTM4Ni9pMzg2LWJ1aWx0aW4uZGVmIGIvZ2NjL2NvbmZpZy9pMzg2L2kz ODYtYnVpbHRpbi5kZWYKaW5kZXggZTU0N2RkYTgwZjEuLjVjZDI1NWQyNGVm IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRl ZgorKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni1idWlsdGluLmRlZgpAQCAt OTAyLDYgKzkwMiw3IEBAIEJERVNDIChPUFRJT05fTUFTS19JU0FfU1NFNF8x LCAwLCBDT0RFX0ZPUl9zc2U0XzFfcm91bmRwcywgIl9fYnVpbHRpbl9pYTMy X3JvdW5kCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX1NTRTRfMSwgMCwgQ09E RV9GT1Jfc3NlNF8xX3JvdW5kc2QsICJfX2J1aWx0aW5faWEzMl9yb3VuZHNk IiwgSVg4Nl9CVUlMVElOX1JPVU5EU0QsIFVOS05PV04sIChpbnQpIFYyREZf RlRZUEVfVjJERl9WMkRGX0lOVCkKIEJERVNDIChPUFRJT05fTUFTS19JU0Ff U1NFNF8xLCAwLCBDT0RFX0ZPUl9zc2U0XzFfcm91bmRzcywgIl9fYnVpbHRp bl9pYTMyX3JvdW5kc3MiLCBJWDg2X0JVSUxUSU5fUk9VTkRTUywgVU5LTk9X TiwgKGludCkgVjRTRl9GVFlQRV9WNFNGX1Y0U0ZfSU5UKQogCitCREVTQyAo T1BUSU9OX01BU0tfSVNBX1NTRTRfMSwgMCwgQ09ERV9GT1Jfc3NlNF8xX3Jv dW5kZXZlbnBkLCAiX19idWlsdGluX2lhMzJfcm91bmRldmVucGQiLCBJWDg2 X0JVSUxUSU5fUk9VTkRFVkVOUEQsIChlbnVtIHJ0eF9jb2RlKSBST1VORF9S T1VOREVWRU4sIChpbnQpIFYyREZfRlRZUEVfVjJERl9ST1VORCkKIEJERVND IChPUFRJT05fTUFTS19JU0FfU1NFNF8xLCAwLCBDT0RFX0ZPUl9zc2U0XzFf cm91bmRwZCwgIl9fYnVpbHRpbl9pYTMyX2Zsb29ycGQiLCBJWDg2X0JVSUxU SU5fRkxPT1JQRCwgKGVudW0gcnR4X2NvZGUpIFJPVU5EX0ZMT09SLCAoaW50 KSBWMkRGX0ZUWVBFX1YyREZfUk9VTkQpCiBCREVTQyAoT1BUSU9OX01BU0tf SVNBX1NTRTRfMSwgMCwgQ09ERV9GT1Jfc3NlNF8xX3JvdW5kcGQsICJfX2J1 aWx0aW5faWEzMl9jZWlscGQiLCBJWDg2X0JVSUxUSU5fQ0VJTFBELCAoZW51 bSBydHhfY29kZSkgUk9VTkRfQ0VJTCwgKGludCkgVjJERl9GVFlQRV9WMkRG X1JPVU5EKQogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9TU0U0XzEsIDAsIENP REVfRk9SX3NzZTRfMV9yb3VuZHBkLCAiX19idWlsdGluX2lhMzJfdHJ1bmNw ZCIsIElYODZfQlVJTFRJTl9UUlVOQ1BELCAoZW51bSBydHhfY29kZSkgUk9V TkRfVFJVTkMsIChpbnQpIFYyREZfRlRZUEVfVjJERl9ST1VORCkKQEAgLTkx Myw2ICs5MTQsNyBAQCBCREVTQyAoT1BUSU9OX01BU0tfSVNBX1NTRTRfMSwg MCwgQ09ERV9GT1Jfc3NlNF8xX3JvdW5kcGRfdmVjX3BhY2tfc2ZpeCwgIl9f YnVpbAogQkRFU0MgKE9QVElPTl9NQVNLX0lTQV9TU0U0XzEsIDAsIENPREVf Rk9SX3JvdW5kdjJkZjIsICJfX2J1aWx0aW5faWEzMl9yb3VuZHBkX2F6Iiwg SVg4Nl9CVUlMVElOX1JPVU5EUERfQVosIFVOS05PV04sIChpbnQpIFYyREZf RlRZUEVfVjJERikKIEJERVNDIChPUFRJT05fTUFTS19JU0FfU1NFNF8xLCAw LCBDT0RFX0ZPUl9yb3VuZHYyZGYyX3ZlY19wYWNrX3NmaXgsICJfX2J1aWx0 aW5faWEzMl9yb3VuZHBkX2F6X3ZlY19wYWNrX3NmaXgiLCBJWDg2X0JVSUxU SU5fUk9VTkRQRF9BWl9WRUNfUEFDS19TRklYLCBVTktOT1dOLCAoaW50KSBW NFNJX0ZUWVBFX1YyREZfVjJERikKIAorQkRFU0MgKE9QVElPTl9NQVNLX0lT QV9TU0U0XzEsIDAsIENPREVfRk9SX3NzZTRfMV9yb3VuZHBzLCAiX19idWls dGluX2lhMzJfcm91bmRldmVucHMiLCBJWDg2X0JVSUxUSU5fUk9VTkRFVkVO UFMsIChlbnVtIHJ0eF9jb2RlKSBST1VORF9ST1VOREVWRU4sIChpbnQpIFY0 U0ZfRlRZUEVfVjRTRl9ST1VORCkKIEJERVNDIChPUFRJT05fTUFTS19JU0Ff U1NFNF8xLCAwLCBDT0RFX0ZPUl9zc2U0XzFfcm91bmRwcywgIl9fYnVpbHRp bl9pYTMyX2Zsb29ycHMiLCBJWDg2X0JVSUxUSU5fRkxPT1JQUywgKGVudW0g cnR4X2NvZGUpIFJPVU5EX0ZMT09SLCAoaW50KSBWNFNGX0ZUWVBFX1Y0U0Zf Uk9VTkQpCiBCREVTQyAoT1BUSU9OX01BU0tfSVNBX1NTRTRfMSwgMCwgQ09E RV9GT1Jfc3NlNF8xX3JvdW5kcHMsICJfX2J1aWx0aW5faWEzMl9jZWlscHMi LCBJWDg2X0JVSUxUSU5fQ0VJTFBTLCAoZW51bSBydHhfY29kZSkgUk9VTkRf Q0VJTCwgKGludCkgVjRTRl9GVFlQRV9WNFNGX1JPVU5EKQogQkRFU0MgKE9Q VElPTl9NQVNLX0lTQV9TU0U0XzEsIDAsIENPREVfRk9SX3NzZTRfMV9yb3Vu ZHBzLCAiX19idWlsdGluX2lhMzJfdHJ1bmNwcyIsIElYODZfQlVJTFRJTl9U UlVOQ1BTLCAoZW51bSBydHhfY29kZSkgUk9VTkRfVFJVTkMsIChpbnQpIFY0 U0ZfRlRZUEVfVjRTRl9ST1VORCkKZGlmZiAtLWdpdCBhL2djYy9jb25maWcv aTM4Ni9pMzg2LWV4cGFuZC5jIGIvZ2NjL2NvbmZpZy9pMzg2L2kzODYtZXhw YW5kLmMKaW5kZXggMDU4NWM3ZDA4YmQuLmFkODhjMWE3ZTEyIDEwMDY0NAot LS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1leHBhbmQuYworKysgYi9nY2Mv Y29uZmlnL2kzODYvaTM4Ni1leHBhbmQuYwpAQCAtMTYwOTQsNiArMTYwOTQs MTYgQEAgaXg4Nl9leHBhbmRfcm91bmRkZl8zMiAocnR4IG9wZXJhbmQwLCBy dHggb3BlcmFuZDEpCiAgIGVtaXRfbW92ZV9pbnNuIChvcGVyYW5kMCwgcmVz KTsKIH0KIAordm9pZAoraXg4Nl9leHBhbmRfcm91bmRldmVuIChydHggb3Bl cmFuZDAsIHJ0eCBvcGVyYW5kMSkKK3sKKyAgbWFjaGluZV9tb2RlIG1vZGUg PSBHRVRfTU9ERSAob3BlcmFuZDApOworICBydHggeGEsIHhpLCBUV081Miwg cmVzLCBtYXNrOworCisgIHJlcyA9IGdlbl9yZWdfcnR4IChtb2RlKTsKKyAg ZW1pdF9tb3ZlX2luc24gKHJlcywgb3BlcmFuZDEpOworfQorCiAvKiBFeHBh bmQgU1NFIHNlcXVlbmNlIGZvciBjb21wdXRpbmcgdHJ1bmMgZnJvbSBPUEVS QU5EMSBzdG9yaW5nCiAgICBpbnRvIE9QRVJBTkQwLiAgKi8KIHZvaWQKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2Lm1kIGIvZ2NjL2NvbmZp Zy9pMzg2L2kzODYubWQKaW5kZXggMDEzMzhlMjk0YWIuLmU4MWJhMTIxNjFl IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5tZAorKysgYi9n Y2MvY29uZmlnL2kzODYvaTM4Ni5tZApAQCAtMzAzLDcgKzMwMyw4IEBACiAK IDs7IENvbnN0YW50cyB0byByZXByZXNlbnQgcm91bmRpbmcgbW9kZXMgaW4g dGhlIFJPVU5EIGluc3RydWN0aW9uCiAoZGVmaW5lX2NvbnN0YW50cwotICBb KFJPVU5EX0ZMT09SCQkJMHgxKQorICBbKFJPVU5EX1JPVU5ERVZFTikgICAg MHgwKQorICAgKFJPVU5EX0ZMT09SCQkJMHgxKQogICAgKFJPVU5EX0NFSUwJ CQkweDIpCiAgICAoUk9VTkRfVFJVTkMJCQkweDMpCiAgICAoUk9VTkRfTVhD U1IJCQkweDQpCmRpZmYgLS1naXQgYS9nY2MvaW50ZXJuYWwtZm4uZGVmIGIv Z2NjL2ludGVybmFsLWZuLmRlZgppbmRleCAwMTYzMDFhNThkOC4uYzA3ZDQ4 NTk0ZTMgMTAwNjQ0Ci0tLSBhL2djYy9pbnRlcm5hbC1mbi5kZWYKKysrIGIv Z2NjL2ludGVybmFsLWZuLmRlZgpAQCAtMjMxLDYgKzIzMSw3IEBAIERFRl9J TlRFUk5BTF9GTFRfRkxPQVROX0ZOIChGTE9PUiwgRUNGX0NPTlNULCBmbG9v ciwgdW5hcnkpCiBERUZfSU5URVJOQUxfRkxUX0ZMT0FUTl9GTiAoTkVBUkJZ SU5ULCBFQ0ZfQ09OU1QsIG5lYXJieWludCwgdW5hcnkpCiBERUZfSU5URVJO QUxfRkxUX0ZMT0FUTl9GTiAoUklOVCwgRUNGX0NPTlNULCByaW50LCB1bmFy eSkKIERFRl9JTlRFUk5BTF9GTFRfRkxPQVROX0ZOIChST1VORCwgRUNGX0NP TlNULCByb3VuZCwgdW5hcnkpCitERUZfSU5URVJOQUxfRkxUX0ZMT0FUTl9G TiAoUk9VTkRFVkVOLCBFQ0ZfQ09OU1QsIHJvdW5kZXZlbiwgdW5hcnkpCiBE RUZfSU5URVJOQUxfRkxUX0ZMT0FUTl9GTiAoVFJVTkMsIEVDRl9DT05TVCwg YnRydW5jLCB1bmFyeSkKIAogLyogQmluYXJ5IG1hdGggZnVuY3Rpb25zLiAg Ki8KZGlmZiAtLWdpdCBhL2djYy9vcHRhYnMuZGVmIGIvZ2NjL29wdGFicy5k ZWYKaW5kZXggOGFmM2EyZjQzZmQuLjgzOWQyNTBiOGM2IDEwMDY0NAotLS0g YS9nY2Mvb3B0YWJzLmRlZgorKysgYi9nY2Mvb3B0YWJzLmRlZgpAQCAtMjY3 LDYgKzI2Nyw3IEBAIE9QVEFCX0QgKGZubXNfb3B0YWIsICJmbm1zJGE0IikK IAogT1BUQUJfRCAocmludF9vcHRhYiwgInJpbnQkYTIiKQogT1BUQUJfRCAo cm91bmRfb3B0YWIsICJyb3VuZCRhMiIpCitPUFRBQl9EIChyb3VuZGV2ZW5f b3B0YWIsICJyb3VuZGV2ZW4kYTIiKQogT1BUQUJfRCAoZmxvb3Jfb3B0YWIs ICJmbG9vciRhMiIpCiBPUFRBQl9EIChjZWlsX29wdGFiLCAiY2VpbCRhMiIp CiBPUFRBQl9EIChidHJ1bmNfb3B0YWIsICJidHJ1bmMkYTIiKQo= --0000000000004b4046058b4814cb--