From patchwork Fri Sep 4 19:45:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40362 X-Patchwork-Delegate: dj@redhat.com 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 ABCD23850428; Fri, 4 Sep 2020 19:55:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ABCD23850428 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1599249349; bh=w1/tF2/2cNsR4zo/TdivHkwVIDywkFhIxltD0p/zuIk=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=ufcFbhplRhevfHIV8s7Rzjn/8uT10Q4sYfXydZ8fyMBtJLmFDHCb89hDARH45CvsV R4yL8k/JnkKAd3gNlGe9vi2kEQbONYt3Wox4ySUfD9Jr2xvYwdmha/gCz17578YUcV jHUe+pJaWZGNfajDMnIvDy9yt4EFeCL0AY6RXG5k= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) by sourceware.org (Postfix) with ESMTPS id 2D99F385701F for ; Fri, 4 Sep 2020 19:55:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 2D99F385701F IronPort-SDR: W26pot0Fx2voIaI74xILG94YL03OabwX8zwBtVDMsiNAghUxRkk4KdM7km+cSt3pFy86CgS0Dj q5rPkyDoxydP/nEgpkfajxcbfATRSHhiZTpEBQscBfi/r2sostGKSGYyGs99Cx1SDuKQZKfVK5 vGoCvhL3MC6xRaRJXsYOTWb2CFDLTwhn/vDuyJ0wJNOEV5eSDCuwyJ1LJTz964cNsfMyOVFXLc 0an/hdRPUaCqHS8mMK3gW+Qh2WF+7GYC2YtQEDXwK0Gbl0cd41JuCHyKYSUMEbnrSq0HNXppGN OuE= X-IronPort-AV: E=Sophos;i="5.76,391,1592841600"; d="scan'208";a="249884212" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 05 Sep 2020 03:55:59 +0800 IronPort-SDR: MPlpvGJfgFH0S6/Xg5yfX2TU95l866VhicWZvRhWrlHl7Ozul+By9rAGwfGiPR2cQquCx99q2A gyYC2DrcjeUA== Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 12:42:18 -0700 IronPort-SDR: gVnxY4tXqr0IqKs/lqHD7uBNQ/TzZ2QlDprgYbbiCaqPtIscp/uGWvR23B75K+qxesqW0z+1Bn l56ptocQny5w== WDCIronportException: Internal Received: from b9f8262.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.59.253]) by uls-op-cesaip02.wdc.com with ESMTP; 04 Sep 2020 12:55:45 -0700 To: libc-alpha@sourceware.org Subject: [PATCH 1/2] rsciv: Consolidate the libm-test-ulps Date: Fri, 4 Sep 2020 12:45:13 -0700 Message-Id: <20200904194514.666290-1-alistair.francis@wdc.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-Spam-Status: No, score=-14.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, 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: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Both RV32 and RV64 have the same libm-test-ulps, so consolidate them into a single file. --- sysdeps/riscv/rv64/rvd/libm-test-ulps | 1405 ----------------- sysdeps/riscv/rv64/rvd/libm-test-ulps-name | 1 - sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps | 0 .../riscv/{rv32 => }/rvd/libm-test-ulps-name | 0 4 files changed, 1406 deletions(-) delete mode 100644 sysdeps/riscv/rv64/rvd/libm-test-ulps delete mode 100644 sysdeps/riscv/rv64/rvd/libm-test-ulps-name rename sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps (100%) rename sysdeps/riscv/{rv32 => }/rvd/libm-test-ulps-name (100%) diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps b/sysdeps/riscv/rv64/rvd/libm-test-ulps deleted file mode 100644 index 5b6f121ac5..0000000000 --- a/sysdeps/riscv/rv64/rvd/libm-test-ulps +++ /dev/null @@ -1,1405 +0,0 @@ -# Begin of automatic generation - -# Maximal error of functions: -Function: "acos": -float: 1 -ldouble: 1 - -Function: "acos_downward": -double: 1 -float: 1 -ldouble: 1 - -Function: "acos_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "acos_upward": -double: 1 -float: 1 -ldouble: 1 - -Function: "acosh": -double: 2 -float: 2 -ldouble: 2 - -Function: "acosh_downward": -double: 2 -float: 2 -ldouble: 3 - -Function: "acosh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "acosh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: "asin": -float: 1 -ldouble: 1 - -Function: "asin_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "asin_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "asin_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "asinh": -double: 1 -float: 2 -ldouble: 3 - -Function: "asinh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "asinh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "asinh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "atan": -float: 1 -ldouble: 1 - -Function: "atan2": -float: 1 -ldouble: 1 - -Function: "atan2_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atan2_towardzero": -double: 1 -float: 2 -ldouble: 3 - -Function: "atan2_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "atan_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atan_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "atan_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: "atanh": -double: 2 -float: 2 -ldouble: 3 - -Function: "atanh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "atanh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: "atanh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "cabs": -double: 1 -ldouble: 1 - -Function: "cabs_downward": -double: 1 -ldouble: 1 - -Function: "cabs_towardzero": -double: 1 -ldouble: 1 - -Function: "cabs_upward": -double: 1 -ldouble: 1 - -Function: Real part of "cacos": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cacos": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "cacos_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Real part of "cacos_towardzero": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Real part of "cacos_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cacos_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Real part of "cacosh": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cacosh": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cacosh_downward": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "cacosh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: Real part of "cacosh_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "cacosh_towardzero": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "cacosh_upward": -double: 4 -float: 3 -ldouble: 6 - -Function: Imaginary part of "cacosh_upward": -double: 3 -float: 2 -ldouble: 4 - -Function: "carg": -float: 1 -ldouble: 2 - -Function: "carg_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: "carg_towardzero": -double: 1 -float: 2 -ldouble: 3 - -Function: "carg_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "casin": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "casin": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "casin_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "casin_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Real part of "casin_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: Imaginary part of "casin_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Real part of "casin_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Imaginary part of "casin_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Real part of "casinh": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "casinh": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "casinh_downward": -double: 5 -float: 3 -ldouble: 6 - -Function: Imaginary part of "casinh_downward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "casinh_towardzero": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "casinh_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: Real part of "casinh_upward": -double: 5 -float: 5 -ldouble: 7 - -Function: Imaginary part of "casinh_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "catan": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "catan": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "catan_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catan_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "catan_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catan_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "catan_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "catan_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "catanh": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "catanh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "catanh_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "catanh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "catanh_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "catanh_upward": -double: 4 -float: 4 -ldouble: 4 - -Function: Imaginary part of "catanh_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "cbrt": -double: 3 -float: 1 -ldouble: 1 - -Function: "cbrt_downward": -double: 4 -float: 1 -ldouble: 1 - -Function: "cbrt_towardzero": -double: 3 -float: 1 -ldouble: 1 - -Function: "cbrt_upward": -double: 5 -float: 1 -ldouble: 1 - -Function: Real part of "ccos": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "ccos": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "ccos_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: Imaginary part of "ccos_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccos_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Imaginary part of "ccos_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccos_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ccos_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "ccosh": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "ccosh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "ccosh_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "ccosh_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccosh_towardzero": -double: 2 -float: 3 -ldouble: 2 - -Function: Imaginary part of "ccosh_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "ccosh_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ccosh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "cexp": -double: 2 -float: 1 -ldouble: 1 - -Function: Imaginary part of "cexp": -double: 1 -float: 2 -ldouble: 1 - -Function: Real part of "cexp_downward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "cexp_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "cexp_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "cexp_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "cexp_upward": -double: 3 -float: 2 -ldouble: 3 - -Function: Real part of "clog": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "clog": -float: 1 -ldouble: 1 - -Function: Real part of "clog10": -double: 3 -float: 4 -ldouble: 2 - -Function: Imaginary part of "clog10": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "clog10_downward": -double: 5 -float: 5 -ldouble: 3 - -Function: Imaginary part of "clog10_downward": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog10_towardzero": -double: 5 -float: 5 -ldouble: 4 - -Function: Imaginary part of "clog10_towardzero": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog10_upward": -double: 6 -float: 5 -ldouble: 4 - -Function: Imaginary part of "clog10_upward": -double: 2 -float: 4 -ldouble: 3 - -Function: Real part of "clog_downward": -double: 4 -float: 3 -ldouble: 3 - -Function: Imaginary part of "clog_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "clog_towardzero": -double: 4 -float: 4 -ldouble: 3 - -Function: Imaginary part of "clog_towardzero": -double: 1 -float: 3 -ldouble: 2 - -Function: Real part of "clog_upward": -double: 4 -float: 3 -ldouble: 4 - -Function: Imaginary part of "clog_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: "cos": -double: 1 -float: 1 -ldouble: 1 - -Function: "cos_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "cos_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "cos_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "cosh": -double: 1 -float: 2 -ldouble: 1 - -Function: "cosh_downward": -double: 2 -float: 1 -ldouble: 2 - -Function: "cosh_towardzero": -double: 2 -float: 1 -ldouble: 2 - -Function: "cosh_upward": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "cpow": -double: 2 -float: 5 -ldouble: 4 - -Function: Imaginary part of "cpow": -float: 2 -ldouble: 1 - -Function: Real part of "cpow_downward": -double: 5 -float: 8 -ldouble: 6 - -Function: Imaginary part of "cpow_downward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cpow_towardzero": -double: 5 -float: 8 -ldouble: 6 - -Function: Imaginary part of "cpow_towardzero": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "cpow_upward": -double: 4 -float: 1 -ldouble: 3 - -Function: Imaginary part of "cpow_upward": -double: 1 -float: 2 -ldouble: 2 - -Function: Real part of "csin": -double: 1 -float: 1 -ldouble: 1 - -Function: Imaginary part of "csin": -ldouble: 1 - -Function: Real part of "csin_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "csin_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "csin_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Imaginary part of "csin_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: Real part of "csin_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csin_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Real part of "csinh": -float: 1 -ldouble: 1 - -Function: Imaginary part of "csinh": -double: 1 -float: 1 -ldouble: 1 - -Function: Real part of "csinh_downward": -double: 2 -float: 1 -ldouble: 2 - -Function: Imaginary part of "csinh_downward": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "csinh_towardzero": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csinh_towardzero": -double: 3 -float: 3 -ldouble: 2 - -Function: Real part of "csinh_upward": -double: 1 -float: 2 -ldouble: 3 - -Function: Imaginary part of "csinh_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "csqrt": -double: 2 -float: 2 -ldouble: 2 - -Function: Imaginary part of "csqrt": -double: 2 -float: 2 -ldouble: 2 - -Function: Real part of "csqrt_downward": -double: 5 -float: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_downward": -double: 4 -float: 3 -ldouble: 3 - -Function: Real part of "csqrt_towardzero": -double: 4 -float: 3 -ldouble: 3 - -Function: Imaginary part of "csqrt_towardzero": -double: 4 -float: 3 -ldouble: 3 - -Function: Real part of "csqrt_upward": -double: 5 -float: 4 -ldouble: 4 - -Function: Imaginary part of "csqrt_upward": -double: 3 -float: 3 -ldouble: 3 - -Function: Real part of "ctan": -double: 1 -float: 1 -ldouble: 3 - -Function: Imaginary part of "ctan": -double: 2 -float: 2 -ldouble: 3 - -Function: Real part of "ctan_downward": -double: 6 -float: 5 -ldouble: 4 - -Function: Imaginary part of "ctan_downward": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctan_towardzero": -double: 5 -float: 2 -ldouble: 4 - -Function: Imaginary part of "ctan_towardzero": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctan_upward": -double: 2 -float: 4 -ldouble: 5 - -Function: Imaginary part of "ctan_upward": -double: 2 -float: 2 -ldouble: 5 - -Function: Real part of "ctanh": -double: 2 -float: 2 -ldouble: 3 - -Function: Imaginary part of "ctanh": -double: 2 -float: 1 -ldouble: 3 - -Function: Real part of "ctanh_downward": -double: 4 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_downward": -double: 6 -float: 5 -ldouble: 4 - -Function: Real part of "ctanh_towardzero": -double: 2 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_towardzero": -double: 5 -float: 2 -ldouble: 3 - -Function: Real part of "ctanh_upward": -double: 2 -float: 2 -ldouble: 5 - -Function: Imaginary part of "ctanh_upward": -double: 2 -float: 3 -ldouble: 5 - -Function: "erf": -double: 1 -float: 1 -ldouble: 1 - -Function: "erf_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "erf_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "erf_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "erfc": -double: 2 -float: 2 -ldouble: 2 - -Function: "erfc_downward": -double: 4 -float: 4 -ldouble: 5 - -Function: "erfc_towardzero": -double: 3 -float: 3 -ldouble: 4 - -Function: "erfc_upward": -double: 4 -float: 4 -ldouble: 5 - -Function: "exp": -float: 1 -ldouble: 1 - -Function: "exp10": -double: 2 -ldouble: 2 - -Function: "exp10_downward": -double: 3 -float: 1 -ldouble: 3 - -Function: "exp10_towardzero": -double: 3 -float: 1 -ldouble: 3 - -Function: "exp10_upward": -double: 2 -float: 1 -ldouble: 3 - -Function: "exp2": -double: 1 -ldouble: 1 - -Function: "exp2_downward": -double: 1 -ldouble: 1 - -Function: "exp2_towardzero": -double: 1 -ldouble: 1 - -Function: "exp2_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "exp_downward": -double: 1 -float: 1 - -Function: "exp_towardzero": -double: 1 -float: 1 - -Function: "exp_upward": -double: 1 -float: 1 - -Function: "expm1": -double: 1 -float: 1 -ldouble: 1 - -Function: "expm1_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "expm1_towardzero": -double: 1 -float: 2 -ldouble: 4 - -Function: "expm1_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "gamma": -double: 3 -float: 3 -ldouble: 5 - -Function: "gamma_downward": -double: 4 -float: 4 -ldouble: 8 - -Function: "gamma_towardzero": -double: 4 -float: 3 -ldouble: 5 - -Function: "gamma_upward": -double: 4 -float: 5 -ldouble: 8 - -Function: "hypot": -double: 1 -ldouble: 1 - -Function: "hypot_downward": -double: 1 -ldouble: 1 - -Function: "hypot_towardzero": -double: 1 -ldouble: 1 - -Function: "hypot_upward": -double: 1 -ldouble: 1 - -Function: "j0": -double: 2 -float: 8 -ldouble: 2 - -Function: "j0_downward": -double: 2 -float: 4 -ldouble: 4 - -Function: "j0_towardzero": -double: 5 -float: 6 -ldouble: 2 - -Function: "j0_upward": -double: 4 -float: 5 -ldouble: 5 - -Function: "j1": -double: 2 -float: 8 -ldouble: 4 - -Function: "j1_downward": -double: 3 -float: 5 -ldouble: 4 - -Function: "j1_towardzero": -double: 3 -float: 2 -ldouble: 4 - -Function: "j1_upward": -double: 3 -float: 4 -ldouble: 3 - -Function: "jn": -double: 4 -float: 4 -ldouble: 7 - -Function: "jn_downward": -double: 4 -float: 5 -ldouble: 8 - -Function: "jn_towardzero": -double: 4 -float: 5 -ldouble: 8 - -Function: "jn_upward": -double: 5 -float: 4 -ldouble: 7 - -Function: "lgamma": -double: 3 -float: 3 -ldouble: 5 - -Function: "lgamma_downward": -double: 4 -float: 4 -ldouble: 8 - -Function: "lgamma_towardzero": -double: 4 -float: 3 -ldouble: 5 - -Function: "lgamma_upward": -double: 4 -float: 5 -ldouble: 8 - -Function: "log": -ldouble: 1 - -Function: "log10": -double: 2 -float: 2 -ldouble: 1 - -Function: "log10_downward": -double: 2 -float: 3 -ldouble: 1 - -Function: "log10_towardzero": -double: 2 -float: 1 -ldouble: 1 - -Function: "log10_upward": -double: 2 -float: 2 -ldouble: 1 - -Function: "log1p": -double: 1 -float: 1 -ldouble: 2 - -Function: "log1p_downward": -double: 1 -float: 2 -ldouble: 3 - -Function: "log1p_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "log1p_upward": -double: 2 -float: 2 -ldouble: 2 - -Function: "log2": -double: 1 -float: 1 -ldouble: 2 - -Function: "log2_downward": -double: 3 -ldouble: 3 - -Function: "log2_towardzero": -double: 2 -ldouble: 1 - -Function: "log2_upward": -double: 3 -ldouble: 1 - -Function: "log_downward": -ldouble: 1 - -Function: "log_towardzero": -ldouble: 2 - -Function: "log_upward": -double: 1 -ldouble: 2 - -Function: "pow": -double: 1 -ldouble: 2 - -Function: "pow_downward": -double: 1 -float: 1 -ldouble: 2 - -Function: "pow_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "pow_upward": -double: 1 -float: 1 -ldouble: 2 - -Function: "sin": -double: 1 -float: 1 -ldouble: 1 - -Function: "sin_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sin_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "sin_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sincos": -double: 1 -ldouble: 1 - -Function: "sincos_downward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sincos_towardzero": -double: 1 -float: 1 -ldouble: 2 - -Function: "sincos_upward": -double: 1 -float: 1 -ldouble: 3 - -Function: "sinh": -double: 2 -float: 2 -ldouble: 2 - -Function: "sinh_downward": -double: 3 -float: 3 -ldouble: 3 - -Function: "sinh_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "sinh_upward": -double: 3 -float: 3 -ldouble: 4 - -Function: "tan": -float: 1 -ldouble: 1 - -Function: "tan_downward": -double: 1 -float: 2 -ldouble: 1 - -Function: "tan_towardzero": -double: 1 -float: 1 -ldouble: 1 - -Function: "tan_upward": -double: 1 -float: 1 -ldouble: 1 - -Function: "tanh": -double: 2 -float: 2 -ldouble: 2 - -Function: "tanh_downward": -double: 3 -float: 3 -ldouble: 4 - -Function: "tanh_towardzero": -double: 2 -float: 2 -ldouble: 3 - -Function: "tanh_upward": -double: 3 -float: 3 -ldouble: 3 - -Function: "tgamma": -double: 5 -float: 8 -ldouble: 4 - -Function: "tgamma_downward": -double: 5 -float: 7 -ldouble: 5 - -Function: "tgamma_towardzero": -double: 5 -float: 7 -ldouble: 5 - -Function: "tgamma_upward": -double: 4 -float: 8 -ldouble: 4 - -Function: "y0": -double: 2 -float: 6 -ldouble: 3 - -Function: "y0_downward": -double: 3 -float: 4 -ldouble: 4 - -Function: "y0_towardzero": -double: 3 -float: 3 -ldouble: 3 - -Function: "y0_upward": -double: 2 -float: 5 -ldouble: 3 - -Function: "y1": -double: 3 -float: 2 -ldouble: 2 - -Function: "y1_downward": -double: 3 -float: 2 -ldouble: 4 - -Function: "y1_towardzero": -double: 3 -float: 2 -ldouble: 2 - -Function: "y1_upward": -double: 5 -float: 2 -ldouble: 5 - -Function: "yn": -double: 3 -float: 3 -ldouble: 5 - -Function: "yn_downward": -double: 3 -float: 4 -ldouble: 5 - -Function: "yn_towardzero": -double: 3 -float: 3 -ldouble: 5 - -Function: "yn_upward": -double: 4 -float: 5 -ldouble: 5 - -# end of automatic generation diff --git a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name b/sysdeps/riscv/rv64/rvd/libm-test-ulps-name deleted file mode 100644 index 827fcdca19..0000000000 --- a/sysdeps/riscv/rv64/rvd/libm-test-ulps-name +++ /dev/null @@ -1 +0,0 @@ -RISC-V diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps b/sysdeps/riscv/rvd/libm-test-ulps similarity index 100% rename from sysdeps/riscv/rv32/rvd/libm-test-ulps rename to sysdeps/riscv/rvd/libm-test-ulps diff --git a/sysdeps/riscv/rv32/rvd/libm-test-ulps-name b/sysdeps/riscv/rvd/libm-test-ulps-name similarity index 100% rename from sysdeps/riscv/rv32/rvd/libm-test-ulps-name rename to sysdeps/riscv/rvd/libm-test-ulps-name From patchwork Fri Sep 4 19:45:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 40363 X-Patchwork-Delegate: dj@redhat.com 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 3F22A386F434; Fri, 4 Sep 2020 19:55:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3F22A386F434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1599249352; bh=qtVdBDYfKY0hk11/quuM6/MFw3eiAw4y9DErjagzvo8=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Unt5vRxjdzEyghIHL2QRXZvHHdSstO5MV29SGofJSlqlrWTHBrbJ9sYaniw8pFHX8 S6BGXCDdLY7GupguVsYjYPlfbpv5rByYmehfm2PJ715H2zRHesATUZ34NswafM9cQt nSw6rmESFW4tlDhQVbd//SKDoqS4aa+1h9rbUqKc= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) by sourceware.org (Postfix) with ESMTPS id 17A7F385701F for ; Fri, 4 Sep 2020 19:55:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 17A7F385701F IronPort-SDR: kQMhggnnA235Yhg4c+nkxQbtw9wdIJXzV5Yz5n+Y9OXyTyISIdwbcQqs3Wt11b9j4hLYpTrqCn XCPvRLnBgwxmSeRvZjrB2E1gFTXMJxQW458rHhtQnTMQ19DwKLQEhd3ys8aYzXmeZ1MMwFlWyc +BWA3OrLbU2/x+bZT6UCK6tLJ8/pOzSyspl5Tin1QBJinvuDLLPHk5U2D42B7QiMIkvkeSDd5y TPtUVuYAUsFQ5IxUGtoFPwmZ8h6aCzG7PHzWDCoQ65s4vvcb2QNjC+QSq1cWzN4leKXLVlCLE4 prY= X-IronPort-AV: E=Sophos;i="5.76,391,1592841600"; d="scan'208";a="249884213" Received: from uls-op-cesaip02.wdc.com (HELO uls-op-cesaep02.wdc.com) ([199.255.45.15]) by ob1.hgst.iphmx.com with ESMTP; 05 Sep 2020 03:55:59 +0800 IronPort-SDR: r/HlUYihIxwEQPcU7yBDcy2t2eP+t/HU2EIv+4G7X8IVozKXD9SzpfqP2eoFHAcbQY0Okbijy2 RPZNDzzr4BEQ== Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep02.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2020 12:42:18 -0700 IronPort-SDR: bwi0yGuniyKX6s/ooy5Gte/7a3ZdUqr4lFKHtvglzmhO5bCtzvokr7AD8yseHZ0E8TvbilsWQP 1GZWwAU4FUOg== WDCIronportException: Internal Received: from b9f8262.ad.shared (HELO risc6-mainframe.hgst.com) ([10.86.59.253]) by uls-op-cesaip02.wdc.com with ESMTP; 04 Sep 2020 12:55:46 -0700 To: libc-alpha@sourceware.org Subject: [PATCH 2/2] riscv: Remove RV32 floating point functions Date: Fri, 4 Sep 2020 12:45:14 -0700 Message-Id: <20200904194514.666290-2-alistair.francis@wdc.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200904194514.666290-1-alistair.francis@wdc.com> References: <20200904194514.666290-1-alistair.francis@wdc.com> MIME-Version: 1.0 X-Spam-Status: No, score=-14.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_ASCII_DIVIDERS, KAM_SHORT, SPF_HELO_PASS, 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: Alistair Francis via Libc-alpha From: Alistair Francis Reply-To: Alistair Francis Cc: alistair.francis@wdc.com Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" We don't need RV32 specific floating point functions, instead make them generic for RISC-V. --- sysdeps/riscv/rv32/rvd/Implies | 1 - sysdeps/riscv/rv64/rvd/s_lrint.c | 30 ----------------------- sysdeps/riscv/rv64/rvd/s_lround.c | 30 ----------------------- sysdeps/riscv/rv64/rvf/s_lrintf.c | 31 ------------------------ sysdeps/riscv/rv64/rvf/s_lroundf.c | 31 ------------------------ sysdeps/riscv/{rv32 => }/rvd/s_lrint.c | 15 +++++++++--- sysdeps/riscv/{rv32 => }/rvd/s_lround.c | 15 +++++++++--- sysdeps/riscv/{rv32 => }/rvf/s_lrintf.c | 14 ++++++++--- sysdeps/riscv/{rv32 => }/rvf/s_lroundf.c | 14 ++++++++--- 9 files changed, 44 insertions(+), 137 deletions(-) delete mode 100644 sysdeps/riscv/rv64/rvd/s_lrint.c delete mode 100644 sysdeps/riscv/rv64/rvd/s_lround.c delete mode 100644 sysdeps/riscv/rv64/rvf/s_lrintf.c delete mode 100644 sysdeps/riscv/rv64/rvf/s_lroundf.c rename sysdeps/riscv/{rv32 => }/rvd/s_lrint.c (81%) rename sysdeps/riscv/{rv32 => }/rvd/s_lround.c (80%) rename sysdeps/riscv/{rv32 => }/rvf/s_lrintf.c (81%) rename sysdeps/riscv/{rv32 => }/rvf/s_lroundf.c (81%) diff --git a/sysdeps/riscv/rv32/rvd/Implies b/sysdeps/riscv/rv32/rvd/Implies index 1151214e8f..9438838e98 100644 --- a/sysdeps/riscv/rv32/rvd/Implies +++ b/sysdeps/riscv/rv32/rvd/Implies @@ -1,3 +1,2 @@ -riscv/rv32/rvf riscv/rvd riscv/rvf diff --git a/sysdeps/riscv/rv64/rvd/s_lrint.c b/sysdeps/riscv/rv64/rvd/s_lrint.c deleted file mode 100644 index d9f65a27c5..0000000000 --- a/sysdeps/riscv/rv64/rvd/s_lrint.c +++ /dev/null @@ -1,30 +0,0 @@ -/* lrint(). RISC-V version. - Copyright (C) 2017-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 -#include - -long int -__lrint (double x) -{ - int64_t res; - asm ("fcvt.l.d %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lrint, lrint) diff --git a/sysdeps/riscv/rv64/rvd/s_lround.c b/sysdeps/riscv/rv64/rvd/s_lround.c deleted file mode 100644 index 73e513c783..0000000000 --- a/sysdeps/riscv/rv64/rvd/s_lround.c +++ /dev/null @@ -1,30 +0,0 @@ -/* llround(). RISC-V version. - Copyright (C) 2017-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 -#include - -long int -__lround (double x) -{ - int64_t res; - asm ("fcvt.l.d %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_double (__lround, lround) diff --git a/sysdeps/riscv/rv64/rvf/s_lrintf.c b/sysdeps/riscv/rv64/rvf/s_lrintf.c deleted file mode 100644 index c7c033c3be..0000000000 --- a/sysdeps/riscv/rv64/rvf/s_lrintf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lrintf(). RISC-V version. - Copyright (C) 2017-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 -#include -#include - -long int -__lrintf (float x) -{ - int64_t res; - asm ("fcvt.l.s %0, %1" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lrint, lrint) diff --git a/sysdeps/riscv/rv64/rvf/s_lroundf.c b/sysdeps/riscv/rv64/rvf/s_lroundf.c deleted file mode 100644 index 76817cadad..0000000000 --- a/sysdeps/riscv/rv64/rvf/s_lroundf.c +++ /dev/null @@ -1,31 +0,0 @@ -/* lroundf(). RISC-V version. - Copyright (C) 2017-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 -#include -#include - -long int -__lroundf (float x) -{ - int64_t res; - asm ("fcvt.l.s %0, %1, rmm" : "=r" (res) : "f" (x)); - return res; -} - -libm_alias_float (__lround, lround) diff --git a/sysdeps/riscv/rv32/rvd/s_lrint.c b/sysdeps/riscv/rvd/s_lrint.c similarity index 81% rename from sysdeps/riscv/rv32/rvd/s_lrint.c rename to sysdeps/riscv/rvd/s_lrint.c index bdec792f18..46a7fb3da4 100644 --- a/sysdeps/riscv/rv32/rvd/s_lrint.c +++ b/sysdeps/riscv/rvd/s_lrint.c @@ -1,4 +1,4 @@ -/* lrint(). The 32-bit RISC-V (RV32) version. +/* lrint(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,15 +16,22 @@ License along with the GNU C Library. If not, see . */ -#include #include #include +#if __WORDSIZE == 64 +# define OP "fcvt.l.d" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.d" +#else +# error Unsupported +#endif + long int __lrint (double x) { - int32_t res; - asm ("fcvt.w.d %0, %1" : "=r" (res) : "f" (x)); + long int res; + asm (OP "\t%0, %1" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvd/s_lround.c b/sysdeps/riscv/rvd/s_lround.c similarity index 80% rename from sysdeps/riscv/rv32/rvd/s_lround.c rename to sysdeps/riscv/rvd/s_lround.c index 78bccd47ae..95753dcb39 100644 --- a/sysdeps/riscv/rv32/rvd/s_lround.c +++ b/sysdeps/riscv/rvd/s_lround.c @@ -1,4 +1,4 @@ -/* lround(). 32-bit RISC-V (RV32) version. +/* llround(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,15 +16,22 @@ License along with the GNU C Library. If not, see . */ -#include #include #include +#if __WORDSIZE == 64 +# define OP "fcvt.l.d" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.d" +#else +# error Unsupported +#endif + long int __lround (double x) { - int32_t res; - asm ("fcvt.w.d %0, %1, rmm" : "=r" (res) : "f" (x)); + long int res; + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvf/s_lrintf.c b/sysdeps/riscv/rvf/s_lrintf.c similarity index 81% rename from sysdeps/riscv/rv32/rvf/s_lrintf.c rename to sysdeps/riscv/rvf/s_lrintf.c index b8e1df439e..84fca99526 100644 --- a/sysdeps/riscv/rv32/rvf/s_lrintf.c +++ b/sysdeps/riscv/rvf/s_lrintf.c @@ -1,4 +1,4 @@ -/* lrintf(). 32-bit RISC-V (RV32) version. +/* lrintf(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -20,11 +20,19 @@ #include #include +#if __WORDSIZE == 64 +# define OP "fcvt.l.s" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.s" +#else +# error Unsupported +#endif + long int __lrintf (float x) { - int32_t res; - asm ("fcvt.w.s %0, %1" : "=r" (res) : "f" (x)); + long res; + asm (OP "\t%0, %1" : "=r" (res) : "f" (x)); return res; } diff --git a/sysdeps/riscv/rv32/rvf/s_lroundf.c b/sysdeps/riscv/rvf/s_lroundf.c similarity index 81% rename from sysdeps/riscv/rv32/rvf/s_lroundf.c rename to sysdeps/riscv/rvf/s_lroundf.c index 32f9925084..eba9b7adce 100644 --- a/sysdeps/riscv/rv32/rvf/s_lroundf.c +++ b/sysdeps/riscv/rvf/s_lroundf.c @@ -1,4 +1,4 @@ -/* lroundf(). 32-bit RISC-V (RV32) version. +/* lroundf(). RISC-V version. Copyright (C) 2020 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -20,11 +20,19 @@ #include #include +#if __WORDSIZE == 64 +# define OP "fcvt.l.s" +#elif __WORDSIZE == 32 +# define OP "fcvt.w.s" +#else +# error Unsupported +#endif + long int __lroundf (float x) { - int32_t res; - asm ("fcvt.w.s %0, %1, rmm" : "=r" (res) : "f" (x)); + long res; + asm (OP "\t%0, %1, rmm" : "=r" (res) : "f" (x)); return res; }