Skip to content

Revert "[libc][math] Implement issignaling macro." #109992

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 25, 2024

Conversation

lntue
Copy link
Contributor

@lntue lntue commented Sep 25, 2024

Reverts #109615

@llvmbot
Copy link
Member

llvmbot commented Sep 25, 2024

@llvm/pr-subscribers-libc

Author: None (lntue)

Changes

Reverts llvm/llvm-project#109615


Full diff: https://github.com/llvm/llvm-project/pull/109992.diff

7 Files Affected:

  • (modified) libc/include/llvm-libc-macros/math-function-macros.h (-4)
  • (modified) libc/test/include/CMakeLists.txt (-45)
  • (removed) libc/test/include/IsSignalingTest.h (-49)
  • (removed) libc/test/include/issignaling_test.c (-24)
  • (removed) libc/test/include/issignaling_test.cpp (-18)
  • (removed) libc/test/include/issignalingf_test.cpp (-18)
  • (removed) libc/test/include/issignalingl_test.cpp (-18)
diff --git a/libc/include/llvm-libc-macros/math-function-macros.h b/libc/include/llvm-libc-macros/math-function-macros.h
index c740eb2d188259..68f9ff9d1c0330 100644
--- a/libc/include/llvm-libc-macros/math-function-macros.h
+++ b/libc/include/llvm-libc-macros/math-function-macros.h
@@ -20,9 +20,5 @@
   __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x)
 #define isnormal(x) __builtin_isnormal(x)
 #define issubnormal(x) (fpclassify(x) == FP_SUBNORMAL)
-#if (defined(__clang__) && __clang_major__ >= 18) ||                           \
-    (defined(__GNUC__) && __GNUC__ >= 13)
-#define issignaling(x) __builtin_issignaling(x)
-#endif
 
 #endif // LLVM_LIBC_MACROS_MATH_FUNCTION_MACROS_H
diff --git a/libc/test/include/CMakeLists.txt b/libc/test/include/CMakeLists.txt
index dd8f21bdd07aeb..12692eed417c45 100644
--- a/libc/test/include/CMakeLists.txt
+++ b/libc/test/include/CMakeLists.txt
@@ -81,36 +81,6 @@ add_libc_test(
     libc.include.llvm-libc-macros.stdckdint_macros
 )
 
-add_libc_test(
-  issignaling_test
-  SUITE
-    libc_include_tests
-  SRCS
-    issignaling_test.cpp
-  DEPENDS
-    libc.include.llvm-libc-macros.math_function_macros
-)
-
-add_libc_test(
-  issignalingf_test
-  SUITE
-    libc_include_tests
-  SRCS
-    issignalingf_test.cpp
-  DEPENDS
-    libc.include.llvm-libc-macros.math_function_macros
-)
-
-add_libc_test(
-  issignalingl_test
-  SUITE
-    libc_include_tests
-  SRCS
-    issignalingl_test.cpp
-  DEPENDS
-    libc.include.llvm-libc-macros.math_function_macros
-)
-
 add_libc_test(
   issubnormal_test
   SUITE
@@ -396,21 +366,6 @@ add_libc_test(
     libc.include.llvm-libc-macros.math_function_macros
 )
 
-add_libc_test(
-  issignaling_c_test
-  C_TEST
-  UNIT_TEST_ONLY
-  SUITE
-    libc_include_tests
-  SRCS
-    issignaling_test.c
-  COMPILE_OPTIONS
-    -Wall
-    -Werror
-  DEPENDS
-    libc.include.llvm-libc-macros.math_function_macros
-)
-
 add_libc_test(
   isinf_c_test
   C_TEST
diff --git a/libc/test/include/IsSignalingTest.h b/libc/test/include/IsSignalingTest.h
deleted file mode 100644
index c369cfe090ed30..00000000000000
--- a/libc/test/include/IsSignalingTest.h
+++ /dev/null
@@ -1,49 +0,0 @@
-//===-- Utility class to test the issignaling macro  ------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_TEST_INCLUDE_MATH_ISSIGNALING_H
-#define LLVM_LIBC_TEST_INCLUDE_MATH_ISSIGNALING_H
-
-#include "test/UnitTest/FPMatcher.h"
-#include "test/UnitTest/Test.h"
-
-#include "include/llvm-libc-macros/math-function-macros.h"
-
-template <typename T>
-class IsSignalingTest : public LIBC_NAMESPACE::testing::Test {
-  DECLARE_SPECIAL_CONSTANTS(T)
-
-public:
-  typedef int (*IsSignalingFunc)(T);
-
-  void testSpecialNumbers(IsSignalingFunc func) {
-    EXPECT_EQ(func(aNaN), 0);
-    EXPECT_EQ(func(neg_aNaN), 0);
-    EXPECT_EQ(func(sNaN), 1);
-    EXPECT_EQ(func(neg_sNaN), 1);
-    EXPECT_EQ(func(inf), 0);
-    EXPECT_EQ(func(neg_inf), 0);
-    EXPECT_EQ(func(min_normal), 0);
-    EXPECT_EQ(func(max_normal), 0);
-    EXPECT_EQ(func(neg_max_normal), 0);
-    EXPECT_EQ(func(min_denormal), 0);
-    EXPECT_EQ(func(neg_min_denormal), 0);
-    EXPECT_EQ(func(max_denormal), 0);
-    EXPECT_EQ(func(zero), 0);
-    EXPECT_EQ(func(neg_zero), 0);
-  }
-};
-
-#define LIST_ISSIGNALING_TESTS(T, func)                                        \
-  using LlvmLibcIsSignalingTest = IsSignalingTest<T>;                          \
-  TEST_F(LlvmLibcIsSignalingTest, SpecialNumbers) {                            \
-    auto issignaling_func = [](T x) { return func(x); };                       \
-    testSpecialNumbers(issignaling_func);                                      \
-  }
-
-#endif // LLVM_LIBC_TEST_INCLUDE_MATH_ISSIGNALING_H
diff --git a/libc/test/include/issignaling_test.c b/libc/test/include/issignaling_test.c
deleted file mode 100644
index 2c080696404aee..00000000000000
--- a/libc/test/include/issignaling_test.c
+++ /dev/null
@@ -1,24 +0,0 @@
-//===-- Unittests for issignaling macro -----------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDSList-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-#include "include/llvm-libc-macros/math-function-macros.h"
-
-#include <assert.h>
-
-// TODO: enable the test unconditionally when issignaling macro is fixed for
-//       older compiler
-int main(void) {
-#ifdef issignaling
-  assert(issignaling(__builtin_nans("")) == 1);
-  assert(issignaling(__builtin_nansf("")) == 1);
-  assert(issignaling(__builtin_nansl("")) == 1);
-  assert(issignaling(1.819f) == 0);
-  assert(issignaling(-1.726) == 0);
-  assert(issignaling(1.426L) == 0);
-#endif
-  return 0;
-}
diff --git a/libc/test/include/issignaling_test.cpp b/libc/test/include/issignaling_test.cpp
deleted file mode 100644
index ef007feb0a6338..00000000000000
--- a/libc/test/include/issignaling_test.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- Unittest for issignaling[d] macro ---------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDSList-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "IsSignalingTest.h"
-#include "include/llvm-libc-macros/math-function-macros.h"
-
-// TODO: enable the test unconditionally when issignaling macro is fixed for
-//       older compiler
-#ifdef issignaling
-LIST_ISSIGNALING_TESTS(double, issignaling)
-#else
-int main() { return 0; }
-#endif
diff --git a/libc/test/include/issignalingf_test.cpp b/libc/test/include/issignalingf_test.cpp
deleted file mode 100644
index 9b236f2bb84d75..00000000000000
--- a/libc/test/include/issignalingf_test.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- Unittest for issignaling[f] macro ---------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDSList-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "IsSignalingTest.h"
-#include "include/llvm-libc-macros/math-function-macros.h"
-
-// TODO: enable the test unconditionally when issignaling macro is fixed for
-//       older compiler
-#ifdef issignaling
-LIST_ISSIGNALING_TESTS(float, issignaling)
-#else
-int main() { return 0; }
-#endif
diff --git a/libc/test/include/issignalingl_test.cpp b/libc/test/include/issignalingl_test.cpp
deleted file mode 100644
index 35482cb4b02029..00000000000000
--- a/libc/test/include/issignalingl_test.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//===-- Unittest for issignaling[l] macro ---------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDSList-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "IsSignalingTest.h"
-#include "include/llvm-libc-macros/math-function-macros.h"
-
-// TODO: enable the test unconditionally when issignaling macro is fixed for
-//       older compiler
-#ifdef issignaling
-LIST_ISSIGNALING_TESTS(long double, issignaling)
-#else
-int main() { return 0; }
-#endif

Copy link

⚠️ We detected that you are using a GitHub private e-mail address to contribute to the repo.
Please turn off Keep my email addresses private setting in your account.
See LLVM Discourse for more information.

@lntue lntue merged commit 808c498 into main Sep 25, 2024
7 of 8 checks passed
@lntue lntue deleted the revert-109615-issignaling branch September 25, 2024 14:58
Sh0g0-1758 added a commit to Sh0g0-1758/llvm-project that referenced this pull request Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants