[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