[llvm-branch-commits] [libc] [libc][math][c++23] Add {get, set}payloadbf16 and setpayloadsigbf16 math functions (PR #153994)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 21 12:52:07 PDT 2025


================
@@ -51,23 +51,50 @@ class GetPayloadTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
     EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, sNaN));
     EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, neg_sNaN));
 
-    T qnan_42 = FPBits::quiet_nan(Sign::POS, 0x42).get_val();
-    T neg_qnan_42 = FPBits::quiet_nan(Sign::NEG, 0x42).get_val();
-    T snan_42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val();
-    T neg_snan_42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val();
-    EXPECT_FP_EQ(T(0x42.0p+0), funcWrapper(func, qnan_42));
-    EXPECT_FP_EQ(T(0x42.0p+0), funcWrapper(func, neg_qnan_42));
-    EXPECT_FP_EQ(T(0x42.0p+0), funcWrapper(func, snan_42));
-    EXPECT_FP_EQ(T(0x42.0p+0), funcWrapper(func, neg_snan_42));
-
-    T qnan_123 = FPBits::quiet_nan(Sign::POS, 0x123).get_val();
-    T neg_qnan_123 = FPBits::quiet_nan(Sign::NEG, 0x123).get_val();
-    T snan_123 = FPBits::signaling_nan(Sign::POS, 0x123).get_val();
-    T neg_snan_123 = FPBits::signaling_nan(Sign::NEG, 0x123).get_val();
-    EXPECT_FP_EQ(T(0x123.0p+0), funcWrapper(func, qnan_123));
-    EXPECT_FP_EQ(T(0x123.0p+0), funcWrapper(func, neg_qnan_123));
-    EXPECT_FP_EQ(T(0x123.0p+0), funcWrapper(func, snan_123));
-    EXPECT_FP_EQ(T(0x123.0p+0), funcWrapper(func, neg_snan_123));
+    if constexpr (FPBits::FRACTION_LEN - 1 >= 6) {
----------------
overmighty wrote:

Nit: it's a bit weird that you guard both 6-bit and 5-bit payload test cases with a single `FRACTION_LEN - 1 >= 6` check but you guard 7-bit and 9-bit payload test cases with separate `FRACTION_LEN - 1 >= 7` and `>= 9` checks.

https://github.com/llvm/llvm-project/pull/153994


More information about the llvm-branch-commits mailing list