Skip to content

Conversation

@overmighty
Copy link
Member

@overmighty overmighty commented Jul 26, 2025

Reverts #146226

The MPFR test uses mpfr_asinpi which requires MPFR 4.2.0 or later, but
the Buildbots are running an older version of MPFR.

See https://lab.llvm.org/buildbot/#/builders/104/builds/27743 for
example.

I said I was going to revert the PR until we have a workaround for older
versions of MPFR, but then I forgot and I just disabled the entrypoints
which doesn't fix the Buildbot builds.

@overmighty overmighty requested review from hulxv and lntue July 26, 2025 12:34
@llvmbot llvmbot added the libc label Jul 26, 2025
@llvmbot
Copy link
Member

llvmbot commented Jul 26, 2025

@llvm/pr-subscribers-libc

Author: OverMighty (overmighty)

Changes

Reverts llvm/llvm-project#146226

The MPFR test uses mpfr_asinpi which requires MPFR 4.2.0 or later, but
the Buildbots are running an older version of MPFR.

See https://lab.llvm.org/buildbot/#/builders/104/builds/27743 for
example.

I said I was going to revert the PR but then I forgot and just disabled
the entrypoints which doesn't fix the Buildbot builds.


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

16 Files Affected:

  • (modified) libc/config/linux/aarch64/entrypoints.txt (-1)
  • (modified) libc/config/linux/x86_64/entrypoints.txt (-1)
  • (modified) libc/docs/headers/math/index.rst (+1-1)
  • (modified) libc/include/math.yaml (-7)
  • (modified) libc/src/math/CMakeLists.txt (-2)
  • (removed) libc/src/math/asinpif16.h (-21)
  • (modified) libc/src/math/generic/CMakeLists.txt (-19)
  • (removed) libc/src/math/generic/asinpif16.cpp (-127)
  • (modified) libc/test/src/math/CMakeLists.txt (-11)
  • (removed) libc/test/src/math/asinpif16_test.cpp (-40)
  • (modified) libc/test/src/math/smoke/CMakeLists.txt (-12)
  • (removed) libc/test/src/math/smoke/asinpif16_test.cpp (-86)
  • (modified) libc/utils/MPFRWrapper/MPCommon.cpp (-6)
  • (modified) libc/utils/MPFRWrapper/MPCommon.h (-1)
  • (modified) libc/utils/MPFRWrapper/MPFRUtils.cpp (-2)
  • (modified) libc/utils/MPFRWrapper/MPFRUtils.h (-1)
diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt
index fe7e055fafbe2..b2abebee017d8 100644
--- a/libc/config/linux/aarch64/entrypoints.txt
+++ b/libc/config/linux/aarch64/entrypoints.txt
@@ -660,7 +660,6 @@ if(LIBC_TYPES_HAS_FLOAT16)
   list(APPEND TARGET_LIBM_ENTRYPOINTS
     # math.h C23 _Float16 entrypoints
     # libc.src.math.acoshf16
-    libc.src.math.asinpif16
     libc.src.math.canonicalizef16
     libc.src.math.ceilf16
     libc.src.math.copysignf16
diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt
index 0f5ec1ae444b3..5e8278e586286 100644
--- a/libc/config/linux/x86_64/entrypoints.txt
+++ b/libc/config/linux/x86_64/entrypoints.txt
@@ -703,7 +703,6 @@ if(LIBC_TYPES_HAS_FLOAT16)
     libc.src.math.acospif16
     libc.src.math.asinf16
     libc.src.math.asinhf16
-    libc.src.math.asinpif16
     libc.src.math.atanf16
     libc.src.math.atanhf16
     libc.src.math.canonicalizef16
diff --git a/libc/docs/headers/math/index.rst b/libc/docs/headers/math/index.rst
index 5a309175b1556..9679c4a6c807f 100644
--- a/libc/docs/headers/math/index.rst
+++ b/libc/docs/headers/math/index.rst
@@ -259,7 +259,7 @@ Higher Math Functions
 +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
 | asinh     | |check|          |                 |                        | |check|              |                        | 7.12.5.2               | F.10.2.2                   |
 +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
-| asinpi    |                  |                 |                        | |check|              |                        | 7.12.4.9               | F.10.1.9                   |
+| asinpi    |                  |                 |                        |                      |                        | 7.12.4.9               | F.10.1.9                   |
 +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
 | atan      | |check|          | 1 ULP           |                        | |check|              |                        | 7.12.4.3               | F.10.1.3                   |
 +-----------+------------------+-----------------+------------------------+----------------------+------------------------+------------------------+----------------------------+
diff --git a/libc/include/math.yaml b/libc/include/math.yaml
index b3b91237eb0f9..007be235f4380 100644
--- a/libc/include/math.yaml
+++ b/libc/include/math.yaml
@@ -79,13 +79,6 @@ functions:
     arguments:
       - type: _Float16
     guard: LIBC_TYPES_HAS_FLOAT16
-  - name: asinpif16
-    standards:
-      - stdc
-    return_type: _Float16
-    arguments:
-      - type: _Float16
-    guard: LIBC_TYPES_HAS_FLOAT16
   - name: atan
     standards:
       - stdc
diff --git a/libc/src/math/CMakeLists.txt b/libc/src/math/CMakeLists.txt
index fc064ab540d13..455ad3456573a 100644
--- a/libc/src/math/CMakeLists.txt
+++ b/libc/src/math/CMakeLists.txt
@@ -58,8 +58,6 @@ add_math_entrypoint_object(asinh)
 add_math_entrypoint_object(asinhf)
 add_math_entrypoint_object(asinhf16)
 
-add_math_entrypoint_object(asinpif16)
-
 add_math_entrypoint_object(atan)
 add_math_entrypoint_object(atanf)
 add_math_entrypoint_object(atanf16)
diff --git a/libc/src/math/asinpif16.h b/libc/src/math/asinpif16.h
deleted file mode 100644
index b97166af63f5d..0000000000000
--- a/libc/src/math/asinpif16.h
+++ /dev/null
@@ -1,21 +0,0 @@
-//===-- Implementation header for asinpif16 ---------------------*- 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_SRC_MATH_ASINPIF16_H
-#define LLVM_LIBC_SRC_MATH_ASINPIF16_H
-
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/properties/types.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-float16 asinpif16(float16 x);
-
-} // namespace LIBC_NAMESPACE_DECL
-
-#endif // LLVM_LIBC_SRC_MATH_ASINPIF16_H
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 8116ee29bc73f..ecf09674b4d4c 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -3918,25 +3918,6 @@ add_entrypoint_object(
     libc.src.__support.macros.properties.types
 )
 
-add_entrypoint_object(
-  asinpif16
-  SRCS
-    asinpif16.cpp
-  HDRS
-    ../asinpif16.h
-  DEPENDS
-    libc.hdr.errno_macros
-    libc.hdr.fenv_macros
-    libc.src.__support.FPUtil.cast
-    libc.src.__support.FPUtil.except_value_utils
-    libc.src.__support.FPUtil.fenv_impl
-    libc.src.__support.FPUtil.fp_bits
-    libc.src.__support.FPUtil.multiply_add
-    libc.src.__support.FPUtil.polyeval
-    libc.src.__support.FPUtil.sqrt
-    libc.src.__support.macros.optimization
-)
-
 add_entrypoint_object(
   atanhf
   SRCS
diff --git a/libc/src/math/generic/asinpif16.cpp b/libc/src/math/generic/asinpif16.cpp
deleted file mode 100644
index aabc0863ba527..0000000000000
--- a/libc/src/math/generic/asinpif16.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-//===-- Half-precision asinpif16(x) function ------------------------------===//
-//
-// 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.
-//
-//===----------------------------------------------------------------------===//
-
-#include "src/math/asinpif16.h"
-#include "hdr/errno_macros.h"
-#include "hdr/fenv_macros.h"
-#include "src/__support/FPUtil/FEnvImpl.h"
-#include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/FPUtil/PolyEval.h"
-#include "src/__support/FPUtil/cast.h"
-#include "src/__support/FPUtil/except_value_utils.h"
-#include "src/__support/FPUtil/multiply_add.h"
-#include "src/__support/FPUtil/sqrt.h"
-#include "src/__support/macros/optimization.h"
-
-namespace LIBC_NAMESPACE_DECL {
-
-LLVM_LIBC_FUNCTION(float16, asinpif16, (float16 x)) {
-  using FPBits = fputil::FPBits<float16>;
-
-  FPBits xbits(x);
-  bool is_neg = xbits.is_neg();
-  double x_abs = fputil::cast<double>(xbits.abs().get_val());
-
-  auto signed_result = [is_neg](auto r) -> auto { return is_neg ? -r : r; };
-
-  if (LIBC_UNLIKELY(x_abs > 1.0)) {
-    // aspinf16(NaN) = NaN
-    if (xbits.is_nan()) {
-      if (xbits.is_signaling_nan()) {
-        fputil::raise_except_if_required(FE_INVALID);
-        return FPBits::quiet_nan().get_val();
-      }
-      return x;
-    }
-
-    // 1 < |x| <= +/-inf
-    fputil::raise_except_if_required(FE_INVALID);
-    fputil::set_errno_if_required(EDOM);
-
-    return FPBits::quiet_nan().get_val();
-  }
-
-  // the coefficients for the polynomial approximation of asin(x)/pi in the
-  // range [0, 0.5] extracted using python-sympy
-  //
-  // Python code to generate the coefficients:
-  //  > from sympy import *
-  //  > import math
-  //  > x = symbols('x')
-  //  > print(series(asin(x)/math.pi, x, 0, 21))
-  //
-  // OUTPUT:
-  //
-  // 0.318309886183791*x + 0.0530516476972984*x**3 + 0.0238732414637843*x**5 +
-  // 0.0142102627760621*x**7 + 0.00967087327815336*x**9 +
-  // 0.00712127941391293*x**11 + 0.00552355646848375*x**13 +
-  // 0.00444514782463692*x**15 + 0.00367705242846804*x**17 +
-  // 0.00310721681820837*x**19 + O(x**21)
-  //
-  // it's very accurate in the range [0, 0.5] and has a maximum error of
-  // 0.0000000000000001 in the range [0, 0.5].
-  constexpr double POLY_COEFFS[] = {
-      0x1.45f306dc9c889p-2, // x^1
-      0x1.b2995e7b7b5fdp-5, // x^3
-      0x1.8723a1d588a36p-6, // x^5
-      0x1.d1a452f20430dp-7, // x^7
-      0x1.3ce52a3a09f61p-7, // x^9
-      0x1.d2b33e303d375p-8, // x^11
-      0x1.69fde663c674fp-8, // x^13
-      0x1.235134885f19bp-8, // x^15
-  };
-  // polynomial evaluation using horner's method
-  // work only for |x| in [0, 0.5]
-  auto asinpi_polyeval = [](double x) -> double {
-    return x * fputil::polyeval(x * x, POLY_COEFFS[0], POLY_COEFFS[1],
-                                POLY_COEFFS[2], POLY_COEFFS[3], POLY_COEFFS[4],
-                                POLY_COEFFS[5], POLY_COEFFS[6], POLY_COEFFS[7]);
-  };
-
-  // if |x| <= 0.5:
-  if (LIBC_UNLIKELY(x_abs <= 0.5)) {
-    // Use polynomial approximation of asin(x)/pi in the range [0, 0.5]
-    double result = asinpi_polyeval(fputil::cast<double>(x));
-    return fputil::cast<float16>(result);
-  }
-
-  // If |x| > 0.5, we need to use the range reduction method:
-  //    y = asin(x) => x = sin(y)
-  //      because: sin(a) = cos(pi/2 - a)
-  //      therefore:
-  //    x = cos(pi/2 - y)
-  //      let z = pi/2 - y,
-  //    x = cos(z)
-  //      because: cos(2a) = 1 - 2 * sin^2(a), z = 2a, a = z/2
-  //      therefore:
-  //    cos(z) = 1 - 2 * sin^2(z/2)
-  //    sin(z/2) = sqrt((1 - cos(z))/2)
-  //    sin(z/2) = sqrt((1 - x)/2)
-  //      let u = (1 - x)/2
-  //      then:
-  //    sin(z/2) = sqrt(u)
-  //    z/2 = asin(sqrt(u))
-  //    z = 2 * asin(sqrt(u))
-  //    pi/2 - y = 2 * asin(sqrt(u))
-  //    y = pi/2 - 2 * asin(sqrt(u))
-  //    y/pi = 1/2 - 2 * asin(sqrt(u))/pi
-  //
-  // Finally, we can write:
-  //   asinpi(x) = 1/2 - 2 * asinpi(sqrt(u))
-  //     where u = (1 - x) /2
-  //             = 0.5 - 0.5 * x
-  //             = multiply_add(-0.5, x, 0.5)
-
-  double u = fputil::multiply_add(-0.5, x_abs, 0.5);
-  double asinpi_sqrt_u = asinpi_polyeval(fputil::sqrt<double>(u));
-  double result = fputil::multiply_add(-2.0, asinpi_sqrt_u, 0.5);
-
-  return fputil::cast<float16>(signed_result(result));
-}
-
-} // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/test/src/math/CMakeLists.txt b/libc/test/src/math/CMakeLists.txt
index ea5816bd6e27e..43cde0d68873e 100644
--- a/libc/test/src/math/CMakeLists.txt
+++ b/libc/test/src/math/CMakeLists.txt
@@ -2282,17 +2282,6 @@ add_fp_unittest(
     libc.src.math.asinf16  
 )
 
-add_fp_unittest(
-  asinpif16_test
-  NEED_MPFR
-  SUITE
-    libc-math-unittests
-  SRCS
-    asinpif16_test.cpp
-  DEPENDS
-    libc.src.math.asinpif16
-)
-
 add_fp_unittest(
   acosf_test
   NEED_MPFR
diff --git a/libc/test/src/math/asinpif16_test.cpp b/libc/test/src/math/asinpif16_test.cpp
deleted file mode 100644
index 3718f39fd06a6..0000000000000
--- a/libc/test/src/math/asinpif16_test.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//===-- Exhaustive test for asinpif16 -------------------------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "src/math/asinpif16.h"
-#include "test/UnitTest/FPMatcher.h"
-#include "test/UnitTest/Test.h"
-#include "utils/MPFRWrapper/MPFRUtils.h"
-
-using LlvmLibcAsinpif16Test = LIBC_NAMESPACE::testing::FPTest<float16>;
-
-namespace mpfr = LIBC_NAMESPACE::testing::mpfr;
-
-// Range: [0, Inf]
-static constexpr uint16_t POS_START = 0x0000U;
-static constexpr uint16_t POS_STOP = 0x7c00U;
-
-// Range: [-Inf, 0]
-static constexpr uint16_t NEG_START = 0x8000U;
-static constexpr uint16_t NEG_STOP = 0xfc00U;
-
-TEST_F(LlvmLibcAsinpif16Test, PositiveRange) {
-  for (uint16_t v = POS_START; v <= POS_STOP; ++v) {
-    float16 x = FPBits(v).get_val();
-    EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Asinpi, x,
-                                   LIBC_NAMESPACE::asinpif16(x), 0.5);
-  }
-}
-
-TEST_F(LlvmLibcAsinpif16Test, NegativeRange) {
-  for (uint16_t v = NEG_START; v <= NEG_STOP; ++v) {
-    float16 x = FPBits(v).get_val();
-    EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Asinpi, x,
-                                   LIBC_NAMESPACE::asinpif16(x), 0.5);
-  }
-}
diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt
index 8b54691f2cdf4..ec4c09c5b70f7 100644
--- a/libc/test/src/math/smoke/CMakeLists.txt
+++ b/libc/test/src/math/smoke/CMakeLists.txt
@@ -3988,18 +3988,6 @@ add_fp_unittest(
     libc.src.math.asinhf16
 )
 
-add_fp_unittest(
-  asinpif16_test
-  NEED_MPFR
-  SUITE
-    libc-math-unittests
-  SRCS
-    asinpif16_test.cpp
-  DEPENDS
-    libc.src.math.asinpif16
-    libc.src.errno.errno
-)
-
 add_fp_unittest(
   acoshf_test
   SUITE
diff --git a/libc/test/src/math/smoke/asinpif16_test.cpp b/libc/test/src/math/smoke/asinpif16_test.cpp
deleted file mode 100644
index 5303eed8f5dae..0000000000000
--- a/libc/test/src/math/smoke/asinpif16_test.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//===-- Unittests for asinpif16 -------------------------------------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "src/__support/libc_errno.h"
-#include "src/math/asinpif16.h"
-#include "test/UnitTest/FPMatcher.h"
-
-using LlvmLibcAsinpif16Test = LIBC_NAMESPACE::testing::FPTest<float16>;
-
-TEST_F(LlvmLibcAsinpif16Test, SpecialNumbers) {
-  // zero
-  EXPECT_FP_EQ(zero, LIBC_NAMESPACE::asinpif16(zero));
-
-  // +/-1
-  EXPECT_FP_EQ(0.5f16, LIBC_NAMESPACE::asinpif16(1.0));
-  EXPECT_FP_EQ(-0.5f16, LIBC_NAMESPACE::asinpif16(-1.0));
-
-  // NaN inputs
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(FPBits::quiet_nan().get_val()));
-
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(FPBits::signaling_nan().get_val()));
-
-  // infinity inputs -> should return NaN
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(), LIBC_NAMESPACE::asinpif16(inf));
-  EXPECT_MATH_ERRNO(EDOM);
-
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(neg_inf));
-  EXPECT_MATH_ERRNO(EDOM);
-}
-
-TEST_F(LlvmLibcAsinpif16Test, OutOfRange) {
-  // Test values > 1
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(1.5f16));
-  EXPECT_MATH_ERRNO(EDOM);
-
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(2.0f16));
-  EXPECT_MATH_ERRNO(EDOM);
-
-  // Test values < -1
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(-1.5f16));
-  EXPECT_MATH_ERRNO(EDOM);
-
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(-2.0f16));
-  EXPECT_MATH_ERRNO(EDOM);
-
-  // Test maximum normal value (should be > 1 for float16)
-  libc_errno = 0;
-  EXPECT_FP_EQ(FPBits::quiet_nan().get_val(),
-               LIBC_NAMESPACE::asinpif16(FPBits::max_normal().get_val()));
-  EXPECT_MATH_ERRNO(EDOM);
-}
-
-TEST_F(LlvmLibcAsinpif16Test, SymmetryProperty) {
-  // Test that asinpi(-x) = -asinpi(x)
-  constexpr float16 TEST_VALS[] = {0.1f16, 0.25f16, 0.5f16, 0.75f16,
-                                   0.9f16, 0.99f16, 1.0f16};
-
-  for (float16 x : TEST_VALS) {
-    FPBits neg_x_bits(x);
-    neg_x_bits.set_sign(Sign::NEG);
-    float16 neg_x = neg_x_bits.get_val();
-
-    float16 pos_result = LIBC_NAMESPACE::asinpif16(x);
-    float16 neg_result = LIBC_NAMESPACE::asinpif16(neg_x);
-
-    EXPECT_FP_EQ(pos_result, FPBits(neg_result).abs().get_val());
-  }
-}
diff --git a/libc/utils/MPFRWrapper/MPCommon.cpp b/libc/utils/MPFRWrapper/MPCommon.cpp
index fb6e6e8af71f8..07339a06fff80 100644
--- a/libc/utils/MPFRWrapper/MPCommon.cpp
+++ b/libc/utils/MPFRWrapper/MPCommon.cpp
@@ -105,12 +105,6 @@ MPFRNumber MPFRNumber::asinh() const {
   return result;
 }
 
-MPFRNumber MPFRNumber::asinpi() const {
-  MPFRNumber result(*this);
-  mpfr_asinpi(result.value, value, mpfr_rounding);
-  return result;
-}
-
 MPFRNumber MPFRNumber::atan() const {
   MPFRNumber result(*this);
   mpfr_atan(result.value, value, mpfr_rounding);
diff --git a/libc/utils/MPFRWrapper/MPCommon.h b/libc/utils/MPFRWrapper/MPCommon.h
index 47d6293c06af4..8bcc69c247a34 100644
--- a/libc/utils/MPFRWrapper/MPCommon.h
+++ b/libc/utils/MPFRWrapper/MPCommon.h
@@ -189,7 +189,6 @@ class MPFRNumber {
   MPFRNumber add(const MPFRNumber &b) const;
   MPFRNumber asin() const;
   MPFRNumber asinh() const;
-  MPFRNumber asinpi() const;
   MPFRNumber atan() const;
   MPFRNumber atan2(const MPFRNumber &b);
   MPFRNumber atanh() const;
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.cpp b/libc/utils/MPFRWrapper/MPFRUtils.cpp
index c58aae75cc700..8853f96ef8f92 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.cpp
+++ b/libc/utils/MPFRWrapper/MPFRUtils.cpp
@@ -38,8 +38,6 @@ unary_operation(Operation op, InputType input, unsigned int precision,
     return mpfrInput.asin();
   case Operation::Asinh:
     return mpfrInput.asinh();
-  case Operation::Asinpi:
-    return mpfrInput.asinpi();
   case Operation::Atan:
     return mpfrInput.atan();
   case Operation::Atanh:
diff --git a/libc/utils/MPFRWrapper/MPFRUtils.h b/libc/utils/MPFRWrapper/MPFRUtils.h
index e805607328f63..45468c6cb19ae 100644
--- a/libc/utils/MPFRWrapper/MPFRUtils.h
+++ b/libc/utils/MPFRWrapper/MPFRUtils.h
@@ -30,7 +30,6 @@ enum class Operation : int {
   Acospi,
   Asin,
   Asinh,
-  Asinpi,
   Atan,
   Atanh,
   Cbrt,

@overmighty overmighty merged commit 6a85f7c into main Jul 26, 2025
17 of 22 checks passed
@overmighty overmighty deleted the revert-146226-libc/math/feat/impl-asinpif16 branch July 26, 2025 12:39
mahesh-attarde pushed a commit to mahesh-attarde/llvm-project that referenced this pull request Jul 28, 2025
…m#150756)

Reverts llvm#146226

The MPFR test uses `mpfr_asinpi` which requires MPFR 4.2.0 or later, but
the Buildbots are running an older version of MPFR.

See https://lab.llvm.org/buildbot/#/builders/104/builds/27743 for
example.

I said I was going to revert the PR until we have a workaround for older
versions of MPFR, but then I forgot and I just disabled the entrypoints
which doesn't fix the Buildbot builds.
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.

3 participants