diff --git a/libc/config/baremetal/aarch64/entrypoints.txt b/libc/config/baremetal/aarch64/entrypoints.txt index 03e01dc58044c..a5f804013ffed 100644 --- a/libc/config/baremetal/aarch64/entrypoints.txt +++ b/libc/config/baremetal/aarch64/entrypoints.txt @@ -493,6 +493,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -511,6 +512,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -548,6 +550,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -776,9 +779,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -786,7 +787,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/baremetal/arm/entrypoints.txt b/libc/config/baremetal/arm/entrypoints.txt index 65627fe66adf2..baf30685ee1b5 100644 --- a/libc/config/baremetal/arm/entrypoints.txt +++ b/libc/config/baremetal/arm/entrypoints.txt @@ -505,6 +505,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -523,6 +524,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -560,6 +562,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -787,9 +790,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -797,7 +798,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/baremetal/riscv/entrypoints.txt b/libc/config/baremetal/riscv/entrypoints.txt index 6fd05e8f5fbc0..d23ea962c4dca 100644 --- a/libc/config/baremetal/riscv/entrypoints.txt +++ b/libc/config/baremetal/riscv/entrypoints.txt @@ -501,6 +501,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -519,6 +520,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -556,6 +558,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -784,9 +787,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -794,7 +795,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/darwin/aarch64/entrypoints.txt b/libc/config/darwin/aarch64/entrypoints.txt index 3321475658754..dc4ed39032445 100644 --- a/libc/config/darwin/aarch64/entrypoints.txt +++ b/libc/config/darwin/aarch64/entrypoints.txt @@ -312,6 +312,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -330,6 +331,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -367,6 +369,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -596,9 +599,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -606,7 +607,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/darwin/x86_64/entrypoints.txt b/libc/config/darwin/x86_64/entrypoints.txt index 43ff836804037..f3487afaca485 100644 --- a/libc/config/darwin/x86_64/entrypoints.txt +++ b/libc/config/darwin/x86_64/entrypoints.txt @@ -175,6 +175,7 @@ set(TARGET_LIBM_ENTRYPOINTS #libc.src.math.ilogbl #libc.src.math.llrint #libc.src.math.llrintf + #libc.src.math.llrintf128 #libc.src.math.llrintl #libc.src.math.llround #libc.src.math.llroundf @@ -182,6 +183,7 @@ set(TARGET_LIBM_ENTRYPOINTS #libc.src.math.llroundl #libc.src.math.lrint #libc.src.math.lrintf + #libc.src.math.lrintf128 #libc.src.math.lrintl #libc.src.math.lround #libc.src.math.lroundf @@ -221,6 +223,7 @@ set(TARGET_LIBM_ENTRYPOINTS #libc.src.math.remquol #libc.src.math.rint #libc.src.math.rintf + #libc.src.math.rintf128 #libc.src.math.rintl #libc.src.math.round #libc.src.math.roundevenf128 diff --git a/libc/config/freebsd/x86_64/entrypoints.txt b/libc/config/freebsd/x86_64/entrypoints.txt index 7b49cb15810cd..2b264ebb8b517 100644 --- a/libc/config/freebsd/x86_64/entrypoints.txt +++ b/libc/config/freebsd/x86_64/entrypoints.txt @@ -222,6 +222,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.ldexpl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -240,6 +241,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logbl libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -271,6 +273,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundevenf128 @@ -534,9 +537,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -544,7 +545,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/gpu/amdgpu/entrypoints.txt b/libc/config/gpu/amdgpu/entrypoints.txt index 06f73ccb899b5..772c6a6db38c3 100644 --- a/libc/config/gpu/amdgpu/entrypoints.txt +++ b/libc/config/gpu/amdgpu/entrypoints.txt @@ -436,6 +436,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -454,6 +455,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -491,6 +493,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.roundeven libc.src.math.roundevenf diff --git a/libc/config/gpu/nvptx/entrypoints.txt b/libc/config/gpu/nvptx/entrypoints.txt index d7425cb25cadd..4bb6c93fc776c 100644 --- a/libc/config/gpu/nvptx/entrypoints.txt +++ b/libc/config/gpu/nvptx/entrypoints.txt @@ -433,6 +433,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -451,6 +452,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -488,6 +490,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.roundeven libc.src.math.roundevenf diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index 1676e69b5e02d..ffe267fca19c7 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -653,6 +653,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -671,6 +672,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -708,6 +710,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -930,9 +933,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -940,7 +941,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt index b6a24f4488089..af2a14eb72414 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -467,6 +467,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -485,6 +486,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -522,6 +524,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundevenf128 diff --git a/libc/config/linux/riscv/entrypoints.txt b/libc/config/linux/riscv/entrypoints.txt index 70bf1e4a38304..edda59601796a 100644 --- a/libc/config/linux/riscv/entrypoints.txt +++ b/libc/config/linux/riscv/entrypoints.txt @@ -721,6 +721,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -739,6 +740,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -776,6 +778,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -1015,9 +1018,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -1025,7 +1026,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index 89886f0f04734..cd7bb5d5e8b83 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -731,6 +731,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.llogbl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -749,6 +750,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logf libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -786,6 +788,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundeven @@ -1025,9 +1028,7 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.issignalingf128 libc.src.math.ldexpf128 libc.src.math.llogbf128 - libc.src.math.llrintf128 libc.src.math.logbf128 - libc.src.math.lrintf128 libc.src.math.modff128 libc.src.math.nanf128 libc.src.math.nextafterf128 @@ -1035,7 +1036,6 @@ if(LIBC_TYPES_HAS_NATIVE_FLOAT128) libc.src.math.nextupf128 libc.src.math.remainderf128 libc.src.math.remquof128 - libc.src.math.rintf128 libc.src.math.scalblnf128 libc.src.math.scalbnf128 libc.src.math.setpayloadf128 diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt index 663cabaa5dd76..d5e5b61c15e4f 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -255,6 +255,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.ldexpl libc.src.math.llrint libc.src.math.llrintf + libc.src.math.llrintf128 libc.src.math.llrintl libc.src.math.llround libc.src.math.llroundf @@ -273,6 +274,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.logbl libc.src.math.lrint libc.src.math.lrintf + libc.src.math.lrintf128 libc.src.math.lrintl libc.src.math.lround libc.src.math.lroundf @@ -304,6 +306,7 @@ set(TARGET_LIBM_ENTRYPOINTS libc.src.math.remquol libc.src.math.rint libc.src.math.rintf + libc.src.math.rintf128 libc.src.math.rintl libc.src.math.round libc.src.math.roundevenf128 diff --git a/libc/shared/math/llrintf128.h b/libc/shared/math/llrintf128.h index c35c93cb3fc6b..1553aab6bfba2 100644 --- a/libc/shared/math/llrintf128.h +++ b/libc/shared/math/llrintf128.h @@ -9,10 +9,6 @@ #ifndef LLVM_LIBC_SHARED_MATH_LLRINTF128_H #define LLVM_LIBC_SHARED_MATH_LLRINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "shared/libc_common.h" #include "src/__support/math/llrintf128.h" @@ -24,6 +20,4 @@ using math::llrintf128; } // namespace shared } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SHARED_MATH_LLRINTF128_H diff --git a/libc/shared/math/lrintf128.h b/libc/shared/math/lrintf128.h index d4e252e0da1e1..f6b87d205c61f 100644 --- a/libc/shared/math/lrintf128.h +++ b/libc/shared/math/lrintf128.h @@ -9,10 +9,6 @@ #ifndef LLVM_LIBC_SHARED_MATH_LRINTF128_H #define LLVM_LIBC_SHARED_MATH_LRINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "shared/libc_common.h" #include "src/__support/math/lrintf128.h" @@ -24,6 +20,4 @@ using math::lrintf128; } // namespace shared } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SHARED_MATH_LRINTF128_H diff --git a/libc/shared/math/rintf128.h b/libc/shared/math/rintf128.h index 38891d36cce46..3714cfa28bc57 100644 --- a/libc/shared/math/rintf128.h +++ b/libc/shared/math/rintf128.h @@ -9,10 +9,6 @@ #ifndef LLVM_LIBC_SHARED_MATH_RINTF128_H #define LLVM_LIBC_SHARED_MATH_RINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "shared/libc_common.h" #include "src/__support/math/rintf128.h" @@ -24,6 +20,4 @@ using math::rintf128; } // namespace shared } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SHARED_MATH_RINTF128_H diff --git a/libc/src/__support/math/CMakeLists.txt b/libc/src/__support/math/CMakeLists.txt index 7fce9ff6c94f9..c0f98d9063ede 100644 --- a/libc/src/__support/math/CMakeLists.txt +++ b/libc/src/__support/math/CMakeLists.txt @@ -1892,7 +1892,7 @@ add_header_library( HDRS llrintf128.h DEPENDS - libc.include.llvm-libc-types.float128 + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.nearest_integer_operations libc.src.__support.macros.config ) @@ -2006,7 +2006,7 @@ add_header_library( HDRS lrintf128.h DEPENDS - libc.include.llvm-libc-types.float128 + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.nearest_integer_operations libc.src.__support.macros.config ) @@ -2418,7 +2418,7 @@ add_header_library( HDRS rintf128.h DEPENDS - libc.include.llvm-libc-types.float128 + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.nearest_integer_operations libc.src.__support.macros.config ) diff --git a/libc/src/__support/math/llrintf128.h b/libc/src/__support/math/llrintf128.h index dc1f5f74307e0..07956468d5cc7 100644 --- a/libc/src/__support/math/llrintf128.h +++ b/libc/src/__support/math/llrintf128.h @@ -9,18 +9,17 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_MATH_LLRINTF128_H #define LLVM_LIBC_SRC___SUPPORT_MATH_LLRINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "src/__support/FPUtil/NearestIntegerOperations.h" +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" namespace LIBC_NAMESPACE_DECL { namespace math { -LIBC_INLINE constexpr long long llrintf128(float128 x) { - return fputil::round_to_signed_integer_using_current_rounding_mode( x); } @@ -28,6 +27,4 @@ LIBC_INLINE constexpr long long llrintf128(float128 x) { } // namespace math } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SRC___SUPPORT_MATH_LLRINTF128_H diff --git a/libc/src/__support/math/lrintf128.h b/libc/src/__support/math/lrintf128.h index 1be518dad486a..c83d54475cdc9 100644 --- a/libc/src/__support/math/lrintf128.h +++ b/libc/src/__support/math/lrintf128.h @@ -9,24 +9,21 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_MATH_LRINTF128_H #define LLVM_LIBC_SRC___SUPPORT_MATH_LRINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "src/__support/FPUtil/NearestIntegerOperations.h" +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" namespace LIBC_NAMESPACE_DECL { namespace math { -LIBC_INLINE constexpr long lrintf128(float128 x) { - return fputil::round_to_signed_integer_using_current_rounding_mode(x); } } // namespace math } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SRC___SUPPORT_MATH_LRINTF128_H diff --git a/libc/src/__support/math/rintf128.h b/libc/src/__support/math/rintf128.h index 15f74d1152c01..8c36a540e7a20 100644 --- a/libc/src/__support/math/rintf128.h +++ b/libc/src/__support/math/rintf128.h @@ -9,23 +9,20 @@ #ifndef LLVM_LIBC_SRC___SUPPORT_MATH_RINTF128_H #define LLVM_LIBC_SRC___SUPPORT_MATH_RINTF128_H -#include "include/llvm-libc-types/float128.h" - -#ifdef LIBC_TYPES_HAS_NATIVE_FLOAT128 - #include "src/__support/FPUtil/NearestIntegerOperations.h" +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" namespace LIBC_NAMESPACE_DECL { namespace math { -LIBC_INLINE constexpr float128 rintf128(float128 x) { +using LIBC_NAMESPACE::fputil::Float128; + +LIBC_INLINE constexpr Float128 rintf128(Float128 x) { return fputil::round_using_current_rounding_mode(x); } } // namespace math } // namespace LIBC_NAMESPACE_DECL -#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 - #endif // LLVM_LIBC_SRC___SUPPORT_MATH_RINTF128_H diff --git a/libc/src/math/generic/CMakeLists.txt b/libc/src/math/generic/CMakeLists.txt index 4bcbd8f277638..46a9fe4fff0f6 100644 --- a/libc/src/math/generic/CMakeLists.txt +++ b/libc/src/math/generic/CMakeLists.txt @@ -990,6 +990,7 @@ add_entrypoint_object( HDRS ../rintf128.h DEPENDS + libc.src.__support.CPP.bit libc.src.__support.math.rintf128 ) @@ -1050,6 +1051,7 @@ add_entrypoint_object( HDRS ../lrintf128.h DEPENDS + libc.src.__support.CPP.bit libc.src.__support.math.lrintf128 ) @@ -1110,6 +1112,7 @@ add_entrypoint_object( HDRS ../llrintf128.h DEPENDS + libc.src.__support.CPP.bit libc.src.__support.math.llrintf128 ) diff --git a/libc/src/math/generic/llrintf128.cpp b/libc/src/math/generic/llrintf128.cpp index dc1897fdc7b8a..c5cd471319234 100644 --- a/libc/src/math/generic/llrintf128.cpp +++ b/libc/src/math/generic/llrintf128.cpp @@ -7,12 +7,15 @@ //===----------------------------------------------------------------------===// #include "src/math/llrintf128.h" +#include "src/__support/CPP/bit.h" #include "src/__support/math/llrintf128.h" namespace LIBC_NAMESPACE_DECL { +using LIBC_NAMESPACE::fputil::Float128; + LLVM_LIBC_FUNCTION(long long, llrintf128, (float128 x)) { - return math::llrintf128(x); + return math::llrintf128(cpp::bit_cast(x)); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/lrintf128.cpp b/libc/src/math/generic/lrintf128.cpp index 2fffbd3572f88..d148829814b10 100644 --- a/libc/src/math/generic/lrintf128.cpp +++ b/libc/src/math/generic/lrintf128.cpp @@ -7,10 +7,15 @@ //===----------------------------------------------------------------------===// #include "src/math/lrintf128.h" +#include "src/__support/CPP/bit.h" #include "src/__support/math/lrintf128.h" namespace LIBC_NAMESPACE_DECL { -LLVM_LIBC_FUNCTION(long, lrintf128, (float128 x)) { return math::lrintf128(x); } +using LIBC_NAMESPACE::fputil::Float128; + +LLVM_LIBC_FUNCTION(long, lrintf128, (float128 x)) { + return math::lrintf128(cpp::bit_cast(x)); +} } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/generic/rintf128.cpp b/libc/src/math/generic/rintf128.cpp index 297cb493c48e0..f04aec77999fa 100644 --- a/libc/src/math/generic/rintf128.cpp +++ b/libc/src/math/generic/rintf128.cpp @@ -7,12 +7,15 @@ //===----------------------------------------------------------------------===// #include "src/math/rintf128.h" +#include "src/__support/CPP/bit.h" #include "src/__support/math/rintf128.h" namespace LIBC_NAMESPACE_DECL { +using LIBC_NAMESPACE::fputil::Float128; + LLVM_LIBC_FUNCTION(float128, rintf128, (float128 x)) { - return math::rintf128(x); + return cpp::bit_cast(math::rintf128(cpp::bit_cast(x))); } } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/llrintf128.h b/libc/src/math/llrintf128.h index ff2e9a2248bba..e4d2c5e94165e 100644 --- a/libc/src/math/llrintf128.h +++ b/libc/src/math/llrintf128.h @@ -9,11 +9,16 @@ #ifndef LLVM_LIBC_SRC_MATH_LLRINTF128_H #define LLVM_LIBC_SRC_MATH_LLRINTF128_H +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" #include "src/__support/macros/properties/types.h" namespace LIBC_NAMESPACE_DECL { +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + long long llrintf128(float128 x); } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/lrintf128.h b/libc/src/math/lrintf128.h index ae710e9b00448..8804cf355e273 100644 --- a/libc/src/math/lrintf128.h +++ b/libc/src/math/lrintf128.h @@ -9,11 +9,16 @@ #ifndef LLVM_LIBC_SRC_MATH_LRINTF128_H #define LLVM_LIBC_SRC_MATH_LRINTF128_H +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" #include "src/__support/macros/properties/types.h" namespace LIBC_NAMESPACE_DECL { +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + long lrintf128(float128 x); } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/src/math/rintf128.h b/libc/src/math/rintf128.h index 2edafcb73fd85..531836ce33310 100644 --- a/libc/src/math/rintf128.h +++ b/libc/src/math/rintf128.h @@ -9,11 +9,16 @@ #ifndef LLVM_LIBC_SRC_MATH_RINTF128_H #define LLVM_LIBC_SRC_MATH_RINTF128_H +#include "src/__support/FPUtil/float128.h" #include "src/__support/macros/config.h" #include "src/__support/macros/properties/types.h" namespace LIBC_NAMESPACE_DECL { +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + float128 rintf128(float128 x); } // namespace LIBC_NAMESPACE_DECL diff --git a/libc/test/shared/shared_math_constexpr_test.cpp b/libc/test/shared/shared_math_constexpr_test.cpp index 39454814f4e83..2889a2dd86227 100644 --- a/libc/test/shared/shared_math_constexpr_test.cpp +++ b/libc/test/shared/shared_math_constexpr_test.cpp @@ -387,10 +387,13 @@ static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::fmaxf128(Float128(0.0), Float128(0.0))); static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::fminf128(Float128(0.0), Float128(0.0))); +static_assert(0LL == LIBC_NAMESPACE::shared::llrintf128(Float128(0.0))); static_assert(0LL == LIBC_NAMESPACE::shared::llroundf128(Float128(0.0))); +static_assert(0L == LIBC_NAMESPACE::shared::lrintf128(Float128(0.0))); static_assert(0L == LIBC_NAMESPACE::shared::lroundf128(Float128(0.0))); static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::nearbyintf128(Float128(0.0))); +static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::rintf128(Float128(0.0))); static_assert(Float128(0.0) == LIBC_NAMESPACE::shared::roundevenf128(Float128(0.0))); static_assert(Float128(0.0) == @@ -494,13 +497,9 @@ static_assert(0.0f == LIBC_NAMESPACE::shared::fmulf128(float128(0.0), float128(0.0))); static_assert(0.0f == LIBC_NAMESPACE::shared::fsubf128(float128(0.0), float128(0.0))); - -static_assert(0LL == LIBC_NAMESPACE::shared::llrintf128(float128(0.0))); -static_assert(0L == LIBC_NAMESPACE::shared::lrintf128(float128(0.0))); static_assert(float128(0.0) == LIBC_NAMESPACE::shared::nextafterf128(float128(0.0), float128(0.0))); -static_assert(float128(0.0) == LIBC_NAMESPACE::shared::rintf128(float128(0.0))); static_assert(1 == LIBC_NAMESPACE::shared::iscanonicalf128(float128(0.0))); static_assert(0 == LIBC_NAMESPACE::shared::isnanf128(float128(0.0))); static_assert(0.0 == LIBC_NAMESPACE::shared::issignalingf128(float128(0.0))); diff --git a/libc/test/shared/shared_math_test.cpp b/libc/test/shared/shared_math_test.cpp index f44c833f8abfa..d964a178fa855 100644 --- a/libc/test/shared/shared_math_test.cpp +++ b/libc/test/shared/shared_math_test.cpp @@ -589,10 +589,13 @@ TEST(LlvmLibcSharedMathTest, AllEmuFloat128) { LIBC_NAMESPACE::shared::fmaxf128(Float128(0.0), Float128(0.0))); EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::fminf128(Float128(0.0), Float128(0.0))); + EXPECT_EQ(0LL, LIBC_NAMESPACE::shared::llrintf128(Float128(0.0))); EXPECT_EQ(0LL, LIBC_NAMESPACE::shared::llroundf128(Float128(0.0))); + EXPECT_EQ(0L, LIBC_NAMESPACE::shared::lrintf128(Float128(0.0))); EXPECT_EQ(0L, LIBC_NAMESPACE::shared::lroundf128(Float128(0.0))); EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::nearbyintf128(Float128(0.0))); + EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::rintf128(Float128(0.0))); EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::roundevenf128(Float128(0.0))); EXPECT_FP_EQ(Float128(0.0), LIBC_NAMESPACE::shared::roundf128(Float128(0.0))); @@ -748,9 +751,6 @@ TEST(LlvmLibcSharedMathTest, AllFloat128) { LIBC_NAMESPACE::shared::fsubf128(float128(0.0), float128(0.0))); EXPECT_FP_EQ(0x0p+0f, LIBC_NAMESPACE::shared::fmulf128(float128(0.0), float128(0.0))); - EXPECT_EQ(0LL, LIBC_NAMESPACE::shared::llrintf128(float128(0.0))); - EXPECT_EQ(0L, LIBC_NAMESPACE::shared::lrintf128(float128(0.0))); - EXPECT_FP_EQ(float128(0.0), LIBC_NAMESPACE::shared::rintf128(float128(0.0))); EXPECT_EQ(1, LIBC_NAMESPACE::shared::iscanonicalf128(float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::isnanf128(float128(0.0))); EXPECT_EQ(0, LIBC_NAMESPACE::shared::issignalingf128(float128(0.0))); diff --git a/libc/test/src/math/smoke/CMakeLists.txt b/libc/test/src/math/smoke/CMakeLists.txt index 629b853ad84dc..7af2eb21d24d0 100644 --- a/libc/test/src/math/smoke/CMakeLists.txt +++ b/libc/test/src/math/smoke/CMakeLists.txt @@ -1186,6 +1186,7 @@ add_fp_unittest( DEPENDS libc.src.math.rintf128 libc.src.__support.FPUtil.fenv_impl + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.fp_bits ) @@ -1281,6 +1282,7 @@ add_fp_unittest( libc.src.math.lrintf128 libc.src.__support.CPP.algorithm libc.src.__support.FPUtil.fenv_impl + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.fp_bits ) @@ -1378,6 +1380,7 @@ add_fp_unittest( libc.src.math.llrintf128 libc.src.__support.CPP.algorithm libc.src.__support.FPUtil.fenv_impl + libc.src.__support.FPUtil.float128 libc.src.__support.FPUtil.fp_bits ) diff --git a/libc/test/src/math/smoke/llrintf128_test.cpp b/libc/test/src/math/smoke/llrintf128_test.cpp index 8847b2918e631..d7fcfd2bb211d 100644 --- a/libc/test/src/math/smoke/llrintf128_test.cpp +++ b/libc/test/src/math/smoke/llrintf128_test.cpp @@ -8,7 +8,12 @@ #include "RoundToIntegerTest.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/llrintf128.h" +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + LIST_ROUND_TO_INTEGER_TESTS_WITH_MODES(float128, long long, LIBC_NAMESPACE::llrintf128) diff --git a/libc/test/src/math/smoke/lrintf128_test.cpp b/libc/test/src/math/smoke/lrintf128_test.cpp index a559ccf0eda72..74c33d1cd3f7d 100644 --- a/libc/test/src/math/smoke/lrintf128_test.cpp +++ b/libc/test/src/math/smoke/lrintf128_test.cpp @@ -8,7 +8,12 @@ #include "RoundToIntegerTest.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/lrintf128.h" +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + LIST_ROUND_TO_INTEGER_TESTS_WITH_MODES(float128, long, LIBC_NAMESPACE::lrintf128) diff --git a/libc/test/src/math/smoke/rintf128_test.cpp b/libc/test/src/math/smoke/rintf128_test.cpp index 11078d795bac4..cd537936b69a4 100644 --- a/libc/test/src/math/smoke/rintf128_test.cpp +++ b/libc/test/src/math/smoke/rintf128_test.cpp @@ -8,6 +8,11 @@ #include "RIntTest.h" +#include "src/__support/FPUtil/float128.h" #include "src/math/rintf128.h" +#ifndef LIBC_TYPES_HAS_NATIVE_FLOAT128 +using float128 = LIBC_NAMESPACE::fputil::Float128; +#endif // LIBC_TYPES_HAS_NATIVE_FLOAT128 + LIST_RINT_TESTS(float128, LIBC_NAMESPACE::rintf128) diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index bb553daca7081..ebfdc6252e59c 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -6394,9 +6394,9 @@ libc_support_library( name = "__support_math_llrintf128", hdrs = ["src/__support/math/llrintf128.h"], deps = [ + ":__support_fputil_float128", ":__support_fputil_nearest_integer_operations", ":__support_macros_config", - ":llvm_libc_types_float128", ], ) @@ -6508,9 +6508,9 @@ libc_support_library( name = "__support_math_lrintf128", hdrs = ["src/__support/math/lrintf128.h"], deps = [ + ":__support_fputil_float128", ":__support_fputil_nearest_integer_operations", ":__support_macros_config", - ":llvm_libc_types_float128", ], ) @@ -6913,9 +6913,9 @@ libc_support_library( name = "__support_math_rintf128", hdrs = ["src/__support/math/rintf128.h"], deps = [ + ":__support_fputil_float128", ":__support_fputil_nearest_integer_operations", ":__support_macros_config", - ":llvm_libc_types_float128", ], ) @@ -12542,6 +12542,8 @@ libc_math_function( libc_math_function( name = "llrintf128", additional_deps = [ + ":__support_cpp_bit", + ":__support_fputil_float128", ":__support_math_llrintf128", ], ) @@ -12754,6 +12756,8 @@ libc_math_function( libc_math_function( name = "lrintf128", additional_deps = [ + ":__support_cpp_bit", + ":__support_fputil_float128", ":__support_math_lrintf128", ], ) @@ -13229,6 +13233,8 @@ libc_math_function( libc_math_function( name = "rintf128", additional_deps = [ + ":__support_cpp_bit", + ":__support_fputil_float128", ":__support_math_rintf128", ], ) diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel index 3da81f6762096..414290fd0979e 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/math/smoke/BUILD.bazel @@ -1048,6 +1048,9 @@ math_test( math_test( name = "llrintf128", hdrs = ["RoundToIntegerTest.h"], + deps = [ + "//libc:__support_fputil_float128", + ], ) math_test( @@ -1152,6 +1155,9 @@ math_test( math_test( name = "lrintf128", hdrs = ["RoundToIntegerTest.h"], + deps = [ + "//libc:__support_fputil_float128", + ], ) math_test( @@ -1379,6 +1385,9 @@ math_test( math_test( name = "rintf128", hdrs = ["RIntTest.h"], + deps = [ + "//libc:__support_fputil_float128", + ], ) math_test(