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

Siva Chandra via Phabricator via libc-commits libc-commits at lists.llvm.org
Tue Jun 7 02:01:47 PDT 2022

sivachandra accepted this revision.
sivachandra added inline comments.

Comment at: libc/src/__support/FPUtil/FloatProperties.h:49
-  static constexpr uint32_t BIT_WIDTH = sizeof(BitsType) << 3;
+  static constexpr uint32_t BIT_WIDTH = sizeof(BitsType) * 8;
orex wrote:
> sivachandra wrote:
> > Why is multiplication by 8 preferred over shift by 3?
> Just to improve readability. Everybody knows, that byte has 8 bits. But in previous representation it should:
> 1) Understand that `<< ` refers to explicit multiplication, but not bit/masks operations as everywhere else in the code.
> 2) Remember that 2^3=8.
> Of course, it is not a big problem, but the code is still complex and need attention. And we should not add extra complications for nothing.
To be absolutely clear, I am OK with using `* 8` in this patch. At the same time, I would have found the reasoning more appealing if it was like, "we should let the compilers choose the best instructions for the semantic of multiplying by 8."

  rG LLVM Github Monorepo



More information about the libc-commits mailing list