From patchwork Mon Oct 23 14:43:37 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 23770 Received: (qmail 115870 invoked by alias); 23 Oct 2017 14:43:47 -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 115852 invoked by uid 89); 23 Oct 2017 14:43:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.8 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=fragile X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Szabolcs.Nagy@arm.com; Message-ID: <59EE0019.5080000@arm.com> Date: Mon, 23 Oct 2017 15:43:37 +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: Michael Collison , Adhemerval Zanella , "libc-alpha@sourceware.org" CC: nd@arm.com Subject: Re: [PATCH] aarch64: Implement math acceleration via builtins References: <9e8aaf0f-4346-628e-aa4f-8fad8323e8a3@linaro.org> <59E62C6F.3010702@arm.com> <59E9C37C.9040206@arm.com> In-Reply-To: X-ClientProxiedBy: CWXP265CA0011.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:2e::23) To AM5PR0802MB2484.eurprd08.prod.outlook.com (2603:10a6:203:9b::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a2d0d554-f262-4eb3-fdee-08d51a2473e4 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(4534020)(4602075)(4627075)(201703031133081)(201702281549075)(2017052603199)(49563074); SRVR:AM5PR0802MB2484; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2484; 3:aeC8K+iq2Uy+R1M9dTZIrVa7qXV6rB0ho/UJlv7snI/oepsX1BXLKQDKCTv4QYxn8qSpa6uyjVFVeH6+w2PQ70gE9hD4IKtG0nJTWMGBH78BeFhpftOTMPjCjN67Q8znkCTJM/aJ7qGcM6YimJIr1uLDVO4MgwUU5zO3ieWjyOruc8jvTVlmnCUozygpRXSppp6aAMnTlwZX+hKnKFoTGpCo9o4By3+da3B54hd8Crvud5h5UhilLl+/n+aNdUWU; 25:9zRnhKr0R6U5LZOBcZPhRuJIPux2pRcZe8dlKpfnj21w0WVJDpm36UBNVYqLZ+ofxt8qEw9DoGKB3ueK/DslB0Rw/VeaDNAibzc2Ft86InmN1B4nEUuDgnRfWvmwU2ZQRxD0MUiBS27J69kzUnhmBeMWOgXBWt5ccN/XUT02n90QcOjpNeAfLVx9vjbMwo6EsToTl6vNvXMYGp3Y9lRwSd3rTA20pZ4diCsZjoYQqzn7Bky1ansbcQKywVdmC1Ok7VOnRYP2SqtdIyejIZgMccqd2dSSdMntnOiXNls3Okbwn1VNUqVUAiI3p6IU8RVnfsJ5MIwWQPWeyFNS/lEXxg==; 31:8s1SymCZgTdrucFul8oXnwmJTVfj/Rqq8o0XcortOr/p2i6Ou7MVMHKXaLQxQj14i6zVxZ0sLC9bLglbv11FynCnRFTPi+Kri372TGdmIPheVx2TvAR7Bg93vUt7N528LgjLlzTS87QKxYiE9Quy98eD6v1R35vrLtRr9zWjwmEG/XF079ecECh80zAg08Dq9TB9+RfUA4yxDJ7unLGz7NE9J3sFcKujn6QwWifS0a8= X-MS-TrafficTypeDiagnostic: AM5PR0802MB2484: NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2484; 20:k/xaXAWPF6VQxardOHOhj6wGJ61lzQZ1z3PoRodD81XkVvW257vBk4gjo5sR37l9aIe27/WKk/oTsN8c0AonwVR9pxV681SEfbX9b3rkGnAHdNQMBL1ePThx7U17j/TotRqMjLOYvwJsPOyn35R6lb41gmVyzRBe1dBNHpjTgTQ=; 4:ptG5OTDykXymNUAJphD2XuK/pUfeMC1+iqFJEa9Wiu8VIwIfJDd6npiPjvy11jRGqDVR15qRbZwh7yQINqeUs65Af/ECTMBxMCRsvK7IlpVU0cwEaTkTLmbvMZ75AMucbt809EjKEiQBjL2SQUPr/Pe5mZH4x+Io14/CoXIQrj1E/tUNr84pzhipQiuV1huwTBlUT/F2dw1y17F+6qE5RRHYmY5hsaIwjltTHx2GjgxnRjrS536q/xLQWX2Jyx4G0HeQvkcPmBnybUPObTeIUIV8e1miFbVAQu5k/3dTIWg= X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(102415395)(6040450)(2401047)(8121501046)(5005006)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(3231020)(6055026)(6041248)(20161123564025)(20161123558100)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM5PR0802MB2484; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM5PR0802MB2484; X-Forefront-PRVS: 046985391D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(6009001)(346002)(376002)(39860400002)(199003)(24454002)(54534003)(377424004)(189002)(53546010)(4610100001)(84326002)(2906002)(5660300001)(64126003)(3846002)(6116002)(97736004)(2950100002)(80316001)(2501003)(5890100001)(106356001)(86362001)(568964002)(4001150100001)(6666003)(5000100001)(229853002)(83506002)(270700001)(93886005)(68736007)(25786009)(6246003)(59896002)(16576012)(54356999)(36756003)(16586007)(77096006)(16526018)(110136005)(8676002)(4326008)(76176999)(33656002)(87266999)(65816999)(50986999)(6486002)(81156014)(316002)(105586002)(305945005)(53936002)(2476003)(72206003)(7736002)(101416001)(58126008)(66066001)(65956001)(81166006)(478600001)(65806001)(8936002)(189998001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0802MB2484; 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: =?us-ascii?Q?1; AM5PR0802MB2484; 23:0IvY9gpGrbyiuZxJAeepo5euvxf/joQqxKd2bLQ?= =?us-ascii?Q?X1XLUzHVvYcA9j+PRNWqrW3065EmjiNKP07uQgc4f6j1tM0IOBeNx234JG9l?= =?us-ascii?Q?WVMC75MaR3fKVJ03YySvz5Q7ujNMP8hoPj/F2eDFGNdQoLSfhfwjsaJTtMWq?= =?us-ascii?Q?p84pJDkwUpE+db5jSv5XHhFcMPhAEnjpYL6jk4QpwrbyGSS0GzSA8uPNk9At?= =?us-ascii?Q?71hyYL8LsI2PDm8YZbF6yVzpGDhQePnN0IiJ+q9jfZjLQIiPBGQwfeYofom7?= =?us-ascii?Q?hTalIKhIzcHMLylGyNv0xx008EXKiW1ACcBug43Uf3A+3K4/0Gmsvlj40pxa?= =?us-ascii?Q?twgs1n0CP9cNNl6E02VH6S1AMb0q3YGz98B/oiaVLxnl37cC1XqlrcJ5/Hzz?= =?us-ascii?Q?aOtdesfOlh/vaVtlwaH17xlSmaPO+L46bH4zvJEoh3BSET+1gGUi7hcAwUsQ?= =?us-ascii?Q?Tai6OfQUX1Unk+padLBurUkC5dMj4Cyc+d0GZrIJ3+WDGKgzKRB6FHGcCPV4?= =?us-ascii?Q?R7qBJgv3jyrMJsj2FfjyQTHnCih0NZtoIH0NYJHFngR95FlG6dXxFWynrQYC?= =?us-ascii?Q?9KIrb5SbVee7CvS6WUc4TL/YhXl6DCEdsFq+OljUtwUWE1OOEhtyYxi/fPyW?= =?us-ascii?Q?fOgP/0W7uztzm+YSu1jhrg+tJQ+m8/F5XpvgF6oK+ksokBYMU+nptplI39nB?= =?us-ascii?Q?HUrUfzm4TskKJ8ED8/QV6OqO+QXi58n4Dbu50oaFfKXpACz+fwWzU4yvvjtA?= =?us-ascii?Q?0OjCPJ2wrP459JEttXEb8++VocrONHf7BGF8niu3/ZAFWJjJZPYYRtyFVP70?= =?us-ascii?Q?wUy7jRPfnXfuTbN7rTYFmBbnmceXLSF6+T8mP/vd1BKnilRFNi9M8RjUoTlx?= =?us-ascii?Q?WALBnqJ4nHyiIR7QPpiFG7zLG0+CQW5XvS2SWl4ZGxBg2BdZAWOwrZQlZrrL?= =?us-ascii?Q?dlysoCOdjg+maU72XI2H0lubIP6FIHnVkGxIoVhhrRucZeWhUNMONL4YSybd?= =?us-ascii?Q?BaKsPAk0rMxPZRUJKaZoudyUqiSV/iWXcMs6sihBc54m2L4gPf1+TCI43572?= =?us-ascii?Q?J7H47OcQN1Q2fpHSR+/v75c6kzpL503t6LAlXfcvYF6NIoSKB76RjEyUanBC?= =?us-ascii?Q?Mka9DCh1OrcS2FeiB0sj5Ldj39U4I1AxjE8J/+PzG5ZLHzx0WQKCzcZesYrt?= =?us-ascii?Q?zVfmQfUlfgMx2IQLmNofBiTMyII9R3t9QBggmesLr0Wywmyzb9OhP3tp2w3n?= =?us-ascii?Q?kj+bYFyGut/4R0dJaPfVdytLLnQ+Z7oZWwD/ptICncjgrsrXzLYA8PZi7d7P?= =?us-ascii?Q?pO8aN0cGI+cYWtPqm/pAqCktMpLKSSOSgQrquSRAxSxoRwI6UxKUGI3SgLfs?= =?us-ascii?Q?RWIDiFItkhcN7BiXyAePkaoLtzKdYtSjMwrEfkgrZvz73RuMCpKTIzOSQqk8?= =?us-ascii?Q?uptOm6Ilux5bkxdpJqwtksn5rHkeIs4UTyTBdwGRQZ8bJhKS0PCcIyCftrh2?= =?us-ascii?Q?cBHINRiqCDN0Vk3LNWdIrms3tJ5Kr4RlLt1re9Hmc4XBoDeiSR/Vux7PonIi?= =?us-ascii?Q?f9nq6NiW7pkxZ27gdlUklr6val3h2l4gWF5mlFM1wkOq7JD0ZyGVA55KNVc/?= =?us-ascii?Q?LppnLBxBfLserS99jM4gLAQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM5PR0802MB2484; 6:WC8KAnk/MmlWtGMkJ0ZGLoCS4vlkBgUYJgFKVA41fvKMvElmIaVWtt/6p8Z+HJun7okuV72qitCUHoPgbvbLqp83M7dssv/TLiNkEoGZIY7nM3yO/f4rDVpz047Jt11+bXDNoK5omPP0eHLC5sN+LGHuDwhWNS3g4ClUJVFdE5fPH07EHPAVFy5mEubQjkrPHvw4eqEhj9YLXu6rQnqGUgaO5r0kjCXYOuww9Bwbu+wU0oqh9+4xjQ5q02kLrnL7PyQ+cCOClnmWD+qCQfTgkYJVf+t3+7NWmnbvWU3XPJ33CfoaT46M8pz+sEFIB1/antQuXW5oaJjFsexcFM/nHg==; 5:L2A5s5m7KX+b4RupeO9txbvweS0TDk3SjMAplDU9NbA7mMZpnpdE+4AJmK54cfLrZHBNw8rZHrF5Xsfcd2SJF6v18EAK4cP78a4D5/p6Wg1qhtrLQse8eV0fJqnsQ9MhUgRw/UWXn5HmAYGCtdd5VQ==; 24:okxVMEx22II7/+mDVAWyWhNVPqlPIfj88weAQCFDvzcmOt5bEIK0khpY1fAFTTn5Nh9qVghYg1XUh+a4TpGGNkVSPsEzbWihohv56/8+iUw=; 7:7fRKQx6Ker8xiFmBmPx6FPiSSzt11ZPFM9ZHCt7tjxfy2uPogQC10lCmY6krPdUFYHKSGpugJ01g3BDi+IbYcAZMUP7C/la0tQRwS7kNYoMJvcogY80Cs8kZZBATPDMDacHPXEs8N83CSycYux0gZK3EdPJc+3WYunMwbr3pWwUWzqGNPvLasNPKiuTLeKS/5KKwC2oqM3p1Rdabm2ypngiI9HPpAvkIfneNXWAFgog= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2017 14:43:40.6762 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2d0d554-f262-4eb3-fdee-08d51a2473e4 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0802MB2484 On 20/10/17 21:16, Michael Collison wrote: > Patch updated with upstream comments. ChangeLog updated as well. > > Tested on aarch64-linux-gnu with gcc-5.4 and gcc-6. Okay for trunk? > > 2017-10-20 Michael Collison ... >> * sysdeps/aarch64/fpu/Makefile: Build e_sqrt[f].c with >> -fno-math-errno. i managed to miss this new Makefile in the commit. but then i saw that lround, llround, lroundf, llroundf builtins fail to inline as single instruction without -fno-math-errno (at least with the toolchain i tried), so i added those to the makefile, committed as in the attached patch. however this feels fragile, we probably have to add the -fno-math-errno flag to all math functions. From be080b6c143901d998c91f28ef7b2fe4a25c0237 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Mon, 23 Oct 2017 15:31:37 +0100 Subject: [PATCH] aarch64: Add missing math Makefile for recent commit Without -fno-math-errno, the builtins just do a call instead of inlining a single instruction. --- ChangeLog | 3 ++- sysdeps/aarch64/fpu/Makefile | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 sysdeps/aarch64/fpu/Makefile diff --git a/ChangeLog b/ChangeLog index 4a011b136b..1316b401ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -55,7 +55,8 @@ with __builtin_trunc. * sysdeps/aarch64/fpu/s_truncf.c (__truncf): Replace asm statements with __builtin_truncf. - * sysdeps/aarch64/fpu/Makefile: Build e_sqrt[f].c with -fno-math-errno. + * sysdeps/aarch64/fpu/Makefile: Build e_sqrt[f].c with -fno-math-errno, + and s_l[l]round[f].c too. 2017-10-23 Alan Modra diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile new file mode 100644 index 0000000000..bf38f2c589 --- /dev/null +++ b/sysdeps/aarch64/fpu/Makefile @@ -0,0 +1,8 @@ +ifeq ($(subdir),math) +CFLAGS-e_sqrtf.c += -fno-math-errno +CFLAGS-e_sqrt.c += -fno-math-errno +CFLAGS-s_lroundf.c += -fno-math-errno +CFLAGS-s_lround.c += -fno-math-errno +CFLAGS-s_llroundf.c += -fno-math-errno +CFLAGS-s_llround.c += -fno-math-errno +endif -- 2.11.0