[{"id":1771840,"web_url":"http://patchwork.ozlabs.org/comment/1771840/","msgid":"<59C26B81.70200@arm.com>","list_archive_url":null,"date":"2017-09-20T13:22:09","subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","submitter":{"id":65667,"url":"http://patchwork.ozlabs.org/api/people/65667/","name":"Szabolcs Nagy","email":"szabolcs.nagy@arm.com"},"content":"On 19/09/17 13:52, Szabolcs Nagy wrote:\n> Based on new expf and exp2f code from\n> https://github.com/ARM-software/optimized-routines/\n> \n> with the new expf benchmark (with wrapper, aarch64):\n> reciprocal-throughput: 2.3x faster\n> latency: 1.7x faster\n> with the new expf benchmark (without wrapper, aarch64):\n> reciprocal-throughput: 3.3x faster\n> latency: 1.7x faster\n> with naive ubenchmark (without wrapper, aarch64):\n> reciprocal-throughput: 3.7x faster\n> latency: 1.3x faster\n\nwith the committed exp2f benchmark it's\n\nreciprocal-throughput: 2.8x faster\nlatency: 1.3x faster\n\n> libm.so size on aarch64:\n> .text size: -152 bytes\n> .rodata size: -1740 bytes\n> expf/exp2f worst case nearest rounding error: 0.502 ulp\n> worst case non-nearest rounding error: 1 ulp\n> \n> Error checks are inline and errno setting is in separate\n> tail called functions, but the wrappers are kept in this\n> patch to handle the _LIB_VERSION==_SVID_ case.  (So e.g.\n> errno is set twice for expf calls and once __expf_finite\n> calls now on targets where the new code is used.)\n> \n> Double precision arithmetics is used which is expected\n> to be faster on most targets (including soft-float) than\n> using single precision and it is easier to get good\n> precision result with it.\n> \n> Const data is kept in a separate translation unit which\n> complicates maintenance a bit, but is expected to give\n> good code for literal loads on most targets and allows\n> sharing data across expf, exp2f and powf. (This data is\n> disabled on i386 and ia64 which have their own expf, exp2f\n> and powf code.)\n> \n> Some configuration is in a new math_config.h the settings\n> may need further discussion.\n> \n> Some details may need target specific tweaks:\n> - best convert and round to int operation in the arg\n> reduction may be different across targets.\n> - code was optimized on fma target, optimal polynomial\n> eval may be different without fma.\n> - gcc does not always generate good code for fp bit\n> representation access via unions or it may be inherently\n> slow on some target.\n> \n> The libm-test-ulps will need adjustment because..\n> - The argument reduction ideally uses nearest rounded rint,\n> but that is not efficient on most targets, so the polynomial\n> can get evaluated on a wider interval in non-nearest\n> rounding mode making 1 ulp errors common in that case.\n> - The polynomial is evaluated such that it has 1 ulp error\n> on negative tiny inputs with upward rounding, but in\n> exchange the evaluation is better pipelined.\n> \n> v3:\n> - Add sysdeps/m68k/m680x0/fpu/{math_errf/e_exp2f_data}.c\n> \n> 2017-09-19  Szabolcs Nagy  <szabolcs.nagy@arm.com>\n> \n> \t* math/Makefile (type-float-routines): Add math_errf and e_exp2f_data.\n> \t* sysdeps/aarch64/fpu/math_private.h (TOINT_INTRINSICS): Define.\n> \t(roundtoint, converttoint): Likewise.\n> \t* sysdeps/ieee754/flt-32/e_expf.c: New implementation.\n> \t* sysdeps/ieee754/flt-32/e_exp2f.c: New implementation.\n> \t* sysdeps/ieee754/flt-32/e_exp2f_data.c: New file.\n> \t* sysdeps/ieee754/flt-32/math_config.h: New file.\n> \t* sysdeps/ieee754/flt-32/math_errf.c: New file.\n> \t* sysdeps/ieee754/flt-32/t_exp2f.h: Remove.\n> \t* sysdeps/i386/fpu/e_exp2f_data.c: New file.\n> \t* sysdeps/i386/fpu/math_errf.c: New file.\n> \t* sysdeps/ia64/fpu/e_exp2f_data.c: New file.\n> \t* sysdeps/ia64/fpu/math_errf.c: New file.\n> \t* sysdeps/m68k/m680x0/fpu/e_exp2f_data.c: New file.\n> \t* sysdeps/m68k/m680x0/fpu/math_errf.c: New file.\n> \n>","headers":{"Return-Path":"<libc-alpha-return-84783-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-84783-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"t5dUF9J3\"; dkim-atps=neutral","sourceware.org; auth=none","spf=none (sender IP is )\n\tsmtp.mailfrom=Szabolcs.Nagy@arm.com; "],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy0lh4hbqz9rxj\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 20 Sep 2017 23:22:24 +1000 (AEST)","(qmail 78208 invoked by alias); 20 Sep 2017 13:22:19 -0000","(qmail 78197 invoked by uid 89); 20 Sep 2017 13:22:18 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:message-id:date:from:mime-version:to:cc\n\t:subject:references:in-reply-to:content-type\n\t:content-transfer-encoding; q=dns; s=default; b=nGdCUXx7K2GjZrbd\n\tv03CzxTcB/Yw1VbIjnZi6l8y+HB48iUtGC7c40LiHS5LXWZQ33u2P0Yj4P/Osqe/\n\tFDEUjiKuoLRhu34HRMBUxJPV5Dhiuo69I+8ntKIMdkjbLMl/FSVKRLxpljTcb5WO\n\tj/p7ycEUOVrxVIRHTo66OrFZN4U=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:message-id:date:from:mime-version:to:cc\n\t:subject:references:in-reply-to:content-type\n\t:content-transfer-encoding; s=default; bh=Mh8lFnMpmXeOum9tjY4Th/\n\ttvHc4=; b=t5dUF9J3PeTZju2+JGbfC2SKyhPgAT33c8DKDYWTRugfn0JXa+OuA9\n\t9eyc5Q2FzaynGARTgxnBqhWkCC2YZokHYXdGQ0UTL6bIQuZxmpD3k1eD1SH9xQD6\n\t5rpJBJoVV+B35nOvoP8f1bVQBeq8HFhaTwyyu9mqSnbQ/HISW9SaE=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.2 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE, SPF_HELO_PASS,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"EUR01-VE1-obe.outbound.protection.outlook.com","Message-ID":"<59C26B81.70200@arm.com>","Date":"Wed, 20 Sep 2017 14:22:09 +0100","From":"Szabolcs Nagy <szabolcs.nagy@arm.com>","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:31.0) Gecko/20100101 Thunderbird/31.8.0","MIME-Version":"1.0","To":"GNU C Library <libc-alpha@sourceware.org>","CC":"nd@arm.com","Subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","References":"<59C1123F.9080003@arm.com> <59C11310.5000004@arm.com>","In-Reply-To":"<59C11310.5000004@arm.com>","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"AM5PR0102CA0006.eurprd01.prod.exchangelabs.com\n\t(2603:10a6:206::19) To DB6PR0802MB2487.eurprd08.prod.outlook.com\n\t(2603:10a6:4:a0::22)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"0fdaddbd-79e6-4989-c0ad-08d5002a9a4c","X-MS-Office365-Filtering-HT":"Tenant","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DB6PR0802MB2487; ","X-Microsoft-Exchange-Diagnostics":["1; DB6PR0802MB2487;\n\t3:aC8NUQzYEuZL3uYdY+RTD4nTPJaD4WPnaS4S6sZtz3UBEFL5ra+zMIEIIwnRXd4r9ssWWlA9ALSCG6U29TE5sKLxTgfjMd+NBg+SKqQgMflOaQC/7/6PRBjy9cMqUzjuOhpTuwqq6zs0A/zJFaTFV8zRI13anSc/LL0b5fVyccIMJ2QJIHNL0ZsGB+VOeCZitESGA0gmEltptVMrBYgJ0flYddEFVsft8udaaBW4tjpksQE7Pu26rTQVa7XPZg/j;\n\t25:zWhLO3H43+jTUTYQY2DpT5IKjDtfMkf+O48qTfH4ZAF1291OP1gbZVipSxKlM9jild7qmZTtPlHf3QoHW6aoWHbJb0ZEJ3gdLkuS2/uPqLUXmEqZ0sftCw3FCieTn/SIUv8wNnulOht7ZfEurAKXZQClNc3QPCz1rrtqdDxpoQJkBFvVcnrrxO0xBdONjw8tgvtxjGSqtMJRlgPwyhlSOL0IF0xTsD67EaQn+3IqsmsITZoULrPpmYP9o8mUE4+OhLyxm29zvffjuQf6fBGExjl2XStG6cL5QfMlTrq9HgLoK5klqJ36GzEUkWX6WJtPm/N7NVoixJdy6ZE9jfZgeA==;\n\t31:4lYyqEAEiSacuilBCKzNnW+sE3VcGnNEWUdf09pWKtfQWaNRct8J2n2A50e450O7V8Zyezb7HRN3ow+OfG+tvNR6ArY3nR7zeSf/zfrZukR3+cG2wUQ1bMkMN2ope7nm7Ol0SQh/uZ2pYR82BLlo5QspHB8U2QlTVV4YoD/vJ/Ue6dGFFvGuckMu9YRvaS4J+9WGSETVTlG9ck/Zjtenr7XO4Sq9YRdirIetSUOU6Fo=","1; DB6PR0802MB2487;\n\t20:TUKfk30leKTsh3ENBZnWIiq9+C129V60azOqDvMHSE1x1MvhRXQGOJ6zkltYEOBcCzqwOh+JQvvblZrAlzpKDd4el7nEVVBRPy4QEudSJNhgW2+RMfRMNEfT5gZuikE0vWkvoRadDpLR1NIsgclzhElsETiDyoqPac42KT97Ri0=;\n\t4:PKfuNt9wZA078QDMpiX+/lrg8QkBHlo0zsZCmUCfNIpB0UNJwRkAmDKnlcYdn6WmxqXSXpGmXinENNmR5mOf236ZbWthqWkdlA2PfHVbrbVWDLHG9YPtFeUhf8T5EHyDoUYyKdpyDoAjM4qvxYxQZQ0AZlYrewePFWEOq8rMcSda8eW8thy85T2X+pO5NxbJg10JB6S8qulMoh6UmAExpDz9EFFPMJPaeHRg/k1+f9DnGERs6V3bt6IWdLNsSRNF52lVFQa5plk+6DM/bRjvlHiOlsW7d8L5AmIcmIzcs1uHE5nWrTbYQC5IdikPIfA2OcE/PkxjfhsGMo+u7ENFiw==","=?utf-8?q?1=3BDB6PR0802MB2487=3B23=3A7E?=\n\t=?utf-8?q?3V3M+V4QCWX/jwoqIKjlJTXOLK+dpRDtn7J4ZBubncclCUyWJBS5Iv7A?=\n\t=?utf-8?q?lUNMOzP2vMfHmIr1XrJc7phUMaBT8r6DRnJ3xK6cQHc64T6zFaMDwZhn?=\n\t=?utf-8?q?I4Kk3HNv/eFEz/cMEw2+Jv/IOCOxOdrCZhhoyvToRTf9DIzPsIAEDJVW?=\n\t=?utf-8?q?rFYwOeJkT74nOYSqX9rdOPb+WmvYkSP3BCl3C0X2COi38H+TSv0yg3RB?=\n\t=?utf-8?q?dEhTDvBP+/ObdE8byrFt1zyhBTrQbzjtFXMUdaB4TRGbi6uWXMrId90Z?=\n\t=?utf-8?q?YNns5SNx/AsNjk1rKxrizW94yeVaZA2eT739qzg9byCig+01uDuiqKk6?=\n\t=?utf-8?q?Mqde65DLJrgl7f9WzKbX9SdPgtKlAnVfisBeoll2ly6FBLWCJtv0a2rH?=\n\t=?utf-8?q?ovilj/Vm5ef8IZqK2GcgHZk1Wuv3uHwGhPL7eWJJPV6ArigqTO3QoM7e?=\n\t=?utf-8?q?NM4YTCuszOJ71X9TLoWN+wDLBDgIZnbmjS6nhzbUypFrFu3Lii6ArHPt?=\n\t=?utf-8?q?Oo0a8UHNxpdRNGF4nePn3Gix9Yv927SeHGtr2YSUv3rdcxw0C+4V1jEe?=\n\t=?utf-8?q?Lg1EE17Lji5aG11VqJ+X9SP/4+DD+EEFsGRe/J7N6RWTsssx0eVkBk3d?=\n\t=?utf-8?q?G3s7wGG1iSWZWb6Xf1xzCDgzJAyz/9cdfg8GGa5CXH/7sI9A+i7UPT4q?=\n\t=?utf-8?q?DDl9JHESjWye/eLwA7ISvK8vlmpDoJKYIHdihc2UHZe2NOLSoGdbuSM4?=\n\t=?utf-8?q?7MjjwVtZvQJMrZ/moepYkK0dhtKtUmvyp3vAqe8oH4rEWzAuKTxExE8t?=\n\t=?utf-8?q?6kvhyGi4YrUPVACZWP/S6SORavFL+nL+CdLJ7twoDgzMpfZ9DX2d6kd6?=\n\t=?utf-8?q?mobWM4OUS2nac99eJc1eP6Ar0EuJTcxFWtOsHcU9e1UnkvMyQiRdOVr+?=\n\t=?utf-8?q?kmJTwkBHDCxLIxycppiogUSTn5evesAH3NnTuG2WJeRSAnf5v2WfW/Xm?=\n\t=?utf-8?q?hxif3INuY5snQ4LqodNo3J7oIIi+zj4D/zyhwSO4E3Bx8tyq/GTIt0Uv?=\n\t=?utf-8?q?HmTNHMt2StIOcNondNkVITiURMM+qFtxIr2DmRC8Jnf12qLBVya0pm+0?=\n\t=?utf-8?q?oDUhr21YOFyjiLoBepYkzXqorCkiHhgr68W+VProbkPTVWRhm1K6FHQI?=\n\t=?utf-8?q?hH0sxImAVHWfJEtc/mtxSPsKSixPSGNifxsVqmhszn8Qtxm/al/k+Ot0?=\n\t=?utf-8?q?1JGRm6trI04WgOxwoVt+FUyWwgp+6XwAErDMy7wy0/v7G3bQ/YMpgFwN?=\n\t=?utf-8?q?HgbLjCQwIx3wJwfkZ4brRc/GyWMogDHXDv5qB1LcANfz4EoEe66DeR+s?=\n\t=?utf-8?q?g9OUm49PYCz3vrjUjFImn3tCEcDNoqZjCgHvPg/CnaTCQblI4VyNFivR?=\n\t=?utf-8?q?B23kW0eppuSJnXfr3eRwApqBJ4Lu6h0U/pfNbZKEQ=3D?=","1; DB6PR0802MB2487;\n\t6:30SBBUPZrztIxJfuTJTm/RdfMzdhYs+ag/fRZcoGr60sgct6dKUblpJfJI4XJLP7n4D/fagfoiVqvNvjEedoTeNIu8IZPwucc3P1n8jy495sg7SBmfYLnp4+iRTVIe2c87pq7r7PHwI0Pzk6qxSLUEV2lNJ86iytuocX50vJYeKL3yFg9tc1bTb79+Iog/LF6JEsU5WKhd3ZHXylDSiIR0lWqE9zO5x/pRjEzKgrvNvoKfPtLFMPQxWpQU5mcqU+UtAdLCz3p6kCTtslq454ZmPkNypcrmR3EX2NmasaS+Guzzx+BOxllp+aL6MJ6w3eVlkHq1EQu2lXHuGvfS1xSw==;\n\t5:vHA+bedmRMWXjREexDzpX+Gt5AEGpAfp6Tz0iz6QbXQjLFmw9KiR/1oKNCi3UqIniLilZAOFY1q+T59WGIR/cTEIrmligeXnDX7pnGpbrZ+BEMl9UTTbqs32C7TneNt8pHToOrDeqh1hh6TF4GCNXQ==;\n\t24:DepZ9MnsSmKRxeSsjQmVZ8nSRrPnrlham62N6OnqDRK8NyLwOslv05lhdnAnKEnTj20fgvcPaUpIJuCnRYUlioU/45ISvtrPMspaIANLA60=;\n\t7:SivpdFl8oOVJpm8HpJ1oLf8+ncqM0UXz2GhRH9falIOGXwLiz86HCFhz5zEWw9qJBLRuCX755YZVt4FHyw7DZ9iNYvAHuNGiMCt01Rhh14eZ7BfUybmCVUSwThBhM1JK8XOOIMVhA4BBNzYTYQoH74Ae0u7mcYHwD1+6pHfROTYiellV5Lsx0tzSvaP3IHYBb6WptnZFc58poMIeFIGCg5NQtPGoefvJDLaaSht4lpE="],"X-MS-TrafficTypeDiagnostic":"DB6PR0802MB2487:","NoDisclaimer":"True","X-Exchange-Antispam-Report-Test":"UriScan:(180628864354917)(166708455590820); ","X-Microsoft-Antispam-PRVS":"<DB6PR0802MB24872818FCED3F8C283F6884ED610@DB6PR0802MB2487.eurprd08.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR0802MB2487; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR0802MB2487; ","X-Forefront-PRVS":"04362AC73B","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10009020)(6049001)(6009001)(376002)(39860400002)(346002)(377424004)(199003)(189002)(24454002)(65956001)(66066001)(23676002)(65806001)(230700001)(6116002)(3846002)(47776003)(54356999)(33656002)(86362001)(76176999)(106356001)(101416001)(65816999)(53546010)(72206003)(6486002)(50986999)(77096006)(36756003)(229853002)(81156014)(8676002)(81166006)(8936002)(478600001)(105586002)(6246003)(4326008)(966005)(53936002)(6306002)(25786009)(7736002)(16576012)(5660300001)(189998001)(64126003)(16526017)(316002)(50466002)(6916009)(305945005)(2950100002)(58126008)(2906002)(83506001)(97736004)(68736007)(41533002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0802MB2487;\n\tH:[10.2.206.69]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:3;\n\tLANG:en; ","Received-SPF":"None (protection.outlook.com: arm.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"20 Sep 2017 13:22:11.7328\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"f34e5979-57d9-4aaa-ad4d-b122a662184d","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB6PR0802MB2487"}},{"id":1773197,"web_url":"http://patchwork.ozlabs.org/comment/1773197/","msgid":"<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","list_archive_url":null,"date":"2017-09-21T23:44:13","subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","submitter":{"id":4349,"url":"http://patchwork.ozlabs.org/api/people/4349/","name":"Joseph Myers","email":"joseph@codesourcery.com"},"content":"On Tue, 19 Sep 2017, Szabolcs Nagy wrote:\n\n> diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h\n> index 807111ea5a..775237ffb2 100644\n> --- a/sysdeps/aarch64/fpu/math_private.h\n> +++ b/sysdeps/aarch64/fpu/math_private.h\n> @@ -319,6 +319,26 @@ libc_feresetround_noex_aarch64_ctx (struct rm_ctx *ctx)\n>  #define libc_feresetround_noexf_ctx\tlibc_feresetround_noex_aarch64_ctx\n>  #define libc_feresetround_noexl_ctx\tlibc_feresetround_noex_aarch64_ctx\n>  \n> +/* Hack: only include the large arm_neon.h when needed.  */\n> +#ifdef _MATH_CONFIG_H\n> +#include <arm_neon.h>\n> +\n> +/* ACLE intrinsics for frintn and fcvtns instructions.  */\n> +#define TOINT_INTRINSICS 1\n\nI'd expect preprocessor indentation here, \"# include\" and \"# define\", \ninside #ifdef (I think it's only the toplevel multiple-include conditional \naround a whole file that doesn't get such indentation used).\n\n> +  /* x = k/N + r with r in [-1/(2N), 1/(2N)] and int k.  */\n> +  kd = (double) (xd + SHIFT); /* Rounding to double precision is required.  */\n\nRemark (not an issue while this code isn't used for 32-bit x86): a cast \nmay not achieve that rounding with the default -fexcess-precision=fast so \nusing this code for 32-bit x86 might require math_narrow_eval here.\n\n> +extern const struct exp2f_data\n> +{\n> +  uint64_t tab[1 << EXP2F_TABLE_BITS];\n> +  double shift_scaled;\n> +  double poly[EXP2F_POLY_ORDER];\n> +  double shift;\n> +  double invln2_scaled;\n> +  double poly_scaled[EXP2F_POLY_ORDER];\n> +} __exp2f_data;\n\nThis ought to be attribute_hidden as well.\n\nOK with the preprocessor indentation and attribute_hidden fixes.","headers":{"Return-Path":"<libc-alpha-return-84840-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-84840-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"eXSGCdBo\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xytdD6mgPz9t67\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 22 Sep 2017 09:49:10 +1000 (AEST)","(qmail 31650 invoked by alias); 21 Sep 2017 23:44:26 -0000","(qmail 31637 invoked by uid 89); 21 Sep 2017 23:44:25 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; q=dns; s=default; b=shNJq\n\tqETSrmymFI5LsifPS3dkQYX3SxepsRGqoKdFlGFzOpCu0+JD0YKo/Pvkn0ZSR+Gj\n\tRNfoH6P+mD3dYcE2BKKH0WOGsU3jBWuXMeh7RcRa6uTojuUMOpd1+0tgogbsHxGf\n\t0aWfXEr48Tw7bB4f/gj8bLPVWeX3m2KNYYVViY=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; s=default; bh=yp0oXsoZeF2\n\tc4vTFFY9yTruBqQE=; b=eXSGCdBofQ47sDh9llYTCcP6/2xI+80pr9dZFHomodT\n\tMqVPXcDHQBNpoFxH07tiQ4gWx4kwNrPjidT+KSASpzekkqO/rqsBHFBv61PBdmqe\n\ttxRNOYcFf/Vb0hloahtSMzMXwmFxkCWeXvLLZcoOlbvU5K1guB7XJCiePQ1fL4GM\n\t=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-24.5 required=5.0 tests=AWL, BAYES_00,\n\tGIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3,\n\tRCVD_IN_DNSWL_NONE, SPF_PASS,\n\tURIBL_RED autolearn=ham version=3.3.2 spammy=poly, Hack","X-HELO":"relay1.mentorg.com","Date":"Thu, 21 Sep 2017 23:44:13 +0000","From":"Joseph Myers <joseph@codesourcery.com>","To":"Szabolcs Nagy <szabolcs.nagy@arm.com>","CC":"GNU C Library <libc-alpha@sourceware.org>, <nd@arm.com>","Subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","In-Reply-To":"<59C11310.5000004@arm.com>","Message-ID":"<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","References":"<59C1123F.9080003@arm.com> <59C11310.5000004@arm.com>","User-Agent":"Alpine 2.20 (DEB 67 2015-01-07)","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"US-ASCII\"","X-ClientProxiedBy":"svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To\n\tsvr-ies-mbx-01.mgc.mentorg.com (139.181.222.1)"}},{"id":1773200,"web_url":"http://patchwork.ozlabs.org/comment/1773200/","msgid":"<alpine.DEB.2.20.1709212349380.20070@digraph.polyomino.org.uk>","list_archive_url":null,"date":"2017-09-21T23:50:25","subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","submitter":{"id":4349,"url":"http://patchwork.ozlabs.org/api/people/4349/","name":"Joseph Myers","email":"joseph@codesourcery.com"},"content":"Note that I'd expect each addition of an optimized function to add / \nupdate a NEWS entry.","headers":{"Return-Path":"<libc-alpha-return-84842-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-84842-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"FxAF/QsI\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xytfG3J2Dz9ryk\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 22 Sep 2017 09:50:46 +1000 (AEST)","(qmail 87573 invoked by alias); 21 Sep 2017 23:50:36 -0000","(qmail 83150 invoked by uid 89); 21 Sep 2017 23:50:35 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; q=dns; s=default; b=SJ81s\n\tutwlmcEI65KU+JNZH4yCjCLIGf0CXAgMoXIPQsgPLPkp37qL2J/hs2BqxLxsUSp8\n\tCbZZ/q/BQgGfCuwueAiEs0tmJosudCRMKwJcXfI0TihoragLzl0k1Cx+Wx7x5Wr2\n\tZMQLgGMH7okX30f6ywLRTIwUzcAEFwiZifn7Yc=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; s=default; bh=qFuvYdOgRq3\n\tGeaToYkG0v3NTxbQ=; b=FxAF/QsI2zh7T46xg8XU9Dbw1RsDP21WJ6dEEGrl95g\n\t++ZzL7OZmg8o3achcNwkEq2cSXhjPze6lqPsnIhPvdpdSgFkO/AxkSD1jSR7jtvr\n\tnNmUY6D6dZh3gJFJIpzB05iyri09nJkCQVRK3rcHN8ZpeQjM7LGMuCSzahz2G8hI\n\t=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.0 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE, SPF_PASS,\n\tURIBL_RED autolearn=ham version=3.3.2 spammy=","X-HELO":"relay1.mentorg.com","Date":"Thu, 21 Sep 2017 23:50:25 +0000","From":"Joseph Myers <joseph@codesourcery.com>","To":"Szabolcs Nagy <szabolcs.nagy@arm.com>","CC":"GNU C Library <libc-alpha@sourceware.org>, <nd@arm.com>","Subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","In-Reply-To":"<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","Message-ID":"<alpine.DEB.2.20.1709212349380.20070@digraph.polyomino.org.uk>","References":"<59C1123F.9080003@arm.com> <59C11310.5000004@arm.com>\n\t<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","User-Agent":"Alpine 2.20 (DEB 67 2015-01-07)","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"US-ASCII\"","X-ClientProxiedBy":"svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To\n\tsvr-ies-mbx-01.mgc.mentorg.com (139.181.222.1)"}},{"id":1773739,"web_url":"http://patchwork.ozlabs.org/comment/1773739/","msgid":"<59C539AA.2070008@arm.com>","list_archive_url":null,"date":"2017-09-22T16:26:18","subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","submitter":{"id":65667,"url":"http://patchwork.ozlabs.org/api/people/65667/","name":"Szabolcs Nagy","email":"szabolcs.nagy@arm.com"},"content":"On 22/09/17 00:44, Joseph Myers wrote:\n> On Tue, 19 Sep 2017, Szabolcs Nagy wrote:\n>> +  /* x = k/N + r with r in [-1/(2N), 1/(2N)] and int k.  */\n>> +  kd = (double) (xd + SHIFT); /* Rounding to double precision is required.  */\n> \n> Remark (not an issue while this code isn't used for 32-bit x86): a cast \n> may not achieve that rounding with the default -fexcess-precision=fast so \n> using this code for 32-bit x86 might require math_narrow_eval here.\n> \n\nit seems the generated code for i686 happens to be correct\nwith gcc-7, but i will add math_narrow_eval if that is\nneeded for guaranteed rounding here (in case it later gets\nenabled for i686).","headers":{"Return-Path":"<libc-alpha-return-84854-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-84854-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"ccDpueCX\"; dkim-atps=neutral","sourceware.org; auth=none","spf=none (sender IP is )\n\tsmtp.mailfrom=Szabolcs.Nagy@arm.com; "],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xzJlG6mfyz9s7g\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 23 Sep 2017 02:26:34 +1000 (AEST)","(qmail 102660 invoked by alias); 22 Sep 2017 16:26:28 -0000","(qmail 102650 invoked by uid 89); 22 Sep 2017 16:26:27 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:message-id:date:from:mime-version:to:cc\n\t:subject:references:in-reply-to:content-type\n\t:content-transfer-encoding; q=dns; s=default; b=SX7Wvz7qm/1ytuTZ\n\t1t7lCp/6bYE7JSWfVBOTo3Xux6q0bQjKIqNI4gsf+hy/QwOk+Ojep82gpFOMvIOo\n\tzJmYx7B3oXAOd2jlxr/ay2r9FZF8mnhJMeXf+9kenIqq/thqreOWunxIRtgXOquU\n\t3sHHG9ciKJOHINlMTgDBLtmyY3w=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:message-id:date:from:mime-version:to:cc\n\t:subject:references:in-reply-to:content-type\n\t:content-transfer-encoding; s=default; bh=a5UMg30F4I5FYS8jn9vPyu\n\t3Enn0=; b=ccDpueCXJnun7tgvSW97QIPSitXBiKGSRwWf2499ZXM77uzUVdIujC\n\tfznv2qFPtRDqVrZ/J2ZhtGjxw7KQH+jT0zWG0Ni6w8vc2tf0HyjqOG9GJYTC/kkn\n\tPxq8w3SMG+FEMF8/91ioaMIE0CWxIBe7jN4o36wavD4yLBqVi5CAI=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.2 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE, SPF_HELO_PASS,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"EUR01-HE1-obe.outbound.protection.outlook.com","Message-ID":"<59C539AA.2070008@arm.com>","Date":"Fri, 22 Sep 2017 17:26:18 +0100","From":"Szabolcs Nagy <szabolcs.nagy@arm.com>","User-Agent":"Mozilla/5.0 (X11; Linux x86_64;\n\trv:31.0) Gecko/20100101 Thunderbird/31.8.0","MIME-Version":"1.0","To":"Joseph Myers <joseph@codesourcery.com>","CC":"nd@arm.com, GNU C Library <libc-alpha@sourceware.org>","Subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","References":"<59C1123F.9080003@arm.com> <59C11310.5000004@arm.com>\n\t<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","In-Reply-To":"<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>","Content-Type":"text/plain; charset=windows-1252","Content-Transfer-Encoding":"7bit","X-ClientProxiedBy":"AM4PR0202CA0010.eurprd02.prod.outlook.com\n\t(2603:10a6:200:89::20) To DB6PR0802MB2487.eurprd08.prod.outlook.com\n\t(2603:10a6:4:a0::22)","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"7251cf50-bf53-4ec6-0bef-08d501d6a95d","X-MS-Office365-Filtering-HT":"Tenant","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:DB6PR0802MB2487; ","X-Microsoft-Exchange-Diagnostics":["1; DB6PR0802MB2487;\n\t3:onZXMG7J1sfunIAbg5jvmkn8gOSE2lZUWe/X7B5PT3RtQbS78Tir+RBiC1ClGarrYfLj+z0RM0oKGM5pNA47Pa85B0BcLFeDl8XsBIEGucM2pRTmWUnYAvDWBfCHp9H0w1dWUhoR4HHohsVv8P83IuNYQtQlc6efrNei+oWnsu/2T8IFNSxzRQucpeNfq2kfqc+Sf0x0v/9wGFduu+QMjmZ1fMr6CutMFfm44ZKqAhIReLlr1hO18FCUX8rWmvuA;\n\t25:3x83GpVz+y56YDgPwn6mOSagLgJPWY6nTNRN1sjYTrX2S667AScLjAr5x6NNhhmOTHJNNdVYh8fPiwr/UfiKPVKFBwUR853oHwo1SQVCkWT/SGWGUk5rzdRJ3aIZQ7arpP7Fb4knBfWzFbj7KfkdhOSKQTIYig3Ph8UO3ZmOAz1XS1oJviN/Qdz4xicJz8WsfieOSy+2oPekvUz9k5FbJOhc46O2KvAh3tp4/uXqUxtpxGkfD/WIEIcYmGpe45gbUjrCBmC1gqmDpwRUitcMpOhhj0uf9uxtk+WvJkth6DO1ViCcjs/jvlEeJYkmRUlefpizRE0T/NOuDcR8efngvg==;\n\t31:3QvPEXJNRspP5l3nB4/0k4teNLTWWI1fLkpLapPW6NKNw3RKUJZNP+vFpUBMFJfrbyK6T070jXtsx7ZF4oH1kL4DzjcIPQiDycoEq49mwzu4hnbMYoYwrd88BeklaJQCqeWqPwchg8egCCVA7okjwojB5VoCSVp9+xtqH6Mep7D11iuADxaCclR21EMVi1jr3rjU+5HIlY2tcI3V2nec9lmuP3Sp/QbFmwuR1yxo0Ps=","1; DB6PR0802MB2487;\n\t20:PwHUApa0rHE8a5WEvGJn8msHQfi9Bn5+IJ4iQBNJkkkt9G7yyd79qAmxrwvRZ0dq8BI60tNhVufQ0MmYcmq7gL7s5mQCiqV3f+xWm7HKUmE68xbE/R0EXf/3Ks+hbWL0DXJfauI29YOk8oQ94DWz5FKMPdsf7fq6xsOTfcAc6l0=;\n\t4:V4k55dAMgSHb9PxvDXgOUCVyNda538CXLwwgvFghl8xVm0IVCNFHdyAimYT8TSrDBK7WuU6Lmf8XSUVTWwJhGGAgsY9kdAMlRxCIUqYAKn/JF+6tyzDpeUQjzIEKZRRMuRmjm4+EGzCaXGLFfP9+7eWtwi15873PYxCdHZ1QUCkTchd1Yze957dfqPt1Cq34x/G6cXwD6Wh7EZKpM/uFwE3oMqmfxmtYKL1xTAnNkhdubmU+ovbMkrGh64cSvdah","=?windows-1252?q?1=3BDB6PR0802MB2487=3B?=\n\t=?windows-1252?q?23=3AofFglO4kwjLB5/0oZ1JF+6tSlMQWY7llsxPkrXJSKaks?=\n\t=?windows-1252?q?/gn5U24rXZ/E0Jb6JwjD4mRzRmmpXwJ+MWiliHKn2KNqyrI7x?=\n\t=?windows-1252?q?ZduCHDC+HXC15knaXeiDS2uLgJVAvVLbO2tq6fe9QGFI4G1uM?=\n\t=?windows-1252?q?0FO8XQ37z+THhMOEztcxot2Cjcjl+0FJcXx6wfneGi4sKJnAN?=\n\t=?windows-1252?q?0Hdf8oyCQdIjK3plNVw8jNbl3fde3ILseEkjmtaDf7EL2zpnr?=\n\t=?windows-1252?q?WWCc/RFleNlDGJKfl7V4yNu4mo5yeWoyG2qqtLW7y68oL2Lls?=\n\t=?windows-1252?q?bcJMpjMwNG8nBZYI5lxb3zbNNXZu1YqbmANJfoOgWCaSIisTJ?=\n\t=?windows-1252?q?r2IEO3wuta32JVUxmiJtviauT0zUQ7ehGnvT4ccxKIKqpahUJ?=\n\t=?windows-1252?q?ONisiKuwP8bYF9u3lOyxGmiuCro/XqunvHegsJBoO5nRj3nqc?=\n\t=?windows-1252?q?gW7bEmNNV3K7jGAw5Ds3mf8LGFqrLVk2g+t0Fv3BRYJHk6vya?=\n\t=?windows-1252?q?zpueaRqdN71QJZPmq3kCnk0Zy0o4dAonnx+kJQRJE+KHExdJ7?=\n\t=?windows-1252?q?6LgBG6sjkp0WA+k1A7f9fBQ/ps9pCmkr4r1g1eckzzCYULVzR?=\n\t=?windows-1252?q?AQvk2QM2IWHvuDI5KnEb8p6E+yvBUYn96bP5weF86VGd4yx3L?=\n\t=?windows-1252?q?PeIkXQAiCD3WSJkk5yvh9UasZ1hj2cnXRK6tIEOPz0J81EblX?=\n\t=?windows-1252?q?wAAMspmxp32YKsUF4DnF+ZSkKxHslcSq9xbglVJ91nvEBtO2D?=\n\t=?windows-1252?q?D4ZaAOvW7VucbDfpW90iwzlGbuBJ6HzQGIvhOadwvau3wk+56?=\n\t=?windows-1252?q?MdYst54vomqrqfuA1mAA1yvdNdhdG67UPKbgTF+IupRXrmlzm?=\n\t=?windows-1252?q?nlbcGxmg+8uKVZAFFsG3qdANWAN7PnRW70Nepi0AFaSTDZwYv?=\n\t=?windows-1252?q?zHgPuh2krc65ojGYKch1x5xBuc0IWAeLk7rVVTJRGoS+MPU/S?=\n\t=?windows-1252?q?+Na1SzK50ZwATvXG1ijo1Mk47AFb6FWmBZFJsyRjvm4anIsSU?=\n\t=?windows-1252?q?OL27Lxw4IEZoQ82LPViPjrEJAsbDg/PDPetzkPP5HdNwQTUZJ?=\n\t=?windows-1252?q?tPanNqM+rPA/+P+YAaV7tv+1cXHmFy2y8R/tmlBOPDladrDTz?=\n\t=?windows-1252?q?BFocVv7ZL8ZGzCSSg67CEt15xGu1AevD0GP8JMmhYYQZYfQfe?=\n\t=?windows-1252?q?va+tOSlVPNaNfybRo5fTFuN4p56Z5oAvuTZHoaG6QDCPWTwM4?=\n\t=?windows-1252?q?65iQ2xR5H/qnqYR57Gq/gkew5tsq+tCziDhEL1LgjLiM7LNeo?=\n\t=?windows-1252?q?oafXqTwlJnSg0xDo8Ysv3BgbYGv8w7TdMV9yL3QV0dyU1Qk3h?=\n\t=?windows-1252?q?jys37l9pUzWVof1hxumUeM+n3cEtdP6FKBLWUhgzJQxNCC4Rn?=\n\t=?windows-1252?q?eROn2JnXu0lS4qG6nft0rDgq6PjI/ltN/RhnHdkky1z326Cyz?=\n\t=?windows-1252?q?NtF5O9azn9Vz96ppLNwKYJpUI52KFmbvQbQK8Z7Ji?=","1; DB6PR0802MB2487;\n\t6:o7KXNmo98jkAE01SQkKKtWh2fgPm9jcFM2sQzhJc5KyvEnj8lZrLmg6MD55v+uUMT6YWiTWDHpC1XKXjhbLkD0iq12NCgie6qi/ynwt8cv60EuFwT2IkIbJyTyINHtwCWG3prfhRcfr1OGlbuJ/DAE526xLju/ySL00dKIhdxmJK2tVbClSrjMtN5gQf/MRubdxiGXqcdhDfbGM0eyT50SekDqCp1KdmC14xsHAkCiqs78i08NohiaSZUJ9ULQ1fFStskmnf64SchwVZ2ch2Gp6qO+6e2Ri21qPH4aLWnNcf6vhpEEMI6y49mISsjWDDKG5RCVcBkKkbY4SR8sPSOQ==;\n\t5:6ZcbC0/nXlEJgWWctIWcmlfDwTpY4MRPnFETsHNRsfxGO76sta3cmwVexccEhMhL0s8wc1cyjg+Lm3vCiIqE1RXhssyIou/TMJXIYFKsLZwluZJOTDDJbq2AjRxcrnYJfx1g+6Zkni69WMh4P8GCzA==;\n\t24:WvY2qQpTXYxMOJ4qicuJO0kjFfyQnNLP2QWj0sXd0dh1wUbV2fCRCmfMski9qMc1aKmFjFitmZ9cZpQ3JHVeSa374pSDbsBx8l+0+Ka8gCY=;\n\t7:9XbazxNiIiXD4HF6pKMSw1D2RoDQjZGZCkhKaKyTWL+5P2WYE2uxUhoYs+OlNws5dYekb704CZFcveSstoHBggps7FjInNOY4Q4MF6TpIo0bhKt6hHQIgexa4ERvVnNaVKup4MTQ1RcjeaNu53Yf2IIIT/+MazpN6Hlts0AKwMc7NTYNSK24ebCfdsCU2f1oCyJDJdi2Dpi637ANMaIHbDG+DAQZxYbnBHXG1djw3fo="],"X-MS-TrafficTypeDiagnostic":"DB6PR0802MB2487:","NoDisclaimer":"True","X-Exchange-Antispam-Report-Test":"UriScan:;","X-Microsoft-Antispam-PRVS":"<DB6PR0802MB248773E05FA98EF9D20AFEA8ED670@DB6PR0802MB2487.eurprd08.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:DB6PR0802MB2487; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:DB6PR0802MB2487; ","X-Forefront-PRVS":"0438F90F17","X-Forefront-Antispam-Report":"SFV:NSPM;\n\tSFS:(10009020)(6049001)(6009001)(39860400002)(346002)(376002)(189002)(24454002)(199003)(72206003)(8676002)(6486002)(8936002)(81166006)(105586002)(4326008)(81156014)(77096006)(53936002)(33656002)(6246003)(59896002)(478600001)(6116002)(86362001)(230700001)(23746002)(2906002)(68736007)(80316001)(3846002)(97736004)(65806001)(101416001)(65956001)(66066001)(47776003)(316002)(106356001)(50466002)(6666003)(83506001)(36756003)(16576012)(16526017)(189998001)(58126008)(2950100002)(6916009)(65816999)(7736002)(50986999)(229853002)(53546010)(87266999)(54356999)(305945005)(5660300001)(76176999)(25786009)(64126003)(41533002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0802MB2487;\n\tH:[10.2.206.69]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1;\n\tLANG:en; ","Received-SPF":"None (protection.outlook.com: arm.com does not designate\n\tpermitted sender hosts)","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"22 Sep 2017 16:26:21.4807\n\t(UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"f34e5979-57d9-4aaa-ad4d-b122a662184d","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"DB6PR0802MB2487"}},{"id":1773744,"web_url":"http://patchwork.ozlabs.org/comment/1773744/","msgid":"<alpine.DEB.2.20.1709221631520.17667@digraph.polyomino.org.uk>","list_archive_url":null,"date":"2017-09-22T16:33:16","subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","submitter":{"id":4349,"url":"http://patchwork.ozlabs.org/api/people/4349/","name":"Joseph Myers","email":"joseph@codesourcery.com"},"content":"On Fri, 22 Sep 2017, Szabolcs Nagy wrote:\n\n> On 22/09/17 00:44, Joseph Myers wrote:\n> > On Tue, 19 Sep 2017, Szabolcs Nagy wrote:\n> >> +  /* x = k/N + r with r in [-1/(2N), 1/(2N)] and int k.  */\n> >> +  kd = (double) (xd + SHIFT); /* Rounding to double precision is required.  */\n> > \n> > Remark (not an issue while this code isn't used for 32-bit x86): a cast \n> > may not achieve that rounding with the default -fexcess-precision=fast so \n> > using this code for 32-bit x86 might require math_narrow_eval here.\n> \n> it seems the generated code for i686 happens to be correct\n> with gcc-7, but i will add math_narrow_eval if that is\n> needed for guaranteed rounding here (in case it later gets\n> enabled for i686).\n\nNote that code like this appears in both expf and exp2f, though I only \nmentioned it once in my review.","headers":{"Return-Path":"<libc-alpha-return-84855-incoming=patchwork.ozlabs.org@sourceware.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list libc-alpha@sourceware.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=sourceware.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=libc-alpha-return-84855-incoming=patchwork.ozlabs.org@sourceware.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=\"Ob4Wj8Hq\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xzJvK0mcgz9t3w\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 23 Sep 2017 02:33:32 +1000 (AEST)","(qmail 118112 invoked by alias); 22 Sep 2017 16:33:27 -0000","(qmail 118102 invoked by uid 89); 22 Sep 2017 16:33:26 -0000"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; q=dns; s=default; b=pulMy\n\twIR59RxiD004xNraDLsDirgKhzVwsCiKQr7ZTBKE5eTHwyY/AMRpdaUG2iXN1EZP\n\toXAlqVp61V/cctCn/gnws1rUzaVcCflhEe0+oLjv38mmD23i0fsnvHVHyiT8devO\n\tizx4PFxKMPre5GWRsc6Zi4Oqa8v56VZMAK0sBE=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:date:from:to:cc:subject:in-reply-to:message-id\n\t:references:mime-version:content-type; s=default; bh=bANqgrRSItV\n\thIL6SYTA8kCHx9JE=; b=Ob4Wj8HqSCnn3iPKnhZEsj9xQoXXZvIeBeRx1+NJGA5\n\tLFvr2MnnhQPb2w/Zkfa+gDxv5ArfmTZJS9d3GLkj86Y4bpRHcFjuRq5X4otihe7j\n\tCBH7PTIomkOUCxmCiyxLUtHj5qHVGJe+RThHO//z3p3NdceSYxj4ZhkPyFH9JHGc\n\t=","Mailing-List":"contact libc-alpha-help@sourceware.org; run by ezmlm","Precedence":"bulk","List-Id":"<libc-alpha.sourceware.org>","List-Unsubscribe":"<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>","List-Subscribe":"<mailto:libc-alpha-subscribe@sourceware.org>","List-Archive":"<http://sourceware.org/ml/libc-alpha/>","List-Post":"<mailto:libc-alpha@sourceware.org>","List-Help":"<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>","Sender":"libc-alpha-owner@sourceware.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-2.0 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE, SPF_PASS,\n\tURIBL_RED autolearn=ham version=3.3.2 spammy=","X-HELO":"relay1.mentorg.com","Date":"Fri, 22 Sep 2017 16:33:16 +0000","From":"Joseph Myers <joseph@codesourcery.com>","To":"Szabolcs Nagy <szabolcs.nagy@arm.com>","CC":"<nd@arm.com>, GNU C Library <libc-alpha@sourceware.org>","Subject":"Re: [PATCH 1/9 v3] Optimized generic expf and exp2f with wrappers","In-Reply-To":"<59C539AA.2070008@arm.com>","Message-ID":"<alpine.DEB.2.20.1709221631520.17667@digraph.polyomino.org.uk>","References":"<59C1123F.9080003@arm.com> <59C11310.5000004@arm.com>\n\t<alpine.DEB.2.20.1709212332370.15042@digraph.polyomino.org.uk>\n\t<59C539AA.2070008@arm.com>","User-Agent":"Alpine 2.20 (DEB 67 2015-01-07)","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"US-ASCII\"","X-ClientProxiedBy":"svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To\n\tsvr-ies-mbx-01.mgc.mentorg.com (139.181.222.1)"}}]