[libc-commits] [libc] [libc][NFC] Use the Sign type for DyadicFloat (PR #78577)

via libc-commits libc-commits at lists.llvm.org
Thu Jan 18 05:42:43 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Guillaume Chatelet (gchatelet)

<details>
<summary>Changes</summary>



---

Patch is 354.96 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/78577.diff


12 Files Affected:

- (modified) libc/src/__support/FPUtil/dyadic_float.h (+2-2) 
- (modified) libc/src/__support/str_to_float.h (+2-1) 
- (modified) libc/src/math/generic/exp.cpp (+13-8) 
- (modified) libc/src/math/generic/exp10.cpp (+9-8) 
- (modified) libc/src/math/generic/exp2.cpp (+9-8) 
- (modified) libc/src/math/generic/expm1.cpp (+13-8) 
- (modified) libc/src/math/generic/log.cpp (+622-621) 
- (modified) libc/src/math/generic/log10.cpp (+623-622) 
- (modified) libc/src/math/generic/log1p.cpp (+465-464) 
- (modified) libc/src/math/generic/log2.cpp (+622-621) 
- (modified) libc/src/math/generic/log_range_reduction.h (+3-2) 
- (modified) libc/test/src/__support/FPUtil/dyadic_float_test.cpp (+4-3) 


``````````diff
diff --git a/libc/src/__support/FPUtil/dyadic_float.h b/libc/src/__support/FPUtil/dyadic_float.h
index 439741d2c497c0..5449f5561d5696 100644
--- a/libc/src/__support/FPUtil/dyadic_float.h
+++ b/libc/src/__support/FPUtil/dyadic_float.h
@@ -49,8 +49,8 @@ template <size_t Bits> struct DyadicFloat {
     normalize();
   }
 
-  constexpr DyadicFloat(bool s, int e, MantissaType m)
-      : sign(s ? Sign::NEG : Sign::POS), exponent(e), mantissa(m) {
+  constexpr DyadicFloat(Sign s, int e, MantissaType m)
+      : sign(s), exponent(e), mantissa(m) {
     normalize();
   }
 
diff --git a/libc/src/__support/str_to_float.h b/libc/src/__support/str_to_float.h
index dd7dfc730ea2cc..8aeb3d2cea03dd 100644
--- a/libc/src/__support/str_to_float.h
+++ b/libc/src/__support/str_to_float.h
@@ -510,6 +510,7 @@ clinger_fast_path(ExpandedFloat<T> init_num,
                   RoundDirection round = RoundDirection::Nearest) {
   using FPBits = typename fputil::FPBits<T>;
   using StorageType = typename FPBits::StorageType;
+  using Sign = fputil::Sign;
 
   StorageType mantissa = init_num.mantissa;
   int32_t exp10 = init_num.exponent;
@@ -522,7 +523,7 @@ clinger_fast_path(ExpandedFloat<T> init_num,
   T float_mantissa;
   if constexpr (cpp::is_same_v<StorageType, cpp::UInt<128>>) {
     float_mantissa = static_cast<T>(fputil::DyadicFloat<128>(
-        false, 0,
+        Sign::POS, 0,
         fputil::DyadicFloat<128>::MantissaType(
             {uint64_t(mantissa), uint64_t(mantissa >> 64)})));
   } else {
diff --git a/libc/src/math/generic/exp.cpp b/libc/src/math/generic/exp.cpp
index a7d1890ee4f9ac..a1b4d9a64f9690 100644
--- a/libc/src/math/generic/exp.cpp
+++ b/libc/src/math/generic/exp.cpp
@@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE {
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
+using Sign = fputil::Sign;
 
 // log2(e)
 constexpr double LOG2_E = 0x1.71547652b82fep+0;
@@ -99,14 +100,18 @@ Float128 poly_approx_f128(const Float128 &dx) {
   using MType = typename Float128::MantissaType;
 
   constexpr Float128 COEFFS_128[]{
-      {false, -127, MType({0, 0x8000000000000000})},                  // 1.0
-      {false, -127, MType({0, 0x8000000000000000})},                  // 1.0
-      {false, -128, MType({0, 0x8000000000000000})},                  // 0.5
-      {false, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6
-      {false, -132, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24
-      {false, -134, MType({0x8888888888888889, 0x8888888888888888})}, // 1/120
-      {false, -137, MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720
-      {false, -140, MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040
+      {Sign::POS, -127, MType({0, 0x8000000000000000})},                  // 1.0
+      {Sign::POS, -127, MType({0, 0x8000000000000000})},                  // 1.0
+      {Sign::POS, -128, MType({0, 0x8000000000000000})},                  // 0.5
+      {Sign::POS, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6
+      {Sign::POS, -132,
+       MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24
+      {Sign::POS, -134,
+       MType({0x8888888888888889, 0x8888888888888888})}, // 1/120
+      {Sign::POS, -137,
+       MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720
+      {Sign::POS, -140,
+       MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040
   };
 
   Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2],
diff --git a/libc/src/math/generic/exp10.cpp b/libc/src/math/generic/exp10.cpp
index b05d6ea7f48668..e441f2c0edc7dd 100644
--- a/libc/src/math/generic/exp10.cpp
+++ b/libc/src/math/generic/exp10.cpp
@@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE {
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
+using Sign = fputil::Sign;
 
 // log2(10)
 constexpr double LOG2_10 = 0x1.a934f0979a371p+1;
@@ -101,14 +102,14 @@ Float128 poly_approx_f128(const Float128 &dx) {
   using MType = typename Float128::MantissaType;
 
   constexpr Float128 COEFFS_128[]{
-      {false, -127, MType({0, 0x8000000000000000})}, // 1.0
-      {false, -126, MType({0xea56d62b82d30a2d, 0x935d8dddaaa8ac16})},
-      {false, -126, MType({0x80a99ce75f4d5bdb, 0xa9a92639e753443a})},
-      {false, -126, MType({0x6a4f9d7dbf6c9635, 0x82382c8ef1652304})},
-      {false, -124, MType({0x345787019216c7af, 0x12bd7609fd98c44c})},
-      {false, -127, MType({0xcc41ed7e0d27aee5, 0x450a7ff47535d889})},
-      {false, -130, MType({0x8326bb91a6e7601d, 0xd3f6b844702d636b})},
-      {false, -130, MType({0xfa7b46df314112a9, 0x45b937f0d05bb1cd})},
+      {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0
+      {Sign::POS, -126, MType({0xea56d62b82d30a2d, 0x935d8dddaaa8ac16})},
+      {Sign::POS, -126, MType({0x80a99ce75f4d5bdb, 0xa9a92639e753443a})},
+      {Sign::POS, -126, MType({0x6a4f9d7dbf6c9635, 0x82382c8ef1652304})},
+      {Sign::POS, -124, MType({0x345787019216c7af, 0x12bd7609fd98c44c})},
+      {Sign::POS, -127, MType({0xcc41ed7e0d27aee5, 0x450a7ff47535d889})},
+      {Sign::POS, -130, MType({0x8326bb91a6e7601d, 0xd3f6b844702d636b})},
+      {Sign::POS, -130, MType({0xfa7b46df314112a9, 0x45b937f0d05bb1cd})},
   };
 
   Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2],
diff --git a/libc/src/math/generic/exp2.cpp b/libc/src/math/generic/exp2.cpp
index ac34ba35232cb4..70bc4870806a9c 100644
--- a/libc/src/math/generic/exp2.cpp
+++ b/libc/src/math/generic/exp2.cpp
@@ -30,6 +30,7 @@ namespace LIBC_NAMESPACE {
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
+using Sign = fputil::Sign;
 
 // Error bounds:
 // Errors when using double precision.
@@ -90,14 +91,14 @@ Float128 poly_approx_f128(const Float128 &dx) {
   using MType = typename Float128::MantissaType;
 
   constexpr Float128 COEFFS_128[]{
-      {false, -127, MType({0, 0x8000000000000000})}, // 1.0
-      {false, -128, MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})},
-      {false, -128, MType({0xde2d60dd9c9a1d9f, 0x3d7f7bff058b1d50})},
-      {false, -132, MType({0x9d3b15d9e7fb6897, 0xe35846b82505fc59})},
-      {false, -134, MType({0x184462f6bcd2b9e7, 0x9d955b7dd273b94e})},
-      {false, -137, MType({0x39ea1bb964c51a89, 0xaec3ff3c53398883})},
-      {false, -138, MType({0x842c53418fa8ae61, 0x2861225f345c396a})},
-      {false, -144, MType({0x7abeb5abd5ad2079, 0xffe5fe2d109a319d})},
+      {Sign::POS, -127, MType({0, 0x8000000000000000})}, // 1.0
+      {Sign::POS, -128, MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab})},
+      {Sign::POS, -128, MType({0xde2d60dd9c9a1d9f, 0x3d7f7bff058b1d50})},
+      {Sign::POS, -132, MType({0x9d3b15d9e7fb6897, 0xe35846b82505fc59})},
+      {Sign::POS, -134, MType({0x184462f6bcd2b9e7, 0x9d955b7dd273b94e})},
+      {Sign::POS, -137, MType({0x39ea1bb964c51a89, 0xaec3ff3c53398883})},
+      {Sign::POS, -138, MType({0x842c53418fa8ae61, 0x2861225f345c396a})},
+      {Sign::POS, -144, MType({0x7abeb5abd5ad2079, 0xffe5fe2d109a319d})},
   };
 
   Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2],
diff --git a/libc/src/math/generic/expm1.cpp b/libc/src/math/generic/expm1.cpp
index 71c4663edd21a8..d9fccf98e8caac 100644
--- a/libc/src/math/generic/expm1.cpp
+++ b/libc/src/math/generic/expm1.cpp
@@ -38,6 +38,7 @@ namespace LIBC_NAMESPACE {
 using fputil::DoubleDouble;
 using fputil::TripleDouble;
 using Float128 = typename fputil::DyadicFloat<128>;
+using Sign = fputil::Sign;
 
 // log2(e)
 constexpr double LOG2_E = 0x1.71547652b82fep+0;
@@ -109,13 +110,17 @@ Float128 poly_approx_f128(const Float128 &dx) {
   using MType = typename Float128::MantissaType;
 
   constexpr Float128 COEFFS_128[]{
-      {false, -127, MType({0, 0x8000000000000000})},                  // 1.0
-      {false, -128, MType({0, 0x8000000000000000})},                  // 0.5
-      {false, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6
-      {false, -132, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24
-      {false, -134, MType({0x8888888888888889, 0x8888888888888888})}, // 1/120
-      {false, -137, MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720
-      {false, -140, MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040
+      {Sign::POS, -127, MType({0, 0x8000000000000000})},                  // 1.0
+      {Sign::POS, -128, MType({0, 0x8000000000000000})},                  // 0.5
+      {Sign::POS, -130, MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/6
+      {Sign::POS, -132,
+       MType({0xaaaaaaaaaaaaaaab, 0xaaaaaaaaaaaaaaaa})}, // 1/24
+      {Sign::POS, -134,
+       MType({0x8888888888888889, 0x8888888888888888})}, // 1/120
+      {Sign::POS, -137,
+       MType({0x60b60b60b60b60b6, 0xb60b60b60b60b60b})}, // 1/720
+      {Sign::POS, -140,
+       MType({0x00d00d00d00d00d0, 0xd00d00d00d00d00d})}, // 1/5040
   };
 
   Float128 p = fputil::polyeval(dx, COEFFS_128[0], COEFFS_128[1], COEFFS_128[2],
@@ -165,7 +170,7 @@ Float128 expm1_f128(double x, double kd, int idx1, int idx2) {
   Float128 exp_mid = fputil::quick_mul(exp_mid1, exp_mid2);
 
   int hi = static_cast<int>(kd) >> 12;
-  Float128 minus_one{true, -127 - hi, MType({0, 0x8000000000000000})};
+  Float128 minus_one{Sign::NEG, -127 - hi, MType({0, 0x8000000000000000})};
 
   Float128 exp_mid_m1 = fputil::quick_add(exp_mid, minus_one);
 
diff --git a/libc/src/math/generic/log.cpp b/libc/src/math/generic/log.cpp
index 5b3f48c85614b7..2db6b7f48fd09f 100644
--- a/libc/src/math/generic/log.cpp
+++ b/libc/src/math/generic/log.cpp
@@ -24,6 +24,7 @@ namespace LIBC_NAMESPACE {
 // 128-bit precision dyadic floating point numbers.
 using Float128 = typename fputil::DyadicFloat<128>;
 using MType = typename Float128::MantissaType;
+using Sign = fputil::Sign;
 
 namespace {
 
@@ -36,7 +37,7 @@ constexpr double P_ERR = 0x1.0p-50;
 // log(2) with 128-bit prepcision generated by SageMath with:
 //   sage: (s, m, e) = RealField(128)(2).log().sign_mantissa_exponent();
 //   sage: print("MType({", hex(m % 2^64), ",", hex((m >> 64) % 2^64), "})");
-const Float128 LOG_2(/*sign=*/false, /*exponent=*/-128, /*mantissa=*/
+const Float128 LOG_2(Sign::POS, /*exponent=*/-128, /*mantissa=*/
                      MType({0xc9e3b39803f2f6af, 0xb17217f7d1cf79ab}));
 
 alignas(64) const LogRR LOG_TABLE = {
@@ -45,512 +46,512 @@ alignas(64) const LogRR LOG_TABLE = {
     // for i in range(128):
     //   r = 2^-8 * ceil( 2^8 * (1 - 2^(-8)) / (1 + i*2^(-7)) );
     //   s, m, e = RealField(128)(r).log().sign_mantissa_exponent();
-    //   print("{false,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64) %
-    //   2^64),
+    //   print("{Sign::POS,", e, ", MType({", hex(m % 2^64), ",", hex((m >> 64)
+    //   % 2^64),
     //         "})},");
     /* .step_1= */ {
-        {false, 0, MType(0)},
-        {false, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})},
-        {false, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})},
-        {false, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})},
-        {false, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})},
-        {false, -132, MType({0x521016bd904dc968, 0xa33576a16f1f4c64})},
-        {false, -132, MType({0xbe97660a23cc540d, 0xc4a550a4fd9a19a8})},
-        {false, -132, MType({0xe09f5fe2058d6006, 0xe65b9e6eed965c36})},
-        {false, -131, MType({0x1fecdfa819b96098, 0x842cc5acf1d03445})},
-        {false, -131, MType({0xa7c9859530a45153, 0x8cb9de8a32ab368a})},
-        {false, -131, MType({0x976d3b5b45f6ca0b, 0x9defad3e8f73217a})},
-        {false, -131, MType({0xe8b8b88a14ff0ce, 0xaf4ad26cbc8e5be7})},
-        {false, -131, MType({0x6a677b4c8bec22e1, 0xb8069857560707a3})},
-        {false, -131, MType({0xeaf51f66692844ba, 0xc99af2eaca4c4570})},
-        {false, -131, MType({0xa8112e35a60e6375, 0xdb56446d6ad8deff})},
-        {false, -131, MType({0x196ab34ce0bccd12, 0xe442c00de2591b47})},
-        {false, -131, MType({0x4066e87f2c0f7340, 0xf639cc185088fe5d})},
-        {false, -131, MType({0xc17bd40d8d9291ec, 0xff4489cedeab2ca6})},
-        {false, -130, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})},
-        {false, -130, MType({0x88713268840cbcc0, 0x8d515bf11fb94f1c})},
-        {false, -130, MType({0x65c0da506a088484, 0x968b08643409ceb6})},
-        {false, -130, MType({0x411a5b944aca8708, 0x9b2fe580ac80b17d})},
-        {false, -130, MType({0xa9fb6cf0ecb411b7, 0xa489ec199dab06f2})},
-        {false, -130, MType({0xcad2fb8d48054ae0, 0xa93f2f250dac67d1})},
-        {false, -130, MType({0x2c3c2e77904afa78, 0xb2ba75f46099cf8b})},
-        {false, -130, MType({0x34c7bc3d32750fde, 0xb780945bab55dce4})},
-        {false, -130, MType({0x9a631e830fd30904, 0xc11e0b2a8d1e0ddb})},
-        {false, -130, MType({0xaa8b6997a402bf30, 0xc5f57f59c7f46155})},
-        {false, -130, MType({0x2c507fb7a3d0bf6a, 0xcad2d6e7b80bf914})},
-        {false, -130, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})},
-        {false, -130, MType({0x58a98f2ad65bee9b, 0xd98ec2bade71e539})},
-        {false, -130, MType({0x4d57da945b5d0aaa, 0xde8439c1dec56877})},
-        {false, -130, MType({0xc524848e3443e040, 0xe881bf932af3dac0})},
-        {false, -130, MType({0x11d49f96cb88317b, 0xed89ed86a44a01aa})},
-        {false, -130, MType({0x3b020fa1820c9492, 0xf29877ff38809091})},
-        {false, -130, MType({0x54d2238f75f969b1, 0xf7ad6f26e7ff2ef7})},
-        {false, -130, MType({0xca0cdf301431b60f, 0xfcc8e3659d9bcbec})},
-        {false, -129, MType({0x62dda9d2270fa1f4, 0x8389c3026ac3139b})},
-        {false, -129, MType({0x163ceae88f720f1e, 0x86216b3b0b17188b})},
-        {false, -129, MType({0x9c5a0fe396f40f1e, 0x88bc74113f23def1})},
-        {false, -129, MType({0xf7a5168126a58b9a, 0x8b5ae65d67db9acd})},
-        {false, -129, MType({0x5147bdb6ddcaf59c, 0x8dfccb1ad35ca6ed})},
-        {false, -129, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})},
-        {false, -129, MType({0x4a5004f3ef063313, 0x95f783e6e49a9cfa})},
-        {false, -129, MType({0x2cdec34784707839, 0x98a78f0e9ae71d85})},
-        {false, -129, MType({0xd878bbe3d392be25, 0x9b5b3bb5f088b766})},
-        {false, -129, MType({0x5b035eae273a855f, 0x9e1293b9998c1daa})},
-        {false, -129, MType({0xbb2438273918db7e, 0xa0cda11eaf46390d})},
-        {false, -129, MType({0xf698298adddd7f32, 0xa38c6e138e20d831})},
-        {false, -129, MType({0xe4f5275c2d15c21f, 0xa64f04f0b961df76})},
-        {false, -129, MType({0x8164c759686a2209, 0xa9157039c51ebe70})},
-        {false, -129, MType({0xf72ea07749ce6bd3, 0xabdfba9e468fd6f6})},
-        {false, -129, MType({0x7dd6e688ebb13b03, 0xaeadeefacaf97d35})},
-        {false, -129, MType({0x18ce51fff99479cd, 0xb1801859d56249dc})},
-        {false, -129, MType({0x2756eba00bc33978, 0xb45641f4e350a0d3})},
-        {false, -129, MType({0xbe1116c3466beb6d, 0xb730773578cb90b2})},
-        {false, -129, MType({0x49dc60b2b059a60b, 0xba0ec3b633dd8b09})},
-        {false, -129, MType({0x2efd17781bb3afec, 0xbcf13343e7d9ec7d})},
-        {false, -129, MType({0x37eda996244bccb0, 0xbfd7d1dec0a8df6f})},
-        {false, -129, MType({0x33337789d592e296, 0xc2c2abbb6e5fd56f})},
-        {false, -129, MType({0x1a18fb8f9f9ef280, 0xc5b1cd44596fa51e})},
-        {false, -129, MType({0x688ce7c1a75e341a, 0xc8a5431adfb44ca5})},
-        {false, -129, MType({0x2d7e9307c70c0668, 0xcb9d1a189ab56e76})},
-        {false, -129, MType({0xef2f3f4f861ad6a9, 0xce995f50af69d861})},
-        {false, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})},
-        {false, -129, MType({0x7f9d79f51dcc7301, 0xd19a201127d3c645})},
-        {false, -129, MType({0x5f53bd2e406e66e7, 0xd49f69e456cf1b79})},
-        {false, -129, MType({0xad88bba7d0cee8e0, 0xd7a94a92466e833a})},
-        {false, -129, MType({0x96c20cca6efe2ac5, 0xdab7d02231484a92})},
-        {false, -129, MType({0xf40a666c87842843, 0xddcb08dc0717d85b})},
-        {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})},
-        {false, -129, MType({0x7fe8e1802aba24d6, 0xe0e30349fd1cec80})},
-        {false, -129, MType({0x3eadb651b49ac53a, 0xe3ffce3a2aa64922})},
-        {false, -129, MType({0x304e1653e71d9973, 0xe72178c0323a1a0f})},
-        {false, -129, MType({0xe9a767a80d6d97e8, 0xea481236f7d35baf})},
-        {false, -129, MType({0x4f91cf4b33e42998, 0xed73aa4264b0ade9})},
-        {false, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})},
-        {false, -129, MType({0xfc66eb6408ff6433, 0xf0a450d139366ca6})},
-        {false, -129, MType({0xac8d42f78d3e65d3, 0xf3da161eed6b9aaf})},
-        {false, -129, MType({0x5a470250d40ebe90, 0xf7150ab5a09f27f4})},
-        {false, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})},
-        {false, -129, MType({0xb780a545a1b54dcf, 0xfa553f7018c966f2})},
-        {false, -129, MType({0x8f05924d258c14c5, 0xfd9ac57bd244217e})},
-        {false, -128, MType({0x89d1b09c70c4010a, 0x8072d72d903d588b})},
-        {false, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})},
-        {false, -128, MType({0x30d58c3f7e2ea1f, 0x821b05f3b01d6774})},
-        {false, -128, MType({0x20f6fafe8fbb68b9, 0x83c5f8299e2b4091})},
-        {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})},
-        {false, -128, MType({0xe21f9f89c1ab80b2, 0x8573b71682a7d21a})},
-        {false, -128, MType({0x1e005d06dbfa8f8, 0x87244c308e670a66})},
-        {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})},
-        {false, -128, MType({0x223111a707b6de2c, 0x88d7c11e3ad53cdc})},
-        {false, -128, MType({0x2eb628dba173c82d, 0x8a8e1fb794b09134})},
-        {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})},
-        {false, -128, MType({0xbe2ad19415fe25a5, 0x8c47720791e53313})},
-        {false, -128, MType({0xbddae1ccce247838, 0x8e03c24d73003959})},
-        {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})},
-        {false, -128, MType({0x9b00bf167e95da67, 0x8fc31afe30b2c6de})},
-        {false, -128, MType({0x9b92199ed1a4bab1, 0x918586c5f5e4bf01})},
-        {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})},
-        {false, -128, MType({0xdf5bb3b60554e152, 0x934b1089a6dc93c1})},
-        {false, -128, MType({0xf3cbc416a2418012, 0x9513c36876083695})},
-        {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})},
-        {false, -128, MType({0xbe1188fbc94e2f15, 0x96dfaabd86fa1646})},
-        {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})},
-        {false, -128, MType({0x1d2f89321647b358, 0x98aed221a03458b6})},
-        {false, -128, MType({0xe549f9aaea3cb5e1, 0x9a81456cec642e0f})},
-        {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})},
-        {false, -128, MType({0xa2554b2dd4619e63, 0x9c5710b8cbb73a42})},
-        {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})},
-        {false, -128, MType({0x30603d87b6df81ad, 0x9e304061b5fda919})},
-        {false, -128, MType({0x67879c5a30cd1242, 0xa00ce1092e5498c3})},
-        {false, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})},
-        {false, -128, MType({0xb7efae08e597e16, 0xa1ecff97c91e267b})},
-        {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})},
-        {false, -128, MType({0x83594fab088c0d65, 0xa3d0a93f45169a4a})},
-        {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})},
-        {false, -128, MType({0xaf6a62a0dec6e073, 0xa5b7eb7cb860fb88})},
-        {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})},
-        {false, -128, MType({0x49362382a768847a, 0xa7a2d41ad270c9d7})},
-        {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})},
-        {false, -128, MType({0x8ba4aea614d05701, 0xa991713433c2b998})},
-        {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})},
-        {false, -128, MType({0x7fe6607ba902ef3c, 0xab83d135dc633301})},
-        {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})},
-        {false, -128, MType({0xd60864fd949b4bd3, 0xad7a02e1b24efd31})},
-        {false, -128, MType({0x66d235ee63073dd, 0xaf74155120c9011c})},
-        {false, 0, MType(0)},
+        {Sign::POS, 0, MType(0)},
+        {Sign::POS, -134, MType({0x662d417ced007a46, 0x8080abac46f38946})},
+        {Sign::POS, -133, MType({0x91d082dce3ddcd38, 0x8102b2c49ac23a4f})},
+        {Sign::POS, -133, MType({0xda5f3cc0b3251dbd, 0xc24929464655f45c})},
+        {Sign::POS, -132, MType({0xb9e3aea6c444ef07, 0x820aec4f3a222380})}...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/78577


More information about the libc-commits mailing list