[libc-commits] [libc] [libc][math][c++23] Add totalorder{, mag}bf16 math functions (PR #155568)

via libc-commits libc-commits at lists.llvm.org
Wed Aug 27 10:07:57 PDT 2025


================
@@ -111,19 +111,44 @@ class TotalOrderMagTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
     T snan_0x42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val();
     T neg_snan_0x42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val();
 
+    T qnan_0x15 = FPBits::quiet_nan(Sign::POS, 0x15).get_val();
----------------
overmighty wrote:

More of a nit but I think it would make more sense to have it like this:

```cpp
        if constexpr (FPBits::FRACTION_LEN - 1 >= 5) {
          T qnan_0x15 = FPBits::quiet_nan(Sign::POS, 0x15).get_val();
          T neg_qnan_0x15 = FPBits::quiet_nan(Sign::NEG, 0x15).get_val();
          T snan_0x15 = FPBits::signaling_nan(Sign::POS, 0x15).get_val();
          T neg_snan_0x15 = FPBits::signaling_nan(Sign::NEG, 0x15).get_val();

          EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x15));
          EXPECT_FALSE(funcWrapper(func, sNaN, snan_0x15));
          EXPECT_FALSE(funcWrapper(func, qnan_0x15, aNaN));
          EXPECT_TRUE(funcWrapper(func, snan_0x15, sNaN));

          EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_qnan_0x15));
          EXPECT_FALSE(funcWrapper(func, neg_sNaN, neg_snan_0x15));
          EXPECT_FALSE(funcWrapper(func, neg_qnan_0x15, neg_aNaN));
          EXPECT_TRUE(funcWrapper(func, neg_snan_0x15, neg_sNaN));
        }

        if constexpr (FPBits::FRACTION_LEN - 1 >= 7) {
          T qnan_0x42 = FPBits::quiet_nan(Sign::POS, 0x42).get_val();
          T neg_qnan_0x42 = FPBits::quiet_nan(Sign::NEG, 0x42).get_val();
          T snan_0x42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val();
          T neg_snan_0x42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val();

          EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x42));
          EXPECT_FALSE(funcWrapper(func, sNaN, snan_0x42));
          EXPECT_FALSE(funcWrapper(func, qnan_0x42, aNaN));
          EXPECT_TRUE(funcWrapper(func, snan_0x42, sNaN));

          EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_qnan_0x42));
          EXPECT_FALSE(funcWrapper(func, neg_sNaN, neg_snan_0x42));
          EXPECT_FALSE(funcWrapper(func, neg_qnan_0x42, neg_aNaN));
          EXPECT_TRUE(funcWrapper(func, neg_snan_0x42, neg_sNaN));
        }
```

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


More information about the libc-commits mailing list