From patchwork Mon Apr 20 18:28:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 38832 Return-Path: X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by sourceware.org (Postfix) with ESMTPS id EC20A3858D36 for ; Mon, 20 Apr 2020 18:28:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EC20A3858D36 Received: by mail-qk1-x72d.google.com with SMTP id g74so11738414qke.13 for ; Mon, 20 Apr 2020 11:28:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=sAL9SfNgJ1xKxVvUWW4BnDBWRkxoMkn0LCars6JxZl8=; b=b4SUGIac05P8BBF8f0QEjsLF98641Q6Zhfu5u1dP2ieUUD1kuaJn0HKWd/2dcazVh4 h21uA5AhHqD7S9ZWz/qPVXdV50GEztI6kUgYLlnqY5UcFwvzESC+zVbDK2SkJYl5f3nK j1vfVaK2ZtO8rQPhyNLKJwc+Yl3sKCWvNaZlYgm2rI06f9Tf5mOAzA652OXhmp8pCXnv CH28BMKbW0WrHs8mHcXtHpIBGPAbajKv80Xc0P5HrmmIn2Wy0u3Otpo8BdTSkG+LZ1Rs EoMHWQ0h085DMobdqKfib5jgXqtKDUaRgWxEQmUaxFQwyrp6kJQlOavmP/iKr//xGflS nF7A== X-Gm-Message-State: AGi0PuYgQvLmA1pPKyDnFRPzj22aWDoiDeOnwEdzobKJTVX+aN1uDYKN Nhcnkht5Bv2QrkfC+2lhw0rZzRDu1UrdOw== X-Google-Smtp-Source: APiQypK+zManYvxmpbswA7a+mSOQ16vRLpPHxa9AOGd2QMDo3bnlrtJd2HX8LIkFiFf+5grqb1B9XQ== X-Received: by 2002:a37:e112:: with SMTP id c18mr16848334qkm.467.1587407304109; Mon, 20 Apr 2020 11:28:24 -0700 (PDT) Received: from localhost.localdomain ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id 205sm232430qkj.1.2020.04.20.11.28.22 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Apr 2020 11:28:23 -0700 (PDT) From: Adhemerval Zanella To: libc-alpha@sourceware.org Subject: [COMMITTED] Revert "x86_64: Add SSE sfp-exceptions" Date: Mon, 20 Apr 2020 15:28:18 -0300 Message-Id: <20200420182818.16742-1-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-26.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, 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-List-Received-Date: Mon, 20 Apr 2020 18:28:26 -0000 The __sfp_handle_exceptions is not fully correct regarding raising exceptions, since there is no direct way to raise only FP_EX_OVERFLOW nor FP_EX_UNDERFLOW for SSE mode. Both libgcc and feraiseexcept rely on x87 mode to accomplish it. This reverts commit 460ee50de054396cc9791ff4cfdc2f5029fb923d. Checked on x86_64. --- sysdeps/x86/fpu/sfp-exceptions.c | 57 -------------------------------- sysdeps/x86_64/fpu/Makefile | 4 +-- 2 files changed, 1 insertion(+), 60 deletions(-) delete mode 100644 sysdeps/x86/fpu/sfp-exceptions.c diff --git a/sysdeps/x86/fpu/sfp-exceptions.c b/sysdeps/x86/fpu/sfp-exceptions.c deleted file mode 100644 index 74ce0716e2..0000000000 --- a/sysdeps/x86/fpu/sfp-exceptions.c +++ /dev/null @@ -1,57 +0,0 @@ -/* x86_64 soft-fp exception handling for _Float128. - 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 -#include -#include -#include - -void -__sfp_handle_exceptions (int _fex) -{ - if (_fex & FP_EX_INVALID) - { - float f = 0.0f; - math_force_eval (f / f); - } - if (_fex & FP_EX_DENORM) - { - float f = FLT_MIN, g = 2.0f; - math_force_eval (f / g); - } - if (_fex & FP_EX_DIVZERO) - { - float f = 1.0f, g = 0.0f; - math_force_eval (f / g); - } - if (_fex & FP_EX_OVERFLOW) - { - float force_underflow = FLT_MAX * FLT_MAX; - math_force_eval (force_underflow); - } - if (_fex & FP_EX_UNDERFLOW) - { - float force_overflow = FLT_MIN * FLT_MIN; - math_force_eval (force_overflow); - } - if (_fex & FP_EX_INEXACT) - { - float f = 1.0f, g = 3.0f; - math_force_eval (f / g); - } -} diff --git a/sysdeps/x86_64/fpu/Makefile b/sysdeps/x86_64/fpu/Makefile index a95e3f74f4..a4ff2723a8 100644 --- a/sysdeps/x86_64/fpu/Makefile +++ b/sysdeps/x86_64/fpu/Makefile @@ -23,10 +23,8 @@ libmvec-support += svml_d_cos2_core svml_d_cos4_core_avx \ svml_s_sincosf8_core svml_s_sincosf16_core endif -ifeq ($(subdir),math) -libm-routines += sfp-exceptions - # Variables for libmvec tests. +ifeq ($(subdir),math) ifeq ($(build-mathvec),yes) libmvec-tests += double-vlen2 double-vlen4 double-vlen4-avx2 \ float-vlen4 float-vlen8 float-vlen8-avx2