[libc-commits] [libc] [libc] Fix asin_test smoke test for DAZ modes due to mis-optimization on newer clang. (PR #141996)
via libc-commits
libc-commits at lists.llvm.org
Thu May 29 10:51:47 PDT 2025
https://github.com/lntue updated https://github.com/llvm/llvm-project/pull/141996
>From c382d19680113e2ea504eb51de0b1936506fc40c Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Thu, 29 May 2025 17:35:34 +0000
Subject: [PATCH 1/2] [libc] Fix asin_test smoke test for DAZ modes due to
mis-optimization on newer clang.
---
libc/test/src/math/smoke/asin_test.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libc/test/src/math/smoke/asin_test.cpp b/libc/test/src/math/smoke/asin_test.cpp
index f341b928cd055..b89155ca7e3a1 100644
--- a/libc/test/src/math/smoke/asin_test.cpp
+++ b/libc/test/src/math/smoke/asin_test.cpp
@@ -34,19 +34,19 @@ using namespace LIBC_NAMESPACE::testing;
TEST_F(LlvmLibcAsinTest, FTZMode) {
ModifyMXCSR mxcsr(FTZ);
- EXPECT_FP_EQ(zero, LIBC_NAMESPACE::asin(min_denormal));
+ EXPECT_TRUE(zero == LIBC_NAMESPACE::asin(min_denormal));
}
TEST_F(LlvmLibcAsinTest, DAZMode) {
ModifyMXCSR mxcsr(DAZ);
- EXPECT_FP_EQ(zero, LIBC_NAMESPACE::asin(min_denormal));
+ EXPECT_TRUE(zero == LIBC_NAMESPACE::asin(min_denormal));
}
TEST_F(LlvmLibcAsinTest, FTZDAZMode) {
ModifyMXCSR mxcsr(FTZ | DAZ);
- EXPECT_FP_EQ(zero, LIBC_NAMESPACE::asin(min_denormal));
+ EXPECT_TRUE(zero == LIBC_NAMESPACE::asin(min_denormal));
}
#endif
>From 9f19bd130059bb77e5f573d40353d44202d18cd5 Mon Sep 17 00:00:00 2001
From: Tue Ly <lntue.h at gmail.com>
Date: Thu, 29 May 2025 17:51:28 +0000
Subject: [PATCH 2/2] Address comments.
---
libc/test/src/math/smoke/asin_test.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libc/test/src/math/smoke/asin_test.cpp b/libc/test/src/math/smoke/asin_test.cpp
index b89155ca7e3a1..fdd1ba15d23b7 100644
--- a/libc/test/src/math/smoke/asin_test.cpp
+++ b/libc/test/src/math/smoke/asin_test.cpp
@@ -31,6 +31,10 @@ TEST_F(LlvmLibcAsinTest, SpecialNumbers) {
using namespace LIBC_NAMESPACE::testing;
+// With FTZ/DAZ flags are set, when the inputs are denormal, the output bit
+// pattern might not be exactly 0, but they should all be equal to 0 as floating
+// points.
+
TEST_F(LlvmLibcAsinTest, FTZMode) {
ModifyMXCSR mxcsr(FTZ);
More information about the libc-commits
mailing list