[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