Skip to content

Commit 557a7b8

Browse files
authored
[libc][math][c23] Fix totalorder and totalordermag smoke tests (#100354)
FPBits::signaling_nan() defaults to setting the MSB of the payload to 1. The tests also used signaling NaNs with a payload of 0x123. With float16, the 1 in 0x123 aligns to the MSB of the payload, therefore 0x123 is greater than the default payload. However, that is not the case with more precise floating-point types.
1 parent 5b15d9c commit 557a7b8

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,24 +104,24 @@ class TotalOrderMagTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
104104
}
105105

106106
void testNaNPayloads(TotalOrderMagFunc func) {
107-
T qnan_123 = FPBits::quiet_nan(Sign::POS, 0x123).get_val();
108-
T neg_qnan_123 = FPBits::quiet_nan(Sign::NEG, 0x123).get_val();
109-
T snan_123 = FPBits::signaling_nan(Sign::POS, 0x123).get_val();
110-
T neg_snan_123 = FPBits::signaling_nan(Sign::NEG, 0x123).get_val();
107+
T qnan_0x42 = FPBits::quiet_nan(Sign::POS, 0x42).get_val();
108+
T neg_qnan_0x42 = FPBits::quiet_nan(Sign::NEG, 0x42).get_val();
109+
T snan_0x42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val();
110+
T neg_snan_0x42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val();
111111

112112
EXPECT_TRUE(funcWrapper(func, aNaN, aNaN));
113113
EXPECT_TRUE(funcWrapper(func, sNaN, sNaN));
114-
EXPECT_TRUE(funcWrapper(func, aNaN, qnan_123));
115-
EXPECT_TRUE(funcWrapper(func, sNaN, snan_123));
116-
EXPECT_FALSE(funcWrapper(func, qnan_123, aNaN));
117-
EXPECT_FALSE(funcWrapper(func, snan_123, sNaN));
114+
EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x42));
115+
EXPECT_FALSE(funcWrapper(func, sNaN, snan_0x42));
116+
EXPECT_FALSE(funcWrapper(func, qnan_0x42, aNaN));
117+
EXPECT_TRUE(funcWrapper(func, snan_0x42, sNaN));
118118

119119
EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_aNaN));
120120
EXPECT_TRUE(funcWrapper(func, neg_sNaN, neg_sNaN));
121-
EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_qnan_123));
122-
EXPECT_TRUE(funcWrapper(func, neg_sNaN, neg_snan_123));
123-
EXPECT_FALSE(funcWrapper(func, neg_qnan_123, neg_aNaN));
124-
EXPECT_FALSE(funcWrapper(func, neg_snan_123, neg_sNaN));
121+
EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_qnan_0x42));
122+
EXPECT_FALSE(funcWrapper(func, neg_sNaN, neg_snan_0x42));
123+
EXPECT_FALSE(funcWrapper(func, neg_qnan_0x42, neg_aNaN));
124+
EXPECT_TRUE(funcWrapper(func, neg_snan_0x42, neg_sNaN));
125125
}
126126
};
127127

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

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,24 +102,24 @@ class TotalOrderTestTemplate : public LIBC_NAMESPACE::testing::FEnvSafeTest {
102102
}
103103

104104
void testNaNPayloads(TotalOrderFunc func) {
105-
T qnan_123 = FPBits::quiet_nan(Sign::POS, 0x123).get_val();
106-
T neg_qnan_123 = FPBits::quiet_nan(Sign::NEG, 0x123).get_val();
107-
T snan_123 = FPBits::signaling_nan(Sign::POS, 0x123).get_val();
108-
T neg_snan_123 = FPBits::signaling_nan(Sign::NEG, 0x123).get_val();
105+
T qnan_0x42 = FPBits::quiet_nan(Sign::POS, 0x42).get_val();
106+
T neg_qnan_0x42 = FPBits::quiet_nan(Sign::NEG, 0x42).get_val();
107+
T snan_0x42 = FPBits::signaling_nan(Sign::POS, 0x42).get_val();
108+
T neg_snan_0x42 = FPBits::signaling_nan(Sign::NEG, 0x42).get_val();
109109

110110
EXPECT_TRUE(funcWrapper(func, aNaN, aNaN));
111111
EXPECT_TRUE(funcWrapper(func, sNaN, sNaN));
112-
EXPECT_TRUE(funcWrapper(func, aNaN, qnan_123));
113-
EXPECT_TRUE(funcWrapper(func, sNaN, snan_123));
114-
EXPECT_FALSE(funcWrapper(func, qnan_123, aNaN));
115-
EXPECT_FALSE(funcWrapper(func, snan_123, sNaN));
112+
EXPECT_TRUE(funcWrapper(func, aNaN, qnan_0x42));
113+
EXPECT_FALSE(funcWrapper(func, sNaN, snan_0x42));
114+
EXPECT_FALSE(funcWrapper(func, qnan_0x42, aNaN));
115+
EXPECT_TRUE(funcWrapper(func, snan_0x42, sNaN));
116116

117117
EXPECT_TRUE(funcWrapper(func, neg_aNaN, neg_aNaN));
118118
EXPECT_TRUE(funcWrapper(func, neg_sNaN, neg_sNaN));
119-
EXPECT_FALSE(funcWrapper(func, neg_aNaN, neg_qnan_123));
120-
EXPECT_FALSE(funcWrapper(func, neg_sNaN, neg_snan_123));
121-
EXPECT_TRUE(funcWrapper(func, neg_qnan_123, neg_aNaN));
122-
EXPECT_TRUE(funcWrapper(func, neg_snan_123, neg_sNaN));
119+
EXPECT_FALSE(funcWrapper(func, neg_aNaN, neg_qnan_0x42));
120+
EXPECT_TRUE(funcWrapper(func, neg_sNaN, neg_snan_0x42));
121+
EXPECT_TRUE(funcWrapper(func, neg_qnan_0x42, neg_aNaN));
122+
EXPECT_FALSE(funcWrapper(func, neg_snan_0x42, neg_sNaN));
123123
}
124124
};
125125

0 commit comments

Comments
 (0)