llvm-project/libc
Clint Caywood d92e5412ea [libc] Use __builtin_clz to find leading 1 in hypot
This is an optimization that using a single CPU instruction on supported
architectures (amd64 and aarch64, but possibly others) to replace what was
previously an iterative look-up-table algorithm.

Originally I suggested using inline assembly for this in
https://reviews.llvm.org/D117584.

Reviewed By: lntue, sivachandra

Differential Revision: https://reviews.llvm.org/D117684
2022-01-20 23:32:34 +00:00
..
AOR_v20.02 Harmonize Python shebang 2020-07-16 21:53:45 +02:00
benchmarks [libc][obvious] fix formatting mistake 2021-12-22 11:40:08 -08:00
cmake/modules [libc] Add multithreading support for exhaustive testing and MPFRUtils. 2022-01-13 13:46:14 -05:00
config [libc] Move the remaining public types to their own type headers. 2022-01-20 23:04:26 +00:00
docs [libc][clang-tidy] fix namespace check for externals 2021-11-30 11:44:24 -08:00
fuzzing [libc] apply new lint rules 2021-12-07 10:49:47 -08:00
include [libc] Move the remaining public types to their own type headers. 2022-01-20 23:04:26 +00:00
lib [libc] add malloc funcs as external entrypoints 2021-10-27 10:21:01 -07:00
loader [libc][NFC] Move sys/mman entrypoints to the default build configs. 2022-01-11 16:51:10 +00:00
spec [libc] Implement correctly rounded log2f based on RLIBM library. 2022-01-14 12:40:49 -05:00
src [libc] Use __builtin_clz to find leading 1 in hypot 2022-01-20 23:32:34 +00:00
test [libc] Make log2f correctly rounded for all rounding modes when FMA is not available. 2022-01-20 16:16:11 -05:00
utils [libc] Implement correctly rounded log2f based on RLIBM library. 2022-01-14 12:40:49 -05:00
.clang-tidy [libc] Add a naming rule for global constants. 2022-01-19 22:11:16 +00:00
CMakeLists.txt [libc] improve error message for unsupported target platforms 2022-01-19 10:39:34 -08:00
LICENSE.TXT Rename top-level LICENSE.txt files to LICENSE.TXT 2021-03-10 21:26:24 -08:00
README.txt

README.txt

LLVM libc
=========

This directory and its subdirectories contain source code for llvm-libc,
a retargetable implementation of the C standard library.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.