From patchwork Wed Jun 23 20:34:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 43986 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7C450383D038 for ; Wed, 23 Jun 2021 20:35:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7C450383D038 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1624480532; bh=187fyFWY17hSEMG+1s3WSSEYJ/goMUmttFFbE/WqUaI=; h=References:In-Reply-To:Date:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=B07Ep+o26lfxCiPbBWwOZt0f6n3aahKrcxPcbLDRSf+FFuD+psYbUNwfK2w5AzN2i eVq1hL4PPiCvEeBr+cIrwBw9yJtEskBLfy4xtqJ9iniHCtwIBf2Fx32DSMg0SCN0Pq RR3JOYDmptfKhnP7om2AW2RQjs3/zs7pIVSU68H8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by sourceware.org (Postfix) with ESMTPS id 65CD9385800F for ; Wed, 23 Jun 2021 20:35:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 65CD9385800F Received: by mail-pl1-x636.google.com with SMTP id v13so1774359ple.9 for ; Wed, 23 Jun 2021 13:35:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=187fyFWY17hSEMG+1s3WSSEYJ/goMUmttFFbE/WqUaI=; b=abeoU+nJ96WJbyPxnqhK8DObETqREQVonaN6bG1sH0PLKUEhExo2UwoOPeHgrOJWfF aU61rKMfoAg8Cw3Ad93GOjJPnJsZoi4J2B9+/jErn7aEcvCT1FojKQdDU4j1zUPKJz5X XO0swbyrgt/JT5u3trLvpuvkHWGjIHxP4Ih9ucMLsiKBvT0QE6dS+Q+d5X+tjXWyVYSB vgZ/TL3bOLqtoswsOuguexzNkvJfv2XtmfM7gYboFstCUTvygJ2AUEcMLiAnmi9nJDC0 PZM7MuBaDP8PYN3NXXtEnmxg8INaILy8XjxFB7TxraHa0dK+ZCk1nEq3XQBRI7BqRlMX p7kA== X-Gm-Message-State: AOAM530g2caTWuETOYRudIfPdEe1MoI/Q4S7Gyd95KbBGuaqjAEa8wfs In/sqCrwsaCehOEL7jMctkWpIK5doyVXXjXaB1I= X-Google-Smtp-Source: ABdhPJzdmpTRfnH3FXHjH+g8UUpnahe610mPSLaRH3BI8v+RKR0d4YWXl8LNU/NKxwN+ZrIHJ7zpYQQUH+5EmznGzB4= X-Received: by 2002:a17:90a:4d84:: with SMTP id m4mr11490989pjh.136.1624480508573; Wed, 23 Jun 2021 13:35:08 -0700 (PDT) MIME-Version: 1.0 References: <20210524014312.4111807-1-ibmibmibm.tw@gmail.com> In-Reply-To: Date: Wed, 23 Jun 2021 13:34:32 -0700 Message-ID: Subject: [PATCH] Update math: redirect roundeven function To: Shen-Ta Hsieh X-Spam-Status: No, score=-3032.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: "H.J. Lu via Libc-alpha" From: "H.J. Lu" Reply-To: "H.J. Lu" Cc: GNU C Library Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" On Tue, Jun 22, 2021 at 3:35 PM H.J. Lu wrote: > > On Tue, May 25, 2021 at 5:02 AM H.J. Lu wrote: > > > > On Sun, May 23, 2021 at 6:43 PM Shen-Ta Hsieh wrote: > > > > > > This patch redirect roundeven function for futhermore changes. > > > > > > Signed-off-by: Shen-Ta Hsieh > > > --- > > > include/math.h | 2 +- > > > sysdeps/ieee754/dbl-64/s_roundeven.c | 4 +++- > > > sysdeps/ieee754/float128/s_roundevenf128.c | 1 + > > > sysdeps/ieee754/flt-32/s_roundevenf.c | 3 +++ > > > sysdeps/ieee754/ldbl-128/s_roundevenl.c | 1 + > > > sysdeps/ieee754/ldbl-96/s_roundevenl.c | 1 + > > > 6 files changed, 10 insertions(+), 2 deletions(-) > > > > > > diff --git a/include/math.h b/include/math.h > > > index e1c2a4eb64..b4772d3d3b 100644 > > > --- a/include/math.h > > > +++ b/include/math.h > > > @@ -38,7 +38,6 @@ libm_hidden_proto (__issignaling) > > > libm_hidden_proto (__issignalingf) > > > libm_hidden_proto (__exp) > > > libm_hidden_proto (__expf) > > > -libm_hidden_proto (__roundeven) > > > > > > # if !defined __NO_LONG_DOUBLE_MATH \ > > > && __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI == 0 > > > @@ -159,6 +158,7 @@ fabsf128 (_Float128 x) > > > MATH_REDIRECT (sqrt, "__ieee754_", MATH_REDIRECT_UNARY_ARGS) > > > MATH_REDIRECT (ceil, "__", MATH_REDIRECT_UNARY_ARGS) > > > MATH_REDIRECT (floor, "__", MATH_REDIRECT_UNARY_ARGS) > > > +MATH_REDIRECT (roundeven, "__", MATH_REDIRECT_UNARY_ARGS) > > > MATH_REDIRECT (rint, "__", MATH_REDIRECT_UNARY_ARGS) > > > MATH_REDIRECT (trunc, "__", MATH_REDIRECT_UNARY_ARGS) > > > MATH_REDIRECT (round, "__", MATH_REDIRECT_UNARY_ARGS) > > > diff --git a/sysdeps/ieee754/dbl-64/s_roundeven.c b/sysdeps/ieee754/dbl-64/s_roundeven.c > > > index 943b2c634c..5deff3bb8a 100644 > > > --- a/sysdeps/ieee754/dbl-64/s_roundeven.c > > > +++ b/sysdeps/ieee754/dbl-64/s_roundeven.c > > > @@ -16,6 +16,7 @@ > > > License along with the GNU C Library; if not, see > > > . */ > > > > > > +#define NO_MATH_REDIRECT > > > #include > > > #include > > > #include > > > @@ -66,5 +67,6 @@ __roundeven (double x) > > > INSERT_WORDS64 (x, ix); > > > return x; > > > } > > > -hidden_def (__roundeven) > > > +#ifndef __roundeven > > > libm_alias_double (__roundeven, roundeven) > > > +#endif > > > diff --git a/sysdeps/ieee754/float128/s_roundevenf128.c b/sysdeps/ieee754/float128/s_roundevenf128.c > > > index 5a9b3f395f..e0faf727f6 100644 > > > --- a/sysdeps/ieee754/float128/s_roundevenf128.c > > > +++ b/sysdeps/ieee754/float128/s_roundevenf128.c > > > @@ -1,2 +1,3 @@ > > > +#define NO_MATH_REDIRECT > > > #include > > > #include "../ldbl-128/s_roundevenl.c" > > > diff --git a/sysdeps/ieee754/flt-32/s_roundevenf.c b/sysdeps/ieee754/flt-32/s_roundevenf.c > > > index ae54365bbe..2cc0d7b001 100644 > > > --- a/sysdeps/ieee754/flt-32/s_roundevenf.c > > > +++ b/sysdeps/ieee754/flt-32/s_roundevenf.c > > > @@ -17,6 +17,7 @@ > > > License along with the GNU C Library; if not, see > > > . */ > > > > > > +#define NO_MATH_REDIRECT > > > #include > > > #include > > > #include > > > @@ -67,4 +68,6 @@ __roundevenf (float x) > > > SET_FLOAT_WORD (x, ix); > > > return x; > > > } > > > +#ifndef __roundevenf > > > libm_alias_float (__roundeven, roundeven) > > > +#endif > > > diff --git a/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/sysdeps/ieee754/ldbl-128/s_roundevenl.c > > > index 02765be0e0..7c9c11fad2 100644 > > > --- a/sysdeps/ieee754/ldbl-128/s_roundevenl.c > > > +++ b/sysdeps/ieee754/ldbl-128/s_roundevenl.c > > > @@ -17,6 +17,7 @@ > > > License along with the GNU C Library; if not, see > > > . */ > > > > > > +#define NO_MATH_REDIRECT > > > #include > > > #include > > > #include > > > diff --git a/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/sysdeps/ieee754/ldbl-96/s_roundevenl.c > > > index 8340116ed8..f826829c31 100644 > > > --- a/sysdeps/ieee754/ldbl-96/s_roundevenl.c > > > +++ b/sysdeps/ieee754/ldbl-96/s_roundevenl.c > > > @@ -17,6 +17,7 @@ > > > License along with the GNU C Library; if not, see > > > . */ > > > > > > +#define NO_MATH_REDIRECT > > > #include > > > #include > > > #include > > > -- > > > 2.31.1 > > > > > > > LGTM. > > > > Reviewed-by: H.J. Lu > > > > I tried it with scripts/build-many-glibcs.py. It failed with targets using: > > sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c > sysdeps/aarch64/fpu/s_roundevenf.c > sysdeps/aarch64/fpu/s_roundeven.c > sysdeps/riscv/rv64/rvd/s_roundeven.c > sysdeps/riscv/rvf/s_roundevenf.c > > -- > H.J. I am testing this patch. From c520c1c226f310f9cf7c82ed12e7cbcd034b3750 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 23 Jun 2021 13:29:41 -0700 Subject: [PATCH] Update math: redirect roundeven function Redirect target specific roundeven functions for aarch64, ldbl-128ibm and riscv. --- sysdeps/aarch64/fpu/s_roundeven.c | 2 +- sysdeps/aarch64/fpu/s_roundevenf.c | 1 + sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c | 1 + sysdeps/riscv/rv64/rvd/s_roundeven.c | 2 +- sysdeps/riscv/rvf/s_roundevenf.c | 1 + 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/sysdeps/aarch64/fpu/s_roundeven.c b/sysdeps/aarch64/fpu/s_roundeven.c index d74b40daf5..fbce9aaded 100644 --- a/sysdeps/aarch64/fpu/s_roundeven.c +++ b/sysdeps/aarch64/fpu/s_roundeven.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include @@ -25,5 +26,4 @@ __roundeven (double x) asm volatile ("frintn \t%d0, %d1" : "=w" (x) : "w" (x)); return x; } -hidden_def (__roundeven) libm_alias_double (__roundeven, roundeven) diff --git a/sysdeps/aarch64/fpu/s_roundevenf.c b/sysdeps/aarch64/fpu/s_roundevenf.c index dfc492c2f8..7985ca5f30 100644 --- a/sysdeps/aarch64/fpu/s_roundevenf.c +++ b/sysdeps/aarch64/fpu/s_roundevenf.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include diff --git a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c index 6701970f4a..90eecf496b 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c @@ -17,6 +17,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include diff --git a/sysdeps/riscv/rv64/rvd/s_roundeven.c b/sysdeps/riscv/rv64/rvd/s_roundeven.c index e77d8307d1..02dd0f7a9a 100644 --- a/sysdeps/riscv/rv64/rvd/s_roundeven.c +++ b/sysdeps/riscv/rv64/rvd/s_roundeven.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include @@ -49,5 +50,4 @@ __roundeven (double x) return x; } -hidden_def (__roundeven) libm_alias_double (__roundeven, roundeven) diff --git a/sysdeps/riscv/rvf/s_roundevenf.c b/sysdeps/riscv/rvf/s_roundevenf.c index fa594d46bd..be22d047e2 100644 --- a/sysdeps/riscv/rvf/s_roundevenf.c +++ b/sysdeps/riscv/rvf/s_roundevenf.c @@ -16,6 +16,7 @@ License along with the GNU C Library; if not, see . */ +#define NO_MATH_REDIRECT #include #include #include -- 2.31.1