File tree Expand file tree Collapse file tree 2 files changed +6
-2
lines changed Expand file tree Collapse file tree 2 files changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -408,7 +408,8 @@ exponentNaN(const fltSemantics &semantics) {
408408 if (semantics.nonFiniteBehavior == fltNonfiniteBehavior::NanOnly) {
409409 if (semantics.nanEncoding == fltNanEncoding::NegativeZero)
410410 return exponentZero (semantics);
411- return semantics.maxExponent ;
411+ if (semantics.hasSignedRepr )
412+ return semantics.maxExponent ;
412413 }
413414 return semantics.maxExponent + 1 ;
414415}
@@ -3663,7 +3664,7 @@ APInt IEEEFloat::convertIEEEFloatToAPInt() const {
36633664 std::array<uint64_t , (S.sizeInBits + 63 ) / 64 > words;
36643665 auto words_iter =
36653666 std::copy_n (mysignificand.begin (), mysignificand.size (), words.begin ());
3666- if constexpr (significand_mask != 0 ) {
3667+ if constexpr (significand_mask != 0 || trailing_significand_bits == 0 ) {
36673668 // Clear the integer bit.
36683669 words[mysignificand.size () - 1 ] &= significand_mask;
36693670 }
Original file line number Diff line number Diff line change @@ -5985,6 +5985,9 @@ TEST(APFloatTest, Float8E8M0FNUExhaustive) {
59855985 APFloat test (APFloat::Float8E8M0FNU (), APInt (8 , i));
59865986 SCOPED_TRACE (" i=" + std::to_string (i));
59875987
5988+ // bitcastToAPInt
5989+ EXPECT_EQ (i, test.bitcastToAPInt ());
5990+
59885991 // isLargest
59895992 if (i == 254 ) {
59905993 EXPECT_TRUE (test.isLargest ());
You can’t perform that action at this time.
0 commit comments