[libcxx-commits] [PATCH] D107036: [WIP] [libc++] [P1614] Various unimplemented parts of <compare>. [WIP]

Kent Ross via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sun Aug 29 03:11:34 PDT 2021


mumbleskates added inline comments.


================
Comment at: libcxx/include/__compare/cmp_alg.h:49
+    {
+        if constexpr (numeric_limits<_Dp>::is_iec559 && sizeof(_Dp) == sizeof(uint32_t)) {
+            uint32_t __rx = 0;
----------------
Fun cursed fact here, intel 80bit `long double`s are also iec559. At least on my skylakex system they have `sizeof()` 16, have 6 bytes of padding at the end, and otherwise work mostly the same (sign bit at the top, 15 bits of exponent, 63 bits of mantissa in a 64 bit field wherein the MSB is always 1 except when it's sub-normal, and the //next// highest bit is used for 0=signaling/1=quiet NaN, as the highest bit of the real mantissa). Not completely sure what to do about that!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107036/new/

https://reviews.llvm.org/D107036



More information about the libcxx-commits mailing list