From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 009EC3858CDB for ; Thu, 3 Nov 2022 12:14:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 009EC3858CDB Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.5]) by gateway (Coremail) with SMTP id _____8BxHLessGNjMToEAA--.3019S3; Thu, 03 Nov 2022 20:14:36 +0800 (CST) Received: from 5.5.5 (unknown [10.2.5.5]) by localhost.localdomain (Coremail) with SMTP id AQAAf8Axf+CrsGNj2+0LAA--.34667S2; Thu, 03 Nov 2022 20:14:35 +0800 (CST) From: Xiaolin Tang To: adhemerval.zanella@linaro.org, libc-alpha@sourceware.org, caiyinyu@loongson.cn, i.swmail@xen0n.name Cc: xuchenghua@loongson.cn, Xiaolin Tang Subject: [PATCH 0/1] LoongArch: Hard Float Support Of Math Functions. Date: Thu, 3 Nov 2022 20:14:32 +0800 Message-Id: <20221103121433.2909287-1-tangxiaolin@loongson.cn> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID:AQAAf8Axf+CrsGNj2+0LAA--.34667S2 X-CM-SenderInfo: pwdqw5xldrzx3q6o00pqjv00gofq/ X-Coremail-Antispam: 1Uk129KBjvJXoWxtw4xJrWrKF13GFyrArWUArb_yoW7KrWDpr WxCr15Jr43Gr93JFZIy3WYgFn5JFs7KF47uF1av34kX3yIvrn5Zrs2yryDXF13Xw1xGr97 WF95K3WDWF15J3JanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUj1kv1TuYvTs0mT0YCTnIWj qI5I8CrVACY4xI64kE6c02F40Ex7xfYxn0WfASr-VFAUDa7-sFnT9fnUUIcSsGvfJTRUUU b7xYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I6I8E6xAIw20EY4v20xvaj40_Wr0E3s 1l1IIY67AEw4v_JrI_Jryl8cAvFVAK0II2c7xJM28CjxkF64kEwVA0rcxSw2x7M28EF7xv wVC0I7IYx2IY67AKxVWUCVW8JwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwA2z4 x0Y4vEx4A2jsIE14v26F4UJVW0owA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Cr1j6rxdM2AI xVAIcxkEcVAq07x20xvEncxIr21l57IF6xkI12xvs2x26I8E6xACxx1l5I8CrVACY4xI64 kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8JwAm 72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41l42xK82IYc2Ij64vIr41l4I8I3I 0E4IkC6x0Yz7v_Jr0_Gr1lx2IqxVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWU GVWUWwC2zVAF1VAY17CE14v26r126r1DMIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI 0_Jr0_JF4lIxAIcVC0I7IYx2IY6xkF7I0E14v26r1j6r4UMIIF0xvE42xK8VAvwI8IcIk0 rVWUJVWUCwCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r 4UYxBIdaVFxhVjvjDU0xZFpf9x07j8yCJUUUUU= X-Spam-Status: No, score=-4.0 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,SPF_HELO_PASS,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: Hi, reviewers. This patch contains hardware floating-point support of math fuctions for the LoongArch ISA. LoongArch ISA has many hardware floating-point instructions that can be used in the corresponding math functions, and the performance of those newly implemented functions is good. instructions functions fma.{s/d} __fma{f/ } f{max/min}.{s/d}, fclass.{s/d} __f{max/min}i{mum/mum_mum}{f/ } f{maxa/mina}.{s/d} __f{max,min}mag{f/ } f{maxa/mina}.{s/d}, fclass.{s/d __f{max/min}imum{_mag/_mag_num}{f/ } fcopysign.{s/d __copysign{f/ } frint.{s/d} __{ /l/ll}rint{f/ } fscaleb.{s/d}, fclass.{s/d} __scalbn{f/ }, __ieee754__scalb{f/ } flogb.{s/d}, fclass.{s/d} __logb{f/ }, __ieee754_ilogb{f/ } fclass.{s/d} __fpclassify{f/ }, __issignaling{f/ } Xiaolin Tang (1): LoongArch: Hard Float Support Of Math Functions. sysdeps/loongarch/fpu/e_ilogb.c | 37 +++++++++++ sysdeps/loongarch/fpu/e_ilogbf.c | 37 +++++++++++ sysdeps/loongarch/fpu/e_scalb.c | 61 +++++++++++++++++++ sysdeps/loongarch/fpu/e_scalbf.c | 61 +++++++++++++++++++ sysdeps/loongarch/fpu/math-use-builtins-fma.h | 4 ++ sysdeps/loongarch/fpu/s_copysign.c | 29 +++++++++ sysdeps/loongarch/fpu/s_copysignf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_fmaximum.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_mag.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_mag_num.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_magf.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_num.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fmaximum_numf.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fmaximumf.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fmaxmag.c | 29 +++++++++ sysdeps/loongarch/fpu/s_fmaxmagf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_fminimum.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fminimum_mag.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fminimum_mag_num.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fminimum_mag_numf.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fminimum_magf.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fminimum_num.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fminimum_numf.c | 47 ++++++++++++++ sysdeps/loongarch/fpu/s_fminimumf.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fminmag.c | 29 +++++++++ sysdeps/loongarch/fpu/s_fminmagf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_fpclassify.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_fpclassifyf.c | 38 ++++++++++++ sysdeps/loongarch/fpu/s_issignaling.c | 29 +++++++++ sysdeps/loongarch/fpu/s_issignalingf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_llrint.c | 29 +++++++++ sysdeps/loongarch/fpu/s_llrintf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_logb.c | 30 +++++++++ sysdeps/loongarch/fpu/s_logbf.c | 30 +++++++++ sysdeps/loongarch/fpu/s_lrint.c | 29 +++++++++ sysdeps/loongarch/fpu/s_lrintf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_rint.c | 29 +++++++++ sysdeps/loongarch/fpu/s_rintf.c | 29 +++++++++ sysdeps/loongarch/fpu/s_scalbn.c | 29 +++++++++ sysdeps/loongarch/fpu/s_scalbnf.c | 29 +++++++++ sysdeps/loongarch/fpu_control.h | 17 ++++++ 42 files changed, 1497 insertions(+) create mode 100644 sysdeps/loongarch/fpu/e_ilogb.c create mode 100644 sysdeps/loongarch/fpu/e_ilogbf.c create mode 100644 sysdeps/loongarch/fpu/e_scalb.c create mode 100644 sysdeps/loongarch/fpu/e_scalbf.c create mode 100644 sysdeps/loongarch/fpu/math-use-builtins-fma.h create mode 100644 sysdeps/loongarch/fpu/s_copysign.c create mode 100644 sysdeps/loongarch/fpu/s_copysignf.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_mag.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_mag_num.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_mag_numf.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_magf.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_num.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximum_numf.c create mode 100644 sysdeps/loongarch/fpu/s_fmaximumf.c create mode 100644 sysdeps/loongarch/fpu/s_fmaxmag.c create mode 100644 sysdeps/loongarch/fpu/s_fmaxmagf.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_mag.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_mag_num.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_mag_numf.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_magf.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_num.c create mode 100644 sysdeps/loongarch/fpu/s_fminimum_numf.c create mode 100644 sysdeps/loongarch/fpu/s_fminimumf.c create mode 100644 sysdeps/loongarch/fpu/s_fminmag.c create mode 100644 sysdeps/loongarch/fpu/s_fminmagf.c create mode 100644 sysdeps/loongarch/fpu/s_fpclassify.c create mode 100644 sysdeps/loongarch/fpu/s_fpclassifyf.c create mode 100644 sysdeps/loongarch/fpu/s_issignaling.c create mode 100644 sysdeps/loongarch/fpu/s_issignalingf.c create mode 100644 sysdeps/loongarch/fpu/s_llrint.c create mode 100644 sysdeps/loongarch/fpu/s_llrintf.c create mode 100644 sysdeps/loongarch/fpu/s_logb.c create mode 100644 sysdeps/loongarch/fpu/s_logbf.c create mode 100644 sysdeps/loongarch/fpu/s_lrint.c create mode 100644 sysdeps/loongarch/fpu/s_lrintf.c create mode 100644 sysdeps/loongarch/fpu/s_rint.c create mode 100644 sysdeps/loongarch/fpu/s_rintf.c create mode 100644 sysdeps/loongarch/fpu/s_scalbn.c create mode 100644 sysdeps/loongarch/fpu/s_scalbnf.c -- 2.36.0