From patchwork Wed Sep 13 10:43:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 813332 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=sourceware.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=libc-alpha-return-84539-incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b="ubc+OK36"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xsdZ91jNfz9s5L for ; Wed, 13 Sep 2017 20:44:01 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type:content-transfer-encoding; q=dns; s= default; b=DHeoTyKY8gg2N3rNv2gl3yTTiIucxX5OIH+UIg7+rqgCCHY178K1D BiYl6ttjjWVtrY5exDxo74eugZQngdK+qWhvGJul0ybU07DpY7CMCBeuZW75jLU+ GFiO2Ce2AwHDKBciIO40QVDvV/GBwyxO3f1RsXOSh9ffqIm6ZivAyg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:cc :subject:content-type:content-transfer-encoding; s=default; bh=q KVKkp3dyC+hgz6Y3Pg0koO+jco=; b=ubc+OK36UPyHsaGybiSrH3IQEudlUoZaG JMfBpm0TNlbwQoX7AWDkTr0BZ350yn5plJjZ1StewFRfPIORcSJt+fc42pQd66Ko 50UGpzWNv1ub2FJwYKbbHebATygxtj0TN0Se57wAF1aCZOZQfOJC9kMyz4ya7A8w 4VBVpkaHIk= Received: (qmail 64182 invoked by alias); 13 Sep 2017 10:43:52 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 63822 invoked by uid 89); 13 Sep 2017 10:43:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <59B90BDF.7000503@arm.com> Date: Wed, 13 Sep 2017 11:43:43 +0100 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: GNU C Library CC: nd@arm.com Subject: [PATCH 0/4] Optimized generic expf and exp2f X-ClientProxiedBy: AM4PR07CA0010.eurprd07.prod.outlook.com (2603:10a6:205:1::23) To DB6PR0802MB2488.eurprd08.prod.outlook.com (2603:10a6:4:a0::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d5989646-5a1f-4a0a-c080-08d4fa944f86 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:DB6PR0802MB2488; X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2488; 3:uAsbFyFPzXMTJlc8IIS+rme6KP8G+IVzbJbpfR/AJbUhdNgjsJrqEbsRMrt9lhr7GjHo6kco68OH1FC6rOIkTatChYVL9crKfyV+UtiayZvu2yezmXCihsFrTw8oy22VIlB/IotrlqW32fPcFiTrgEVSOhSnmhwF8Ohrhiq/JwvmCv1Dtg9SUWvIvB8ExTgXhDRK0UGEJHPekl5j7TVjkzK377aLSRfw3I/P96i4Noaw8EAPdB6TEpFtqqRUYoV0; 25:1zFOT+oi8qSMbI3vc9blKxChSmRTQZESkoRt488HNNRCwbS6hkF0Psb8bz88B+C4oLdym4vWmQxzWM9X/imzVzYVlcexBNO3zwBPN5SB/z3qtuQ4dsdsClq3kQF8UI+JpQNS0jid6djNIowkNH2hv6aYR1K5pIcuZfbHENF/zmoWwTF7V2rixgFgKK5HSKtEQwF9pQG98Qj3sAYsdYEUtXvi1veo8usS3kbDKaGGI6Zpg2bpHEU6PlPRRAP5xdJ++Vc/8IKadQbGvbJf3+DTdLAKhfiU4d2DMZuBue5nxU+Oa8dluMsPmXrE9dOXI1upLurr3f3kuHhU4oig3FE+tA==; 31:oNRDn1AClQGkM/VZKJII+lCZ73p24qyU02e+N8UwaI+D7Nsxq1iQQnZu6cFb6uRycPGsEx4eKP/KQPDEopbVagqgBk2odmGIPpt65EAd4JjOZ/D0Vhws3XCN9CtMOgxJ+SqhPkAqtiNp+YV5fEQMG2Atx5hYYZYyfglCQI6k+ByTv0hqbhuHBS/FUmzXTSQ1fKpUItXOkrTlDX6wYfmWubB/Fd4AdiKuykg+iF8tWPI= X-MS-TrafficTypeDiagnostic: DB6PR0802MB2488: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2488; 20:YbvGkpFVFGaemmMAcAcC1+uU90AI/VUUfA6tR47JjEpDdWpGB+zpQG6nQBNYbUlQfFrQnP75t/32ghF2y07eqZyzbMFemHvOoeu7mC23rJnh7Mj/FvXUt1nBR1zQ93uLHzqi4V1I6EL41hWsnVPd7ju910nYqiA8/bVh2jtk6mA=; 4:TjFMVRF6sAT9yDC5V5O1iW3ur+p+Bw1rBs84iErOM4/lGldXbP79tZolNKjdyBJ9X4COb6UPTexm7F6k0mmsEWUH9b+ZivdBXc165bWS8Smhk3beRdFXfkJL6ppG9SjsAG/eNg8y05HHzpuJg0yIhw1YPfEk3Su74c1gyFitJUSf+vfk6OdnuQs/8R7XcgQoESzDIpjl+hloiqdNQbOmCaboMIjzx3rGVyC6YzJ9i7x90mxwZfGp2TpcbVaCHuXl X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB6PR0802MB2488; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB6PR0802MB2488; X-Forefront-PRVS: 042957ACD7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(346002)(366002)(376002)(39860400002)(199003)(189002)(65816999)(87266999)(50986999)(106356001)(36756003)(72206003)(66066001)(77096006)(6916009)(6486002)(5660300001)(64126003)(54356999)(2906002)(316002)(86362001)(33656002)(4326008)(53936002)(50466002)(25786009)(80316001)(478600001)(97736004)(81166006)(189998001)(7736002)(65956001)(81156014)(8676002)(110136004)(305945005)(4001350100001)(23676002)(68736007)(7350300001)(101416001)(59896002)(105586002)(65806001)(16526017)(83506001)(3846002)(47776003)(6116002)(230700001)(16576012)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0802MB2488; H:[10.2.206.69]; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?q?1=3BDB6PR0802MB2488=3B23=3A6y?= =?utf-8?q?OCGb+uLetkr5yV6Zhu6N7fHjI441KLd0VDtEZnjMMjH0DCZb8lVxSjYv?= =?utf-8?q?l/qIfLD8u47v2SIKzxRiM6sLtXrdMFkeMHwn34GOaGAu8LShylC+13Qd?= =?utf-8?q?pAZ6ot4WrOWe0J62RReeNfCZvl/VI7KREfL5tsK8OWfeYuy435xtWlNT?= =?utf-8?q?fdX18/pWpfvAqug4RewwNzSjl94P2Nkgaf+dauLhRKA5TGtnJ3AzD0qK?= =?utf-8?q?Skf95vwK2uAkPxGaT7fAT3BdvuGZvI/jcTmwPKvo9JaTGs/1QXe4/8Xk?= =?utf-8?q?ocpyVHNmE+rlKLBTMkDWyxf/80MBiVnOrJy5TTafPpqdj37wfehan7RL?= =?utf-8?q?pyDYJgbPp7145xiXjhlWa/ERdQUa0APTfXQ0lI6/q9iIyv08QWosYZ//?= =?utf-8?q?sFBtfhavnhonqTZa1j4RaRC7kUaKsiSnZDeBrvGygzd2DviqkD+y4yLg?= =?utf-8?q?lCkkWqBco1nfrE0Xlwr9Y9r7fM3L+0YSctrSH3irvOCS/t6PRBvCJn4H?= =?utf-8?q?5TZlONGGCxjQInFW09iN2T61D+/VMsqwtUofT3LOsQfmL70QBHqlGxbm?= =?utf-8?q?83s3bwjrqDhfCO56R+z9GgVabxyusCS7nYWc5qkeCGhkMHAY/YlBaynT?= =?utf-8?q?LLX4B4e18oX6rZpdugdF8tWTGYTMksr3RpHja851bQJwVdvSxP/mTNkE?= =?utf-8?q?K6Qo+jIpjw6KYILPa8HYx1Mag8uqEpVyIcXUCPVaoFK2LEJDQ9pP1z+b?= =?utf-8?q?aeEvcLugslf3n2jm0zSPRRE3MtsOkFpXOx3u3Bzz8jxWe+o0N0b/xrtn?= =?utf-8?q?0eFXWYT6v5LNCMxhyqjjwS/7rL4Yzow2qg26mUmyQ5M/Z98i5CTaEdDc?= =?utf-8?q?eGzeCQEHOJ7S4PgdHM997gFS/0Dv/lapt5a2bFFMF7yV7DZvtjlYw4ki?= =?utf-8?q?nn59XcseNIRJCS4XA32mE3oW6Tx3Ld0aKIxh60ooNZDGzxPLr185naWo?= =?utf-8?q?8ho9N/HaB9lbjYE73ERu4yfkTgtJ/SKYerVoHazQiS8rfdV/X3VaTB+t?= =?utf-8?q?eQQDDkEIsYfv7tC1t2uaVZHeWZDhwhjk/qDne0mpKPJt9yXashpGav4W?= =?utf-8?q?yA8reV82ib4sgatAaPggAVycZ7DZeKM9B8etXblVBxBClr+hepX1XDnn?= =?utf-8?q?0zbzrKNctCcvZBeJbb4gkZk3sF7h2OpWEyuYyq6qI326ojLhGhbu7G6u?= =?utf-8?q?Ji2nMUTu0SKRo85Nh8dvuAQNaq/oYBgy/2eN322baJERsxyTHO/bCB8c?= =?utf-8?q?Rl0ttGqHnI+nNswikUjeHBi/ogZiBSXKof4QLd4GlWFkwSkhl+jh2WlA?= =?utf-8?q?3uSPUM5tbykPH34Vm9aMODd6egPAyBNqUhzclfj2clF0Cn+n+TB2mk/V?= =?utf-8?q?nylvgb6fWqcXGvhd3E5A=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DB6PR0802MB2488; 6:nihuz1AF4/KJCOoGxVMJL9ZXMe6nHAglS3NCXjnB8n/GqMfTNrQ0yWLlzwMJzbnsaIbof6kZikuNKJClLSBtUrS/6Krg2SWORzVeS6ZqNTJZPtydhgOpT9G4+FFCIbOnh2RCyomMgFQC9c45Z2F2Dz4hhokoQgClMd60ZNjjihZqC03RGmZQ4YW/PsWLdJWUXCdU7rWn/qkYCHY3Adcm5kOey8mSLcOAksw6SPD9A3MB9mPwJMGrZBqpFWky9IVly7ZjIVaN1HN8SgU3dJuvJcFkGR2HQT+taxYzTmY3Le1bYZICDMS8BVPJRon8BGroETbKlW5vnn3U6o/0nxj/6Q==; 5:gDs4VKIFOoO110dZ8qnsQvZ+VUIYpgd2hC7AkFsqCcVsBFqtrxUoL2sT//V2PEDKBoYLQ5TGyeWrisa4960/dqvf7BXomS45p+CpH+XvQf55oDqCO/f4HCQ4z18RimOmwuOOEc0k5k9rNoWGRRgvjw==; 24:0qYO5lY0rzyQXWyghbfQuJU3OCySAFRQR5BYxVIiS53T8fBL9yVQTuXNM4hGh8vujiFSLR7pYnoVKciWTRrJpgL3aXDJ7vElEcPUEOSMWz0=; 7:u5vX34q4msKI1G5Koxq9S7OgPTGBDpem291XWUBmRUj/bOP/+JICFqO49qwqjNMlB/MQB6CIzyGsg+wXprAoyXYGD38Ukfh0iEbpOOxxAehi/Lye+TUs+bonfbcAxw2b0rTKeTNpPmKwRIy/vhBglAK9x+zBvEV0F/9IWHBG+zvNJv78MQy0T/sN+junplWhF4q5wx3AozGE/AgoYLtN9YXNPLVAM/GyYd9ixk1h50s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2017 10:43:45.9292 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2488 broke down the expf patch into 4 parts. build-many-glibcs is still running i'll report the results once it's finished. Szabolcs Nagy (4): Optimized generic expf and exp2f with wrappers Move exp compat wrappers under math/ New expf and exp2f version without SVID compat wrapper Do not wrap expf and exp2f math/Makefile | 2 +- math/Versions | 3 + math/w_exp2f.c | 7 + math/w_exp2f_compat.c | 6 +- {sysdeps/ieee754/dbl-64 => math}/w_exp_compat.c | 0 math/w_expf.c | 7 + {sysdeps/ieee754/flt-32 => math}/w_expf_compat.c | 7 +- math/w_expl_compat.c | 48 ++- sysdeps/aarch64/fpu/math_private.h | 20 ++ sysdeps/i386/fpu/e_exp2f_data.c | 1 + sysdeps/i386/fpu/math_errf.c | 1 + sysdeps/i386/fpu/w_exp2f.c | 1 + sysdeps/i386/fpu/w_expf.c | 1 + sysdeps/i386/i686/fpu/multiarch/w_expf.c | 1 + sysdeps/ia64/fpu/e_exp2f_data.c | 1 + sysdeps/ia64/fpu/math_errf.c | 1 + sysdeps/ieee754/flt-32/e_exp2f.c | 177 ++++------- sysdeps/ieee754/flt-32/e_exp2f_data.c | 44 +++ sysdeps/ieee754/flt-32/e_expf.c | 193 +++++------ sysdeps/ieee754/flt-32/math_config.h | 114 +++++++ sysdeps/ieee754/flt-32/math_errf.c | 76 +++++ sysdeps/ieee754/flt-32/t_exp2f.h | 351 --------------------- sysdeps/ieee754/flt-32/w_exp2f.c | 1 + sysdeps/ieee754/flt-32/w_expf.c | 1 + sysdeps/ieee754/ldbl-128/w_expl_compat.c | 45 --- sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c | 24 -- sysdeps/ieee754/ldbl-96/w_expl_compat.c | 37 --- sysdeps/ieee754/ldbl-opt/w_exp_compat.c | 2 +- .../{ldbl-64-128 => ldbl-opt}/w_expl_compat.c | 2 +- sysdeps/m68k/m680x0/fpu/w_expf.c | 1 + .../powerpc/powerpc64/fpu/multiarch/e_expf-ppc64.c | 7 +- sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c | 1 + sysdeps/unix/sysv/linux/aarch64/libm.abilist | 3 + sysdeps/unix/sysv/linux/alpha/libm.abilist | 3 + sysdeps/unix/sysv/linux/arm/libm.abilist | 3 + sysdeps/unix/sysv/linux/hppa/libm.abilist | 3 + sysdeps/unix/sysv/linux/i386/libm.abilist | 3 + sysdeps/unix/sysv/linux/ia64/libm.abilist | 3 + sysdeps/unix/sysv/linux/m68k/coldfire/libm.abilist | 3 + sysdeps/unix/sysv/linux/m68k/m680x0/libm.abilist | 3 + sysdeps/unix/sysv/linux/microblaze/libm.abilist | 3 + sysdeps/unix/sysv/linux/mips/mips32/libm.abilist | 3 + sysdeps/unix/sysv/linux/mips/mips64/libm.abilist | 3 + sysdeps/unix/sysv/linux/nios2/libm.abilist | 3 + .../sysv/linux/powerpc/powerpc32/fpu/libm.abilist | 3 + .../linux/powerpc/powerpc32/nofpu/libm.abilist | 3 + .../sysv/linux/powerpc/powerpc64/libm-le.abilist | 3 + .../unix/sysv/linux/powerpc/powerpc64/libm.abilist | 3 + sysdeps/unix/sysv/linux/s390/s390-32/libm.abilist | 3 + sysdeps/unix/sysv/linux/s390/s390-64/libm.abilist | 3 + sysdeps/unix/sysv/linux/sh/libm.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc32/libm.abilist | 3 + sysdeps/unix/sysv/linux/sparc/sparc64/libm.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx32/libm.abilist | 3 + .../sysv/linux/tile/tilegx/tilegx64/libm.abilist | 3 + sysdeps/unix/sysv/linux/tile/tilepro/libm.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/64/libm.abilist | 3 + sysdeps/unix/sysv/linux/x86_64/x32/libm.abilist | 3 + sysdeps/x86_64/fpu/w_expf.c | 1 + 59 files changed, 567 insertions(+), 695 deletions(-) create mode 100644 math/w_exp2f.c rename {sysdeps/ieee754/dbl-64 => math}/w_exp_compat.c (100%) create mode 100644 math/w_expf.c rename {sysdeps/ieee754/flt-32 => math}/w_expf_compat.c (88%) create mode 100644 sysdeps/i386/fpu/e_exp2f_data.c create mode 100644 sysdeps/i386/fpu/math_errf.c create mode 100644 sysdeps/i386/fpu/w_exp2f.c create mode 100644 sysdeps/i386/fpu/w_expf.c create mode 100644 sysdeps/i386/i686/fpu/multiarch/w_expf.c create mode 100644 sysdeps/ia64/fpu/e_exp2f_data.c create mode 100644 sysdeps/ia64/fpu/math_errf.c create mode 100644 sysdeps/ieee754/flt-32/e_exp2f_data.c create mode 100644 sysdeps/ieee754/flt-32/math_config.h create mode 100644 sysdeps/ieee754/flt-32/math_errf.c delete mode 100644 sysdeps/ieee754/flt-32/t_exp2f.h create mode 100644 sysdeps/ieee754/flt-32/w_exp2f.c create mode 100644 sysdeps/ieee754/flt-32/w_expf.c delete mode 100644 sysdeps/ieee754/ldbl-128/w_expl_compat.c delete mode 100644 sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c delete mode 100644 sysdeps/ieee754/ldbl-96/w_expl_compat.c rename sysdeps/ieee754/{ldbl-64-128 => ldbl-opt}/w_expl_compat.c (72%) create mode 100644 sysdeps/m68k/m680x0/fpu/w_expf.c create mode 100644 sysdeps/powerpc/powerpc64/fpu/multiarch/w_expf.c create mode 100644 sysdeps/x86_64/fpu/w_expf.c