From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6055 invoked by alias); 10 Aug 2017 14:58:31 -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 4426 invoked by uid 89); 10 Aug 2017 14:58:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:EUR03-D, Hx-languages-length:1579 X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr40079.outbound.protection.outlook.com (HELO EUR03-DB5-obe.outbound.protection.outlook.com) (40.107.4.79) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 10 Aug 2017 14:58:25 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Received: from [10.2.206.69] (217.140.96.140) by VI1PR0802MB2495.eurprd08.prod.outlook.com (2603:10a6:800:b6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1320.16; Thu, 10 Aug 2017 14:58:21 +0000 Message-ID: <598C748A.6080008@arm.com> Date: Thu, 10 Aug 2017 16:39:00 -0000 From: Szabolcs Nagy User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0 MIME-Version: 1.0 To: Tamar Christina , GCC Patches CC: nd@arm.com, James Greenhalgh , Richard Earnshaw , Marcus Shawcroft Subject: Re: [PATCH][GCC][AArch64] Inline calls to lrint when possible References: In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: AM3PR03CA0059.eurprd03.prod.outlook.com (2603:10a6:207:5::17) To VI1PR0802MB2495.eurprd08.prod.outlook.com (2603:10a6:800:b6::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a984afe0-fdde-442d-8cc5-08d4e0003e5c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:VI1PR0802MB2495; X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2495;3:NhI9qpAfCI1hDA3QiugK6nr/qKtIQy+SzVdyQ6QDiDs/DV2HyOfsysHQKhPYw/sCuSAVuyz6h5iUA+YdNpSicqrZFGTjnDC0lYo9ia+d20MPrlwKWA7/HZlZew5fkPbThAh7e9f/nHbn7pwElUJZ/vI6eRxajPXUr6Tl48h2LTM6q2+k96JLXL5MQx5+/pkgTMl0dN/qEti7kEKqqwHfSa4lS8uW+Cg+3QmyZZoDdJSQaJSVgVEIjVA5+pFc3wkq;25:kXKNKu3KBfPUG589Sz6bjEdHlDH7nlMTL9b7L7U6JILHpAkJWS1F7ohJ3+fnXHRpeM23hcrVjTwKRqj9YLofWNqLGlD7fOm4WySlnqUzCOU/sI0Eydr4pepWqGFXemuCx9UxwZAmPoTWQbFg/1CD2D4nqy6v9tH9VbmJSnwOES/zFzkilcVj+K3LEGITTM4UbBnzGYG2+0c8Et9Ay7brl1V+MJOqYTtXW7/q+UadA+oAgf3QF7MgoHywD/pXnb3iGaIMtNA9S0BYW4EJvOs4uFmzdgCzdVXwdCgHxMtgjkkuensntz6s/pP0s1xoT71Ssie2X0IBmGhWAOU/nx8sEQ==;31:nAlrGPNTL0kEZ6zOxRyczLsCBs8H9c7IlHr54C6BS+yXRycH+gCLAGsl0X3+WuTDhxmuuihRHy80MLAY4p2DXl4cgXpd+h9StOwogspAtLOfXbmGg37jjhSx/CZv88tGjRShawKc7+ufWLbGPHE7COOzaUufwcK/HciR1NhkhfMaAlLTiPqJWPFMwpdKg9DmsCc0OHHXD6qKiZQ8qVKCyt5UjpbgROx6DuZMWqRCfdo= X-MS-TrafficTypeDiagnostic: VI1PR0802MB2495: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2495;20:qnC/SUUZ+ALEGpNYnAdjF6g8lYDX3h+w2xPHd4HaoUn2ulM6jmk+yrgd1ebyp1YW4PeWZamiwL20luwKM95QAcV6So+TQn9YNwB6rZtQddQUH8DJ4COrGHahhLiVqsx2g6deVRVKNbVkH+vfIaMntRTglMTPgJm8TU/ZoOHXWAI=;4:oQbuz99t8q4As+/h+MAeyry+bx3xZamLIMdmoFfKyyUSvWiTIo7+nyDxh2dVfanhFMfLVfjvW/BJ/cEzTOnbwTGOhkue8wEFpYRJnC09fj3GVNiYQCOzcxEqhTm9Z2oyYuref6UDe4Ot2vk8jAGFLHK2bnpWtXi9zA0snKLmJOMixeqZRpgGcAS0HLddunG2FZg9ePPEHAC+RA3pCukAEsEms8QhbpgEDvAsaXdrRNYgnTe4Tgs03JCTJbmfYDaD5iLE6xVJteXFXjFoJVJr5wAbASkxNwGjv10FV9O3sj7Qq1b1X13qsVmE+eBA1oziqqiSJhkNXmgN93mZMi8d9+vcmqf6dHjOlc27NOXTjkE= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(22074186197030)(183786458502308); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123562025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:VI1PR0802MB2495;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:VI1PR0802MB2495; X-Forefront-PRVS: 03950F25EC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(7370300001)(6049001)(6009001)(39450400003)(39840400002)(39850400002)(39410400002)(39860400002)(39400400002)(24454002)(189002)(53754006)(377424004)(199003)(59896002)(5660300001)(53936002)(64126003)(53546010)(54906002)(65816999)(72206003)(65956001)(33656002)(65806001)(50466002)(36756003)(66066001)(47776003)(80316001)(4326008)(77096006)(4001350100001)(68736007)(6306002)(97736004)(189998001)(25786009)(101416001)(87266999)(54356999)(966005)(50986999)(6486002)(76176999)(7350300001)(106356001)(478600001)(86362001)(81156014)(105586002)(81166006)(8676002)(229853002)(2906002)(83506001)(23746002)(42186005)(230700001)(305945005)(6246003)(3846002)(7736002)(38730400002)(6116002)(6666003)(2950100002)(3076002);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR0802MB2495;H:[10.2.206.69];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;VI1PR0802MB2495;23:040VM1jduqAisV3ushFPwFS8ErJCfHdSgOY?= =?Windows-1252?Q?vf9BH+sQ4kWRVv3OJ5kfLRrvDpFCY9zKZe5Qk3cwHntw5cPoiozN7hsS?= =?Windows-1252?Q?mqO3AM3Uy21EDyEWViiVpK8xS1PrNU9MPaCylgrwSg7S/tDDf8pVI5xH?= =?Windows-1252?Q?JrdqFxH/e+w3iwxQoW+U5MNP6xibu665OgfCGPaLjkXdhnTNoSw/qiSD?= =?Windows-1252?Q?i4JIxNNDT6Zpe5/CRaztL6abcTY5E3oLfxA7nDEoMjsy8xQPd1+ZWWzH?= =?Windows-1252?Q?9+EBlaC8Nq/8kbN4sH8r4APDdJVRtfk060DjZ9Plq1mmUpm7miBWQIK2?= =?Windows-1252?Q?uCM87KFEk13/4fD+2AOnRCQF35ZDYkQDM/rR1DiPz9lpz34Ow6RWq0Bh?= =?Windows-1252?Q?cKMuSvMIeVgy0/0Z/ke37My7PJnEXxTrlV4bs8V2eY3ZAoGHNSqZzn+F?= =?Windows-1252?Q?F6BI3pJJebMoVytQQ0ZsaHx4bXubadly/TQMYadYSQf6UsUHyZz86/Sr?= =?Windows-1252?Q?kCyxXXUM95dj11faen7rAkgFTqzI8Ncg1J9p5Q8xju7sqjTNajhzxksK?= =?Windows-1252?Q?bRmzb8zGAGMi9BKTwTIEyh6YqLSM6Q3Q4SCi37JWp45/24cQHq6aOptm?= =?Windows-1252?Q?26QybBYson74SDw0FzJDXqsphmlE4usuXzDbrYWC/IxS+Q7LgPuJF+TI?= =?Windows-1252?Q?w9eHTtA8KCM2Z4yomlYNZJJjDmDNJSW2ZBTpc6PZnRRvJm5hOEF74tUP?= =?Windows-1252?Q?ZGmCnyY/BF23Cm+yqDwJYLa9TJB4TdIJvbUUMK9p57AksxzM4VXDW9Y1?= =?Windows-1252?Q?HxC1Ug7176GbT8nEA4F0BK+ysSdK/osWG61AVgvQrBAOHwuSBCXnBktY?= =?Windows-1252?Q?uWG64+RtpsHx+axGzLPPuTHEBBoJnD1UympXf7OHzBJ22W+RcodNS1wr?= =?Windows-1252?Q?XD1gzUIdnM+X4RGbo3FsQ8Qyz3Yxl4OaYMUdDm4g/TCNPP2WZQCIZW/J?= =?Windows-1252?Q?Qm/VRAzaiNR5Y8/CaLhE3m4uvJYmg8L3F8EYPAu7rYwThVMe6vW2AC15?= =?Windows-1252?Q?ISR3O4oJHLPEMG1ysuFQgjmxulVNSx3ucXuRdpY/NQ2eJv9rTlGK7LxA?= =?Windows-1252?Q?V/U5lZ/YCQ0iySvV3waQR363NKVr/azHPfWc9Et1f6LeKRqbmyBGv7Hf?= =?Windows-1252?Q?QQhd04YJ3Yv0EHPJlMcRh0iCo4njEl5q/W1vOMIaEj+D5CFSY3WkBk1S?= =?Windows-1252?Q?TpdDCJfrRCzILtvgniivypiZhz3FASXLYtABD2kjZBcJtoILwKDrOclR?= =?Windows-1252?Q?Lm6yw26NGYJMp49/hSwAjktJGU/HN3ruBgXNzm4ipaVlVVKbjKorRe7n?= =?Windows-1252?Q?ocnutPv++ONTziigMPuASydFi2K4LZRhmpCJWTNqSNrFBPWMkg7cZ+Bi?= =?Windows-1252?Q?9LS5khhb/Ak806AwWrYj1iS9gcbQPaAQOVW+hgahznboheh0j/1wkpba?= =?Windows-1252?Q?P3/gmsG6hUbjVSzvoKOqiUkJqmwV6zxwjIpNTLghTYyb6YR8MDWlZR8G?= =?Windows-1252?Q?FFQiQvDjail7PRrwL5GX8XlteX9BdcNHi0SbHfoP9sPsATYFfECTROAB?= =?Windows-1252?Q?p+VPBDDNRbLmAiZtflxyuAARJkrxn4HzP6ajALJoxrIhTPPKZKfIarGS?= =?Windows-1252?Q?jxsvIe18o+uJquSL19Qr04uLPPsGTQjfqB1BMzIBBSds//u6+4pV0S1S?= =?Windows-1252?Q?X44McJ1ZH62U8TD0WaCqEEHfRep3UMYLeU6BPXyDmN5U9fSmAAxUktj/?= =?Windows-1252?Q?ROVNf?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR0802MB2495;6:cVM3XrrWUNyw3xMFXyQLMvGkcVjkXA/eoxWjzY/K6XEbLI248lo+0PXQ1zD5cCIs8dRcHGJrsp/6/zNdVbAv1p88cw5EW4MpAitqx7HoCK2hinSeBDzsryd9XQ++YTiaSTCJFTMPCCaYZNTfsFqSb5PqKkzRlBVoqNfB6Ef1FLleiJ9vMyYEigkhL6hD7r9xVqk0a2602zZPicMxJKqyuWW56b9luQGs2ACBnGGzDp0st//dv6/8BYSpdYKllNUaP9XH4GKq0M809fnI6aq3D4zWkkF+s2dyyp4rLvLnLHrwothoCYmQ07De9I+DulYT+mBh7ra5h+lEWSOp70n8KA==;5:JsTsTNnRLX5jiSEpkc69Zfg03mgRfiXR5d8eK8NZBTOJcCg2GuW9LvT/UQfPMZ8qm2q3EeMa/mVMMcQS3nY5HgX/p12BnEvgMB6y90Hy8U1M/TpGyd/oIZUEg8tXjaHBDZeRhCTOniEkGeQfwhSDJA==;24:gdn28Vc5jE1ZPOIMWWek+LjSOMVxgKr4qmhHXXBuhdL3vIPZhAk5XqcFMtqa8Ah9BE0I+iY7y6q2x0MigCoG7NQvmb/p7shnt9ybiVYw8JE=;7:UlV3Lei3RjvODWzyqOBekO3IOSNvDF3xXqLebuIwjIrwFD5wMCqHbVSqSZSLJFUpKMzr6anF/AXKC0alhjYgcKz5r2pXBWOQwEXwao5AFusNg3BcZcTZfO0/eMB8TD4qeH4mrAhpz2PbgHMfHrKkxW3Xb/1mPs/TTVlvdPF+iDLtW7OmWEKu9OlL5uOHGMs8nVlZYdVhLNgYo6/1r5FIEOe9zB8y5NPwb8Gtw7VIv3k= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Aug 2017 14:58:21.1644 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2495 X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg00753.txt.bz2 On 07/06/17 12:38, Tamar Christina wrote: > Hi All, > > This patch allows the inlining of lrint when -fno-math-errno > assuming that errno does not need to be set when the rounded value > is not representable as a long. > turns out emitting frintx+fcvtzs is wrong for ilp32 because spurious inexact may be raised when the final result is out-of-bound for 32bit long. i opened https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81800 > The case > > void f(double *a, long *b, double x) > { > *a = __builtin_rint(x); > *b = __builtin_lrint(x); > } > > now generates with -fno-math-errno: > > f: > frintx d0, d0 > fcvtzs x2, d0 > str d0, [x0] > str x2, [x1] > ret > > When the flag is not used the same function call is emitted as before: > > f: > stp x29, x30, [sp, -32]! > frintx d1, d0 > add x29, sp, 0 > str x19, [sp, 16] > mov x19, x1 > str d1, [x0] > bl lrint > str x0, [x19] > ldr x19, [sp, 16] > ldp x29, x30, [sp], 32 > ret > > Bootstrapped and regtested on aarch64-none-linux-gnu and no regressions. > The patch also has no regressions on Spec2006. > > Ok for trunk? > > gcc/ > 2017-06-07 Tamar Christina > > * config/aarch64/aarch64.md (lrint2): New. > > gcc/testsuite/ > 2017-06-07 Tamar Christina > > * gcc.target/aarch64/lrint-matherr.h: New. > * gcc.target/aarch64/inline-lrint_1.c: New. > * gcc.target/aarch64/inline-lrint_2.c: New. > * gcc.target/aarch64/no-inline-lrint_1.c: New. > * gcc.target/aarch64/no-inline-lrint_2.c: New. >