[libc-commits] [libc] e96687a - [libc][math][c23] Fix getpayloadf128 smoke test on RV32 (#101720)

via libc-commits libc-commits at lists.llvm.org
Fri Aug 2 15:06:25 PDT 2024


Author: OverMighty
Date: 2024-08-03T00:06:22+02:00
New Revision: e96687acd23fef6ac2402f6933eb1751e0428a76

URL: https://github.com/llvm/llvm-project/commit/e96687acd23fef6ac2402f6933eb1751e0428a76
DIFF: https://github.com/llvm/llvm-project/commit/e96687acd23fef6ac2402f6933eb1751e0428a76.diff

LOG: [libc][math][c23] Fix getpayloadf128 smoke test on RV32 (#101720)

Fixes
https://github.com/llvm/llvm-project/pull/101285#issuecomment-2265765022.

Added: 
    

Modified: 
    libc/test/src/math/smoke/GetPayloadTest.h

Removed: 
    


################################################################################
diff  --git a/libc/test/src/math/smoke/GetPayloadTest.h b/libc/test/src/math/smoke/GetPayloadTest.h
index 6e30de7643119..922a2f04f6fb3 100644
--- a/libc/test/src/math/smoke/GetPayloadTest.h
+++ b/libc/test/src/math/smoke/GetPayloadTest.h
@@ -38,7 +38,14 @@ class GetPayloadTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
     EXPECT_FP_EQ(T(0.0), funcWrapper(func, aNaN));
     EXPECT_FP_EQ(T(0.0), funcWrapper(func, neg_aNaN));
 
-    T default_snan_payload = StorageType(1) << (FPBits::SIG_LEN - 2);
+    // Essentially this:
+    //   T default_snan_payload = StorageType(1) << (FPBits::SIG_LEN - 2);
+    // but supports StorageType being a BigInt.
+    FPBits default_snan_payload_bits = FPBits::one();
+    default_snan_payload_bits.set_biased_exponent(FPBits::SIG_LEN - 2 +
+                                                  FPBits::EXP_BIAS);
+    T default_snan_payload = default_snan_payload_bits.get_val();
+
     EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, sNaN));
     EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, neg_sNaN));
 


        


More information about the libc-commits mailing list