Skip to content

Commit e96687a

Browse files
authored
[libc][math][c23] Fix getpayloadf128 smoke test on RV32 (llvm#101720)
Fixes llvm#101285 (comment).
1 parent 35a509d commit e96687a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

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

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,14 @@ class GetPayloadTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
3838
EXPECT_FP_EQ(T(0.0), funcWrapper(func, aNaN));
3939
EXPECT_FP_EQ(T(0.0), funcWrapper(func, neg_aNaN));
4040

41-
T default_snan_payload = StorageType(1) << (FPBits::SIG_LEN - 2);
41+
// Essentially this:
42+
// T default_snan_payload = StorageType(1) << (FPBits::SIG_LEN - 2);
43+
// but supports StorageType being a BigInt.
44+
FPBits default_snan_payload_bits = FPBits::one();
45+
default_snan_payload_bits.set_biased_exponent(FPBits::SIG_LEN - 2 +
46+
FPBits::EXP_BIAS);
47+
T default_snan_payload = default_snan_payload_bits.get_val();
48+
4249
EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, sNaN));
4350
EXPECT_FP_EQ(default_snan_payload, funcWrapper(func, neg_sNaN));
4451

0 commit comments

Comments
 (0)