Skip to content

[libc][math] Refactor acoshf implementation to header-only in src/__support/math folder. #148418

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 2 commits into from
Jul 21, 2025

Conversation

bassiounix
Copy link
Contributor

@bassiounix bassiounix commented Jul 13, 2025

@llvmbot llvmbot added libc bazel "Peripheral" support tier build system: utils/bazel labels Jul 21, 2025
@bassiounix bassiounix requested a review from lntue July 21, 2025 19:37
@llvmbot
Copy link
Member

llvmbot commented Jul 21, 2025

@llvm/pr-subscribers-libc

Author: Muhammad Bassiouni (bassiounix)

Changes

Part of #147386

in preparation for: https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450

Please merge #148413 first


Patch is 33.34 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/148418.diff

17 Files Affected:

  • (modified) libc/shared/math.h (+1)
  • (added) libc/shared/math/acoshf.h (+23)
  • (modified) libc/src/__support/math/CMakeLists.txt (+32)
  • (added) libc/src/__support/math/acosh_float_constants.h (+114)
  • (added) libc/src/__support/math/acoshf.h (+86)
  • (added) libc/src/__support/math/acoshf_utils.h (+60)
  • (modified) libc/src/math/generic/CMakeLists.txt (+3-7)
  • (modified) libc/src/math/generic/acoshf.cpp (+3-65)
  • (modified) libc/src/math/generic/asinhf.cpp (+1)
  • (modified) libc/src/math/generic/atanhf.cpp (+1)
  • (modified) libc/src/math/generic/common_constants.cpp (-92)
  • (modified) libc/src/math/generic/common_constants.h (+1-6)
  • (modified) libc/src/math/generic/explogxf.h (+1-35)
  • (modified) libc/src/math/generic/log1pf.cpp (+1)
  • (modified) libc/test/shared/CMakeLists.txt (+1)
  • (modified) libc/test/shared/shared_math_test.cpp (+1)
  • (modified) utils/bazel/llvm-project-overlay/libc/BUILD.bazel (+35-7)
diff --git a/libc/shared/math.h b/libc/shared/math.h
index f2ad0b09a392c..33fe235c51824 100644
--- a/libc/shared/math.h
+++ b/libc/shared/math.h
@@ -14,6 +14,7 @@
 #include "math/acos.h"
 #include "math/acosf.h"
 #include "math/acosf16.h"
+#include "math/acoshf.h"
 #include "math/erff.h"
 #include "math/exp.h"
 #include "math/exp10.h"
diff --git a/libc/shared/math/acoshf.h b/libc/shared/math/acoshf.h
new file mode 100644
index 0000000000000..86bdbce3d905c
--- /dev/null
+++ b/libc/shared/math/acoshf.h
@@ -0,0 +1,23 @@
+//===-- Shared acoshf function ----------------------------------*- 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_SHARED_MATH_ACOSHF_H
+#define LLVM_LIBC_SHARED_MATH_ACOSHF_H
+
+#include "shared/libc_common.h"
+#include "src/__support/math/acoshf.h"
+
+namespace LIBC_NAMESPACE_DECL {
+namespace shared {
+
+using math::acoshf;
+
+} // namespace shared
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SHARED_MATH_ACOSHF_H
diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt
index 91cbf379ba5fc..b0e562fb20d0d 100644
--- a/libc/src/__support/math/CMakeLists.txt
+++ b/libc/src/__support/math/CMakeLists.txt
@@ -47,6 +47,38 @@ add_header_library(
     libc.src.__support.macros.properties.types
 )
 
+add_header_library(
+  acosh_float_constants
+  HDRS
+    acosh_float_constants.h
+  DEPENDS
+    libc.src.__support.macros.config
+)
+
+add_header_library(
+  acoshf_utils
+  HDRS
+    acoshf_utils.h
+  DEPENDS
+    .acosh_float_constants
+    libc.src.__support.FPUtil.fp_bits
+    libc.src.__support.FPUtil.multiply_add
+    libc.src.__support.FPUtil.polyeval
+)
+
+add_header_library(
+  acoshf
+  HDRS
+    acoshf.h
+  DEPENDS
+    .acoshf_utils
+    libc.src.__support.FPUtil.fenv_impl
+    libc.src.__support.FPUtil.fp_bits
+    libc.src.__support.FPUtil.multiply_add
+    libc.src.__support.FPUtil.sqrt
+    libc.src.__support.macros.optimization
+)
+
 add_header_library(
   asin_utils
   HDRS
diff --git a/libc/src/__support/math/acosh_float_constants.h b/libc/src/__support/math/acosh_float_constants.h
new file mode 100644
index 0000000000000..2eb245d8265e0
--- /dev/null
+++ b/libc/src/__support/math/acosh_float_constants.h
@@ -0,0 +1,114 @@
+//===-- Common constants for acoshf function --------------------*- 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___SUPPORT_MATH_ACOSH_FLOAT_CONSTANTS_H
+#define LLVM_LIBC_SRC___SUPPORT_MATH_ACOSH_FLOAT_CONSTANTS_H
+
+#include "src/__support/macros/config.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace acoshf_internal {
+
+// Lookup table for (1/f) where f = 1 + n*2^(-7), n = 0..127.
+static constexpr double ONE_OVER_F[128] = {
+    0x1.0000000000000p+0, 0x1.fc07f01fc07f0p-1, 0x1.f81f81f81f820p-1,
+    0x1.f44659e4a4271p-1, 0x1.f07c1f07c1f08p-1, 0x1.ecc07b301ecc0p-1,
+    0x1.e9131abf0b767p-1, 0x1.e573ac901e574p-1, 0x1.e1e1e1e1e1e1ep-1,
+    0x1.de5d6e3f8868ap-1, 0x1.dae6076b981dbp-1, 0x1.d77b654b82c34p-1,
+    0x1.d41d41d41d41dp-1, 0x1.d0cb58f6ec074p-1, 0x1.cd85689039b0bp-1,
+    0x1.ca4b3055ee191p-1, 0x1.c71c71c71c71cp-1, 0x1.c3f8f01c3f8f0p-1,
+    0x1.c0e070381c0e0p-1, 0x1.bdd2b899406f7p-1, 0x1.bacf914c1bad0p-1,
+    0x1.b7d6c3dda338bp-1, 0x1.b4e81b4e81b4fp-1, 0x1.b2036406c80d9p-1,
+    0x1.af286bca1af28p-1, 0x1.ac5701ac5701bp-1, 0x1.a98ef606a63bep-1,
+    0x1.a6d01a6d01a6dp-1, 0x1.a41a41a41a41ap-1, 0x1.a16d3f97a4b02p-1,
+    0x1.9ec8e951033d9p-1, 0x1.9c2d14ee4a102p-1, 0x1.999999999999ap-1,
+    0x1.970e4f80cb872p-1, 0x1.948b0fcd6e9e0p-1, 0x1.920fb49d0e229p-1,
+    0x1.8f9c18f9c18fap-1, 0x1.8d3018d3018d3p-1, 0x1.8acb90f6bf3aap-1,
+    0x1.886e5f0abb04ap-1, 0x1.8618618618618p-1, 0x1.83c977ab2beddp-1,
+    0x1.8181818181818p-1, 0x1.7f405fd017f40p-1, 0x1.7d05f417d05f4p-1,
+    0x1.7ad2208e0ecc3p-1, 0x1.78a4c8178a4c8p-1, 0x1.767dce434a9b1p-1,
+    0x1.745d1745d1746p-1, 0x1.724287f46debcp-1, 0x1.702e05c0b8170p-1,
+    0x1.6e1f76b4337c7p-1, 0x1.6c16c16c16c17p-1, 0x1.6a13cd1537290p-1,
+    0x1.6816816816817p-1, 0x1.661ec6a5122f9p-1, 0x1.642c8590b2164p-1,
+    0x1.623fa77016240p-1, 0x1.6058160581606p-1, 0x1.5e75bb8d015e7p-1,
+    0x1.5c9882b931057p-1, 0x1.5ac056b015ac0p-1, 0x1.58ed2308158edp-1,
+    0x1.571ed3c506b3ap-1, 0x1.5555555555555p-1, 0x1.5390948f40febp-1,
+    0x1.51d07eae2f815p-1, 0x1.5015015015015p-1, 0x1.4e5e0a72f0539p-1,
+    0x1.4cab88725af6ep-1, 0x1.4afd6a052bf5bp-1, 0x1.49539e3b2d067p-1,
+    0x1.47ae147ae147bp-1, 0x1.460cbc7f5cf9ap-1, 0x1.446f86562d9fbp-1,
+    0x1.42d6625d51f87p-1, 0x1.4141414141414p-1, 0x1.3fb013fb013fbp-1,
+    0x1.3e22cbce4a902p-1, 0x1.3c995a47babe7p-1, 0x1.3b13b13b13b14p-1,
+    0x1.3991c2c187f63p-1, 0x1.3813813813814p-1, 0x1.3698df3de0748p-1,
+    0x1.3521cfb2b78c1p-1, 0x1.33ae45b57bcb2p-1, 0x1.323e34a2b10bfp-1,
+    0x1.30d190130d190p-1, 0x1.2f684bda12f68p-1, 0x1.2e025c04b8097p-1,
+    0x1.2c9fb4d812ca0p-1, 0x1.2b404ad012b40p-1, 0x1.29e4129e4129ep-1,
+    0x1.288b01288b013p-1, 0x1.27350b8812735p-1, 0x1.25e22708092f1p-1,
+    0x1.2492492492492p-1, 0x1.23456789abcdfp-1, 0x1.21fb78121fb78p-1,
+    0x1.20b470c67c0d9p-1, 0x1.1f7047dc11f70p-1, 0x1.1e2ef3b3fb874p-1,
+    0x1.1cf06ada2811dp-1, 0x1.1bb4a4046ed29p-1, 0x1.1a7b9611a7b96p-1,
+    0x1.19453808ca29cp-1, 0x1.1811811811812p-1, 0x1.16e0689427379p-1,
+    0x1.15b1e5f75270dp-1, 0x1.1485f0e0acd3bp-1, 0x1.135c81135c811p-1,
+    0x1.12358e75d3033p-1, 0x1.1111111111111p-1, 0x1.0fef010fef011p-1,
+    0x1.0ecf56be69c90p-1, 0x1.0db20a88f4696p-1, 0x1.0c9714fbcda3bp-1,
+    0x1.0b7e6ec259dc8p-1, 0x1.0a6810a6810a7p-1, 0x1.0953f39010954p-1,
+    0x1.0842108421084p-1, 0x1.073260a47f7c6p-1, 0x1.0624dd2f1a9fcp-1,
+    0x1.05197f7d73404p-1, 0x1.0410410410410p-1, 0x1.03091b51f5e1ap-1,
+    0x1.0204081020408p-1, 0x1.0101010101010p-1};
+
+// Lookup table for log(f) = log(1 + n*2^(-7)) where n = 0..127.
+static constexpr double LOG_F[128] = {
+    0x0.0000000000000p+0, 0x1.fe02a6b106788p-8, 0x1.fc0a8b0fc03e3p-7,
+    0x1.7b91b07d5b11ap-6, 0x1.f829b0e783300p-6, 0x1.39e87b9febd5fp-5,
+    0x1.77458f632dcfcp-5, 0x1.b42dd711971bep-5, 0x1.f0a30c01162a6p-5,
+    0x1.16536eea37ae0p-4, 0x1.341d7961bd1d0p-4, 0x1.51b073f06183fp-4,
+    0x1.6f0d28ae56b4bp-4, 0x1.8c345d6319b20p-4, 0x1.a926d3a4ad563p-4,
+    0x1.c5e548f5bc743p-4, 0x1.e27076e2af2e5p-4, 0x1.fec9131dbeabap-4,
+    0x1.0d77e7cd08e59p-3, 0x1.1b72ad52f67a0p-3, 0x1.29552f81ff523p-3,
+    0x1.371fc201e8f74p-3, 0x1.44d2b6ccb7d1ep-3, 0x1.526e5e3a1b437p-3,
+    0x1.5ff3070a793d3p-3, 0x1.6d60fe719d21cp-3, 0x1.7ab890210d909p-3,
+    0x1.87fa06520c910p-3, 0x1.9525a9cf456b4p-3, 0x1.a23bc1fe2b563p-3,
+    0x1.af3c94e80bff2p-3, 0x1.bc286742d8cd6p-3, 0x1.c8ff7c79a9a21p-3,
+    0x1.d5c216b4fbb91p-3, 0x1.e27076e2af2e5p-3, 0x1.ef0adcbdc5936p-3,
+    0x1.fb9186d5e3e2ap-3, 0x1.0402594b4d040p-2, 0x1.0a324e27390e3p-2,
+    0x1.1058bf9ae4ad5p-2, 0x1.1675cababa60ep-2, 0x1.1c898c16999fap-2,
+    0x1.22941fbcf7965p-2, 0x1.2895a13de86a3p-2, 0x1.2e8e2bae11d30p-2,
+    0x1.347dd9a987d54p-2, 0x1.3a64c556945e9p-2, 0x1.404308686a7e3p-2,
+    0x1.4618bc21c5ec2p-2, 0x1.4be5f957778a0p-2, 0x1.51aad872df82dp-2,
+    0x1.5767717455a6cp-2, 0x1.5d1bdbf5809cap-2, 0x1.62c82f2b9c795p-2,
+    0x1.686c81e9b14aep-2, 0x1.6e08eaa2ba1e3p-2, 0x1.739d7f6bbd006p-2,
+    0x1.792a55fdd47a2p-2, 0x1.7eaf83b82afc3p-2, 0x1.842d1da1e8b17p-2,
+    0x1.89a3386c1425ap-2, 0x1.8f11e873662c7p-2, 0x1.947941c2116fap-2,
+    0x1.99d958117e08ap-2, 0x1.9f323ecbf984bp-2, 0x1.a484090e5bb0ap-2,
+    0x1.a9cec9a9a0849p-2, 0x1.af1293247786bp-2, 0x1.b44f77bcc8f62p-2,
+    0x1.b9858969310fbp-2, 0x1.beb4d9da71b7bp-2, 0x1.c3dd7a7cdad4dp-2,
+    0x1.c8ff7c79a9a21p-2, 0x1.ce1af0b85f3ebp-2, 0x1.d32fe7e00ebd5p-2,
+    0x1.d83e7258a2f3ep-2, 0x1.dd46a04c1c4a0p-2, 0x1.e24881a7c6c26p-2,
+    0x1.e744261d68787p-2, 0x1.ec399d2468cc0p-2, 0x1.f128f5faf06ecp-2,
+    0x1.f6123fa7028acp-2, 0x1.faf588f78f31ep-2, 0x1.ffd2e0857f498p-2,
+    0x1.02552a5a5d0fep-1, 0x1.04bdf9da926d2p-1, 0x1.0723e5c1cdf40p-1,
+    0x1.0986f4f573520p-1, 0x1.0be72e4252a82p-1, 0x1.0e44985d1cc8bp-1,
+    0x1.109f39e2d4c96p-1, 0x1.12f719593efbcp-1, 0x1.154c3d2f4d5e9p-1,
+    0x1.179eabbd899a0p-1, 0x1.19ee6b467c96ep-1, 0x1.1c3b81f713c24p-1,
+    0x1.1e85f5e7040d0p-1, 0x1.20cdcd192ab6dp-1, 0x1.23130d7bebf42p-1,
+    0x1.2555bce98f7cbp-1, 0x1.2795e1289b11ap-1, 0x1.29d37fec2b08ap-1,
+    0x1.2c0e9ed448e8bp-1, 0x1.2e47436e40268p-1, 0x1.307d7334f10bep-1,
+    0x1.32b1339121d71p-1, 0x1.34e289d9ce1d3p-1, 0x1.37117b54747b5p-1,
+    0x1.393e0d3562a19p-1, 0x1.3b68449fffc22p-1, 0x1.3d9026a7156fap-1,
+    0x1.3fb5b84d16f42p-1, 0x1.41d8fe84672aep-1, 0x1.43f9fe2f9ce67p-1,
+    0x1.4618bc21c5ec2p-1, 0x1.48353d1ea88dfp-1, 0x1.4a4f85db03ebbp-1,
+    0x1.4c679afccee39p-1, 0x1.4e7d811b75bb0p-1, 0x1.50913cc01686bp-1,
+    0x1.52a2d265bc5aap-1, 0x1.54b2467999497p-1, 0x1.56bf9d5b3f399p-1,
+    0x1.58cadb5cd7989p-1, 0x1.5ad404c359f2cp-1, 0x1.5cdb1dc6c1764p-1,
+    0x1.5ee02a9241675p-1, 0x1.60e32f44788d8p-1};
+
+} // namespace acoshf_internal
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_MATH_ACOSH_FLOAT_CONSTANTS_H
diff --git a/libc/src/__support/math/acoshf.h b/libc/src/__support/math/acoshf.h
new file mode 100644
index 0000000000000..f18f169f49bb8
--- /dev/null
+++ b/libc/src/__support/math/acoshf.h
@@ -0,0 +1,86 @@
+//===-- Implementation header for acoshf ------------------------*- 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___SUPPORT_MATH_ACOSHF_H
+#define LLVM_LIBC_SRC___SUPPORT_MATH_ACOSHF_H
+
+#include "acoshf_utils.h"
+#include "src/__support/FPUtil/FEnvImpl.h"
+#include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/FPUtil/multiply_add.h"
+#include "src/__support/FPUtil/sqrt.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace math {
+
+static constexpr float acoshf(float x) {
+  using namespace acoshf_internal;
+  using FPBits_t = typename fputil::FPBits<float>;
+  FPBits_t xbits(x);
+
+  if (LIBC_UNLIKELY(x <= 1.0f)) {
+    if (x == 1.0f)
+      return 0.0f;
+    // x < 1.
+    fputil::set_errno_if_required(EDOM);
+    fputil::raise_except_if_required(FE_INVALID);
+    return FPBits_t::quiet_nan().get_val();
+  }
+
+#ifndef LIBC_MATH_HAS_SKIP_ACCURATE_PASS
+  uint32_t x_u = xbits.uintval();
+  if (LIBC_UNLIKELY(x_u >= 0x4f8ffb03)) {
+    if (LIBC_UNLIKELY(xbits.is_inf_or_nan()))
+      return x;
+
+    // Helper functions to set results for exceptional cases.
+    auto round_result_slightly_down = [](float r) -> float {
+      volatile float tmp = r;
+      tmp = tmp - 0x1.0p-25f;
+      return tmp;
+    };
+    auto round_result_slightly_up = [](float r) -> float {
+      volatile float tmp = r;
+      tmp = tmp + 0x1.0p-25f;
+      return tmp;
+    };
+
+    switch (x_u) {
+    case 0x4f8ffb03: // x = 0x1.1ff606p32f
+      return round_result_slightly_up(0x1.6fdd34p4f);
+    case 0x5c569e88: // x = 0x1.ad3d1p57f
+      return round_result_slightly_up(0x1.45c146p5f);
+    case 0x5e68984e: // x = 0x1.d1309cp61f
+      return round_result_slightly_up(0x1.5c9442p5f);
+    case 0x655890d3: // x = 0x1.b121a6p75f
+      return round_result_slightly_down(0x1.a9a3f2p5f);
+    case 0x6eb1a8ec: // x = 0x1.6351d8p94f
+      return round_result_slightly_down(0x1.08b512p6f);
+    case 0x7997f30a: // x = 0x1.2fe614p116f
+      return round_result_slightly_up(0x1.451436p6f);
+    }
+  }
+#else
+  if (LIBC_UNLIKELY(xbits.is_inf_or_nan()))
+    return x;
+#endif // !LIBC_MATH_HAS_SKIP_ACCURATE_PASS
+
+  double x_d = static_cast<double>(x);
+  // acosh(x) = log(x + sqrt(x^2 - 1))
+  return static_cast<float>(log_eval(
+      x_d + fputil::sqrt<double>(fputil::multiply_add(x_d, x_d, -1.0))));
+}
+
+} // namespace math
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_MATH_ACOSHF_H
diff --git a/libc/src/__support/math/acoshf_utils.h b/libc/src/__support/math/acoshf_utils.h
new file mode 100644
index 0000000000000..808c3dd41cfe4
--- /dev/null
+++ b/libc/src/__support/math/acoshf_utils.h
@@ -0,0 +1,60 @@
+//===-- Collection of utils for acoshf --------------------------*- 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___SUPPORT_MATH_ACOSHF_UTILS_H
+#define LLVM_LIBC_SRC___SUPPORT_MATH_ACOSHF_UTILS_H
+
+#include "acosh_float_constants.h"
+#include "src/__support/FPUtil/FPBits.h"
+#include "src/__support/FPUtil/PolyEval.h"
+#include "src/__support/FPUtil/multiply_add.h"
+
+namespace LIBC_NAMESPACE_DECL {
+
+namespace acoshf_internal {
+
+// x should be positive, normal finite value
+LIBC_INLINE static double log_eval(double x) {
+  // For x = 2^ex * (1 + mx)
+  //   log(x) = ex * log(2) + log(1 + mx)
+  using FPB = fputil::FPBits<double>;
+  FPB bs(x);
+
+  double ex = static_cast<double>(bs.get_exponent());
+
+  // p1 is the leading 7 bits of mx, i.e.
+  // p1 * 2^(-7) <= m_x < (p1 + 1) * 2^(-7).
+  int p1 = static_cast<int>(bs.get_mantissa() >> (FPB::FRACTION_LEN - 7));
+
+  // Set bs to (1 + (mx - p1*2^(-7))
+  bs.set_uintval(bs.uintval() & (FPB::FRACTION_MASK >> 7));
+  bs.set_biased_exponent(FPB::EXP_BIAS);
+  // dx = (mx - p1*2^(-7)) / (1 + p1*2^(-7)).
+  double dx = (bs.get_val() - 1.0) * ONE_OVER_F[p1];
+
+  // Minimax polynomial of log(1 + dx) generated by Sollya with:
+  // > P = fpminimax(log(1 + x)/x, 6, [|D...|], [0, 2^-7]);
+  const double COEFFS[6] = {-0x1.ffffffffffffcp-2, 0x1.5555555552ddep-2,
+                            -0x1.ffffffefe562dp-3, 0x1.9999817d3a50fp-3,
+                            -0x1.554317b3f67a5p-3, 0x1.1dc5c45e09c18p-3};
+  double dx2 = dx * dx;
+  double c1 = fputil::multiply_add(dx, COEFFS[1], COEFFS[0]);
+  double c2 = fputil::multiply_add(dx, COEFFS[3], COEFFS[2]);
+  double c3 = fputil::multiply_add(dx, COEFFS[5], COEFFS[4]);
+
+  double p = fputil::polyeval(dx2, dx, c1, c2, c3);
+  double result =
+      fputil::multiply_add(ex, /*log(2)*/ 0x1.62e42fefa39efp-1, LOG_F[p1] + p);
+  return result;
+}
+
+} // namespace acoshf_internal
+
+} // namespace LIBC_NAMESPACE_DECL
+
+#endif // LLVM_LIBC_SRC___SUPPORT_MATH_ACOSHF_UTILS_H
diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt
index 6f16e8d95d29e..86baf2b981bb2 100644
--- a/libc/src/math/generic/CMakeLists.txt
+++ b/libc/src/math/generic/CMakeLists.txt
@@ -1894,6 +1894,7 @@ add_object_library(
     common_constants.cpp
   DEPENDS
     libc.src.__support.math.exp_constants
+    libc.src.__support.math.acosh_float_constants
     libc.src.__support.number_pair
 )
 
@@ -3757,7 +3758,7 @@ add_header_library(
   DEPENDS
     .common_constants
     libc.src.__support.math.exp_utils
-    libc.src.__support.math.exp10f_utils
+    libc.src.__support.math.acoshf_utils
     libc.src.__support.macros.properties.cpu_features
     libc.src.errno.errno
 )
@@ -3867,12 +3868,7 @@ add_entrypoint_object(
     ../acoshf.h
   DEPENDS
     .explogxf
-    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
+    libc.src.__support.math.acoshf
 )
 
 add_entrypoint_object(
diff --git a/libc/src/math/generic/acoshf.cpp b/libc/src/math/generic/acoshf.cpp
index c4927fa27a84b..5c04583650e62 100644
--- a/libc/src/math/generic/acoshf.cpp
+++ b/libc/src/math/generic/acoshf.cpp
@@ -7,73 +7,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "src/math/acoshf.h"
-#include "src/__support/FPUtil/FEnvImpl.h"
-#include "src/__support/FPUtil/FPBits.h"
-#include "src/__support/FPUtil/PolyEval.h"
-#include "src/__support/FPUtil/multiply_add.h"
-#include "src/__support/FPUtil/sqrt.h"
-#include "src/__support/macros/config.h"
-#include "src/__support/macros/optimization.h" // LIBC_UNLIKELY
-#include "src/math/generic/common_constants.h"
-#include "src/math/generic/explogxf.h"
 
-namespace LIBC_NAMESPACE_DECL {
-
-LLVM_LIBC_FUNCTION(float, acoshf, (float x)) {
-  using FPBits_t = typename fputil::FPBits<float>;
-  FPBits_t xbits(x);
-
-  if (LIBC_UNLIKELY(x <= 1.0f)) {
-    if (x == 1.0f)
-      return 0.0f;
-    // x < 1.
-    fputil::set_errno_if_required(EDOM);
-    fputil::raise_except_if_required(FE_INVALID);
-    return FPBits_t::quiet_nan().get_val();
-  }
+#include "src/__support/math/acoshf.h"
 
-#ifndef LIBC_MATH_HAS_SKIP_ACCURATE_PASS
-  uint32_t x_u = xbits.uintval();
-  if (LIBC_UNLIKELY(x_u >= 0x4f8ffb03)) {
-    if (LIBC_UNLIKELY(xbits.is_inf_or_nan()))
-      return x;
-
-    // Helper functions to set results for exceptional cases.
-    auto round_result_slightly_down = [](float r) -> float {
-      volatile float tmp = r;
-      tmp = tmp - 0x1.0p-25f;
-      return tmp;
-    };
-    auto round_result_slightly_up = [](float r) -> float {
-      volatile float tmp = r;
-      tmp = tmp + 0x1.0p-25f;
-      return tmp;
-    };
-
-    switch (x_u) {
-    case 0x4f8ffb03: // x = 0x1.1ff606p32f
-      return round_result_slightly_up(0x1.6fdd34p4f);
-    case 0x5c569e88: // x = 0x1.ad3d1p57f
-      return round_result_slightly_up(0x1.45c146p5f);
-    case 0x5e68984e: // x = 0x1.d1309cp61f
-      return round_result_slightly_up(0x1.5c9442p5f);
-    case 0x655890d3: // x = 0x1.b121a6p75f
-      return round_result_slightly_down(0x1.a9a3f2p5f);
-    case 0x6eb1a8ec: // x = 0x1.6351d8p94f
-      return round_result_slightly_down(0x1.08b512p6f);
-    case 0x7997f30a: // x = 0x1.2fe614p116f
-      return round_result_slightly_up(0x1.451436p6f);
-    }
-  }
-#else
-  if (LIBC_UNLIKELY(xbits.is_inf_or_nan()))
-    return x;
-#endif // !LIBC_MATH_HAS_SKIP_ACCURATE_PASS
+namespace LIBC_NAMESPACE_DECL {
 
-  double x_d = static_cast<double>(x);
-  // acosh(x) = log(x + sqrt(x^2 - 1))
-  return static_cast<float>(log_eval(
-      x_d + fputil::sqrt<double>(fputil::multiply_add(x_d, x_d, -1.0))));
-}
+LLVM_LIBC_FUNCTION(float, acoshf, (float x)) { return math::acoshf(x); }
 
 } // namespace LIBC_NAMESPACE_DECL
diff --git a/libc/src/math/generic/asinhf.cpp b/libc/src/math/generic/asinhf.cpp
index 0bb7065eb1cfe..3aed3bc2c9cde 100644
--- a/libc/src/math/generic/asinhf.cpp
+++ b/libc/src/math/generic/asinhf.cpp
@@ -19,6 +19,7 @@
 namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, asinhf, (float x)) {
+  using namespace acoshf_internal;
   using FPBits_t = typename fputil::FPBits<float>;
   FPBits_t xbits(x);
   uint32_t x_u = xbits.uintval();
diff --git a/libc/src/math/generic/atanhf.cpp b/libc/src/math/generic/atanhf.cpp
index f6fde766ef785..602a8f042f783 100644
--- a/libc/src/math/generic/atanhf.cpp
+++ b/libc/src/math/generic/atanhf.cpp
@@ -16,6 +16,7 @@
 namespace LIBC_NAMESPACE_DECL {
 
 LLVM_LIBC_FUNCTION(float, atanhf, (float x)) {
+  using namespace acoshf_internal;
   using FPBits = typename fputil::FPBits<float>;
 
   FPBits xbits(x);
diff --git a/libc/src/math/generic/common_constants.cpp b/libc/src/math/generic/common_constants.cpp
index 4dcf84d00ad50..42e3ff0deb348 100644
--- a/libc/src/math/generic/common_constants.cpp
+++ b/libc/src/math/generic/common_constants.cpp
@@ -51,52 +51,6 @@ const float ONE_OVER_F_FLOAT[128] = {
     0x1.08421p-1f,  0x1.07326p-1f,  0x1.0624dep-1f, 0x1.05198p-1f,
     0x1.041042p-1f, 0x1.03091cp-1f, 0x1.020408p-1f, 0x1.010102p-1f};
 
-// Lookup table for (1/f) where f = 1 + n*2^(-7), n = 0..127.
-const double ONE_OVER_F[128] = {
-    0x1.0000000000000p+0, 0x1.fc07f01fc07f0p-1, 0x1.f81f81f81f82...
[truncated]

@bassiounix bassiounix merged commit 84781c0 into llvm:main Jul 21, 2025
12 of 19 checks passed
@bassiounix bassiounix deleted the acoshf branch July 21, 2025 20:02
Copy link
Contributor

@lntue lntue left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some symbol conflicts?

@bassiounix
Copy link
Contributor Author

bassiounix commented Jul 21, 2025

some symbol conflicts?

where?

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 21, 2025

LLVM Buildbot has detected a new failure on builder libc-aarch64-ubuntu-dbg running on libc-aarch64-ubuntu while building libc,utils at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/104/builds/27342

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[       OK ] LlvmLibcSinCosfTest.SpecialValues (2 ms)
[ RUN      ] LlvmLibcSinCosfTest.SDCOMP_26094
[       OK ] LlvmLibcSinCosfTest.SDCOMP_26094 (320 us)
Ran 4 tests.  PASS: 4  FAIL: 0
[162/1137] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.__internal__.dir/log10.cpp.o
[163/1137] Linking CXX executable libc/test/src/math/libc.test.src.math.log2_test.__unit__.__build__
[164/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.coshf_test.__unit__.__build__.dir/coshf_test.cpp.o
[165/1137] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[166/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.sinhf_test.__unit__.__build__.dir/sinhf_test.cpp.o
[167/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
Step 7 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[       OK ] LlvmLibcSinCosfTest.SpecialValues (2 ms)
[ RUN      ] LlvmLibcSinCosfTest.SDCOMP_26094
[       OK ] LlvmLibcSinCosfTest.SDCOMP_26094 (320 us)
Ran 4 tests.  PASS: 4  FAIL: 0
[162/1137] Building CXX object libc/src/math/generic/CMakeFiles/libc.src.math.generic.log10.__internal__.dir/log10.cpp.o
[163/1137] Linking CXX executable libc/test/src/math/libc.test.src.math.log2_test.__unit__.__build__
[164/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.coshf_test.__unit__.__build__.dir/coshf_test.cpp.o
[165/1137] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[166/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.sinhf_test.__unit__.__build__.dir/sinhf_test.cpp.o
[167/1137] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc -isystem libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc-buildbot/libc-aarch64-ubuntu/libc-aarch64-ubuntu/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 21, 2025

LLVM Buildbot has detected a new failure on builder libc-riscv64-debian-dbg running on libc-riscv64-debian while building libc,utils at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/188/builds/17353

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[172/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__NO_FMA_OPT.__build__
[173/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[174/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__build__
[175/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__NO_FMA_OPT.__build__
[176/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__build__
[177/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__NO_FMA_OPT.__build__
[178/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__NO_FMA_OPT.__build__
[179/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__build__
[180/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__NO_FMA_OPT.__build__
[181/1380] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc -isystem /home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
Step 7 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[172/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__NO_FMA_OPT.__build__
[173/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[174/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__build__
[175/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__NO_FMA_OPT.__build__
[176/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__build__
[177/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__NO_FMA_OPT.__build__
[178/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__NO_FMA_OPT.__build__
[179/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__build__
[180/1380] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__NO_FMA_OPT.__build__
[181/1380] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/usr/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc -isystem /home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/home/libc_worker/libc-riscv64-debian/libc-riscv64-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 21, 2025

LLVM Buildbot has detected a new failure on builder libc-riscv32-qemu-yocto-fullbuild-dbg running on rv32gc-qemu-system while building libc,utils at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/196/builds/10605

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[81/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.exp10m1f_test.__unit__.__NO_FMA_OPT.__build__
[82/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1_test.__unit__.__build__
[83/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1f_test.__unit__.__NO_FMA_OPT.__build__
[84/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1f_test.__unit__.__build__
[85/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1_test.__unit__.__NO_FMA_OPT.__build__
[86/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__build__
[87/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__NO_FMA_OPT.__build__
[88/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.logf_test.__unit__.__NO_FMA_OPT.__build__
[89/1575] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__build__
[90/1575] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__build__.dir/explogxf_test.cpp.o 
/usr/local/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_21_0_0_git -D_DEBUG -I/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc -I/home/libcrv32buildbot/gmp+mpfr/include -isystem /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/build/libc/include -mabi=ilp32d -march=rv32imafdc --target=riscv32-unknown-linux-gnu --sysroot=/opt/riscv/sysroot --gcc-toolchain=/opt/riscv -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -g -std=gnu++17 --target=riscv32-unknown-linux-gnu -D__LIBC_MISC_MATH_BASIC_OPS_OPT -D__LIBC_USE_BUILTIN_FMAX_FMIN -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -DLIBC_FULL_BUILD -ffreestanding -fno-exceptions -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-rtti -ffixed-point -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__build__.dir/explogxf_test.cpp.o -c /home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_21_0_0_git'; did you mean '__llvm_libc_21_0_0_git::acoshf_internal::log_eval'?
   47 |   CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
      |                                               __llvm_libc_21_0_0_git::acoshf_internal::log_eval
   48 |              f_normal, def_count, def_prec);
      |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<command line>:1:24: note: expanded from macro 'LIBC_NAMESPACE'
    1 | #define LIBC_NAMESPACE __llvm_libc_21_0_0_git
      |                        ^
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
   20 |         EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
   21 |                                        (prec));                                \
      |                                        ~~~~~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
  420 |       EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  421 |                         mpfr::RoundingMode::Nearest);                          \
      |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  509 |   LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
      |   ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  504 |   LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  505 |                                          MATCH_STR, LIBC_TEST_LOC_()),         \
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  506 |                          RET_OR_EMPTY)
      |                          ~~~~~~~~~~~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  423 |   if (TEST)                                                                    \
      |       ^~~~
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_21_0_0_git::acoshf_internal::log_eval' declared here
   22 | LIBC_INLINE static double log_eval(double x) {
      |                           ^
/home/libcrv32buildbot/bbroot/libc-riscv32-qemu-yocto-fullbuild-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_21_0_0_git'; did you mean '__llvm_libc_21_0_0_git::acoshf_internal::log_eval'?

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 21, 2025

LLVM Buildbot has detected a new failure on builder premerge-monolithic-linux running on premerge-linux-1 while building libc,utils at step 7 "test-build-unified-tree-check-all".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/38841

Here is the relevant piece of the build log for the reference
Step 7 (test-build-unified-tree-check-all) failure: test (failure)
...
PASS: lld :: COFF/default-alignment.test (98746 of 101764)
PASS: lld :: COFF/comdat-jumptable.s (98747 of 101764)
PASS: lld :: COFF/directives-unsupported.s (98748 of 101764)
PASS: lld :: COFF/delayimports.test (98749 of 101764)
PASS: lld :: COFF/def-name.test (98750 of 101764)
PASS: lld :: COFF/arm64x-symtab.s (98751 of 101764)
PASS: lld :: COFF/baserel.test (98752 of 101764)
PASS: lld :: COFF/duplicate.test (98753 of 101764)
PASS: lld :: COFF/dtlto/options.test (98754 of 101764)
TIMEOUT: MLIR :: Examples/standalone/test.toy (98755 of 101764)
******************** TEST 'MLIR :: Examples/standalone/test.toy' FAILED ********************
Exit Code: 1
Timeout: Reached timeout of 60 seconds

Command Output (stdout):
--
# RUN: at line 1
"/etc/cmake/bin/cmake" "/build/buildbot/premerge-monolithic-linux/llvm-project/mlir/examples/standalone" -G "Ninja"  -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang  -DLLVM_ENABLE_LIBCXX=OFF -DMLIR_DIR=/build/buildbot/premerge-monolithic-linux/build/lib/cmake/mlir  -DLLVM_USE_LINKER=lld  -DPython3_EXECUTABLE="/usr/bin/python3.10"
# executed command: /etc/cmake/bin/cmake /build/buildbot/premerge-monolithic-linux/llvm-project/mlir/examples/standalone -G Ninja -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang -DLLVM_ENABLE_LIBCXX=OFF -DMLIR_DIR=/build/buildbot/premerge-monolithic-linux/build/lib/cmake/mlir -DLLVM_USE_LINKER=lld -DPython3_EXECUTABLE=/usr/bin/python3.10
# .---command stdout------------
# | -- The CXX compiler identification is Clang 16.0.6
# | -- The C compiler identification is Clang 16.0.6
# | -- Detecting CXX compiler ABI info
# | -- Detecting CXX compiler ABI info - done
# | -- Check for working CXX compiler: /usr/bin/clang++ - skipped
# | -- Detecting CXX compile features
# | -- Detecting CXX compile features - done
# | -- Detecting C compiler ABI info
# | -- Detecting C compiler ABI info - done
# | -- Check for working C compiler: /usr/bin/clang - skipped
# | -- Detecting C compile features
# | -- Detecting C compile features - done
# | -- Looking for histedit.h
# | -- Looking for histedit.h - found
# | -- Found LibEdit: /usr/include (found version "2.11") 
# | -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
# | -- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.13") 
# | -- Using MLIRConfig.cmake in: /build/buildbot/premerge-monolithic-linux/build/lib/cmake/mlir
# | -- Using LLVMConfig.cmake in: /build/buildbot/premerge-monolithic-linux/build/lib/cmake/llvm
# | -- Linker detection: unknown
# | -- Performing Test LLVM_LIBSTDCXX_MIN
# | -- Performing Test LLVM_LIBSTDCXX_MIN - Success
# | -- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR
# | -- Performing Test LLVM_LIBSTDCXX_SOFT_ERROR - Success
# | -- Performing Test CXX_SUPPORTS_CUSTOM_LINKER
# | -- Performing Test CXX_SUPPORTS_CUSTOM_LINKER - Success
# | -- Performing Test C_SUPPORTS_FPIC
# | -- Performing Test C_SUPPORTS_FPIC - Success
# | -- Performing Test CXX_SUPPORTS_FPIC

@llvm-ci
Copy link
Collaborator

llvm-ci commented Jul 22, 2025

LLVM Buildbot has detected a new failure on builder libc-arm32-debian-dbg running on libc-arm32-debian while building libc,utils at step 4 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/182/builds/12608

Here is the relevant piece of the build log for the reference
Step 4 (annotate) failure: 'python ../llvm-zorg/zorg/buildbot/builders/annotated/libc-linux.py ...' (failure)
...
[101/676] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1f_test.__unit__.__build__
[102/676] Linking CXX executable libc/test/src/math/libc.test.src.math.logf_test.__unit__.__build__
[103/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log_test.__unit__.__build__
[104/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__build__
[105/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log2_test.__unit__.__build__
[106/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__build__
[107/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[108/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__build__
[109/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__build__
[110/676] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
Step 7 (libc-unit-tests) failure: libc-unit-tests (failure)
...
[101/676] Linking CXX executable libc/test/src/math/libc.test.src.math.expm1f_test.__unit__.__build__
[102/676] Linking CXX executable libc/test/src/math/libc.test.src.math.logf_test.__unit__.__build__
[103/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log_test.__unit__.__build__
[104/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log2f_test.__unit__.__build__
[105/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log2_test.__unit__.__build__
[106/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log10f_test.__unit__.__build__
[107/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log10_test.__unit__.__build__
[108/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log1pf_test.__unit__.__build__
[109/676] Linking CXX executable libc/test/src/math/libc.test.src.math.log1p_test.__unit__.__build__
[110/676] Building CXX object libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o
FAILED: libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o 
/llvm/llvm-install/bin/clang++ -DLIBC_NAMESPACE=__llvm_libc_20_0_0_git -D_DEBUG -I/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc -isystem /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/build/libc/include -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -fdiagnostics-color -g -DLIBC_QSORT_IMPL=LIBC_QSORT_QUICK_SORT -DLIBC_ADD_NULL_CHECKS -DLIBC_ERRNO_MODE=LIBC_ERRNO_MODE_DEFAULT -fpie -Wconversion -Wno-sign-conversion -Wimplicit-fallthrough -Wwrite-strings -Wno-c99-extensions -Wno-gnu-imaginary-constant -Wno-pedantic -Wstrict-prototypes -Wextra-semi -Wnewline-eof -Wnonportable-system-include-path -Wthread-safety -DLIBC_TEST=UNIT -std=gnu++17 -MD -MT libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -MF libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o.d -o libc/test/src/math/CMakeFiles/libc.test.src.math.explogxf_test.__unit__.__NO_MISC_MATH_BASIC_OPS_OPT.__build__.dir/explogxf_test.cpp.o -c /llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'
      EXPECT_MPFR_MATCH(op, input, match_value, ulp_tolerance,                 \
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:509:20: note: expanded from macro 'EXPECT_THAT'
  LIBC_TEST_MATCH_(MATCHER, MATCH, #MATCHER, #MATCH, )
  ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:504:42: note: expanded from macro 'LIBC_TEST_MATCH_'
  LIBC_TEST_SCAFFOLDING_(matchAndExplain(MATCHER, MATCH, MATCHER_STR,          \
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/UnitTest/LibcTest.h:423:7: note: expanded from macro 'LIBC_TEST_SCAFFOLDING_'
  if (TEST)                                                                    \
      ^~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/src/__support/math/acoshf_utils.h:22:27: note: '__llvm_libc_20_0_0_git::acoshf_internal::log_eval' declared here
LIBC_INLINE static double log_eval(double x) {
                          ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/explogxf_test.cpp:47:47: error: no member named 'log_eval' in namespace '__llvm_libc_20_0_0_git'; did you mean '__llvm_libc_20_0_0_git::acoshf_internal::log_eval'?
  CHECK_DATA(0.0f, inf, mpfr::Operation::Log, LIBC_NAMESPACE::log_eval,
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
                                              __llvm_libc_20_0_0_git::acoshf_internal::log_eval
<command line>:1:24: note: expanded from here
#define LIBC_NAMESPACE __llvm_libc_20_0_0_git
                       ^
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/test/src/math/in_float_range_test_helper.h:20:71: note: expanded from macro 'CHECK_DATA'
        EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)),  \
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
/llvm/libc_worker/worker/libc-arm32-debian/libc-arm32-debian-dbg/llvm-project/libc/utils/MPFRWrapper/MPFRUtils.h:420:36: note: expanded from macro 'EXPECT_MPFR_MATCH_ALL_ROUNDING'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bazel "Peripheral" support tier build system: utils/bazel libc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants