From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by sourceware.org (Postfix) with ESMTPS id C7A1E3858D20 for ; Mon, 1 Apr 2024 13:58:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C7A1E3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C7A1E3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::b35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711979888; cv=none; b=aRO3utxgT2awUG8Za3zb1HX0D2jejQGibJJYX1hihHgS2oD7e7GmkqqCtlSRnvIJ8+d1NcSD7qQzgzj3DgLHnaTRYDRBHMRGdB5G3UZrKIEcnbfno5IIOffk5lsYbynRhSz5r68C7p7/R9+wAh1+0sB+zBr9Dbw5vq6reo/Qyks= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711979888; c=relaxed/simple; bh=rKz4QdREH60ComGKGyRUuon9MtlDqa9VQktul6dU+2E=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=wsyQZw3PpGol7/YVrpIE4uRy0v23HwabN+XHhQsdW5pOXasMYOliWrlS4PpvIHHpQlTyKdrauNRuwVJYd2O8ZKEOwKLz+tD5RiAFmch/OPMqDnqZX/N9y3tIhMTBa6u02aYgV+H09YgRuR5H9EvTznC+RjsYitQV8BgqMgF2rUs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-dc236729a2bso3724021276.0 for ; Mon, 01 Apr 2024 06:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711979884; x=1712584684; darn=sourceware.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=1M454GrgSr8vvqrL4AC9EHiVm//am9TvsJxGIhv/RZI=; b=ggMDZvDsyah3AQq/nSavNGbJmyVUvY/gLmrbLCQhClUM6vQCKZzqiA1aYKhOzcjwIB IpIF3HIqcPQDx1uGGPl/mZ1BhnZJmqSiRMlvz4FXbw75EA1qOzo0yZErp4tsh08wSfND ynaiZNFu/ZatzPgG3sSui534QMvhU+QoaHySDu0xFf4OLLaQ+PaAobf8OkNrjcHvKIuC /FNZNkl5fLmJIkQ3obKf+Y4L49hyokVYVOVaXApFTLwIyS6dkwgeJ/FAp8UdcDrSKc/N 2pSOCQyFrWA7DlHb++a4flMraYRK6CXTluP+fzvtnPQ8+qkOXotS6hqTTOuawu/a/qHa iJTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711979884; x=1712584684; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=1M454GrgSr8vvqrL4AC9EHiVm//am9TvsJxGIhv/RZI=; b=oQpW5x+5KiyGIrim42gWUkvf5osRzhi7sT+96V+urVX/3cgLRTrIHjA6GLL16xAdxU NBdajO4G5ck51g3Cv7xqyGEvIQPd42McQii3pt55tqGYlXZfd4J4Uw5sKj9skiiHeYjD et7TXb9WEcubpg+6ekV/+5Lmjy1HRzd7Cnt9ol0ZREMJaHuDCg4GVwOqrew1gVXixEyo 23m9kKEn6hxIhZV2d/Y+7giaYEVBnBNy9fAhYcgmA0zk31zgQ/WYEJnilctBVlcLwZzs E/h4psZTBzVUX5Up+sioJf7GtdqtF1tL3iEZw7O8sArmPX3k22AbKYcz8TGH/FDk3cDb 97VQ== X-Gm-Message-State: AOJu0Yyii3jcw7BQlw2wFHjoy8T/JvUxPoyNZ2ClMjwJQm1gyRcZVoKS s1QGGFyUxSAc2al8UW/DK4AZgApL5OrKCnPvRIY+WTGb1cWs47Fmv2MyQTd5Ex44TomhOaNK9QV ThBiUniPFeU5MkvBqhZgjY/jioMkLFNDi X-Google-Smtp-Source: AGHT+IEdifNOe+6neZ6hzjCXIonNczGnpoqnBzuwAFpoX6LupLxOHWEoMYt9KZZvl0cJ2gbXiNNqomD+0bASQmun91I= X-Received: by 2002:a25:8187:0:b0:dbd:c442:9e60 with SMTP id p7-20020a258187000000b00dbdc4429e60mr7675669ybk.36.1711979883960; Mon, 01 Apr 2024 06:58:03 -0700 (PDT) MIME-Version: 1.0 References: <20231228172026.2013007-1-adhemerval.zanella@linaro.org> <20231228172026.2013007-2-adhemerval.zanella@linaro.org> In-Reply-To: <20231228172026.2013007-2-adhemerval.zanella@linaro.org> From: "H.J. Lu" Date: Mon, 1 Apr 2024 06:57:27 -0700 Message-ID: Subject: Re: [PATCH 01/12] math: Reformat Makefile. To: Adhemerval Zanella Cc: libc-alpha@sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3015.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,KAM_STOCKTIP,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Thu, Dec 28, 2023 at 9:21=E2=80=AFAM Adhemerval Zanella wrote: > > Reflow all long lines adding comment terminators. > Sort all reflowed text using scripts/sort-makefile-lines.py. > > No code generation changes observed in binary artifacts. > No regressions on x86_64 and i686. > --- > math/Makefile | 844 ++++++++++++++++++++++++++++++++++++++++---------- > 1 file changed, 685 insertions(+), 159 deletions(-) > > diff --git a/math/Makefile b/math/Makefile > index a9daae09de..5a912c55bd 100644 > --- a/math/Makefile > +++ b/math/Makefile > @@ -22,87 +22,279 @@ subdir :=3D math > include ../Makeconfig > > # Installed header files. > -headers :=3D math.h bits/mathcalls.h \ > - fpu_control.h complex.h bits/cmathcalls.h fenv.h \ > - bits/fenv.h bits/mathdef.h tgmath.h \ > - bits/math-vector.h finclude/math-vector-fortran.h \ > - bits/libm-simd-decl-stubs.h bits/iscanonical.h \ > - bits/flt-eval-method.h bits/fp-fast.h bits/fp-logb.h \ > - bits/long-double.h bits/mathcalls-helper-functions.h \ > - bits/floatn.h bits/floatn-common.h bits/mathcalls-narr= ow.h > +headers :=3D \ > + math.h \ > + bits/mathcalls.h \ > + fpu_control.h \ > + complex.h \ > + bits/cmathcalls.h \ > + fenv.h \ > + bits/fenv.h \ > + bits/mathdef.h \ > + tgmath.h \ > + bits/math-vector.h \ > + finclude/math-vector-fortran.h \ > + bits/libm-simd-decl-stubs.h \ > + bits/iscanonical.h \ > + bits/flt-eval-method.h \ > + bits/fp-fast.h \ > + bits/fp-logb.h \ > + bits/long-double.h \ > + bits/mathcalls-helper-functions.h \ > + bits/floatn.h \ > + bits/floatn-common.h \ > + bits/mathcalls-narrow.h > + # headers > > # FPU support code. > -aux :=3D setfpucw fpu_control > +aux :=3D \ > + fpu_control \ > + setfpucw \ > + # aux > > # Build the -lm library. > > extra-libs :=3D libm > extra-libs-others =3D $(extra-libs) > > -libm-support =3D s_lib_version s_matherr s_signgam = \ > - fclrexcpt fgetexcptflg fraiseexcpt fsetexcptflg \ > - ftestexcept fegetround fesetround fegetenv feholdexcpt \ > - fesetenv feupdateenv fedisblxcpt feenablxcpt \ > - fegetexcept fesetexcept fetestexceptflag fegetmode \ > - fesetmode > +libm-support =3D \ > + fclrexcpt \ > + fedisblxcpt \ > + feenablxcpt \ > + fegetenv \ > + fegetexcept \ > + fegetmode \ > + fegetround \ > + feholdexcpt \ > + fesetenv \ > + fesetexcept \ > + fesetmode\ > + fesetround \ > + fetestexceptflag \ > + feupdateenv \ > + fgetexcptflg \ > + fraiseexcpt \ > + fsetexcptflg \ > + ftestexcept \ > + s_lib_version \ > + s_matherr \ > + s_signgam \ > + # libm-support > > # Wrappers for these functions generated per type using a file named > # _template.c and the appropriate math-type-macros-.h. > -gen-libm-calls =3D cargF conjF cimagF crealF cabsF e_scalbF s_cacosF = \ > - s_cacoshF s_ccosF s_ccoshF s_casinF s_csinF s_casinhF = \ > - k_casinhF s_csinhF k_casinhF s_csinhF s_catanhF s_catanF= \ > - s_ctanF s_ctanhF s_cexpF s_clogF s_cprojF s_csqrtF = \ > - s_cpowF s_clog10F s_fdimF s_nextdownF s_fmaxF s_fminF = \ > - s_nanF s_iseqsigF s_canonicalizeF s_significandF = \ > - w_ilogbF w_llogbF = \ > - w_log1pF w_scalblnF s_fmaxmagF s_fminmagF w_acosF = \ > - w_acoshF w_asinF w_atan2F w_atanhF w_coshF w_exp10F = \ > - w_exp2F w_fmodF w_hypotF w_j0F w_j1F w_jnF w_logF = \ > - w_log10F w_log2F w_powF w_remainderF w_scalbF = \ > - w_sinhF w_sqrtF = \ > - w_tgammaF w_lgammaF w_lgammaF_r w_expF e_exp2F = \ > - s_fmaximumF s_fmaximum_magF s_fmaximum_numF = \ > - s_fmaximum_mag_numF s_fminimumF s_fminimum_magF = \ > - s_fminimum_numF s_fminimum_mag_numF > - > -libm-calls =3D = \ > - e_acosF e_acoshF e_asinF e_atan2F e_atanhF e_coshF e_expF e_fmodF= \ > - e_hypotF e_j0F e_j1F e_jnF e_lgammaF_r e_logF e_log10F e_powF = \ > - e_remainderF e_sinhF e_sqrtF e_gammaF_r = \ > - e_ilogbF = \ > - k_tanF s_asinhF s_atanF s_cbrtF = \ > - s_ceilF s_cosF s_erfF s_expm1F s_fabsF = \ > - s_floorF s_log1pF s_logbF \ > - s_nextafterF s_nexttowardF s_rintF s_scalblnF = \ > - s_sinF s_tanF s_tanhF = \ > - s_fpclassifyF s_truncF = \ > - s_remquoF e_log2F s_roundF s_nearbyintF s_sincosF = \ > - s_fmaF s_lrintF s_llrintF s_lroundF s_llroundF e_exp10F = \ > - s_issignalingF $(calls:s_%=3Dm_%) x2y2m1F = \ > - gamma_productF lgamma_negF lgamma_productF = \ > - s_nextupF s_totalorderF s_totalordermagF s_getpayloadF = \ > - s_setpayloadF s_setpayloadsigF s_roundevenF s_fromfpF s_ufromfpF = \ > - s_fromfpxF s_ufromfpxF $(gen-libm-calls) > - > -libm-compat-calls =3D = \ > - w_acosF_compat w_acoshF_compat w_asinF_compat w_atan2F_compat \ > - w_atanhF_compat w_coshF_compat w_exp2F_compat w_exp10F_compat \ > - w_fmodF_compat w_hypotF_compat w_j0F_compat w_j1F_compat \ > - w_jnF_compat w_log2F_compat w_log10F_compat w_logF_compat \ > - w_powF_compat w_remainderF_compat w_scalbF_compat \ > - w_sinhF_compat w_sqrtF_compat w_tgammaF_compat \ > - w_lgammaF_r_compat w_lgammaF_compat2 w_expF_compat \ > - w_lgamma_compatF k_standardF > - > -libm-narrow-fns =3D add div fma mul sqrt sub > -libm-narrow-types-basic =3D s_fF s_f32xFf64 > -libm-narrow-types-ldouble-yes =3D s_fFl s_dFl > -libm-narrow-types-float128-yes =3D s_f32Ff128 s_f64Ff128 s_f64xFf128 > -libm-narrow-types-float128-alias-yes =3D s_f64xFf128 > -libm-narrow-types =3D $(libm-narrow-types-basic) \ > - $(libm-narrow-types-ldouble-$(long-double-fcts)) \ > - $(libm-narrow-types-float128-$(float128-fcts)) \ > - $(libm-narrow-types-float128-alias-$(float128-alias-f= cts)) > +gen-libm-calls =3D \ > + cabsF \ > + cargF \ > + cimagF \ > + conjF \ > + crealF \ > + e_exp2F \ > + e_scalbF \ > + k_casinhF \ > + k_casinhF \ > + s_cacosF \ > + s_cacoshF \ > + s_canonicalizeF \ > + s_casinF \ > + s_casinhF \ > + s_catanF \ > + s_catanhF \ > + s_ccosF \ > + s_ccoshF \ > + s_cexpF \ > + s_clog10F \ > + s_clogF \ > + s_cpowF \ > + s_cprojF \ > + s_csinF \ > + s_csinhF \ > + s_csinhF \ > + s_csqrtF \ > + s_ctanF \ > + s_ctanhF \ > + s_fdimF \ > + s_fmaxF \ > + s_fmaximumF \ > + s_fmaximum_magF \ > + s_fmaximum_mag_numF \ > + s_fmaximum_numF \ > + s_fmaxmagF \ > + s_fminF \ > + s_fminimumF \ > + s_fminimum_magF \ > + s_fminimum_mag_numF \ > + s_fminimum_numF \ > + s_fminmagF \ > + s_iseqsigF \ > + s_nanF \ > + s_nextdownF \ > + s_significandF \ > + w_acosF \ > + w_acoshF \ > + w_asinF \ > + w_atan2F \ > + w_atanhF \ > + w_coshF \ > + w_exp10F \ > + w_exp2F \ > + w_expF \ > + w_fmodF \ > + w_hypotF \ > + w_ilogbF \ > + w_j0F \ > + w_j1F \ > + w_jnF \ > + w_lgammaF \ > + w_lgammaF_r \ > + w_llogbF \ > + w_log10F \ > + w_log1pF \ > + w_log2F \ > + w_logF \ > + w_powF \ > + w_remainderF \ > + w_scalbF \ > + w_scalblnF \ > + w_sinhF \ > + w_sqrtF \ > + w_tgammaF \ > + # gen-libm-calls > + > +libm-calls =3D \ > + $(calls:s_%=3Dm_%) \ > + $(gen-libm-calls) \ > + e_acosF \ > + e_acoshF \ > + e_asinF \ > + e_atan2F \ > + e_atanhF \ > + e_coshF \ > + e_exp10F \ > + e_expF \ > + e_fmodF \ > + e_gammaF_r \ > + e_hypotF \ > + e_ilogbF \ > + e_j0F \ > + e_j1F \ > + e_jnF \ > + e_lgammaF_r \ > + e_log10F \ > + e_log2F \ > + e_logF \ > + e_powF \ > + e_remainderF \ > + e_sinhF \ > + e_sqrtF \ > + gamma_productF \ > + k_tanF \ > + lgamma_negF \ > + lgamma_productF \ > + s_asinhF \ > + s_atanF \ > + s_cbrtF \ > + s_ceilF \ > + s_cosF \ > + s_erfF \ > + s_expm1F \ > + s_fabsF \ > + s_floorF \ > + s_fmaF \ > + s_fpclassifyF \ > + s_fromfpF \ > + s_fromfpxF \ > + s_getpayloadF \ > + s_issignalingF \ > + s_llrintF \ > + s_llroundF \ > + s_log1pF \ > + s_logbF \ > + s_lrintF \ > + s_lroundF \ > + s_nearbyintF \ > + s_nextafterF \ > + s_nexttowardF \ > + s_nextupF \ > + s_remquoF \ > + s_rintF \ > + s_roundF \ > + s_roundevenF \ > + s_scalblnF \ > + s_setpayloadF \ > + s_setpayloadsigF \ > + s_sinF \ > + s_sincosF \ > + s_tanF \ > + s_tanhF \ > + s_totalorderF \ > + s_totalordermagF \ > + s_truncF \ > + s_ufromfpF \ > + s_ufromfpxF \ > + x2y2m1F \ > + # libm-calls > + > +libm-compat-calls =3D \ > + k_standardF \ > + w_acosF_compat \ > + w_acoshF_compat \ > + w_asinF_compat \ > + w_atan2F_compat \ > + w_atanhF_compat \ > + w_coshF_compat \ > + w_exp10F_compat \ > + w_exp2F_compat \ > + w_expF_compat \ > + w_fmodF_compat \ > + w_hypotF_compat \ > + w_j0F_compat \ > + w_j1F_compat\ > + w_jnF_compat \ > + w_lgammaF_compat2 \ > + w_lgammaF_r_compat \ > + w_lgamma_compatF \ > + w_log10F_compat \ > + w_log2F_compat \ > + w_logF_compat \ > + w_powF_compat \ > + w_remainderF_compat \ > + w_scalbF_compat \ > + w_sinhF_compat \ > + w_sqrtF_compat \ > + w_tgammaF_compat \ > + # libm-compat-calls > + > +libm-narrow-fns =3D \ > + add \ > + div \ > + fma \ > + mul \ > + sqrt \ > + sub \ > + # libm-narrow-fns > +libm-narrow-types-basic =3D \ > + s_f32xFf64 \ > + s_fF \ > + # libm-narrow-types-basic > +libm-narrow-types-ldouble-yes =3D \ > + s_dFl \ > + s_fFl \ > + # libm-narrow-types-ldouble-yes > +libm-narrow-types-float128-yes =3D \ > + s_f32Ff128 \ > + s_f64Ff128 \ > + s_f64xFf128 \ > + # libm-narrow-types-float128-yes > +libm-narrow-types-float128-alias-yes =3D \ > + s_f64xFf128 \ > + # libm-narrow-types-float128-alias-yes > +libm-narrow-types =3D \ > + $(libm-narrow-types-basic) \ > + $(libm-narrow-types-float128-$(float128-fcts)) \ > + $(libm-narrow-types-float128-alias-$(float128-alias-fcts)) \ > + $(libm-narrow-types-ldouble-$(long-double-fcts)) \ > + # libm-narrow-types > > # Type specific routine support. > # > @@ -115,33 +307,65 @@ libm-narrow-types =3D $(libm-narrow-types-basic) \ > # Finally, note that types is an intentionally recursive variable. > # We only know the full set of supported types for the target machine > # after the Rules makefile has been parsed. > -types-basic =3D $(type-ldouble-$(long-double-fcts)) double float > +types-basic =3D \ > + $(type-ldouble-$(long-double-fcts)) \ > + double \ > + float \ > + # types-basic > > # Like types, but includes types whose functions alias those for > # another type. > -test-types-basic =3D ldouble double float > +test-types-basic =3D \ > + double \ > + float \ > + ldouble \ > + # test-types-basic > > # long double support > type-ldouble-suffix :=3D l > -type-ldouble-routines :=3D t_sincosl k_sinl k_cosl k_sincosl s_iscanonic= all \ > - e_rem_pio2l > +type-ldouble-routines :=3D \ > + e_rem_pio2l \ > + k_cosl \ > + k_sincosl \ > + k_sinl \ > + s_iscanonicall \ > + t_sincosl \ > + # type-ldouble-routines > type-ldouble-yes :=3D ldouble > > # double support > type-double-suffix :=3D > -type-double-routines :=3D branred k_rem_pio2 \ > - sincostab math_err e_exp_data e_log_data \ > - e_log2_data e_pow_log_data > +type-double-routines :=3D \ > + branred \ > + e_exp_data \ > + e_log2_data \ > + e_log_data \ > + e_pow_log_data \ > + k_rem_pio2 \ > + math_err \ > + sincostab \ > + # type-double-routines > > # float support > type-float-suffix :=3D f > -type-float-routines :=3D math_errf e_exp2f_data e_logf_data \ > - e_log2f_data e_powf_log2_data s_sincosf_data > +type-float-routines :=3D \ > + e_exp2f_data \ > + e_log2f_data \ > + e_logf_data \ > + e_powf_log2_data \ > + math_errf \ > + s_sincosf_data \ > + # type-float-routines > > # _Float128 support > type-float128-suffix :=3D f128 > -type-float128-routines :=3D t_sincosf128 k_sinf128 k_cosf128 k_sincosf12= 8 \ > - e_rem_pio2f128 > +type-float128-routines :=3D \ > + e_rem_pio2f128 \ > + k_cosf128 \ > + k_sincosf128 \ > + k_sinf128 \ > + t_sincosf128 \ > + # type-float128-routines > type-float128-yes :=3D float128 > > # _Float64x may be supported, only as an alias type. > @@ -151,11 +375,20 @@ type-float64x-yes :=3D float64x > type-ibm128-suffix :=3D l > type-ibm128-yes :=3D ibm128 > > -types =3D $(types-basic) $(type-float128-$(float128-fcts)) > -test-types =3D $(test-types-basic) $(type-float128-$(float128-fcts)) \ > - float32 float64 $(type-float128-$(float128-alias-fcts)) \ > - float32x $(type-float64x-$(float64x-alias-fcts)) \ > - $(type-ibm128-$(ibm128-fcts)) > +types =3D \ > + $(type-float128-$(float128-fcts)) \ > + $(types-basic) \ > + # types > +test-types =3D \ > + $(test-types-basic) \ > + $(type-float128-$(float128-alias-fcts)) \ > + $(type-float128-$(float128-fcts)) \ > + $(type-float64x-$(float64x-alias-fcts)) \ > + $(type-ibm128-$(ibm128-fcts)) \ > + float32 \ > + float32x \ > + float64 \ > + # test-types > > # Pairs of types for which narrowing functions should be tested (this > # variable has more entries than libm-narrow-types because it includes > @@ -163,14 +396,25 @@ test-types =3D $(test-types-basic) $(type-float128-= $(float128-fcts)) \ > # for other types). This definition embeds the assumption that if > # _Float64x is supported, so is _Float128, and vice versa (they may or > # may not have the same format). > -test-type-pairs =3D float-double float-ldouble double-ldouble \ > - float32-float64 float32-float32x float32x-float64 \ > - $(test-type-pairs-f64xf128-$(float128-fcts)) \ > - $(test-type-pairs-f64xf128-$(float128-alias-fcts)) > -test-type-pairs-f64xf128-yes =3D float32-float64x float32-float128 \ > - float64-float64x float64-float128 \ > - float32x-float64x float32x-float128 \ > - float64x-float128 > +test-type-pairs =3D \ > + $(test-type-pairs-f64xf128-$(float128-alias-fcts)) \ > + $(test-type-pairs-f64xf128-$(float128-fcts)) \ > + double-ldouble \ > + float-double \ > + float-ldouble \ > + float32-float32x \ > + float32-float64 \ > + float32x-float64 \ > + # test-type-pairs > +test-type-pairs-f64xf128-yes =3D \ > + float32-float128 \ > + float32-float64x \ > + float32x-float128 \ > + float32x-float64x \ > + float64-float128 \ > + float64-float64x \ > + float64x-float128 \ > + # test-type-pairs-f64xf128-yes > > # For each of the basic types (float, double, long double), replace the > # occurrences of 'F' in arg 1 with the appropriate suffix for the type. > @@ -193,8 +437,17 @@ libm-routines =3D $(strip $(libm-support) = \ > # and we don't want to have to link every program with -lm. > # In libm-calls (above), list m_foo in place of s_foo for any > # routine that should be compiled separately for its libc and libm versi= ons. > -calls =3D s_isinfF s_isnanF s_finiteF s_copysignF s_modfF s_scalbnF s_fr= expF \ > - s_signbitF $(gen-calls) > +calls =3D \ > + $(gen-calls) \ > + s_copysignF \ > + s_finiteF \ > + s_frexpF \ > + s_isinfF \ > + s_isnanF \ > + s_modfF \ > + s_scalbnF \ > + s_signbitF \ > + # calls > gen-calls =3D s_ldexpF > generated +=3D $(foreach s,.c .S,$(call type-foreach, $(calls:s_%=3Dm_%$= (s)))) > routines =3D $(call type-foreach, $(calls)) > @@ -205,8 +458,14 @@ libm-shared-only-routines =3D $(call type-foreach, $= (calls:s_%=3Dm_%)) > ifeq ($(build-mathvec),yes) > # We need to install libm.so and libm.a as linker scripts > # for transparent use of vector math library. > -install-lib-ldscripts :=3D libm.so libm.a > -install-others =3D $(inst_libdir)/libm.so $(inst_libdir)/libm.a > +install-lib-ldscripts :=3D \ > + libm.a \ > + libm.so \ > + # install-lib-ldscripts > +install-others =3D \ > + $(inst_libdir)/libm.a \ > + $(inst_libdir)/libm.so \ > + # install-others > $(inst_libdir)/libm.so: $(common-objpfx)format.lds \ > $(libm) \ > $(libmvec) \ > @@ -234,42 +493,95 @@ $(inst_libdir)/libm.a: $(common-objpfx)format.lds \ > endif > > # Rules for the test suite. > -tests =3D test-matherr-3 test-fenv basic-test \ > - test-misc test-fpucw test-fpucw-ieee tst-definitions test-tgmath = \ > - test-tgmath-ret bug-nextafter bug-nexttoward bug-tgmath1 \ > - test-tgmath-int test-tgmath2 test-powl tst-CMPLX tst-CMPLX2 test-= snan \ > - test-fenv-tls test-fenv-preserve test-fenv-return \ > - test-nearbyint-except test-fenv-clear \ > - test-nearbyint-except-2 test-signgam-uchar test-signgam-uchar-ini= t \ > - test-signgam-uint test-signgam-uint-init test-signgam-ullong \ > - test-signgam-ullong-init test-nan-overflow test-nan-payload \ > - test-fexcept test-fexcept-traps test-fesetexcept \ > - test-fesetexcept-traps test-fetestexceptflag test-femode \ > - test-femode-traps test-iszero-excess-precision \ > - test-iseqsig-excess-precision test-flt-eval-method \ > - test-fp-ilogb-constants test-fp-llogb-constants \ > - test-narrow-macros \ > - test-nan-const $(tests-static) > +tests =3D \ > + $(tests-static) \ > + bug-nextafter \ > + bug-nexttoward \ > + bug-tgmath1 \ > + test-femode \ > + test-femode-traps \ > + test-fenv basic-test \ > + test-fenv-clear \ > + test-fenv-preserve \ > + test-fenv-return \ > + test-fenv-tls \ > + test-fesetexcept \ > + test-fesetexcept-traps \ > + test-fetestexceptflag \ > + test-fexcept \ > + test-fexcept-traps \ > + test-flt-eval-method \ > + test-fp-ilogb-constants \ > + test-fp-llogb-constants \ > + test-fpucw \ > + test-fpucw-ieee \ > + test-iseqsig-excess-precision \ > + test-iszero-excess-precision \ > + test-matherr-3 \ > + test-misc \ > + test-nan-const \ > + test-nan-overflow \ > + test-nan-payload \ > + test-narrow-macros \ > + test-nearbyint-except \ > + test-nearbyint-except-2 \ > + test-powl \ > + test-signgam-uchar \ > + test-signgam-uchar-init \ > + test-signgam-uint \ > + test-signgam-uint-init \ > + test-signgam-ullong \ > + test-signgam-ullong-init \ > + test-snan \ > + test-tgmath \ > + test-tgmath-int \ > + test-tgmath-ret \ > + test-tgmath2 \ > + tst-CMPLX \ > + tst-CMPLX2 \ > + tst-definitions \ > + # tests > ifneq ($(config-cflags-signaling-nans),) > -tests +=3D test-fe-snans-always-signal > +tests +=3D \ > + test-fe-snans-always-signal \ > + # tests > endif > -tests-static =3D test-fpucw-static test-fpucw-ieee-static \ > - test-signgam-uchar-static test-signgam-uchar-init-static \ > - test-signgam-uint-static test-signgam-uint-init-static \ > - test-signgam-ullong-static test-signgam-ullong-init-static > +tests-static =3D \ > + test-fpucw-ieee-static \ > + test-fpucw-static \ > + test-signgam-uchar-init-static \ > + test-signgam-uchar-static \ > + test-signgam-uint-init-static \ > + test-signgam-uint-static \ > + test-signgam-ullong-init-static \ > + test-signgam-ullong-static \ > + # tests-static > > # The tested symbols matherr, _LIB_VERSION have been removed in glibc 2.= 27. > ifeq ($(have-GLIBC_2.26)$(build-shared),yesyes) > -tests +=3D test-matherr test-matherr-2 > +tests +=3D \ > + test-matherr \ > + test-matherr-2 \ > + # tests > endif > > # These tests use internal (unexported) GMP functions and are linked > # statically to obtain access to these functions. > -tests-static +=3D atest-exp atest-sincos atest-exp2 > +tests-static +=3D \ > + atest-exp \ > + atest-exp2 \ > + atest-sincos \ > + # tests-static > > ifneq (,$(CXX)) > -tests +=3D test-math-isinff test-math-iszero test-math-issignaling \ > - test-math-iscanonical test-math-cxx11 test-math-iseqsig > +tests +=3D \ > + test-math-cxx11 \ > + test-math-iscanonical \ > + test-math-iseqsig \ > + test-math-isinff \ > + test-math-issignaling \ > + test-math-iszero \ > + # tests > endif > > libm-vec-tests =3D $(addprefix test-,$(libmvec-tests)) > @@ -286,35 +598,167 @@ $(objpfx)libm-test-ulps.h: $(ulps-file) gen-libm-t= est.py > $(make-target-directory) > $(PYTHON) gen-libm-test.py -u $< -H $@ > > -libm-test-funcs-auto =3D acos acosh asin asinh atan atan2 atanh cabs cac= os \ > - cacosh carg casin casinh catan catanh cbrt ccos cc= osh \ > - cexp clog clog10 cos cosh cpow csin csinh csqrt ct= an \ > - ctanh erf erfc exp exp10 exp2 expm1 fma hypot j0 j= 1 jn \ > - lgamma log log10 log1p log2 pow sin sincos sinh sq= rt \ > - tan tanh tgamma y0 y1 yn > -libm-test-funcs-noauto =3D canonicalize ceil cimag conj copysign cproj c= real \ > - fabs fdim floor fmax fmaximum fmaximum_mag \ > - fmaximum_mag_num fmaximum_num fmaxmag fmin fmini= mum \ > - fminimum_mag fminimum_mag_num fminimum_num fminm= ag \ > - fmod fpclassify frexp fromfp fromfpx getpayload = \ > - ilogb iscanonical iseqsig isfinite isgreater \ > - isgreaterequal isinf isless islessequal \ > - islessgreater isnan isnormal issignaling issubno= rmal \ > - isunordered iszero llogb llrint llround logb lri= nt \ > - lround modf nearbyint nextafter nextdown nexttow= ard \ > - nextup remainder remquo rint round roundeven sca= lb \ > - scalbln scalbn setpayload setpayloadsig signbit = \ > - significand totalorder totalordermag trunc ufrom= fp \ > - ufromfpx compat_totalorder compat_totalordermag > -libm-test-funcs-compat =3D compat_totalorder compat_totalordermag > -libm-test-funcs-narrow =3D add div fma mul sqrt sub > -libm-test-funcs-all =3D $(libm-test-funcs-auto) $(libm-test-funcs-noauto= ) > +libm-test-funcs-auto =3D \ > + acos \ > + acosh \ > + asin \ > + asinh \ > + atan \ > + atan2 \ > + atanh \ > + cabs \ > + cacos \ > + cacosh \ > + carg \ > + casin \ > + casinh \ > + catan \ > + catanh \ > + cbrt \ > + ccos \ > + ccosh \ > + cexp \ > + clog \ > + clog10 \ > + cos \ > + cosh \ > + cpow \ > + csin \ > + csinh \ > + csqrt \ > + ctan \ > + ctanh \ > + erf \ > + erfc \ > + exp \ > + exp2 \ > + exp10 \ > + expm1 \ > + fma \ > + hypot \ > + j0 \ > + j1 \ > + jn \ > + lgamma \ > + log \ > + log10 \ > + log1p \ > + log2 \ > + pow \ > + sin \ > + sincos \ > + sinh \ > + sqrt \ > + tan \ > + tanh \ > + tgamma \ > + y0 \ > + y1 \ > + yn \ > + # libm-test-funcs-auto > +libm-test-funcs-noauto =3D \ > + canonicalize \ > + ceil \ > + cimag \ > + compat_totalorder \ > + compat_totalordermag \ > + conj \ > + copysign \ > + cproj \ > + creal \ > + fabs \ > + fdim \ > + floor \ > + fmax \ > + fmaximum \ > + fmaximum_mag \ > + fmaximum_mag_num \ > + fmaximum_num \ > + fmaxmag \ > + fmin \ > + fminimum \ > + fminimum_mag \ > + fminimum_mag_num \ > + fminimum_num \ > + fminmag \ > + fmod \ > + fpclassify \ > + frexp \ > + fromfp \ > + fromfpx \ > + getpayload \ > + ilogb \ > + iscanonical \ > + iseqsig \ > + isfinite \ > + isgreater \ > + isgreaterequal \ > + isinf \ > + isless \ > + islessequal \ > + islessgreater \ > + isnan \ > + isnormal \ > + issignaling \ > + issubnormal \ > + isunordered \ > + iszero \ > + llogb \ > + llrint \ > + llround \ > + logb \ > + lrint \ > + lround \ > + modf \ > + nearbyint \ > + nextafter \ > + nextdown \ > + nexttoward \ > + nextup \ > + remainder \ > + remquo \ > + rint \ > + round \ > + roundeven \ > + scalb \ > + scalbln \ > + scalbn \ > + setpayload \ > + setpayloadsig \ > + signbit \ > + significand \ > + totalorder \ > + totalordermag \ > + trunc \ > + ufromfp \ > + ufromfpx \ > + # libm-test-funcs-noauto > +libm-test-funcs-compat =3D \ > + compat_totalorder \ > + compat_totalordermag \ > + # libm-test-funcs-compat > +libm-test-funcs-narrow =3D \ > + add \ > + div \ > + fma \ > + mul \ > + sqrt \ > + sub \ > + # libm-test-funcs-narrow > +libm-test-funcs-all =3D \ > + $(libm-test-funcs-auto) \ > + $(libm-test-funcs-noauto) \ > + # libm-test-funcs-all > libm-test-c-auto =3D $(foreach f,$(libm-test-funcs-auto),libm-test-$(f).= c) > libm-test-c-noauto =3D $(foreach f,$(libm-test-funcs-noauto),libm-test-$= (f).c) > libm-test-c-narrow =3D $(foreach f,$(libm-test-funcs-narrow),\ > libm-test-narrow-$(f).c) > -generated +=3D libm-test-ulps.h $(libm-test-c-auto) $(libm-test-c-noauto= ) \ > - $(libm-test-c-narrow) > +generated +=3D \ > + $(libm-test-c-auto) \ > + $(libm-test-c-narrow) \ > + $(libm-test-c-noauto) \ > + libm-test-ulps.h \ > + # generated > > libm-tests-base-normal =3D $(foreach t,$(test-types),test-$(t)) > libm-tests-base-narrow =3D $(foreach t,$(test-type-pairs),test-$(t)) > @@ -374,19 +818,101 @@ $(foreach t,$(libm-tests-base),\ > $(objpfx)$(t)-compat_totalordermag.o): $(objpfx)libm-test-tot= alordermag.c > > # _Float128x omitted as not supported by gen-tgmath-tests.py. > -tgmath3-narrow-types =3D f d f16 f32 f64 f128 f32x f64x > +tgmath3-narrow-types =3D \ > + d \ > + f \ > + f16 \ > + f32 \ > + f128 \ > + f32x \ > + f64 \ > + f64x \ > + # tgmath3-narrow-types > tgmath3-narrow-macros =3D $(foreach t,$(tgmath3-narrow-types), \ > $(foreach f,$(libm-narrow-fns),$(t)$(= f))) > -tgmath3-macros =3D atan2 cbrt ceil copysign erf erfc exp10 exp2 expm1 fd= im \ > - floor fma fmax fmin fmod frexp hypot ilogb ldexp lgamma = \ > - llrint llround log10 log1p log2 logb lrint lround nearby= int \ > - nextafter nexttoward remainder remquo rint round scalbn = \ > - scalbln tgamma trunc acos asin atan acosh asinh atanh co= s \ > - sin tan cosh sinh tanh exp log pow sqrt fabs carg cimag = conj \ > - cproj creal roundeven nextup nextdown fminmag fmaxmag \ > - fmaximum fmaximum_mag fmaximum_num fmaximum_mag_num \ > - fminimum fminimum_mag fminimum_num fminimum_mag_num llog= b \ > - fromfp fromfpx ufromfp ufromfpx scalb $(tgmath3-narrow-m= acros) > +tgmath3-macros =3D \ > + $(tgmath3-narrow-macros) \ > + acos \ > + acosh \ > + asin \ > + asinh \ > + atan \ > + atan2 \ > + atanh \ > + carg \ > + cbrt \ > + ceil \ > + cimag \ > + conj \ > + copysign \ > + cos \ > + cosh \ > + cproj \ > + creal \ > + erf \ > + erfc \ > + exp \ > + exp2 \ > + exp10 \ > + expm1 \ > + fabs \ > + fdim \ > + floor \ > + fma \ > + fmax \ > + fmaximum \ > + fmaximum_mag \ > + fmaximum_mag_num \ > + fmaximum_num \ > + fmaxmag \ > + fmin \ > + fminimum \ > + fminimum_mag \ > + fminimum_mag_num \ > + fminimum_num \ > + fminmag \ > + fmod \ > + frexp \ > + fromfp \ > + fromfpx \ > + hypot \ > + ilogb \ > + ldexp \ > + lgamma \ > + llogb \ > + llrint \ > + llround \ > + log \ > + log10 \ > + log1p \ > + log2 \ > + logb \ > + lrint \ > + lround \ > + nearbyint \ > + nextafter \ > + nextdown \ > + nexttoward \ > + nextup \ > + pow \ > + remainder \ > + remquo \ > + rint \ > + round \ > + roundeven \ > + scalb \ > + scalbln \ > + scalbn \ > + sin \ > + sinh \ > + sqrt \ > + tan \ > + tanh \ > + tgamma \ > + trunc \ > + ufromfp \ > + ufromfpx \ > + # tgmath3-macros > tgmath3-macro-tests =3D $(addprefix test-tgmath3-,$(tgmath3-macros)) > tests +=3D $(tgmath3-macro-tests) > generated +=3D $(addsuffix .c,$(tgmath3-macro-tests)) > -- > 2.34.1 > LGTM. Reviewed-by: H.J. Lu Thanks. --=20 H.J.