[libc-commits] [PATCH] D127097: [libc][math] Improved FBits performance and readablity.

Kirill Okhotnikov via Phabricator via libc-commits libc-commits at lists.llvm.org
Mon Jun 6 07:21:10 PDT 2022

orex added inline comments.

Comment at: libc/src/__support/FPUtil/FPBits.h:129
   bool is_inf() const {
-    return get_mantissa() == 0 && get_unbiased_exponent() == MAX_EXPONENT;
+    return (bits & (~(FloatProp::SIGN_MASK))) == FloatProp::EXPONENT_MASK;
lntue wrote:
> I forget whether for 80-bit long double, bits 80-127 might contain garbage or not.  Would you mind double checking that?  If that's the case, you might simply add `EXPONENT_MANTISSA_MASK` (or abbreviated to `EXP_MANT_MASK` is up to you) and use that instead of `~SIGN_MASK`.
Probably, I did not get your idea fully. `long double` representation is significantly different from `float`, `double` or `quad` therefore it is covered by separate `FBits` class (see `LongDoubleBits.h`). Do you want me to improve that class also? If yes, I don't think that it should be done in the review. There are a lot of checks which should be done and I prefer it to be in a separate review.
As for the mask, it looks like that it is a good idea. I'll implement this. 

  rG LLVM Github Monorepo



More information about the libc-commits mailing list