[libc-commits] [libc] 349fee0 - [libc][math] Fix broken aarch64 due to clz refactoring.

Kirill Okhotnikov via libc-commits libc-commits at lists.llvm.org
Fri Jun 24 14:59:55 PDT 2022


Author: Kirill Okhotnikov
Date: 2022-06-24T23:59:26+02:00
New Revision: 349fee08d53734ea6530a56b931afdf026b5528c

URL: https://github.com/llvm/llvm-project/commit/349fee08d53734ea6530a56b931afdf026b5528c
DIFF: https://github.com/llvm/llvm-project/commit/349fee08d53734ea6530a56b931afdf026b5528c.diff

LOG: [libc][math] Fix broken aarch64 due to clz refactoring.

Added: 
    

Modified: 
    libc/src/__support/FPUtil/generic/sqrt.h

Removed: 
    


################################################################################
diff  --git a/libc/src/__support/FPUtil/generic/sqrt.h b/libc/src/__support/FPUtil/generic/sqrt.h
index ed6b624c6a0e..8761e8623de0 100644
--- a/libc/src/__support/FPUtil/generic/sqrt.h
+++ b/libc/src/__support/FPUtil/generic/sqrt.h
@@ -51,8 +51,8 @@ inline void normalize<long double>(int &exponent, uint64_t &mantissa) {
 template <>
 inline void normalize<long double>(int &exponent, UInt128 &mantissa) {
   const uint64_t hi_bits = static_cast<uint64_t>(mantissa >> 64);
-  const int shift = hi_bits ? (clz(hi_bits) - 15)
-                            : (clz(static_cast<uint64_t>(mantissa)) + 49);
+  const int shift = hi_bits ? (unsafe_clz(hi_bits) - 15)
+                            : (unsafe_clz(static_cast<uint64_t>(mantissa)) + 49);
   exponent -= shift;
   mantissa <<= shift;
 }


        


More information about the libc-commits mailing list