From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 71475 invoked by alias); 28 Feb 2020 15:33:10 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 71466 invoked by uid 89); 28 Feb 2020 15:33:09 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.1 spammy=ulp X-HELO: mx0a-001b2d01.pphosted.com Subject: Re: [PATCHv3][Ping] ldbl-128ibm-compat: Add tests for IBM long double functions To: libc-alpha@sourceware.org References: <20200218220057.17930-1-murphyp@linux.vnet.ibm.com> From: Paul E Murphy Message-ID: <36b22243-6365-094d-feef-dc82aeb6a8f0@linux.ibm.com> Date: Fri, 28 Feb 2020 15:33:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: <20200218220057.17930-1-murphyp@linux.vnet.ibm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2020-02/txt/msg01086.txt.bz2 Ping. On 2/18/20 4:00 PM, Paul E. Murphy wrote: > From: Rajalakshmi Srinivasaraghavan > > Simplify this further. As correctly pointed out by Joseph, compiler > _Float128 compiler flags should always be present where needed. Thus, > I can greatly simplify this patch. It had collected too much cruft from > my constant rebasing. > > Likewise, defer the ppc64le makefile changes. They really shouldn't be > here, and contained harmful rebasing noise. They have been squashed > into later, more appropriate patches. > > Similarly, the hack for gamma is removed. `make regen-ulps` behaves > as expected and fills the missing entries correctly. The ULP changes > will be included with the enablement patch. > > Tested on x86-64 and ppc64le. > > ---8<--- > > This patch creates test-ibm128* tests from the long double function tests. > In order to explicitly test IBM long double functions -mabi=ibmlongdouble is > added to CFLAGS. > > Likewise, update the test headers to correct choose ULPs when redirects > are enabled. > > Co-Authored-By: Tulio Magno Quites Machado Filho > Co-Authored-By: Paul E. Murphy > --- > math/Makefile | 7 ++++++- > math/test-ibm128.h | 19 +++++++++++++++++++ > math/test-ldouble.h | 7 +++++++ > sysdeps/ieee754/ldbl-128ibm-compat/Makeconfig | 3 +++ > 4 files changed, 35 insertions(+), 1 deletion(-) > create mode 100644 math/test-ibm128.h > create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/Makeconfig > > diff --git a/math/Makefile b/math/Makefile > index 1d203e7ad5..84a8b94c74 100644 > --- a/math/Makefile > +++ b/math/Makefile > @@ -145,10 +145,15 @@ type-float128-yes := float128 > # _Float64x may be supported, only as an alias type. > type-float64x-yes := float64x > > +# IBM long double support in additional to IEEE 128 long double support > +type-ibm128-suffix := l > +type-ibm128-yes := ibm128 > + > types = $(types-basic) $(type-float128-$(float128-fcts)) > test-types = $(test-types-basic) $(type-float128-$(float128-fcts)) \ > float32 float64 $(type-float128-$(float128-alias-fcts)) \ > - float32x $(type-float64x-$(float64x-alias-fcts)) > + float32x $(type-float64x-$(float64x-alias-fcts)) \ > + $(type-ibm128-$(ibm128-fcts)) > > # Pairs of types for which narrowing functions should be tested (this > # variable has more entries than libm-narrow-types because it includes > diff --git a/math/test-ibm128.h b/math/test-ibm128.h > new file mode 100644 > index 0000000000..fce6ef1376 > --- /dev/null > +++ b/math/test-ibm128.h > @@ -0,0 +1,19 @@ > +/* Common definitions for libm tests for ibm long double. > + Copyright (C) 2020 Free Software Foundation, Inc. > + This file is part of the GNU C Library. > + > + The GNU C Library is free software; you can redistribute it and/or > + modify it under the terms of the GNU Lesser General Public > + License as published by the Free Software Foundation; either > + version 2.1 of the License, or (at your option) any later version. > + > + The GNU C Library is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + Lesser General Public License for more details. > + > + You should have received a copy of the GNU Lesser General Public > + License along with the GNU C Library; if not, see > + . */ > + > +#include "test-ldouble.h" > diff --git a/math/test-ldouble.h b/math/test-ldouble.h > index 17c526bd71..5b72915008 100644 > --- a/math/test-ldouble.h > +++ b/math/test-ldouble.h > @@ -27,6 +27,13 @@ > # define TYPE_STR "double" > # define ULP_IDX ULP_DBL > # define ULP_I_IDX ULP_I_DBL > +/* On architectures which redirect long double to _Float128 ABI, we must > + choose the float128 ulps. Similarly, on such architectures, the ABI > + used may be dependent on how the compiler was invoked. */ > +#elif __LONG_DOUBLE_USES_FLOAT128 == 1 > +# define TYPE_STR "float128" > +# define ULP_IDX ULP_FLT128 > +# define ULP_I_IDX ULP_I_FLT128 > #else > # define TYPE_STR "ldouble" > # define ULP_IDX ULP_LDBL > diff --git a/sysdeps/ieee754/ldbl-128ibm-compat/Makeconfig b/sysdeps/ieee754/ldbl-128ibm-compat/Makeconfig > new file mode 100644 > index 0000000000..997f632319 > --- /dev/null > +++ b/sysdeps/ieee754/ldbl-128ibm-compat/Makeconfig > @@ -0,0 +1,3 @@ > +# Include this earlier so it can be used earlier in Makefiles, > +# and sysdep/ makefiles. > +ibm128-fcts = yes >