From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 123943 invoked by alias); 10 Aug 2017 16:39:32 -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 123910 invoked by uid 89); 10 Aug 2017 16:39:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-14.9 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=256510 X-HELO: mail-qt0-f179.google.com Received: from mail-qt0-f179.google.com (HELO mail-qt0-f179.google.com) (209.85.216.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 10 Aug 2017 16:39:28 +0000 Received: by mail-qt0-f179.google.com with SMTP id v29so7509763qtv.3 for ; Thu, 10 Aug 2017 09:39:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=cjyoMVMsaANii2AV2yOWk1qdPoCBRtxBEdLc58X4WHE=; b=IJwgGU6Ran4Yv7ljx95Euz/ZiXTAvX+9nOTsllWCh3l6tCufXAEGYLJHudIc5TPoCc nOBjiU2YSL9q1jWrk4Pu31kNLv9CXGNmKn7CjZ57tc2LV3rRKoSaqiPZBBZYvU30tSf8 hJIkTpyNX2f1wO20pUrGoZivSCoCzIr6KPVVpKVvJ/EYWd8lcfOQAo/hi9P3ZjCQfKmE xdlloUIURhk9u474UsW5dC0wVpqNRI6QTG66IS9ernqZ5idEVzwCWGThfkLo6cUoJf1v Zz0qw2/6B6WDPpjgTE6RH50vSl1IE9QmTvukCTa8cWVqSHHuGecv/abuaWgkwGR+GSJK NwAw== X-Gm-Message-State: AHYfb5ggzAr7vp4AkDYmgRASkSdFqy7Z8Ilv3yJuZ5GUHQlpJIeG5qqm FHjyVwzYGEWaLvBYXG7ZbQpHwaRW3rKeCyo= X-Received: by 10.200.3.171 with SMTP id t43mr16523141qtg.232.1502383166086; Thu, 10 Aug 2017 09:39:26 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.38.249 with HTTP; Thu, 10 Aug 2017 09:39:05 -0700 (PDT) From: =?UTF-8?B?UGVra2EgSsOkw6Rza2Vsw6RpbmVu?= Date: Thu, 10 Aug 2017 17:54:00 -0000 Message-ID: Subject: [PATCH] -fftz-math: assume that denorms _must_ be flushed to zero optimizations To: GCC Patches , =?UTF-8?Q?Henry_Linjam=C3=A4ki?= , Martin Jambor Content-Type: multipart/mixed; boundary="f4030435abc4eedfd1055668d640" X-SW-Source: 2017-08/txt/msg00755.txt.bz2 --f4030435abc4eedfd1055668d640 Content-Type: text/plain; charset="UTF-8" Content-length: 692 Hi, The attached patch adds a new switch -fftz-math which makes certain optimizations assume that "flush to zero" behavior of denormal inputs and outputs is not an optimization hint, but required behavior for semantical correctness. The need for this was initiated by HSAIL (BRIG). With HSAIL, flush to zero handling is required, (not only "allowed") in case an HSAIL instruction is marked with the 'ftz' modifier (all HSA Base profile instructions are). The patch is not complete and likely misses many optimizations. However, it is a starting point that fixes a few cases brought out by the HSAIL conformance suite. We plan to extend this as new cases come up. OK for trunk? BR, Pekka --f4030435abc4eedfd1055668d640 Content-Type: text/x-patch; charset="US-ASCII"; name="gcc-ftz-math-switch.patch" Content-Disposition: attachment; filename="gcc-ftz-math-switch.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j66o1nx60 Content-length: 5320 SW5kZXg6IGdjYy9jb21tb24ub3B0Cj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIGdjYy9jb21tb24ub3B0CShyZXZpc2lvbiAyNTEwMjYpCisrKyBnY2Mv Y29tbW9uLm9wdAkod29ya2luZyBjb3B5KQpAQCAtMjI4MSw2ICsyMjgxLDEx IEBACiBDb21tb24gUmVwb3J0IFZhcihmbGFnX3NpbmdsZV9wcmVjaXNpb25f Y29uc3RhbnQpIE9wdGltaXphdGlvbgogQ29udmVydCBmbG9hdGluZyBwb2lu dCBjb25zdGFudHMgdG8gc2luZ2xlIHByZWNpc2lvbiBjb25zdGFudHMuCiAK K2ZmdHotbWF0aAorQ29tbW9uIFJlcG9ydCBWYXIoZmxhZ19mdHpfbWF0aCkg T3B0aW1pemF0aW9uCitPcHRpbWl6YXRpb25zIGhhbmRsZSBmbG9hdGluZy1w b2ludCBvcGVyYXRpb25zIGFzIHRoZXkgbXVzdCBmbHVzaAorc3Vibm9ybWFs IGZsb2F0aW5nLXBvaW50IHZhbHVlcyB0byB6ZXJvLgorCiBmc3BsaXQtaXZz LWluLXVucm9sbGVyCiBDb21tb24gUmVwb3J0IFZhcihmbGFnX3NwbGl0X2l2 c19pbl91bnJvbGxlcikgSW5pdCgxKSBPcHRpbWl6YXRpb24KIFNwbGl0IGxp ZmV0aW1lcyBvZiBpbmR1Y3Rpb24gdmFyaWFibGVzIHdoZW4gbG9vcHMgYXJl IHVucm9sbGVkLgpJbmRleDogZ2NjL2RvYy9pbnZva2UudGV4aQo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnY2MvZG9jL2ludm9rZS50ZXhpCShyZXZp c2lvbiAyNTEwMjYpCisrKyBnY2MvZG9jL2ludm9rZS50ZXhpCSh3b3JraW5n IGNvcHkpCkBAIC05NDU4LDYgKzk0NTgsMTcgQEAKIFRoaXMgb3B0aW9uIGlz IGV4cGVyaW1lbnRhbCBhbmQgZG9lcyBub3QgY3VycmVudGx5IGd1YXJhbnRl ZSB0bwogZGlzYWJsZSBhbGwgR0NDIG9wdGltaXphdGlvbnMgdGhhdCBhZmZl Y3Qgc2lnbmFsaW5nIE5hTiBiZWhhdmlvci4KIAorQGl0ZW0gLWZmdHotbWF0 aAorQG9waW5kZXggZnR6LW1hdGgKK1RoaXMgb3B0aW9uIGlzIGV4cGVyaW1l bnRhbC4gV2l0aCB0aGlzIGZsYWcgb24gR0NDIHRyZWF0cworZmxvYXRpbmct cG9pbnQgb3BlcmF0aW9ucyAoZXhjZXB0IGFicywgY2xhc3MsIGNvcHlzaWdu IGFuZCBuZWcpIGFzCit0aGV5IG11c3QgZmx1c2ggc3Vibm9ybWFsIGlucHV0 IG9wZXJhbmRzIGFuZCByZXN1bHRzIHRvIHplcm8KKyhGVFopLiBUaGUgRlRa IHJ1bGVzIGFyZSBkZXJpdmVkIGZyb20gSFNBIFByb2dyYW1tZXJzIFJlZmVy ZW5jZSBNYW51YWwKK2ZvciB0aGUgYmFzZSBwcm9maWxlLiBUaGlzIGFsdGVy cyBvcHRpbWl6YXRpb25zIHRoYXQgd291bGQgYnJlYWsgdGhlCitydWxlcywg Zm9yIGV4YW1wbGUgWCAqIDEgLT4gWCBzaW1wbGlmaWNhdGlvbi4gVGhlIG9w dGlvbiBhc3N1bWVzIHRoZQordGFyZ2V0IHN1cHBvcnRzIEZUWiBpbiBoYXJk d2FyZSBhbmQgaGFzIGl0IGVuYWJsZWQgLSBlaXRoZXIgYnkgZGVmYXVsdAor b3Igc2V0IGJ5IHRoZSB1c2VyLgorCiBAaXRlbSAtZm5vLWZwLWludC1idWls dGluLWluZXhhY3QKIEBvcGluZGV4IGZuby1mcC1pbnQtYnVpbHRpbi1pbmV4 YWN0CiBEbyBub3QgYWxsb3cgdGhlIGJ1aWx0LWluIGZ1bmN0aW9ucyBAY29k ZXtjZWlsfSwgQGNvZGV7Zmxvb3J9LApJbmRleDogZ2NjL2ZvbGQtY29uc3Qt Y2FsbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9mb2xkLWNv bnN0LWNhbGwuYwkocmV2aXNpb24gMjUxMDI2KQorKysgZ2NjL2ZvbGQtY29u c3QtY2FsbC5jCSh3b3JraW5nIGNvcHkpCkBAIC02OTcsNyArNjk3LDcgQEAK IAkgICAgICAmJiBkb19tcGZyX2FyZzEgKHJlc3VsdCwgbXBmcl95MSwgYXJn LCBmb3JtYXQpKTsKIAogICAgIENBU0VfQ0ZOX0ZMT09SOgotICAgICAgaWYg KCFSRUFMX1ZBTFVFX0lTTkFOICgqYXJnKSB8fCAhZmxhZ19lcnJub19tYXRo KQorICAgICAgaWYgKCghUkVBTF9WQUxVRV9JU05BTiAoKmFyZykgfHwgIWZs YWdfZXJybm9fbWF0aCkgJiYgIWZsYWdfZnR6X21hdGgpCiAJewogCSAgcmVh bF9mbG9vciAocmVzdWx0LCBmb3JtYXQsIGFyZyk7CiAJICByZXR1cm4gdHJ1 ZTsKQEAgLTcwNSw3ICs3MDUsNyBAQAogICAgICAgcmV0dXJuIGZhbHNlOwog CiAgICAgQ0FTRV9DRk5fQ0VJTDoKLSAgICAgIGlmICghUkVBTF9WQUxVRV9J U05BTiAoKmFyZykgfHwgIWZsYWdfZXJybm9fbWF0aCkKKyAgICAgIGlmICgo IVJFQUxfVkFMVUVfSVNOQU4gKCphcmcpIHx8ICFmbGFnX2Vycm5vX21hdGgp ICYmICFmbGFnX2Z0el9tYXRoKQogCXsKIAkgIHJlYWxfY2VpbCAocmVzdWx0 LCBmb3JtYXQsIGFyZyk7CiAJICByZXR1cm4gdHJ1ZTsKSW5kZXg6IGdjYy9t YXRjaC5wZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvbWF0Y2gu cGQJKHJldmlzaW9uIDI1MTAyNikKKysrIGdjYy9tYXRjaC5wZAkod29ya2lu ZyBjb3B5KQpAQCAtMTQzLDYgKzE0Myw3IEBACiAoc2ltcGxpZnkKICAobXVs dCBAMCByZWFsX29uZXApCiAgKGlmICghSE9OT1JfU05BTlMgKHR5cGUpCisg ICAgICAmJiAhZmxhZ19mdHpfbWF0aAogICAgICAgJiYgKCFIT05PUl9TSUdO RURfWkVST1MgKHR5cGUpCiAgICAgICAgICAgfHwgIUNPTVBMRVhfRkxPQVRf VFlQRV9QICh0eXBlKSkpCiAgIChub25fbHZhbHVlIEAwKSkpCkBAIC0xNTEs NiArMTUyLDcgQEAKIChzaW1wbGlmeQogIChtdWx0IEAwIHJlYWxfbWludXNf b25lcCkKICAgKGlmICghSE9OT1JfU05BTlMgKHR5cGUpCisgICAgICAgJiYg IWZsYWdfZnR6X21hdGgKICAgICAgICAmJiAoIUhPTk9SX1NJR05FRF9aRVJP UyAodHlwZSkKICAgICAgICAgICAgfHwgIUNPTVBMRVhfRkxPQVRfVFlQRV9Q ICh0eXBlKSkpCiAgICAobmVnYXRlIEAwKSkpCkBAIC0zMzIsMTMgKzMzNCwx MyBAQAogLyogSW4gSUVFRSBmbG9hdGluZyBwb2ludCwgeC8xIGlzIG5vdCBl cXVpdmFsZW50IHRvIHggZm9yIHNuYW5zLiAgKi8KIChzaW1wbGlmeQogIChy ZGl2IEAwIHJlYWxfb25lcCkKLSAoaWYgKCFIT05PUl9TTkFOUyAodHlwZSkp CisgKGlmICghSE9OT1JfU05BTlMgKHR5cGUpICYmICFmbGFnX2Z0el9tYXRo KQogICAobm9uX2x2YWx1ZSBAMCkpKQogCiAvKiBJbiBJRUVFIGZsb2F0aW5n IHBvaW50LCB4Ly0xIGlzIG5vdCBlcXVpdmFsZW50IHRvIC14IGZvciBzbmFu cy4gICovCiAoc2ltcGxpZnkKICAocmRpdiBAMCByZWFsX21pbnVzX29uZXAp Ci0gKGlmICghSE9OT1JfU05BTlMgKHR5cGUpKQorIChpZiAoIUhPTk9SX1NO QU5TICh0eXBlKSAmJiAhZmxhZ19mdHpfbWF0aCkKICAgKG5lZ2F0ZSBAMCkp KQogCiAoaWYgKGZsYWdfcmVjaXByb2NhbF9tYXRoKQpJbmRleDogZ2NjL3Np bXBsaWZ5LXJ0eC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdjYy9z aW1wbGlmeS1ydHguYwkocmV2aXNpb24gMjUxMDI2KQorKysgZ2NjL3NpbXBs aWZ5LXJ0eC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNTY1LDggKzI1NjUsMTAg QEAKIAlyZXR1cm4gb3AxOwogCiAgICAgICAvKiBJbiBJRUVFIGZsb2F0aW5n IHBvaW50LCB4KjEgaXMgbm90IGVxdWl2YWxlbnQgdG8geCBmb3IKLQkgc2ln bmFsbGluZyBOYU5zLiAgKi8KKwkgc2lnbmFsbGluZyBOYU5zLgorCSBGb3Ig LWZmdHotbWF0aCwgeCoxIGlzIG5vdCBlcXVpdmFsZW50IHRvIHggZm9yIHN1 Ym5vcm1hbHMuICovCiAgICAgICBpZiAoIUhPTk9SX1NOQU5TIChtb2RlKQor CSAgJiYgKEZMT0FUX01PREVfUCAobW9kZSkgJiYgIWZsYWdfZnR6X21hdGgp CiAJICAmJiB0cnVlb3AxID09IENPTlNUMV9SVFggKG1vZGUpKQogCXJldHVy biBvcDA7CiAK --f4030435abc4eedfd1055668d640--